ca-components 1.3.94 → 1.3.96

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 (21) hide show
  1. package/esm2022/lib/components/ca-filters/components/ca-location-filter/ca-location-filter.component.mjs +3 -5
  2. package/esm2022/lib/components/ca-filters/components/ca-state-filter/ca-state-filter.component.mjs +2 -2
  3. package/esm2022/lib/components/ca-filters/components/ca-time-filter/ca-time-filter.component.mjs +2 -2
  4. package/esm2022/lib/components/ca-filters/components/ca-trailer-type-filter/ca-trailer-type-filter.component.mjs +2 -2
  5. package/esm2022/lib/components/ca-filters/components/ca-truck-type-filter/ca-truck-type-filter.component.mjs +2 -2
  6. package/esm2022/lib/components/ca-filters/components/ca-user-filter/ca-user-filter.component.mjs +2 -3
  7. package/esm2022/lib/components/ca-filters/components/ca-violation-filter/ca-violation-filter.component.mjs +2 -2
  8. package/esm2022/lib/components/ca-input/components/ca-input-clear/ca-input-clear.component.mjs +2 -2
  9. package/esm2022/lib/components/ca-input-test/components/ca-input-clear/ca-input-clear.component.mjs +2 -2
  10. package/esm2022/lib/components/ca-period-content/ca-period-content.component.mjs +3 -3
  11. package/esm2022/lib/components/ca-period-content/components/ca-period-content-payment/ca-period-content-payment.component.mjs +3 -3
  12. package/esm2022/lib/components/ca-upload-files/components/ca-upload-file/ca-upload-file.component.mjs +3 -3
  13. package/esm2022/lib/components/ca-upload-files/components/ca-upload-file/utils/config/upload-file-input.config.mjs +1 -1
  14. package/fesm2022/ca-components.mjs +73 -74
  15. package/fesm2022/ca-components.mjs.map +1 -1
  16. package/lib/components/ca-filters/components/ca-time-filter/ca-time-filter.component.d.ts +1 -1
  17. package/lib/components/ca-filters/components/ca-user-filter/ca-user-filter.component.d.ts +1 -1
  18. package/lib/components/ca-input/components/ca-input-clear/ca-input-clear.component.d.ts +1 -1
  19. package/lib/components/ca-input-test/components/ca-input-clear/ca-input-clear.component.d.ts +1 -1
  20. package/lib/components/ca-upload-files/components/ca-upload-file/utils/config/upload-file-input.config.d.ts +1 -1
  21. package/package.json +1 -1
@@ -6,7 +6,7 @@ import { AngularSvgIconModule } from 'angular-svg-icon';
6
6
  import { CommonModule } from '@angular/common';
7
7
  import { HttpClientModule } from '@angular/common/http';
8
8
  // enums
9
- import { eLoadStatus } from '../../../../enums';
9
+ import { eLoadStatus, eGeneralActions } from '../../../../enums';
10
10
  import { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';
11
11
  // validators
12
12
  import { addressValidation } from '../../../../components/ca-input-address-dropdown/validators/ca-input-address.regex-validations';
@@ -20,15 +20,13 @@ import { CaFiltersSvgRoutes } from '../../utils/svg-routes/ca-filters-svg-routes
20
20
  // constants
21
21
  import { FilterConfigConstants } from '../../utils/constants/filter-config.constants';
22
22
  import { LocationFilterConstants } from './utils/constants/location-filter.constants';
23
+ import { CaLocationFilterConfig } from './config/ca-location-filter.config';
23
24
  // components
24
25
  import { CaTabSwitchComponent } from '../../../ca-tab-switch/ca-tab-switch.component';
25
26
  import { CaInputAddressDropdownComponent } from '../../../../components/ca-input-address-dropdown/ca-input-address-dropdown.component';
26
27
  import { CaNgxSliderComponent } from '../../../ca-ngx-slider/ca-ngx-slider.component';
27
- // enums
28
28
  // helpers
29
29
  import { FilterHelper } from '../../utils/helpers';
30
- import { CaLocationFilterConfig } from './config/ca-location-filter.config';
31
- import { eGeneralActions } from 'projects/ca-components/src/lib/enums';
32
30
  import * as i0 from "@angular/core";
33
31
  import * as i1 from "@angular/forms";
34
32
  export class CaLocationFilterComponent {
@@ -291,4 +289,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
291
289
  }], sentAddressData: [{
292
290
  type: Output
293
291
  }] } });
