@sumaris-net/ngx-components 2.8.3-beta9 → 2.8.4

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 (70) hide show
  1. package/doc/changelog.md +11 -0
  2. package/esm2022/src/app/admin/users/users.mjs +3 -3
  3. package/esm2022/src/app/core/account/account.page.mjs +3 -3
  4. package/esm2022/src/app/core/account/new-token.modal.mjs +1 -1
  5. package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +12 -14
  6. package/esm2022/src/app/core/form/entity/editor.class.mjs +4 -2
  7. package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +2 -1
  8. package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +3 -2
  9. package/esm2022/src/app/core/form/form-container.class.mjs +5 -2
  10. package/esm2022/src/app/core/form/form.utils.mjs +10 -1
  11. package/esm2022/src/app/core/form/properties/properties.table.mjs +1 -1
  12. package/esm2022/src/app/core/services/model/referential.model.mjs +4 -1
  13. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +2 -2
  14. package/esm2022/src/app/core/settings/settings.page.mjs +2 -2
  15. package/esm2022/src/app/core/table/async-table.class.mjs +1 -1
  16. package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +10 -7
  17. package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +10 -7
  18. package/esm2022/src/app/core/table/table.class.mjs +1 -1
  19. package/esm2022/src/app/core/table/testing/table.testing.mjs +1 -1
  20. package/esm2022/src/app/core/table/testing/table2.testing.mjs +1 -1
  21. package/esm2022/src/app/shared/dates.mjs +11 -2
  22. package/esm2022/src/app/shared/form/field.component.mjs +1 -1
  23. package/esm2022/src/app/shared/functions.mjs +21 -1
  24. package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +1 -1
  25. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +3 -3
  26. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +3 -3
  27. package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +11 -3
  28. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +81 -36
  29. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +7 -3
  30. package/esm2022/src/app/shared/material/datetime/material.date.mjs +33 -9
  31. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +33 -9
  32. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +3 -3
  33. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +3 -3
  34. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +6 -5
  35. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +8 -5
  36. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +4 -4
  37. package/esm2022/src/app/shared/material/testing/common.test.mjs +1 -1
  38. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +5 -2
  39. package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +16 -1
  40. package/esm2022/src/app/shared/pipes/pipes.module.mjs +5 -2
  41. package/fesm2022/sumaris-net.ngx-components.mjs +349 -179
  42. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
  43. package/package.json +1 -1
  44. package/src/app/core/account/account.page.d.ts +2 -2
  45. package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +2 -3
  46. package/src/app/core/form/entity/editor.class.d.ts +2 -3
  47. package/src/app/core/form/form-container.class.d.ts +3 -0
  48. package/src/app/core/form/form.utils.d.ts +10 -0
  49. package/src/app/core/services/model/referential.model.d.ts +1 -0
  50. package/src/app/core/settings/settings.page.d.ts +1 -2
  51. package/src/app/core/table/async-table.class.d.ts +2 -2
  52. package/src/app/core/table/entities-async-table-datasource.class.d.ts +1 -0
  53. package/src/app/core/table/entities-table-datasource.class.d.ts +1 -0
  54. package/src/app/core/table/table.class.d.ts +2 -2
  55. package/src/app/shared/dates.d.ts +4 -3
  56. package/src/app/shared/functions.d.ts +2 -0
  57. package/src/app/shared/guard/component-dirty.guard.d.ts +1 -6
  58. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +1 -1
  59. package/src/app/shared/material/boolean/boolean.module.d.ts +3 -1
  60. package/src/app/shared/material/boolean/material.boolean.d.ts +20 -11
  61. package/src/app/shared/material/boolean/testing/boolean.test.page.d.ts +1 -0
  62. package/src/app/shared/material/datetime/material.date.d.ts +12 -5
  63. package/src/app/shared/material/datetime/material.dateshort.d.ts +12 -5
  64. package/src/app/shared/material/datetime/material.datetime.d.ts +1 -1
  65. package/src/app/shared/material/latlong/material.latlong.d.ts +1 -1
  66. package/src/app/shared/pipes/arrays.pipe.d.ts +5 -0
  67. package/src/app/shared/pipes/pipes.module.d.ts +1 -1
  68. package/src/assets/manifest.json +1 -1
  69. package/src/theme/_ngx-components.forms.scss +2 -0
  70. package/src/theme/_ngx-components.tabs.scss +2 -0
@@ -1,7 +1,7 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Output, ViewChild, } from '@angular/core';
2
2
  import { AppForm } from '../../core/form/form.class';
3
3
  import { FilesUtils } from '../file/file.utils';
4
- import { isEmptyArray, isNilOrBlank, isNilOrNaN, isNotNil, isNotNilOrBlank } from '../functions';
4
+ import { isEmptyArray, isNil, isNilOrBlank, isNilOrNaN, isNotNil, isNotNilOrBlank } from '../functions';
5
5
  import { MatAutocompleteField } from '../material/autocomplete/material.autocomplete';
6
6
  import { Toasts } from '../toast/toasts';
7
7
  import { NamedFilter } from './named-filter.model';
@@ -180,6 +180,9 @@ export class NamedFilterSelector extends AppForm {
180
180
  console.debug(`${this.logPrefix} import named filter`, data);
181
181
  if (this.filterImportCallback) {
182
182
  data = await this.filterImportCallback(data);
183
+ if (isNil(data)) {
184
+ return; // Abort import if callback returns null or undefined
185
+ }
183
186
  }
184
187
  this.setControlValue(data);
185
188
  this.filterSelected.emit(data.content);
@@ -261,4 +264,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
261
264
  type: ViewChild,
262
265
  args: [MatAutocompleteField, { static: true }]
263
266
  }] } });