294
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtbG9jYXRpb24tZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY29tcG9uZW50cy9jYS1sb2NhdGlvbi1maWx0ZXIvY2EtbG9jYXRpb24tZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY29tcG9uZW50cy9jYS1sb2NhdGlvbi1maWx0ZXIvY2EtbG9jYXRpb24tZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxFQUNILFdBQVcsRUFDWCxtQkFBbUIsR0FHdEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixVQUFVO0FBQ1YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhELFFBQVE7QUFDUixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFM0YsYUFBYTtBQUNiLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdHQUFnRyxDQUFDO0FBRW5JLGFBQWE7QUFDYixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRTFGLFFBQVE7QUFDUixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQVVsRixZQUFZO0FBQ1osT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFHdEYsYUFBYTtBQUNiLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNGQUFzRixDQUFDO0FBQ3ZJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBTXRGLFFBQVE7QUFFUixVQUFVO0FBQ1YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7O0FBMEJ2RSxNQUFNLE9BQU8seUJBQXlCO0lBaUVsQyxRQUFRO1FBQ0osSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRWxCLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO1FBRXJDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNoQixPQUFPLHNCQUFzQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFJLHFCQUFxQjtRQUNyQixPQUFPLHNCQUFzQixDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ2pCLE9BQU8sc0JBQXNCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVELFlBQW9CLFdBQStCO1FBQS9CLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQWxGMUMsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsaUJBQVksR0FBWSxJQUFJLENBQUM7UUFNckIscUJBQWdCLEdBQzdCLElBQUksWUFBWSxFQUFVLENBQUM7UUFFckIsb0JBQWUsR0FDckIsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFFaEMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFaEMsdUJBQWtCLEdBQ3JCLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDO1FBS3hDLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBQzNCLHFCQUFnQixHQUFXLEVBQUUsQ0FBQztRQUU5QixZQUFPLEdBQVcsQ0FBQyxDQUFDO1FBQ3BCLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFFbkIsa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFDMUIsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFFekIsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFDeEIsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUV2QixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUN6QixjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBRXRCLHFCQUFnQixHQUFXLENBQUMsQ0FBQztRQUM3QixvQkFBZSxHQUFXLENBQUMsQ0FBQztRQUU1QixtQkFBYyxHQUFXLENBQUMsQ0FBQztRQUMzQixrQkFBYSxHQUFXLENBQUMsQ0FBQztRQUUxQiwyQkFBc0IsR0FBVyxDQUFDLENBQUM7UUFHbkMsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBQ25DLHlCQUFvQixHQUFZLElBQUksQ0FBQztRQUVyQyxtQkFBYyxHQUFHLFdBQVcsQ0FBQztRQUM3QixzQkFBaUIsR0FBa0IsRUFBRSxDQUFDO1FBQ3RDLG9CQUFlLEdBQVcsQ0FBQyxDQUFDO1FBSTVCLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFHdkIscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBRWxDLGVBQVUsR0FBaUIsdUJBQXVCLENBQUMsWUFBWSxDQUFDO0lBc0JqQixDQUFDO0lBRS9DLFVBQVU7UUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3ZDLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsaUJBQWlCLENBQUMsQ0FBQztTQUMxQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ25DLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsaUJBQWlCLENBQUMsQ0FBQztZQUN0QyxXQUFXLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLENBQUM7U0FDOUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLDZCQUE2QjtRQUNqQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsdUJBQXVCLENBQUMsUUFBUSxDQUFDO1FBRTNELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWTtpQkFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQzlCLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87b0JBQ2hCLElBQUksQ0FBQyxhQUFhO3dCQUNkLHVCQUF1QixDQUFDLHdCQUF3QixDQUFDO1lBQzdELENBQUMsQ0FBQyxDQUFDO1FBQ1gsQ0FBQztJQUNMLENBQUM7SUFFTyx5QkFBeUI7UUFDN0IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZO2lCQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDOUIsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTtvQkFDZixJQUFJLENBQUMsV0FBVzt3QkFDWix1QkFBdUIsQ0FBQyx3QkFBd0IsQ0FBQztnQkFFekQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXO29CQUNwQixJQUFJLENBQUMsZ0JBQWdCO3dCQUNqQix1QkFBdUIsQ0FBQyx3QkFBd0IsQ0FBQztZQUM3RCxDQUFDLENBQUMsQ0FBQztRQUNYLENBQUM7SUFDTCxDQUFDO0lBRU0saUJBQWlCO1FBQ3BCLFlBQVksQ0FBQyxxQkFBcUIsQ0FDOUIsSUFBSSxDQUFDLFlBQVksRUFDakIsSUFBSSxDQUFDLGVBQWUsRUFDcEIsSUFBSSxDQUFDLE9BQU8sRUFDWixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxZQUFZLEVBQ2pCLElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLGFBQWEsRUFDbEIsSUFBSSxDQUFDLGdCQUFnQixDQUN4QixDQUFDO0lBQ04sQ0FBQztJQUVNLFdBQVcsQ0FBQyxLQUF1QixFQUFFLE9BQWU7UUFDdkQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztJQUN6QyxDQUFDO0lBRU0sY0FBYztRQUNqQixJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDckIsTUFBTSxPQUFPLEdBQ1QsdUJBQXVCLENBQUMsd0JBQXdCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFaEUsSUFBSSxJQUFJLENBQUMsa0JBQWtCLElBQUksdUJBQXVCLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDOUQsV0FBVyxHQUFHO2dCQUNWLGNBQWMsRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDakMsZUFBZSxFQUFFLElBQUksQ0FBQyxhQUFhO2dCQUNuQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDcEMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQ3RDLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYTthQUNqQyxDQUFDO1lBRUYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDM0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQzNDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUN2QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDekMsQ0FBQzthQUFNLENBQUM7WUFDSixXQUFXLEdBQUc7Z0JBQ1YsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUN2QixRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ3JCLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYTthQUNqQyxDQUFDO1lBRUYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUM3QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUMzQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUNuRSxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUc7WUFDVCxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDckIsTUFBTSxFQUFFLGVBQWUsQ0FBQyxHQUFHO1lBQzNCLFdBQVc7WUFDWCxPQUFPO1NBQ1YsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBYTtRQUN6QixJQUFJLEtBQUs7WUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7WUFDdkIsT0FBTyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFDbkIsTUFBTSxFQUFFLElBQUk7WUFDWixXQUFXLEVBQUUsSUFBSTtTQUNwQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNoQixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUU1QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzNDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN6QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDdEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBRTNDLE1BQU0sSUFBSSxHQUFHO1lBQ1QsTUFBTSxFQUFFLGVBQWUsQ0FBQyxLQUFLO1lBQzdCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSTtTQUN4QixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGFBQWEsQ0FBQyxLQUFZO1FBQzdCLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUEwQixDQUFDO1FBQ3RELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekMsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLHVCQUF1QixDQUFDLGVBQWU7WUFDcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7O1lBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxLQUFVO1FBQzlCLHdCQUF3QjtRQUN4QixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssdUJBQXVCLENBQUMsZUFBZTtZQUNyRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQzs7WUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEtBQWE7UUFDbEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUNqQyxDQUFDO0lBRU0sa0JBQWtCLENBQUMsS0FBa0I7UUFDeEMsSUFBSSxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU87WUFBRSxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBRXRFLElBQUksS0FBSyxFQUFFLE9BQU8sSUFBSSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQzdDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLElBQUksQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUM7UUFDakQsQ0FBQztJQUNMLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxLQUFrQjtRQUMxQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxJQUFJLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxJQUFJLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRU0sdUJBQXVCLENBQUMsS0FBa0I7UUFDN0MsSUFBSSxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU87WUFDdkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBRWxELElBQUksS0FBSyxFQUFFLE9BQU8sSUFBSSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQzdDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLElBQUksQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUM7UUFDL0MsQ0FBQztJQUNMLENBQUM7SUFFTSxVQUFVLENBQUMsWUFBNkM7UUFDM0QsT0FBTyxrQkFBa0IsQ0FBQyxZQUFZLENBQVcsQ0FBQztJQUN0RCxDQUFDO0lBRU0saUJBQWlCLENBQUMsS0FBc0I7UUFDM0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQzsrR0F2UlEseUJBQXlCO21HQUF6Qix5QkFBeUIsaWJDM0Z0QywyL0dBZ0ZBO2dCRFRRLFVBQVU7Z0JBQ1Ysb0JBQW9CLDhCQUNwQixZQUFZLDhCQUNaLGdCQUFnQiw4QkFDaEIsV0FBVyxrU0FDWCxtQkFBbUI7Z0JBQ25CLGFBQWE7Z0JBQ2Isb0JBQW9CLDBVQUNwQiwrQkFBK0IsNlpBQy9CLG9CQUFvQix5T0FJWjtZQUNSLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQztZQUNoQyxhQUFhLENBQUMsZUFBZSxDQUFDO1lBQzlCLHFCQUFxQixDQUFDLHVCQUF1QixDQUFDO1lBQzlDLHNCQUFzQixDQUFDLHdCQUF3QixDQUFDO1NBQ25EOzs0RkFFUSx5QkFBeUI7a0JBeEJyQyxTQUFTOytCQUNJLHdCQUF3QixjQUN0QixJQUFJLFdBQ1A7d0JBQ0wsVUFBVTt3QkFDVixvQkFBb0I7d0JBQ3BCLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixvQkFBb0I7d0JBQ3BCLCtCQUErQjt3QkFDL0Isb0JBQW9CO3FCQUN2QixjQUdXO3dCQUNSLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQzt3QkFDaEMsYUFBYSxDQUFDLGVBQWUsQ0FBQzt3QkFDOUIscUJBQXFCLENBQUMsdUJBQXVCLENBQUM7d0JBQzlDLHNCQUFzQixDQUFDLHdCQUF3QixDQUFDO3FCQUNuRDt1RkFHUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRVcsZ0JBQWdCO3NCQUFoQyxNQUFNO2dCQUdHLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDaGFuZ2VDb250ZXh0LCBPcHRpb25zIH0gZnJvbSAnQGFuZ3VsYXItc2xpZGVyL25neC1zbGlkZXInO1xuaW1wb3J0IHtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBVbnR5cGVkRm9ybUdyb3VwLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8vIG1vZHVsZXNcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuLy8gZW51bXNcbmltcG9ydCB7IGVMb2FkU3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vZW51bXMnO1xuaW1wb3J0IHsgVG9vbGJhckZpbHRlclN0cmluZ0VudW0gfSBmcm9tICcuLi8uLi8uLi9jYS1tYXAvZW51bXMvdG9vbGJhci1maWx0ZXItc3RyaW5nLmVudW0nO1xuXG4vLyB2YWxpZGF0b3JzXG5pbXBvcnQgeyBhZGRyZXNzVmFsaWRhdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvY2EtaW5wdXQtYWRkcmVzcy1kcm9wZG93bi92YWxpZGF0b3JzL2NhLWlucHV0LWFkZHJlc3MucmVnZXgtdmFsaWRhdGlvbnMnO1xuXG4vLyBhbmltYXRpb25zXG5pbXBvcnQgeyBpbk91dEFuaW1hdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2FuaW1hdGlvbnMvaW4tb3V0LmFuaW1hdGlvbic7XG5pbXBvcnQgeyBzaG93QW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vYW5pbWF0aW9ucy9zaG93LmFuaW1hdGlvbic7XG5pbXBvcnQgeyBhcmVhTGVmdFNpZGVBbmltYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9hbmltYXRpb25zL2FyZWEtbGVmdC1zaWRlLmFuaW1hdGlvbic7XG5pbXBvcnQgeyBhcmVhUmlnaHRTaWRlQW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vYW5pbWF0aW9ucy9hcmVhLXJpZ2h0LXNpZGUuYW5pbWF0aW9uJztcblxuLy8gdXRpbHNcbmltcG9ydCB7IENhRmlsdGVyc1N2Z1JvdXRlcyB9IGZyb20gJy4uLy4uL3V0aWxzL3N2Zy1yb3V0ZXMvY2EtZmlsdGVycy1zdmctcm91dGVzJztcblxuLy8gbW9kZWxzXG5pbXBvcnQgeyBBcnJheVN0YXR1cyB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9hcnJheS1zdGF0dXMubW9kZWwnO1xuaW1wb3J0IHsgZmlsdGVyT3V0cHV0IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci1vdXRwdXQubW9kZWwnO1xuaW1wb3J0IHsgZmlsdGVyT3V0cHV0V2l0aFBhcmFtcyB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9maWx0ZXItb3V0cHV0LXBhcmFtcy5tb2RlbCc7XG5pbXBvcnQgeyBBcmVhQm94VGFiIH0gZnJvbSAnLi9tb2RlbHMvYXJlYS1ib3gtdGFiLm1vZGVsJztcbmltcG9ydCB7IFNlbnRBZGRyZXNzRGF0YSB9IGZyb20gJy4uLy4uLy4uL2NhLWlucHV0LWFkZHJlc3MtZHJvcGRvd24vbW9kZWxzL3NlbnQtYWRkcmVzcy1kYXRhLm1vZGVsJztcbmltcG9ydCB7IEFkZHJlc3NMaXN0UmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvYWRkcmVzcy1saXN0LXJlc3BvbnNlLm1vZGVsJztcblxuLy8gY29uc3RhbnRzXG5pbXBvcnQgeyBGaWx0ZXJDb25maWdDb25zdGFudHMgfSBmcm9tICcuLi8uLi91dGlscy9jb25zdGFudHMvZmlsdGVyLWNvbmZpZy5jb25zdGFudHMnO1xuaW1wb3J0IHsgTG9jYXRpb25GaWx0ZXJDb25zdGFudHMgfSBmcm9tICcuL3V0aWxzL2NvbnN0YW50cy9sb2NhdGlvbi1maWx0ZXIuY29uc3RhbnRzJztcbmltcG9ydCB7IElDYUlucHV0IH0gZnJvbSAnLi4vLi4vLi4vY2EtaW5wdXQvY29uZmlnJztcblxuLy8gY29tcG9uZW50c1xuaW1wb3J0IHsgQ2FUYWJTd2l0Y2hDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jYS10YWItc3dpdGNoL2NhLXRhYi1zd2l0Y2guY29tcG9uZW50JztcbmltcG9ydCB7IENhSW5wdXRBZGRyZXNzRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL2NhLWlucHV0LWFkZHJlc3MtZHJvcGRvd24vY2EtaW5wdXQtYWRkcmVzcy1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FOZ3hTbGlkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jYS1uZ3gtc2xpZGVyL2NhLW5neC1zbGlkZXIuY29tcG9uZW50JztcblxuLy8gbW9kZWxzXG5pbXBvcnQgeyBBZGRyZXNzRGF0YSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvY2EtaW5wdXQtYWRkcmVzcy1kcm9wZG93bi9tb2RlbHMvYWRkcmVzcy1kYXRhLm1vZGVsJztcbmltcG9ydCB7IEFkZHJlc3NMaXN0IH0gZnJvbSAnLi4vLi4vLi4vY2EtaW5wdXQtYWRkcmVzcy1kcm9wZG93bi9tb2RlbHMvYWRkcmVzcy1saXN0Lm1vZGVsJztcblxuLy8gZW51bXNcblxuLy8gaGVscGVyc1xuaW1wb3J0IHsgRmlsdGVySGVscGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvaGVscGVycyc7XG5pbXBvcnQgeyBDYUxvY2F0aW9uRmlsdGVyQ29uZmlnIH0gZnJvbSAnLi9jb25maWcvY2EtbG9jYXRpb24tZmlsdGVyLmNvbmZpZyc7XG5pbXBvcnQgeyBlR2VuZXJhbEFjdGlvbnMgfSBmcm9tICdwcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvZW51bXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1jYS1sb2NhdGlvbi1maWx0ZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICAvLyBtb2R1bGVzXG4gICAgICAgIEFuZ3VsYXJTdmdJY29uTW9kdWxlLFxuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICAvLyBjb21wb25lbnRzXG4gICAgICAgIENhVGFiU3dpdGNoQ29tcG9uZW50LFxuICAgICAgICBDYUlucHV0QWRkcmVzc0Ryb3Bkb3duQ29tcG9uZW50LFxuICAgICAgICBDYU5neFNsaWRlckNvbXBvbmVudCxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYS1sb2NhdGlvbi1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhLWxvY2F0aW9uLWZpbHRlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgaW5PdXRBbmltYXRpb24oJ2luT3V0QW5pbWF0aW9uJyksXG4gICAgICAgIHNob3dBbmltYXRpb24oJ3Nob3dBbmltYXRpb24nKSxcbiAgICAgICAgYXJlYUxlZnRTaWRlQW5pbWF0aW9uKCdhcmVhTGVmdFNpZGVBbmltYXRpb24nKSxcbiAgICAgICAgYXJlYVJpZ2h0U2lkZUFuaW1hdGlvbignYXJlYVJpZ2h0U2lkZUFuaW1hdGlvbicpLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIENhTG9jYXRpb25GaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgdHlwZSE6IHN0cmluZztcbiAgICBASW5wdXQoKSB0b0RvU3ViVHlwZSE6IHN0cmluZztcbiAgICBASW5wdXQoKSBpc0xlZ2VuZFZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBpc0ZpbHRlckFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzQXJlYUZpbHRlcjogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgYWRkcmVzc0xpc3QhOiBBZGRyZXNzTGlzdFtdO1xuXG4gICAgQElucHV0KCkgcmVjZWl2ZWRBZGRyZXNzTGlzdCE6IEFkZHJlc3NMaXN0UmVzcG9uc2U7XG4gICAgQElucHV0KCkgcmVjZWl2ZWRBZGRyZXNzRGF0YSE6IEFkZHJlc3NEYXRhO1xuXG4gICAgQE91dHB1dCgpIHB1YmxpYyBzZW50QWRkcmVzc1ZhbHVlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgQE91dHB1dCgpIHNlbnRBZGRyZXNzRGF0YTogRXZlbnRFbWl0dGVyPFNlbnRBZGRyZXNzRGF0YT4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPFNlbnRBZGRyZXNzRGF0YT4oKTtcblxuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcHVibGljIGxvY2F0aW9uU2xpZGVyRGF0YTogT3B0aW9ucyA9XG4gICAgICAgIEZpbHRlckNvbmZpZ0NvbnN0YW50cy5MT0NBVElPTl9TTElERVJfREFUQTtcblxuICAgIHB1YmxpYyBsb2NhdGlvbk5hbWVTZXQhOiBzdHJpbmcgfCBudWxsO1xuICAgIHB1YmxpYyBsb2NhdGlvbkZvcm0hOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gICAgcHVibGljIGxvY2F0aW9uUmFuZ2U6IG51bWJlciA9IDI1O1xuICAgIHB1YmxpYyBsb2NhdGlvblJhbmdlU2V0OiBudW1iZXIgPSAyNTtcblxuICAgIHB1YmxpYyBsb25nVmFsOiBudW1iZXIgPSAwO1xuICAgIHB1YmxpYyBsYXRWYWw6IG51bWJlciA9IDA7XG5cbiAgICBwdWJsaWMgb3JpZ2luTG9uZ1ZhbDogbnVtYmVyID0gMDtcbiAgICBwdWJsaWMgb3JpZ2luTGF0VmFsOiBudW1iZXIgPSAwO1xuXG4gICAgcHVibGljIGRlc3RMb25nVmFsOiBudW1iZXIgPSAwO1xuICAgIHB1YmxpYyBkZXN0TGF0VmFsOiBudW1iZXIgPSAwO1xuXG4gICAgcHVibGljIGxvbmdWYWx1ZVNldDogbnVtYmVyID0gMDtcbiAgICBwdWJsaWMgbGF0VmFsU2V0OiBudW1iZXIgPSAwO1xuXG4gICAgcHVibGljIG9yaWdpbkxvbmdWYWxTZXQ6IG51bWJlciA9IDA7XG4gICAgcHVibGljIG9yaWdpbkxhdFZhbFNldDogbnVtYmVyID0gMDtcblxuICAgIHB1YmxpYyBkZXN0TG9uZ1ZhbFNldDogbnVtYmVyID0gMDtcbiAgICBwdWJsaWMgZGVzdExhdFZhbFNldDogbnVtYmVyID0gMDtcblxuICAgIHB1YmxpYyB1bnNlbGVjdGVkVmlzaWJsZUNvdW50OiBudW1iZXIgPSAwO1xuICAgIHB1YmxpYyBhcmVhRmlsdGVyU2VsZWN0ZWQhOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgaXNCdXR0b25BdmFpbGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNBc2NlbmRpbmdTb3J0T3JkZXI6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgcHVibGljIGxvYWRTdGF0dXNFbnVtID0gZUxvYWRTdGF0dXM7XG4gICAgcHVibGljIGZpbHRlckFjdGl2ZUFycmF5OiBBcnJheVN0YXR1c1tdID0gW107XG4gICAgcHVibGljIHRvdGFsRmlsdGVyc051bTogbnVtYmVyID0gMDtcblxuICAgIHB1YmxpYyBhcmVhRm9ybSE6IFVudHlwZWRGb3JtR3JvdXA7XG4gICAgcHVibGljIGxvY2F0aW9uU3RhdGUhOiBzdHJpbmcgfCBudWxsO1xuICAgIHB1YmxpYyByYW5nZVZhbHVlOiBudW1iZXIgPSAwO1xuICAgIHB1YmxpYyBkZXN0aW5hdGlvblN0YXRlITogc3RyaW5nO1xuICAgIHB1YmxpYyBvcmlnaW5TdGF0ZSE6IHN0cmluZztcbiAgICBwdWJsaWMgaGFzU2lkZUFuaW1hdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIGFyZWFCb3hUYWI6IEFyZWFCb3hUYWJbXSA9IExvY2F0aW9uRmlsdGVyQ29uc3RhbnRzLkFSRUFfQk9YX1RBQjtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcblxuICAgICAgICB0aGlzLndhdGNoTG9jYXRpb25Gb3JtVmFsdWVDaGFuZ2VzKCk7XG5cbiAgICAgICAgdGhpcy53YXRjaEFyZWFGb3JtVmFsdWVDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgZ2V0IGdldE9yaWdpbkNvbnRyb2woKTogSUNhSW5wdXQge1xuICAgICAgICByZXR1cm4gQ2FMb2NhdGlvbkZpbHRlckNvbmZpZy5vcmlnaW5Db250cm9sKCk7XG4gICAgfVxuXG4gICAgZ2V0IGdldERlc3RpbmF0aW9uQ29udHJvbCgpOiBJQ2FJbnB1dCB7XG4gICAgICAgIHJldHVybiBDYUxvY2F0aW9uRmlsdGVyQ29uZmlnLmRlc3RpbmF0aW9uQ29udHJvbCgpO1xuICAgIH1cblxuICAgIGdldCBnZXRBZGRyZXNzQ29udHJvbCgpOiBJQ2FJbnB1dCB7XG4gICAgICAgIHJldHVybiBDYUxvY2F0aW9uRmlsdGVyQ29uZmlnLmFkZHJlc3NDb250cm9sKCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyKSB7fVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVGb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvY2F0aW9uRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgYWRkcmVzczogW251bGwsIFsuLi5hZGRyZXNzVmFsaWRhdGlvbl1dLFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmFyZWFGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBvcmlnaW46IFtudWxsLCBbLi4uYWRkcmVzc1ZhbGlkYXRpb25dXSxcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uOiBbbnVsbCwgWy4uLmFkZHJlc3NWYWxpZGF0aW9uXV0sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgd2F0Y2hMb2NhdGlvbkZvcm1WYWx1ZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXJlYUZpbHRlclNlbGVjdGVkID0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uTE9DQVRJT047XG5cbiAgICAgICAgaWYgKHRoaXMubG9jYXRpb25Gb3JtKSB7XG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uRm9ybS52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoY2hhbmdlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNoYW5nZXMuYWRkcmVzcylcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYXRpb25TdGF0ZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRU1QVFlfU1RSSU5HX1BMQUNFSE9MREVSO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB3YXRjaEFyZWFGb3JtVmFsdWVDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hcmVhRm9ybSkge1xuICAgICAgICAgICAgdGhpcy5hcmVhRm9ybS52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoY2hhbmdlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNoYW5nZXMub3JpZ2luKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcmlnaW5TdGF0ZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRU1QVFlfU1RSSU5HX1BMQUNFSE9MREVSO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghY2hhbmdlcy5kZXN0aW5hdGlvbilcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVzdGluYXRpb25TdGF0ZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRU1QVFlfU1RSSU5HX1BMQUNFSE9MREVSO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uQXJlYUZpbHRlckNsb3NlKCk6IHZvaWQge1xuICAgICAgICBGaWx0ZXJIZWxwZXIuaGFuZGxlQXJlYUZpbHRlckNsb3NlKFxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvbkZvcm0sXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uTmFtZVNldCxcbiAgICAgICAgICAgIHRoaXMubG9uZ1ZhbCxcbiAgICAgICAgICAgIHRoaXMubGF0VmFsLFxuICAgICAgICAgICAgdGhpcy5sb25nVmFsdWVTZXQsXG4gICAgICAgICAgICB0aGlzLmxhdFZhbFNldCxcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb25SYW5nZSxcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb25SYW5nZVNldFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblRhYkNoYW5nZShldmVudDogeyBuYW1lOiBzdHJpbmcgfSwgc3ViVHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGFzU2lkZUFuaW1hdGlvbiA9IHRydWU7XG4gICAgICAgIHRoaXMuYXJlYUZpbHRlclNlbGVjdGVkID0gZXZlbnQubmFtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RmlsdGVyVmFsdWUoKTogZmlsdGVyT3V0cHV0IHwgZmlsdGVyT3V0cHV0V2l0aFBhcmFtcyB7XG4gICAgICAgIGxldCBxdWVyeVBhcmFtcyA9IHt9O1xuICAgICAgICBjb25zdCBzdWJUeXBlID1cbiAgICAgICAgICAgIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkVNUFRZX1NUUklOR19QTEFDRUhPTERFUi50b1N0cmluZygpO1xuXG4gICAgICAgIGlmICh0aGlzLmFyZWFGaWx0ZXJTZWxlY3RlZCAhPSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5MT0NBVElPTikge1xuICAgICAgICAgICAgcXVlcnlQYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgb3JpZ2luTGF0VmFsdWU6IHRoaXMub3JpZ2luTGF0VmFsLFxuICAgICAgICAgICAgICAgIG9yaWdpbkxvbmdWYWx1ZTogdGhpcy5vcmlnaW5Mb25nVmFsLFxuICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uTGF0VmFsdWU6IHRoaXMuZGVzdExhdFZhbCxcbiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbkxvbmdWYWx1ZTogdGhpcy5kZXN0TG9uZ1ZhbCxcbiAgICAgICAgICAgICAgICByYW5nZVZhbHVlOiB0aGlzLmxvY2F0aW9uUmFuZ2UsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uUmFuZ2VTZXQgPSB0aGlzLmxvY2F0aW9uUmFuZ2U7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbkxhdFZhbFNldCA9IHRoaXMub3JpZ2luTGF0VmFsO1xuICAgICAgICAgICAgdGhpcy5vcmlnaW5Mb25nVmFsU2V0ID0gdGhpcy5vcmlnaW5Mb25nVmFsO1xuICAgICAgICAgICAgdGhpcy5kZXN0TG9uZ1ZhbFNldCA9IHRoaXMuZGVzdExvbmdWYWw7XG4gICAgICAgICAgICB0aGlzLmRlc3RMYXRWYWxTZXQgPSB0aGlzLmRlc3RMYXRWYWw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICBsb25nVmFsdWU6IHRoaXMubG9uZ1ZhbCxcbiAgICAgICAgICAgICAgICBsYXRWYWx1ZTogdGhpcy5sYXRWYWwsXG4gICAgICAgICAgICAgICAgcmFuZ2VWYWx1ZTogdGhpcy5sb2NhdGlvblJhbmdlLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5sb25nVmFsdWVTZXQgPSB0aGlzLmxvbmdWYWw7XG4gICAgICAgICAgICB0aGlzLmxhdFZhbFNldCA9IHRoaXMubGF0VmFsO1xuICAgICAgICAgICAgdGhpcy5sb2NhdGlvblJhbmdlU2V0ID0gdGhpcy5sb2NhdGlvblJhbmdlO1xuICAgICAgICAgICAgdGhpcy5sb2NhdGlvbk5hbWVTZXQgPSB0aGlzLmxvY2F0aW9uRm9ybS5nZXQoJ2FkZHJlc3MnKT8udmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgZmlsdGVyVHlwZTogdGhpcy50eXBlLFxuICAgICAgICAgICAgYWN0aW9uOiBlR2VuZXJhbEFjdGlvbnMuU0VULFxuICAgICAgICAgICAgcXVlcnlQYXJhbXMsXG4gICAgICAgICAgICBzdWJUeXBlLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJBbGwoZXZlbnQ/OiBFdmVudCk6IGZpbHRlck91dHB1dCB8IGZpbHRlck91dHB1dFdpdGhQYXJhbXMge1xuICAgICAgICBpZiAoZXZlbnQpIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMubG9jYXRpb25Gb3JtLnNldFZhbHVlKHtcbiAgICAgICAgICAgIGFkZHJlc3M6IG51bGwsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFyZWFGb3JtLnNldFZhbHVlKHtcbiAgICAgICAgICAgIG9yaWdpbjogbnVsbCxcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uOiBudWxsLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5sb2NhdGlvblJhbmdlID0gMjU7XG4gICAgICAgIHRoaXMubG9jYXRpb25TdGF0ZSA9IG51bGw7XG4gICAgICAgIHRoaXMubG9uZ1ZhbCA9IDA7XG4gICAgICAgIHRoaXMubGF0VmFsID0gMDtcbiAgICAgICAgdGhpcy5vcmlnaW5Mb25nVmFsID0gMDtcbiAgICAgICAgdGhpcy5vcmlnaW5MYXRWYWwgPSAwO1xuICAgICAgICB0aGlzLmRlc3RMb25nVmFsID0gMDtcbiAgICAgICAgdGhpcy5kZXN0TGF0VmFsID0gMDtcbiAgICAgICAgdGhpcy5sb2NhdGlvbk5hbWVTZXQgPSBudWxsO1xuXG4gICAgICAgIHRoaXMubG9uZ1ZhbHVlU2V0ID0gdGhpcy5sb25nVmFsO1xuICAgICAgICB0aGlzLmxhdFZhbFNldCA9IHRoaXMubGF0VmFsO1xuICAgICAgICB0aGlzLm9yaWdpbkxvbmdWYWxTZXQgPSB0aGlzLm9yaWdpbkxvbmdWYWw7XG4gICAgICAgIHRoaXMub3JpZ2luTGF0VmFsU2V0ID0gdGhpcy5vcmlnaW5MYXRWYWw7XG4gICAgICAgIHRoaXMuZGVzdExhdFZhbFNldCA9IHRoaXMuZGVzdExvbmdWYWw7XG4gICAgICAgIHRoaXMuZGVzdExvbmdWYWxTZXQgPSB0aGlzLmRlc3RMb25nVmFsO1xuICAgICAgICB0aGlzLmxvY2F0aW9uUmFuZ2VTZXQgPSB0aGlzLmxvY2F0aW9uUmFuZ2U7XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIGFjdGlvbjogZUdlbmVyYWxBY3Rpb25zLkNMRUFSLFxuICAgICAgICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgICAgICAgZmlsdGVyVHlwZTogdGhpcy50eXBlLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0UmFuZ2VWYWx1ZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gTnVtYmVyKGlucHV0RWxlbWVudC52YWx1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMudHlwZSAhPSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5MT0NBVElPTl9GSUxURVIpXG4gICAgICAgICAgICB0aGlzLnJhbmdlVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgZWxzZSB0aGlzLmxvY2F0aW9uUmFuZ2UgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hhbmdlUmFuZ2VWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIC8vbGVhdmUgdGhpcyBhbnkgZm9yIG5vd1xuICAgICAgICBpZiAodGhpcy50eXBlICE9PSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5MT0NBVElPTl9GSUxURVIpXG4gICAgICAgICAgICB0aGlzLnJhbmdlVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgZWxzZSB0aGlzLmxvY2F0aW9uUmFuZ2UgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlSW5wdXRTZWxlY3QoZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbnRBZGRyZXNzVmFsdWUuZW1pdChldmVudCk7XG4gICAgICAgIHRoaXMubG9jYXRpb25OYW1lU2V0ID0gZXZlbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZU9yaWdpblNlbGVjdChldmVudDogQWRkcmVzc0RhdGEpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50Py5hZGRyZXNzPy5hZGRyZXNzKSB0aGlzLm9yaWdpblN0YXRlID0gZXZlbnQuYWRkcmVzcy5hZGRyZXNzO1xuXG4gICAgICAgIGlmIChldmVudD8ubG9uZ0xhdCAmJiBldmVudD8ubG9uZ0xhdD8ubGF0aXR1ZGUpIHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luTG9uZ1ZhbCA9IGV2ZW50Py5sb25nTGF0Py5sb25naXR1ZGUgfHwgMDtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luTGF0VmFsID0gZXZlbnQ/LmxvbmdMYXQ/LmxhdGl0dWRlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUxvY2F0aW9uQ2hhbmdlKGV2ZW50OiBBZGRyZXNzRGF0YSk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvbmdWYWwgPSBldmVudD8ubG9uZ0xhdD8ubG9uZ2l0dWRlID8/IDA7XG4gICAgICAgIHRoaXMubGF0VmFsID0gZXZlbnQ/LmxvbmdMYXQ/LmxhdGl0dWRlID8/IDA7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZURlc3RpbmF0aW9uU2VsZWN0KGV2ZW50OiBBZGRyZXNzRGF0YSk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQ/LmFkZHJlc3M/LmFkZHJlc3MpXG4gICAgICAgICAgICB0aGlzLmRlc3RpbmF0aW9uU3RhdGUgPSBldmVudC5hZGRyZXNzLmFkZHJlc3M7XG5cbiAgICAgICAgaWYgKGV2ZW50Py5sb25nTGF0ICYmIGV2ZW50Py5sb25nTGF0Py5sYXRpdHVkZSkge1xuICAgICAgICAgICAgdGhpcy5kZXN0TG9uZ1ZhbCA9IGV2ZW50Py5sb25nTGF0Py5sb25naXR1ZGUgfHwgMDtcbiAgICAgICAgICAgIHRoaXMuZGVzdExhdFZhbCA9IGV2ZW50Py5sb25nTGF0Py5sYXRpdHVkZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTdmdQYXRoKHByb3BlcnR5TmFtZToga2V5b2YgdHlwZW9mIENhRmlsdGVyc1N2Z1JvdXRlcyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBDYUZpbHRlcnNTdmdSb3V0ZXNbcHJvcGVydHlOYW1lXSBhcyBzdHJpbmc7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUFkZHJlc3NEYXRhKGV2ZW50OiBTZW50QWRkcmVzc0RhdGEpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZW50QWRkcmVzc0RhdGEuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImJvcmRlci1maWx0ZXJcIj48L2Rpdj5cbjxkaXYgY2xhc3M9XCJhcmVhRmlsdGVySG9sZGVyXCIgW0BzaG93QW5pbWF0aW9uXT1cIiEhaXNGaWx0ZXJBY3RpdmVcIj5cbiAgICA8YXBwLWNhLXRhYi1zd2l0Y2hcbiAgICAgICAgW3RhYnNdPVwiYXJlYUJveFRhYlwiXG4gICAgICAgIChzd2l0Y2hDbGlja2VkKT1cIm9uVGFiQ2hhbmdlKCRldmVudCwgJ1JFUVVFU1RTLUJPWCcpXCJcbiAgICAgICAgW3R5cGVdPVwiJ3R5cGUyLW1vZGFsLXBvcHVwJ1wiXG4gICAgPlxuICAgIDwvYXBwLWNhLXRhYi1zd2l0Y2g+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJhcmVhLWFsbC1ob2xkZXIgZC1mbGV4IGZsZXgtd3JhcCBmbGV4LXJvd1wiPlxuICAgIEBpZiAoaXNBcmVhRmlsdGVyICYmIGFyZWFGaWx0ZXJTZWxlY3RlZCAhPT0gJ0xvY2F0aW9uJykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi1wYXJ0LWhvbGRlclwiIFtAYXJlYVJpZ2h0U2lkZUFuaW1hdGlvbl09XCInaW4nXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhcmVhLWZvcm1zLWhvbGRlclwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJhcmVhRm9ybVwiXG4gICAgICAgICAgICAgICAgW0BzaG93QW5pbWF0aW9uXT1cIiEhaXNGaWx0ZXJBY3RpdmVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmVhLXNpbmdsZS1mb3JtLWhvbGRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8YXBwLWNhLWlucHV0LWFkZHJlc3MtZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9yaWdpblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5wdXRDb25maWddPVwiZ2V0T3JpZ2luQ29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJUeXBlXT1cIidzaG9ydEFkZHJlc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthZGRyZXNMaXN0XT1cImFkZHJlc3NMaXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZEFkZHJlc3MpPVwiaGFuZGxlT3JpZ2luU2VsZWN0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICA+PC9hcHAtY2EtaW5wdXQtYWRkcmVzcy1kcm9wZG93bj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJlYS1zaW5nbGUtZm9ybS1ob2xkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFwcC1jYS1pbnB1dC1hZGRyZXNzLWRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXN0aW5hdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5wdXRDb25maWddPVwiZ2V0RGVzdGluYXRpb25Db250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlclR5cGVdPVwiJ3Nob3J0QWRkcmVzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FkZHJlc0xpc3RdPVwiYWRkcmVzc0xpc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQWRkcmVzcyk9XCJoYW5kbGVEZXN0aW5hdGlvblNlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYXBwLWNhLWlucHV0LWFkZHJlc3MtZHJvcGRvd24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYWluLXBhcnQtaG9sZGVyXCIgW0BhcmVhTGVmdFNpZGVBbmltYXRpb25dPVwiJ2luJ1wiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmlsdGVyLW1pZGRsZS1ob2xkZXIgbG9jYXRpb24tbWlkZGxlLXBhZGRpbmdcIlxuICAgICAgICAgICAgICAgIFtAc2hvd0FuaW1hdGlvbl09XCIhIWlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT1cImxvY2F0aW9uRm9ybVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGFwcC1jYS1pbnB1dC1hZGRyZXNzLWRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFkZHJlc3NcIlxuICAgICAgICAgICAgICAgICAgICBbaW5wdXRDb25maWddPVwiZ2V0QWRkcmVzc0NvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJUeXBlXT1cIidzaG9ydEFkZHJlc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgW2FkZHJlc0xpc3RdPVwiYWRkcmVzc0xpc3RcIlxuICAgICAgICAgICAgICAgICAgICAoc2VudEFkZHJlc3NWYWx1ZSk9XCJoYW5kbGVJbnB1dFNlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW3JlY2VpdmVkQWRkcmVzc0xpc3RdPVwicmVjZWl2ZWRBZGRyZXNzTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgIFtyZWNlaXZlZEFkZHJlc3NEYXRhXT1cInJlY2VpdmVkQWRkcmVzc0RhdGFcIlxuICAgICAgICAgICAgICAgICAgICAoc2VudEFkZHJlc3NEYXRhKT1cImhhbmRsZUFkZHJlc3NEYXRhKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRBZGRyZXNzKT1cImhhbmRsZUxvY2F0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgID48L2FwcC1jYS1pbnB1dC1hZGRyZXNzLWRyb3Bkb3duPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmaWx0ZXItbWlkZGxlLWhvbGRlciBsb2NhdGlvbi1zbGlkZXItbWlkZGxlLXBhZGRpbmdcIlxuICAgICAgICBbQHNob3dBbmltYXRpb25dPVwiISFpc0ZpbHRlckFjdGl2ZVwiXG4gICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInJhbmdlLW5ldy12YWx1ZS1ob2xkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmFuZ2UtdGV4dFwiPlJhbmdlPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmFuZ2UtZmxleC1ob2xkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IChvblVzZXJWYWx1ZUNoYW5nZSk9XCJzZXRSYW5nZVZhbHVlKCRldmVudClcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8YXBwLWNhLW5neC1zbGlkZXJcbiAgICAgICAgICAgICAgICAgICAgW3NsaWRlck9wdGlvbnNdPVwibG9jYXRpb25TbGlkZXJEYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0YXJ0ZWRWYWx1ZV09XCJsb2NhdGlvblJhbmdlXCJcbiAgICAgICAgICAgICAgICAgICAgW2N1c3RvbUNsYXNzXT1cIidjdXN0b20tc2xpZGVyLWZpbHRlcidcIlxuICAgICAgICAgICAgICAgICAgICAob25Vc2VyVmFsdWVDaGFuZ2UpPVwiY2hhbmdlUmFuZ2VWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+PC9hcHAtY2Etbmd4LXNsaWRlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImJvcmRlci1maWx0ZXIgYm90dG9tLWJvcmRlci1tYXJnaW5cIj48L2Rpdj5cbiJdfQ==
292
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtbG9jYXRpb24tZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY29tcG9uZW50cy9jYS1sb2NhdGlvbi1maWx0ZXIvY2EtbG9jYXRpb24tZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY29tcG9uZW50cy9jYS1sb2NhdGlvbi1maWx0ZXIvY2EtbG9jYXRpb24tZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxFQUNILFdBQVcsRUFDWCxtQkFBbUIsR0FHdEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixVQUFVO0FBQ1YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhELFFBQVE7QUFDUixPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRTNGLGFBQWE7QUFDYixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnR0FBZ0csQ0FBQztBQUVuSSxhQUFhO0FBQ2IsT0FBTyxFQUFFLGNB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QWEsQ0FBQyxlQUFlLENBQUM7WUFDOUIscUJBQXFCLENBQUMsdUJBQXVCLENBQUM7WUFDOUMsc0JBQXNCLENBQUMsd0JBQXdCLENBQUM7U0FDbkQ7OzRGQUVRLHlCQUF5QjtrQkF4QnJDLFNBQVM7K0JBQ0ksd0JBQXdCLGNBQ3RCLElBQUksV0FDUDt3QkFDTCxVQUFVO3dCQUNWLG9CQUFvQjt3QkFDcEIsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsK0JBQStCO3dCQUMvQixvQkFBb0I7cUJBQ3ZCLGNBR1c7d0JBQ1IsY0FBYyxDQUFDLGdCQUFnQixDQUFDO3dCQUNoQyxhQUFhLENBQUMsZUFBZSxDQUFDO3dCQUM5QixxQkFBcUIsQ0FBQyx1QkFBdUIsQ0FBQzt3QkFDOUMsc0JBQXNCLENBQUMsd0JBQXdCLENBQUM7cUJBQ25EO3VGQUdRLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFFVyxnQkFBZ0I7c0JBQWhDLE1BQU07Z0JBR0csZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci1zbGlkZXIvbmd4LXNsaWRlcic7XG5pbXBvcnQge1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIFVudHlwZWRGb3JtR3JvdXAsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLy8gbW9kdWxlc1xuaW1wb3J0IHsgQW5ndWxhclN2Z0ljb25Nb2R1bGUgfSBmcm9tICdhbmd1bGFyLXN2Zy1pY29uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG4vLyBlbnVtc1xuaW1wb3J0IHsgZUxvYWRTdGF0dXMsIGVHZW5lcmFsQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL2VudW1zJztcbmltcG9ydCB7IFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtIH0gZnJvbSAnLi4vLi4vLi4vY2EtbWFwL2VudW1zL3Rvb2xiYXItZmlsdGVyLXN0cmluZy5lbnVtJztcblxuLy8gdmFsaWRhdG9yc1xuaW1wb3J0IHsgYWRkcmVzc1ZhbGlkYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL2NhLWlucHV0LWFkZHJlc3MtZHJvcGRvd24vdmFsaWRhdG9ycy9jYS1pbnB1dC1hZGRyZXNzLnJlZ2V4LXZhbGlkYXRpb25zJztcblxuLy8gYW5pbWF0aW9uc1xuaW1wb3J0IHsgaW5PdXRBbmltYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9hbmltYXRpb25zL2luLW91dC5hbmltYXRpb24nO1xuaW1wb3J0IHsgc2hvd0FuaW1hdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2FuaW1hdGlvbnMvc2hvdy5hbmltYXRpb24nO1xuaW1wb3J0IHsgYXJlYUxlZnRTaWRlQW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vYW5pbWF0aW9ucy9hcmVhLWxlZnQtc2lkZS5hbmltYXRpb24nO1xuaW1wb3J0IHsgYXJlYVJpZ2h0U2lkZUFuaW1hdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2FuaW1hdGlvbnMvYXJlYS1yaWdodC1zaWRlLmFuaW1hdGlvbic7XG5cbi8vIHV0aWxzXG5pbXBvcnQgeyBDYUZpbHRlcnNTdmdSb3V0ZXMgfSBmcm9tICcuLi8uLi91dGlscy9zdmctcm91dGVzL2NhLWZpbHRlcnMtc3ZnLXJvdXRlcyc7XG5cbi8vIG1vZGVsc1xuaW1wb3J0IHsgQXJyYXlTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvYXJyYXktc3RhdHVzLm1vZGVsJztcbmltcG9ydCB7IGZpbHRlck91dHB1dCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9maWx0ZXItb3V0cHV0Lm1vZGVsJztcbmltcG9ydCB7IGZpbHRlck91dHB1dFdpdGhQYXJhbXMgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZmlsdGVyLW91dHB1dC1wYXJhbXMubW9kZWwnO1xuaW1wb3J0IHsgQXJlYUJveFRhYiB9IGZyb20gJy4vbW9kZWxzL2FyZWEtYm94LXRhYi5tb2RlbCc7XG5pbXBvcnQgeyBTZW50QWRkcmVzc0RhdGEgfSBmcm9tICcuLi8uLi8uLi9jYS1pbnB1dC1hZGRyZXNzLWRyb3Bkb3duL21vZGVscy9zZW50LWFkZHJlc3MtZGF0YS5tb2RlbCc7XG5pbXBvcnQgeyBBZGRyZXNzTGlzdFJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2FkZHJlc3MtbGlzdC1yZXNwb25zZS5tb2RlbCc7XG5cbi8vIGNvbnN0YW50c1xuaW1wb3J0IHsgRmlsdGVyQ29uZmlnQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29uc3RhbnRzL2ZpbHRlci1jb25maWcuY29uc3RhbnRzJztcbmltcG9ydCB7IExvY2F0aW9uRmlsdGVyQ29uc3RhbnRzIH0gZnJvbSAnLi91dGlscy9jb25zdGFudHMvbG9jYXRpb24tZmlsdGVyLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBJQ2FJbnB1dCB9IGZyb20gJy4uLy4uLy4uL2NhLWlucHV0L2NvbmZpZyc7XG5pbXBvcnQgeyBDYUxvY2F0aW9uRmlsdGVyQ29uZmlnIH0gZnJvbSAnLi9jb25maWcvY2EtbG9jYXRpb24tZmlsdGVyLmNvbmZpZyc7XG5cbi8vIGNvbXBvbmVudHNcbmltcG9ydCB7IENhVGFiU3dpdGNoQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY2EtdGFiLXN3aXRjaC9jYS10YWItc3dpdGNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUlucHV0QWRkcmVzc0Ryb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9jYS1pbnB1dC1hZGRyZXNzLWRyb3Bkb3duL2NhLWlucHV0LWFkZHJlc3MtZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IENhTmd4U2xpZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY2Etbmd4LXNsaWRlci9jYS1uZ3gtc2xpZGVyLmNvbXBvbmVudCc7XG5cbi8vIG1vZGVsc1xuaW1wb3J0IHsgQWRkcmVzc0RhdGEgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL2NhLWlucHV0LWFkZHJlc3MtZHJvcGRvd24vbW9kZWxzL2FkZHJlc3MtZGF0YS5tb2RlbCc7XG5pbXBvcnQgeyBBZGRyZXNzTGlzdCB9IGZyb20gJy4uLy4uLy4uL2NhLWlucHV0LWFkZHJlc3MtZHJvcGRvd24vbW9kZWxzL2FkZHJlc3MtbGlzdC5tb2RlbCc7XG5cbi8vIGhlbHBlcnNcbmltcG9ydCB7IEZpbHRlckhlbHBlciB9IGZyb20gJy4uLy4uL3V0aWxzL2hlbHBlcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1jYS1sb2NhdGlvbi1maWx0ZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICAvLyBtb2R1bGVzXG4gICAgICAgIEFuZ3VsYXJTdmdJY29uTW9kdWxlLFxuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICAvLyBjb21wb25lbnRzXG4gICAgICAgIENhVGFiU3dpdGNoQ29tcG9uZW50LFxuICAgICAgICBDYUlucHV0QWRkcmVzc0Ryb3Bkb3duQ29tcG9uZW50LFxuICAgICAgICBDYU5neFNsaWRlckNvbXBvbmVudCxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYS1sb2NhdGlvbi1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhLWxvY2F0aW9uLWZpbHRlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgaW5PdXRBbmltYXRpb24oJ2luT3V0QW5pbWF0aW9uJyksXG4gICAgICAgIHNob3dBbmltYXRpb24oJ3Nob3dBbmltYXRpb24nKSxcbiAgICAgICAgYXJlYUxlZnRTaWRlQW5pbWF0aW9uKCdhcmVhTGVmdFNpZGVBbmltYXRpb24nKSxcbiAgICAgICAgYXJlYVJpZ2h0U2lkZUFuaW1hdGlvbignYXJlYVJpZ2h0U2lkZUFuaW1hdGlvbicpLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIENhTG9jYXRpb25GaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgdHlwZSE6IHN0cmluZztcbiAgICBASW5wdXQoKSB0b0RvU3ViVHlwZSE6IHN0cmluZztcbiAgICBASW5wdXQoKSBpc0xlZ2VuZFZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBpc0ZpbHRlckFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzQXJlYUZpbHRlcjogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgYWRkcmVzc0xpc3QhOiBBZGRyZXNzTGlzdFtdO1xuXG4gICAgQElucHV0KCkgcmVjZWl2ZWRBZGRyZXNzTGlzdCE6IEFkZHJlc3NMaXN0UmVzcG9uc2U7XG4gICAgQElucHV0KCkgcmVjZWl2ZWRBZGRyZXNzRGF0YSE6IEFkZHJlc3NEYXRhO1xuXG4gICAgQE91dHB1dCgpIHB1YmxpYyBzZW50QWRkcmVzc1ZhbHVlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgQE91dHB1dCgpIHNlbnRBZGRyZXNzRGF0YTogRXZlbnRFbWl0dGVyPFNlbnRBZGRyZXNzRGF0YT4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPFNlbnRBZGRyZXNzRGF0YT4oKTtcblxuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcHVibGljIGxvY2F0aW9uU2xpZGVyRGF0YTogT3B0aW9ucyA9XG4gICAgICAgIEZpbHRlckNvbmZpZ0NvbnN0YW50cy5MT0NBVElPTl9TTElERVJfREFUQTtcblxuICAgIHB1YmxpYyBsb2NhdGlvbk5hbWVTZXQhOiBzdHJpbmcgfCBudWxsO1xuICAgIHB1YmxpYyBsb2NhdGlvbkZvcm0hOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gICAgcHVibGljIGxvY2F0aW9uUmFuZ2U6IG51bWJlciA9IDI1O1xuICAgIHB1YmxpYyBsb2NhdGlvblJhbmdlU2V0OiBudW1iZXIgPSAyNTtcblxuICAgIHB1YmxpYyBsb25nVmFsOiBudW1iZXIgPSAwO1xuICAgIHB1YmxpYyBsYXRWYWw6IG51bWJlciA9IDA7XG5cbiAgICBwdWJsaWMgb3JpZ2luTG9uZ1ZhbDogbnVtYmVyID0gMDtcbiAgICBwdWJsaWMgb3JpZ2luTGF0VmFsOiBudW1iZXIgPSAwO1xuXG4gICAgcHVibGljIGRlc3RMb25nVmFsOiBudW1iZXIgPSAwO1xuICAgIHB1YmxpYyBkZXN0TGF0VmFsOiBudW1iZXIgPSAwO1xuXG4gICAgcHVibGljIGxvbmdWYWx1ZVNldDogbnVtYmVyID0gMDtcbiAgICBwdWJsaWMgbGF0VmFsU2V0OiBudW1iZXIgPSAwO1xuXG4gICAgcHVibGljIG9yaWdpbkxvbmdWYWxTZXQ6IG51bWJlciA9IDA7XG4gICAgcHVibGljIG9yaWdpbkxhdFZhbFNldDogbnVtYmVyID0gMDtcblxuICAgIHB1YmxpYyBkZXN0TG9uZ1ZhbFNldDogbnVtYmVyID0gMDtcbiAgICBwdWJsaWMgZGVzdExhdFZhbFNldDogbnVtYmVyID0gMDtcblxuICAgIHB1YmxpYyB1bnNlbGVjdGVkVmlzaWJsZUNvdW50OiBudW1iZXIgPSAwO1xuICAgIHB1YmxpYyBhcmVhRmlsdGVyU2VsZWN0ZWQhOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgaXNCdXR0b25BdmFpbGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNBc2NlbmRpbmdTb3J0T3JkZXI6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgcHVibGljIGxvYWRTdGF0dXNFbnVtID0gZUxvYWRTdGF0dXM7XG4gICAgcHVibGljIGZpbHRlckFjdGl2ZUFycmF5OiBBcnJheVN0YXR1c1tdID0gW107XG4gICAgcHVibGljIHRvdGFsRmlsdGVyc051bTogbnVtYmVyID0gMDtcblxuICAgIHB1YmxpYyBhcmVhRm9ybSE6IFVudHlwZWRGb3JtR3JvdXA7XG4gICAgcHVibGljIGxvY2F0aW9uU3RhdGUhOiBzdHJpbmcgfCBudWxsO1xuICAgIHB1YmxpYyByYW5nZVZhbHVlOiBudW1iZXIgPSAwO1xuICAgIHB1YmxpYyBkZXN0aW5hdGlvblN0YXRlITogc3RyaW5nO1xuICAgIHB1YmxpYyBvcmlnaW5TdGF0ZSE6IHN0cmluZztcbiAgICBwdWJsaWMgaGFzU2lkZUFuaW1hdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIGFyZWFCb3hUYWI6IEFyZWFCb3hUYWJbXSA9IExvY2F0aW9uRmlsdGVyQ29uc3RhbnRzLkFSRUFfQk9YX1RBQjtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcblxuICAgICAgICB0aGlzLndhdGNoTG9jYXRpb25Gb3JtVmFsdWVDaGFuZ2VzKCk7XG5cbiAgICAgICAgdGhpcy53YXRjaEFyZWFGb3JtVmFsdWVDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgZ2V0IGdldE9yaWdpbkNvbnRyb2woKTogSUNhSW5wdXQge1xuICAgICAgICByZXR1cm4gQ2FMb2NhdGlvbkZpbHRlckNvbmZpZy5vcmlnaW5Db250cm9sKCk7XG4gICAgfVxuXG4gICAgZ2V0IGdldERlc3RpbmF0aW9uQ29udHJvbCgpOiBJQ2FJbnB1dCB7XG4gICAgICAgIHJldHVybiBDYUxvY2F0aW9uRmlsdGVyQ29uZmlnLmRlc3RpbmF0aW9uQ29udHJvbCgpO1xuICAgIH1cblxuICAgIGdldCBnZXRBZGRyZXNzQ29udHJvbCgpOiBJQ2FJbnB1dCB7XG4gICAgICAgIHJldHVybiBDYUxvY2F0aW9uRmlsdGVyQ29uZmlnLmFkZHJlc3NDb250cm9sKCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyKSB7fVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVGb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvY2F0aW9uRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgYWRkcmVzczogW251bGwsIFsuLi5hZGRyZXNzVmFsaWRhdGlvbl1dLFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmFyZWFGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBvcmlnaW46IFtudWxsLCBbLi4uYWRkcmVzc1ZhbGlkYXRpb25dXSxcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uOiBbbnVsbCwgWy4uLmFkZHJlc3NWYWxpZGF0aW9uXV0sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgd2F0Y2hMb2NhdGlvbkZvcm1WYWx1ZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXJlYUZpbHRlclNlbGVjdGVkID0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uTE9DQVRJT047XG5cbiAgICAgICAgaWYgKHRoaXMubG9jYXRpb25Gb3JtKSB7XG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uRm9ybS52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoY2hhbmdlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNoYW5nZXMuYWRkcmVzcylcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYXRpb25TdGF0ZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRU1QVFlfU1RSSU5HX1BMQUNFSE9MREVSO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB3YXRjaEFyZWFGb3JtVmFsdWVDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hcmVhRm9ybSkge1xuICAgICAgICAgICAgdGhpcy5hcmVhRm9ybS52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoY2hhbmdlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNoYW5nZXMub3JpZ2luKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcmlnaW5TdGF0ZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRU1QVFlfU1RSSU5HX1BMQUNFSE9MREVSO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghY2hhbmdlcy5kZXN0aW5hdGlvbilcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVzdGluYXRpb25TdGF0ZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRU1QVFlfU1RSSU5HX1BMQUNFSE9MREVSO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uQXJlYUZpbHRlckNsb3NlKCk6IHZvaWQge1xuICAgICAgICBGaWx0ZXJIZWxwZXIuaGFuZGxlQXJlYUZpbHRlckNsb3NlKFxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvbkZvcm0sXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uTmFtZVNldCxcbiAgICAgICAgICAgIHRoaXMubG9uZ1ZhbCxcbiAgICAgICAgICAgIHRoaXMubGF0VmFsLFxuICAgICAgICAgICAgdGhpcy5sb25nVmFsdWVTZXQsXG4gICAgICAgICAgICB0aGlzLmxhdFZhbFNldCxcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb25SYW5nZSxcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb25SYW5nZVNldFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblRhYkNoYW5nZShldmVudDogeyBuYW1lOiBzdHJpbmcgfSwgc3ViVHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGFzU2lkZUFuaW1hdGlvbiA9IHRydWU7XG4gICAgICAgIHRoaXMuYXJlYUZpbHRlclNlbGVjdGVkID0gZXZlbnQubmFtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RmlsdGVyVmFsdWUoKTogZmlsdGVyT3V0cHV0IHwgZmlsdGVyT3V0cHV0V2l0aFBhcmFtcyB7XG4gICAgICAgIGxldCBxdWVyeVBhcmFtcyA9IHt9O1xuICAgICAgICBjb25zdCBzdWJUeXBlID1cbiAgICAgICAgICAgIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkVNUFRZX1NUUklOR19QTEFDRUhPTERFUi50b1N0cmluZygpO1xuXG4gICAgICAgIGlmICh0aGlzLmFyZWFGaWx0ZXJTZWxlY3RlZCAhPSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5MT0NBVElPTikge1xuICAgICAgICAgICAgcXVlcnlQYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgb3JpZ2luTGF0VmFsdWU6IHRoaXMub3JpZ2luTGF0VmFsLFxuICAgICAgICAgICAgICAgIG9yaWdpbkxvbmdWYWx1ZTogdGhpcy5vcmlnaW5Mb25nVmFsLFxuICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uTGF0VmFsdWU6IHRoaXMuZGVzdExhdFZhbCxcbiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbkxvbmdWYWx1ZTogdGhpcy5kZXN0TG9uZ1ZhbCxcbiAgICAgICAgICAgICAgICByYW5nZVZhbHVlOiB0aGlzLmxvY2F0aW9uUmFuZ2UsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uUmFuZ2VTZXQgPSB0aGlzLmxvY2F0aW9uUmFuZ2U7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbkxhdFZhbFNldCA9IHRoaXMub3JpZ2luTGF0VmFsO1xuICAgICAgICAgICAgdGhpcy5vcmlnaW5Mb25nVmFsU2V0ID0gdGhpcy5vcmlnaW5Mb25nVmFsO1xuICAgICAgICAgICAgdGhpcy5kZXN0TG9uZ1ZhbFNldCA9IHRoaXMuZGVzdExvbmdWYWw7XG4gICAgICAgICAgICB0aGlzLmRlc3RMYXRWYWxTZXQgPSB0aGlzLmRlc3RMYXRWYWw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICBsb25nVmFsdWU6IHRoaXMubG9uZ1ZhbCxcbiAgICAgICAgICAgICAgICBsYXRWYWx1ZTogdGhpcy5sYXRWYWwsXG4gICAgICAgICAgICAgICAgcmFuZ2VWYWx1ZTogdGhpcy5sb2NhdGlvblJhbmdlLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5sb25nVmFsdWVTZXQgPSB0aGlzLmxvbmdWYWw7XG4gICAgICAgICAgICB0aGlzLmxhdFZhbFNldCA9IHRoaXMubGF0VmFsO1xuICAgICAgICAgICAgdGhpcy5sb2NhdGlvblJhbmdlU2V0ID0gdGhpcy5sb2NhdGlvblJhbmdlO1xuICAgICAgICAgICAgdGhpcy5sb2NhdGlvbk5hbWVTZXQgPSB0aGlzLmxvY2F0aW9uRm9ybS5nZXQoJ2FkZHJlc3MnKT8udmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgZmlsdGVyVHlwZTogdGhpcy50eXBlLFxuICAgICAgICAgICAgYWN0aW9uOiBlR2VuZXJhbEFjdGlvbnMuU0VULFxuICAgICAgICAgICAgcXVlcnlQYXJhbXMsXG4gICAgICAgICAgICBzdWJUeXBlLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJBbGwoZXZlbnQ/OiBFdmVudCk6IGZpbHRlck91dHB1dCB8IGZpbHRlck91dHB1dFdpdGhQYXJhbXMge1xuICAgICAgICBpZiAoZXZlbnQpIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMubG9jYXRpb25Gb3JtLnNldFZhbHVlKHtcbiAgICAgICAgICAgIGFkZHJlc3M6IG51bGwsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFyZWFGb3JtLnNldFZhbHVlKHtcbiAgICAgICAgICAgIG9yaWdpbjogbnVsbCxcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uOiBudWxsLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5sb2NhdGlvblJhbmdlID0gMjU7XG4gICAgICAgIHRoaXMubG9jYXRpb25TdGF0ZSA9IG51bGw7XG4gICAgICAgIHRoaXMubG9uZ1ZhbCA9IDA7XG4gICAgICAgIHRoaXMubGF0VmFsID0gMDtcbiAgICAgICAgdGhpcy5vcmlnaW5Mb25nVmFsID0gMDtcbiAgICAgICAgdGhpcy5vcmlnaW5MYXRWYWwgPSAwO1xuICAgICAgICB0aGlzLmRlc3RMb25nVmFsID0gMDtcbiAgICAgICAgdGhpcy5kZXN0TGF0VmFsID0gMDtcbiAgICAgICAgdGhpcy5sb2NhdGlvbk5hbWVTZXQgPSBudWxsO1xuXG4gICAgICAgIHRoaXMubG9uZ1ZhbHVlU2V0ID0gdGhpcy5sb25nVmFsO1xuICAgICAgICB0aGlzLmxhdFZhbFNldCA9IHRoaXMubGF0VmFsO1xuICAgICAgICB0aGlzLm9yaWdpbkxvbmdWYWxTZXQgPSB0aGlzLm9yaWdpbkxvbmdWYWw7XG4gICAgICAgIHRoaXMub3JpZ2luTGF0VmFsU2V0ID0gdGhpcy5vcmlnaW5MYXRWYWw7XG4gICAgICAgIHRoaXMuZGVzdExhdFZhbFNldCA9IHRoaXMuZGVzdExvbmdWYWw7XG4gICAgICAgIHRoaXMuZGVzdExvbmdWYWxTZXQgPSB0aGlzLmRlc3RMb25nVmFsO1xuICAgICAgICB0aGlzLmxvY2F0aW9uUmFuZ2VTZXQgPSB0aGlzLmxvY2F0aW9uUmFuZ2U7XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIGFjdGlvbjogZUdlbmVyYWxBY3Rpb25zLkNMRUFSLFxuICAgICAgICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgICAgICAgZmlsdGVyVHlwZTogdGhpcy50eXBlLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0UmFuZ2VWYWx1ZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gTnVtYmVyKGlucHV0RWxlbWVudC52YWx1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMudHlwZSAhPSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5MT0NBVElPTl9GSUxURVIpXG4gICAgICAgICAgICB0aGlzLnJhbmdlVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgZWxzZSB0aGlzLmxvY2F0aW9uUmFuZ2UgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hhbmdlUmFuZ2VWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIC8vbGVhdmUgdGhpcyBhbnkgZm9yIG5vd1xuICAgICAgICBpZiAodGhpcy50eXBlICE9PSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5MT0NBVElPTl9GSUxURVIpXG4gICAgICAgICAgICB0aGlzLnJhbmdlVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgZWxzZSB0aGlzLmxvY2F0aW9uUmFuZ2UgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlSW5wdXRTZWxlY3QoZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbnRBZGRyZXNzVmFsdWUuZW1pdChldmVudCk7XG4gICAgICAgIHRoaXMubG9jYXRpb25OYW1lU2V0ID0gZXZlbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZU9yaWdpblNlbGVjdChldmVudDogQWRkcmVzc0RhdGEpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50Py5hZGRyZXNzPy5hZGRyZXNzKSB0aGlzLm9yaWdpblN0YXRlID0gZXZlbnQuYWRkcmVzcy5hZGRyZXNzO1xuXG4gICAgICAgIGlmIChldmVudD8ubG9uZ0xhdCAmJiBldmVudD8ubG9uZ0xhdD8ubGF0aXR1ZGUpIHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luTG9uZ1ZhbCA9IGV2ZW50Py5sb25nTGF0Py5sb25naXR1ZGUgfHwgMDtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luTGF0VmFsID0gZXZlbnQ/LmxvbmdMYXQ/LmxhdGl0dWRlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUxvY2F0aW9uQ2hhbmdlKGV2ZW50OiBBZGRyZXNzRGF0YSk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvbmdWYWwgPSBldmVudD8ubG9uZ0xhdD8ubG9uZ2l0dWRlID8/IDA7XG4gICAgICAgIHRoaXMubGF0VmFsID0gZXZlbnQ/LmxvbmdMYXQ/LmxhdGl0dWRlID8/IDA7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZURlc3RpbmF0aW9uU2VsZWN0KGV2ZW50OiBBZGRyZXNzRGF0YSk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQ/LmFkZHJlc3M/LmFkZHJlc3MpXG4gICAgICAgICAgICB0aGlzLmRlc3RpbmF0aW9uU3RhdGUgPSBldmVudC5hZGRyZXNzLmFkZHJlc3M7XG5cbiAgICAgICAgaWYgKGV2ZW50Py5sb25nTGF0ICYmIGV2ZW50Py5sb25nTGF0Py5sYXRpdHVkZSkge1xuICAgICAgICAgICAgdGhpcy5kZXN0TG9uZ1ZhbCA9IGV2ZW50Py5sb25nTGF0Py5sb25naXR1ZGUgfHwgMDtcbiAgICAgICAgICAgIHRoaXMuZGVzdExhdFZhbCA9IGV2ZW50Py5sb25nTGF0Py5sYXRpdHVkZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTdmdQYXRoKHByb3BlcnR5TmFtZToga2V5b2YgdHlwZW9mIENhRmlsdGVyc1N2Z1JvdXRlcyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBDYUZpbHRlcnNTdmdSb3V0ZXNbcHJvcGVydHlOYW1lXSBhcyBzdHJpbmc7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUFkZHJlc3NEYXRhKGV2ZW50OiBTZW50QWRkcmVzc0RhdGEpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZW50QWRkcmVzc0RhdGEuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImJvcmRlci1maWx0ZXJcIj48L2Rpdj5cbjxkaXYgY2xhc3M9XCJhcmVhRmlsdGVySG9sZGVyXCIgW0BzaG93QW5pbWF0aW9uXT1cIiEhaXNGaWx0ZXJBY3RpdmVcIj5cbiAgICA8YXBwLWNhLXRhYi1zd2l0Y2hcbiAgICAgICAgW3RhYnNdPVwiYXJlYUJveFRhYlwiXG4gICAgICAgIChzd2l0Y2hDbGlja2VkKT1cIm9uVGFiQ2hhbmdlKCRldmVudCwgJ1JFUVVFU1RTLUJPWCcpXCJcbiAgICAgICAgW3R5cGVdPVwiJ3R5cGUyLW1vZGFsLXBvcHVwJ1wiXG4gICAgPlxuICAgIDwvYXBwLWNhLXRhYi1zd2l0Y2g+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJhcmVhLWFsbC1ob2xkZXIgZC1mbGV4IGZsZXgtd3JhcCBmbGV4LXJvd1wiPlxuICAgIEBpZiAoaXNBcmVhRmlsdGVyICYmIGFyZWFGaWx0ZXJTZWxlY3RlZCAhPT0gJ0xvY2F0aW9uJykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi1wYXJ0LWhvbGRlclwiIFtAYXJlYVJpZ2h0U2lkZUFuaW1hdGlvbl09XCInaW4nXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhcmVhLWZvcm1zLWhvbGRlclwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJhcmVhRm9ybVwiXG4gICAgICAgICAgICAgICAgW0BzaG93QW5pbWF0aW9uXT1cIiEhaXNGaWx0ZXJBY3RpdmVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmVhLXNpbmdsZS1mb3JtLWhvbGRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8YXBwLWNhLWlucHV0LWFkZHJlc3MtZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9yaWdpblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5wdXRDb25maWddPVwiZ2V0T3JpZ2luQ29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJUeXBlXT1cIidzaG9ydEFkZHJlc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthZGRyZXNMaXN0XT1cImFkZHJlc3NMaXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZEFkZHJlc3MpPVwiaGFuZGxlT3JpZ2luU2VsZWN0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICA+PC9hcHAtY2EtaW5wdXQtYWRkcmVzcy1kcm9wZG93bj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJlYS1zaW5nbGUtZm9ybS1ob2xkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFwcC1jYS1pbnB1dC1hZGRyZXNzLWRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXN0aW5hdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5wdXRDb25maWddPVwiZ2V0RGVzdGluYXRpb25Db250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlclR5cGVdPVwiJ3Nob3J0QWRkcmVzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FkZHJlc0xpc3RdPVwiYWRkcmVzc0xpc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQWRkcmVzcyk9XCJoYW5kbGVEZXN0aW5hdGlvblNlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYXBwLWNhLWlucHV0LWFkZHJlc3MtZHJvcGRvd24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYWluLXBhcnQtaG9sZGVyXCIgW0BhcmVhTGVmdFNpZGVBbmltYXRpb25dPVwiJ2luJ1wiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmlsdGVyLW1pZGRsZS1ob2xkZXIgbG9jYXRpb24tbWlkZGxlLXBhZGRpbmdcIlxuICAgICAgICAgICAgICAgIFtAc2hvd0FuaW1hdGlvbl09XCIhIWlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT1cImxvY2F0aW9uRm9ybVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGFwcC1jYS1pbnB1dC1hZGRyZXNzLWRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFkZHJlc3NcIlxuICAgICAgICAgICAgICAgICAgICBbaW5wdXRDb25maWddPVwiZ2V0QWRkcmVzc0NvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJUeXBlXT1cIidzaG9ydEFkZHJlc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgW2FkZHJlc0xpc3RdPVwiYWRkcmVzc0xpc3RcIlxuICAgICAgICAgICAgICAgICAgICAoc2VudEFkZHJlc3NWYWx1ZSk9XCJoYW5kbGVJbnB1dFNlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW3JlY2VpdmVkQWRkcmVzc0xpc3RdPVwicmVjZWl2ZWRBZGRyZXNzTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgIFtyZWNlaXZlZEFkZHJlc3NEYXRhXT1cInJlY2VpdmVkQWRkcmVzc0RhdGFcIlxuICAgICAgICAgICAgICAgICAgICAoc2VudEFkZHJlc3NEYXRhKT1cImhhbmRsZUFkZHJlc3NEYXRhKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRBZGRyZXNzKT1cImhhbmRsZUxvY2F0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgID48L2FwcC1jYS1pbnB1dC1hZGRyZXNzLWRyb3Bkb3duPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmaWx0ZXItbWlkZGxlLWhvbGRlciBsb2NhdGlvbi1zbGlkZXItbWlkZGxlLXBhZGRpbmdcIlxuICAgICAgICBbQHNob3dBbmltYXRpb25dPVwiISFpc0ZpbHRlckFjdGl2ZVwiXG4gICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInJhbmdlLW5ldy12YWx1ZS1ob2xkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmFuZ2UtdGV4dFwiPlJhbmdlPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmFuZ2UtZmxleC1ob2xkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IChvblVzZXJWYWx1ZUNoYW5nZSk9XCJzZXRSYW5nZVZhbHVlKCRldmVudClcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8YXBwLWNhLW5neC1zbGlkZXJcbiAgICAgICAgICAgICAgICAgICAgW3NsaWRlck9wdGlvbnNdPVwibG9jYXRpb25TbGlkZXJEYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0YXJ0ZWRWYWx1ZV09XCJsb2NhdGlvblJhbmdlXCJcbiAgICAgICAgICAgICAgICAgICAgW2N1c3RvbUNsYXNzXT1cIidjdXN0b20tc2xpZGVyLWZpbHRlcidcIlxuICAgICAgICAgICAgICAgICAgICAob25Vc2VyVmFsdWVDaGFuZ2UpPVwiY2hhbmdlUmFuZ2VWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+PC9hcHAtY2Etbmd4LXNsaWRlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImJvcmRlci1maWx0ZXIgYm90dG9tLWJvcmRlci1tYXJnaW5cIj48L2Rpdj5cbiJdfQ==
@@ -7,7 +7,7 @@ import { HttpClientModule } from '@angular/common/http';
7
7
  import { AngularSvgIconModule } from 'angular-svg-icon';
8
8
  // enums
9
9
  import { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';
10
- import { eGeneralActions } from 'projects/ca-components/src/lib/enums';
10
+ import { eGeneralActions } from '../../../../enums';
11
11
  // animations
12
12
  import { showAnimation } from '../../../../animations/show.animation';
13
13
  import { inOutAnimation } from '../../../../animations/in-out.animation';
@@ -267,4 +267,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
267
267
  }], canadaStates: [{
268
268
  type: Input
269
269
  }] } });
270
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Etc3RhdGUtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY29tcG9uZW50cy9jYS1zdGF0ZS1maWx0ZXIvY2Etc3RhdGUtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY29tcG9uZW50cy9jYS1zdGF0ZS1maWx0ZXIvY2Etc3RhdGUtZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUdMLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsbUJBQW1CLEdBR3RCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsVUFBVTtBQUNWLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV4RCxRQUFRO0FBQ1IsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDM0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXZFLGFBQWE7QUFDYixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFB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LG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3FCQUNuQixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLGNBQ3pCO3dCQUNSLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQzt3QkFDaEMsYUFBYSxDQUFDLGVBQWUsQ0FBQzt3QkFDOUIsV0FBVyxDQUFDLGFBQWEsQ0FBQztxQkFDN0I7dUZBR1EsSUFBSTtzQkFBWixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBVbnR5cGVkRm9ybUdyb3VwLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuLy8gbW9kdWxlc1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBbmd1bGFyU3ZnSWNvbk1vZHVsZSB9IGZyb20gJ2FuZ3VsYXItc3ZnLWljb24nO1xuXG4vLyBlbnVtc1xuaW1wb3J0IHsgVG9vbGJhckZpbHRlclN0cmluZ0VudW0gfSBmcm9tICcuLi8uLi8uLi9jYS1tYXAvZW51bXMvdG9vbGJhci1maWx0ZXItc3RyaW5nLmVudW0nO1xuaW1wb3J0IHsgZUdlbmVyYWxBY3Rpb25zIH0gZnJvbSAncHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2VudW1zJztcblxuLy8gYW5pbWF0aW9uc1xuaW1wb3J0IHsgc2hvd0FuaW1hdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2FuaW1hdGlvbnMvc2hvdy5hbmltYXRpb24nO1xuaW1wb3J0IHsgaW5PdXRBbmltYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9hbmltYXRpb25zL2luLW91dC5hbmltYXRpb24nO1xuaW1wb3J0IHsgc3RhdGVIZWFkZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9hbmltYXRpb25zL3N0YXRlLWhlYWRlci5hbmltYXRpb24nO1xuXG4vLyB1dGlsc1xuaW1wb3J0IHsgQ2FGaWx0ZXJzU3ZnUm91dGVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvc3ZnLXJvdXRlcy9jYS1maWx0ZXJzLXN2Zy1yb3V0ZXMnO1xuXG4vLyBoZWxwZXJzXG5pbXBvcnQgeyBGaWx0ZXJIZWxwZXIgfSBmcm9tICcuLi8uLi91dGlscy9oZWxwZXJzL2ZpbHRlci5oZWxwZXInO1xuXG4vLyBtb2RlbHNcbmltcG9ydCB7IEFycmF5U3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2FycmF5LXN0YXR1cy5tb2RlbCc7XG5pbXBvcnQgeyBmaWx0ZXJPdXRwdXQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZmlsdGVyLW91dHB1dC5tb2RlbCc7XG5pbXBvcnQgeyBmaWx0ZXJPdXRwdXRXaXRoUGFyYW1zIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci1vdXRwdXQtcGFyYW1zLm1vZGVsJztcblxuLy8gY29uc3RhbnRzXG5pbXBvcnQgeyBEaXJlY3RpdmVDb25zdGFudHMgfSBmcm9tICcuLi8uLi91dGlscy9jb25zdGFudHMvZGlyZWN0aXZlLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBDYUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY2EtaW5wdXQvY2EtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IElDYUlucHV0IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9jYS1pbnB1dC9jb25maWcvY2EtaW5wdXQuY29uZmlnJztcbmltcG9ydCB7IENhU3RhdGVGaWx0ZXJDb25maWcgfSBmcm9tICcuL2NvbmZpZy9jYS1zdGF0ZS1maWx0ZXIuY29uZmlnJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2FwcC1jYS1zdGF0ZS1maWx0ZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYS1zdGF0ZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhLXN0YXRlLWZpbHRlci5jb21wb25lbnQuc2NzcyddLFxuXG4gICAgaW1wb3J0czogW1xuICAgICAgICAvLyBtb2R1bGVzXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICAgICAgQW5ndWxhclN2Z0ljb25Nb2R1bGUsXG4gICAgICAgIENhSW5wdXRDb21wb25lbnQsXG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgaW5PdXRBbmltYXRpb24oJ2luT3V0QW5pbWF0aW9uJyksXG4gICAgICAgIHNob3dBbmltYXRpb24oJ3Nob3dBbmltYXRpb24nKSxcbiAgICAgICAgc3RhdGVIZWFkZXIoJ3N0YXRlSGVhZGVyJyksXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FTdGF0ZUZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSB0eXBlITogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGlzRmlsdGVyQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNTZWFyY2hFeHBhbmRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHVzYVN0YXRlczogQXJyYXlTdGF0dXNbXSA9IERpcmVjdGl2ZUNvbnN0YW50cy5VU0FfU1RBVEVTO1xuICAgIEBJbnB1dCgpIGNhbmFkYVN0YXRlczogQXJyYXlTdGF0dXNbXSA9IERpcmVjdGl2ZUNvbnN0YW50cy5DQU5BREFfU1RBVEVTO1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHVibGljIHNlYXJjaEZvcm0hOiBVbnR5cGVkRm9ybUdyb3VwO1xuICAgIHB1YmxpYyB1c2FTZWxlY3RlZFN0YXRlczogQXJyYXlTdGF0dXNbXSA9IFtdO1xuICAgIHB1YmxpYyBjYW5hZGFTZWxlY3RlZFN0YXRlczogQXJyYXlTdGF0dXNbXSA9IFtdO1xuXG4gICAgcHVibGljIHNlYXJjaElucHV0VmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyBmaWx0ZXJVc2FBY3RpdmVBcnJheTogQXJyYXlTdGF0dXNbXSA9IFtdO1xuICAgIHB1YmxpYyBmaWx0ZXJDYW5hZGFBY3RpdmVBcnJheTogQXJyYXlTdGF0dXNbXSA9IFtdO1xuICAgIHB1YmxpYyBpc0J1dHRvbkF2YWlsYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyB0b3RhbEZpbHRlcnNOdW06IG51bWJlciA9IDA7XG4gICAgcHVibGljIHVuc2VsZWN0ZWRWaXNpYmxlQ291bnQ6IG51bWJlciA9IDA7XG4gICAgcHVibGljIGNhRmlsdGVyc1N2Z1JvdXRlczogQ2FGaWx0ZXJzU3ZnUm91dGVzID0gQ2FGaWx0ZXJzU3ZnUm91dGVzO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgICAgICB0aGlzLndhdGNoU2VhcmNoRm9ybVZhbHVlQ2hhbmdlcygpO1xuICAgIH1cblxuICAgIGdldCBzdGF0ZVNlYXJjaCgpOiBJQ2FJbnB1dCB7XG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uU1RBVEVfRklMVEVSKVxuICAgICAgICAgICAgcmV0dXJuIENhU3RhdGVGaWx0ZXJDb25maWcuZ2V0U3RhdGVTZWFyY2goKTtcbiAgICAgICAgZWxzZSB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gZmlsdGVyIHR5cGUnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUZvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMudHlwZSA9IFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlNUQVRFX0ZJTFRFUjtcbiAgICAgICAgdGhpcy5zZWFyY2hGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBzZWFyY2g6IFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkVNUFRZX1NUUklOR19QTEFDRUhPTERFUixcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB3YXRjaFNlYXJjaEZvcm1WYWx1ZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VhcmNoRm9ybS52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGNoYW5nZXMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gY2hhbmdlcy5zZWFyY2g7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hJbnB1dFZhbHVlID0gaW5wdXRWYWx1ZTtcblxuICAgICAgICAgICAgICAgIGlmIChjaGFuZ2VzLnNlYXJjaCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzYVN0YXRlcy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uaGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zdGF0ZU5hbWUhLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmluY2x1ZGVzKGlucHV0VmFsdWUudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmhpZGRlbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuYWRhU3RhdGVzLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5oaWRkZW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnN0YXRlTmFtZSEudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5jbHVkZXMoaW5wdXRWYWx1ZS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uaGlkZGVuID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzYVN0YXRlcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmhpZGRlbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbmFkYVN0YXRlcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmhpZGRlbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25GaWx0ZXJDbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0J1dHRvbkF2YWlsYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNlYXJjaElucHV0VmFsdWUgPVxuICAgICAgICAgICAgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRU1QVFlfU1RSSU5HX1BMQUNFSE9MREVSO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRUb1NlbGVjdGVkVXNlcihcbiAgICAgICAgaXRlbToge1xuICAgICAgICAgICAgaWQ/OiBudW1iZXI7XG4gICAgICAgICAgICBzdGF0ZU5hbWU/OiBzdHJpbmc7XG4gICAgICAgICAgICBjb3VudD86IG51bWJlcjtcbiAgICAgICAgICAgIGhpZGRlbj86IGJvb2xlYW47XG4gICAgICAgICAgICBpc1NlbGVjdGVkPzogYm9vbGVhbjtcbiAgICAgICAgfSxcbiAgICAgICAgaW5keDogbnVtYmVyLFxuICAgICAgICBzdWJUeXBlPzogc3RyaW5nXG4gICAgKSB7XG4gICAgICAgIGxldCBtYWluQXJyYXk6IEFycmF5U3RhdHVzW10gPSBbXTtcblxuICAgICAgICBpZiAoc3ViVHlwZSA9PT0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uQ0FOQURBKSB7XG4gICAgICAgICAgICBtYWluQXJyYXkgPSB0aGlzLmNhbmFkYVN0YXRlcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1haW5BcnJheSA9IHRoaXMudXNhU3RhdGVzO1xuICAgICAgICB9XG5cbiAgICAgICAgbWFpbkFycmF5W2luZHhdLmlzU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICBtYWluQXJyYXlbaW5keF0uY3VycmVudFNldCA9IHRydWU7XG5cbiAgICAgICAgdGhpcy51bnNlbGVjdGVkVmlzaWJsZUNvdW50ID0gbWFpbkFycmF5LmZpbHRlcihcbiAgICAgICAgICAgIChzdGF0ZSkgPT4gIXN0YXRlLmlzU2VsZWN0ZWRcbiAgICAgICAgKT8ubGVuZ3RoO1xuXG4gICAgICAgIGlmIChzdWJUeXBlID09PSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5DQU5BREEpIHtcbiAgICAgICAgICAgIHRoaXMuY2FuYWRhU2VsZWN0ZWRTdGF0ZXMucHVzaChpdGVtKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXNhU2VsZWN0ZWRTdGF0ZXMucHVzaChpdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2hlY2tGaWx0ZXJBY3RpdmVWYWx1ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjaGVja0ZpbHRlckFjdGl2ZVZhbHVlKCk6IHZvaWQge1xuICAgICAgICBsZXQgdXNhQXJyYXlDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIGxldCBjYW5hZGFBcnJheUNoYW5nZWQgPSBmYWxzZTtcblxuICAgICAgICBjb25zdCBhcnJheVVzYVNlbGVjdGVkID0gWy4uLnRoaXMudXNhU2VsZWN0ZWRTdGF0ZXNdO1xuICAgICAgICBjb25zdCBhcnJheVVzYUFjdGl2ZSA9IFsuLi50aGlzLmZpbHRlclVzYUFjdGl2ZUFycmF5XTtcbiAgICAgICAgY29uc3QgYXJyYXlDYW5hZGFTZWxlY3RlZCA9IFsuLi50aGlzLmNhbmFkYVNlbGVjdGVkU3RhdGVzXTtcbiAgICAgICAgY29uc3QgYXJyYXlDYW5hZGFBY3RpdmUgPSBbLi4udGhpcy5maWx0ZXJDYW5hZGFBY3RpdmVBcnJheV07XG5cbiAgICAgICAgYXJyYXlVc2FTZWxlY3RlZC5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYS5pZCEgLSBiLmlkITtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYXJyYXlVc2FBY3RpdmUuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGEuaWQhIC0gYi5pZCE7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGFycmF5Q2FuYWRhU2VsZWN0ZWQuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGEuaWQhIC0gYi5pZCE7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGFycmF5Q2FuYWRhQWN0aXZlLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBhLmlkISAtIGIuaWQhO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCB1c2FTdHJpbmdmeSA9IEpTT04uc3RyaW5naWZ5KGFycmF5VXNhU2VsZWN0ZWQpO1xuICAgICAgICBjb25zdCB1c2FBY3RpdmVTdHJpbmdpZnkgPSBKU09OLnN0cmluZ2lmeShhcnJheVVzYUFjdGl2ZSk7XG4gICAgICAgIGNvbnN0IGNhbmFkYVN0cmluZ2Z5ID0gSlNPTi5zdHJpbmdpZnkoYXJyYXlDYW5hZGFTZWxlY3RlZCk7XG4gICAgICAgIGNvbnN0IGNhbmFkYUFjdGl2ZVN0cmluZ2lmeSA9IEpTT04uc3RyaW5naWZ5KGFycmF5Q2FuYWRhQWN0aXZlKTtcblxuICAgICAgICBpZiAodXNhU3RyaW5nZnkgPT09IHVzYUFjdGl2ZVN0cmluZ2lmeSkge1xuICAgICAgICAgICAgdXNhQXJyYXlDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB1c2FBcnJheUNoYW5nZWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNhbmFkYVN0cmluZ2Z5ID09PSBjYW5hZGFBY3RpdmVTdHJpbmdpZnkpIHtcbiAgICAgICAgICAgIGNhbmFkYUFycmF5Q2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FuYWRhQXJyYXlDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh1c2FBcnJheUNoYW5nZWQgfHwgY2FuYWRhQXJyYXlDaGFuZ2VkKSB7XG4gICAgICAgICAgICB0aGlzLmlzQnV0dG9uQXZhaWxhYmxlID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNCdXR0b25BdmFpbGFibGUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVGcm9tU2VsZWN0ZWRVc2VyKFxuICAgICAgICBpdGVtOiB7XG4gICAgICAgICAgICBpZD86IG51bWJlcjtcbiAgICAgICAgICAgIHN0YXRlTmFtZT86IHN0cmluZztcbiAgICAgICAgICAgIGNvdW50PzogbnVtYmVyO1xuICAgICAgICAgICAgaGlkZGVuPzogYm9vbGVhbjtcbiAgICAgICAgICAgIGlzU2VsZWN0ZWQ/OiBib29sZWFuO1xuICAgICAgICB9LFxuICAgICAgICBpbmR4OiBudW1iZXIsXG4gICAgICAgIHN1YlR5cGU/OiBzdHJpbmdcbiAgICApOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uU1RBVEVfRklMVEVSKSB7XG4gICAgICAgICAgICBpZiAoc3ViVHlwZSA9PT0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uQ0FOQURBKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYW5hZGFTZWxlY3RlZFN0YXRlcy5zcGxpY2UoaW5keCwgMSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudXNhU2VsZWN0ZWRTdGF0ZXMuc3BsaWNlKGluZHgsIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaWQgPSBpdGVtLmlkO1xuXG4gICAgICAgIGxldCBtYWluQXJyYXk6IEFycmF5U3RhdHVzW10gPSBbXTtcblxuICAgICAgICBpZiAoc3ViVHlwZSA9PT0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uQ0FOQURBKSB7XG4gICAgICAgICAgICBtYWluQXJyYXkgPSB0aGlzLmNhbmFkYVN0YXRlcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1haW5BcnJheSA9IHRoaXMudXNhU3RhdGVzO1xuICAgICAgICB9XG5cbiAgICAgICAgbWFpbkFycmF5LmZvckVhY2goKHN0YXRlKSA9PiB7XG4gICAgICAgICAgICBpZiAoc3RhdGUuaWQgPT09IGlkKSB7XG4gICAgICAgICAgICAgICAgc3RhdGUuaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHN0YXRlLmN1cnJlbnRTZXQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnVuc2VsZWN0ZWRWaXNpYmxlQ291bnQgPSBtYWluQXJyYXkuZmlsdGVyKFxuICAgICAgICAgICAgKHN0YXRlKSA9PiAhc3RhdGUuaXNTZWxlY3RlZFxuICAgICAgICApPy5sZW5ndGg7XG5cbiAgICAgICAgdGhpcy5jaGVja0ZpbHRlckFjdGl2ZVZhbHVlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEZpbHRlclZhbHVlKCk6IGZpbHRlck91dHB1dCB8IGZpbHRlck91dHB1dFdpdGhQYXJhbXMge1xuICAgICAgICBsZXQgc3ViVHlwZSA9XG4gICAgICAgICAgICBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5FTVBUWV9TVFJJTkdfUExBQ0VIT0xERVIudG9TdHJpbmcoKTtcblxuICAgICAgICB0aGlzLmZpbHRlclVzYUFjdGl2ZUFycmF5ID0gWy4uLnRoaXMudXNhU2VsZWN0ZWRTdGF0ZXNdO1xuICAgICAgICB0aGlzLmZpbHRlckNhbmFkYUFjdGl2ZUFycmF5ID0gWy4uLnRoaXMuY2FuYWRhU2VsZWN0ZWRTdGF0ZXNdO1xuXG4gICAgICAgIGNvbnN0IHRvdGFsU3RhdGVzU2VsZWN0ZWQgPVxuICAgICAgICAgICAgdGhpcy5maWx0ZXJVc2FBY3RpdmVBcnJheS5sZW5ndGggK1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJDYW5hZGFBY3RpdmVBcnJheS5sZW5ndGg7XG4gICAgICAgIHRoaXMudG90YWxGaWx0ZXJzTnVtID0gdG90YWxTdGF0ZXNTZWxlY3RlZDtcblxuICAgICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHtcbiAgICAgICAgICAgIHVzYUFycmF5OiB0aGlzLmZpbHRlclVzYUFjdGl2ZUFycmF5LFxuICAgICAgICAgICAgY2FuYWRhQXJyYXk6IHRoaXMuZmlsdGVyQ2FuYWRhQWN0aXZlQXJyYXksXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIGFjdGlvbjogZUdlbmVyYWxBY3Rpb25zLlNFVCxcbiAgICAgICAgICAgIGZpbHRlclR5cGU6IHRoaXMudHlwZSxcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLFxuICAgICAgICAgICAgc3ViVHlwZSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyQWxsKGV2ZW50PzogRXZlbnQpOiBmaWx0ZXJPdXRwdXQgfCBmaWx0ZXJPdXRwdXRXaXRoUGFyYW1zIHtcbiAgICAgICAgaWYgKGV2ZW50KSBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICB0aGlzLnVzYVN0YXRlcy5mb3JFYWNoKChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuaGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICBzdGF0ZS5pc1NlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICBzdGF0ZS5jdXJyZW50U2V0ID0gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY2FuYWRhU3RhdGVzLmZvckVhY2goKHN0YXRlKSA9PiB7XG4gICAgICAgICAgICBzdGF0ZS5oaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIHN0YXRlLmlzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHN0YXRlLmN1cnJlbnRTZXQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy51c2FTZWxlY3RlZFN0YXRlcyA9IFtdO1xuICAgICAgICB0aGlzLmNhbmFkYVNlbGVjdGVkU3RhdGVzID0gW107XG4gICAgICAgIHRoaXMuaXNCdXR0b25BdmFpbGFibGUgPSB0cnVlO1xuICAgICAgICB0aGlzLnRvdGFsRmlsdGVyc051bSA9IDA7XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIGFjdGlvbjogZUdlbmVyYWxBY3Rpb25zLkNMRUFSLFxuICAgICAgICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgICAgICAgZmlsdGVyVHlwZTogdGhpcy50eXBlLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U3ZnUGF0aChwcm9wZXJ0eU5hbWU6IGtleW9mIHR5cGVvZiBDYUZpbHRlcnNTdmdSb3V0ZXMpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gRmlsdGVySGVscGVyLmdldFN2Z1BhdGgocHJvcGVydHlOYW1lKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYm9yZGVyLWZpbHRlciBib3JkZXItdGhyaXJkLW1hcmdpblwiPjwvZGl2PlxuPGRpdlxuICAgIGNsYXNzPVwic2VhcmNoLWlucHV0LWhlYWRlclwiXG4gICAgW2NsYXNzLmFjdGl2ZVNlYXJjaF09XCJpc1NlYXJjaEV4cGFuZGVkXCJcbiAgICBbY2xhc3MuaW5hY3RpdmVTZWFyY2hdPVwiIWlzU2VhcmNoRXhwYW5kZWRcIlxuICAgIFtmb3JtR3JvdXBdPVwic2VhcmNoRm9ybVwiXG4+XG4gICAgPGFwcC1jYS1pbnB1dFxuICAgICAgICBjbGFzcz1cImlucHV0LWZvcm0taG9sZGVyXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VhcmNoXCJcbiAgICAgICAgW2lucHV0Q29uZmlnXT1cInN0YXRlU2VhcmNoXCJcbiAgICA+PC9hcHAtY2EtaW5wdXQ+XG48L2Rpdj5cbkBpZiAodHlwZSA9PT0gJ3N0YXRlRmlsdGVyJykge1xuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzZWxlY3RlZC1zdGF0ZS1ob2xkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydCBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtblwiXG4gICAgPlxuICAgICAgICBAaWYgKHVzYVNlbGVjdGVkU3RhdGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic3RhdGVzLXNlbGVjdGVkIHVzYS1zZWxlY3RlZC1ob2xkZXJcIlxuICAgICAgICAgICAgICAgIFtAc3RhdGVIZWFkZXJdPVwiJ2luJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRlLW5hbWUtaG9sZGVyXCI+VU5JVEVEIFNUQVRFUzwvZGl2PlxuICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICBpdGVtIG9mIHVzYVNlbGVjdGVkU3RhdGVzO1xuICAgICAgICAgICAgICAgICAgICBsZXQgaW5keCA9ICRpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgdHJhY2sgaW5keFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0YXRlLW1haW4taG9sZGVyIGhvbGRlci1ib3R0b20tbWFyZ2luXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtAaW5PdXRBbmltYXRpb25dPVwiJ2luJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbQHNob3dBbmltYXRpb25dPVwiISFpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlRnJvbVNlbGVjdGVkVXNlcihpdGVtLCBpbmR4KVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0YXRlLXByb2ZpbGUtaW1nIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgYWN0aXZlIHN0YXRlLWJvcmRlci1yYWRpdXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdGF0ZS1zaG9ydC1ob2xkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uc3RhdGVTaG9ydE5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0ZWQtc3RhdGUtZnJhbWUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkLW5hbWUtdGV4dCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiB7eyBpdGVtLnN0YXRlTmFtZSB9fSA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkLWljb24gZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJnZXRTdmdQYXRoKCdpY29uQ29uZmlybScpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb24tZGVsZXRlIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZ2V0U3ZnUGF0aCgncmVtb3ZlU2VsZWN0ZWRWYWx1ZScpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChjYW5hZGFTZWxlY3RlZFN0YXRlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0ZXMtc2VsZWN0ZWRcIiBbQHN0YXRlSGVhZGVyXT1cIidpbidcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdGUtbmFtZS1ob2xkZXJcIj5DQU5BREE8L2Rpdj5cbiAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgaXRlbSBvZiBjYW5hZGFTZWxlY3RlZFN0YXRlcztcbiAgICAgICAgICAgICAgICAgICAgbGV0IGluZHggPSAkaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHRyYWNrIGluZHhcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdGF0ZS1tYWluLWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlRnJvbVNlbGVjdGVkVXNlcihpdGVtLCBpbmR4LCAnY2FuYWRhJylcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdGF0ZS1wcm9maWxlLWltZyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0YXRlLXNob3J0LWhvbGRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5zdGF0ZVNob3J0TmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZC1zdGF0ZS1mcmFtZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0ZWQtbmFtZS10ZXh0IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IGl0ZW0uc3RhdGVOYW1lIH19IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0ZWQtaWNvbiBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImdldFN2Z1BhdGgoJ2ljb25Db25maXJtJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1kZWxldGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImdldFN2Z1BhdGgoJ3JlbW92ZVNlbGVjdGVkVmFsdWUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoY2FuYWRhU2VsZWN0ZWRTdGF0ZXMubGVuZ3RoIHx8IHVzYVNlbGVjdGVkU3RhdGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1maWx0ZXIgYm9yZGVyLXRocmlyZC1tYXJnaW5cIj48L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxufVxuXG48ZGl2XG4gICAgY2xhc3M9XCJmaWx0ZXItc3RhdGUtaG9sZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIlxuPlxuICAgIDxkaXYgY2xhc3M9XCJzdGF0ZS1uYW1lLWhvbGRlciBzdGlja3ktaGVhZC10aXRsZVwiPlVOSVRFRCBTVEFURVM8L2Rpdj5cbiAgICBAZm9yIChpdGVtIG9mIHVzYVN0YXRlczsgbGV0IGluZHggPSAkaW5kZXg7IHRyYWNrIGluZHgpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRlLWZyYW1lLWhvbGRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICBAaWYgKCFpdGVtLmhpZGRlbiAmJiAhaXRlbS5pc1NlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBbQGluT3V0QW5pbWF0aW9uXT1cIidpbidcIlxuICAgICAgICAgICAgICAgICAgICBbQHNob3dBbmltYXRpb25dPVwiISFpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhZGRUb1NlbGVjdGVkVXNlcihpdGVtLCBpbmR4KVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3RhdGUtbWFpbi1ob2xkZXIgc3RhdGUtbWFpbi1ob2xkZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRlLXByb2ZpbGUtaW1nIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0YXRlLXNob3J0LWhvbGRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uc3RhdGVTaG9ydE5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRlLWZyYW1lIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkLW5hbWUtdGV4dCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgaXRlbS5zdGF0ZU5hbWUgfX0gPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICA8ZGl2IGNsYXNzPVwic3RhdGUtbmFtZS1ob2xkZXIgY2FuYWRhLXN0aWNreS1oZWFkLXRpdGxlXCI+Q0FOQURBPC9kaXY+XG5cbiAgICBAZm9yIChpdGVtIG9mIGNhbmFkYVN0YXRlczsgbGV0IGluZHggPSAkaW5kZXg7IHRyYWNrIGluZHgpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRlLWZyYW1lLWhvbGRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICBAaWYgKCFpdGVtLmhpZGRlbiAmJiAhaXRlbS5pc1NlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBbQGluT3V0QW5pbWF0aW9uXT1cIidpbidcIlxuICAgICAgICAgICAgICAgICAgICBbQHNob3dBbmltYXRpb25dPVwiISFpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhZGRUb1NlbGVjdGVkVXNlcihpdGVtLCBpbmR4LCAnY2FuYWRhJylcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0YXRlLW1haW4taG9sZGVyIHN0YXRlLW1haW4taG9sZGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0ZS1wcm9maWxlLWltZyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdGF0ZS1zaG9ydC1ob2xkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnN0YXRlU2hvcnROYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0ZS1mcmFtZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZC1uYW1lLXRleHQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IGl0ZW0uc3RhdGVOYW1lIH19IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9kaXY+XG4iXX0=
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Etc3RhdGUtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY29tcG9uZW50cy9jYS1zdGF0ZS1maWx0ZXIvY2Etc3RhdGUtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY29tcG9uZW50cy9jYS1zdGF0ZS1maWx0ZXIvY2Etc3RhdGUtZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUdMLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsbUJBQW1CLEdBR3RCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsVUFBVTtBQUNWLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV4RCxRQUFRO0FBQ1IsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDM0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELGFBQWE7QUFDYixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFB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LG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3FCQUNuQixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLGNBQ3pCO3dCQUNSLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQzt3QkFDaEMsYUFBYSxDQUFDLGVBQWUsQ0FBQzt3QkFDOUIsV0FBVyxDQUFDLGFBQWEsQ0FBQztxQkFDN0I7dUZBR1EsSUFBSTtzQkFBWixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBVbnR5cGVkRm9ybUdyb3VwLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuLy8gbW9kdWxlc1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBbmd1bGFyU3ZnSWNvbk1vZHVsZSB9IGZyb20gJ2FuZ3VsYXItc3ZnLWljb24nO1xuXG4vLyBlbnVtc1xuaW1wb3J0IHsgVG9vbGJhckZpbHRlclN0cmluZ0VudW0gfSBmcm9tICcuLi8uLi8uLi9jYS1tYXAvZW51bXMvdG9vbGJhci1maWx0ZXItc3RyaW5nLmVudW0nO1xuaW1wb3J0IHsgZUdlbmVyYWxBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vZW51bXMnO1xuXG4vLyBhbmltYXRpb25zXG5pbXBvcnQgeyBzaG93QW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vYW5pbWF0aW9ucy9zaG93LmFuaW1hdGlvbic7XG5pbXBvcnQgeyBpbk91dEFuaW1hdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2FuaW1hdGlvbnMvaW4tb3V0LmFuaW1hdGlvbic7XG5pbXBvcnQgeyBzdGF0ZUhlYWRlciB9IGZyb20gJy4uLy4uLy4uLy4uL2FuaW1hdGlvbnMvc3RhdGUtaGVhZGVyLmFuaW1hdGlvbic7XG5cbi8vIHV0aWxzXG5pbXBvcnQgeyBDYUZpbHRlcnNTdmdSb3V0ZXMgfSBmcm9tICcuLi8uLi91dGlscy9zdmctcm91dGVzL2NhLWZpbHRlcnMtc3ZnLXJvdXRlcyc7XG5cbi8vIGhlbHBlcnNcbmltcG9ydCB7IEZpbHRlckhlbHBlciB9IGZyb20gJy4uLy4uL3V0aWxzL2hlbHBlcnMvZmlsdGVyLmhlbHBlcic7XG5cbi8vIG1vZGVsc1xuaW1wb3J0IHsgQXJyYXlTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvYXJyYXktc3RhdHVzLm1vZGVsJztcbmltcG9ydCB7IGZpbHRlck91dHB1dCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9maWx0ZXItb3V0cHV0Lm1vZGVsJztcbmltcG9ydCB7IGZpbHRlck91dHB1dFdpdGhQYXJhbXMgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZmlsdGVyLW91dHB1dC1wYXJhbXMubW9kZWwnO1xuXG4vLyBjb25zdGFudHNcbmltcG9ydCB7IERpcmVjdGl2ZUNvbnN0YW50cyB9IGZyb20gJy4uLy4uL3V0aWxzL2NvbnN0YW50cy9kaXJlY3RpdmUuY29uc3RhbnRzJztcbmltcG9ydCB7IENhSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jYS1pbnB1dC9jYS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSUNhSW5wdXQgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL2NhLWlucHV0L2NvbmZpZy9jYS1pbnB1dC5jb25maWcnO1xuaW1wb3J0IHsgQ2FTdGF0ZUZpbHRlckNvbmZpZyB9IGZyb20gJy4vY29uZmlnL2NhLXN0YXRlLWZpbHRlci5jb25maWcnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnYXBwLWNhLXN0YXRlLWZpbHRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhLXN0YXRlLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2Etc3RhdGUtZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXG5cbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIC8vIG1vZHVsZXNcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgICAgICBBbmd1bGFyU3ZnSWNvbk1vZHVsZSxcbiAgICAgICAgQ2FJbnB1dENvbXBvbmVudCxcbiAgICBdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICBpbk91dEFuaW1hdGlvbignaW5PdXRBbmltYXRpb24nKSxcbiAgICAgICAgc2hvd0FuaW1hdGlvbignc2hvd0FuaW1hdGlvbicpLFxuICAgICAgICBzdGF0ZUhlYWRlcignc3RhdGVIZWFkZXInKSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDYVN0YXRlRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIHR5cGUhOiBzdHJpbmc7XG4gICAgQElucHV0KCkgaXNGaWx0ZXJBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBpc1NlYXJjaEV4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgdXNhU3RhdGVzOiBBcnJheVN0YXR1c1tdID0gRGlyZWN0aXZlQ29uc3RhbnRzLlVTQV9TVEFURVM7XG4gICAgQElucHV0KCkgY2FuYWRhU3RhdGVzOiBBcnJheVN0YXR1c1tdID0gRGlyZWN0aXZlQ29uc3RhbnRzLkNBTkFEQV9TVEFURVM7XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwdWJsaWMgc2VhcmNoRm9ybSE6IFVudHlwZWRGb3JtR3JvdXA7XG4gICAgcHVibGljIHVzYVNlbGVjdGVkU3RhdGVzOiBBcnJheVN0YXR1c1tdID0gW107XG4gICAgcHVibGljIGNhbmFkYVNlbGVjdGVkU3RhdGVzOiBBcnJheVN0YXR1c1tdID0gW107XG5cbiAgICBwdWJsaWMgc2VhcmNoSW5wdXRWYWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIGZpbHRlclVzYUFjdGl2ZUFycmF5OiBBcnJheVN0YXR1c1tdID0gW107XG4gICAgcHVibGljIGZpbHRlckNhbmFkYUFjdGl2ZUFycmF5OiBBcnJheVN0YXR1c1tdID0gW107XG4gICAgcHVibGljIGlzQnV0dG9uQXZhaWxhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIHRvdGFsRmlsdGVyc051bTogbnVtYmVyID0gMDtcbiAgICBwdWJsaWMgdW5zZWxlY3RlZFZpc2libGVDb3VudDogbnVtYmVyID0gMDtcbiAgICBwdWJsaWMgY2FGaWx0ZXJzU3ZnUm91dGVzOiBDYUZpbHRlcnNTdmdSb3V0ZXMgPSBDYUZpbHRlcnNTdmdSb3V0ZXM7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIpIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gICAgICAgIHRoaXMud2F0Y2hTZWFyY2hGb3JtVmFsdWVDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgZ2V0IHN0YXRlU2VhcmNoKCk6IElDYUlucHV0IHtcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5TVEFURV9GSUxURVIpXG4gICAgICAgICAgICByZXR1cm4gQ2FTdGF0ZUZpbHRlckNvbmZpZy5nZXRTdGF0ZVNlYXJjaCgpO1xuICAgICAgICBlbHNlIHRocm93IG5ldyBFcnJvcignVW5rbm93biBmaWx0ZXIgdHlwZScpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRm9ybSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50eXBlID0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uU1RBVEVfRklMVEVSO1xuICAgICAgICB0aGlzLnNlYXJjaEZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgIHNlYXJjaDogVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRU1QVFlfU1RSSU5HX1BMQUNFSE9MREVSLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHdhdGNoU2VhcmNoRm9ybVZhbHVlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWFyY2hGb3JtLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoY2hhbmdlcykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0VmFsdWUgPSBjaGFuZ2VzLnNlYXJjaDtcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaElucHV0VmFsdWUgPSBpbnB1dFZhbHVlO1xuXG4gICAgICAgICAgICAgICAgaWYgKGNoYW5nZXMuc2VhcmNoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXNhU3RhdGVzLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5oaWRkZW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnN0YXRlTmFtZSEudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5jbHVkZXMoaW5wdXRWYWx1ZS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uaGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYW5hZGFTdGF0ZXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmhpZGRlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3RhdGVOYW1lIS50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmNsdWRlcyhpbnB1dFZhbHVlLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5oaWRkZW4gPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXNhU3RhdGVzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uaGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuYWRhU3RhdGVzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uaGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkZpbHRlckNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzQnV0dG9uQXZhaWxhYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2VhcmNoSW5wdXRWYWx1ZSA9XG4gICAgICAgICAgICBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5FTVBUWV9TVFJJTkdfUExBQ0VIT0xERVI7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFRvU2VsZWN0ZWRVc2VyKFxuICAgICAgICBpdGVtOiB7XG4gICAgICAgICAgICBpZD86IG51bWJlcjtcbiAgICAgICAgICAgIHN0YXRlTmFtZT86IHN0cmluZztcbiAgICAgICAgICAgIGNvdW50PzogbnVtYmVyO1xuICAgICAgICAgICAgaGlkZGVuPzogYm9vbGVhbjtcbiAgICAgICAgICAgIGlzU2VsZWN0ZWQ/OiBib29sZWFuO1xuICAgICAgICB9LFxuICAgICAgICBpbmR4OiBudW1iZXIsXG4gICAgICAgIHN1YlR5cGU/OiBzdHJpbmdcbiAgICApIHtcbiAgICAgICAgbGV0IG1haW5BcnJheTogQXJyYXlTdGF0dXNbXSA9IFtdO1xuXG4gICAgICAgIGlmIChzdWJUeXBlID09PSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5DQU5BREEpIHtcbiAgICAgICAgICAgIG1haW5BcnJheSA9IHRoaXMuY2FuYWRhU3RhdGVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWFpbkFycmF5ID0gdGhpcy51c2FTdGF0ZXM7XG4gICAgICAgIH1cblxuICAgICAgICBtYWluQXJyYXlbaW5keF0uaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIG1haW5BcnJheVtpbmR4XS5jdXJyZW50U2V0ID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLnVuc2VsZWN0ZWRWaXNpYmxlQ291bnQgPSBtYWluQXJyYXkuZmlsdGVyKFxuICAgICAgICAgICAgKHN0YXRlKSA9PiAhc3RhdGUuaXNTZWxlY3RlZFxuICAgICAgICApPy5sZW5ndGg7XG5cbiAgICAgICAgaWYgKHN1YlR5cGUgPT09IFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkNBTkFEQSkge1xuICAgICAgICAgICAgdGhpcy5jYW5hZGFTZWxlY3RlZFN0YXRlcy5wdXNoKGl0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51c2FTZWxlY3RlZFN0YXRlcy5wdXNoKGl0ZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jaGVja0ZpbHRlckFjdGl2ZVZhbHVlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNoZWNrRmlsdGVyQWN0aXZlVmFsdWUoKTogdm9pZCB7XG4gICAgICAgIGxldCB1c2FBcnJheUNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgbGV0IGNhbmFkYUFycmF5Q2hhbmdlZCA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IGFycmF5VXNhU2VsZWN0ZWQgPSBbLi4udGhpcy51c2FTZWxlY3RlZFN0YXRlc107XG4gICAgICAgIGNvbnN0IGFycmF5VXNhQWN0aXZlID0gWy4uLnRoaXMuZmlsdGVyVXNhQWN0aXZlQXJyYXldO1xuICAgICAgICBjb25zdCBhcnJheUNhbmFkYVNlbGVjdGVkID0gWy4uLnRoaXMuY2FuYWRhU2VsZWN0ZWRTdGF0ZXNdO1xuICAgICAgICBjb25zdCBhcnJheUNhbmFkYUFjdGl2ZSA9IFsuLi50aGlzLmZpbHRlckNhbmFkYUFjdGl2ZUFycmF5XTtcblxuICAgICAgICBhcnJheVVzYVNlbGVjdGVkLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBhLmlkISAtIGIuaWQhO1xuICAgICAgICB9KTtcblxuICAgICAgICBhcnJheVVzYUFjdGl2ZS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYS5pZCEgLSBiLmlkITtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYXJyYXlDYW5hZGFTZWxlY3RlZC5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYS5pZCEgLSBiLmlkITtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYXJyYXlDYW5hZGFBY3RpdmUuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGEuaWQhIC0gYi5pZCE7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHVzYVN0cmluZ2Z5ID0gSlNPTi5zdHJpbmdpZnkoYXJyYXlVc2FTZWxlY3RlZCk7XG4gICAgICAgIGNvbnN0IHVzYUFjdGl2ZVN0cmluZ2lmeSA9IEpTT04uc3RyaW5naWZ5KGFycmF5VXNhQWN0aXZlKTtcbiAgICAgICAgY29uc3QgY2FuYWRhU3RyaW5nZnkgPSBKU09OLnN0cmluZ2lmeShhcnJheUNhbmFkYVNlbGVjdGVkKTtcbiAgICAgICAgY29uc3QgY2FuYWRhQWN0aXZlU3RyaW5naWZ5ID0gSlNPTi5zdHJpbmdpZnkoYXJyYXlDYW5hZGFBY3RpdmUpO1xuXG4gICAgICAgIGlmICh1c2FTdHJpbmdmeSA9PT0gdXNhQWN0aXZlU3RyaW5naWZ5KSB7XG4gICAgICAgICAgICB1c2FBcnJheUNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHVzYUFycmF5Q2hhbmdlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2FuYWRhU3RyaW5nZnkgPT09IGNhbmFkYUFjdGl2ZVN0cmluZ2lmeSkge1xuICAgICAgICAgICAgY2FuYWRhQXJyYXlDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjYW5hZGFBcnJheUNoYW5nZWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHVzYUFycmF5Q2hhbmdlZCB8fCBjYW5hZGFBcnJheUNoYW5nZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNCdXR0b25BdmFpbGFibGUgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pc0J1dHRvbkF2YWlsYWJsZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZUZyb21TZWxlY3RlZFVzZXIoXG4gICAgICAgIGl0ZW06IHtcbiAgICAgICAgICAgIGlkPzogbnVtYmVyO1xuICAgICAgICAgICAgc3RhdGVOYW1lPzogc3RyaW5nO1xuICAgICAgICAgICAgY291bnQ/OiBudW1iZXI7XG4gICAgICAgICAgICBoaWRkZW4/OiBib29sZWFuO1xuICAgICAgICAgICAgaXNTZWxlY3RlZD86IGJvb2xlYW47XG4gICAgICAgIH0sXG4gICAgICAgIGluZHg6IG51bWJlcixcbiAgICAgICAgc3ViVHlwZT86IHN0cmluZ1xuICAgICk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50eXBlID09PSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5TVEFURV9GSUxURVIpIHtcbiAgICAgICAgICAgIGlmIChzdWJUeXBlID09PSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5DQU5BREEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbmFkYVNlbGVjdGVkU3RhdGVzLnNwbGljZShpbmR4LCAxKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2FTZWxlY3RlZFN0YXRlcy5zcGxpY2UoaW5keCwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpZCA9IGl0ZW0uaWQ7XG5cbiAgICAgICAgbGV0IG1haW5BcnJheTogQXJyYXlTdGF0dXNbXSA9IFtdO1xuXG4gICAgICAgIGlmIChzdWJUeXBlID09PSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5DQU5BREEpIHtcbiAgICAgICAgICAgIG1haW5BcnJheSA9IHRoaXMuY2FuYWRhU3RhdGVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWFpbkFycmF5ID0gdGhpcy51c2FTdGF0ZXM7XG4gICAgICAgIH1cblxuICAgICAgICBtYWluQXJyYXkuZm9yRWFjaCgoc3RhdGUpID0+IHtcbiAgICAgICAgICAgIGlmIChzdGF0ZS5pZCA9PT0gaWQpIHtcbiAgICAgICAgICAgICAgICBzdGF0ZS5pc1NlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgc3RhdGUuY3VycmVudFNldCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudW5zZWxlY3RlZFZpc2libGVDb3VudCA9IG1haW5BcnJheS5maWx0ZXIoXG4gICAgICAgICAgICAoc3RhdGUpID0+ICFzdGF0ZS5pc1NlbGVjdGVkXG4gICAgICAgICk/Lmxlbmd0aDtcblxuICAgICAgICB0aGlzLmNoZWNrRmlsdGVyQWN0aXZlVmFsdWUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RmlsdGVyVmFsdWUoKTogZmlsdGVyT3V0cHV0IHwgZmlsdGVyT3V0cHV0V2l0aFBhcmFtcyB7XG4gICAgICAgIGxldCBzdWJUeXBlID1cbiAgICAgICAgICAgIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkVNUFRZX1NUUklOR19QTEFDRUhPTERFUi50b1N0cmluZygpO1xuXG4gICAgICAgIHRoaXMuZmlsdGVyVXNhQWN0aXZlQXJyYXkgPSBbLi4udGhpcy51c2FTZWxlY3RlZFN0YXRlc107XG4gICAgICAgIHRoaXMuZmlsdGVyQ2FuYWRhQWN0aXZlQXJyYXkgPSBbLi4udGhpcy5jYW5hZGFTZWxlY3RlZFN0YXRlc107XG5cbiAgICAgICAgY29uc3QgdG90YWxTdGF0ZXNTZWxlY3RlZCA9XG4gICAgICAgICAgICB0aGlzLmZpbHRlclVzYUFjdGl2ZUFycmF5Lmxlbmd0aCArXG4gICAgICAgICAgICB0aGlzLmZpbHRlckNhbmFkYUFjdGl2ZUFycmF5Lmxlbmd0aDtcbiAgICAgICAgdGhpcy50b3RhbEZpbHRlcnNOdW0gPSB0b3RhbFN0YXRlc1NlbGVjdGVkO1xuXG4gICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0ge1xuICAgICAgICAgICAgdXNhQXJyYXk6IHRoaXMuZmlsdGVyVXNhQWN0aXZlQXJyYXksXG4gICAgICAgICAgICBjYW5hZGFBcnJheTogdGhpcy5maWx0ZXJDYW5hZGFBY3RpdmVBcnJheSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYWN0aW9uOiBlR2VuZXJhbEFjdGlvbnMuU0VULFxuICAgICAgICAgICAgZmlsdGVyVHlwZTogdGhpcy50eXBlLFxuICAgICAgICAgICAgcXVlcnlQYXJhbXMsXG4gICAgICAgICAgICBzdWJUeXBlLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJBbGwoZXZlbnQ/OiBFdmVudCk6IGZpbHRlck91dHB1dCB8IGZpbHRlck91dHB1dFdpdGhQYXJhbXMge1xuICAgICAgICBpZiAoZXZlbnQpIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMudXNhU3RhdGVzLmZvckVhY2goKHN0YXRlKSA9PiB7XG4gICAgICAgICAgICBzdGF0ZS5oaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIHN0YXRlLmlzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHN0YXRlLmN1cnJlbnRTZXQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jYW5hZGFTdGF0ZXMuZm9yRWFjaCgoc3RhdGUpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLmhpZGRlbiA9IGZhbHNlO1xuICAgICAgICAgICAgc3RhdGUuaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgc3RhdGUuY3VycmVudFNldCA9IGZhbHNlO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnVzYVNlbGVjdGVkU3RhdGVzID0gW107XG4gICAgICAgIHRoaXMuY2FuYWRhU2VsZWN0ZWRTdGF0ZXMgPSBbXTtcbiAgICAgICAgdGhpcy5pc0J1dHRvbkF2YWlsYWJsZSA9IHRydWU7XG4gICAgICAgIHRoaXMudG90YWxGaWx0ZXJzTnVtID0gMDtcblxuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYWN0aW9uOiBlR2VuZXJhbEFjdGlvbnMuQ0xFQVIsXG4gICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICAgICAgICBmaWx0ZXJUeXBlOiB0aGlzLnR5cGUsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTdmdQYXRoKHByb3BlcnR5TmFtZToga2V5b2YgdHlwZW9mIENhRmlsdGVyc1N2Z1JvdXRlcyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBGaWx0ZXJIZWxwZXIuZ2V0U3ZnUGF0aChwcm9wZXJ0eU5hbWUpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJib3JkZXItZmlsdGVyIGJvcmRlci10aHJpcmQtbWFyZ2luXCI+PC9kaXY+XG48ZGl2XG4gICAgY2xhc3M9XCJzZWFyY2gtaW5wdXQtaGVhZGVyXCJcbiAgICBbY2xhc3MuYWN0aXZlU2VhcmNoXT1cImlzU2VhcmNoRXhwYW5kZWRcIlxuICAgIFtjbGFzcy5pbmFjdGl2ZVNlYXJjaF09XCIhaXNTZWFyY2hFeHBhbmRlZFwiXG4gICAgW2Zvcm1Hcm91cF09XCJzZWFyY2hGb3JtXCJcbj5cbiAgICA8YXBwLWNhLWlucHV0XG4gICAgICAgIGNsYXNzPVwiaW5wdXQtZm9ybS1ob2xkZXJcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWFyY2hcIlxuICAgICAgICBbaW5wdXRDb25maWddPVwic3RhdGVTZWFyY2hcIlxuICAgID48L2FwcC1jYS1pbnB1dD5cbjwvZGl2PlxuQGlmICh0eXBlID09PSAnc3RhdGVGaWx0ZXInKSB7XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNlbGVjdGVkLXN0YXRlLWhvbGRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCJcbiAgICA+XG4gICAgICAgIEBpZiAodXNhU2VsZWN0ZWRTdGF0ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzdGF0ZXMtc2VsZWN0ZWQgdXNhLXNlbGVjdGVkLWhvbGRlclwiXG4gICAgICAgICAgICAgICAgW0BzdGF0ZUhlYWRlcl09XCInaW4nXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdGUtbmFtZS1ob2xkZXJcIj5VTklURUQgU1RBVEVTPC9kaXY+XG4gICAgICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0gb2YgdXNhU2VsZWN0ZWRTdGF0ZXM7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpbmR4ID0gJGluZGV4O1xuICAgICAgICAgICAgICAgICAgICB0cmFjayBpbmR4XG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3RhdGUtbWFpbi1ob2xkZXIgaG9sZGVyLWJvdHRvbS1tYXJnaW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW0Bpbk91dEFuaW1hdGlvbl09XCInaW4nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtAc2hvd0FuaW1hdGlvbl09XCIhIWlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVGcm9tU2VsZWN0ZWRVc2VyKGl0ZW0sIGluZHgpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3RhdGUtcHJvZmlsZS1pbWcgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBhY3RpdmUgc3RhdGUtYm9yZGVyLXJhZGl1c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0YXRlLXNob3J0LWhvbGRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5zdGF0ZVNob3J0TmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZC1zdGF0ZS1mcmFtZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0ZWQtbmFtZS10ZXh0IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IGl0ZW0uc3RhdGVOYW1lIH19IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0ZWQtaWNvbiBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImdldFN2Z1BhdGgoJ2ljb25Db25maXJtJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbi1kZWxldGUgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJnZXRTdmdQYXRoKCdyZW1vdmVTZWxlY3RlZFZhbHVlJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGNhbmFkYVNlbGVjdGVkU3RhdGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRlcy1zZWxlY3RlZFwiIFtAc3RhdGVIZWFkZXJdPVwiJ2luJ1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0ZS1uYW1lLWhvbGRlclwiPkNBTkFEQTwvZGl2PlxuICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICBpdGVtIG9mIGNhbmFkYVNlbGVjdGVkU3RhdGVzO1xuICAgICAgICAgICAgICAgICAgICBsZXQgaW5keCA9ICRpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgdHJhY2sgaW5keFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0YXRlLW1haW4taG9sZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVGcm9tU2VsZWN0ZWRVc2VyKGl0ZW0sIGluZHgsICdjYW5hZGEnKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0YXRlLXByb2ZpbGUtaW1nIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgYWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3RhdGUtc2hvcnQtaG9sZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnN0YXRlU2hvcnROYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkLXN0YXRlLWZyYW1lIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZC1uYW1lLXRleHQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgaXRlbS5zdGF0ZU5hbWUgfX0gPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZC1pY29uIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZ2V0U3ZnUGF0aCgnaWNvbkNvbmZpcm0nKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWRlbGV0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZ2V0U3ZnUGF0aCgncmVtb3ZlU2VsZWN0ZWRWYWx1ZScpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChjYW5hZGFTZWxlY3RlZFN0YXRlcy5sZW5ndGggfHwgdXNhU2VsZWN0ZWRTdGF0ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLWZpbHRlciBib3JkZXItdGhyaXJkLW1hcmdpblwiPjwvZGl2PlxuICAgICAgICB9XG4gICAgPC9kaXY+XG59XG5cbjxkaXZcbiAgICBjbGFzcz1cImZpbHRlci1zdGF0ZS1ob2xkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydCBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtblwiXG4+XG4gICAgPGRpdiBjbGFzcz1cInN0YXRlLW5hbWUtaG9sZGVyIHN0aWNreS1oZWFkLXRpdGxlXCI+VU5JVEVEIFNUQVRFUzwvZGl2PlxuICAgIEBmb3IgKGl0ZW0gb2YgdXNhU3RhdGVzOyBsZXQgaW5keCA9ICRpbmRleDsgdHJhY2sgaW5keCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdGUtZnJhbWUtaG9sZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIEBpZiAoIWl0ZW0uaGlkZGVuICYmICFpdGVtLmlzU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIFtAaW5PdXRBbmltYXRpb25dPVwiJ2luJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtAc2hvd0FuaW1hdGlvbl09XCIhIWlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZFRvU2VsZWN0ZWRVc2VyKGl0ZW0sIGluZHgpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdGF0ZS1tYWluLWhvbGRlciBzdGF0ZS1tYWluLWhvbGRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdGUtcHJvZmlsZS1pbWcgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3RhdGUtc2hvcnQtaG9sZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5zdGF0ZVNob3J0TmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdGUtZnJhbWUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0ZWQtbmFtZS10ZXh0IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiB7eyBpdGVtLnN0YXRlTmFtZSB9fSA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDxkaXYgY2xhc3M9XCJzdGF0ZS1uYW1lLWhvbGRlciBjYW5hZGEtc3RpY2t5LWhlYWQtdGl0bGVcIj5DQU5BREE8L2Rpdj5cblxuICAgIEBmb3IgKGl0ZW0gb2YgY2FuYWRhU3RhdGVzOyBsZXQgaW5keCA9ICRpbmRleDsgdHJhY2sgaW5keCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdGUtZnJhbWUtaG9sZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIEBpZiAoIWl0ZW0uaGlkZGVuICYmICFpdGVtLmlzU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIFtAaW5PdXRBbmltYXRpb25dPVwiJ2luJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtAc2hvd0FuaW1hdGlvbl09XCIhIWlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZFRvU2VsZWN0ZWRVc2VyKGl0ZW0sIGluZHgsICdjYW5hZGEnKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3RhdGUtbWFpbi1ob2xkZXIgc3RhdGUtbWFpbi1ob2xkZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRlLXByb2ZpbGUtaW1nIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0YXRlLXNob3J0LWhvbGRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uc3RhdGVTaG9ydE5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRlLWZyYW1lIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkLW5hbWUtdGV4dCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgaXRlbS5zdGF0ZU5hbWUgfX0gPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L2Rpdj5cbiJdfQ==
@@ -8,7 +8,7 @@ import { AngularSvgIconModule } from 'angular-svg-icon';
8
8
  import { FilterHelper } from '../../utils/helpers/filter.helper';