264
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWQtZmlsdGVyLXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL25hbWVkLWZpbHRlci9uYW1lZC1maWx0ZXItc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvbmFtZWQtZmlsdGVyL25hbWVkLWZpbHRlci1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUVOLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFdEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBb0MsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckYsT0FBTyxFQUFFLHdCQUF3QixFQUF3RSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hJLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7O0FBUzFELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxPQUFZO0lBb0N2QztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBRUE7SUF6Q08sU0FBUyxHQUFHLHlCQUF5QixDQUFDO0lBQ3RDLE1BQU0sQ0FBVTtJQUUz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Q0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDO0lBRVMsZUFBZSxDQUFDLEtBQWtCO1FBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hDLENBQUM7dUdBL05VLG1CQUFtQiw2S0F5Q3BCLHdCQUF3QjsyRkF6Q3ZCLG1CQUFtQix1bUJBaUNuQixvQkFBb0IscUZDaEVqQyw0ckVBK0RBOzsyRkRoQ2EsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLDJCQUEyQixtQkFHcEIsdUJBQXVCLENBQUMsTUFBTTs7MEJBMkM1QyxNQUFNOzJCQUFDLHdCQUF3Qjt5Q0FsQ3JCLFVBQVU7c0JBQXRCLEtBQUs7Z0JBV0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUVHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUU0QyxpQkFBaUI7c0JBQW5FLFNBQVM7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUG9wb3ZlckNvbnRyb2xsZXIsIFRvYXN0Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IEFwcEZvcm0gfSBmcm9tICcuLi8uLi9jb3JlL2Zvcm0vZm9ybS5jbGFzcyc7XG5pbXBvcnQgeyBGaWxlc1V0aWxzIH0gZnJvbSAnLi4vZmlsZS9maWxlLnV0aWxzJztcbmltcG9ydCB7IGlzRW1wdHlBcnJheSwgaXNOaWxPckJsYW5rLCBpc05pbE9yTmFOLCBpc05vdE5pbCwgaXNOb3ROaWxPckJsYW5rIH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZUZpZWxkIH0gZnJvbSAnLi4vbWF0ZXJpYWwvYXV0b2NvbXBsZXRlL21hdGVyaWFsLmF1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVGaWVsZENvbmZpZyB9IGZyb20gJy4uL21hdGVyaWFsL2F1dG9jb21wbGV0ZS9tYXRlcmlhbC5hdXRvY29tcGxldGUuY29uZmlnJztcbmltcG9ydCB7IFRvYXN0cyB9IGZyb20gJy4uL3RvYXN0L3RvYXN0cyc7XG5pbXBvcnQgeyBJTmFtZWRGaWx0ZXIsIElOYW1lZEZpbHRlckZpbHRlciwgTmFtZWRGaWx0ZXIgfSBmcm9tICcuL25hbWVkLWZpbHRlci5tb2RlbCc7XG5pbXBvcnQgeyBBUFBfTkFNRURfRklMVEVSX1NFUlZJQ0UsIElOYW1lZEZpbHRlclNlcnZpY2UsIE5hbWVkRmlsdGVyTG9hZE9wdGlvbnMsIE5hbWVkRmlsdGVyV2F0Y2hPcHRpb25zIH0gZnJvbSAnLi9uYW1lZC1maWx0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRBcHBlYXJhbmNlLCBTdWJzY3JpcHRTaXppbmcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW5hbWVkLWZpbHRlci1zZWxlY3RvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9uYW1lZC1maWx0ZXItc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9uYW1lZC1maWx0ZXItc2VsZWN0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5hbWVkRmlsdGVyU2VsZWN0b3IgZXh0ZW5kcyBBcHBGb3JtPGFueT4gaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9nUHJlZml4ID0gJ1tuYW1lZC1maWx0ZXItc2VsZWN0b3JdJztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1vYmlsZTogYm9vbGVhbjtcblxuICBwcml2YXRlIF9lbnRpdHlOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgX2RlbGV0ZURpc2FibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2V0IGVudGl0eU5hbWUoZW50aXR5TmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKCFlbnRpdHlOYW1lIHx8IHRoaXMuX2VudGl0eU5hbWUgPT09IGVudGl0eU5hbWUpIHJldHVybjtcbiAgICB0aGlzLl9lbnRpdHlOYW1lID0gZW50aXR5TmFtZTtcbiAgICAvLyBVcGRhdGUgYXV0b2NvbXBsZXRlIGZpbHRlclxuICAgIHRoaXMuYXV0b2NvbXBsZXRlRmllbGQuZmlsdGVyID0geyAuLi50aGlzLmF1dG9jb21wbGV0ZUZpZWxkLmZpbHRlciwgLi4udGhpcy5nZXRGaWx0ZXIoKSB9O1xuICB9XG5cbiAgZ2V0IGVudGl0eU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5TmFtZTtcbiAgfVxuXG4gIEBJbnB1dCgpIGFwcGVhcmFuY2U6IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2U7XG4gIEBJbnB1dCgpIHN1YnNjcmlwdFNpemluZzogU3Vic2NyaXB0U2l6aW5nO1xuXG4gIEBJbnB1dCgpIGZpbHRlckNvbnRlbnRQcm92aWRlcjogKCkgPT4gYW55O1xuICBASW5wdXQoKSBmaWx0ZXJJbXBvcnRDYWxsYmFjazogKG5hbWVkRmlsdGVyOiBOYW1lZEZpbHRlcikgPT4gUHJvbWlzZTxOYW1lZEZpbHRlcj47XG4gIEBJbnB1dCgpIGZpbHRlckZvcm1EaXJ0eTogYm9vbGVhbjtcbiAgQElucHV0KCkgc2hvd0J1dHRvbnMgPSB0cnVlO1xuICBASW5wdXQoKSBleHBvcnRGaWxlTmFtZVByZWZpeCA9ICdmaWx0ZXInO1xuICBASW5wdXQoKSBhdXRvY29tcGxldGVDb25maWc6IE1hdEF1dG9jb21wbGV0ZUZpZWxkQ29uZmlnO1xuICBASW5wdXQoKSBkcm9wQnV0dG9uVGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgY2xlYXJCdXR0b25UaXRsZTogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBmaWx0ZXJTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZmlsdGVyRGVsZXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TmFtZWRGaWx0ZXI+KCk7XG5cbiAgQFZpZXdDaGlsZChNYXRBdXRvY29tcGxldGVGaWVsZCwgeyBzdGF0aWM6IHRydWUgfSkgYXV0b2NvbXBsZXRlRmllbGQ6IE1hdEF1dG9jb21wbGV0ZUZpZWxkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJvdGVjdGVkIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgcHJvdGVjdGVkIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgdG9hc3RDb250cm9sbGVyOiBUb2FzdENvbnRyb2xsZXIsXG4gICAgcHJvdGVjdGVkIHBvcG92ZXJDb250cm9sbGVyOiBQb3BvdmVyQ29udHJvbGxlcixcbiAgICBASW5qZWN0KEFQUF9OQU1FRF9GSUxURVJfU0VSVklDRSlcbiAgICBwcm90ZWN0ZWQgZGF0YVNlcnZpY2U6IElOYW1lZEZpbHRlclNlcnZpY2U8SU5hbWVkRmlsdGVyPGFueT4sIElOYW1lZEZpbHRlckZpbHRlcjxhbnksIGFueT4sIE5hbWVkRmlsdGVyV2F0Y2hPcHRpb25zLCBOYW1lZEZpbHRlckxvYWRPcHRpb25zPlxuICApIHtcbiAgICBzdXBlcihpbmplY3RvciwgZm9ybUJ1aWxkZXIuZ3JvdXAoeyBuYW1lZEZpbHRlcjogW251bGxdIH0pKTtcbiAgICB0aGlzLm1vYmlsZSA9IHRoaXMuc2V0dGluZ3MubW9iaWxlO1xuICB9XG5cbiAgZ2V0IGlzTmV3KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc05pbE9yTmFOKHRoaXMudmFsdWU/Lm5hbWVkRmlsdGVyPy5pZCk7XG4gIH1cblxuICBnZXQgc2F2ZURpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5kaXJ0eSB8fCBpc05pbE9yQmxhbmsodGhpcy52YWx1ZS5uYW1lZEZpbHRlcik7XG4gIH1cblxuICBnZXQgZGVsZXRlRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2RlbGV0ZURpc2FibGVkIHx8IHRoaXMuaXNOZXc7XG4gIH1cblxuICBnZXQgZGlydHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN1cGVyLmRpcnR5IHx8IHRoaXMuZmlsdGVyRm9ybURpcnR5O1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZWdpc3RlckF1dG9jb21wbGV0ZUZpZWxkKCduYW1lZEZpbHRlcicsIHtcbiAgICAgIHN1Z2dlc3RGbjogKHZhbHVlLCBmaWx0ZXIpID0+IHRoaXMuZGF0YVNlcnZpY2Uuc3VnZ2VzdCh2YWx1ZSwgZmlsdGVyKSxcbiAgICAgIGF0dHJpYnV0ZXM6IFsnbmFtZSddLFxuICAgICAgZmlsdGVyOiB0aGlzLmdldEZpbHRlcigpLFxuICAgICAgLi4udGhpcy5hdXRvY29tcGxldGVDb25maWcsXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlZ2lzdGVyU3Vic2NyaXB0aW9uKFxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLm5hbWVkRmlsdGVyLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgxMDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB0aGlzLm9uRmlsdGVyQ2hhbmdlcyh2YWx1ZSkpXG4gICAgKTtcbiAgfVxuXG4gIGdldEZpbHRlcigpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBlbnRpdHlOYW1lOiB0aGlzLmVudGl0eU5hbWUsXG4gICAgfTtcbiAgfVxuXG4gIG1hcmtGb3JDaGVjaygpIHtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgYXN5bmMgc2F2ZShldmVudDogVUlFdmVudCkge1xuICAgIGlmIChldmVudD8uZGVmYXVsdFByZXZlbnRlZCkgcmV0dXJuO1xuICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgZmlsdGVyQ29udGVudCA9IHRoaXMuZmlsdGVyQ29udGVudFByb3ZpZGVyKCk7XG5cbiAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLmxvZ1ByZWZpeH0gc2F2ZSBuYW1lZCBmaWx0ZXJgLCBmaWx0ZXJDb250ZW50KTtcblxuICAgIGlmIChpc05pbE9yQmxhbmsoZmlsdGVyQ29udGVudCkpIHJldHVybjtcblxuICAgIGNvbnN0IGN1cnJlbnRTZWxlY3RlZCA9IHRoaXMudmFsdWUubmFtZWRGaWx0ZXI7XG4gICAgbGV0IHJlc3VsdDogTmFtZWRGaWx0ZXI7XG5cbiAgICBpZiAodHlwZW9mIGN1cnJlbnRTZWxlY3RlZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJlc3VsdCA9IE5hbWVkRmlsdGVyLmZyb21PYmplY3Qoe1xuICAgICAgICBuYW1lOiBjdXJyZW50U2VsZWN0ZWQsXG4gICAgICAgIGVudGl0eU5hbWU6IHRoaXMuZW50aXR5TmFtZSxcbiAgICAgICAgY29udGVudDogZmlsdGVyQ29udGVudCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSBOYW1lZEZpbHRlci5mcm9tT2JqZWN0KHtcbiAgICAgICAgLi4uY3VycmVudFNlbGVjdGVkLFxuICAgICAgICBjb250ZW50OiBmaWx0ZXJDb250ZW50LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2F2ZWRFbnRpdHkgPSBhd2FpdCB0aGlzLmRhdGFTZXJ2aWNlLnNhdmUocmVzdWx0KTtcbiAgICB0aGlzLnNldENvbnRyb2xWYWx1ZShzYXZlZEVudGl0eSk7XG4gICAgdGhpcy5hdXRvY29tcGxldGVGaWVsZC5yZWxvYWRJdGVtcygpO1xuICAgIHRoaXMubWFya0FzUHJpc3RpbmUoKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZShldmVudD86IFVJRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQ/LmRlZmF1bHRQcmV2ZW50ZWQpIHJldHVybjtcbiAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcblxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnZhbHVlLm5hbWVkRmlsdGVyO1xuXG4gICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5sb2dQcmVmaXh9IGRlbGV0ZSBuYW1lZCBmaWx0ZXJgLCBkYXRhKTtcblxuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGF3YWl0IHRoaXMuZGF0YVNlcnZpY2UuZGVsZXRlKGRhdGEpO1xuICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgdGhpcy5hdXRvY29tcGxldGVGaWVsZC5yZWxvYWRJdGVtcygpO1xuICAgICAgdGhpcy5hdXRvY29tcGxldGVGaWVsZC5ibHVycmVkLmVtaXQoKTtcbiAgICAgIHRoaXMuZmlsdGVyRGVsZXRlZC5lbWl0KGRhdGEpO1xuICAgICAgVG9hc3RzLnNob3codGhpcy50b2FzdENvbnRyb2xsZXIsIHRoaXMudHJhbnNsYXRlLCB7XG4gICAgICAgIHR5cGU6ICdpbmZvJyxcbiAgICAgICAgbWVzc2FnZTogJ0NPTU1PTi5OQU1FRF9GSUxURVIuREVMRVRFRCcsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBleHBvcnQoZXZlbnQ/OiBVSUV2ZW50KSB7XG4gICAgaWYgKGV2ZW50Py5kZWZhdWx0UHJldmVudGVkKSByZXR1cm47XG4gICAgZXZlbnQ/LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBjb25zdCBpZCA9IHRoaXMuYXV0b2NvbXBsZXRlRmllbGQudmFsdWU/LmlkO1xuXG4gICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5sb2dQcmVmaXh9IGV4cG9ydCBuYW1lZCBmaWx0ZXJgLCBpZCk7XG5cbiAgICBpZiAoIWlkKSByZXR1cm47XG5cbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5kYXRhU2VydmljZS5sb2FkKGlkLCB7IHdpdGhDb250ZW50OiB0cnVlIH0pO1xuXG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIEZpbGVzVXRpbHMud3JpdGVUZXh0VG9GaWxlKEpTT04uc3RyaW5naWZ5KGRhdGEsIG51bGwsIDIpLCB7XG4gICAgICAgIHR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgZmlsZW5hbWU6IGAke3RoaXMuZXhwb3J0RmlsZU5hbWVQcmVmaXh9LSR7ZGF0YS5lbnRpdHlOYW1lfS0ke2RhdGEubmFtZX0uanNvbmAsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgVG9hc3RzLnNob3codGhpcy50b2FzdENvbnRyb2xsZXIsIHRoaXMudHJhbnNsYXRlLCB7XG4gICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgIG1lc3NhZ2U6ICdDT01NT04uTkFNRURfRklMVEVSLk5PVF9GT1VORCcsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBpbXBvcnQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50Py5kZWZhdWx0UHJldmVudGVkKSByZXR1cm47XG4gICAgZXZlbnQ/LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBGaWxlc1V0aWxzLnNob3dVcGxvYWRQb3BvdmVyKHRoaXMucG9wb3ZlckNvbnRyb2xsZXIsIGV2ZW50LCB7XG4gICAgICB1cGxvYWRGbjogKGZpbGUpID0+IEZpbGVzVXRpbHMucmVhZEFzVGV4dChmaWxlKSxcbiAgICAgIHRpdGxlOiAnQ09NTU9OLk5BTUVEX0ZJTFRFUi5JTVBPUlQnLFxuICAgICAgZmlsZUV4dGVuc2lvbjogJy5qc29uJyxcbiAgICAgIHVuaXF1ZUZpbGU6IHRydWUsXG4gICAgICBpbnN0YW50VXBsb2FkOiB0cnVlLFxuICAgIH0pO1xuICAgIGlmICghcmVzdWx0IHx8IGlzRW1wdHlBcnJheShyZXN1bHQuZGF0YSkpIHJldHVybjtcbiAgICB0cnkge1xuICAgICAgbGV0IGRhdGEgPSBKU09OLnBhcnNlKHJlc3VsdC5kYXRhWzBdLnJlc3BvbnNlLmJvZHkpO1xuICAgICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5sb2dQcmVmaXh9IGltcG9ydCBuYW1lZCBmaWx0ZXJgLCBkYXRhKTtcbiAgICAgIGlmICh0aGlzLmZpbHRlckltcG9ydENhbGxiYWNrKSB7XG4gICAgICAgIGRhdGEgPSBhd2FpdCB0aGlzLmZpbHRlckltcG9ydENhbGxiYWNrKGRhdGEpO1xuICAgICAgfVxuICAgICAgdGhpcy5zZXRDb250cm9sVmFsdWUoZGF0YSk7XG4gICAgICB0aGlzLmZpbHRlclNlbGVjdGVkLmVtaXQoZGF0YS5jb250ZW50KTtcbiAgICAgIHRoaXMubWFya0FzRGlydHkoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgVG9hc3RzLnNob3codGhpcy50b2FzdENvbnRyb2xsZXIsIHRoaXMudHJhbnNsYXRlLCB7XG4gICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgIG1lc3NhZ2U6ICdDT01NT04uTkFNRURfRklMVEVSLklNUE9SVF9GQUlMRUQnLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIG9uRmlsdGVyQ2hhbmdlcyh2YWx1ZTogTmFtZWRGaWx0ZXIgfCBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLmxvZ1ByZWZpeH0gZmlsdGVyIGNoYW5nZWAsIHZhbHVlKTtcblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlPy5pZCAmJiBpc05vdE5pbCh2YWx1ZS5pZCkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmRhdGFTZXJ2aWNlLmxvYWQodmFsdWUuaWQsIHsgd2l0aENvbnRlbnQ6IHRydWUgfSk7XG4gICAgICAgIHRoaXMuX2RlbGV0ZURpc2FibGVkID0gIXRoaXMuZGF0YVNlcnZpY2UuY2FuVXNlcldyaXRlKGRhdGEpO1xuXG4gICAgICAgIGNvbnN0IGZpbHRlciA9IGlzTm90TmlsT3JCbGFuayhkYXRhPy5jb250ZW50KSA/IGRhdGEuY29udGVudCA6IG51bGw7XG4gICAgICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgICAgICB0aGlzLmZpbHRlclNlbGVjdGVkLmVtaXQoZmlsdGVyKTtcbiAgICAgICAgICB0aGlzLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgVG9hc3RzLnNob3codGhpcy50b2FzdENvbnRyb2xsZXIsIHRoaXMudHJhbnNsYXRlLCB7XG4gICAgICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgICBtZXNzYWdlOiAnQ09NTU9OLk5BTUVEX0ZJTFRFUi5MT0FEX0ZBSUxFRCcsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUZpZWxkLmFwcGx5SW1wbGljaXRWYWx1ZSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZUZpZWxkLmFwcGx5SW1wbGljaXRWYWx1ZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRDb250cm9sVmFsdWUodmFsdWU6IE5hbWVkRmlsdGVyKSB7XG4gICAgdGhpcy5zZXRWYWx1ZSh7IG5hbWVkRmlsdGVyOiB2YWx1ZSB9KTtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUZpZWxkLmJsdXJyZWQuZW1pdCgpO1xuICB9XG59XG4iLCI8aW9uLWdyaWQgY2xhc3M9XCJpb24tbm8tcGFkZGluZ1wiPlxuICA8aW9uLXJvdz5cbiAgICA8aW9uLWNvbD5cbiAgICAgIDxmb3JtIGNsYXNzPVwiZm9ybS1jb250YWluZXJcIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICAgICAgPG1hdC1hdXRvY29tcGxldGUtZmllbGRcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5hbWVkRmlsdGVyXCJcbiAgICAgICAgICAgIFtjb25maWddPVwiYXV0b2NvbXBsZXRlRmllbGRzLm5hbWVkRmlsdGVyXCJcbiAgICAgICAgICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgICAgICAgICAgW3N1YnNjcmlwdFNpemluZ109XCJzdWJzY3JpcHRTaXppbmdcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidDT01NT04uTkFNRURfRklMVEVSLlRJVExFJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbY2xlYXJhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgW2Ryb3BCdXR0b25UaXRsZV09XCJkcm9wQnV0dG9uVGl0bGVcIlxuICAgICAgICAgICAgW2NsZWFyQnV0dG9uVGl0bGVdPVwiY2xlYXJCdXR0b25UaXRsZVwiXG4gICAgICAgICAgICBbYXBwbHlJbXBsaWNpdFZhbHVlXT1cImZhbHNlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0U3VmZml4ICpuZ0lmPVwic2hvd0J1dHRvbnMgJiYgIW1vYmlsZVwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uc1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZS1maWVsZD5cbiAgICAgIDwvZm9ybT5cbiAgICA8L2lvbi1jb2w+XG4gICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIiAqbmdJZj1cIm1vYmlsZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbnNcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2lvbi1jb2w+XG4gIDwvaW9uLXJvdz5cbjwvaW9uLWdyaWQ+XG5cblxuXG48bmctdGVtcGxhdGUgI2J1dHRvbnM+XG4gIDxidXR0b25cbiAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgW2NvbG9yXT1cIidwcmltYXJ5J1wiXG4gICAgICBbZGlzYWJsZWRdPVwic2F2ZURpc2FibGVkXCJcbiAgICAgIFt0aXRsZV09XCInQ09NTU9OLk5BTUVEX0ZJTFRFUi5TQVZFJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAoY2xpY2spPVwic2F2ZSgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgIDxtYXQtaWNvbj5zYXZlPC9tYXQtaWNvbj5cbiAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImlzTmV3XCIgY2xhc3M9XCJpY29uLXNlY29uZGFyeVwiIHN0eWxlPVwibGVmdDogMTJweDsgdG9wOiAwcHhcIj5hZGQ8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBbZGlzYWJsZWRdPVwiZGVsZXRlRGlzYWJsZWRcIlxuICAgICAgW3RpdGxlXT1cIidDT01NT04uTkFNRURfRklMVEVSLkRFTEVURScgfCB0cmFuc2xhdGVcIlxuICAgICAgKGNsaWNrKT1cImRlbGV0ZSgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgIDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1vcmVNZW51XCIgKGNsaWNrKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCI+XG4gICAgPG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8bWF0LW1lbnUgI21vcmVNZW51PVwibWF0TWVudVwiPlxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiZXhwb3J0KCRldmVudClcIiBbZGlzYWJsZWRdPVwiaXNOZXdcIj5cbiAgICAgIDxtYXQtaWNvbj5maWxlX2Rvd25sb2FkPC9tYXQtaWNvbj5cbiAgICAgIDxpb24tbGFiZWw+e3sgJ0NPTU1PTi5OQU1FRF9GSUxURVIuRVhQT1JUJyB8IHRyYW5zbGF0ZSB9fTwvaW9uLWxhYmVsPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiaW1wb3J0KCRldmVudClcIj5cbiAgICAgIDxtYXQtaWNvbj5maWxlX3VwbG9hZDwvbWF0LWljb24+XG4gICAgICA8aW9uLWxhYmVsPnt7ICdDT01NT04uTkFNRURfRklMVEVSLklNUE9SVCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvaW9uLWxhYmVsPlxuICAgIDwvYnV0dG9uPlxuICA8L21hdC1tZW51PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWQtZmlsdGVyLXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL25hbWVkLWZpbHRlci9uYW1lZC1maWx0ZXItc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvbmFtZWQtZmlsdGVyL25hbWVkLWZpbHRlci1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUVOLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRXRGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQW9DLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSx3QkFBd0IsRUFBd0UsTUFBTSx3QkFBd0IsQ0FBQztBQUN4SSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7OztBQVMxRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsT0FBWTtJQW9DdkM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUVBO0lBekNPLFNBQVMsR0FBRyx5QkFBeUIsQ0FBQztJQUN0QyxNQUFNLENBQVU7SUFFM0IsV0FBVyxDQUFTO0lBQ3BCLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFFaEMsSUFBYSxVQUFVLENBQUMsVUFBa0I7UUFDeEMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLFVBQVU7WUFBRSxPQUFPO1FBQzNELElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBQzlCLDZCQUE2QjtRQUM3QixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7SUFDNUYsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRVEsVUFBVSxDQUF5QjtJQUNuQyxlQUFlLENBQWtCO0lBRWpDLHFCQUFxQixDQUFZO0lBQ2pDLG9CQUFvQixDQUFxRDtJQUN6RSxlQUFlLENBQVU7SUFDekIsV0FBVyxHQUFHLElBQUksQ0FBQztJQUNuQixvQkFBb0IsR0FBRyxRQUFRLENBQUM7SUFDaEMsa0JBQWtCLENBQTZCO0lBQy9DLGVBQWUsQ0FBUztJQUN4QixnQkFBZ0IsQ0FBUztJQUV4QixjQUFjLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUN6QyxhQUFhLEdBQUcsSUFBSSxZQUFZLEVBQWUsQ0FBQztJQUVQLGlCQUFpQixDQUF1QjtJQUUzRixZQUNZLFFBQWtCLEVBQ2xCLFdBQStCLEVBQy9CLEVBQXFCLEVBQ3JCLGVBQWdDLEVBQ2hDLGlCQUFvQyxFQUVwQyxXQUFrSTtRQUU1SSxLQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQVJsRCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUVwQyxnQkFBVyxHQUFYLFdBQVcsQ0FBdUg7UUFHNUksSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzdDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLHlCQUF5QixDQUFDLGFBQWEsRUFBRTtZQUM1QyxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO1lBQ3JFLFVBQVUsRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUNwQixNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN4QixHQUFHLElBQUksQ0FBQyxrQkFBa0I7U0FDM0IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLG9CQUFvQixDQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUM5SSxDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPO1lBQ0wsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQzVCLENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBYztRQUN2QixJQUFJLEtBQUssRUFBRSxnQkFBZ0I7WUFBRSxPQUFPO1FBQ3BDLEtBQUssRUFBRSxjQUFjLEVBQUUsQ0FBQztRQUV4QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUVuRCxJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLG9CQUFvQixFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRXBGLElBQUksWUFBWSxDQUFDLGFBQWEsQ0FBQztZQUFFLE9BQU87UUFFeEMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDL0MsSUFBSSxNQUFtQixDQUFDO1FBRXhCLElBQUksT0FBTyxlQUFlLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDeEMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUM7Z0JBQzlCLElBQUksRUFBRSxlQUFlO2dCQUNyQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQzNCLE9BQU8sRUFBRSxhQUFhO2FBQ3ZCLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUM7Z0JBQzlCLEdBQUcsZUFBZTtnQkFDbEIsT0FBTyxFQUFFLGFBQWE7YUFDdkIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQWU7UUFDMUIsSUFBSSxLQUFLLEVBQUUsZ0JBQWdCO1lBQUUsT0FBTztRQUNwQyxLQUFLLEVBQUUsY0FBYyxFQUFFLENBQUM7UUFFeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFFcEMsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU3RSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzdCLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ2hELElBQUksRUFBRSxNQUFNO2dCQUNaLE9BQU8sRUFBRSw2QkFBNkI7YUFDdkMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQWU7UUFDMUIsSUFBSSxLQUFLLEVBQUUsZ0JBQWdCO1lBQUUsT0FBTztRQUNwQyxLQUFLLEVBQUUsY0FBYyxFQUFFLENBQUM7UUFFeEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7UUFFNUMsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxzQkFBc0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUUzRSxJQUFJLENBQUMsRUFBRTtZQUFFLE9BQU87UUFFaEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUVwRSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3hELElBQUksRUFBRSxrQkFBa0I7Z0JBQ3hCLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLE9BQU87YUFDOUUsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDaEQsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsT0FBTyxFQUFFLCtCQUErQjthQUN6QyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBWTtRQUN2QixJQUFJLEtBQUssRUFBRSxnQkFBZ0I7WUFBRSxPQUFPO1FBQ3BDLEtBQUssRUFBRSxjQUFjLEVBQUUsQ0FBQztRQUV4QixNQUFNLE1BQU0sR0FBRyxNQUFNLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxFQUFFO1lBQy9FLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDL0MsS0FBSyxFQUFFLDRCQUE0QjtZQUNuQyxhQUFhLEVBQUUsT0FBTztZQUN0QixVQUFVLEVBQUUsSUFBSTtZQUNoQixhQUFhLEVBQUUsSUFBSTtTQUNwQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQUUsT0FBTztRQUNqRCxJQUFJLENBQUM7WUFDSCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BELElBQUksSUFBSSxDQUFDLEtBQUs7Z0JBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLHNCQUFzQixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzdFLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQzlCLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDN0MsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDaEIsT0FBTyxDQUFDLHFEQUFxRDtnQkFDL0QsQ0FBQztZQUNILENBQUM7WUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNoRCxJQUFJLEVBQUUsT0FBTztnQkFDYixPQUFPLEVBQUUsbUNBQW1DO2FBQzdDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRVMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxLQUEyQjtRQUN6RCxJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhFLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssRUFBRSxFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2pFLElBQUksQ0FBQztnQkFDSCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDMUUsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUU1RCxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3BFLElBQUksTUFBTSxFQUFFLENBQUM7b0JBQ1gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ2pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDeEIsQ0FBQztZQUNILENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNYLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFO29CQUNoRCxJQUFJLEVBQUUsT0FBTztvQkFDYixPQUFPLEVBQUUsaUNBQWlDO2lCQUMzQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztZQUNwRCxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDO0lBRVMsZUFBZSxDQUFDLEtBQWtCO1FBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hDLENBQUM7dUdBbE9VLG1CQUFtQiw2S0F5Q3BCLHdCQUF3QjsyRkF6Q3ZCLG1CQUFtQix1bUJBaUNuQixvQkFBb0IscUZDaEVqQyw0ckVBK0RBOzsyRkRoQ2EsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLDJCQUEyQixtQkFHcEIsdUJBQXVCLENBQUMsTUFBTTs7MEJBMkM1QyxNQUFNOzJCQUFDLHdCQUF3Qjt5Q0FsQ3JCLFVBQVU7c0JBQXRCLEtBQUs7Z0JBV0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUVHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUU0QyxpQkFBaUI7c0JBQW5FLFNBQVM7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUG9wb3ZlckNvbnRyb2xsZXIsIFRvYXN0Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IEFwcEZvcm0gfSBmcm9tICcuLi8uLi9jb3JlL2Zvcm0vZm9ybS5jbGFzcyc7XG5pbXBvcnQgeyBGaWxlc1V0aWxzIH0gZnJvbSAnLi4vZmlsZS9maWxlLnV0aWxzJztcbmltcG9ydCB7IGlzRW1wdHlBcnJheSwgaXNOaWwsIGlzTmlsT3JCbGFuaywgaXNOaWxPck5hTiwgaXNOb3ROaWwsIGlzTm90TmlsT3JCbGFuayB9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVGaWVsZCB9IGZyb20gJy4uL21hdGVyaWFsL2F1dG9jb21wbGV0ZS9tYXRlcmlhbC5hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlRmllbGRDb25maWcgfSBmcm9tICcuLi9tYXRlcmlhbC9hdXRvY29tcGxldGUvbWF0ZXJpYWwuYXV0b2NvbXBsZXRlLmNvbmZpZyc7XG5pbXBvcnQgeyBUb2FzdHMgfSBmcm9tICcuLi90b2FzdC90b2FzdHMnO1xuaW1wb3J0IHsgSU5hbWVkRmlsdGVyLCBJTmFtZWRGaWx0ZXJGaWx0ZXIsIE5hbWVkRmlsdGVyIH0gZnJvbSAnLi9uYW1lZC1maWx0ZXIubW9kZWwnO1xuaW1wb3J0IHsgQVBQX05BTUVEX0ZJTFRFUl9TRVJWSUNFLCBJTmFtZWRGaWx0ZXJTZXJ2aWNlLCBOYW1lZEZpbHRlckxvYWRPcHRpb25zLCBOYW1lZEZpbHRlcldhdGNoT3B0aW9ucyB9IGZyb20gJy4vbmFtZWQtZmlsdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSwgU3Vic2NyaXB0U2l6aW5nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1uYW1lZC1maWx0ZXItc2VsZWN0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vbmFtZWQtZmlsdGVyLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbmFtZWQtZmlsdGVyLXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOYW1lZEZpbHRlclNlbGVjdG9yIGV4dGVuZHMgQXBwRm9ybTxhbnk+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvZ1ByZWZpeCA9ICdbbmFtZWQtZmlsdGVyLXNlbGVjdG9yXSc7XG4gIHByb3RlY3RlZCByZWFkb25seSBtb2JpbGU6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBfZW50aXR5TmFtZTogc3RyaW5nO1xuICBwcml2YXRlIF9kZWxldGVEaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHNldCBlbnRpdHlOYW1lKGVudGl0eU5hbWU6IHN0cmluZykge1xuICAgIGlmICghZW50aXR5TmFtZSB8fCB0aGlzLl9lbnRpdHlOYW1lID09PSBlbnRpdHlOYW1lKSByZXR1cm47XG4gICAgdGhpcy5fZW50aXR5TmFtZSA9IGVudGl0eU5hbWU7XG4gICAgLy8gVXBkYXRlIGF1dG9jb21wbGV0ZSBmaWx0ZXJcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUZpZWxkLmZpbHRlciA9IHsgLi4udGhpcy5hdXRvY29tcGxldGVGaWVsZC5maWx0ZXIsIC4uLnRoaXMuZ2V0RmlsdGVyKCkgfTtcbiAgfVxuXG4gIGdldCBlbnRpdHlOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eU5hbWU7XG4gIH1cblxuICBASW5wdXQoKSBhcHBlYXJhbmNlOiBNYXRGb3JtRmllbGRBcHBlYXJhbmNlO1xuICBASW5wdXQoKSBzdWJzY3JpcHRTaXppbmc6IFN1YnNjcmlwdFNpemluZztcblxuICBASW5wdXQoKSBmaWx0ZXJDb250ZW50UHJvdmlkZXI6ICgpID0+IGFueTtcbiAgQElucHV0KCkgZmlsdGVySW1wb3J0Q2FsbGJhY2s6IChuYW1lZEZpbHRlcjogTmFtZWRGaWx0ZXIpID0+IFByb21pc2U8TmFtZWRGaWx0ZXI+O1xuICBASW5wdXQoKSBmaWx0ZXJGb3JtRGlydHk6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNob3dCdXR0b25zID0gdHJ1ZTtcbiAgQElucHV0KCkgZXhwb3J0RmlsZU5hbWVQcmVmaXggPSAnZmlsdGVyJztcbiAgQElucHV0KCkgYXV0b2NvbXBsZXRlQ29uZmlnOiBNYXRBdXRvY29tcGxldGVGaWVsZENvbmZpZztcbiAgQElucHV0KCkgZHJvcEJ1dHRvblRpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNsZWFyQnV0dG9uVGl0bGU6IHN0cmluZztcblxuICBAT3V0cHV0KCkgZmlsdGVyU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGZpbHRlckRlbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE5hbWVkRmlsdGVyPigpO1xuXG4gIEBWaWV3Q2hpbGQoTWF0QXV0b2NvbXBsZXRlRmllbGQsIHsgc3RhdGljOiB0cnVlIH0pIGF1dG9jb21wbGV0ZUZpZWxkOiBNYXRBdXRvY29tcGxldGVGaWVsZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByb3RlY3RlZCBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIHRvYXN0Q29udHJvbGxlcjogVG9hc3RDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCBwb3BvdmVyQ29udHJvbGxlcjogUG9wb3ZlckNvbnRyb2xsZXIsXG4gICAgQEluamVjdChBUFBfTkFNRURfRklMVEVSX1NFUlZJQ0UpXG4gICAgcHJvdGVjdGVkIGRhdGFTZXJ2aWNlOiBJTmFtZWRGaWx0ZXJTZXJ2aWNlPElOYW1lZEZpbHRlcjxhbnk+LCBJTmFtZWRGaWx0ZXJGaWx0ZXI8YW55LCBhbnk+LCBOYW1lZEZpbHRlcldhdGNoT3B0aW9ucywgTmFtZWRGaWx0ZXJMb2FkT3B0aW9ucz5cbiAgKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IsIGZvcm1CdWlsZGVyLmdyb3VwKHsgbmFtZWRGaWx0ZXI6IFtudWxsXSB9KSk7XG4gICAgdGhpcy5tb2JpbGUgPSB0aGlzLnNldHRpbmdzLm1vYmlsZTtcbiAgfVxuXG4gIGdldCBpc05ldygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNOaWxPck5hTih0aGlzLnZhbHVlPy5uYW1lZEZpbHRlcj8uaWQpO1xuICB9XG5cbiAgZ2V0IHNhdmVEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZGlydHkgfHwgaXNOaWxPckJsYW5rKHRoaXMudmFsdWUubmFtZWRGaWx0ZXIpO1xuICB9XG5cbiAgZ2V0IGRlbGV0ZURpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kZWxldGVEaXNhYmxlZCB8fCB0aGlzLmlzTmV3O1xuICB9XG5cbiAgZ2V0IGRpcnR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdXBlci5kaXJ0eSB8fCB0aGlzLmZpbHRlckZvcm1EaXJ0eTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVnaXN0ZXJBdXRvY29tcGxldGVGaWVsZCgnbmFtZWRGaWx0ZXInLCB7XG4gICAgICBzdWdnZXN0Rm46ICh2YWx1ZSwgZmlsdGVyKSA9PiB0aGlzLmRhdGFTZXJ2aWNlLnN1Z2dlc3QodmFsdWUsIGZpbHRlciksXG4gICAgICBhdHRyaWJ1dGVzOiBbJ25hbWUnXSxcbiAgICAgIGZpbHRlcjogdGhpcy5nZXRGaWx0ZXIoKSxcbiAgICAgIC4uLnRoaXMuYXV0b2NvbXBsZXRlQ29uZmlnLFxuICAgIH0pO1xuXG4gICAgdGhpcy5yZWdpc3RlclN1YnNjcmlwdGlvbihcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5uYW1lZEZpbHRlci52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMTAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gdGhpcy5vbkZpbHRlckNoYW5nZXModmFsdWUpKVxuICAgICk7XG4gIH1cblxuICBnZXRGaWx0ZXIoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgZW50aXR5TmFtZTogdGhpcy5lbnRpdHlOYW1lLFxuICAgIH07XG4gIH1cblxuICBtYXJrRm9yQ2hlY2soKSB7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmUoZXZlbnQ6IFVJRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQ/LmRlZmF1bHRQcmV2ZW50ZWQpIHJldHVybjtcbiAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcblxuICAgIGNvbnN0IGZpbHRlckNvbnRlbnQgPSB0aGlzLmZpbHRlckNvbnRlbnRQcm92aWRlcigpO1xuXG4gICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5sb2dQcmVmaXh9IHNhdmUgbmFtZWQgZmlsdGVyYCwgZmlsdGVyQ29udGVudCk7XG5cbiAgICBpZiAoaXNOaWxPckJsYW5rKGZpbHRlckNvbnRlbnQpKSByZXR1cm47XG5cbiAgICBjb25zdCBjdXJyZW50U2VsZWN0ZWQgPSB0aGlzLnZhbHVlLm5hbWVkRmlsdGVyO1xuICAgIGxldCByZXN1bHQ6IE5hbWVkRmlsdGVyO1xuXG4gICAgaWYgKHR5cGVvZiBjdXJyZW50U2VsZWN0ZWQgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXN1bHQgPSBOYW1lZEZpbHRlci5mcm9tT2JqZWN0KHtcbiAgICAgICAgbmFtZTogY3VycmVudFNlbGVjdGVkLFxuICAgICAgICBlbnRpdHlOYW1lOiB0aGlzLmVudGl0eU5hbWUsXG4gICAgICAgIGNvbnRlbnQ6IGZpbHRlckNvbnRlbnQsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gTmFtZWRGaWx0ZXIuZnJvbU9iamVjdCh7XG4gICAgICAgIC4uLmN1cnJlbnRTZWxlY3RlZCxcbiAgICAgICAgY29udGVudDogZmlsdGVyQ29udGVudCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHNhdmVkRW50aXR5ID0gYXdhaXQgdGhpcy5kYXRhU2VydmljZS5zYXZlKHJlc3VsdCk7XG4gICAgdGhpcy5zZXRDb250cm9sVmFsdWUoc2F2ZWRFbnRpdHkpO1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlRmllbGQucmVsb2FkSXRlbXMoKTtcbiAgICB0aGlzLm1hcmtBc1ByaXN0aW5lKCk7XG4gIH1cblxuICBhc3luYyBkZWxldGUoZXZlbnQ/OiBVSUV2ZW50KSB7XG4gICAgaWYgKGV2ZW50Py5kZWZhdWx0UHJldmVudGVkKSByZXR1cm47XG4gICAgZXZlbnQ/LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBjb25zdCBkYXRhID0gdGhpcy52YWx1ZS5uYW1lZEZpbHRlcjtcblxuICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGAke3RoaXMubG9nUHJlZml4fSBkZWxldGUgbmFtZWQgZmlsdGVyYCwgZGF0YSk7XG5cbiAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICBhd2FpdCB0aGlzLmRhdGFTZXJ2aWNlLmRlbGV0ZShkYXRhKTtcbiAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlRmllbGQucmVsb2FkSXRlbXMoKTtcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlRmllbGQuYmx1cnJlZC5lbWl0KCk7XG4gICAgICB0aGlzLmZpbHRlckRlbGV0ZWQuZW1pdChkYXRhKTtcbiAgICAgIFRvYXN0cy5zaG93KHRoaXMudG9hc3RDb250cm9sbGVyLCB0aGlzLnRyYW5zbGF0ZSwge1xuICAgICAgICB0eXBlOiAnaW5mbycsXG4gICAgICAgIG1lc3NhZ2U6ICdDT01NT04uTkFNRURfRklMVEVSLkRFTEVURUQnLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZXhwb3J0KGV2ZW50PzogVUlFdmVudCkge1xuICAgIGlmIChldmVudD8uZGVmYXVsdFByZXZlbnRlZCkgcmV0dXJuO1xuICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgaWQgPSB0aGlzLmF1dG9jb21wbGV0ZUZpZWxkLnZhbHVlPy5pZDtcblxuICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGAke3RoaXMubG9nUHJlZml4fSBleHBvcnQgbmFtZWQgZmlsdGVyYCwgaWQpO1xuXG4gICAgaWYgKCFpZCkgcmV0dXJuO1xuXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuZGF0YVNlcnZpY2UubG9hZChpZCwgeyB3aXRoQ29udGVudDogdHJ1ZSB9KTtcblxuICAgIGlmIChkYXRhKSB7XG4gICAgICBGaWxlc1V0aWxzLndyaXRlVGV4dFRvRmlsZShKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKSwge1xuICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIGZpbGVuYW1lOiBgJHt0aGlzLmV4cG9ydEZpbGVOYW1lUHJlZml4fS0ke2RhdGEuZW50aXR5TmFtZX0tJHtkYXRhLm5hbWV9Lmpzb25gLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFRvYXN0cy5zaG93KHRoaXMudG9hc3RDb250cm9sbGVyLCB0aGlzLnRyYW5zbGF0ZSwge1xuICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICBtZXNzYWdlOiAnQ09NTU9OLk5BTUVEX0ZJTFRFUi5OT1RfRk9VTkQnLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgaW1wb3J0KGV2ZW50OiBFdmVudCkge1xuICAgIGlmIChldmVudD8uZGVmYXVsdFByZXZlbnRlZCkgcmV0dXJuO1xuICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgRmlsZXNVdGlscy5zaG93VXBsb2FkUG9wb3Zlcih0aGlzLnBvcG92ZXJDb250cm9sbGVyLCBldmVudCwge1xuICAgICAgdXBsb2FkRm46IChmaWxlKSA9PiBGaWxlc1V0aWxzLnJlYWRBc1RleHQoZmlsZSksXG4gICAgICB0aXRsZTogJ0NPTU1PTi5OQU1FRF9GSUxURVIuSU1QT1JUJyxcbiAgICAgIGZpbGVFeHRlbnNpb246ICcuanNvbicsXG4gICAgICB1bmlxdWVGaWxlOiB0cnVlLFxuICAgICAgaW5zdGFudFVwbG9hZDogdHJ1ZSxcbiAgICB9KTtcbiAgICBpZiAoIXJlc3VsdCB8fCBpc0VtcHR5QXJyYXkocmVzdWx0LmRhdGEpKSByZXR1cm47XG4gICAgdHJ5IHtcbiAgICAgIGxldCBkYXRhID0gSlNPTi5wYXJzZShyZXN1bHQuZGF0YVswXS5yZXNwb25zZS5ib2R5KTtcbiAgICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGAke3RoaXMubG9nUHJlZml4fSBpbXBvcnQgbmFtZWQgZmlsdGVyYCwgZGF0YSk7XG4gICAgICBpZiAodGhpcy5maWx0ZXJJbXBvcnRDYWxsYmFjaykge1xuICAgICAgICBkYXRhID0gYXdhaXQgdGhpcy5maWx0ZXJJbXBvcnRDYWxsYmFjayhkYXRhKTtcbiAgICAgICAgaWYgKGlzTmlsKGRhdGEpKSB7XG4gICAgICAgICAgcmV0dXJuOyAvLyBBYm9ydCBpbXBvcnQgaWYgY2FsbGJhY2sgcmV0dXJucyBudWxsIG9yIHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZShkYXRhKTtcbiAgICAgIHRoaXMuZmlsdGVyU2VsZWN0ZWQuZW1pdChkYXRhLmNvbnRlbnQpO1xuICAgICAgdGhpcy5tYXJrQXNEaXJ0eSgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICBUb2FzdHMuc2hvdyh0aGlzLnRvYXN0Q29udHJvbGxlciwgdGhpcy50cmFuc2xhdGUsIHtcbiAgICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgbWVzc2FnZTogJ0NPTU1PTi5OQU1FRF9GSUxURVIuSU1QT1JUX0ZBSUxFRCcsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgb25GaWx0ZXJDaGFuZ2VzKHZhbHVlOiBOYW1lZEZpbHRlciB8IHN0cmluZykge1xuICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGAke3RoaXMubG9nUHJlZml4fSBmaWx0ZXIgY2hhbmdlYCwgdmFsdWUpO1xuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWU/LmlkICYmIGlzTm90TmlsKHZhbHVlLmlkKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuZGF0YVNlcnZpY2UubG9hZCh2YWx1ZS5pZCwgeyB3aXRoQ29udGVudDogdHJ1ZSB9KTtcbiAgICAgICAgdGhpcy5fZGVsZXRlRGlzYWJsZWQgPSAhdGhpcy5kYXRhU2VydmljZS5jYW5Vc2VyV3JpdGUoZGF0YSk7XG5cbiAgICAgICAgY29uc3QgZmlsdGVyID0gaXNOb3ROaWxPckJsYW5rKGRhdGE/LmNvbnRlbnQpID8gZGF0YS5jb250ZW50IDogbnVsbDtcbiAgICAgICAgaWYgKGZpbHRlcikge1xuICAgICAgICAgIHRoaXMuZmlsdGVyU2VsZWN0ZWQuZW1pdChmaWx0ZXIpO1xuICAgICAgICAgIHRoaXMubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBUb2FzdHMuc2hvdyh0aGlzLnRvYXN0Q29udHJvbGxlciwgdGhpcy50cmFuc2xhdGUsIHtcbiAgICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICAgIG1lc3NhZ2U6ICdDT01NT04uTkFNRURfRklMVEVSLkxPQURfRkFJTEVEJyxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlRmllbGQuYXBwbHlJbXBsaWNpdFZhbHVlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlRmllbGQuYXBwbHlJbXBsaWNpdFZhbHVlID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldENvbnRyb2xWYWx1ZSh2YWx1ZTogTmFtZWRGaWx0ZXIpIHtcbiAgICB0aGlzLnNldFZhbHVlKHsgbmFtZWRGaWx0ZXI6IHZhbHVlIH0pO1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlRmllbGQuYmx1cnJlZC5lbWl0KCk7XG4gIH1cbn1cbiIsIjxpb24tZ3JpZCBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCI+XG4gIDxpb24tcm93PlxuICAgIDxpb24tY29sPlxuICAgICAgPGZvcm0gY2xhc3M9XCJmb3JtLWNvbnRhaW5lclwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZS1maWVsZFxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZWRGaWx0ZXJcIlxuICAgICAgICAgICAgW2NvbmZpZ109XCJhdXRvY29tcGxldGVGaWVsZHMubmFtZWRGaWx0ZXJcIlxuICAgICAgICAgICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgICAgICAgICBbc3Vic2NyaXB0U2l6aW5nXT1cInN1YnNjcmlwdFNpemluZ1wiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0NPTU1PTi5OQU1FRF9GSUxURVIuVElUTEUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtjbGVhcmFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbZHJvcEJ1dHRvblRpdGxlXT1cImRyb3BCdXR0b25UaXRsZVwiXG4gICAgICAgICAgICBbY2xlYXJCdXR0b25UaXRsZV09XCJjbGVhckJ1dHRvblRpdGxlXCJcbiAgICAgICAgICAgIFthcHBseUltcGxpY2l0VmFsdWVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRTdWZmaXggKm5nSWY9XCJzaG93QnV0dG9ucyAmJiAhbW9iaWxlXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlLWZpZWxkPlxuICAgICAgPC9mb3JtPlxuICAgIDwvaW9uLWNvbD5cbiAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiICpuZ0lmPVwibW9iaWxlXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uc1wiPjwvbmctY29udGFpbmVyPlxuICAgIDwvaW9uLWNvbD5cbiAgPC9pb24tcm93PlxuPC9pb24tZ3JpZD5cblxuXG5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9ucz5cbiAgPGJ1dHRvblxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBbY29sb3JdPVwiJ3ByaW1hcnknXCJcbiAgICAgIFtkaXNhYmxlZF09XCJzYXZlRGlzYWJsZWRcIlxuICAgICAgW3RpdGxlXT1cIidDT01NT04uTkFNRURfRklMVEVSLlNBVkUnIHwgdHJhbnNsYXRlXCJcbiAgICAgIChjbGljayk9XCJzYXZlKCRldmVudClcIlxuICAgICAgPlxuICAgICAgPG1hdC1pY29uPnNhdmU8L21hdC1pY29uPlxuICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaXNOZXdcIiBjbGFzcz1cImljb24tc2Vjb25kYXJ5XCIgc3R5bGU9XCJsZWZ0OiAxMnB4OyB0b3A6IDBweFwiPmFkZDwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgIFtkaXNhYmxlZF09XCJkZWxldGVEaXNhYmxlZFwiXG4gICAgICBbdGl0bGVdPVwiJ0NPTU1PTi5OQU1FRF9GSUxURVIuREVMRVRFJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAoY2xpY2spPVwiZGVsZXRlKCRldmVudClcIlxuICAgICAgPlxuICAgICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibW9yZU1lbnVcIiAoY2xpY2spPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIj5cbiAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG4gIDxtYXQtbWVudSAjbW9yZU1lbnU9XCJtYXRNZW51XCI+XG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJleHBvcnQoJGV2ZW50KVwiIFtkaXNhYmxlZF09XCJpc05ld1wiPlxuICAgICAgPG1hdC1pY29uPmZpbGVfZG93bmxvYWQ8L21hdC1pY29uPlxuICAgICAgPGlvbi1sYWJlbD57eyAnQ09NTU9OLk5BTUVEX0ZJTFRFUi5FWFBPUlQnIHwgdHJhbnNsYXRlIH19PC9pb24tbGFiZWw+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJpbXBvcnQoJGV2ZW50KVwiPlxuICAgICAgPG1hdC1pY29uPmZpbGVfdXBsb2FkPC9tYXQtaWNvbj5cbiAgICAgIDxpb24tbGFiZWw+e3sgJ0NPTU1PTi5OQU1FRF9GSUxURVIuSU1QT1JUJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9pb24tbGFiZWw+XG4gICAgPC9idXR0b24+XG4gIDwvbWF0LW1lbnU+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -70,6 +70,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
70
70
  name: 'arrayFirst',
71
71
  }]
72
72
  }] });
73
+ export class ArrayLastPipe {
74
+ transform(val) {
75
+ if (!Array.isArray(val))
76
+ return null;
77
+ return val.length > 0 ? val[val.length - 1] : null;
78
+ }
79
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ArrayLastPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
80
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: ArrayLastPipe, name: "arrayLast" });
81
+ }
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ArrayLastPipe, decorators: [{
83
+ type: Pipe,
84
+ args: [{
85
+ name: 'arrayLast',
86
+ }]
87
+ }] });
73
88
  export class ArrayPluckPipe {
74
89
  /**
75
90
  *
@@ -138,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
138
153
  name: 'arrayJoin',
139
154
  }]
140
155
  }] });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXlzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9hcnJheXMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUszRCxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLFNBQVMsQ0FBVSxHQUFrQjtRQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN0QyxPQUFPLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7dUdBSlUsaUJBQWlCO3FHQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBSDdCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGlCQUFpQjtpQkFDeEI7O0FBV0QsTUFBTSxPQUFPLGNBQWM7SUFDekIsU0FBUyxDQUFVLEdBQWtCO1FBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3JDLE9BQU8sR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQzt1R0FKVSxjQUFjO3FHQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBSDFCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGNBQWM7aUJBQ3JCOztBQVdELE1BQU0sT0FBTyxlQUFlO0lBQzFCLFNBQVMsQ0FBVSxHQUFrQixFQUFFLElBQW1FO1FBQ3hHLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxD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Q0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3JDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QixDQUFDO3VHQUpVLGVBQWU7cUdBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFIM0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsYUFBYTtpQkFDcEI7O0FBV0QsTUFBTSxPQUFPLGFBQWE7SUFDeEIsU0FBUyxDQUFVLEdBQWtCLEVBQUUsU0FBaUI7UUFDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDbkMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuQyxDQUFDO3VHQUpVLGFBQWE7cUdBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFIekIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsV0FBVztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXRQcm9wZXJ0eUJ5UGF0aCwgaXNOb3ROaWwgfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdpc05vdEVtcHR5QXJyYXknLFxufSlcbmV4cG9ydCBjbGFzcyBOb3RFbXB0eUFycmF5UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm08VCA9IGFueT4odmFsOiB1bmtub3duIHwgVFtdKTogYm9vbGVhbiB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbCkpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdmFsLmxlbmd0aCA+IDA7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnaXNFbXB0eUFycmF5Jyxcbn0pXG5leHBvcnQgY2xhc3MgRW1wdHlBcnJheVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtPFQgPSBhbnk+KHZhbDogdW5rbm93biB8IFRbXSk6IGJvb2xlYW4ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWwpKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gdmFsLmxlbmd0aCA9PT0gMDtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdpc0FycmF5TGVuZ3RoJyxcbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlMZW5ndGhQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybTxUID0gYW55Pih2YWw6IHVua25vd24gfCBUW10sIGFyZ3M/OiB7IGdyZWF0ZXJUaGFuPzogbnVtYmVyOyBlcXVhbHM/OiBudW1iZXI7IGxlc3NUaGFuPzogbnVtYmVyIH0pOiBib29sZWFuIHtcbiAgICBhcmdzID0gYXJncyB8fCB7fTtcbiAgICBjb25zdCBzaXplID0gIUFycmF5LmlzQXJyYXkodmFsKSA/IDAgOiB2YWwubGVuZ3RoO1xuICAgIGlmIChpc05vdE5pbChhcmdzLmxlc3NUaGFuKSkge1xuICAgICAgcmV0dXJuIHNpemUgPCBhcmdzLmxlc3NUaGFuO1xuICAgIH1cbiAgICBpZiAoaXNOb3ROaWwoYXJncy5ncmVhdGVyVGhhbikpIHtcbiAgICAgIHJldHVybiBzaXplID4gYXJncy5ncmVhdGVyVGhhbjtcbiAgICB9XG4gICAgaWYgKGlzTm90TmlsKGFyZ3MuZXF1YWxzKSkge1xuICAgICAgcmV0dXJuIHNpemUgPT09IGFyZ3MuZXF1YWxzO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnYXJyYXlGaXJzdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5Rmlyc3RQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybTxUID0gYW55Pih2YWw6IHVua25vd24gfCBUW10pOiBUIHwgbnVsbCB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbCkpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB2YWwubGVuZ3RoID4gMCA/IHZhbFswXSA6IG51bGw7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnYXJyYXlQbHVjaycsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5UGx1Y2tQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gdmFsXG4gICAqIEBwYXJhbSBvcHRzIHByb3BlcnR5IHRvIGdldCwgb3Igb3B0aW9uc1xuICAgKi9cbiAgdHJhbnNmb3JtPFQgPSBhbnk+KHZhbDogdW5rbm93biB8IFRbXSwgb3B0czogc3RyaW5nIHwgc3RyaW5nW10gfCB7IHByb3BlcnR5OiBzdHJpbmcgfCBzdHJpbmdbXTsgb21pdE5pbD86IGJvb2xlYW4gfSk6IGFueVtdIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsKSB8fCAhb3B0cykgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgcHJvcGVydHkgPSB0eXBlb2Ygb3B0cyA9PT0gJ3N0cmluZycgfHwgQXJyYXkuaXNBcnJheShvcHRzKSA/IChvcHRzIGFzIHN0cmluZyB8IHN0cmluZ1tdKSA6IG9wdHMucHJvcGVydHk7XG4gICAgcmV0dXJuIG9wdHNbJ29taXROaWwnXSAhPT0gdHJ1ZVxuICAgICAgPyB2YWwubWFwKCh2YWx1ZSkgPT4gZ2V0UHJvcGVydHlCeVBhdGgodmFsdWUsIHByb3BlcnR5KSlcbiAgICAgIDogdmFsLm1hcCgodmFsdWUpID0+IGdldFByb3BlcnR5QnlQYXRoKHZhbHVlLCBwcm9wZXJ0eSkpLmZpbHRlcihpc05vdE5pbCk7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnYXJyYXlJbmNsdWRlcycsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5SW5jbHVkZXNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybTxUID0gYW55Pih2YWw6IHVua25vd24gfCBUW10sIHNlYXJjaEVsZW1lbnQ6IFQsIGZyb21JbmRleD86IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWwpKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuICh2YWwgJiYgdmFsLmluY2x1ZGVzKHNlYXJjaEVsZW1lbnQsIGZyb21JbmRleCkpIHx8IGZhbHNlO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2FycmF5RmlsdGVyJyxcbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlGaWx0ZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybTxUID0gYW55Pih2YWw6IHVua25vd24gfCBUW10sIGZpbHRlckZuOiAoVCkgPT4gYm9vbGVhbik6IFRbXSB8IG51bGwge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWwpKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdmFsLmZpbHRlcihmaWx0ZXJGbik7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnYXJyYXlKb2luJyxcbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlKb2luUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm08VCA9IGFueT4odmFsOiB1bmtub3duIHwgVFtdLCBzZXBhcmF0b3I6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbCkpIHJldHVybiAnJztcbiAgICByZXR1cm4gdmFsLmpvaW4oc2VwYXJhdG9yKSB8fCAnJztcbiAgfVxufVxuIl19
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXlzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9hcnJheXMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUszRCxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLFNBQVMsQ0FBVSxHQUFrQjtRQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN0QyxPQUFPLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7dUdBSlUsaUJBQWlCO3FHQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBSDdCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGlCQUFpQjtpQkFDeEI7O0FBV0QsTUFBTSxPQUFPLGNBQWM7SUFDekIsU0FBUyxDQUFVLEdBQWtCO1FBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3JDLE9BQU8sR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQzt1R0FKVSxjQUFjO3FHQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBSDFCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGNBQWM7aUJBQ3JCOztBQVdELE1BQU0sT0FBTyxlQUFlO0lBQzFCLFNBQVMsQ0FBVSxHQUFrQixFQUFFLElBQW1FO1FBQ3hHLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxD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LENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDdEMsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUNsRSxDQUFDO3VHQUpVLGlCQUFpQjtxR0FBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUg3QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxlQUFlO2lCQUN0Qjs7QUFXRCxNQUFNLE9BQU8sZUFBZTtJQUMxQixTQUFTLENBQVUsR0FBa0IsRUFBRSxRQUF3QjtRQUM3RCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNyQyxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQzt1R0FKVSxlQUFlO3FHQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBSDNCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGFBQWE7aUJBQ3BCOztBQVdELE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFNBQVMsQ0FBVSxHQUFrQixFQUFFLFNBQWlCO1FBQ3RELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ25DLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbkMsQ0FBQzt1R0FKVSxhQUFhO3FHQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBSHpCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFdBQVc7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0UHJvcGVydHlCeVBhdGgsIGlzTm90TmlsIH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcblxuQFBpcGUoe1xuICBuYW1lOiAnaXNOb3RFbXB0eUFycmF5Jyxcbn0pXG5leHBvcnQgY2xhc3MgTm90RW1wdHlBcnJheVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtPFQgPSBhbnk+KHZhbDogdW5rbm93biB8IFRbXSk6IGJvb2xlYW4ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWwpKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHZhbC5sZW5ndGggPiAwO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2lzRW1wdHlBcnJheScsXG59KVxuZXhwb3J0IGNsYXNzIEVtcHR5QXJyYXlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybTxUID0gYW55Pih2YWw6IHVua25vd24gfCBUW10pOiBib29sZWFuIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsKSkgcmV0dXJuIHRydWU7XG4gICAgcmV0dXJuIHZhbC5sZW5ndGggPT09IDA7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnaXNBcnJheUxlbmd0aCcsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5TGVuZ3RoUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm08VCA9IGFueT4odmFsOiB1bmtub3duIHwgVFtdLCBhcmdzPzogeyBncmVhdGVyVGhhbj86IG51bWJlcjsgZXF1YWxzPzogbnVtYmVyOyBsZXNzVGhhbj86IG51bWJlciB9KTogYm9vbGVhbiB7XG4gICAgYXJncyA9IGFyZ3MgfHwge307XG4gICAgY29uc3Qgc2l6ZSA9ICFBcnJheS5pc0FycmF5KHZhbCkgPyAwIDogdmFsLmxlbmd0aDtcbiAgICBpZiAoaXNOb3ROaWwoYXJncy5sZXNzVGhhbikpIHtcbiAgICAgIHJldHVybiBzaXplIDwgYXJncy5sZXNzVGhhbjtcbiAgICB9XG4gICAgaWYgKGlzTm90TmlsKGFyZ3MuZ3JlYXRlclRoYW4pKSB7XG4gICAgICByZXR1cm4gc2l6ZSA+IGFyZ3MuZ3JlYXRlclRoYW47XG4gICAgfVxuICAgIGlmIChpc05vdE5pbChhcmdzLmVxdWFscykpIHtcbiAgICAgIHJldHVybiBzaXplID09PSBhcmdzLmVxdWFscztcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2FycmF5Rmlyc3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBcnJheUZpcnN0UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm08VCA9IGFueT4odmFsOiB1bmtub3duIHwgVFtdKTogVCB8IG51bGwge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWwpKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdmFsLmxlbmd0aCA+IDAgPyB2YWxbMF0gOiBudWxsO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2FycmF5TGFzdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5TGFzdFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtPFQgPSBhbnk+KHZhbDogdW5rbm93biB8IFRbXSk6IFQgfCBudWxsIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsKSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHZhbC5sZW5ndGggPiAwID8gdmFsW3ZhbC5sZW5ndGggLSAxXSA6IG51bGw7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnYXJyYXlQbHVjaycsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5UGx1Y2tQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gdmFsXG4gICAqIEBwYXJhbSBvcHRzIHByb3BlcnR5IHRvIGdldCwgb3Igb3B0aW9uc1xuICAgKi9cbiAgdHJhbnNmb3JtPFQgPSBhbnk+KHZhbDogdW5rbm93biB8IFRbXSwgb3B0czogc3RyaW5nIHwgc3RyaW5nW10gfCB7IHByb3BlcnR5OiBzdHJpbmcgfCBzdHJpbmdbXTsgb21pdE5pbD86IGJvb2xlYW4gfSk6IGFueVtdIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsKSB8fCAhb3B0cykgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgcHJvcGVydHkgPSB0eXBlb2Ygb3B0cyA9PT0gJ3N0cmluZycgfHwgQXJyYXkuaXNBcnJheShvcHRzKSA/IChvcHRzIGFzIHN0cmluZyB8IHN0cmluZ1tdKSA6IG9wdHMucHJvcGVydHk7XG4gICAgcmV0dXJuIG9wdHNbJ29taXROaWwnXSAhPT0gdHJ1ZVxuICAgICAgPyB2YWwubWFwKCh2YWx1ZSkgPT4gZ2V0UHJvcGVydHlCeVBhdGgodmFsdWUsIHByb3BlcnR5KSlcbiAgICAgIDogdmFsLm1hcCgodmFsdWUpID0+IGdldFByb3BlcnR5QnlQYXRoKHZhbHVlLCBwcm9wZXJ0eSkpLmZpbHRlcihpc05vdE5pbCk7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnYXJyYXlJbmNsdWRlcycsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5SW5jbHVkZXNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybTxUID0gYW55Pih2YWw6IHVua25vd24gfCBUW10sIHNlYXJjaEVsZW1lbnQ6IFQsIGZyb21JbmRleD86IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWwpKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuICh2YWwgJiYgdmFsLmluY2x1ZGVzKHNlYXJjaEVsZW1lbnQsIGZyb21JbmRleCkpIHx8IGZhbHNlO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2FycmF5RmlsdGVyJyxcbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlGaWx0ZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybTxUID0gYW55Pih2YWw6IHVua25vd24gfCBUW10sIGZpbHRlckZuOiAoVCkgPT4gYm9vbGVhbik6IFRbXSB8IG51bGwge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWwpKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdmFsLmZpbHRlcihmaWx0ZXJGbik7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnYXJyYXlKb2luJyxcbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlKb2luUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm08VCA9IGFueT4odmFsOiB1bmtub3duIHwgVFtdLCBzZXBhcmF0b3I6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbCkpIHJldHVybiAnJztcbiAgICByZXR1cm4gdmFsLmpvaW4oc2VwYXJhdG9yKSB8fCAnJztcbiAgfVxufVxuIl19
@@ -11,7 +11,7 @@ import { HighlightPipe } from './highlight.pipe';
11
11
  import { FileSizePipe } from './file-size.pipe';
12
12
  import { DurationPipe } from './duration.pipe';
13
13
  import { EvenPipe, MathAbsPipe, OddPipe } from './math.pipes';
14
- import { ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayJoinPipe, ArrayLengthPipe, ArrayPluckPipe, EmptyArrayPipe, NotEmptyArrayPipe, } from './arrays.pipe';
14
+ import { ArrayFilterPipe, ArrayFirstPipe, ArrayLastPipe, ArrayIncludesPipe, ArrayJoinPipe, ArrayLengthPipe, ArrayPluckPipe, EmptyArrayPipe, NotEmptyArrayPipe, } from './arrays.pipe';
15
15
  import { MapGetPipe, MapKeysPipe, MapValuesPipe } from './maps.pipe';
16
16
  import { TranslatablePipe, TranslateContextPipe } from './translate-context.pipe';
17
17
  import { NgInitDirective } from './ng-init.pipe';
@@ -45,6 +45,7 @@ const components = [
45
45
  EmptyArrayPipe,
46
46
  ArrayLengthPipe,
47
47
  ArrayFirstPipe,
48
+ ArrayLastPipe,
48
49
  ArrayPluckPipe,
49
50
  ArrayIncludesPipe,
50
51
  ArrayFilterPipe,
@@ -108,6 +109,7 @@ export class SharedPipesModule {
108
109
  EmptyArrayPipe,
109
110
  ArrayLengthPipe,
110
111
  ArrayFirstPipe,
112
+ ArrayLastPipe,
111
113
  ArrayPluckPipe,
112
114
  ArrayIncludesPipe,
113
115
  ArrayFilterPipe,
@@ -167,6 +169,7 @@ export class SharedPipesModule {
167
169
  EmptyArrayPipe,
168
170
  ArrayLengthPipe,
169
171
  ArrayFirstPipe,
172
+ ArrayLastPipe,
170
173
  ArrayPluckPipe,
171
174
  ArrayIncludesPipe,
172
175
  ArrayFilterPipe,
@@ -217,4 +220,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
217
220
  exports: components,
218
221
  }]
219
222
  }] });
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvcGlwZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUQsT0FBTyxFQUNMLGVBQWUsRUFDZixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixlQUFlLEVBQ2YsY0FBYyxFQUNkLGNBQWMsRUFDZCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdJLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLHVCQUF1QixFQUN2Qix1QkFBdUIsRUFDdkIsY0FBYyxFQUNkLHFCQUFxQixFQUNyQixtQkFBbUIsR0FDcEIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFDTCxjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxTQUFTLEVBQ1QsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osZUFBZSxFQUNmLGFBQWEsRUFDYixZQUFZLEdBQ2IsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFeEIsTUFBTSxVQUFVLEdBQUc7SUFDakIsZUFBZTtJQUNmLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2YsY0FBYztJQUNkLG9CQUFvQjtJQUNwQixZQUFZO0lBQ1osZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLGFBQWE7SUFDYixnQkFBZ0I7SUFDaEIsWUFBWTtJQUNaLFdBQVc7SUFDWCxPQUFPO0lBQ1AsUUFBUTtJQUNSLGlCQUFpQjtJQUNqQixjQUFjO0lBQ2QsZUFBZTtJQUNmLGNBQWM7SUFDZCxjQUFjO0lBQ2QsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixhQUFhO0lBQ2IsVUFBVTtJQUNWLFdBQVc7SUFDWCxhQUFhO0lBQ2IsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWixTQUFTO0lBQ1QsWUFBWTtJQUNaLGNBQWM7SUFDZCxhQUFhO0lBQ2IsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixvQkFBb0I7SUFDcEIsZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixzQkFBc0I7SUFDdEIsV0FBVztJQUNYLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixZQUFZO0lBQ1osU0FBUztJQUNULFdBQVc7SUFDWCxnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBQ3BCLHNCQUFzQjtJQUN0QixjQUFjO0lBQ2QsdUJBQXVCO0lBQ3ZCLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLHFCQUFxQjtJQUNyQixlQUFlO0NBQ2hCLENBQUM7QUFPRixNQUFNLE9BQU8saUJBQWlCO3VHQUFqQixpQkFBaUI7d0dBQWpCLGlCQUFpQixpQkFuRTVCLGVBQWU7WUFDZixrQkFBa0I7WUFDbEIsZUFBZTtZQUNmLGNBQWM7WUFDZCxvQkFBb0I7WUFDcEIsWUFBWTtZQUNaLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixXQUFXO1lBQ1gsT0FBTztZQUNQLFFBQVE7WUFDUixpQkFBaUI7WUFDakIsY0FBYztZQUNkLGVBQWU7WUFDZixjQUFjO1lBQ2QsY0FBYztZQUNkLGlCQUFpQjtZQUNqQixlQUFlO1lBQ2YsYUFBYTtZQUNiLFVBQVU7WUFDVixXQUFXO1lBQ1gsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixtQkFBbUI7WUFDbkIsY0FBYztZQUNkLGlCQUFpQjtZQUNqQixZQUFZO1lBQ1osU0FBUztZQUNULFlBQVk7WUFDWixjQUFjO1lBQ2QsYUFBYTtZQUNiLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsb0JBQW9CO1lBQ3BCLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2Ysc0JBQXNCO1lBQ3RCLFdBQVc7WUFDWCxrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLFNBQVM7WUFDVCxXQUFXO1lBQ1gsZ0JBQWdCO1lBQ2hCLG9CQUFvQjtZQUNwQixzQkFBc0I7WUFDdEIsY0FBYztZQUNkLHVCQUF1QjtZQUN2QixvQkFBb0I7WUFDcEIsbUJBQW1CO1lBQ25CLHVCQUF1QjtZQUN2QixxQkFBcUI7WUFDckIsZUFBZSxhQUlMLFlBQVksRUFBRSxXQUFXLEVBQUUsZUFBZSxhQS9EcEQsZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixlQUFlO1lBQ2YsY0FBYztZQUNkLG9CQUFvQjtZQUNwQixZQUFZO1lBQ1osZUFBZTtZQUNmLGlCQUFpQjtZQUNqQixrQkFBa0I7WUFDbEIsbUJBQW1CO1lBQ25CLGFBQWE7WUFDYixnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLFdBQVc7WUFDWCxPQUFPO1lBQ1AsUUFBUTtZQUNSLGlCQUFpQjtZQUNqQixjQUFjO1lBQ2QsZUFBZTtZQUNmLGNBQWM7WUFDZCxjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLGVBQWU7WUFDZixhQUFhO1lBQ2IsVUFBVTtZQUNWLFdBQVc7WUFDWCxhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUNuQixjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLFlBQVk7WUFDWixTQUFTO1lBQ1QsWUFBWTtZQUNaLGNBQWM7WUFDZCxhQUFhO1lBQ2IsZUFBZTtZQUNmLGlCQUFpQjtZQUNqQixvQkFBb0I7WUFDcEIsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixzQkFBc0I7WUFDdEIsV0FBVztZQUNYLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osU0FBUztZQUNULFdBQVc7WUFDWCxnQkFBZ0I7WUFDaEIsb0JBQW9CO1lBQ3BCLHNCQUFzQjtZQUN0QixjQUFjO1lBQ2QsdUJBQXVCO1lBQ3ZCLG9CQUFvQjtZQUNwQixtQkFBbUI7WUFDbkIsdUJBQXVCO1lBQ3ZCLHFCQUFxQjtZQUNyQixlQUFlO3dHQVFKLGlCQUFpQixZQUpsQixZQUFZLEVBQUUsV0FBVyxFQUFFLGVBQWU7OzJGQUl6QyxpQkFBaUI7a0JBTDdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxlQUFlLENBQUM7b0JBQ3JELFlBQVksRUFBRSxVQUFVO29CQUN4QixPQUFPLEVBQUUsVUFBVTtpQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBEYXRlRm9ybWF0UGlwZSB9IGZyb20gJy4vZGF0ZS1mb3JtYXQucGlwZSc7XG5pbXBvcnQgeyBEYXRlRGlmZkR1cmF0aW9uUGlwZSB9IGZyb20gJy4vZGF0ZS1kaWZmLWR1cmF0aW9uLnBpcGUnO1xuaW1wb3J0IHsgRGF0ZUZyb21Ob3dQaXBlIH0gZnJvbSAnLi9kYXRlLWZyb20tbm93LnBpcGUnO1xuaW1wb3J0IHsgTGF0aXR1ZGVGb3JtYXRQaXBlLCBMYXRMb25nRm9ybWF0UGlwZSwgTG9uZ2l0dWRlRm9ybWF0UGlwZSB9IGZyb20gJy4vbGF0bG9uZy1mb3JtYXQucGlwZSc7XG5pbXBvcnQgeyBOdW1iZXJGb3JtYXRQaXBlIH0gZnJvbSAnLi9udW1iZXItZm9ybWF0LnBpcGUnO1xuaW1wb3J0IHsgSGlnaGxpZ2h0UGlwZSB9IGZyb20gJy4vaGlnaGxpZ2h0LnBpcGUnO1xuaW1wb3J0IHsgRmlsZVNpemVQaXBlIH0gZnJvbSAnLi9maWxlLXNpemUucGlwZSc7XG5pbXBvcnQgeyBEdXJhdGlvblBpcGUgfSBmcm9tICcuL2R1cmF0aW9uLnBpcGUnO1xuaW1wb3J0IHsgRXZlblBpcGUsIE1hdGhBYnNQaXBlLCBPZGRQaXBlIH0gZnJvbSAnLi9tYXRoLnBpcGVzJztcbmltcG9ydCB7XG4gIEFycmF5RmlsdGVyUGlwZSxcbiAgQXJyYXlGaXJzdFBpcGUsXG4gIEFycmF5SW5jbHVkZXNQaXBlLFxuICBBcnJheUpvaW5QaXBlLFxuICBBcnJheUxlbmd0aFBpcGUsXG4gIEFycmF5UGx1Y2tQaXBlLFxuICBFbXB0eUFycmF5UGlwZSxcbiAgTm90RW1wdHlBcnJheVBpcGUsXG59IGZyb20gJy4vYXJyYXlzLnBpcGUnO1xuaW1wb3J0IHsgTWFwR2V0UGlwZSwgTWFwS2V5c1BpcGUsIE1hcFZhbHVlc1BpcGUgfSBmcm9tICcuL21hcHMucGlwZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGFibGVQaXBlLCBUcmFuc2xhdGVDb250ZXh0UGlwZSB9IGZyb20gJy4vdHJhbnNsYXRlLWNvbnRleHQucGlwZSc7XG5pbXBvcnQgeyBOZ0luaXREaXJlY3RpdmUgfSBmcm9tICcuL25nLWluaXQucGlwZSc7XG5pbXBvcnQgeyBGb3JtRXJyb3JUcmFuc2xhdGVQaXBlLCBGb3JtR2V0QXJyYXlQaXBlLCBGb3JtR2V0Q29udHJvbFBpcGUsIEZvcm1HZXRHcm91cFBpcGUsIEZvcm1HZXRQaXBlLCBGb3JtR2V0VmFsdWVQaXBlIH0gZnJvbSAnLi9mb3JtLnBpcGVzJztcbmltcG9ydCB7IEJvb2xlYW5Gb3JtYXRQaXBlLCBQcm9wZXJ0eUZvcm1hdFBpcGUsIFByb3BlcnR5R2V0UGlwZSwgVmFsdWVGb3JtYXRQaXBlIH0gZnJvbSAnLi9wcm9wZXJ0eS5waXBlcyc7XG5pbXBvcnQgeyBNYXRDb2xvclBpcGUgfSBmcm9tICcuL2NvbG9ycy5waXBlJztcbmltcG9ydCB7IEFzQW55UGlwZSwgQXNBcnJheVBpcGUsIEFzRmxvYXRMYWJlbFR5cGVQaXBlLCBBc09ic2VydmFibGVQaXBlIH0gZnJvbSAnLi90eXBlcy5waXBlcyc7XG5pbXBvcnQgeyBNYXNraXRvUGxhY2Vob2xkZXJQaXBlIH0gZnJvbSAnLi9tYXNraXRvLnBpcGUnO1xuaW1wb3J0IHtcbiAgSXNFbXB0eVNlbGVjdGlvblBpcGUsXG4gIElzTXVsdGlwbGVTZWxlY3Rpb25QaXBlLFxuICBJc05vdEVtcHR5U2VsZWN0aW9uUGlwZSxcbiAgSXNTZWxlY3RlZFBpcGUsXG4gIElzU2luZ2xlU2VsZWN0aW9uUGlwZSxcbiAgU2VsZWN0aW9uTGVuZ3RoUGlwZSxcbn0gZnJvbSAnLi9zZWxlY3Rpb24ucGlwZXMnO1xuaW1wb3J0IHsgQmFkZ2VOdW1iZXJQaXBlIH0gZnJvbSAnLi9iYWRnZS5waXBlcyc7XG5pbXBvcnQge1xuICBDYXBpdGFsaXplUGlwZSxcbiAgSXNOaWxPckJsYW5rUGlwZSxcbiAgSXNOaWxPck5hTlBpcGUsXG4gIElzTmlsUGlwZSxcbiAgSXNOb3ROaWxPckJsYW5rUGlwZSxcbiAgSXNOb3ROaWxPck5hTlBpcGUsXG4gIElzTm90TmlsUGlwZSxcbiAgU3RySW5jbHVkZXNQaXBlLFxuICBTdHJMZW5ndGhQaXBlLFxuICBUb1N0cmluZ1BpcGUsXG59IGZyb20gJy4vc3RyaW5nLnBpcGVzJztcblxuY29uc3QgY29tcG9uZW50cyA9IFtcbiAgUHJvcGVydHlHZXRQaXBlLFxuICBQcm9wZXJ0eUZvcm1hdFBpcGUsXG4gIFZhbHVlRm9ybWF0UGlwZSxcbiAgRGF0ZUZvcm1hdFBpcGUsXG4gIERhdGVEaWZmRHVyYXRpb25QaXBlLFxuICBEdXJhdGlvblBpcGUsXG4gIERhdGVGcm9tTm93UGlwZSxcbiAgTGF0TG9uZ0Zvcm1hdFBpcGUsXG4gIExhdGl0dWRlRm9ybWF0UGlwZSxcbiAgTG9uZ2l0dWRlRm9ybWF0UGlwZSxcbiAgSGlnaGxpZ2h0UGlwZSxcbiAgTnVtYmVyRm9ybWF0UGlwZSxcbiAgRmlsZVNpemVQaXBlLFxuICBNYXRoQWJzUGlwZSxcbiAgT2RkUGlwZSxcbiAgRXZlblBpcGUsXG4gIE5vdEVtcHR5QXJyYXlQaXBlLFxuICBFbXB0eUFycmF5UGlwZSxcbiAgQXJyYXlMZW5ndGhQaXBlLFxuICBBcnJheUZpcnN0UGlwZSxcbiAgQXJyYXlQbHVja1BpcGUsXG4gIEFycmF5SW5jbHVkZXNQaXBlLFxuICBBcnJheUZpbHRlclBpcGUsXG4gIEFycmF5Sm9pblBpcGUsXG4gIE1hcEdldFBpcGUsXG4gIE1hcEtleXNQaXBlLFxuICBNYXBWYWx1ZXNQaXBlLFxuICBJc05pbE9yQmxhbmtQaXBlLFxuICBJc05vdE5pbE9yQmxhbmtQaXBlLFxuICBJc05pbE9yTmFOUGlwZSxcbiAgSXNOb3ROaWxPck5hTlBpcGUsXG4gIElzTm90TmlsUGlwZSxcbiAgSXNOaWxQaXBlLFxuICBUb1N0cmluZ1BpcGUsXG4gIENhcGl0YWxpemVQaXBlLFxuICBTdHJMZW5ndGhQaXBlLFxuICBTdHJJbmNsdWRlc1BpcGUsXG4gIEJvb2xlYW5Gb3JtYXRQaXBlLFxuICBUcmFuc2xhdGVDb250ZXh0UGlwZSxcbiAgVHJhbnNsYXRhYmxlUGlwZSxcbiAgTmdJbml0RGlyZWN0aXZlLFxuICBGb3JtRXJyb3JUcmFuc2xhdGVQaXBlLFxuICBGb3JtR2V0UGlwZSxcbiAgRm9ybUdldENvbnRyb2xQaXBlLFxuICBGb3JtR2V0QXJyYXlQaXBlLFxuICBGb3JtR2V0R3JvdXBQaXBlLFxuICBGb3JtR2V0VmFsdWVQaXBlLFxuICBNYXRDb2xvclBpcGUsXG4gIEFzQW55UGlwZSxcbiAgQXNBcnJheVBpcGUsXG4gIEFzT2JzZXJ2YWJsZVBpcGUsXG4gIEFzRmxvYXRMYWJlbFR5cGVQaXBlLFxuICBNYXNraXRvUGxhY2Vob2xkZXJQaXBlLFxuICBJc1NlbGVjdGVkUGlwZSxcbiAgSXNOb3RFbXB0eVNlbGVjdGlvblBpcGUsXG4gIElzRW1wdHlTZWxlY3Rpb25QaXBlLFxuICBTZWxlY3Rpb25MZW5ndGhQaXBlLFxuICBJc011bHRpcGxlU2VsZWN0aW9uUGlwZSxcbiAgSXNTaW5nbGVTZWxlY3Rpb25QaXBlLFxuICBCYWRnZU51bWJlclBpcGUsXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25pY01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBjb21wb25lbnRzLFxuICBleHBvcnRzOiBjb21wb25lbnRzLFxufSlcbmV4cG9ydCBjbGFzcyBTaGFyZWRQaXBlc01vZHVsZSB7fVxuIl19
223
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvcGlwZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUQsT0FBTyxFQUNMLGVBQWUsRUFDZixjQUFjLEVBQ2QsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsZUFBZSxFQUNmLGNBQWMsRUFDZCxjQUFjLEVBQ2QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVB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b0JBQW9CO1lBQ3BCLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2Ysc0JBQXNCO1lBQ3RCLFdBQVc7WUFDWCxrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLFNBQVM7WUFDVCxXQUFXO1lBQ1gsZ0JBQWdCO1lBQ2hCLG9CQUFvQjtZQUNwQixzQkFBc0I7WUFDdEIsY0FBYztZQUNkLHVCQUF1QjtZQUN2QixvQkFBb0I7WUFDcEIsbUJBQW1CO1lBQ25CLHVCQUF1QjtZQUN2QixxQkFBcUI7WUFDckIsZUFBZTt3R0FRSixpQkFBaUIsWUFKbEIsWUFBWSxFQUFFLFdBQVcsRUFBRSxlQUFlOzsyRkFJekMsaUJBQWlCO2tCQUw3QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsZUFBZSxDQUFDO29CQUNyRCxZQUFZLEVBQUUsVUFBVTtvQkFDeEIsT0FBTyxFQUFFLFVBQVU7aUJBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IElvbmljTW9kdWxlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgRGF0ZUZvcm1hdFBpcGUgfSBmcm9tICcuL2RhdGUtZm9ybWF0LnBpcGUnO1xuaW1wb3J0IHsgRGF0ZURpZmZEdXJhdGlvblBpcGUgfSBmcm9tICcuL2RhdGUtZGlmZi1kdXJhdGlvbi5waXBlJztcbmltcG9ydCB7IERhdGVGcm9tTm93UGlwZSB9IGZyb20gJy4vZGF0ZS1mcm9tLW5vdy5waXBlJztcbmltcG9ydCB7IExhdGl0dWRlRm9ybWF0UGlwZSwgTGF0TG9uZ0Zvcm1hdFBpcGUsIExvbmdpdHVkZUZvcm1hdFBpcGUgfSBmcm9tICcuL2xhdGxvbmctZm9ybWF0LnBpcGUnO1xuaW1wb3J0IHsgTnVtYmVyRm9ybWF0UGlwZSB9IGZyb20gJy4vbnVtYmVyLWZvcm1hdC5waXBlJztcbmltcG9ydCB7IEhpZ2hsaWdodFBpcGUgfSBmcm9tICcuL2hpZ2hsaWdodC5waXBlJztcbmltcG9ydCB7IEZpbGVTaXplUGlwZSB9IGZyb20gJy4vZmlsZS1zaXplLnBpcGUnO1xuaW1wb3J0IHsgRHVyYXRpb25QaXBlIH0gZnJvbSAnLi9kdXJhdGlvbi5waXBlJztcbmltcG9ydCB7IEV2ZW5QaXBlLCBNYXRoQWJzUGlwZSwgT2RkUGlwZSB9IGZyb20gJy4vbWF0aC5waXBlcyc7XG5pbXBvcnQge1xuICBBcnJheUZpbHRlclBpcGUsXG4gIEFycmF5Rmlyc3RQaXBlLFxuICBBcnJheUxhc3RQaXBlLFxuICBBcnJheUluY2x1ZGVzUGlwZSxcbiAgQXJyYXlKb2luUGlwZSxcbiAgQXJyYXlMZW5ndGhQaXBlLFxuICBBcnJheVBsdWNrUGlwZSxcbiAgRW1wdHlBcnJheVBpcGUsXG4gIE5vdEVtcHR5QXJyYXlQaXBlLFxufSBmcm9tICcuL2FycmF5cy5waXBlJztcbmltcG9ydCB7IE1hcEdldFBpcGUsIE1hcEtleXNQaXBlLCBNYXBWYWx1ZXNQaXBlIH0gZnJvbSAnLi9tYXBzLnBpcGUnO1xuaW1wb3J0IHsgVHJhbnNsYXRhYmxlUGlwZSwgVHJhbnNsYXRlQ29udGV4dFBpcGUgfSBmcm9tICcuL3RyYW5zbGF0ZS1jb250ZXh0LnBpcGUnO1xuaW1wb3J0IHsgTmdJbml0RGlyZWN0aXZlIH0gZnJvbSAnLi9uZy1pbml0LnBpcGUnO1xuaW1wb3J0IHsgRm9ybUVycm9yVHJhbnNsYXRlUGlwZSwgRm9ybUdldEFycmF5UGlwZSwgRm9ybUdldENvbnRyb2xQaXBlLCBGb3JtR2V0R3JvdXBQaXBlLCBGb3JtR2V0UGlwZSwgRm9ybUdldFZhbHVlUGlwZSB9IGZyb20gJy4vZm9ybS5waXBlcyc7XG5pbXBvcnQgeyBCb29sZWFuRm9ybWF0UGlwZSwgUHJvcGVydHlGb3JtYXRQaXBlLCBQcm9wZXJ0eUdldFBpcGUsIFZhbHVlRm9ybWF0UGlwZSB9IGZyb20gJy4vcHJvcGVydHkucGlwZXMnO1xuaW1wb3J0IHsgTWF0Q29sb3JQaXBlIH0gZnJvbSAnLi9jb2xvcnMucGlwZSc7XG5pbXBvcnQgeyBBc0FueVBpcGUsIEFzQXJyYXlQaXBlLCBBc0Zsb2F0TGFiZWxUeXBlUGlwZSwgQXNPYnNlcnZhYmxlUGlwZSB9IGZyb20gJy4vdHlwZXMucGlwZXMnO1xuaW1wb3J0IHsgTWFza2l0b1BsYWNlaG9sZGVyUGlwZSB9IGZyb20gJy4vbWFza2l0by5waXBlJztcbmltcG9ydCB7XG4gIElzRW1wdHlTZWxlY3Rpb25QaXBlLFxuICBJc011bHRpcGxlU2VsZWN0aW9uUGlwZSxcbiAgSXNOb3RFbXB0eVNlbGVjdGlvblBpcGUsXG4gIElzU2VsZWN0ZWRQaXBlLFxuICBJc1NpbmdsZVNlbGVjdGlvblBpcGUsXG4gIFNlbGVjdGlvbkxlbmd0aFBpcGUsXG59IGZyb20gJy4vc2VsZWN0aW9uLnBpcGVzJztcbmltcG9ydCB7IEJhZGdlTnVtYmVyUGlwZSB9IGZyb20gJy4vYmFkZ2UucGlwZXMnO1xuaW1wb3J0IHtcbiAgQ2FwaXRhbGl6ZVBpcGUsXG4gIElzTmlsT3JCbGFua1BpcGUsXG4gIElzTmlsT3JOYU5QaXBlLFxuICBJc05pbFBpcGUsXG4gIElzTm90TmlsT3JCbGFua1BpcGUsXG4gIElzTm90TmlsT3JOYU5QaXBlLFxuICBJc05vdE5pbFBpcGUsXG4gIFN0ckluY2x1ZGVzUGlwZSxcbiAgU3RyTGVuZ3RoUGlwZSxcbiAgVG9TdHJpbmdQaXBlLFxufSBmcm9tICcuL3N0cmluZy5waXBlcyc7XG5cbmNvbnN0IGNvbXBvbmVudHMgPSBbXG4gIFByb3BlcnR5R2V0UGlwZSxcbiAgUHJvcGVydHlGb3JtYXRQaXBlLFxuICBWYWx1ZUZvcm1hdFBpcGUsXG4gIERhdGVGb3JtYXRQaXBlLFxuICBEYXRlRGlmZkR1cmF0aW9uUGlwZSxcbiAgRHVyYXRpb25QaXBlLFxuICBEYXRlRnJvbU5vd1BpcGUsXG4gIExhdExvbmdGb3JtYXRQaXBlLFxuICBMYXRpdHVkZUZvcm1hdFBpcGUsXG4gIExvbmdpdHVkZUZvcm1hdFBpcGUsXG4gIEhpZ2hsaWdodFBpcGUsXG4gIE51bWJlckZvcm1hdFBpcGUsXG4gIEZpbGVTaXplUGlwZSxcbiAgTWF0aEFic1BpcGUsXG4gIE9kZFBpcGUsXG4gIEV2ZW5QaXBlLFxuICBOb3RFbXB0eUFycmF5UGlwZSxcbiAgRW1wdHlBcnJheVBpcGUsXG4gIEFycmF5TGVuZ3RoUGlwZSxcbiAgQXJyYXlGaXJzdFBpcGUsXG4gIEFycmF5TGFzdFBpcGUsXG4gIEFycmF5UGx1Y2tQaXBlLFxuICBBcnJheUluY2x1ZGVzUGlwZSxcbiAgQXJyYXlGaWx0ZXJQaXBlLFxuICBBcnJheUpvaW5QaXBlLFxuICBNYXBHZXRQaXBlLFxuICBNYXBLZXlzUGlwZSxcbiAgTWFwVmFsdWVzUGlwZSxcbiAgSXNOaWxPckJsYW5rUGlwZSxcbiAgSXNOb3ROaWxPckJsYW5rUGlwZSxcbiAgSXNOaWxPck5hTlBpcGUsXG4gIElzTm90TmlsT3JOYU5QaXBlLFxuICBJc05vdE5pbFBpcGUsXG4gIElzTmlsUGlwZSxcbiAgVG9TdHJpbmdQaXBlLFxuICBDYXBpdGFsaXplUGlwZSxcbiAgU3RyTGVuZ3RoUGlwZSxcbiAgU3RySW5jbHVkZXNQaXBlLFxuICBCb29sZWFuRm9ybWF0UGlwZSxcbiAgVHJhbnNsYXRlQ29udGV4dFBpcGUsXG4gIFRyYW5zbGF0YWJsZVBpcGUsXG4gIE5nSW5pdERpcmVjdGl2ZSxcbiAgRm9ybUVycm9yVHJhbnNsYXRlUGlwZSxcbiAgRm9ybUdldFBpcGUsXG4gIEZvcm1HZXRDb250cm9sUGlwZSxcbiAgRm9ybUdldEFycmF5UGlwZSxcbiAgRm9ybUdldEdyb3VwUGlwZSxcbiAgRm9ybUdldFZhbHVlUGlwZSxcbiAgTWF0Q29sb3JQaXBlLFxuICBBc0FueVBpcGUsXG4gIEFzQXJyYXlQaXBlLFxuICBBc09ic2VydmFibGVQaXBlLFxuICBBc0Zsb2F0TGFiZWxUeXBlUGlwZSxcbiAgTWFza2l0b1BsYWNlaG9sZGVyUGlwZSxcbiAgSXNTZWxlY3RlZFBpcGUsXG4gIElzTm90RW1wdHlTZWxlY3Rpb25QaXBlLFxuICBJc0VtcHR5U2VsZWN0aW9uUGlwZSxcbiAgU2VsZWN0aW9uTGVuZ3RoUGlwZSxcbiAgSXNNdWx0aXBsZVNlbGVjdGlvblBpcGUsXG4gIElzU2luZ2xlU2VsZWN0aW9uUGlwZSxcbiAgQmFkZ2VOdW1iZXJQaXBlLFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uaWNNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogY29tcG9uZW50cyxcbiAgZXhwb3J0czogY29tcG9uZW50cyxcbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVkUGlwZXNNb2R1bGUge31cbiJdfQ==