9
9
  // enums
10
10
  import { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';
11
- import { eGeneralActions } from 'projects/ca-components/src/lib/enums';
11
+ import { eGeneralActions } from '../../../../enums';
12
12
  // animations
13
13
  import { showAnimation } from '../../../../animations/show.animation';
14
14
  // constants
@@ -133,4 +133,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
133
133
  }], isFilterActive: [{
134
134
  type: Input
135
135
  }] } });
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtdGltZS1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtZmlsdGVycy9jb21wb25lbnRzL2NhLXRpbWUtZmlsdGVyL2NhLXRpbWUtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY29tcG9uZW50cy9jYS10aW1lLWZpbHRlci9jYS10aW1lLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFHTCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsVUFBVTtBQUNWLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBS3hELFVBQVU7QUFDVixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFakUsUUFBUTtBQUNSLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV2RSxhQUFhO0FBQ2IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBT3RFLFlBQVk7QUFDWixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7O0FBVzdFLE1BQU0sT0FBTyxxQkFBcUI7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SUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOytHQS9IUSxxQkFBcUI7bUdBQXJCLHFCQUFxQixzS0M1Q2xDLCtwREF3Q0EsOC96QkRIYyxZQUFZLDhCQUFFLGdCQUFnQiw4QkFBRSxvQkFBb0IsbU5BS2xELENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDOzs0RkFFbkMscUJBQXFCO2tCQVRqQyxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsQ0FBQyxpQkFDaEQsaUJBQWlCLENBQUMsSUFBSSxZQUMzQixvQkFBb0IsY0FHbEIsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7OEJBR25DLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbi8vIG1vZHVsZXNcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBbmd1bGFyU3ZnSWNvbk1vZHVsZSB9IGZyb20gJ2FuZ3VsYXItc3ZnLWljb24nO1xuXG4vLyB1dGlsc1xuaW1wb3J0IHsgQ2FGaWx0ZXJzU3ZnUm91dGVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvc3ZnLXJvdXRlcy9jYS1maWx0ZXJzLXN2Zy1yb3V0ZXMnO1xuXG4vLyBoZWxwZXJzXG5pbXBvcnQgeyBGaWx0ZXJIZWxwZXIgfSBmcm9tICcuLi8uLi91dGlscy9oZWxwZXJzL2ZpbHRlci5oZWxwZXInO1xuXG4vLyBlbnVtc1xuaW1wb3J0IHsgVG9vbGJhckZpbHRlclN0cmluZ0VudW0gfSBmcm9tICcuLi8uLi8uLi9jYS1tYXAvZW51bXMvdG9vbGJhci1maWx0ZXItc3RyaW5nLmVudW0nO1xuaW1wb3J0IHsgZUdlbmVyYWxBY3Rpb25zIH0gZnJvbSAncHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2VudW1zJztcblxuLy8gYW5pbWF0aW9uc1xuaW1wb3J0IHsgc2hvd0FuaW1hdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2FuaW1hdGlvbnMvc2hvdy5hbmltYXRpb24nO1xuXG4vLyBtb2RlbHNcbmltcG9ydCB7IGZpbHRlck91dHB1dCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9maWx0ZXItb3V0cHV0Lm1vZGVsJztcbmltcG9ydCB7IGZpbHRlck91dHB1dFdpdGhQYXJhbXMgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZmlsdGVyLW91dHB1dC1wYXJhbXMubW9kZWwnO1xuaW1wb3J0IHsgVGltZUZpbHRlck9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvdGltZS1maWx0ZXIubW9kZWwnO1xuXG4vLyBjb25zdGFudHNcbmltcG9ydCB7IFRpbWVGaWx0ZXJDb25zdGFudHMgfSBmcm9tICcuLi8uLi91dGlscy9oZWxwZXJzL3RpbWUtZmlsdGVyLmhlbHBlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSHR0cENsaWVudE1vZHVsZSwgQW5ndWxhclN2Z0ljb25Nb2R1bGVdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc2VsZWN0b3I6ICdhcHAtY2EtdGltZS1maWx0ZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYS10aW1lLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2EtdGltZS1maWx0ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBhbmltYXRpb25zOiBbc2hvd0FuaW1hdGlvbignc2hvd0FuaW1hdGlvbicpXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FUaW1lRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIHR5cGUhOiBzdHJpbmc7XG4gICAgQElucHV0KCkgdGltZVN1YlR5cGUhOiBzdHJpbmc7XG4gICAgQElucHV0KCkgaXNGaWx0ZXJBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHB1YmxpYyBzZWxlY3RlZFRpbWVWYWx1ZSE6IHN0cmluZztcbiAgICBwdWJsaWMgc2VsZWN0ZWRUaW1lWWVhcjogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIGZpbHRlckFjdGl2ZVRpbWUhOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgaXNCdXR0b25BdmFpbGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgbGFzdFllYXI6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyBsYXN0MlllYXJzOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgdGltZU9wdGlvbnNBcnJheTogVGltZUZpbHRlck9wdGlvbnNbXSA9IFtdO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGltZUZpbHRlckluaXQoKTtcbiAgICAgICAgdGhpcy50aW1lT3B0aW9uc0luaXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRpbWVGaWx0ZXJJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnR5cGUgPSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5USU1FX0ZJTFRFUjtcblxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgY29uc3QgcGFzdFllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCkgLSAxO1xuICAgICAgICBjb25zdCBwYXN0MlllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCkgLSAyO1xuXG4gICAgICAgIHRoaXMubGFzdFllYXIgPSBwYXN0WWVhcjtcbiAgICAgICAgdGhpcy5sYXN0MlllYXJzID0gcGFzdDJZZWFyO1xuICAgIH1cblxuICAgIHByaXZhdGUgdGltZU9wdGlvbnNJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50aW1lU3ViVHlwZSA9PT0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uUEFTVClcbiAgICAgICAgICAgIHRoaXMudGltZU9wdGlvbnNBcnJheSA9IFRpbWVGaWx0ZXJDb25zdGFudHMuZ2V0VGltZVBhc3RPcHRpb25zKFxuICAgICAgICAgICAgICAgIHRoaXMubGFzdFllYXIhLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0MlllYXJzIS50b1N0cmluZygpXG4gICAgICAgICAgICApO1xuICAgICAgICBlbHNlIGlmICh0aGlzLnRpbWVTdWJUeXBlID09PSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5GVVRVUkUpXG4gICAgICAgICAgICB0aGlzLnRpbWVPcHRpb25zQXJyYXkgPSBUaW1lRmlsdGVyQ29uc3RhbnRzLmdldFRpbWVGdXR1cmVPcHRpb25zKCk7XG4gICAgICAgIGVsc2UgdGhpcy50aW1lT3B0aW9uc0FycmF5ID0gVGltZUZpbHRlckNvbnN0YW50cy5nZXRUaW1lU2hvcnRPcHRpb25zKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFRpbWVWYWx1ZShtb2Q6IHN0cmluZywgeWVhcj86IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFRpbWVWYWx1ZSA9PT0gbW9kKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGltZVZhbHVlID1cbiAgICAgICAgICAgICAgICBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5FTVBUWV9TVFJJTkdfUExBQ0VIT0xERVI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGltZVZhbHVlID0gbW9kO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHllYXIpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVGltZVllYXIgPT09IHllYXIpIHRoaXMuc2VsZWN0ZWRUaW1lWWVhciA9IG51bGw7XG4gICAgICAgICAgICBlbHNlIHRoaXMuc2VsZWN0ZWRUaW1lWWVhciA9IHllYXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGltZVllYXIgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZmlsdGVyQWN0aXZlVGltZSA9PT0gbW9kKSB7XG4gICAgICAgICAgICB0aGlzLmlzQnV0dG9uQXZhaWxhYmxlID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlzQnV0dG9uQXZhaWxhYmxlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkZpbHRlckNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVGltZVZhbHVlID0gdGhpcy5maWx0ZXJBY3RpdmVUaW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRGaWx0ZXJWYWx1ZShcbiAgICAgICAgJGV2ZW50OiBFdmVudFxuICAgICk6IGZpbHRlck91dHB1dCB8IGZpbHRlck91dHB1dFdpdGhQYXJhbXMgfCB1bmRlZmluZWQge1xuICAgICAgICBsZXQgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICAgICAgbGV0IHN1YlR5cGUgPVxuICAgICAgICAgICAgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRU1QVFlfU1RSSU5HX1BMQUNFSE9MREVSLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgdGhpcy5maWx0ZXJBY3RpdmVUaW1lID0gdGhpcy5zZWxlY3RlZFRpbWVWYWx1ZTtcbiAgICAgICAgY29uc3Qgc2V0QWN0aW9uVHlwZTogc3RyaW5nID0gJ1NldCc7XG5cbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkVGltZVZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyQWxsKCRldmVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFRpbWVZZWFyKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICB0aW1lU2VsZWN0ZWQ6IHRoaXMuZmlsdGVyQWN0aXZlVGltZSxcbiAgICAgICAgICAgICAgICB5ZWFyOiB0aGlzLnNlbGVjdGVkVGltZVllYXIsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcXVlcnlQYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgdGltZVNlbGVjdGVkOiB0aGlzLmZpbHRlckFjdGl2ZVRpbWUsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIGZpbHRlclR5cGU6IHRoaXMudHlwZSxcbiAgICAgICAgICAgIGFjdGlvbjogc2V0QWN0aW9uVHlwZSxcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLFxuICAgICAgICAgICAgc3ViVHlwZSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyQWxsKGV2ZW50PzogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRpbWVWYWx1ZSA9XG4gICAgICAgICAgICBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5FTVBUWV9TVFJJTkdfUExBQ0VIT0xERVI7XG4gICAgICAgIHRoaXMuZmlsdGVyQWN0aXZlVGltZSA9XG4gICAgICAgICAgICBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5FTVBUWV9TVFJJTkdfUExBQ0VIT0xERVI7XG5cbiAgICAgICAgdGhpcy5pc0J1dHRvbkF2YWlsYWJsZSA9IHRydWU7XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIGFjdGlvbjogZUdlbmVyYWxBY3Rpb25zLkNMRUFSLFxuICAgICAgICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgICAgICAgZmlsdGVyVHlwZTogdGhpcy50eXBlLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTdmdQYXRoKHByb3BlcnR5TmFtZToga2V5b2YgdHlwZW9mIENhRmlsdGVyc1N2Z1JvdXRlcyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBGaWx0ZXJIZWxwZXIuZ2V0U3ZnUGF0aChwcm9wZXJ0eU5hbWUpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiIsIkBpZiAodHlwZSA9PT0gJ3RpbWVGaWx0ZXInKSB7XG4gICAgPGRpdiBjbGFzcz1cInRpbWUtZmlsdGVyLWhvbGRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLWZpbHRlclwiPjwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInRpbWUtaXRlbXMtaG9sZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIlxuICAgICAgICA+XG4gICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICB0aW1lT3B0aW9uIG9mIHRpbWVPcHRpb25zQXJyYXk7XG4gICAgICAgICAgICAgICAgbGV0IGluZHggPSAkaW5kZXg7XG4gICAgICAgICAgICAgICAgdHJhY2sgaW5keFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiB0aW1lT3B0aW9uLml0ZW1zOyBsZXQgaW5kID0gJGluZGV4OyB0cmFjayBpbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0aW1lLWl0ZW1zIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZnctbm9ybWFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwic2VsZWN0ZWRUaW1lVmFsdWUgPT09IGl0ZW0ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW0BzaG93QW5pbWF0aW9uXT1cIiEhaXNGaWx0ZXJBY3RpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldFRpbWVWYWx1ZShpdGVtLmxhYmVsKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkLWljb24gZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJnZXRTdmdQYXRoKCdpY29uQ29uZmlybScpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbi1kZWxldGUgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJnZXRTdmdQYXRoKCdyZW1vdmVTZWxlY3RlZFZhbHVlJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItZmlsdGVyIHRpbWUtZGF0YS1ib3JkZXJcIj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG59XG4iXX0=
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtdGltZS1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtZmlsdGVycy9jb21wb25lbnRzL2NhLXRpbWUtZmlsdGVyL2NhLXRpbWUtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY29tcG9uZW50cy9jYS10aW1lLWZpbHRlci9jYS10aW1lLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFHTCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsVUFBVTtBQUNWLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBS3hELFVBQVU7QUFDVixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFakUsUUFBUTtBQUNSLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVwRCxhQUFhO0FBQ2IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBT3RFLFlBQVk7QUFDWixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7O0FBVzdFLE1BQU0sT0FBTyxxQkFBcUI7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SUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOytHQS9IUSxxQkFBcUI7bUdBQXJCLHFCQUFxQixzS0M1Q2xDLCtwREF3Q0EsOC96QkRIYyxZQUFZLDhCQUFFLGdCQUFnQiw4QkFBRSxvQkFBb0IsbU5BS2xELENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDOzs0RkFFbkMscUJBQXFCO2tCQVRqQyxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsQ0FBQyxpQkFDaEQsaUJBQWlCLENBQUMsSUFBSSxZQUMzQixvQkFBb0IsY0FHbEIsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7OEJBR25DLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbi8vIG1vZHVsZXNcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBbmd1bGFyU3ZnSWNvbk1vZHVsZSB9IGZyb20gJ2FuZ3VsYXItc3ZnLWljb24nO1xuXG4vLyB1dGlsc1xuaW1wb3J0IHsgQ2FGaWx0ZXJzU3ZnUm91dGVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvc3ZnLXJvdXRlcy9jYS1maWx0ZXJzLXN2Zy1yb3V0ZXMnO1xuXG4vLyBoZWxwZXJzXG5pbXBvcnQgeyBGaWx0ZXJIZWxwZXIgfSBmcm9tICcuLi8uLi91dGlscy9oZWxwZXJzL2ZpbHRlci5oZWxwZXInO1xuXG4vLyBlbnVtc1xuaW1wb3J0IHsgVG9vbGJhckZpbHRlclN0cmluZ0VudW0gfSBmcm9tICcuLi8uLi8uLi9jYS1tYXAvZW51bXMvdG9vbGJhci1maWx0ZXItc3RyaW5nLmVudW0nO1xuaW1wb3J0IHsgZUdlbmVyYWxBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vZW51bXMnO1xuXG4vLyBhbmltYXRpb25zXG5pbXBvcnQgeyBzaG93QW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vYW5pbWF0aW9ucy9zaG93LmFuaW1hdGlvbic7XG5cbi8vIG1vZGVsc1xuaW1wb3J0IHsgZmlsdGVyT3V0cHV0IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci1vdXRwdXQubW9kZWwnO1xuaW1wb3J0IHsgZmlsdGVyT3V0cHV0V2l0aFBhcmFtcyB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9maWx0ZXItb3V0cHV0LXBhcmFtcy5tb2RlbCc7XG5pbXBvcnQgeyBUaW1lRmlsdGVyT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy90aW1lLWZpbHRlci5tb2RlbCc7XG5cbi8vIGNvbnN0YW50c1xuaW1wb3J0IHsgVGltZUZpbHRlckNvbnN0YW50cyB9IGZyb20gJy4uLy4uL3V0aWxzL2hlbHBlcnMvdGltZS1maWx0ZXIuaGVscGVyJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBIdHRwQ2xpZW50TW9kdWxlLCBBbmd1bGFyU3ZnSWNvbk1vZHVsZV0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzZWxlY3RvcjogJ2FwcC1jYS10aW1lLWZpbHRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhLXRpbWUtZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYS10aW1lLWZpbHRlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGFuaW1hdGlvbnM6IFtzaG93QW5pbWF0aW9uKCdzaG93QW5pbWF0aW9uJyldLFxufSlcbmV4cG9ydCBjbGFzcyBDYVRpbWVGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgdHlwZSE6IHN0cmluZztcbiAgICBASW5wdXQoKSB0aW1lU3ViVHlwZSE6IHN0cmluZztcbiAgICBASW5wdXQoKSBpc0ZpbHRlckFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHVibGljIHNlbGVjdGVkVGltZVZhbHVlITogc3RyaW5nO1xuICAgIHB1YmxpYyBzZWxlY3RlZFRpbWVZZWFyOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgZmlsdGVyQWN0aXZlVGltZSE6IHN0cmluZztcblxuICAgIHB1YmxpYyBpc0J1dHRvbkF2YWlsYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBsYXN0WWVhcjogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIGxhc3QyWWVhcnM6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyB0aW1lT3B0aW9uc0FycmF5OiBUaW1lRmlsdGVyT3B0aW9uc1tdID0gW107XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50aW1lRmlsdGVySW5pdCgpO1xuICAgICAgICB0aGlzLnRpbWVPcHRpb25zSW5pdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdGltZUZpbHRlckluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudHlwZSA9IFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlRJTUVfRklMVEVSO1xuXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICBjb25zdCBwYXN0WWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKSAtIDE7XG4gICAgICAgIGNvbnN0IHBhc3QyWWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKSAtIDI7XG5cbiAgICAgICAgdGhpcy5sYXN0WWVhciA9IHBhc3RZZWFyO1xuICAgICAgICB0aGlzLmxhc3QyWWVhcnMgPSBwYXN0MlllYXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0aW1lT3B0aW9uc0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRpbWVTdWJUeXBlID09PSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5QQVNUKVxuICAgICAgICAgICAgdGhpcy50aW1lT3B0aW9uc0FycmF5ID0gVGltZUZpbHRlckNvbnN0YW50cy5nZXRUaW1lUGFzdE9wdGlvbnMoXG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0WWVhciEudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3QyWWVhcnMhLnRvU3RyaW5nKClcbiAgICAgICAgICAgICk7XG4gICAgICAgIGVsc2UgaWYgKHRoaXMudGltZVN1YlR5cGUgPT09IFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkZVVFVSRSlcbiAgICAgICAgICAgIHRoaXMudGltZU9wdGlvbnNBcnJheSA9IFRpbWVGaWx0ZXJDb25zdGFudHMuZ2V0VGltZUZ1dHVyZU9wdGlvbnMoKTtcbiAgICAgICAgZWxzZSB0aGlzLnRpbWVPcHRpb25zQXJyYXkgPSBUaW1lRmlsdGVyQ29uc3RhbnRzLmdldFRpbWVTaG9ydE9wdGlvbnMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0VGltZVZhbHVlKG1vZDogc3RyaW5nLCB5ZWFyPzogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVGltZVZhbHVlID09PSBtb2QpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUaW1lVmFsdWUgPVxuICAgICAgICAgICAgICAgIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkVNUFRZX1NUUklOR19QTEFDRUhPTERFUjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUaW1lVmFsdWUgPSBtb2Q7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoeWVhcikge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRUaW1lWWVhciA9PT0geWVhcikgdGhpcy5zZWxlY3RlZFRpbWVZZWFyID0gbnVsbDtcbiAgICAgICAgICAgIGVsc2UgdGhpcy5zZWxlY3RlZFRpbWVZZWFyID0geWVhcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUaW1lWWVhciA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5maWx0ZXJBY3RpdmVUaW1lID09PSBtb2QpIHtcbiAgICAgICAgICAgIHRoaXMuaXNCdXR0b25BdmFpbGFibGUgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNCdXR0b25BdmFpbGFibGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uRmlsdGVyQ2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUaW1lVmFsdWUgPSB0aGlzLmZpbHRlckFjdGl2ZVRpbWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEZpbHRlclZhbHVlKFxuICAgICAgICAkZXZlbnQ6IEV2ZW50XG4gICAgKTogZmlsdGVyT3V0cHV0IHwgZmlsdGVyT3V0cHV0V2l0aFBhcmFtcyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGxldCBxdWVyeVBhcmFtcyA9IHt9O1xuICAgICAgICBsZXQgc3ViVHlwZSA9XG4gICAgICAgICAgICBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5FTVBUWV9TVFJJTkdfUExBQ0VIT0xERVIudG9TdHJpbmcoKTtcblxuICAgICAgICB0aGlzLmZpbHRlckFjdGl2ZVRpbWUgPSB0aGlzLnNlbGVjdGVkVGltZVZhbHVlO1xuICAgICAgICBjb25zdCBzZXRBY3Rpb25UeXBlOiBzdHJpbmcgPSAnU2V0JztcblxuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRUaW1lVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJBbGwoJGV2ZW50KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVGltZVllYXIpIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zID0ge1xuICAgICAgICAgICAgICAgIHRpbWVTZWxlY3RlZDogdGhpcy5maWx0ZXJBY3RpdmVUaW1lLFxuICAgICAgICAgICAgICAgIHllYXI6IHRoaXMuc2VsZWN0ZWRUaW1lWWVhcixcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICB0aW1lU2VsZWN0ZWQ6IHRoaXMuZmlsdGVyQWN0aXZlVGltZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgZmlsdGVyVHlwZTogdGhpcy50eXBlLFxuICAgICAgICAgICAgYWN0aW9uOiBzZXRBY3Rpb25UeXBlLFxuICAgICAgICAgICAgcXVlcnlQYXJhbXMsXG4gICAgICAgICAgICBzdWJUeXBlLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJBbGwoZXZlbnQ/OiBFdmVudCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVGltZVZhbHVlID1cbiAgICAgICAgICAgIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkVNUFRZX1NUUklOR19QTEFDRUhPTERFUjtcbiAgICAgICAgdGhpcy5maWx0ZXJBY3RpdmVUaW1lID1cbiAgICAgICAgICAgIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkVNUFRZX1NUUklOR19QTEFDRUhPTERFUjtcblxuICAgICAgICB0aGlzLmlzQnV0dG9uQXZhaWxhYmxlID0gdHJ1ZTtcblxuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYWN0aW9uOiBlR2VuZXJhbEFjdGlvbnMuQ0xFQVIsXG4gICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICAgICAgICBmaWx0ZXJUeXBlOiB0aGlzLnR5cGUsXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFN2Z1BhdGgocHJvcGVydHlOYW1lOiBrZXlvZiB0eXBlb2YgQ2FGaWx0ZXJzU3ZnUm91dGVzKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEZpbHRlckhlbHBlci5nZXRTdmdQYXRoKHByb3BlcnR5TmFtZSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiQGlmICh0eXBlID09PSAndGltZUZpbHRlcicpIHtcbiAgICA8ZGl2IGNsYXNzPVwidGltZS1maWx0ZXItaG9sZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItZmlsdGVyXCI+PC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidGltZS1pdGVtcy1ob2xkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydCBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgIHRpbWVPcHRpb24gb2YgdGltZU9wdGlvbnNBcnJheTtcbiAgICAgICAgICAgICAgICBsZXQgaW5keCA9ICRpbmRleDtcbiAgICAgICAgICAgICAgICB0cmFjayBpbmR4XG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIHRpbWVPcHRpb24uaXRlbXM7IGxldCBpbmQgPSAkaW5kZXg7IHRyYWNrIGluZCkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRpbWUtaXRlbXMgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmdy1ub3JtYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZFRpbWVWYWx1ZSA9PT0gaXRlbS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbQHNob3dBbmltYXRpb25dPVwiISFpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0VGltZVZhbHVlKGl0ZW0ubGFiZWwpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0ZWQtaWNvbiBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImdldFN2Z1BhdGgoJ2ljb25Db25maXJtJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uLWRlbGV0ZSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImdldFN2Z1BhdGgoJ3JlbW92ZVNlbGVjdGVkVmFsdWUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1maWx0ZXIgdGltZS1kYXRhLWJvcmRlclwiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbn1cbiJdfQ==
@@ -10,7 +10,7 @@ import { CaTruckTypeFilterConfig } from './config';
10
10
  import { FilterHelper } from '../../utils/helpers/filter.helper';
11
11
  // enums
12
12
  import { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';
13
- import { eGeneralActions } from 'projects/ca-components/src/lib/enums';
13
+ import { eGeneralActions } from '../../../../enums';
14
14
  // pipes
15
15
  import { FilterTrailerColorPipe } from '../../pipes/filter-trailer-color.pipe';
16
16
  // animations
@@ -179,4 +179,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
179
179
  }], isRepairFilter: [{
180
180
  type: Input
181
181
  }] } });
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtdHJhaWxlci10eXBlLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1maWx0ZXJzL2NvbXBvbmVudHMvY2EtdHJhaWxlci10eXBlLWZpbHRlci9jYS10cmFpbGVyLXR5cGUtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY29tcG9uZW50cy9jYS10cmFpbGVyLXR5cGUtZmlsdGVyL2NhLXRyYWlsZXItdHlwZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFHVCxLQUFLLEVBQ0wsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFDSCxtQkFBbUIsR0FHdEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixVQUFVO0FBQ1YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBYXhELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVuRCxVQUFVO0FBQ1YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWpFLFFBQVE7QUFDUixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFdkUsUUFBUTtBQUNSLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRS9FLGFBQWE7QUFDYixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXRFLGFBQWE7QUFDYixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7QUF3QnhFLE1BQU0sT0FBTyw0QkFBNEI7SUFpQnJDLFlBQW9CLFdBQStCO1FBQS9CLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQWYxQyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUNoQyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUVqQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFFakMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDaEMsNkJBQXdCLEdBQWtCLEVBQUUsQ0FBQztRQUM3QyxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFDbkMseUJBQW9CLEdBQVksSUFBSSxDQUFDO1FBQ3JDLHNCQUFpQixHQUFrQixFQUFFLENBQUM7UUFDdEMsMkJBQXNCLEdBQVcsQ0FBQyxDQUFDO0lBSVksQ0FBQztJQUV2RCxRQUFRO1FBQ0osSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLHVCQUF1QixDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUVPLFVBQVU7UUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3JDLE1BQU0sRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLDJCQUEyQjtRQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVk7YUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDbkIsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2pCLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxVQUFVLENBQUM7Z0JBRW5DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDbkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUk7eUJBQ2QsSUFBSyxDQUFDLFdBQVcsRUFBRTt5QkFDbkIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUM5QixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7O2dCQUNHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDbkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLENBQUMsQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU0sYUFBYTtRQUNoQixZQUFZLENBQUMsaUJBQWlCLENBQzFCLElBQUksQ0FBQyxnQkFBZ0IsRUFDckIsSUFBSSxDQUFDLHdCQUF3QixFQUM3QixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUN0QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUNwQyxDQUFDO0lBQ04sQ0FBQztJQUVNLFNBQVM7UUFDWixNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUNyQyxJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLElBQUksQ0FBQyx3QkFBd0IsRUFDN0IsSUFBSSxDQUFDLG9CQUFvQixDQUM1QixDQUFDO1FBRUYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQztRQUNyRCxJQUFJLENBQUMsd0JBQXdCLEdBQUcsVUFBVSxDQUFDLHlCQUF5QixDQUFDO1FBQ3JFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxVQUFVLENBQUMsb0JBQW9CLENBQUM7SUFDaEUsQ0FBQztJQUVNLGlCQUFpQixDQUFDLElBQWtCLEVBQUUsSUFBWTtRQUNyRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFFeEMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFFbEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQzFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQ25DLEVBQUUsTUFBTSxDQUFDO1FBRVYsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV6QyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU0sc0JBQXNCLENBQUMsSUFBa0IsRUFBRSxJQUFZO1FBQzFELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbkIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBRXhDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUMxQixJQUFJLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQ3BCLE9BQU8sQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2dCQUMzQixPQUFPLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUMvQixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FDMUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FDbkMsRUFBRSxNQUFNLENBQUM7UUFFVixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU0sY0FBYztRQUNqQixJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDckIsTUFBTSxPQUFPLEdBQ1QsdUJBQXVCLENBQUMsd0JBQXdCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFaEUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUUvQixXQUFXLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ3JELElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ3JELENBQUM7UUFFRixNQUFNLElBQUksR0FBRztZQUNULFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNyQixNQUFNLEVBQUUsZUFBZSxDQUFDLEdBQUc7WUFDM0IsV0FBVztZQUNYLE9BQU87U0FDVixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFhO1FBQ3pCLElBQUksS0FBSztZQUFFLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUVuQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsRUFBRSxDQUFDO1FBRW5DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDOUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUU1QixNQUFNLElBQUksR0FBRztZQUNULE1BQU0sRUFBRSxlQUFlLENBQUMsS0FBSztZQUM3QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDeEIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxzQkFBc0I7UUFDekIsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLHNCQUFzQixDQUNuRCxJQUFJLENBQUMsd0JBQXdCLEVBQzdCLElBQUksQ0FBQyxpQkFBaUIsRUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUN6QixDQUFDO1FBRUYsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQztJQUMzRCxDQUFDO0lBRU0sVUFBVSxDQUFDLFlBQTZDO1FBQzNELE9BQU8sWUFBWSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOytHQXhLUSw0QkFBNEI7bUdBQTVCLDRCQUE0QixvU0N2RXpDLGtvTEFpSUE7Z0JEMUVRLFVBQVU7Z0JBQ1YsWUFBWSx1TkFDWixnQkFBZ0IsOEJBQ2hCLG9CQUFvQixnT0FDcEIsbUJBQW1CO2dCQUNuQixhQUFhO2dCQUNiLGdCQUFnQjtnQkFDaEIsUUFBUTtnQkFDUixzQkFBc0IsaURBR2Q7WUFDUixjQUFjLENBQUMsZ0JBQWdCLENBQUM7WUFDaEMsYUFBYSxDQUFDLGVBQWUsQ0FBQztTQUNqQzs7NEZBRVEsNEJBQTRCO2tCQXRCeEMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sNEJBQTRCLFdBRzdCO3dCQUNMLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsUUFBUTt3QkFDUixzQkFBc0I7cUJBQ3pCLGlCQUNjLGlCQUFpQixDQUFDLElBQUksY0FDekI7d0JBQ1IsY0FBYyxDQUFDLGdCQUFnQixDQUFDO3dCQUNoQyxhQUFhLENBQUMsZUFBZSxDQUFDO3FCQUNqQzt1RkFHUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIE9uSW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgSW5wdXQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIFVudHlwZWRGb3JtR3JvdXAsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLy8gbW9kdWxlc1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBbmd1bGFyU3ZnSWNvbk1vZHVsZSB9IGZyb20gJ2FuZ3VsYXItc3ZnLWljb24nO1xuXG4vLyBtb2RlbHNcbmltcG9ydCB7IHVzZXJTZWxlY3RlZCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy91c2VyLXNlbGVjdGVkLm1vZGVsJztcbmltcG9ydCB7IEFycmF5U3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2FycmF5LXN0YXR1cy5tb2RlbCc7XG5pbXBvcnQgeyBmaWx0ZXJPdXRwdXQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZmlsdGVyLW91dHB1dC5tb2RlbCc7XG5pbXBvcnQgeyBmaWx0ZXJPdXRwdXRXaXRoUGFyYW1zIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci1vdXRwdXQtcGFyYW1zLm1vZGVsJztcblxuLy8gdXRpbHNcbmltcG9ydCB7IENhRmlsdGVyc1N2Z1JvdXRlcyB9IGZyb20gJy4uLy4uL3V0aWxzL3N2Zy1yb3V0ZXMvY2EtZmlsdGVycy1zdmctcm91dGVzJztcblxuLy8gY29uZmlnc1xuaW1wb3J0IHsgSUNhSW5wdXQgfSBmcm9tICcuLi8uLi8uLi9jYS1pbnB1dC9jb25maWcvY2EtaW5wdXQuY29uZmlnJztcbmltcG9ydCB7IENhVHJ1Y2tUeXBlRmlsdGVyQ29uZmlnIH0gZnJvbSAnLi9jb25maWcnO1xuXG4vLyBoZWxwZXJzXG5pbXBvcnQgeyBGaWx0ZXJIZWxwZXIgfSBmcm9tICcuLi8uLi91dGlscy9oZWxwZXJzL2ZpbHRlci5oZWxwZXInO1xuXG4vLyBlbnVtc1xuaW1wb3J0IHsgVG9vbGJhckZpbHRlclN0cmluZ0VudW0gfSBmcm9tICcuLi8uLi8uLi9jYS1tYXAvZW51bXMvdG9vbGJhci1maWx0ZXItc3RyaW5nLmVudW0nO1xuaW1wb3J0IHsgZUdlbmVyYWxBY3Rpb25zIH0gZnJvbSAncHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2VudW1zJztcblxuLy8gcGlwZXNcbmltcG9ydCB7IEZpbHRlclRyYWlsZXJDb2xvclBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9maWx0ZXItdHJhaWxlci1jb2xvci5waXBlJztcblxuLy8gYW5pbWF0aW9uc1xuaW1wb3J0IHsgaW5PdXRBbmltYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9hbmltYXRpb25zL2luLW91dC5hbmltYXRpb24nO1xuaW1wb3J0IHsgc2hvd0FuaW1hdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2FuaW1hdGlvbnMvc2hvdy5hbmltYXRpb24nO1xuXG4vLyBjb21wb25lbnRzXG5pbXBvcnQgeyBDYUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY2EtaW5wdXQvY2EtaW5wdXQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2FwcC1jYS10cmFpbGVyLXR5cGUtZmlsdGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2EtdHJhaWxlci10eXBlLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2EtdHJhaWxlci10eXBlLWZpbHRlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgLy8gbW9kdWxlc1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgICAgIEFuZ3VsYXJTdmdJY29uTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICAvLyBjb21wb25lbnRzXG4gICAgICAgIENhSW5wdXRDb21wb25lbnQsXG4gICAgICAgIC8vIHBpcGVzXG4gICAgICAgIEZpbHRlclRyYWlsZXJDb2xvclBpcGUsXG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgaW5PdXRBbmltYXRpb24oJ2luT3V0QW5pbWF0aW9uJyksXG4gICAgICAgIHNob3dBbmltYXRpb24oJ3Nob3dBbmltYXRpb24nKSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDYVRyYWlsZXJUeXBlRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIHR5cGUhOiBzdHJpbmc7XG4gICAgQElucHV0KCkgaXNGaWx0ZXJBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBoYXNMZWZ0U2lkZUljb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSB0cmFpbGVyVHlwZUFycmF5ITogQXJyYXlTdGF0dXNbXTtcbiAgICBASW5wdXQoKSBpc1NlYXJjaEV4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNSZXBhaXJGaWx0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHB1YmxpYyBzZWxlY3RlZFRyYWlsZXJUeXBlQXJyYXk6IEFycmF5U3RhdHVzW10gPSBbXTtcbiAgICBwdWJsaWMgaXNCdXR0b25BdmFpbGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNBc2NlbmRpbmdTb3J0T3JkZXI6IGJvb2xlYW4gPSB0cnVlO1xuICAgIHB1YmxpYyBmaWx0ZXJBY3RpdmVBcnJheTogQXJyYXlTdGF0dXNbXSA9IFtdO1xuICAgIHB1YmxpYyB1bnNlbGVjdGVkVmlzaWJsZUNvdW50OiBudW1iZXIgPSAwO1xuICAgIHB1YmxpYyBzZWFyY2hGb3JtITogVW50eXBlZEZvcm1Hcm91cDtcbiAgICBwdWJsaWMgc2VhcmNoSW5wdXRWYWx1ZSE6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcikge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgICAgICAgdGhpcy53YXRjaFNlYXJjaEZvcm1WYWx1ZUNoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBnZXQgdHJhaWxlclR5cGVTZWFyY2goKTogSUNhSW5wdXQge1xuICAgICAgICByZXR1cm4gQ2FUcnVja1R5cGVGaWx0ZXJDb25maWcuZ2V0VHJhaWxlclR5cGVTZWFyY2goKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUZvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VhcmNoRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgc2VhcmNoOiBudWxsLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHdhdGNoU2VhcmNoRm9ybVZhbHVlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWFyY2hGb3JtLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoY2hhbmdlcykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjaGFuZ2VzLnNlYXJjaCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gY2hhbmdlcy5zZWFyY2gudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hJbnB1dFZhbHVlID0gaW5wdXRWYWx1ZTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYWlsZXJUeXBlQXJyYXkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5oaWRkZW4gPSAhaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5uYW1lIS50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmluY2x1ZGVzKGlucHV0VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFpbGVyVHlwZUFycmF5LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uaGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRmlsdGVyQ2xvc2UoKTogdm9pZCB7XG4gICAgICAgIEZpbHRlckhlbHBlci5oYW5kbGVGaWx0ZXJDbG9zZShcbiAgICAgICAgICAgIHRoaXMudHJhaWxlclR5cGVBcnJheSxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUcmFpbGVyVHlwZUFycmF5LFxuICAgICAgICAgICAgdGhpcy5yZW1vdmVGcm9tU2VsZWN0ZWRVc2VyLmJpbmQodGhpcyksXG4gICAgICAgICAgICB0aGlzLmFkZFRvU2VsZWN0ZWRVc2VyLmJpbmQodGhpcylcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc29ydEl0ZW1zKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzb3J0UmVzdWx0ID0gRmlsdGVySGVscGVyLnNvcnRJdGVtcyhcbiAgICAgICAgICAgIHRoaXMudHJhaWxlclR5cGVBcnJheSxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUcmFpbGVyVHlwZUFycmF5LFxuICAgICAgICAgICAgdGhpcy5pc0FzY2VuZGluZ1NvcnRPcmRlclxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMudHJhaWxlclR5cGVBcnJheSA9IHNvcnRSZXN1bHQuc29ydGVkRmlsdGVyQXJyYXk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUcmFpbGVyVHlwZUFycmF5ID0gc29ydFJlc3VsdC5zb3J0ZWRTZWxlY3RlZEZpbHRlckFycmF5O1xuICAgICAgICB0aGlzLmlzQXNjZW5kaW5nU29ydE9yZGVyID0gc29ydFJlc3VsdC5pc0FzY2VuZGluZ1NvcnRPcmRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkVG9TZWxlY3RlZFVzZXIoaXRlbTogdXNlclNlbGVjdGVkLCBpbmR4OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgbWFpbkFycmF5ID0gdGhpcy50cmFpbGVyVHlwZUFycmF5O1xuXG4gICAgICAgIG1haW5BcnJheVtpbmR4XS5pc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgbWFpbkFycmF5W2luZHhdLmN1cnJlbnRTZXQgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMudW5zZWxlY3RlZFZpc2libGVDb3VudCA9IG1haW5BcnJheS5maWx0ZXIoXG4gICAgICAgICAgICAodHJhaWxlcikgPT4gIXRyYWlsZXIuaXNTZWxlY3RlZFxuICAgICAgICApPy5sZW5ndGg7XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZFRyYWlsZXJUeXBlQXJyYXkucHVzaChpdGVtKTtcblxuICAgICAgICB0aGlzLmNoZWNrRmlsdGVyQWN0aXZlVmFsdWUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlRnJvbVNlbGVjdGVkVXNlcihpdGVtOiB1c2VyU2VsZWN0ZWQsIGluZHg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVHJhaWxlclR5cGVBcnJheS5zcGxpY2UoaW5keCwgMSk7XG4gICAgICAgIGNvbnN0IGlkID0gaXRlbS5pZDtcbiAgICAgICAgY29uc3QgbWFpbkFycmF5ID0gdGhpcy50cmFpbGVyVHlwZUFycmF5O1xuXG4gICAgICAgIG1haW5BcnJheS5mb3JFYWNoKCh0cmFpbGVyKSA9PiB7XG4gICAgICAgICAgICBpZiAodHJhaWxlci5pZCA9PT0gaWQpIHtcbiAgICAgICAgICAgICAgICB0cmFpbGVyLmlzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0cmFpbGVyLmN1cnJlbnRTZXQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy51bnNlbGVjdGVkVmlzaWJsZUNvdW50ID0gbWFpbkFycmF5LmZpbHRlcihcbiAgICAgICAgICAgICh0cmFpbGVyKSA9PiAhdHJhaWxlci5pc1NlbGVjdGVkXG4gICAgICAgICk/Lmxlbmd0aDtcblxuICAgICAgICB0aGlzLmNoZWNrRmlsdGVyQWN0aXZlVmFsdWUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RmlsdGVyVmFsdWUoKTogZmlsdGVyT3V0cHV0IHwgZmlsdGVyT3V0cHV0V2l0aFBhcmFtcyB7XG4gICAgICAgIGxldCBxdWVyeVBhcmFtcyA9IHt9O1xuICAgICAgICBjb25zdCBzdWJUeXBlID1cbiAgICAgICAgICAgIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkVNUFRZX1NUUklOR19QTEFDRUhPTERFUi50b1N0cmluZygpO1xuXG4gICAgICAgIHRoaXMuaXNCdXR0b25BdmFpbGFibGUgPSBmYWxzZTtcblxuICAgICAgICBxdWVyeVBhcmFtcyA9IHRoaXMuc2VsZWN0ZWRUcmFpbGVyVHlwZUFycmF5Lm1hcCgoaXRlbSkgPT5cbiAgICAgICAgICAgIHRoaXMuaXNSZXBhaXJGaWx0ZXIgPyBpdGVtLnRyYWlsZXJOdW1iZXIgOiBpdGVtLmlkXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIGZpbHRlclR5cGU6IHRoaXMudHlwZSxcbiAgICAgICAgICAgIGFjdGlvbjogZUdlbmVyYWxBY3Rpb25zLlNFVCxcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLFxuICAgICAgICAgICAgc3ViVHlwZSxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJBbGwoZXZlbnQ/OiBFdmVudCk6IGZpbHRlck91dHB1dCB8IGZpbHRlck91dHB1dFdpdGhQYXJhbXMge1xuICAgICAgICBpZiAoZXZlbnQpIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUcmFpbGVyVHlwZUFycmF5ID0gW107XG5cbiAgICAgICAgdGhpcy50cmFpbGVyVHlwZUFycmF5LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0uaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgaXRlbS5jdXJyZW50U2V0ID0gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuaXNCdXR0b25BdmFpbGFibGUgPSB0cnVlO1xuICAgICAgICB0aGlzLmZpbHRlckFjdGl2ZUFycmF5ID0gW107XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIGFjdGlvbjogZUdlbmVyYWxBY3Rpb25zLkNMRUFSLFxuICAgICAgICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgICAgICAgZmlsdGVyVHlwZTogdGhpcy50eXBlLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hlY2tGaWx0ZXJBY3RpdmVWYWx1ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZmlsdGVyQ2hlY2sgPSBGaWx0ZXJIZWxwZXIuY2hlY2tGaWx0ZXJBY3RpdmVWYWx1ZShcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUcmFpbGVyVHlwZUFycmF5LFxuICAgICAgICAgICAgdGhpcy5maWx0ZXJBY3RpdmVBcnJheSxcbiAgICAgICAgICAgIHRoaXMuaXNCdXR0b25BdmFpbGFibGVcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmlzQnV0dG9uQXZhaWxhYmxlID0gZmlsdGVyQ2hlY2suaXNCdXR0b25BdmFpbGFibGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFN2Z1BhdGgocHJvcGVydHlOYW1lOiBrZXlvZiB0eXBlb2YgQ2FGaWx0ZXJzU3ZnUm91dGVzKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEZpbHRlckhlbHBlci5nZXRTdmdQYXRoKHByb3BlcnR5TmFtZSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiQGlmICh0eXBlID09PSAndHJhaWxlclR5cGVGaWx0ZXInKSB7XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNlYXJjaC1pbnB1dC1oZWFkZXJcIlxuICAgICAgICBbY2xhc3MuYWN0aXZlU2VhcmNoVHJhaWxlcl09XCJpc1JlcGFpckZpbHRlclwiXG4gICAgICAgIFtjbGFzcy5kLW5vbmVdPVwiIWlzUmVwYWlyRmlsdGVyXCJcbiAgICAgICAgW2Zvcm1Hcm91cF09XCJzZWFyY2hGb3JtXCJcbiAgICA+XG4gICAgICAgIDxhcHAtY2EtaW5wdXRcbiAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZm9ybS1ob2xkZXJcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VhcmNoXCJcbiAgICAgICAgICAgIFtpbnB1dENvbmZpZ109XCJ0cmFpbGVyVHlwZVNlYXJjaFwiXG4gICAgICAgID48L2FwcC1jYS1pbnB1dD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLWZpbHRlclwiPjwvZGl2PlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzZWxlY3RlZC10cmFpbGVyLWhvbGRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCJcbiAgICA+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2Ygc2VsZWN0ZWRUcmFpbGVyVHlwZUFycmF5OyBsZXQgaW5keCA9ICRpbmRleDsgdHJhY2sgaW5keCkge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidHJhaWxlci1tYWluLWhvbGRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgICAgICAgICAgICAgIFtAaW5PdXRBbmltYXRpb25dPVwiJ2luJ1wiXG4gICAgICAgICAgICAgICAgW0BzaG93QW5pbWF0aW9uXT1cIiEhaXNGaWx0ZXJBY3RpdmVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVGcm9tU2VsZWN0ZWRVc2VyKGl0ZW0sIGluZHgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0ZWQtdHJhaWxlci1mcmFtZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZC1uYW1lLXRleHQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IGl0ZW0ubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5pY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdC1pdGVtLWxvZ29cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS1zdmctZmlsbC1jb2xvcic6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5uYW1lIHwgZmlsdGVyVHJhaWxlckNvbG9yUGlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiaXRlbS5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHJ1Y2stbG9nby1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0/LmNvdW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY291bnQtaG9sZGVyIGQtaW5saW5lLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgYWN0aXZlQ291bnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uY291bnQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIEhlcmUgYXMgd2VsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmNvdW50OyBlbHNlIG5vQ291bnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZC1pY29uIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZ2V0U3ZnUGF0aCgnaWNvbkNvbmZpcm0nKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vQ291bnRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci1ob2xkZXIgYWN0aXZlQ291bnRlclwiPjI8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlRnJvbVNlbGVjdGVkVXNlcihpdGVtLCBpbmR4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb24tZGVsZXRlIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuY291bnRlck1hcmdpbl09XCJpdGVtLmNvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tZGVsZXRlLWhvbGRcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZ2V0U3ZnUGF0aCgncmVtb3ZlU2VsZWN0ZWRWYWx1ZScpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChcbiAgICAgICAgICAgIHNlbGVjdGVkVHJhaWxlclR5cGVBcnJheS5sZW5ndGggJiZcbiAgICAgICAgICAgIHNlbGVjdGVkVHJhaWxlclR5cGVBcnJheS5sZW5ndGggPCB0cmFpbGVyVHlwZUFycmF5Lmxlbmd0aFxuICAgICAgICApIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItZmlsdGVyIGJvcmRlci10aHJpcmQtbWFyZ2luXCI+PC9kaXY+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLXRyYWlsZXItaG9sZGVyXCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgdHJhaWxlclR5cGVBcnJheTsgbGV0IGluZHggPSAkaW5kZXg7IHRyYWNrIGluZHgpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFpbGVyLWZyYW1lLWhvbGRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgQGlmICghaXRlbS5oaWRkZW4gJiYgIWl0ZW0uaXNTZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBbQGluT3V0QW5pbWF0aW9uXT1cIidpbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW0BzaG93QW5pbWF0aW9uXT1cIiEhaXNGaWx0ZXJBY3RpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZFRvU2VsZWN0ZWRVc2VyKGl0ZW0sIGluZHgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHJhaWxlci1tYWluLWhvbGRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0cmFpbGVyLWZyYW1lIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgZnctbm9ybWFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0ZWQtbmFtZS10ZXh0IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IGl0ZW0ubmFtZSB9fSA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInR5cGUtaWNvbiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctLXN2Zy1maWxsLWNvbG9yJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ubmFtZSB8IGZpbHRlclRyYWlsZXJDb2xvclBpcGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uIHNyYz1cInt7IGl0ZW0uaWNvbiB9fVwiPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5jb3VudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudC1ob2xkZXIgZC1pbmxpbmUtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBjYS1mb250LXNlbWktYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmNvdW50IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9kaXY+XG59XG48ZGl2IGNsYXNzPVwiYm9yZGVyLWZpbHRlclwiPjwvZGl2PlxuIl19
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtdHJhaWxlci10eXBlLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1maWx0ZXJzL2NvbXBvbmVudHMvY2EtdHJhaWxlci10eXBlLWZpbHRlci9jYS10cmFpbGVyLXR5cGUtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY29tcG9uZW50cy9jYS10cmFpbGVyLXR5cGUtZmlsdGVyL2NhLXRyYWlsZXItdHlwZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFHVCxLQUFLLEVBQ0wsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFDSCxtQkFBbUIsR0FHdEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixVQUFVO0FBQ1YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBYXhELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVuRCxVQUFVO0FBQ1YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWpFLFFBQVE7QUFDUixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1C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QUNiLGdCQUFnQjt3QkFDaEIsUUFBUTt3QkFDUixzQkFBc0I7cUJBQ3pCLGlCQUNjLGlCQUFpQixDQUFDLElBQUksY0FDekI7d0JBQ1IsY0FBYyxDQUFDLGdCQUFnQixDQUFDO3dCQUNoQyxhQUFhLENBQUMsZUFBZSxDQUFDO3FCQUNqQzt1RkFHUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIE9uSW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgSW5wdXQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIFVudHlwZWRGb3JtR3JvdXAsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLy8gbW9kdWxlc1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBbmd1bGFyU3ZnSWNvbk1vZHVsZSB9IGZyb20gJ2FuZ3VsYXItc3ZnLWljb24nO1xuXG4vLyBtb2RlbHNcbmltcG9ydCB7IHVzZXJTZWxlY3RlZCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy91c2VyLXNlbGVjdGVkLm1vZGVsJztcbmltcG9ydCB7IEFycmF5U3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2FycmF5LXN0YXR1cy5tb2RlbCc7XG5pbXBvcnQgeyBmaWx0ZXJPdXRwdXQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZmlsdGVyLW91dHB1dC5tb2RlbCc7XG5pbXBvcnQgeyBmaWx0ZXJPdXRwdXRXaXRoUGFyYW1zIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci1vdXRwdXQtcGFyYW1zLm1vZGVsJztcblxuLy8gdXRpbHNcbmltcG9ydCB7IENhRmlsdGVyc1N2Z1JvdXRlcyB9IGZyb20gJy4uLy4uL3V0aWxzL3N2Zy1yb3V0ZXMvY2EtZmlsdGVycy1zdmctcm91dGVzJztcblxuLy8gY29uZmlnc1xuaW1wb3J0IHsgSUNhSW5wdXQgfSBmcm9tICcuLi8uLi8uLi9jYS1pbnB1dC9jb25maWcvY2EtaW5wdXQuY29uZmlnJztcbmltcG9ydCB7IENhVHJ1Y2tUeXBlRmlsdGVyQ29uZmlnIH0gZnJvbSAnLi9jb25maWcnO1xuXG4vLyBoZWxwZXJzXG5pbXBvcnQgeyBGaWx0ZXJIZWxwZXIgfSBmcm9tICcuLi8uLi91dGlscy9oZWxwZXJzL2ZpbHRlci5oZWxwZXInO1xuXG4vLyBlbnVtc1xuaW1wb3J0IHsgVG9vbGJhckZpbHRlclN0cmluZ0VudW0gfSBmcm9tICcuLi8uLi8uLi9jYS1tYXAvZW51bXMvdG9vbGJhci1maWx0ZXItc3RyaW5nLmVudW0nO1xuaW1wb3J0IHsgZUdlbmVyYWxBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vZW51bXMnO1xuXG4vLyBwaXBlc1xuaW1wb3J0IHsgRmlsdGVyVHJhaWxlckNvbG9yUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL2ZpbHRlci10cmFpbGVyLWNvbG9yLnBpcGUnO1xuXG4vLyBhbmltYXRpb25zXG5pbXBvcnQgeyBpbk91dEFuaW1hdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2FuaW1hdGlvbnMvaW4tb3V0LmFuaW1hdGlvbic7XG5pbXBvcnQgeyBzaG93QW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vYW5pbWF0aW9ucy9zaG93LmFuaW1hdGlvbic7XG5cbi8vIGNvbXBvbmVudHNcbmltcG9ydCB7IENhSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jYS1pbnB1dC9jYS1pbnB1dC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnYXBwLWNhLXRyYWlsZXItdHlwZS1maWx0ZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYS10cmFpbGVyLXR5cGUtZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYS10cmFpbGVyLXR5cGUtZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaW1wb3J0czogW1xuICAgICAgICAvLyBtb2R1bGVzXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICAgICAgQW5ndWxhclN2Z0ljb25Nb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIC8vIGNvbXBvbmVudHNcbiAgICAgICAgQ2FJbnB1dENvbXBvbmVudCxcbiAgICAgICAgLy8gcGlwZXNcbiAgICAgICAgRmlsdGVyVHJhaWxlckNvbG9yUGlwZSxcbiAgICBdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICBpbk91dEFuaW1hdGlvbignaW5PdXRBbmltYXRpb24nKSxcbiAgICAgICAgc2hvd0FuaW1hdGlvbignc2hvd0FuaW1hdGlvbicpLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIENhVHJhaWxlclR5cGVGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgdHlwZSE6IHN0cmluZztcbiAgICBASW5wdXQoKSBpc0ZpbHRlckFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGhhc0xlZnRTaWRlSWNvbjogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHRyYWlsZXJUeXBlQXJyYXkhOiBBcnJheVN0YXR1c1tdO1xuICAgIEBJbnB1dCgpIGlzU2VhcmNoRXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBpc1JlcGFpckZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHVibGljIHNlbGVjdGVkVHJhaWxlclR5cGVBcnJheTogQXJyYXlTdGF0dXNbXSA9IFtdO1xuICAgIHB1YmxpYyBpc0J1dHRvbkF2YWlsYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc0FzY2VuZGluZ1NvcnRPcmRlcjogYm9vbGVhbiA9IHRydWU7XG4gICAgcHVibGljIGZpbHRlckFjdGl2ZUFycmF5OiBBcnJheVN0YXR1c1tdID0gW107XG4gICAgcHVibGljIHVuc2VsZWN0ZWRWaXNpYmxlQ291bnQ6IG51bWJlciA9IDA7XG4gICAgcHVibGljIHNlYXJjaEZvcm0hOiBVbnR5cGVkRm9ybUdyb3VwO1xuICAgIHB1YmxpYyBzZWFyY2hJbnB1dFZhbHVlITogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgICAgICB0aGlzLndhdGNoU2VhcmNoRm9ybVZhbHVlQ2hhbmdlcygpO1xuICAgIH1cblxuICAgIGdldCB0cmFpbGVyVHlwZVNlYXJjaCgpOiBJQ2FJbnB1dCB7XG4gICAgICAgIHJldHVybiBDYVRydWNrVHlwZUZpbHRlckNvbmZpZy5nZXRUcmFpbGVyVHlwZVNlYXJjaCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRm9ybSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWFyY2hGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBzZWFyY2g6IG51bGwsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgd2F0Y2hTZWFyY2hGb3JtVmFsdWVDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlYXJjaEZvcm0udmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjaGFuZ2VzKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNoYW5nZXMuc2VhcmNoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0VmFsdWUgPSBjaGFuZ2VzLnNlYXJjaC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaElucHV0VmFsdWUgPSBpbnB1dFZhbHVlO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHJhaWxlclR5cGVBcnJheS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmhpZGRlbiA9ICFpdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm5hbWUhLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5jbHVkZXMoaW5wdXRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYWlsZXJUeXBlQXJyYXkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5oaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25GaWx0ZXJDbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgRmlsdGVySGVscGVyLmhhbmRsZUZpbHRlckNsb3NlKFxuICAgICAgICAgICAgdGhpcy50cmFpbGVyVHlwZUFycmF5LFxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRyYWlsZXJUeXBlQXJyYXksXG4gICAgICAgICAgICB0aGlzLnJlbW92ZUZyb21TZWxlY3RlZFVzZXIuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIHRoaXMuYWRkVG9TZWxlY3RlZFVzZXIuYmluZCh0aGlzKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBzb3J0SXRlbXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNvcnRSZXN1bHQgPSBGaWx0ZXJIZWxwZXIuc29ydEl0ZW1zKFxuICAgICAgICAgICAgdGhpcy50cmFpbGVyVHlwZUFycmF5LFxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRyYWlsZXJUeXBlQXJyYXksXG4gICAgICAgICAgICB0aGlzLmlzQXNjZW5kaW5nU29ydE9yZGVyXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy50cmFpbGVyVHlwZUFycmF5ID0gc29ydFJlc3VsdC5zb3J0ZWRGaWx0ZXJBcnJheTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRyYWlsZXJUeXBlQXJyYXkgPSBzb3J0UmVzdWx0LnNvcnRlZFNlbGVjdGVkRmlsdGVyQXJyYXk7XG4gICAgICAgIHRoaXMuaXNBc2NlbmRpbmdTb3J0T3JkZXIgPSBzb3J0UmVzdWx0LmlzQXNjZW5kaW5nU29ydE9yZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRUb1NlbGVjdGVkVXNlcihpdGVtOiB1c2VyU2VsZWN0ZWQsIGluZHg6IG51bWJlcikge1xuICAgICAgICBjb25zdCBtYWluQXJyYXkgPSB0aGlzLnRyYWlsZXJUeXBlQXJyYXk7XG5cbiAgICAgICAgbWFpbkFycmF5W2luZHhdLmlzU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICBtYWluQXJyYXlbaW5keF0uY3VycmVudFNldCA9IHRydWU7XG5cbiAgICAgICAgdGhpcy51bnNlbGVjdGVkVmlzaWJsZUNvdW50ID0gbWFpbkFycmF5LmZpbHRlcihcbiAgICAgICAgICAgICh0cmFpbGVyKSA9PiAhdHJhaWxlci5pc1NlbGVjdGVkXG4gICAgICAgICk/Lmxlbmd0aDtcblxuICAgICAgICB0aGlzLnNlbGVjdGVkVHJhaWxlclR5cGVBcnJheS5wdXNoKGl0ZW0pO1xuXG4gICAgICAgIHRoaXMuY2hlY2tGaWx0ZXJBY3RpdmVWYWx1ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVGcm9tU2VsZWN0ZWRVc2VyKGl0ZW06IHVzZXJTZWxlY3RlZCwgaW5keDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUcmFpbGVyVHlwZUFycmF5LnNwbGljZShpbmR4LCAxKTtcbiAgICAgICAgY29uc3QgaWQgPSBpdGVtLmlkO1xuICAgICAgICBjb25zdCBtYWluQXJyYXkgPSB0aGlzLnRyYWlsZXJUeXBlQXJyYXk7XG5cbiAgICAgICAgbWFpbkFycmF5LmZvckVhY2goKHRyYWlsZXIpID0+IHtcbiAgICAgICAgICAgIGlmICh0cmFpbGVyLmlkID09PSBpZCkge1xuICAgICAgICAgICAgICAgIHRyYWlsZXIuaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRyYWlsZXIuY3VycmVudFNldCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnVuc2VsZWN0ZWRWaXNpYmxlQ291bnQgPSBtYWluQXJyYXkuZmlsdGVyKFxuICAgICAgICAgICAgKHRyYWlsZXIpID0+ICF0cmFpbGVyLmlzU2VsZWN0ZWRcbiAgICAgICAgKT8ubGVuZ3RoO1xuXG4gICAgICAgIHRoaXMuY2hlY2tGaWx0ZXJBY3RpdmVWYWx1ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRGaWx0ZXJWYWx1ZSgpOiBmaWx0ZXJPdXRwdXQgfCBmaWx0ZXJPdXRwdXRXaXRoUGFyYW1zIHtcbiAgICAgICAgbGV0IHF1ZXJ5UGFyYW1zID0ge307XG4gICAgICAgIGNvbnN0IHN1YlR5cGUgPVxuICAgICAgICAgICAgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRU1QVFlfU1RSSU5HX1BMQUNFSE9MREVSLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgdGhpcy5pc0J1dHRvbkF2YWlsYWJsZSA9IGZhbHNlO1xuXG4gICAgICAgIHF1ZXJ5UGFyYW1zID0gdGhpcy5zZWxlY3RlZFRyYWlsZXJUeXBlQXJyYXkubWFwKChpdGVtKSA9PlxuICAgICAgICAgICAgdGhpcy5pc1JlcGFpckZpbHRlciA/IGl0ZW0udHJhaWxlck51bWJlciA6IGl0ZW0uaWRcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgZmlsdGVyVHlwZTogdGhpcy50eXBlLFxuICAgICAgICAgICAgYWN0aW9uOiBlR2VuZXJhbEFjdGlvbnMuU0VULFxuICAgICAgICAgICAgcXVlcnlQYXJhbXMsXG4gICAgICAgICAgICBzdWJUeXBlLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhckFsbChldmVudD86IEV2ZW50KTogZmlsdGVyT3V0cHV0IHwgZmlsdGVyT3V0cHV0V2l0aFBhcmFtcyB7XG4gICAgICAgIGlmIChldmVudCkgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZFRyYWlsZXJUeXBlQXJyYXkgPSBbXTtcblxuICAgICAgICB0aGlzLnRyYWlsZXJUeXBlQXJyYXkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaXRlbS5pc1NlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICBpdGVtLmN1cnJlbnRTZXQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5pc0J1dHRvbkF2YWlsYWJsZSA9IHRydWU7XG4gICAgICAgIHRoaXMuZmlsdGVyQWN0aXZlQXJyYXkgPSBbXTtcblxuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYWN0aW9uOiBlR2VuZXJhbEFjdGlvbnMuQ0xFQVIsXG4gICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICAgICAgICBmaWx0ZXJUeXBlOiB0aGlzLnR5cGUsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cblxuICAgIHB1YmxpYyBjaGVja0ZpbHRlckFjdGl2ZVZhbHVlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWx0ZXJDaGVjayA9IEZpbHRlckhlbHBlci5jaGVja0ZpbHRlckFjdGl2ZVZhbHVlKFxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRyYWlsZXJUeXBlQXJyYXksXG4gICAgICAgICAgICB0aGlzLmZpbHRlckFjdGl2ZUFycmF5LFxuICAgICAgICAgICAgdGhpcy5pc0J1dHRvbkF2YWlsYWJsZVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuaXNCdXR0b25BdmFpbGFibGUgPSBmaWx0ZXJDaGVjay5pc0J1dHRvbkF2YWlsYWJsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U3ZnUGF0aChwcm9wZXJ0eU5hbWU6IGtleW9mIHR5cGVvZiBDYUZpbHRlcnNTdmdSb3V0ZXMpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gRmlsdGVySGVscGVyLmdldFN2Z1BhdGgocHJvcGVydHlOYW1lKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG59XG4iLCJAaWYgKHR5cGUgPT09ICd0cmFpbGVyVHlwZUZpbHRlcicpIHtcbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic2VhcmNoLWlucHV0LWhlYWRlclwiXG4gICAgICAgIFtjbGFzcy5hY3RpdmVTZWFyY2hUcmFpbGVyXT1cImlzUmVwYWlyRmlsdGVyXCJcbiAgICAgICAgW2NsYXNzLmQtbm9uZV09XCIhaXNSZXBhaXJGaWx0ZXJcIlxuICAgICAgICBbZm9ybUdyb3VwXT1cInNlYXJjaEZvcm1cIlxuICAgID5cbiAgICAgICAgPGFwcC1jYS1pbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1mb3JtLWhvbGRlclwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgW2lucHV0Q29uZmlnXT1cInRyYWlsZXJUeXBlU2VhcmNoXCJcbiAgICAgICAgPjwvYXBwLWNhLWlucHV0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJib3JkZXItZmlsdGVyXCI+PC9kaXY+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNlbGVjdGVkLXRyYWlsZXItaG9sZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIlxuICAgID5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBzZWxlY3RlZFRyYWlsZXJUeXBlQXJyYXk7IGxldCBpbmR4ID0gJGluZGV4OyB0cmFjayBpbmR4KSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0cmFpbGVyLW1haW4taG9sZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgW0Bpbk91dEFuaW1hdGlvbl09XCInaW4nXCJcbiAgICAgICAgICAgICAgICBbQHNob3dBbmltYXRpb25dPVwiISFpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUZyb21TZWxlY3RlZFVzZXIoaXRlbSwgaW5keClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZC10cmFpbGVyLWZyYW1lIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkLW5hbWUtdGV4dCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgaXRlbS5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLmljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0LWl0ZW0tbG9nb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctLXN2Zy1maWxsLWNvbG9yJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLm5hbWUgfCBmaWx0ZXJUcmFpbGVyQ29sb3JQaXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJpdGVtLmljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0cnVjay1sb2dvLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbT8uY291bnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudC1ob2xkZXIgZC1pbmxpbmUtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBhY3RpdmVDb3VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5jb3VudCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE8gSGVyZSBhcyB3ZWxsXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uY291bnQ7IGVsc2Ugbm9Db3VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkLWljb24gZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJnZXRTdmdQYXRoKCdpY29uQ29uZmlybScpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9Db3VudGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLWhvbGRlciBhY3RpdmVDb3VudGVyXCI+MjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVGcm9tU2VsZWN0ZWRVc2VyKGl0ZW0sIGluZHgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbi1kZWxldGUgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5jb3VudGVyTWFyZ2luXT1cIml0ZW0uY291bnRcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1kZWxldGUtaG9sZFwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJnZXRTdmdQYXRoKCdyZW1vdmVTZWxlY3RlZFZhbHVlJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKFxuICAgICAgICAgICAgc2VsZWN0ZWRUcmFpbGVyVHlwZUFycmF5Lmxlbmd0aCAmJlxuICAgICAgICAgICAgc2VsZWN0ZWRUcmFpbGVyVHlwZUFycmF5Lmxlbmd0aCA8IHRyYWlsZXJUeXBlQXJyYXkubGVuZ3RoXG4gICAgICAgICkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1maWx0ZXIgYm9yZGVyLXRocmlyZC1tYXJnaW5cIj48L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItdHJhaWxlci1ob2xkZXJcIj5cbiAgICAgICAgQGZvciAoaXRlbSBvZiB0cmFpbGVyVHlwZUFycmF5OyBsZXQgaW5keCA9ICRpbmRleDsgdHJhY2sgaW5keCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYWlsZXItZnJhbWUtaG9sZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICBAaWYgKCFpdGVtLmhpZGRlbiAmJiAhaXRlbS5pc1NlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIFtAaW5PdXRBbmltYXRpb25dPVwiJ2luJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbQHNob3dBbmltYXRpb25dPVwiISFpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkVG9TZWxlY3RlZFVzZXIoaXRlbSwgaW5keClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0cmFpbGVyLW1haW4taG9sZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRyYWlsZXItZnJhbWUgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBmdy1ub3JtYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZC1uYW1lLXRleHQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgaXRlbS5uYW1lIH19IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHlwZS1pY29uIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0tc3ZnLWZpbGwtY29sb3InOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5uYW1lIHwgZmlsdGVyVHJhaWxlckNvbG9yUGlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnLWljb24gc3JjPVwie3sgaXRlbS5pY29uIH19XCI+PC9zdmctaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLmNvdW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvdW50LWhvbGRlciBkLWlubGluZS1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGNhLWZvbnQtc2VtaS1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uY291bnQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbn1cbjxkaXYgY2xhc3M9XCJib3JkZXItZmlsdGVyXCI+PC9kaXY+XG4iXX0=