@progress-chef/platform-shared-components 0.0.142 → 0.0.144
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.
- package/esm2022/lib/atoms/alert/alert.component.mjs +6 -6
- package/esm2022/lib/atoms/alert/alert.module.mjs +13 -8
- package/esm2022/lib/atoms/angular-popup/angular-popup.component.mjs +10 -5
- package/esm2022/lib/atoms/angular-popup/angular-popup.module.mjs +12 -10
- package/esm2022/lib/atoms/atoms.module.mjs +4 -4
- package/esm2022/lib/atoms/avatar/avatar.component.mjs +14 -8
- package/esm2022/lib/atoms/avatar/avatar.module.mjs +19 -11
- package/esm2022/lib/atoms/breadcrumb/breadcrumb.component.mjs +6 -5
- package/esm2022/lib/atoms/breadcrumb/breadcrumb.module.mjs +8 -8
- package/esm2022/lib/atoms/button/button.component.mjs +42 -14
- package/esm2022/lib/atoms/button/button.module.mjs +12 -8
- package/esm2022/lib/atoms/button-group/button-group.component.mjs +17 -9
- package/esm2022/lib/atoms/button-group/button-group.module.mjs +12 -10
- package/esm2022/lib/atoms/checkbox/checkbox.component.mjs +18 -9
- package/esm2022/lib/atoms/checkbox/checkbox.module.mjs +12 -10
- package/esm2022/lib/atoms/chip/chip.component.mjs +8 -6
- package/esm2022/lib/atoms/chip/chip.module.mjs +8 -8
- package/esm2022/lib/atoms/chip-list/chip-list.component.mjs +31 -10
- package/esm2022/lib/atoms/chip-list/chip-list.module.mjs +12 -10
- package/esm2022/lib/atoms/clipboard/clipboard.component.mjs +27 -11
- package/esm2022/lib/atoms/clipboard/clipboard.module.mjs +12 -10
- package/esm2022/lib/atoms/container/container.component.mjs +5 -5
- package/esm2022/lib/atoms/container/container.module.mjs +7 -8
- package/esm2022/lib/atoms/date-range/date-range.component.mjs +13 -6
- package/esm2022/lib/atoms/date-range/date-range.module.mjs +17 -11
- package/esm2022/lib/atoms/datepicker/datepicker.component.mjs +20 -12
- package/esm2022/lib/atoms/datepicker/datepicker.module.mjs +16 -10
- package/esm2022/lib/atoms/drag-and-drop/drag-and-drop.component.mjs +20 -12
- package/esm2022/lib/atoms/drag-and-drop/drag-and-drop.module.mjs +8 -8
- package/esm2022/lib/atoms/dropdown/dropdown.component.mjs +45 -17
- package/esm2022/lib/atoms/dropdown/dropdown.module.mjs +12 -10
- package/esm2022/lib/atoms/dropdown-button/dropdown-button.component.mjs +15 -8
- package/esm2022/lib/atoms/dropdown-button/dropdown-button.module.mjs +12 -10
- package/esm2022/lib/atoms/dropdown-tree/dropdowntree.component.mjs +36 -12
- package/esm2022/lib/atoms/dropdown-tree/dropdowntree.module.mjs +12 -10
- package/esm2022/lib/atoms/expansion-panel/expansion-panel.component.mjs +18 -10
- package/esm2022/lib/atoms/expansion-panel/expansion-panel.module.mjs +12 -10
- package/esm2022/lib/atoms/icon/icon.component.mjs +16 -6
- package/esm2022/lib/atoms/icon/icon.module.mjs +11 -7
- package/esm2022/lib/atoms/labels/label.component.mjs +16 -7
- package/esm2022/lib/atoms/labels/label.module.mjs +8 -8
- package/esm2022/lib/atoms/list-views/list-view.component.mjs +32 -13
- package/esm2022/lib/atoms/list-views/list-view.module.mjs +12 -10
- package/esm2022/lib/atoms/loader/loader.component.mjs +9 -8
- package/esm2022/lib/atoms/loader/loader.module.mjs +8 -8
- package/esm2022/lib/atoms/loading-spinner/loading-spinner.component.mjs +28 -8
- package/esm2022/lib/atoms/loading-spinner/loading-spinner.module.mjs +15 -9
- package/esm2022/lib/atoms/multi-select-dropdown/multi-select-dropdown.component.mjs +40 -20
- package/esm2022/lib/atoms/multi-select-dropdown/multi-select-dropdown.module.mjs +12 -10
- package/esm2022/lib/atoms/notification/notification.component.mjs +5 -5
- package/esm2022/lib/atoms/notification/notification.module.mjs +7 -8
- package/esm2022/lib/atoms/numeric-textbox/numeric-textbox.component.mjs +73 -16
- package/esm2022/lib/atoms/numeric-textbox/numeric-textbox.module.mjs +8 -8
- package/esm2022/lib/atoms/progress-bar/progress-bar.component.mjs +18 -6
- package/esm2022/lib/atoms/progress-bar/progress-bar.module.mjs +14 -8
- package/esm2022/lib/atoms/radio-button/radio-button.component.mjs +18 -9
- package/esm2022/lib/atoms/radio-button/radio-button.module.mjs +12 -10
- package/esm2022/lib/atoms/search-box/search-box.component.mjs +47 -15
- package/esm2022/lib/atoms/search-box/search-box.module.mjs +12 -10
- package/esm2022/lib/atoms/slider/slider.component.mjs +24 -9
- package/esm2022/lib/atoms/slider/slider.module.mjs +12 -10
- package/esm2022/lib/atoms/stepper/stepper.component.mjs +30 -8
- package/esm2022/lib/atoms/stepper/stepper.module.mjs +8 -8
- package/esm2022/lib/atoms/switch/switch.component.mjs +17 -9
- package/esm2022/lib/atoms/switch/switch.module.mjs +8 -8
- package/esm2022/lib/atoms/text-area/text-area.component.mjs +44 -14
- package/esm2022/lib/atoms/text-area/text-area.module.mjs +12 -10
- package/esm2022/lib/atoms/textbox/textbox.component.mjs +46 -16
- package/esm2022/lib/atoms/textbox/textbox.module.mjs +12 -10
- package/esm2022/lib/atoms/time-picker/time-picker.component.mjs +17 -8
- package/esm2022/lib/atoms/time-picker/time-picker.module.mjs +17 -11
- package/esm2022/lib/atoms/timescheduler/timescheduler.component.mjs +15 -8
- package/esm2022/lib/atoms/timescheduler/timescheduler.module.mjs +16 -10
- package/esm2022/lib/atoms/tooltip/tooltip.component.mjs +38 -12
- package/esm2022/lib/atoms/tooltip/tooltip.module.mjs +14 -8
- package/esm2022/lib/atoms/typography/TypographyType.mjs +1 -1
- package/esm2022/lib/atoms/typography/typography.component.mjs +10 -7
- package/esm2022/lib/atoms/typography/typography.module.mjs +11 -9
- package/esm2022/lib/atoms/uploader/uploader.component.mjs +34 -17
- package/esm2022/lib/atoms/uploader/uploader.module.mjs +13 -10
- package/esm2022/lib/molecules/card/card-actions/card-actions.component.mjs +8 -5
- package/esm2022/lib/molecules/card/card-body/card-body.component.mjs +8 -5
- package/esm2022/lib/molecules/card/card-footer/card-footer.component.mjs +8 -5
- package/esm2022/lib/molecules/card/card-header/card-header.component.mjs +14 -8
- package/esm2022/lib/molecules/card/card.component.mjs +11 -37
- package/esm2022/lib/molecules/card/card.module.mjs +19 -17
- package/esm2022/lib/molecules/dialog/confirmation-dialog/confirmation-dialog.component.mjs +28 -11
- package/esm2022/lib/molecules/dialog/dialog-actions/dialog-actions.component.mjs +8 -5
- package/esm2022/lib/molecules/dialog/dialog-titlebar/dialog-titlebar.component.mjs +16 -7
- package/esm2022/lib/molecules/dialog/dialog.component.mjs +35 -9
- package/esm2022/lib/molecules/dialog/dialog.module.mjs +32 -14
- package/esm2022/lib/molecules/grid-form/grid-form.component.mjs +26 -14
- package/esm2022/lib/molecules/grid-form/grid-form.module.mjs +12 -14
- package/esm2022/lib/molecules/grid-layout/grid-layout-item/grid-layout-item.component.mjs +30 -7
- package/esm2022/lib/molecules/grid-layout/grid-layout.component.mjs +27 -7
- package/esm2022/lib/molecules/grid-layout/grid-layout.module.mjs +15 -12
- package/esm2022/lib/molecules/grid-pagination/grid-pagination-spacer/grid-pagination-spacer.component.mjs +8 -5
- package/esm2022/lib/molecules/grid-pagination/grid-pagination.component.mjs +137 -70
- package/esm2022/lib/molecules/grid-pagination/grid-pagination.module.mjs +16 -24
- package/esm2022/lib/molecules/grid-pagination/kebab-menu-filter.pipe.mjs +5 -4
- package/esm2022/lib/molecules/molecules.module.mjs +6 -6
- package/esm2022/lib/molecules/tabstrip/tabstrip-tab/tabstrip-tab.component.mjs +7 -6
- package/esm2022/lib/molecules/tabstrip/tabstrip.component.mjs +19 -8
- package/esm2022/lib/molecules/tabstrip/tabstrip.module.mjs +14 -12
- package/esm2022/lib/shared.component.mjs +5 -5
- package/esm2022/lib/shared.module.mjs +7 -6
- package/esm2022/public-api.mjs +4 -2
- package/fesm2022/progress-chef-platform-shared-components.mjs +1747 -1039
- package/fesm2022/progress-chef-platform-shared-components.mjs.map +1 -1
- package/lib/atoms/alert/alert.component.d.ts +1 -1
- package/lib/atoms/alert/alert.module.d.ts +4 -3
- package/lib/atoms/angular-popup/angular-popup.component.d.ts +1 -1
- package/lib/atoms/angular-popup/angular-popup.module.d.ts +1 -1
- package/lib/atoms/avatar/avatar.component.d.ts +1 -1
- package/lib/atoms/avatar/avatar.module.d.ts +3 -3
- package/lib/atoms/breadcrumb/breadcrumb.component.d.ts +1 -1
- package/lib/atoms/breadcrumb/breadcrumb.module.d.ts +1 -1
- package/lib/atoms/button/button.component.d.ts +16 -3
- package/lib/atoms/button/button.module.d.ts +5 -4
- package/lib/atoms/button-group/button-group.component.d.ts +3 -1
- package/lib/atoms/button-group/button-group.module.d.ts +1 -1
- package/lib/atoms/checkbox/checkbox.component.d.ts +3 -3
- package/lib/atoms/checkbox/checkbox.module.d.ts +1 -1
- package/lib/atoms/chip/chip.component.d.ts +3 -2
- package/lib/atoms/chip/chip.module.d.ts +1 -1
- package/lib/atoms/chip-list/chip-list.component.d.ts +3 -2
- package/lib/atoms/chip-list/chip-list.module.d.ts +1 -1
- package/lib/atoms/clipboard/clipboard.component.d.ts +3 -1
- package/lib/atoms/clipboard/clipboard.module.d.ts +1 -1
- package/lib/atoms/container/container.component.d.ts +1 -1
- package/lib/atoms/container/container.module.d.ts +1 -1
- package/lib/atoms/date-range/date-range.component.d.ts +2 -1
- package/lib/atoms/date-range/date-range.module.d.ts +7 -6
- package/lib/atoms/datepicker/datepicker.component.d.ts +8 -4
- package/lib/atoms/datepicker/datepicker.module.d.ts +6 -5
- package/lib/atoms/drag-and-drop/drag-and-drop.component.d.ts +4 -4
- package/lib/atoms/drag-and-drop/drag-and-drop.module.d.ts +1 -1
- package/lib/atoms/dropdown/dropdown.component.d.ts +17 -3
- package/lib/atoms/dropdown/dropdown.module.d.ts +1 -1
- package/lib/atoms/dropdown-button/dropdown-button.component.d.ts +1 -1
- package/lib/atoms/dropdown-button/dropdown-button.module.d.ts +1 -1
- package/lib/atoms/dropdown-tree/dropdowntree.component.d.ts +19 -3
- package/lib/atoms/dropdown-tree/dropdowntree.module.d.ts +1 -1
- package/lib/atoms/expansion-panel/expansion-panel.component.d.ts +3 -1
- package/lib/atoms/expansion-panel/expansion-panel.module.d.ts +1 -1
- package/lib/atoms/icon/icon.component.d.ts +3 -2
- package/lib/atoms/icon/icon.module.d.ts +3 -2
- package/lib/atoms/labels/label.component.d.ts +3 -2
- package/lib/atoms/labels/label.module.d.ts +1 -1
- package/lib/atoms/list-views/list-view.component.d.ts +7 -1
- package/lib/atoms/list-views/list-view.module.d.ts +1 -1
- package/lib/atoms/loader/loader.component.d.ts +4 -4
- package/lib/atoms/loader/loader.module.d.ts +1 -1
- package/lib/atoms/loading-spinner/loading-spinner.component.d.ts +4 -1
- package/lib/atoms/loading-spinner/loading-spinner.module.d.ts +2 -1
- package/lib/atoms/multi-select-dropdown/multi-select-dropdown.component.d.ts +13 -3
- package/lib/atoms/multi-select-dropdown/multi-select-dropdown.module.d.ts +1 -1
- package/lib/atoms/notification/notification.component.d.ts +1 -1
- package/lib/atoms/notification/notification.module.d.ts +1 -1
- package/lib/atoms/numeric-textbox/numeric-textbox.component.d.ts +20 -10
- package/lib/atoms/numeric-textbox/numeric-textbox.module.d.ts +1 -1
- package/lib/atoms/progress-bar/progress-bar.component.d.ts +2 -1
- package/lib/atoms/progress-bar/progress-bar.module.d.ts +4 -3
- package/lib/atoms/radio-button/radio-button.component.d.ts +3 -3
- package/lib/atoms/radio-button/radio-button.module.d.ts +1 -1
- package/lib/atoms/search-box/search-box.component.d.ts +7 -1
- package/lib/atoms/search-box/search-box.module.d.ts +1 -1
- package/lib/atoms/slider/slider.component.d.ts +4 -1
- package/lib/atoms/slider/slider.module.d.ts +1 -1
- package/lib/atoms/stepper/stepper.component.d.ts +4 -1
- package/lib/atoms/stepper/stepper.module.d.ts +1 -1
- package/lib/atoms/switch/switch.component.d.ts +3 -1
- package/lib/atoms/switch/switch.module.d.ts +1 -1
- package/lib/atoms/text-area/text-area.component.d.ts +8 -3
- package/lib/atoms/text-area/text-area.module.d.ts +1 -1
- package/lib/atoms/textbox/textbox.component.d.ts +12 -4
- package/lib/atoms/textbox/textbox.module.d.ts +1 -1
- package/lib/atoms/time-picker/time-picker.component.d.ts +6 -3
- package/lib/atoms/time-picker/time-picker.module.d.ts +6 -5
- package/lib/atoms/timescheduler/timescheduler.component.d.ts +4 -2
- package/lib/atoms/timescheduler/timescheduler.module.d.ts +6 -5
- package/lib/atoms/tooltip/tooltip.component.d.ts +11 -2
- package/lib/atoms/tooltip/tooltip.module.d.ts +4 -3
- package/lib/atoms/typography/TypographyType.d.ts +1 -1
- package/lib/atoms/typography/typography.component.d.ts +2 -1
- package/lib/atoms/typography/typography.module.d.ts +3 -3
- package/lib/atoms/uploader/uploader.component.d.ts +10 -1
- package/lib/atoms/uploader/uploader.module.d.ts +1 -1
- package/lib/molecules/card/card-actions/card-actions.component.d.ts +1 -1
- package/lib/molecules/card/card-body/card-body.component.d.ts +1 -1
- package/lib/molecules/card/card-footer/card-footer.component.d.ts +1 -1
- package/lib/molecules/card/card-header/card-header.component.d.ts +1 -1
- package/lib/molecules/card/card.component.d.ts +1 -10
- package/lib/molecules/card/card.module.d.ts +1 -2
- package/lib/molecules/dialog/confirmation-dialog/confirmation-dialog.component.d.ts +2 -1
- package/lib/molecules/dialog/dialog-actions/dialog-actions.component.d.ts +1 -1
- package/lib/molecules/dialog/dialog-titlebar/dialog-titlebar.component.d.ts +2 -1
- package/lib/molecules/dialog/dialog.component.d.ts +2 -1
- package/lib/molecules/dialog/dialog.module.d.ts +5 -4
- package/lib/molecules/grid-form/grid-form.component.d.ts +2 -1
- package/lib/molecules/grid-form/grid-form.module.d.ts +2 -3
- package/lib/molecules/grid-layout/grid-layout-item/grid-layout-item.component.d.ts +3 -1
- package/lib/molecules/grid-layout/grid-layout.component.d.ts +3 -1
- package/lib/molecules/grid-layout/grid-layout.module.d.ts +1 -1
- package/lib/molecules/grid-pagination/grid-pagination-spacer/grid-pagination-spacer.component.d.ts +1 -1
- package/lib/molecules/grid-pagination/grid-pagination.component.d.ts +32 -12
- package/lib/molecules/grid-pagination/grid-pagination.module.d.ts +14 -16
- package/lib/molecules/grid-pagination/kebab-menu-filter.pipe.d.ts +1 -1
- package/lib/molecules/tabstrip/tabstrip-tab/tabstrip-tab.component.d.ts +2 -1
- package/lib/molecules/tabstrip/tabstrip.component.d.ts +3 -2
- package/lib/molecules/tabstrip/tabstrip.module.d.ts +1 -1
- package/lib/shared.component.d.ts +1 -1
- package/lib/shared.module.d.ts +1 -1
- package/package.json +29 -27
- package/public-api.d.ts +3 -1
- package/esm2022/lib/molecules/grid-pagination/grid-pagination-ai/grid-pagination-ai.component.mjs +0 -44
- package/lib/molecules/grid-pagination/grid-pagination-ai/grid-pagination-ai.component.d.ts +0 -14
|
@@ -5,31 +5,34 @@ import { orderBy } from '@progress/kendo-data-query';
|
|
|
5
5
|
import { LoaderSize, LoaderThemeColor, LoaderType } from '../../atoms/loader/loader.component';
|
|
6
6
|
import { GridComponent } from '@progress/kendo-angular-grid';
|
|
7
7
|
import { chevronDownIcon, chevronUpIcon, moreVerticalIcon } from '@progress/kendo-svg-icons';
|
|
8
|
+
import { GridModule } from '@progress/kendo-angular-grid';
|
|
9
|
+
import { CommonModule } from '@angular/common';
|
|
10
|
+
import { booleanAttribute } from '@angular/core';
|
|
11
|
+
import { ButtonsModule } from '@progress/kendo-angular-buttons';
|
|
12
|
+
import { DropDownsModule } from '@progress/kendo-angular-dropdowns';
|
|
13
|
+
import { TypographyComponent } from '../../atoms/typography/typography.component';
|
|
14
|
+
import { IconComponent } from '../../atoms/icon/icon.component';
|
|
15
|
+
import { ButtonComponent } from '../../atoms/button/button.component';
|
|
16
|
+
import { LoaderComponent } from '../../atoms/loader/loader.component';
|
|
17
|
+
import { TooltipComponent } from '../../atoms/tooltip/tooltip.component';
|
|
18
|
+
import { KebabMenuFilterPipe } from './kebab-menu-filter.pipe';
|
|
8
19
|
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@
|
|
10
|
-
import * as i2 from "@angular
|
|
11
|
-
import * as i3 from "@
|
|
12
|
-
import * as i4 from "
|
|
13
|
-
import * as i5 from "@progress/kendo-angular-inputs";
|
|
14
|
-
import * as i6 from "@progress/kendo-angular-grid";
|
|
15
|
-
import * as i7 from "../../atoms/tooltip/tooltip.component";
|
|
16
|
-
import * as i8 from "../../atoms/typography/typography.component";
|
|
17
|
-
import * as i9 from "../../atoms/loader/loader.component";
|
|
18
|
-
import * as i10 from "../../atoms/button/button.component";
|
|
19
|
-
import * as i11 from "@progress/kendo-angular-tooltip";
|
|
20
|
-
import * as i12 from "./grid-pagination-spacer/grid-pagination-spacer.component";
|
|
21
|
-
import * as i13 from "./kebab-menu-filter.pipe";
|
|
20
|
+
import * as i1 from "@progress/kendo-angular-grid";
|
|
21
|
+
import * as i2 from "@progress/kendo-angular-pager";
|
|
22
|
+
import * as i3 from "@angular/common";
|
|
23
|
+
import * as i4 from "@progress/kendo-angular-buttons";
|
|
22
24
|
export class CustomColumnTemplate {
|
|
23
25
|
constructor(template) {
|
|
24
26
|
this.template = template;
|
|
25
27
|
this.type = "";
|
|
26
28
|
}
|
|
27
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
28
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: CustomColumnTemplate, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
30
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: CustomColumnTemplate, isStandalone: true, selector: "ng-template[type]", inputs: { type: "type" }, ngImport: i0 }); }
|
|
29
31
|
}
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: CustomColumnTemplate, decorators: [{
|
|
31
33
|
type: Directive,
|
|
32
34
|
args: [{
|
|
35
|
+
standalone: true,
|
|
33
36
|
selector: 'ng-template[type]'
|
|
34
37
|
}]
|
|
35
38
|
}], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { type: [{
|
|
@@ -53,9 +56,8 @@ export class GridPaginationComponent {
|
|
|
53
56
|
set pageCount(value) {
|
|
54
57
|
this._pageCount = value > 10 ? 10 : value;
|
|
55
58
|
}
|
|
56
|
-
constructor(cdRef,
|
|
59
|
+
constructor(cdRef, renderer) {
|
|
57
60
|
this.cdRef = cdRef;
|
|
58
|
-
this.sanitizer = sanitizer;
|
|
59
61
|
this.renderer = renderer;
|
|
60
62
|
this.skip = 0;
|
|
61
63
|
this.itemName = 'Items';
|
|
@@ -63,7 +65,6 @@ export class GridPaginationComponent {
|
|
|
63
65
|
this.allPagesSelected = false;
|
|
64
66
|
this.previousSelectAllState = 'unchecked';
|
|
65
67
|
this.onSelectAllAcrossPages = new EventEmitter();
|
|
66
|
-
this.aiQuestions = [];
|
|
67
68
|
this.columnData = [];
|
|
68
69
|
this.pageSize = 0;
|
|
69
70
|
this.pageable = false;
|
|
@@ -139,13 +140,11 @@ export class GridPaginationComponent {
|
|
|
139
140
|
this.gridLoading = false;
|
|
140
141
|
this.minResizableWidth = 50;
|
|
141
142
|
this.showRefresh = false;
|
|
142
|
-
this.isKebabColumnSticky =
|
|
143
|
+
this.isKebabColumnSticky = false;
|
|
143
144
|
this.isCheckBoxColumnSticky = false;
|
|
144
145
|
this.isDeleteColumnSticky = false;
|
|
145
146
|
this.emitRefreshEvt = new EventEmitter();
|
|
146
147
|
this.isSelectAllCheckboxRequired = true;
|
|
147
|
-
this.kebabAIIcon = "data:image/png;base64,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";
|
|
148
|
-
this.kebabIconSafeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.kebabAIIcon);
|
|
149
148
|
this.columnTemplateDict = {};
|
|
150
149
|
/*
|
|
151
150
|
* This logic of dynamically calculating the height of grid need further brainstorming hence commented for now.
|
|
@@ -187,7 +186,6 @@ export class GridPaginationComponent {
|
|
|
187
186
|
if (!this.ignoreColumnCellClick.includes(index)) {
|
|
188
187
|
column.class = 'column-cursor-pointer';
|
|
189
188
|
}
|
|
190
|
-
column.columnWidth = column.columnWidth ? column.columnWidth : "50";
|
|
191
189
|
});
|
|
192
190
|
if (!this.hasApiSorting) {
|
|
193
191
|
this.loadGridData();
|
|
@@ -456,28 +454,48 @@ export class GridPaginationComponent {
|
|
|
456
454
|
refreshGridData() {
|
|
457
455
|
this.emitRefreshEvt.emit();
|
|
458
456
|
}
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: GridPaginationComponent, selector: "lib-grid-pagination", inputs: { skip: "skip", itemName: "itemName", showSelectAllMessage: "showSelectAllMessage", aiQuestions: "aiQuestions", columnData: "columnData", pageSize: "pageSize", pageable: "pageable", sortable: "sortable", groupable: "groupable", reorderable: "reorderable", resizable: "resizable", checkBoxWidth: "checkBoxWidth", checkBoxColumnResizable: "checkBoxColumnResizable", checkBoxColumnMenu: "checkBoxColumnMenu", checkBoxColumnShowSelectedAll: "checkBoxColumnShowSelectedAll", checkBoxRequired: "checkBoxRequired", columnMenu: "columnMenu", mode: "mode", checkboxOnly: "checkboxOnly", dragColumns: "dragColumns", navigable: "navigable", gridHeight: "gridHeight", gridRowSelectByValue: "gridRowSelectByValue", noRecordsContent: "noRecordsContent", showToolbar: "showToolbar", kebabList: "kebabList", showKebab: "showKebab", icon: "icon", kebabColumnWidth: "kebabColumnWidth", selectColumn: "selectColumn", preSelected: "preSelected", gridView: "gridView", ignoreColumnCellClick: "ignoreColumnCellClick", allowColumnClick: "allowColumnClick", sort: "sort", hasApiSorting: "hasApiSorting", expandRowIndex: "expandRowIndex", customExpandRowColumn: "customExpandRowColumn", deleteColumnWidth: "deleteColumnWidth", sizes: "sizes", pageCount: "pageCount", showDeleteColumn: "showDeleteColumn", hideKebabRowIndex: "hideKebabRowIndex", loading: "loading", loaderType: "loaderType", loaderSize: "loaderSize", loaderTheme: "loaderTheme", disablePreSelectedRows: "disablePreSelectedRows", allowEditingCell: "allowEditingCell", columnContentNoWrap: "columnContentNoWrap", infiniteScrollLoader: "infiniteScrollLoader", isInfiniteScrollGrid: "isInfiniteScrollGrid", gridLoading: "gridLoading", minResizableWidth: "minResizableWidth", showRefresh: "showRefresh", isKebabColumnSticky: "isKebabColumnSticky", isCheckBoxColumnSticky: "isCheckBoxColumnSticky", isDeleteColumnSticky: "isDeleteColumnSticky", isSelectAllCheckboxRequired: "isSelectAllCheckboxRequired" }, outputs: { onSelectAllAcrossPages: "onSelectAllAcrossPages", selectedRowData: "selectedRowData", rowDetails: "rowDetails", kebabItemClick: "kebabItemClick", rowDataOfClickedCell: "rowDataOfClickedCell", onPageChange: "onPageChange", sortDirection: "sortDirection", deletedRowData: "deletedRowData", updatedData: "updatedData", onscrollBottom: "onscrollBottom", emitRefreshEvt: "emitRefreshEvt" }, queries: [{ propertyName: "templateRef", first: true, predicate: ["multiColumnData"], descendants: true }, { propertyName: "detailTemplate", first: true, predicate: ["detailTemplate"], descendants: true }, { propertyName: "impactColumn", first: true, predicate: ["impactColumn"], descendants: true }, { propertyName: "columnTemplates", predicate: CustomColumnTemplate }], viewQueries: [{ propertyName: "grid", first: true, predicate: GridComponent, descendants: true }, { propertyName: "gridElement", first: true, predicate: ["gridElement"], descendants: true }, { propertyName: "selectAllCheckbox", first: true, predicate: ["selectAllCheckbox"], descendants: true }, { propertyName: "selectAllMessageElement", first: true, predicate: ["selectAllMessageElement"], descendants: true }], ngImport: i0, template: "<div #gridElement [ngClass]=\"columnContentNoWrap ? 'column-content-nowrap' : ''\">\n <kendo-grid [data]=\"_gridView\" [pageSize]=\"pageSize\" [skip]=\"skip\" [selectable]=\"selectableSettings\"\n [pageable]=\"pageable\" [sortable]=\"sortable\" [loading]=\"gridLoading\" [groupable]=\"groupable\"\n [reorderable]=\"reorderable\" [resizable]=\"resizable\" [columnMenu]=\"columnMenu\" [navigable]=\"navigable\"\n [height]=\"gridHeight\" (change)=\"setSelectableSettings()\" (selectedKeysChange)=\"selectedKeysChange($event)\"\n [kendoGridSelectBy]=\"gridRowSelectByValue\" (detailExpand)=\"onDetailExpand($event)\" [selectedKeys]=\"_preSelected\"\n (pageChange)=\"pageChange($event)\" (cellClick)=\"cellClickHandler($event)\" (cellClose)=\"cellCloseHandler($event)\"\n [sort]=\"sort\" (sortChange)=\"sortChange($event)\" (scrollBottom)=\"scrollBottom()\" [ngClass]=\"getHeaderHeight()\"\n id=\"lib-grid\" [rowClass]=\"rowClass\">\n <div #selectAllMessageElement>\n <div class=\"lib-grid-select-all-message-container\"\n *ngIf=\"((selectedItemCount < _gridView.total) || allPagesSelected)\">\n <div *ngIf=\"(selectedItemCount < _gridView.total)\" class=\"lib-grid-select-all-message\">\n <lib-typography [defaultText]=\"'All '+selectedItemCount+' '+itemName+' on this page are selected.'\"\n type=\"BODY_SMALL\"></lib-typography>\n <u><lib-typography (click)=\"selectAcrossPages(true)\" class=\"select-all-handler\"\n [defaultText]=\"'Select all '+_gridView.total+' '+itemName+' from all pages'\"\n type=\"BODY_SMALL\"></lib-typography></u>\n </div>\n <div *ngIf=\"allPagesSelected\" class=\"lib-grid-select-all-message\">\n <lib-icon name=\"circle-checked\" class=\"all-selected-icon\"></lib-icon>\n <lib-typography [defaultText]=\"'All '+_gridView.total+' '+itemName+' across all pages are selected.'\"\n type=\"BODY_SMALL\"></lib-typography>\n <u><lib-typography (click)=\"selectAcrossPages(false)\" class=\"select-all-handler\"\n [defaultText]=\"'Clear selection'\" type=\"BODY_SMALL\"></lib-typography></u>\n </div>\n </div>\n </div>\n <ng-template kendoGridToolbarTemplate [position]=\"getPosition()\" let-position=\"position\">\n <ng-container *ngIf=\"showToolbar && position === 'top'\">\n <!-- <ng-container *ngTemplateOutlet=\"showAIIcon\"></ng-container> -->\n <ng-content></ng-content>\n <ng-container *ngIf=\"showRefresh\">\n <ng-container *ngTemplateOutlet=\"showRefreshTemplate\"></ng-container>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"infiniteScrollLoader && position === 'bottom'\">\n <lib-grid-pagination-spacer></lib-grid-pagination-spacer>\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n <lib-grid-pagination-spacer></lib-grid-pagination-spacer>\n </ng-container>\n </ng-template>\n\n <ng-template #showRefreshTemplate>\n <lib-tooltip position=\"top\" showOn=\"hover\" [tooltipWidth]=\"68\" [callout]=\"true\">\n <div class=\"tooltip-content\">\n <lib-typography defaultText=\"Refresh\"></lib-typography>\n </div>\n <lib-button size=\"small\" width=\"2.4rem\" rounded=\"small\" fillMode=\"solid\" themeColor=\"primary\" iconName=\"reset\"\n [toggleable]=\"false\" (buttonClick)=\"refreshGridData()\" [iconButton]=\"true\" [iconFontSize]=\"13\"></lib-button>\n </lib-tooltip>\n </ng-template>\n <!-- <ng-template #showAIIcon>\n <div *ngIf=\"mainAIQuestions && mainAIQuestions?.length > 0\">\n <div kendoPopoverAnchor [popover]=\"actionPopover\" showOn=\"hover\">\n <img [src]=\"kebabIconSafeUrl\" alt=\"Ask Chef AI\"\n [ngStyle]=\"{ width: '1.75rem', cursor: 'pointer', position: 'relative', top: '-2px' }\"\n (click)=\"onChefyClick($event, null)\" />\n </div>\n <div>\n <kendo-popover #actionPopover appendTo=\"body\" [width]=\"200\" [offset]=\"-16\" position=\"bottom\"\n popupClass=\"chef-ai-menu\" [callout]=\"true\">\n <ng-template kendoPopoverBodyTemplate>\n <div class=\"recommendations\" *ngFor=\"let mainAIQuestion of mainAIQuestions\"\n (click)=\"onChefyClick($event, null, mainAIQuestion)\">\n <lib-typography type=\"BODY_MEDIUM\" [defaultText]=\"mainAIQuestion\"></lib-typography>\n </div>\n <div class=\"recommendations action-item\" (click)=\"onChefyClick($event, null)\">\n <img [src]=\"kebabIconSafeUrl\" alt=\"Ask Chef AI\"\n [ngStyle]=\"{ width: '1.5rem', cursor: 'pointer', position: 'relative', top: '-2px' }\" />\n <lib-typography type=\"BODY_MEDIUM\" defaultText=\"Start New Conversation\"></lib-typography>\n </div>\n </ng-template>\n </kendo-popover>\n </div>\n </div>\n <div *ngIf=\"!mainAIQuestions || mainAIQuestions?.length === 0\">\n <img [src]=\"kebabIconSafeUrl\" alt=\"Ask Chef AI\"\n [ngStyle]=\"{ width: '1.75rem', cursor: 'pointer', position: 'relative', top: '-2px' }\"\n (click)=\"onChefyClick($event, null)\" />\n </div>\n </ng-template> -->\n\n <ng-template kendoGridLoadingTemplate>\n <div class=\"k-loading-color\"></div>\n <div class=\"loading-container\">\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </div>\n </ng-template>\n\n <ng-template *ngIf=\"this._gridView.total === 0\" kendoGridNoRecordsTemplate>\n <lib-typography *ngIf=\"!loading\" [defaultText]=\"noRecordsContent\" type=\"BODY_MEDIUM\"></lib-typography>\n <lib-loader *ngIf=\"loading\" [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n <ng-container *ngIf=\"this._gridView.total > 0\">\n <kendo-grid-checkbox-column #selectAllCheckbox headerClass=\"select-all-header\" *ngIf=\"checkBoxRequired\"\n [width]=\"checkBoxWidth\" [resizable]=\"checkBoxColumnResizable\" [columnMenu]=\"checkBoxColumnMenu\"\n class=\"checkbox-column\" [sticky]=\"isCheckBoxColumnSticky && !customExpandRowColumn\">\n <ng-template kendoGridHeaderTemplate *ngIf=\"isSelectAllCheckboxRequired\">\n <input id=\"selectAllCheckboxId\" type=\"checkbox\" kendoCheckBox kendoGridSelectAllCheckbox\n [state]=\"selectAllState\" (selectAllChange)=\"onSelectAllChange($event)\" />\n </ng-template>\n </kendo-grid-checkbox-column>\n\n <kendo-grid-column class=\"grid-column\" *ngFor=\"let item of columnData; let i = index\" [field]=\"item.field\"\n [title]=\"item.title\" [width]=\"item.columnWidth\" [minResizableWidth]=\"minResizableWidth\"\n [sortable]=\"item.sortable\" [editor]=\"item.editor\" [class]=\"item.class\"\n [sticky]=\"item.columnSticky && !customExpandRowColumn\">\n\n <ng-template *ngIf=\"sortable\" kendoGridHeaderTemplate>\n {{item.title}}\n <span *ngIf=\"sort[0].field === item.field\">\n <span *ngIf=\"sort[0].dir === 'asc'\"></span>\n <span *ngIf=\"sort[0].dir === 'desc'\"></span>\n </span>\n </ng-template>\n\n <!-- <ng-template *ngIf=\"i === 0\" kendoGridCellTemplate let-dataItem>\n <div class=\"first-custom-column\">\n <lib-typography type=\"BODY_MEDIUM\">{{dataItem?.[item.field]}}</lib-typography>\n <lib-button class=\"chefy\" size=\"small\" rounded=\"full\" (buttonClick)=\"onChefyClick($event, dataItem)\" fillMode=\"solid\"\n themeColor=\"primary\" label=\"Chefy\" />\n </div>\n </ng-template> -->\n\n <ng-template *ngIf=\"item.customColumn\" kendoGridCellTemplate let-dataItem>\n <ng-container [ngTemplateOutlet]=\"columnTemplateDict[item.type]\"\n [ngTemplateOutletContext]=\"{$implicit: dataItem}\"></ng-container>\n </ng-template>\n\n <ng-template *ngIf=\"item.custom\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"templateRef; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"item.impact\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"impactColumn; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column *ngIf=\"showDeleteColumn\" [width]=\"deleteColumnWidth\" class=\"delete-column\" title=\"Action\"\n [sticky]=\"isDeleteColumnSticky && !customExpandRowColumn\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <lib-tooltip showOn=\"hover\" position=\"bottom\" class=\"remove-tooltip\">\n <lib-icon name=\"delete\" class=\"delete-icon\" (click)=\"onDelete(dataItem)\"></lib-icon>\n <div class=\"tooltip-content\">\n <lib-typography defaultText=\"Remove\"></lib-typography>\n </div>\n </lib-tooltip>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column [width]=\"kebabColumnWidth\" class=\"kebab-column\" title=\"Actions\"\n [sticky]=\"isKebabColumnSticky && !customExpandRowColumn\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <div *ngIf=\"aiQuestions && aiQuestions?.length > 0\">\n <div kendoPopoverAnchor [popover]=\"actionPopover\" showOn=\"hover\">\n <img [src]=\"kebabIconSafeUrl\" alt=\"Ask Chef AI\"\n [ngStyle]=\"{ width: '1.75rem', cursor: 'pointer', position: 'relative', top: '-2px' }\"\n (click)=\"onChefyClick($event, dataItem)\" />\n </div>\n <div>\n <kendo-popover #actionPopover appendTo=\"body\" [width]=\"200\" [offset]=\"-16\" position=\"bottom\"\n popupClass=\"chef-ai-menu\" [callout]=\"true\">\n <ng-template kendoPopoverBodyTemplate>\n <div class=\"recommendations\" *ngFor=\"let question of aiQuestions\"\n (click)=\"onChefyClick($event, dataItem, question)\">\n <lib-typography type=\"BODY_MEDIUM\" [defaultText]=\"question\"></lib-typography>\n </div>\n <div class=\"recommendations action-item\" (click)=\"onChefyClick($event, dataItem)\">\n <img [src]=\"kebabIconSafeUrl\" alt=\"Ask Chef AI\"\n [ngStyle]=\"{ width: '1.5rem', cursor: 'pointer', position: 'relative', top: '-2px' }\" />\n <lib-typography type=\"BODY_MEDIUM\" defaultText=\"Start New Conversation\"></lib-typography>\n </div>\n </ng-template>\n </kendo-popover>\n </div>\n </div>\n <div *ngIf=\"!aiQuestions || aiQuestions?.length === 0\">\n <img [src]=\"kebabIconSafeUrl\" alt=\"Ask Chef AI\"\n [ngStyle]=\"{ width: '1.75rem', cursor: 'pointer', position: 'relative', top: '-2px' }\"\n (click)=\"onChefyClick($event, dataItem)\" />\n </div>\n <div *ngIf=\"showKebab\">\n <kendo-dropdownbutton *ngIf=\"!hideKebabRowIndex.includes(rowIndex)\" [svgIcon]=\"icon\" fillMode=\"none\"\n [data]=\"kebabList | kebabMenuFilter : dataItem\" class=\"kebab\" (itemClick)=\"onKebabClick($event, dataItem)\"\n [popupSettings]=\"{ align: 'right', animate: true, popupClass: 'kebab-list' }\">\n </kendo-dropdownbutton>\n </div>\n </ng-template>\n </kendo-grid-column>\n </ng-container>\n\n <!-- Limitation: detail template and sticky columns do not co-exist-->\n <ng-template *ngIf=\"customExpandRowColumn\" kendoGridDetailTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"detailTemplate; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n\n <kendo-grid-column *ngIf=\"customExpandRowColumn\" [width]=\"expandRowColumnWidth\" class=\"grid-column expand-column\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <div [ngClass]=\"expandColumnClass()\">\n <span *ngIf=\"selectedRows.includes(dataItem[gridRowSelectByValue]) && disablePreSelectedRows\"\n class=\"expand-column-text\">\n Already added\n </span>\n <kendo-button *ngIf=\"!expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowDownIcon\"\n (click)=\"expandRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </kendo-button>\n <kendo-button *ngIf=\"expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowUpIcon\"\n (click)=\"collapseRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </kendo-button>\n </div>\n </ng-template>\n </kendo-grid-column>\n\n <ng-template kendoPagerTemplate let-totalPages=\"totalPages\" let-currentPage=\"currentPage\">\n <div class=\"pagination-wrapper\" [ngClass]=\"allPagesSelected ? 'pagination-disabled' : ''\">\n <kendo-pager-prev-buttons></kendo-pager-prev-buttons>\n <kendo-pager-numeric-buttons [buttonCount]=\"_pageCount\"></kendo-pager-numeric-buttons>\n <kendo-pager-next-buttons></kendo-pager-next-buttons>\n <kendo-pager-info></kendo-pager-info>\n <kendo-pager-page-sizes [pageSizes]=\"sizes\"></kendo-pager-page-sizes>\n </div>\n </ng-template>\n\n </kendo-grid>\n</div>\n", styles: [".loading-container{height:100%;display:flex;justify-content:center;align-items:center}::ng-deep .k-grid tr{height:50px}::ng-deep .pagination-wrapper{display:flex;width:100%}::ng-deep .pagination-disabled{color:#6c6f72!important;pointer-events:none}::ng-deep .lib-grid-select-all-message-container{height:2rem;display:none;gap:.25rem;justify-content:center;align-items:center;background-color:#eceff5!important;font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}::ng-deep .lib-grid-select-all-message-container .select-all-handler{cursor:pointer}::ng-deep .lib-grid-select-all-message-container .lib-grid-select-all-message{display:flex;gap:.25rem}::ng-deep .lib-grid-select-all-message-container .lib-grid-select-all-message .all-selected-icon{color:#198038}::ng-deep .disabled{cursor:none!important;pointer-events:none;opacity:.5}::ng-deep .lib-grid-select-all-message-show{display:flex!important}::ng-deep .k-grid .k-table-th,::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important;border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:2px!important;border-right:0px!important;border-left:0px!important;cursor:default!important}::ng-deep .k-grid .k-table-th .k-cell-inner,::ng-deep .k-grid .k-table-th.k-sorted .k-cell-inner{padding-right:.5rem;border-right:2px solid #C2D2F3!important}::ng-deep .k-grid .k-table-th .k-cell-inner .k-link,::ng-deep .k-grid .k-table-th.k-sorted .k-cell-inner .k-link{cursor:default!important}::ng-deep .k-grid .k-table-th:focus,::ng-deep .k-grid .k-table-th.k-sorted:focus{box-shadow:none!important}::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important}::ng-deep .k-grid tbody>tr:not(.k-detail-row):hover{background-color:#d0dcf5!important}::ng-deep .k-grid .k-table-row.k-selected>.k-table-td{background-color:#c9d7f4!important}::ng-deep .k-grid .k-table-row.k-disabled>.k-table-td{background-color:#fff!important}::ng-deep .k-grid .k-table-td{border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:1px!important;border-right:0px!important;border-left:0px!important}::ng-deep .k-grid td,::ng-deep .k-grid .k-table-td{white-space:nowrap!important}::ng-deep .k-table-alt-row{background-color:inherit!important}::ng-deep .k-grid .k-table-td{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}::ng-deep .k-grid-norecords{text-align:center!important;opacity:.4}::ng-deep .k-grid-norecords td{padding:14px 0 14px 24px!important}::ng-deep kendo-pager.k-pager-wrap.k-grid-pager{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}::ng-deep .k-pager{border-style:none!important}::ng-deep .k-input-value-text{overflow:unset!important}::ng-deep .k-grid th.k-header{vertical-align:middle!important;padding-left:16px;padding-right:.5rem}::ng-deep .grid-column,::ng-deep .kebab-column,::ng-deep .delete-column{padding:0!important}::ng-deep .grid-column kendo-button,::ng-deep .kebab-column kendo-button,::ng-deep .delete-column kendo-button{align-items:center!important;justify-content:center!important;display:flex!important}::ng-deep .k-checkbox{width:20px!important;height:20px!important;border-radius:0!important}::ng-deep .k-grid .k-hierarchy-cell,::ng-deep .k-grid .k-hierarchy-col{width:0;display:none}::ng-deep .k-grid .k-detail-row .k-detail-cell{background-color:#f4f8fa!important;padding:16px!important}::ng-deep .delete-icon{color:#dc267f!important;padding-left:12px;cursor:pointer}::ng-deep .remove-tooltip kendo-tooltip.k-tooltip{background-color:#fff;color:#000}::ng-deep .hide-header .k-grid-header{border:0px!important}::ng-deep .k-grouping-header{background-color:#eceff5!important}::ng-deep .k-grid-toolbar{padding:4px 16px!important;height:54px;background-color:#eceff5!important}::ng-deep .k-grid td:not(.kebab-column):not(.expand-column){padding-left:16px!important;padding-right:16px!important}::ng-deep .view-header .k-table-thead tr{height:50px}::ng-deep .hide-header .k-table-thead tr{height:0px;padding:0;display:block}::ng-deep td.kebab-column{display:flex;justify-content:center;align-items:center;height:inherit}::ng-deep .k-grid .k-table-td>.k-checkbox{vertical-align:middle!important}::ng-deep .kebab .k-button,::ng-deep .expand-column .k-button{border:0px}::ng-deep .expand-column{pointer-events:all!important}::ng-deep .expand-column-text{margin-right:32px}::ng-deep .expand-row{display:flex;align-items:center;justify-content:flex-end}::ng-deep .column-cursor-pointer{cursor:pointer}::ng-deep .column-content-nowrap .k-grid .k-table-th,::ng-deep .column-content-nowrap .k-grid td,::ng-deep .column-content-nowrap .k-grid .k-table-td{white-space:nowrap;text-overflow:clip}::ng-deep kendo-grid.k-grid .k-table-alt-row .k-grid-content-sticky,::ng-deep kendo-grid.k-grid .k-grid-row-sticky.k-table-alt-row td,::ng-deep kendo-grid.k-grid .k-grid-row-sticky.k-table-alt-row .k-table-td,::ng-deep .k-master-row.k-table-alt-row .k-grid-content-sticky,::ng-deep .k-master-row.k-table-alt-row .k-grid-row-sticky{background-color:#fff}::ng-deep kendo-grid.k-grid .k-grid-content-sticky:hover,::ng-deep kendo-grid.k-grid .k-grid-content-sticky.k-hover,::ng-deep kendo-grid.k-grid .k-table-row:hover .k-grid-content-sticky{background-color:#d0dcf5!important}::ng-deep .first-custom-column{position:relative}::ng-deep .first-custom-column .chefy{display:none;position:absolute;right:0;opacity:0;transition:opacity .2s ease}::ng-deep .first-custom-column .chefy .btn-padding{padding:.125rem .25rem}::ng-deep .k-grid tbody>tr:not(.k-detail-row):hover .first-custom-column .chefy{display:inline-block;opacity:1}::ng-deep kendo-popover .k-popover-body{padding:0!important}::ng-deep kendo-popover .k-popover-callout.k-callout-n{top:.5rem!important}::ng-deep kendo-popover .recommendations{border-bottom:1px solid #dee2e6;padding:.25rem .5rem;cursor:pointer}::ng-deep kendo-popover .recommendations:hover{background-color:#f3f3f3}::ng-deep kendo-popover .recommendations.action-item{padding:.25rem;color:#0069ff}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: i3.DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["arrowIcon", "icon", "svgIcon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor", "buttonAttributes"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }, { kind: "component", type: i4.IconComponent, selector: "lib-icon", inputs: ["name", "projectedIcon", "fontSize", "type"] }, { kind: "directive", type: i5.CheckBoxDirective, selector: "input[kendoCheckBox]", inputs: ["size", "rounded"] }, { kind: "component", type: i6.GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "rowReorderable", "navigable", "navigatable", "autoSize", "rowClass", "rowSticky", "rowSelected", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "isDetailExpanded", "isGroupExpanded"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "directive", type: i6.ToolbarTemplateDirective, selector: "[kendoGridToolbarTemplate]", inputs: ["position"] }, { kind: "directive", type: i6.SelectionDirective, selector: "[kendoGridSelectBy]" }, { kind: "component", type: i6.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterable", "editable"] }, { kind: "directive", type: i6.DetailTemplateDirective, selector: "[kendoGridDetailTemplate]", inputs: ["kendoGridDetailTemplateShowIf"] }, { kind: "component", type: i6.CheckboxColumnComponent, selector: "kendo-grid-checkbox-column", inputs: ["showSelectAll"] }, { kind: "directive", type: i6.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "directive", type: i6.NoRecordsTemplateDirective, selector: "[kendoGridNoRecordsTemplate]" }, { kind: "directive", type: i6.LoadingTemplateDirective, selector: "[kendoGridLoadingTemplate]" }, { kind: "directive", type: i6.HeaderTemplateDirective, selector: "[kendoGridHeaderTemplate]" }, { kind: "directive", type: i6.SelectAllCheckboxDirective, selector: "[kendoGridSelectAllCheckbox]", inputs: ["state"], outputs: ["selectAllChange"] }, { kind: "component", type: i6.PagerPrevButtonsComponent, selector: "kendo-pager-prev-buttons" }, { kind: "component", type: i6.PagerNextButtonsComponent, selector: "kendo-pager-next-buttons" }, { kind: "component", type: i6.PagerNumericButtonsComponent, selector: "kendo-pager-numeric-buttons", inputs: ["buttonCount"] }, { kind: "component", type: i6.PagerInfoComponent, selector: "kendo-pager-info" }, { kind: "component", type: i6.PagerPageSizesComponent, selector: "kendo-pager-page-sizes", inputs: ["pageSizes"] }, { kind: "directive", type: i6.PagerTemplateDirective, selector: "[kendoPagerTemplate]" }, { kind: "component", type: i7.TooltipComponent, selector: "lib-tooltip", inputs: ["position", "tooltipWidth", "tooltipHeight", "showOn", "closable", "title", "callout"] }, { kind: "component", type: i8.TypographyComponent, selector: "lib-typography", inputs: ["type", "defaultText", "isLabel", "hiddenLabel"] }, { kind: "component", type: i9.LoaderComponent, selector: "lib-loader", inputs: ["size", "type", "themeColor"] }, { kind: "component", type: i10.ButtonComponent, selector: "lib-button", inputs: ["size", "rounded", "fillMode", "themeColor", "label", "iconName", "disabled", "toggleable", "iconPosition", "fontType", "width", "iconButton", "projectedIcon", "formatFn", "iconFontSize"], outputs: ["buttonClick"] }, { kind: "directive", type: i11.PopoverBodyTemplateDirective, selector: "[kendoPopoverBodyTemplate]" }, { kind: "directive", type: i11.PopoverAnchorDirective, selector: "[kendoPopoverAnchor]", exportAs: ["kendoPopoverAnchor"] }, { kind: "component", type: i11.PopoverComponent, selector: "kendo-popover", inputs: ["position", "offset", "width", "height", "title", "subtitle", "body", "callout", "animation", "templateData"], outputs: ["show", "shown", "hide", "hidden", "closeOnKeyDown"] }, { kind: "component", type: i12.GridPaginationSpacerComponent, selector: "lib-grid-pagination-spacer" }, { kind: "pipe", type: i13.KebabMenuFilterPipe, name: "kebabMenuFilter" }] }); }
|
|
457
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: GridPaginationComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
458
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.17", type: GridPaginationComponent, isStandalone: true, selector: "lib-grid-pagination", inputs: { skip: ["skip", "skip", (value) => {
|
|
459
|
+
if (value === undefined || value === null)
|
|
460
|
+
return 0;
|
|
461
|
+
return typeof value === 'string' ? parseInt(value, 10) || 0 : value;
|
|
462
|
+
}], itemName: "itemName", showSelectAllMessage: ["showSelectAllMessage", "showSelectAllMessage", (value) => value === true || value === 'true'], columnData: "columnData", pageSize: ["pageSize", "pageSize", (value) => {
|
|
463
|
+
if (value === undefined || value === null)
|
|
464
|
+
return 0;
|
|
465
|
+
return typeof value === 'string' ? parseInt(value, 10) || 0 : value;
|
|
466
|
+
}], pageable: ["pageable", "pageable", booleanAttribute], sortable: ["sortable", "sortable", (value) => value === true || value === 'true'], groupable: ["groupable", "groupable", (value) => value === true || value === 'true'], reorderable: ["reorderable", "reorderable", (value) => value === true || value === 'true'], resizable: ["resizable", "resizable", (value) => value === true || value === 'true'], checkBoxWidth: ["checkBoxWidth", "checkBoxWidth", (value) => {
|
|
467
|
+
if (value === undefined || value === null)
|
|
468
|
+
return 45;
|
|
469
|
+
return typeof value === 'string' ? parseInt(value, 10) || 45 : value;
|
|
470
|
+
}], checkBoxColumnResizable: ["checkBoxColumnResizable", "checkBoxColumnResizable", (value) => value === true || value === 'true'], checkBoxColumnMenu: ["checkBoxColumnMenu", "checkBoxColumnMenu", (value) => value === true || value === 'true'], checkBoxColumnShowSelectedAll: ["checkBoxColumnShowSelectedAll", "checkBoxColumnShowSelectedAll", (value) => value === true || value === 'true'], checkBoxRequired: ["checkBoxRequired", "checkBoxRequired", (value) => value === true || value === 'true'], columnMenu: ["columnMenu", "columnMenu", (value) => value === true || value === 'true'], mode: "mode", checkboxOnly: "checkboxOnly", dragColumns: "dragColumns", navigable: ["navigable", "navigable", (value) => value === true || value === 'true'], gridHeight: "gridHeight", gridRowSelectByValue: "gridRowSelectByValue", noRecordsContent: "noRecordsContent", showToolbar: ["showToolbar", "showToolbar", (value) => value === true || value === 'true'], kebabList: "kebabList", showKebab: ["showKebab", "showKebab", (value) => value === true || value === 'true'], icon: "icon", kebabColumnWidth: ["kebabColumnWidth", "kebabColumnWidth", (value) => {
|
|
471
|
+
if (value === undefined || value === null)
|
|
472
|
+
return 90;
|
|
473
|
+
return typeof value === 'string' ? parseInt(value, 10) || 90 : value;
|
|
474
|
+
}], selectColumn: "selectColumn", preSelected: "preSelected", gridView: "gridView", ignoreColumnCellClick: "ignoreColumnCellClick", allowColumnClick: ["allowColumnClick", "allowColumnClick", (value) => value === true || value === 'true'], sort: "sort", hasApiSorting: "hasApiSorting", expandRowIndex: "expandRowIndex", customExpandRowColumn: ["customExpandRowColumn", "customExpandRowColumn", (value) => value === true || value === 'true'], deleteColumnWidth: ["deleteColumnWidth", "deleteColumnWidth", (value) => {
|
|
475
|
+
if (value === undefined || value === null)
|
|
476
|
+
return 42;
|
|
477
|
+
return typeof value === 'string' ? parseInt(value, 10) || 42 : value;
|
|
478
|
+
}], expandRowColumnWidth: ["expandRowColumnWidth", "expandRowColumnWidth", (value) => {
|
|
479
|
+
if (value === undefined || value === null)
|
|
480
|
+
return 56;
|
|
481
|
+
return typeof value === 'string' ? parseInt(value, 10) || 56 : value;
|
|
482
|
+
}], sizes: "sizes", pageCount: "pageCount", showDeleteColumn: "showDeleteColumn", hideKebabRowIndex: "hideKebabRowIndex", loading: ["loading", "loading", (value) => value === true || value === 'true'], loaderType: "loaderType", loaderSize: "loaderSize", loaderTheme: "loaderTheme", disablePreSelectedRows: "disablePreSelectedRows", allowEditingCell: "allowEditingCell", columnContentNoWrap: "columnContentNoWrap", infiniteScrollLoader: "infiniteScrollLoader", isInfiniteScrollGrid: ["isInfiniteScrollGrid", "isInfiniteScrollGrid", (value) => value === true || value === 'true'], gridLoading: ["gridLoading", "gridLoading", (value) => value === true || value === 'true'], minResizableWidth: "minResizableWidth", showRefresh: "showRefresh", isKebabColumnSticky: "isKebabColumnSticky", isCheckBoxColumnSticky: "isCheckBoxColumnSticky", isDeleteColumnSticky: "isDeleteColumnSticky", isSelectAllCheckboxRequired: "isSelectAllCheckboxRequired" }, outputs: { onSelectAllAcrossPages: "onSelectAllAcrossPages", selectedRowData: "selectedRowData", rowDetails: "rowDetails", kebabItemClick: "kebabItemClick", rowDataOfClickedCell: "rowDataOfClickedCell", onPageChange: "onPageChange", sortDirection: "sortDirection", deletedRowData: "deletedRowData", updatedData: "updatedData", onscrollBottom: "onscrollBottom", emitRefreshEvt: "emitRefreshEvt" }, queries: [{ propertyName: "templateRef", first: true, predicate: ["multiColumnData"], descendants: true }, { propertyName: "detailTemplate", first: true, predicate: ["detailTemplate"], descendants: true }, { propertyName: "impactColumn", first: true, predicate: ["impactColumn"], descendants: true }, { propertyName: "columnTemplates", predicate: CustomColumnTemplate }], viewQueries: [{ propertyName: "grid", first: true, predicate: GridComponent, descendants: true }, { propertyName: "gridElement", first: true, predicate: ["gridElement"], descendants: true }, { propertyName: "selectAllCheckbox", first: true, predicate: ["selectAllCheckbox"], descendants: true }, { propertyName: "selectAllMessageElement", first: true, predicate: ["selectAllMessageElement"], descendants: true }], ngImport: i0, template: "<div #gridElement [ngClass]=\"columnContentNoWrap ? 'column-content-nowrap' : ''\">\n <kendo-grid [data]=\"_gridView\" [pageSize]=\"pageSize\" [skip]=\"skip\" [selectable]=\"selectableSettings\"\n [pageable]=\"pageable\" [sortable]=\"sortable\" [loading]=\"gridLoading\" [groupable]=\"groupable\"\n [reorderable]=\"reorderable\" [resizable]=\"resizable\" [columnMenu]=\"columnMenu\" [navigable]=\"navigable\"\n [height]=\"gridHeight\" (change)=\"setSelectableSettings()\" (selectedKeysChange)=\"selectedKeysChange($event)\"\n [kendoGridSelectBy]=\"gridRowSelectByValue\" (detailExpand)=\"onDetailExpand($event)\" [selectedKeys]=\"_preSelected\"\n (pageChange)=\"pageChange($event)\" (cellClick)=\"cellClickHandler($event)\" (cellClose)=\"cellCloseHandler($event)\"\n [sort]=\"sort\" (sortChange)=\"sortChange($event)\" (scrollBottom)=\"scrollBottom()\" [ngClass]=\"getHeaderHeight()\"\n id=\"lib-grid\" [rowClass]=\"rowClass\">\n <div #selectAllMessageElement>\n <div class=\"lib-grid-select-all-message-container\"\n *ngIf=\"((selectedItemCount < _gridView.total) || allPagesSelected)\">\n <div *ngIf=\"(selectedItemCount < _gridView.total)\" class=\"lib-grid-select-all-message\">\n <lib-typography [defaultText]=\"'All '+selectedItemCount+' '+itemName+' on this page are selected.'\"\n type=\"BODY_SMALL\"></lib-typography>\n <u><lib-typography (click)=\"selectAcrossPages(true)\" class=\"select-all-handler\"\n [defaultText]=\"'Select all '+_gridView.total+' '+itemName+' from all pages'\"\n type=\"BODY_SMALL\"></lib-typography></u>\n </div>\n <div *ngIf=\"allPagesSelected\" class=\"lib-grid-select-all-message\">\n <lib-icon name=\"circle-checked\" class=\"all-selected-icon\"></lib-icon>\n <lib-typography [defaultText]=\"'All '+_gridView.total+' '+itemName+' across all pages are selected.'\"\n type=\"BODY_SMALL\"></lib-typography>\n <u><lib-typography (click)=\"selectAcrossPages(false)\" class=\"select-all-handler\"\n [defaultText]=\"'Clear selection'\" type=\"BODY_SMALL\"></lib-typography></u>\n </div>\n </div>\n </div>\n <ng-template kendoGridToolbarTemplate [position]=\"getPosition()\" let-position=\"position\">\n <ng-container *ngIf=\"showToolbar && position === 'top'\">\n <ng-content></ng-content>\n <ng-container *ngIf=\"showRefresh\">\n <ng-container *ngTemplateOutlet=\"showRefreshTemplate\"></ng-container>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"infiniteScrollLoader && position === 'bottom'\">\n <lib-grid-pagination-spacer></lib-grid-pagination-spacer>\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n <lib-grid-pagination-spacer></lib-grid-pagination-spacer>\n </ng-container>\n </ng-template>\n\n <ng-template #showRefreshTemplate>\n <lib-tooltip position=\"top\" showOn=\"hover\" [tooltipWidth]=\"68\" [callout]=\"true\" [closable]=\"false\">\n <div class=\"tooltip-content\">\n <lib-typography defaultText=\"Refresh\"></lib-typography>\n </div>\n <lib-button size=\"small\" width=\"2.4rem\" rounded=\"small\" fillMode=\"solid\" themeColor=\"primary\" iconName=\"reset\"\n [toggleable]=\"false\" (buttonClick)=\"refreshGridData()\" [iconButton]=\"true\" [iconFontSize]=\"13\"></lib-button>\n </lib-tooltip>\n </ng-template>\n\n <ng-template kendoGridLoadingTemplate>\n <div class=\"k-loading-color\"></div>\n <div class=\"loading-container\">\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </div>\n </ng-template>\n\n <ng-template *ngIf=\"this._gridView.total === 0\" kendoGridNoRecordsTemplate>\n <lib-typography *ngIf=\"!loading\" [defaultText]=\"noRecordsContent\" type=\"BODY_MEDIUM\"></lib-typography>\n <lib-loader *ngIf=\"loading\" [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n <ng-container *ngIf=\"this._gridView.total > 0\">\n <kendo-grid-checkbox-column #selectAllCheckbox headerClass=\"select-all-header\" *ngIf=\"checkBoxRequired\"\n [width]=\"checkBoxWidth\" [resizable]=\"checkBoxColumnResizable\" [columnMenu]=\"checkBoxColumnMenu\"\n class=\"checkbox-column\" [sticky]=\"isCheckBoxColumnSticky && !customExpandRowColumn\">\n <ng-template kendoGridHeaderTemplate *ngIf=\"isSelectAllCheckboxRequired\">\n <input id=\"selectAllCheckboxId\" type=\"checkbox\" kendoCheckBox kendoGridSelectAllCheckbox\n [state]=\"selectAllState\" (selectAllChange)=\"onSelectAllChange($event)\" />\n </ng-template>\n </kendo-grid-checkbox-column>\n\n <kendo-grid-column class=\"grid-column\" *ngFor=\"let item of columnData\" [field]=\"item.field\" [title]=\"item.title\"\n [width]=\"item.columnWidth\" [minResizableWidth]=\"minResizableWidth\" [sortable]=\"item.sortable\"\n [editor]=\"item.editor\" [class]=\"item.class\" [sticky]=\"item.columnSticky && !customExpandRowColumn\">\n\n <ng-template *ngIf=\"sortable\" kendoGridHeaderTemplate>\n {{item.title}}\n <span *ngIf=\"sort[0].field === item.field\">\n <span *ngIf=\"sort[0].dir === 'asc'\"></span>\n <span *ngIf=\"sort[0].dir === 'desc'\"></span>\n </span>\n </ng-template>\n\n <ng-template *ngIf=\"item.customColumn\" kendoGridCellTemplate let-dataItem>\n <ng-container [ngTemplateOutlet]=\"columnTemplateDict[item.type]\"\n [ngTemplateOutletContext]=\"{$implicit: dataItem}\"></ng-container>\n </ng-template>\n\n <ng-template *ngIf=\"item.custom\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"templateRef; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"item.impact\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"impactColumn; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column *ngIf=\"showDeleteColumn\" [width]=\"deleteColumnWidth\" class=\"delete-column\" title=\"Action\"\n [sticky]=\"isDeleteColumnSticky && !customExpandRowColumn\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <lib-tooltip showOn=\"hover\" position=\"bottom\" class=\"remove-tooltip\">\n <lib-icon name=\"delete\" class=\"delete-icon\" (click)=\"onDelete(dataItem)\"></lib-icon>\n <div class=\"tooltip-content\">\n <lib-typography defaultText=\"Remove\"></lib-typography>\n </div>\n </lib-tooltip>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column [width]=\"kebabColumnWidth\" class=\"kebab-column\" *ngIf=\"showKebab\" title=\"Actions\"\n [sticky]=\"isKebabColumnSticky && !customExpandRowColumn\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <kendo-dropdownbutton *ngIf=\"!hideKebabRowIndex.includes(rowIndex)\" [svgIcon]=\"icon\" fillMode=\"none\"\n [data]=\"kebabList | kebabMenuFilter : dataItem\" class=\"kebab\" (itemClick)=\"onKebabClick($event, dataItem)\"\n [popupSettings]=\"{ align: 'right', animate: true, popupClass: 'kebab-list' }\">\n </kendo-dropdownbutton>\n </ng-template>\n </kendo-grid-column>\n </ng-container>\n\n <!-- Limitation: detail template and sticky columns do not co-exist-->\n <ng-template *ngIf=\"customExpandRowColumn\" kendoGridDetailTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"detailTemplate; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n\n <kendo-grid-column *ngIf=\"customExpandRowColumn\" [width]=\"expandRowColumnWidth\" class=\"grid-column expand-column\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <div [ngClass]=\"expandColumnClass()\">\n <span *ngIf=\"selectedRows.includes(dataItem[gridRowSelectByValue]) && disablePreSelectedRows\"\n class=\"expand-column-text\">\n Already added\n </span>\n <kendo-button *ngIf=\"!expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowDownIcon\"\n (click)=\"expandRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </kendo-button>\n <kendo-button *ngIf=\"expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowUpIcon\"\n (click)=\"collapseRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </kendo-button>\n </div>\n </ng-template>\n </kendo-grid-column>\n\n <ng-template kendoPagerTemplate let-totalPages=\"totalPages\" let-currentPage=\"currentPage\">\n <div class=\"pagination-wrapper\" [ngClass]=\"allPagesSelected ? 'pagination-disabled' : ''\">\n <kendo-pager-prev-buttons></kendo-pager-prev-buttons>\n <kendo-pager-numeric-buttons [buttonCount]=\"_pageCount\"></kendo-pager-numeric-buttons>\n <kendo-pager-next-buttons></kendo-pager-next-buttons>\n <kendo-pager-info></kendo-pager-info>\n <kendo-pager-page-sizes [pageSizes]=\"sizes\"></kendo-pager-page-sizes>\n </div>\n </ng-template>\n\n </kendo-grid>\n</div>\n", styles: [".loading-container{height:100%;display:flex;justify-content:center;align-items:center}::ng-deep .k-grid tr{height:50px}::ng-deep .pagination-wrapper{display:flex;width:100%}::ng-deep .pagination-disabled{color:#6c6f72!important;pointer-events:none}::ng-deep .lib-grid-select-all-message-container{height:2rem;display:none;gap:.25rem;justify-content:center;align-items:center;background-color:#eceff5!important;font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}::ng-deep .lib-grid-select-all-message-container .select-all-handler{cursor:pointer}::ng-deep .lib-grid-select-all-message-container .lib-grid-select-all-message{display:flex;gap:.25rem}::ng-deep .lib-grid-select-all-message-container .lib-grid-select-all-message .all-selected-icon{color:#198038}::ng-deep .disabled{cursor:none!important;pointer-events:none;opacity:.5}::ng-deep .lib-grid-select-all-message-show{display:flex!important}::ng-deep .k-grid .k-table-th,::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important;border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:2px!important;border-right:0px!important;border-left:0px!important;cursor:default!important}::ng-deep .k-grid .k-table-th .k-cell-inner,::ng-deep .k-grid .k-table-th.k-sorted .k-cell-inner{padding-right:.5rem;border-right:2px solid #C2D2F3!important}::ng-deep .k-grid .k-table-th .k-cell-inner .k-link,::ng-deep .k-grid .k-table-th.k-sorted .k-cell-inner .k-link{cursor:default!important}::ng-deep .k-grid .k-table-th:focus,::ng-deep .k-grid .k-table-th.k-sorted:focus{box-shadow:none!important}::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important}::ng-deep .k-grid tbody>tr:not(.k-detail-row):hover{background-color:#d0dcf5!important}::ng-deep .k-grid .k-table-row.k-selected>.k-table-td{background-color:#c9d7f4!important}::ng-deep .k-grid .k-table-row.k-disabled>.k-table-td{background-color:#fff!important}::ng-deep .k-grid .k-table-td{border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:1px!important;border-right:0px!important;border-left:0px!important}::ng-deep .k-grid td,::ng-deep .k-grid .k-table-td{white-space:nowrap!important}::ng-deep .k-table-alt-row{background-color:inherit!important}::ng-deep .k-grid .k-table-td{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}::ng-deep .k-grid-norecords{text-align:center!important;opacity:.4}::ng-deep .k-grid-norecords td{padding:14px 0 14px 24px!important}::ng-deep kendo-pager.k-pager-wrap.k-grid-pager{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}::ng-deep .k-pager{border-style:none!important}::ng-deep .k-input-value-text{overflow:unset!important}::ng-deep .k-grid th.k-header{vertical-align:middle!important;padding-left:16px;padding-right:.5rem}::ng-deep .grid-column,::ng-deep .kebab-column,::ng-deep .delete-column{padding:0!important}::ng-deep .grid-column kendo-button,::ng-deep .kebab-column kendo-button,::ng-deep .delete-column kendo-button{align-items:center!important;justify-content:center!important;display:flex!important}::ng-deep .k-checkbox{width:20px!important;height:20px!important;border-radius:0!important}::ng-deep .k-grid .k-hierarchy-cell,::ng-deep .k-grid .k-hierarchy-col{width:0;display:none}::ng-deep .k-grid .k-detail-row .k-detail-cell{background-color:#f4f8fa!important;padding:16px!important}::ng-deep .delete-icon{color:#dc267f!important;padding-left:12px;cursor:pointer}::ng-deep .remove-tooltip kendo-tooltip.k-tooltip{background-color:#fff;color:#000}::ng-deep .hide-header .k-grid-header{border:0px!important}::ng-deep .k-grouping-header{background-color:#eceff5!important}::ng-deep .k-grid-toolbar{padding:4px 16px!important;height:54px;background-color:#eceff5!important}::ng-deep .k-grid td:not(.kebab-column):not(.expand-column){padding-left:16px!important;padding-right:16px!important}::ng-deep .view-header .k-table-thead tr{height:50px}::ng-deep .hide-header .k-table-thead tr{height:0px;padding:0;display:block}::ng-deep td.kebab-column{display:flex;justify-content:center;align-items:center;height:inherit}::ng-deep .k-grid .k-table-td>.k-checkbox{vertical-align:middle!important}::ng-deep .kebab .k-button,::ng-deep .expand-column .k-button{border:0px}::ng-deep .expand-column{pointer-events:all!important}::ng-deep .expand-column-text{margin-right:32px}::ng-deep .expand-row{display:flex;align-items:center;justify-content:flex-end}::ng-deep .column-cursor-pointer{cursor:pointer}::ng-deep .column-content-nowrap .k-grid .k-table-th,::ng-deep .column-content-nowrap .k-grid td,::ng-deep .column-content-nowrap .k-grid .k-table-td{white-space:nowrap;text-overflow:clip}::ng-deep kendo-grid.k-grid .k-table-alt-row .k-grid-content-sticky,::ng-deep kendo-grid.k-grid .k-grid-row-sticky.k-table-alt-row td,::ng-deep kendo-grid.k-grid .k-grid-row-sticky.k-table-alt-row .k-table-td,::ng-deep .k-master-row.k-table-alt-row .k-grid-content-sticky,::ng-deep .k-master-row.k-table-alt-row .k-grid-row-sticky{background-color:#fff}::ng-deep kendo-grid.k-grid .k-grid-content-sticky:hover,::ng-deep kendo-grid.k-grid .k-grid-content-sticky.k-hover,::ng-deep kendo-grid.k-grid .k-table-row:hover .k-grid-content-sticky{background-color:#d0dcf5!important}\n"], dependencies: [{ kind: "ngmodule", type: GridModule }, { kind: "component", type: i1.GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "adaptiveMode", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "gridResizable", "rowReorderable", "navigable", "autoSize", "rowClass", "rowSticky", "rowSelected", "isRowSelectable", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "showInactiveTools", "isDetailExpanded", "isGroupExpanded", "dataLayoutMode"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "gridStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "directive", type: i1.ToolbarTemplateDirective, selector: "[kendoGridToolbarTemplate]", inputs: ["position"] }, { kind: "directive", type: i1.SelectionDirective, selector: "[kendoGridSelectBy]" }, { kind: "component", type: i1.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterVariant", "filterable", "editable"] }, { kind: "directive", type: i1.DetailTemplateDirective, selector: "[kendoGridDetailTemplate]", inputs: ["kendoGridDetailTemplateShowIf"] }, { kind: "component", type: i1.CheckboxColumnComponent, selector: "kendo-grid-checkbox-column", inputs: ["showSelectAll", "showDisabledCheckbox"] }, { kind: "directive", type: i1.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "directive", type: i1.NoRecordsTemplateDirective, selector: "[kendoGridNoRecordsTemplate]" }, { kind: "directive", type: i1.LoadingTemplateDirective, selector: "[kendoGridLoadingTemplate]" }, { kind: "directive", type: i1.HeaderTemplateDirective, selector: "[kendoGridHeaderTemplate]" }, { kind: "directive", type: i1.SelectAllCheckboxDirective, selector: "[kendoGridSelectAllCheckbox]", inputs: ["state"], outputs: ["selectAllChange"] }, { kind: "component", type: i2.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i2.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i2.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i2.PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["showItemsText", "pageSizes", "size", "adaptiveMode"] }, { kind: "component", type: i2.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i2.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i4.DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["arrowIcon", "icon", "svgIcon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor", "buttonAttributes"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }, { kind: "ngmodule", type: DropDownsModule }, { kind: "component", type: TypographyComponent, selector: "lib-typography", inputs: ["type", "defaultText", "isLabel", "hiddenLabel"] }, { kind: "component", type: IconComponent, selector: "lib-icon", inputs: ["name", "projectedIcon", "fontSize", "type"] }, { kind: "component", type: ButtonComponent, selector: "lib-button", inputs: ["size", "rounded", "fillMode", "themeColor", "label", "iconName", "disabled", "toggleable", "iconPosition", "fontType", "width", "iconButton", "projectedIcon", "formatFn", "iconFontSize"], outputs: ["buttonClick"] }, { kind: "component", type: LoaderComponent, selector: "lib-loader", inputs: ["size", "type", "themeColor"] }, { kind: "component", type: TooltipComponent, selector: "lib-tooltip", inputs: ["position", "tooltipWidth", "tooltipHeight", "showOn", "closable", "title", "callout"] }, { kind: "pipe", type: KebabMenuFilterPipe, name: "kebabMenuFilter" }] }); }
|
|
476
483
|
}
|
|
477
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
484
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: GridPaginationComponent, decorators: [{
|
|
478
485
|
type: Component,
|
|
479
|
-
args: [{ selector: 'lib-grid-pagination', template: "<div #gridElement [ngClass]=\"columnContentNoWrap ? 'column-content-nowrap' : ''\">\n <kendo-grid [data]=\"_gridView\" [pageSize]=\"pageSize\" [skip]=\"skip\" [selectable]=\"selectableSettings\"\n [pageable]=\"pageable\" [sortable]=\"sortable\" [loading]=\"gridLoading\" [groupable]=\"groupable\"\n [reorderable]=\"reorderable\" [resizable]=\"resizable\" [columnMenu]=\"columnMenu\" [navigable]=\"navigable\"\n [height]=\"gridHeight\" (change)=\"setSelectableSettings()\" (selectedKeysChange)=\"selectedKeysChange($event)\"\n [kendoGridSelectBy]=\"gridRowSelectByValue\" (detailExpand)=\"onDetailExpand($event)\" [selectedKeys]=\"_preSelected\"\n (pageChange)=\"pageChange($event)\" (cellClick)=\"cellClickHandler($event)\" (cellClose)=\"cellCloseHandler($event)\"\n [sort]=\"sort\" (sortChange)=\"sortChange($event)\" (scrollBottom)=\"scrollBottom()\" [ngClass]=\"getHeaderHeight()\"\n id=\"lib-grid\" [rowClass]=\"rowClass\">\n <div #selectAllMessageElement>\n <div class=\"lib-grid-select-all-message-container\"\n *ngIf=\"((selectedItemCount < _gridView.total) || allPagesSelected)\">\n <div *ngIf=\"(selectedItemCount < _gridView.total)\" class=\"lib-grid-select-all-message\">\n <lib-typography [defaultText]=\"'All '+selectedItemCount+' '+itemName+' on this page are selected.'\"\n type=\"BODY_SMALL\"></lib-typography>\n <u><lib-typography (click)=\"selectAcrossPages(true)\" class=\"select-all-handler\"\n [defaultText]=\"'Select all '+_gridView.total+' '+itemName+' from all pages'\"\n type=\"BODY_SMALL\"></lib-typography></u>\n </div>\n <div *ngIf=\"allPagesSelected\" class=\"lib-grid-select-all-message\">\n <lib-icon name=\"circle-checked\" class=\"all-selected-icon\"></lib-icon>\n <lib-typography [defaultText]=\"'All '+_gridView.total+' '+itemName+' across all pages are selected.'\"\n type=\"BODY_SMALL\"></lib-typography>\n <u><lib-typography (click)=\"selectAcrossPages(false)\" class=\"select-all-handler\"\n [defaultText]=\"'Clear selection'\" type=\"BODY_SMALL\"></lib-typography></u>\n </div>\n </div>\n </div>\n <ng-template kendoGridToolbarTemplate [position]=\"getPosition()\" let-position=\"position\">\n <ng-container *ngIf=\"showToolbar && position === 'top'\">\n <!-- <ng-container *ngTemplateOutlet=\"showAIIcon\"></ng-container> -->\n <ng-content></ng-content>\n <ng-container *ngIf=\"showRefresh\">\n <ng-container *ngTemplateOutlet=\"showRefreshTemplate\"></ng-container>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"infiniteScrollLoader && position === 'bottom'\">\n <lib-grid-pagination-spacer></lib-grid-pagination-spacer>\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n <lib-grid-pagination-spacer></lib-grid-pagination-spacer>\n </ng-container>\n </ng-template>\n\n <ng-template #showRefreshTemplate>\n <lib-tooltip position=\"top\" showOn=\"hover\" [tooltipWidth]=\"68\" [callout]=\"true\">\n <div class=\"tooltip-content\">\n <lib-typography defaultText=\"Refresh\"></lib-typography>\n </div>\n <lib-button size=\"small\" width=\"2.4rem\" rounded=\"small\" fillMode=\"solid\" themeColor=\"primary\" iconName=\"reset\"\n [toggleable]=\"false\" (buttonClick)=\"refreshGridData()\" [iconButton]=\"true\" [iconFontSize]=\"13\"></lib-button>\n </lib-tooltip>\n </ng-template>\n <!-- <ng-template #showAIIcon>\n <div *ngIf=\"mainAIQuestions && mainAIQuestions?.length > 0\">\n <div kendoPopoverAnchor [popover]=\"actionPopover\" showOn=\"hover\">\n <img [src]=\"kebabIconSafeUrl\" alt=\"Ask Chef AI\"\n [ngStyle]=\"{ width: '1.75rem', cursor: 'pointer', position: 'relative', top: '-2px' }\"\n (click)=\"onChefyClick($event, null)\" />\n </div>\n <div>\n <kendo-popover #actionPopover appendTo=\"body\" [width]=\"200\" [offset]=\"-16\" position=\"bottom\"\n popupClass=\"chef-ai-menu\" [callout]=\"true\">\n <ng-template kendoPopoverBodyTemplate>\n <div class=\"recommendations\" *ngFor=\"let mainAIQuestion of mainAIQuestions\"\n (click)=\"onChefyClick($event, null, mainAIQuestion)\">\n <lib-typography type=\"BODY_MEDIUM\" [defaultText]=\"mainAIQuestion\"></lib-typography>\n </div>\n <div class=\"recommendations action-item\" (click)=\"onChefyClick($event, null)\">\n <img [src]=\"kebabIconSafeUrl\" alt=\"Ask Chef AI\"\n [ngStyle]=\"{ width: '1.5rem', cursor: 'pointer', position: 'relative', top: '-2px' }\" />\n <lib-typography type=\"BODY_MEDIUM\" defaultText=\"Start New Conversation\"></lib-typography>\n </div>\n </ng-template>\n </kendo-popover>\n </div>\n </div>\n <div *ngIf=\"!mainAIQuestions || mainAIQuestions?.length === 0\">\n <img [src]=\"kebabIconSafeUrl\" alt=\"Ask Chef AI\"\n [ngStyle]=\"{ width: '1.75rem', cursor: 'pointer', position: 'relative', top: '-2px' }\"\n (click)=\"onChefyClick($event, null)\" />\n </div>\n </ng-template> -->\n\n <ng-template kendoGridLoadingTemplate>\n <div class=\"k-loading-color\"></div>\n <div class=\"loading-container\">\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </div>\n </ng-template>\n\n <ng-template *ngIf=\"this._gridView.total === 0\" kendoGridNoRecordsTemplate>\n <lib-typography *ngIf=\"!loading\" [defaultText]=\"noRecordsContent\" type=\"BODY_MEDIUM\"></lib-typography>\n <lib-loader *ngIf=\"loading\" [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n <ng-container *ngIf=\"this._gridView.total > 0\">\n <kendo-grid-checkbox-column #selectAllCheckbox headerClass=\"select-all-header\" *ngIf=\"checkBoxRequired\"\n [width]=\"checkBoxWidth\" [resizable]=\"checkBoxColumnResizable\" [columnMenu]=\"checkBoxColumnMenu\"\n class=\"checkbox-column\" [sticky]=\"isCheckBoxColumnSticky && !customExpandRowColumn\">\n <ng-template kendoGridHeaderTemplate *ngIf=\"isSelectAllCheckboxRequired\">\n <input id=\"selectAllCheckboxId\" type=\"checkbox\" kendoCheckBox kendoGridSelectAllCheckbox\n [state]=\"selectAllState\" (selectAllChange)=\"onSelectAllChange($event)\" />\n </ng-template>\n </kendo-grid-checkbox-column>\n\n <kendo-grid-column class=\"grid-column\" *ngFor=\"let item of columnData; let i = index\" [field]=\"item.field\"\n [title]=\"item.title\" [width]=\"item.columnWidth\" [minResizableWidth]=\"minResizableWidth\"\n [sortable]=\"item.sortable\" [editor]=\"item.editor\" [class]=\"item.class\"\n [sticky]=\"item.columnSticky && !customExpandRowColumn\">\n\n <ng-template *ngIf=\"sortable\" kendoGridHeaderTemplate>\n {{item.title}}\n <span *ngIf=\"sort[0].field === item.field\">\n <span *ngIf=\"sort[0].dir === 'asc'\"></span>\n <span *ngIf=\"sort[0].dir === 'desc'\"></span>\n </span>\n </ng-template>\n\n <!-- <ng-template *ngIf=\"i === 0\" kendoGridCellTemplate let-dataItem>\n <div class=\"first-custom-column\">\n <lib-typography type=\"BODY_MEDIUM\">{{dataItem?.[item.field]}}</lib-typography>\n <lib-button class=\"chefy\" size=\"small\" rounded=\"full\" (buttonClick)=\"onChefyClick($event, dataItem)\" fillMode=\"solid\"\n themeColor=\"primary\" label=\"Chefy\" />\n </div>\n </ng-template> -->\n\n <ng-template *ngIf=\"item.customColumn\" kendoGridCellTemplate let-dataItem>\n <ng-container [ngTemplateOutlet]=\"columnTemplateDict[item.type]\"\n [ngTemplateOutletContext]=\"{$implicit: dataItem}\"></ng-container>\n </ng-template>\n\n <ng-template *ngIf=\"item.custom\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"templateRef; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"item.impact\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"impactColumn; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column *ngIf=\"showDeleteColumn\" [width]=\"deleteColumnWidth\" class=\"delete-column\" title=\"Action\"\n [sticky]=\"isDeleteColumnSticky && !customExpandRowColumn\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <lib-tooltip showOn=\"hover\" position=\"bottom\" class=\"remove-tooltip\">\n <lib-icon name=\"delete\" class=\"delete-icon\" (click)=\"onDelete(dataItem)\"></lib-icon>\n <div class=\"tooltip-content\">\n <lib-typography defaultText=\"Remove\"></lib-typography>\n </div>\n </lib-tooltip>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column [width]=\"kebabColumnWidth\" class=\"kebab-column\" title=\"Actions\"\n [sticky]=\"isKebabColumnSticky && !customExpandRowColumn\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <div *ngIf=\"aiQuestions && aiQuestions?.length > 0\">\n <div kendoPopoverAnchor [popover]=\"actionPopover\" showOn=\"hover\">\n <img [src]=\"kebabIconSafeUrl\" alt=\"Ask Chef AI\"\n [ngStyle]=\"{ width: '1.75rem', cursor: 'pointer', position: 'relative', top: '-2px' }\"\n (click)=\"onChefyClick($event, dataItem)\" />\n </div>\n <div>\n <kendo-popover #actionPopover appendTo=\"body\" [width]=\"200\" [offset]=\"-16\" position=\"bottom\"\n popupClass=\"chef-ai-menu\" [callout]=\"true\">\n <ng-template kendoPopoverBodyTemplate>\n <div class=\"recommendations\" *ngFor=\"let question of aiQuestions\"\n (click)=\"onChefyClick($event, dataItem, question)\">\n <lib-typography type=\"BODY_MEDIUM\" [defaultText]=\"question\"></lib-typography>\n </div>\n <div class=\"recommendations action-item\" (click)=\"onChefyClick($event, dataItem)\">\n <img [src]=\"kebabIconSafeUrl\" alt=\"Ask Chef AI\"\n [ngStyle]=\"{ width: '1.5rem', cursor: 'pointer', position: 'relative', top: '-2px' }\" />\n <lib-typography type=\"BODY_MEDIUM\" defaultText=\"Start New Conversation\"></lib-typography>\n </div>\n </ng-template>\n </kendo-popover>\n </div>\n </div>\n <div *ngIf=\"!aiQuestions || aiQuestions?.length === 0\">\n <img [src]=\"kebabIconSafeUrl\" alt=\"Ask Chef AI\"\n [ngStyle]=\"{ width: '1.75rem', cursor: 'pointer', position: 'relative', top: '-2px' }\"\n (click)=\"onChefyClick($event, dataItem)\" />\n </div>\n <div *ngIf=\"showKebab\">\n <kendo-dropdownbutton *ngIf=\"!hideKebabRowIndex.includes(rowIndex)\" [svgIcon]=\"icon\" fillMode=\"none\"\n [data]=\"kebabList | kebabMenuFilter : dataItem\" class=\"kebab\" (itemClick)=\"onKebabClick($event, dataItem)\"\n [popupSettings]=\"{ align: 'right', animate: true, popupClass: 'kebab-list' }\">\n </kendo-dropdownbutton>\n </div>\n </ng-template>\n </kendo-grid-column>\n </ng-container>\n\n <!-- Limitation: detail template and sticky columns do not co-exist-->\n <ng-template *ngIf=\"customExpandRowColumn\" kendoGridDetailTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"detailTemplate; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n\n <kendo-grid-column *ngIf=\"customExpandRowColumn\" [width]=\"expandRowColumnWidth\" class=\"grid-column expand-column\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <div [ngClass]=\"expandColumnClass()\">\n <span *ngIf=\"selectedRows.includes(dataItem[gridRowSelectByValue]) && disablePreSelectedRows\"\n class=\"expand-column-text\">\n Already added\n </span>\n <kendo-button *ngIf=\"!expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowDownIcon\"\n (click)=\"expandRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </kendo-button>\n <kendo-button *ngIf=\"expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowUpIcon\"\n (click)=\"collapseRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </kendo-button>\n </div>\n </ng-template>\n </kendo-grid-column>\n\n <ng-template kendoPagerTemplate let-totalPages=\"totalPages\" let-currentPage=\"currentPage\">\n <div class=\"pagination-wrapper\" [ngClass]=\"allPagesSelected ? 'pagination-disabled' : ''\">\n <kendo-pager-prev-buttons></kendo-pager-prev-buttons>\n <kendo-pager-numeric-buttons [buttonCount]=\"_pageCount\"></kendo-pager-numeric-buttons>\n <kendo-pager-next-buttons></kendo-pager-next-buttons>\n <kendo-pager-info></kendo-pager-info>\n <kendo-pager-page-sizes [pageSizes]=\"sizes\"></kendo-pager-page-sizes>\n </div>\n </ng-template>\n\n </kendo-grid>\n</div>\n", styles: [".loading-container{height:100%;display:flex;justify-content:center;align-items:center}::ng-deep .k-grid tr{height:50px}::ng-deep .pagination-wrapper{display:flex;width:100%}::ng-deep .pagination-disabled{color:#6c6f72!important;pointer-events:none}::ng-deep .lib-grid-select-all-message-container{height:2rem;display:none;gap:.25rem;justify-content:center;align-items:center;background-color:#eceff5!important;font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}::ng-deep .lib-grid-select-all-message-container .select-all-handler{cursor:pointer}::ng-deep .lib-grid-select-all-message-container .lib-grid-select-all-message{display:flex;gap:.25rem}::ng-deep .lib-grid-select-all-message-container .lib-grid-select-all-message .all-selected-icon{color:#198038}::ng-deep .disabled{cursor:none!important;pointer-events:none;opacity:.5}::ng-deep .lib-grid-select-all-message-show{display:flex!important}::ng-deep .k-grid .k-table-th,::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important;border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:2px!important;border-right:0px!important;border-left:0px!important;cursor:default!important}::ng-deep .k-grid .k-table-th .k-cell-inner,::ng-deep .k-grid .k-table-th.k-sorted .k-cell-inner{padding-right:.5rem;border-right:2px solid #C2D2F3!important}::ng-deep .k-grid .k-table-th .k-cell-inner .k-link,::ng-deep .k-grid .k-table-th.k-sorted .k-cell-inner .k-link{cursor:default!important}::ng-deep .k-grid .k-table-th:focus,::ng-deep .k-grid .k-table-th.k-sorted:focus{box-shadow:none!important}::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important}::ng-deep .k-grid tbody>tr:not(.k-detail-row):hover{background-color:#d0dcf5!important}::ng-deep .k-grid .k-table-row.k-selected>.k-table-td{background-color:#c9d7f4!important}::ng-deep .k-grid .k-table-row.k-disabled>.k-table-td{background-color:#fff!important}::ng-deep .k-grid .k-table-td{border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:1px!important;border-right:0px!important;border-left:0px!important}::ng-deep .k-grid td,::ng-deep .k-grid .k-table-td{white-space:nowrap!important}::ng-deep .k-table-alt-row{background-color:inherit!important}::ng-deep .k-grid .k-table-td{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}::ng-deep .k-grid-norecords{text-align:center!important;opacity:.4}::ng-deep .k-grid-norecords td{padding:14px 0 14px 24px!important}::ng-deep kendo-pager.k-pager-wrap.k-grid-pager{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}::ng-deep .k-pager{border-style:none!important}::ng-deep .k-input-value-text{overflow:unset!important}::ng-deep .k-grid th.k-header{vertical-align:middle!important;padding-left:16px;padding-right:.5rem}::ng-deep .grid-column,::ng-deep .kebab-column,::ng-deep .delete-column{padding:0!important}::ng-deep .grid-column kendo-button,::ng-deep .kebab-column kendo-button,::ng-deep .delete-column kendo-button{align-items:center!important;justify-content:center!important;display:flex!important}::ng-deep .k-checkbox{width:20px!important;height:20px!important;border-radius:0!important}::ng-deep .k-grid .k-hierarchy-cell,::ng-deep .k-grid .k-hierarchy-col{width:0;display:none}::ng-deep .k-grid .k-detail-row .k-detail-cell{background-color:#f4f8fa!important;padding:16px!important}::ng-deep .delete-icon{color:#dc267f!important;padding-left:12px;cursor:pointer}::ng-deep .remove-tooltip kendo-tooltip.k-tooltip{background-color:#fff;color:#000}::ng-deep .hide-header .k-grid-header{border:0px!important}::ng-deep .k-grouping-header{background-color:#eceff5!important}::ng-deep .k-grid-toolbar{padding:4px 16px!important;height:54px;background-color:#eceff5!important}::ng-deep .k-grid td:not(.kebab-column):not(.expand-column){padding-left:16px!important;padding-right:16px!important}::ng-deep .view-header .k-table-thead tr{height:50px}::ng-deep .hide-header .k-table-thead tr{height:0px;padding:0;display:block}::ng-deep td.kebab-column{display:flex;justify-content:center;align-items:center;height:inherit}::ng-deep .k-grid .k-table-td>.k-checkbox{vertical-align:middle!important}::ng-deep .kebab .k-button,::ng-deep .expand-column .k-button{border:0px}::ng-deep .expand-column{pointer-events:all!important}::ng-deep .expand-column-text{margin-right:32px}::ng-deep .expand-row{display:flex;align-items:center;justify-content:flex-end}::ng-deep .column-cursor-pointer{cursor:pointer}::ng-deep .column-content-nowrap .k-grid .k-table-th,::ng-deep .column-content-nowrap .k-grid td,::ng-deep .column-content-nowrap .k-grid .k-table-td{white-space:nowrap;text-overflow:clip}::ng-deep kendo-grid.k-grid .k-table-alt-row .k-grid-content-sticky,::ng-deep kendo-grid.k-grid .k-grid-row-sticky.k-table-alt-row td,::ng-deep kendo-grid.k-grid .k-grid-row-sticky.k-table-alt-row .k-table-td,::ng-deep .k-master-row.k-table-alt-row .k-grid-content-sticky,::ng-deep .k-master-row.k-table-alt-row .k-grid-row-sticky{background-color:#fff}::ng-deep kendo-grid.k-grid .k-grid-content-sticky:hover,::ng-deep kendo-grid.k-grid .k-grid-content-sticky.k-hover,::ng-deep kendo-grid.k-grid .k-table-row:hover .k-grid-content-sticky{background-color:#d0dcf5!important}::ng-deep .first-custom-column{position:relative}::ng-deep .first-custom-column .chefy{display:none;position:absolute;right:0;opacity:0;transition:opacity .2s ease}::ng-deep .first-custom-column .chefy .btn-padding{padding:.125rem .25rem}::ng-deep .k-grid tbody>tr:not(.k-detail-row):hover .first-custom-column .chefy{display:inline-block;opacity:1}::ng-deep kendo-popover .k-popover-body{padding:0!important}::ng-deep kendo-popover .k-popover-callout.k-callout-n{top:.5rem!important}::ng-deep kendo-popover .recommendations{border-bottom:1px solid #dee2e6;padding:.25rem .5rem;cursor:pointer}::ng-deep kendo-popover .recommendations:hover{background-color:#f3f3f3}::ng-deep kendo-popover .recommendations.action-item{padding:.25rem;color:#0069ff}\n"] }]
|
|
480
|
-
|
|
486
|
+
args: [{ standalone: true, selector: 'lib-grid-pagination', imports: [
|
|
487
|
+
GridModule,
|
|
488
|
+
CommonModule,
|
|
489
|
+
ButtonsModule,
|
|
490
|
+
DropDownsModule,
|
|
491
|
+
TypographyComponent,
|
|
492
|
+
IconComponent,
|
|
493
|
+
ButtonComponent,
|
|
494
|
+
LoaderComponent,
|
|
495
|
+
TooltipComponent,
|
|
496
|
+
KebabMenuFilterPipe
|
|
497
|
+
], template: "<div #gridElement [ngClass]=\"columnContentNoWrap ? 'column-content-nowrap' : ''\">\n <kendo-grid [data]=\"_gridView\" [pageSize]=\"pageSize\" [skip]=\"skip\" [selectable]=\"selectableSettings\"\n [pageable]=\"pageable\" [sortable]=\"sortable\" [loading]=\"gridLoading\" [groupable]=\"groupable\"\n [reorderable]=\"reorderable\" [resizable]=\"resizable\" [columnMenu]=\"columnMenu\" [navigable]=\"navigable\"\n [height]=\"gridHeight\" (change)=\"setSelectableSettings()\" (selectedKeysChange)=\"selectedKeysChange($event)\"\n [kendoGridSelectBy]=\"gridRowSelectByValue\" (detailExpand)=\"onDetailExpand($event)\" [selectedKeys]=\"_preSelected\"\n (pageChange)=\"pageChange($event)\" (cellClick)=\"cellClickHandler($event)\" (cellClose)=\"cellCloseHandler($event)\"\n [sort]=\"sort\" (sortChange)=\"sortChange($event)\" (scrollBottom)=\"scrollBottom()\" [ngClass]=\"getHeaderHeight()\"\n id=\"lib-grid\" [rowClass]=\"rowClass\">\n <div #selectAllMessageElement>\n <div class=\"lib-grid-select-all-message-container\"\n *ngIf=\"((selectedItemCount < _gridView.total) || allPagesSelected)\">\n <div *ngIf=\"(selectedItemCount < _gridView.total)\" class=\"lib-grid-select-all-message\">\n <lib-typography [defaultText]=\"'All '+selectedItemCount+' '+itemName+' on this page are selected.'\"\n type=\"BODY_SMALL\"></lib-typography>\n <u><lib-typography (click)=\"selectAcrossPages(true)\" class=\"select-all-handler\"\n [defaultText]=\"'Select all '+_gridView.total+' '+itemName+' from all pages'\"\n type=\"BODY_SMALL\"></lib-typography></u>\n </div>\n <div *ngIf=\"allPagesSelected\" class=\"lib-grid-select-all-message\">\n <lib-icon name=\"circle-checked\" class=\"all-selected-icon\"></lib-icon>\n <lib-typography [defaultText]=\"'All '+_gridView.total+' '+itemName+' across all pages are selected.'\"\n type=\"BODY_SMALL\"></lib-typography>\n <u><lib-typography (click)=\"selectAcrossPages(false)\" class=\"select-all-handler\"\n [defaultText]=\"'Clear selection'\" type=\"BODY_SMALL\"></lib-typography></u>\n </div>\n </div>\n </div>\n <ng-template kendoGridToolbarTemplate [position]=\"getPosition()\" let-position=\"position\">\n <ng-container *ngIf=\"showToolbar && position === 'top'\">\n <ng-content></ng-content>\n <ng-container *ngIf=\"showRefresh\">\n <ng-container *ngTemplateOutlet=\"showRefreshTemplate\"></ng-container>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"infiniteScrollLoader && position === 'bottom'\">\n <lib-grid-pagination-spacer></lib-grid-pagination-spacer>\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n <lib-grid-pagination-spacer></lib-grid-pagination-spacer>\n </ng-container>\n </ng-template>\n\n <ng-template #showRefreshTemplate>\n <lib-tooltip position=\"top\" showOn=\"hover\" [tooltipWidth]=\"68\" [callout]=\"true\" [closable]=\"false\">\n <div class=\"tooltip-content\">\n <lib-typography defaultText=\"Refresh\"></lib-typography>\n </div>\n <lib-button size=\"small\" width=\"2.4rem\" rounded=\"small\" fillMode=\"solid\" themeColor=\"primary\" iconName=\"reset\"\n [toggleable]=\"false\" (buttonClick)=\"refreshGridData()\" [iconButton]=\"true\" [iconFontSize]=\"13\"></lib-button>\n </lib-tooltip>\n </ng-template>\n\n <ng-template kendoGridLoadingTemplate>\n <div class=\"k-loading-color\"></div>\n <div class=\"loading-container\">\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </div>\n </ng-template>\n\n <ng-template *ngIf=\"this._gridView.total === 0\" kendoGridNoRecordsTemplate>\n <lib-typography *ngIf=\"!loading\" [defaultText]=\"noRecordsContent\" type=\"BODY_MEDIUM\"></lib-typography>\n <lib-loader *ngIf=\"loading\" [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n <ng-container *ngIf=\"this._gridView.total > 0\">\n <kendo-grid-checkbox-column #selectAllCheckbox headerClass=\"select-all-header\" *ngIf=\"checkBoxRequired\"\n [width]=\"checkBoxWidth\" [resizable]=\"checkBoxColumnResizable\" [columnMenu]=\"checkBoxColumnMenu\"\n class=\"checkbox-column\" [sticky]=\"isCheckBoxColumnSticky && !customExpandRowColumn\">\n <ng-template kendoGridHeaderTemplate *ngIf=\"isSelectAllCheckboxRequired\">\n <input id=\"selectAllCheckboxId\" type=\"checkbox\" kendoCheckBox kendoGridSelectAllCheckbox\n [state]=\"selectAllState\" (selectAllChange)=\"onSelectAllChange($event)\" />\n </ng-template>\n </kendo-grid-checkbox-column>\n\n <kendo-grid-column class=\"grid-column\" *ngFor=\"let item of columnData\" [field]=\"item.field\" [title]=\"item.title\"\n [width]=\"item.columnWidth\" [minResizableWidth]=\"minResizableWidth\" [sortable]=\"item.sortable\"\n [editor]=\"item.editor\" [class]=\"item.class\" [sticky]=\"item.columnSticky && !customExpandRowColumn\">\n\n <ng-template *ngIf=\"sortable\" kendoGridHeaderTemplate>\n {{item.title}}\n <span *ngIf=\"sort[0].field === item.field\">\n <span *ngIf=\"sort[0].dir === 'asc'\"></span>\n <span *ngIf=\"sort[0].dir === 'desc'\"></span>\n </span>\n </ng-template>\n\n <ng-template *ngIf=\"item.customColumn\" kendoGridCellTemplate let-dataItem>\n <ng-container [ngTemplateOutlet]=\"columnTemplateDict[item.type]\"\n [ngTemplateOutletContext]=\"{$implicit: dataItem}\"></ng-container>\n </ng-template>\n\n <ng-template *ngIf=\"item.custom\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"templateRef; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"item.impact\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"impactColumn; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column *ngIf=\"showDeleteColumn\" [width]=\"deleteColumnWidth\" class=\"delete-column\" title=\"Action\"\n [sticky]=\"isDeleteColumnSticky && !customExpandRowColumn\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <lib-tooltip showOn=\"hover\" position=\"bottom\" class=\"remove-tooltip\">\n <lib-icon name=\"delete\" class=\"delete-icon\" (click)=\"onDelete(dataItem)\"></lib-icon>\n <div class=\"tooltip-content\">\n <lib-typography defaultText=\"Remove\"></lib-typography>\n </div>\n </lib-tooltip>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column [width]=\"kebabColumnWidth\" class=\"kebab-column\" *ngIf=\"showKebab\" title=\"Actions\"\n [sticky]=\"isKebabColumnSticky && !customExpandRowColumn\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <kendo-dropdownbutton *ngIf=\"!hideKebabRowIndex.includes(rowIndex)\" [svgIcon]=\"icon\" fillMode=\"none\"\n [data]=\"kebabList | kebabMenuFilter : dataItem\" class=\"kebab\" (itemClick)=\"onKebabClick($event, dataItem)\"\n [popupSettings]=\"{ align: 'right', animate: true, popupClass: 'kebab-list' }\">\n </kendo-dropdownbutton>\n </ng-template>\n </kendo-grid-column>\n </ng-container>\n\n <!-- Limitation: detail template and sticky columns do not co-exist-->\n <ng-template *ngIf=\"customExpandRowColumn\" kendoGridDetailTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"detailTemplate; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n\n <kendo-grid-column *ngIf=\"customExpandRowColumn\" [width]=\"expandRowColumnWidth\" class=\"grid-column expand-column\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <div [ngClass]=\"expandColumnClass()\">\n <span *ngIf=\"selectedRows.includes(dataItem[gridRowSelectByValue]) && disablePreSelectedRows\"\n class=\"expand-column-text\">\n Already added\n </span>\n <kendo-button *ngIf=\"!expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowDownIcon\"\n (click)=\"expandRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </kendo-button>\n <kendo-button *ngIf=\"expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowUpIcon\"\n (click)=\"collapseRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </kendo-button>\n </div>\n </ng-template>\n </kendo-grid-column>\n\n <ng-template kendoPagerTemplate let-totalPages=\"totalPages\" let-currentPage=\"currentPage\">\n <div class=\"pagination-wrapper\" [ngClass]=\"allPagesSelected ? 'pagination-disabled' : ''\">\n <kendo-pager-prev-buttons></kendo-pager-prev-buttons>\n <kendo-pager-numeric-buttons [buttonCount]=\"_pageCount\"></kendo-pager-numeric-buttons>\n <kendo-pager-next-buttons></kendo-pager-next-buttons>\n <kendo-pager-info></kendo-pager-info>\n <kendo-pager-page-sizes [pageSizes]=\"sizes\"></kendo-pager-page-sizes>\n </div>\n </ng-template>\n\n </kendo-grid>\n</div>\n", styles: [".loading-container{height:100%;display:flex;justify-content:center;align-items:center}::ng-deep .k-grid tr{height:50px}::ng-deep .pagination-wrapper{display:flex;width:100%}::ng-deep .pagination-disabled{color:#6c6f72!important;pointer-events:none}::ng-deep .lib-grid-select-all-message-container{height:2rem;display:none;gap:.25rem;justify-content:center;align-items:center;background-color:#eceff5!important;font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}::ng-deep .lib-grid-select-all-message-container .select-all-handler{cursor:pointer}::ng-deep .lib-grid-select-all-message-container .lib-grid-select-all-message{display:flex;gap:.25rem}::ng-deep .lib-grid-select-all-message-container .lib-grid-select-all-message .all-selected-icon{color:#198038}::ng-deep .disabled{cursor:none!important;pointer-events:none;opacity:.5}::ng-deep .lib-grid-select-all-message-show{display:flex!important}::ng-deep .k-grid .k-table-th,::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important;border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:2px!important;border-right:0px!important;border-left:0px!important;cursor:default!important}::ng-deep .k-grid .k-table-th .k-cell-inner,::ng-deep .k-grid .k-table-th.k-sorted .k-cell-inner{padding-right:.5rem;border-right:2px solid #C2D2F3!important}::ng-deep .k-grid .k-table-th .k-cell-inner .k-link,::ng-deep .k-grid .k-table-th.k-sorted .k-cell-inner .k-link{cursor:default!important}::ng-deep .k-grid .k-table-th:focus,::ng-deep .k-grid .k-table-th.k-sorted:focus{box-shadow:none!important}::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important}::ng-deep .k-grid tbody>tr:not(.k-detail-row):hover{background-color:#d0dcf5!important}::ng-deep .k-grid .k-table-row.k-selected>.k-table-td{background-color:#c9d7f4!important}::ng-deep .k-grid .k-table-row.k-disabled>.k-table-td{background-color:#fff!important}::ng-deep .k-grid .k-table-td{border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:1px!important;border-right:0px!important;border-left:0px!important}::ng-deep .k-grid td,::ng-deep .k-grid .k-table-td{white-space:nowrap!important}::ng-deep .k-table-alt-row{background-color:inherit!important}::ng-deep .k-grid .k-table-td{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}::ng-deep .k-grid-norecords{text-align:center!important;opacity:.4}::ng-deep .k-grid-norecords td{padding:14px 0 14px 24px!important}::ng-deep kendo-pager.k-pager-wrap.k-grid-pager{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}::ng-deep .k-pager{border-style:none!important}::ng-deep .k-input-value-text{overflow:unset!important}::ng-deep .k-grid th.k-header{vertical-align:middle!important;padding-left:16px;padding-right:.5rem}::ng-deep .grid-column,::ng-deep .kebab-column,::ng-deep .delete-column{padding:0!important}::ng-deep .grid-column kendo-button,::ng-deep .kebab-column kendo-button,::ng-deep .delete-column kendo-button{align-items:center!important;justify-content:center!important;display:flex!important}::ng-deep .k-checkbox{width:20px!important;height:20px!important;border-radius:0!important}::ng-deep .k-grid .k-hierarchy-cell,::ng-deep .k-grid .k-hierarchy-col{width:0;display:none}::ng-deep .k-grid .k-detail-row .k-detail-cell{background-color:#f4f8fa!important;padding:16px!important}::ng-deep .delete-icon{color:#dc267f!important;padding-left:12px;cursor:pointer}::ng-deep .remove-tooltip kendo-tooltip.k-tooltip{background-color:#fff;color:#000}::ng-deep .hide-header .k-grid-header{border:0px!important}::ng-deep .k-grouping-header{background-color:#eceff5!important}::ng-deep .k-grid-toolbar{padding:4px 16px!important;height:54px;background-color:#eceff5!important}::ng-deep .k-grid td:not(.kebab-column):not(.expand-column){padding-left:16px!important;padding-right:16px!important}::ng-deep .view-header .k-table-thead tr{height:50px}::ng-deep .hide-header .k-table-thead tr{height:0px;padding:0;display:block}::ng-deep td.kebab-column{display:flex;justify-content:center;align-items:center;height:inherit}::ng-deep .k-grid .k-table-td>.k-checkbox{vertical-align:middle!important}::ng-deep .kebab .k-button,::ng-deep .expand-column .k-button{border:0px}::ng-deep .expand-column{pointer-events:all!important}::ng-deep .expand-column-text{margin-right:32px}::ng-deep .expand-row{display:flex;align-items:center;justify-content:flex-end}::ng-deep .column-cursor-pointer{cursor:pointer}::ng-deep .column-content-nowrap .k-grid .k-table-th,::ng-deep .column-content-nowrap .k-grid td,::ng-deep .column-content-nowrap .k-grid .k-table-td{white-space:nowrap;text-overflow:clip}::ng-deep kendo-grid.k-grid .k-table-alt-row .k-grid-content-sticky,::ng-deep kendo-grid.k-grid .k-grid-row-sticky.k-table-alt-row td,::ng-deep kendo-grid.k-grid .k-grid-row-sticky.k-table-alt-row .k-table-td,::ng-deep .k-master-row.k-table-alt-row .k-grid-content-sticky,::ng-deep .k-master-row.k-table-alt-row .k-grid-row-sticky{background-color:#fff}::ng-deep kendo-grid.k-grid .k-grid-content-sticky:hover,::ng-deep kendo-grid.k-grid .k-grid-content-sticky.k-hover,::ng-deep kendo-grid.k-grid .k-table-row:hover .k-grid-content-sticky{background-color:#d0dcf5!important}\n"] }]
|
|
498
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }], propDecorators: { columnTemplates: [{
|
|
481
499
|
type: ContentChildren,
|
|
482
500
|
args: [CustomColumnTemplate]
|
|
483
501
|
}], templateRef: [{
|
|
@@ -502,41 +520,65 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
502
520
|
type: ViewChild,
|
|
503
521
|
args: ['selectAllMessageElement']
|
|
504
522
|
}], skip: [{
|
|
505
|
-
type: Input
|
|
523
|
+
type: Input,
|
|
524
|
+
args: [{ transform: (value) => {
|
|
525
|
+
if (value === undefined || value === null)
|
|
526
|
+
return 0;
|
|
527
|
+
return typeof value === 'string' ? parseInt(value, 10) || 0 : value;
|
|
528
|
+
} }]
|
|
506
529
|
}], itemName: [{
|
|
507
530
|
type: Input
|
|
508
531
|
}], showSelectAllMessage: [{
|
|
509
|
-
type: Input
|
|
532
|
+
type: Input,
|
|
533
|
+
args: [{ transform: (value) => value === true || value === 'true' }]
|
|
510
534
|
}], onSelectAllAcrossPages: [{
|
|
511
535
|
type: Output
|
|
512
|
-
}], aiQuestions: [{
|
|
513
|
-
type: Input
|
|
514
536
|
}], columnData: [{
|
|
515
537
|
type: Input
|
|
516
538
|
}], pageSize: [{
|
|
517
|
-
type: Input
|
|
539
|
+
type: Input,
|
|
540
|
+
args: [{ transform: (value) => {
|
|
541
|
+
if (value === undefined || value === null)
|
|
542
|
+
return 0;
|
|
543
|
+
return typeof value === 'string' ? parseInt(value, 10) || 0 : value;
|
|
544
|
+
} }]
|
|
518
545
|
}], pageable: [{
|
|
519
|
-
type: Input
|
|
546
|
+
type: Input,
|
|
547
|
+
args: [{ transform: booleanAttribute }]
|
|
520
548
|
}], sortable: [{
|
|
521
|
-
type: Input
|
|
549
|
+
type: Input,
|
|
550
|
+
args: [{ transform: (value) => value === true || value === 'true' }]
|
|
522
551
|
}], groupable: [{
|
|
523
|
-
type: Input
|
|
552
|
+
type: Input,
|
|
553
|
+
args: [{ transform: (value) => value === true || value === 'true' }]
|
|
524
554
|
}], reorderable: [{
|
|
525
|
-
type: Input
|
|
555
|
+
type: Input,
|
|
556
|
+
args: [{ transform: (value) => value === true || value === 'true' }]
|
|
526
557
|
}], resizable: [{
|
|
527
|
-
type: Input
|
|
558
|
+
type: Input,
|
|
559
|
+
args: [{ transform: (value) => value === true || value === 'true' }]
|
|
528
560
|
}], checkBoxWidth: [{
|
|
529
|
-
type: Input
|
|
561
|
+
type: Input,
|
|
562
|
+
args: [{ transform: (value) => {
|
|
563
|
+
if (value === undefined || value === null)
|
|
564
|
+
return 45;
|
|
565
|
+
return typeof value === 'string' ? parseInt(value, 10) || 45 : value;
|
|
566
|
+
} }]
|
|
530
567
|
}], checkBoxColumnResizable: [{
|
|
531
|
-
type: Input
|
|
568
|
+
type: Input,
|
|
569
|
+
args: [{ transform: (value) => value === true || value === 'true' }]
|
|
532
570
|
}], checkBoxColumnMenu: [{
|
|
533
|
-
type: Input
|
|
571
|
+
type: Input,
|
|
572
|
+
args: [{ transform: (value) => value === true || value === 'true' }]
|
|
534
573
|
}], checkBoxColumnShowSelectedAll: [{
|
|
535
|
-
type: Input
|
|
574
|
+
type: Input,
|
|
575
|
+
args: [{ transform: (value) => value === true || value === 'true' }]
|
|
536
576
|
}], checkBoxRequired: [{
|
|
537
|
-
type: Input
|
|
577
|
+
type: Input,
|
|
578
|
+
args: [{ transform: (value) => value === true || value === 'true' }]
|
|
538
579
|
}], columnMenu: [{
|
|
539
|
-
type: Input
|
|
580
|
+
type: Input,
|
|
581
|
+
args: [{ transform: (value) => value === true || value === 'true' }]
|
|
540
582
|
}], mode: [{
|
|
541
583
|
type: Input
|
|
542
584
|
}], checkboxOnly: [{
|
|
@@ -544,7 +586,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
544
586
|
}], dragColumns: [{
|
|
545
587
|
type: Input
|
|
546
588
|
}], navigable: [{
|
|
547
|
-
type: Input
|
|
589
|
+
type: Input,
|
|
590
|
+
args: [{ transform: (value) => value === true || value === 'true' }]
|
|
548
591
|
}], gridHeight: [{
|
|
549
592
|
type: Input
|
|
550
593
|
}], gridRowSelectByValue: [{
|
|
@@ -554,11 +597,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
554
597
|
}], selectedRowData: [{
|
|
555
598
|
type: Output
|
|
556
599
|
}], showToolbar: [{
|
|
557
|
-
type: Input
|
|
600
|
+
type: Input,
|
|
601
|
+
args: [{ transform: (value) => value === true || value === 'true' }]
|
|
558
602
|
}], kebabList: [{
|
|
559
603
|
type: Input
|
|
560
604
|
}], showKebab: [{
|
|
561
|
-
type: Input
|
|
605
|
+
type: Input,
|
|
606
|
+
args: [{ transform: (value) => value === true || value === 'true' }]
|
|
562
607
|
}], rowDetails: [{
|
|
563
608
|
type: Output
|
|
564
609
|
}], kebabItemClick: [{
|
|
@@ -566,7 +611,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
566
611
|
}], icon: [{
|
|
567
612
|
type: Input
|
|
568
613
|
}], kebabColumnWidth: [{
|
|
569
|
-
type: Input
|
|
614
|
+
type: Input,
|
|
615
|
+
args: [{ transform: (value) => {
|
|
616
|
+
if (value === undefined || value === null)
|
|
617
|
+
return 90;
|
|
618
|
+
return typeof value === 'string' ? parseInt(value, 10) || 90 : value;
|
|
619
|
+
} }]
|
|
570
620
|
}], selectColumn: [{
|
|
571
621
|
type: Input
|
|
572
622
|
}], rowDataOfClickedCell: [{
|
|
@@ -580,7 +630,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
580
630
|
}], ignoreColumnCellClick: [{
|
|
581
631
|
type: Input
|
|
582
632
|
}], allowColumnClick: [{
|
|
583
|
-
type: Input
|
|
633
|
+
type: Input,
|
|
634
|
+
args: [{ transform: (value) => value === true || value === 'true' }]
|
|
584
635
|
}], sort: [{
|
|
585
636
|
type: Input
|
|
586
637
|
}], hasApiSorting: [{
|
|
@@ -590,9 +641,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
590
641
|
}], expandRowIndex: [{
|
|
591
642
|
type: Input
|
|
592
643
|
}], customExpandRowColumn: [{
|
|
593
|
-
type: Input
|
|
644
|
+
type: Input,
|
|
645
|
+
args: [{ transform: (value) => value === true || value === 'true' }]
|
|
594
646
|
}], deleteColumnWidth: [{
|
|
595
|
-
type: Input
|
|
647
|
+
type: Input,
|
|
648
|
+
args: [{ transform: (value) => {
|
|
649
|
+
if (value === undefined || value === null)
|
|
650
|
+
return 42;
|
|
651
|
+
return typeof value === 'string' ? parseInt(value, 10) || 42 : value;
|
|
652
|
+
} }]
|
|
653
|
+
}], expandRowColumnWidth: [{
|
|
654
|
+
type: Input,
|
|
655
|
+
args: [{ transform: (value) => {
|
|
656
|
+
if (value === undefined || value === null)
|
|
657
|
+
return 56;
|
|
658
|
+
return typeof value === 'string' ? parseInt(value, 10) || 56 : value;
|
|
659
|
+
} }]
|
|
596
660
|
}], deletedRowData: [{
|
|
597
661
|
type: Output
|
|
598
662
|
}], sizes: [{
|
|
@@ -604,7 +668,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
604
668
|
}], hideKebabRowIndex: [{
|
|
605
669
|
type: Input
|
|
606
670
|
}], loading: [{
|
|
607
|
-
type: Input
|
|
671
|
+
type: Input,
|
|
672
|
+
args: [{ transform: (value) => value === true || value === 'true' }]
|
|
608
673
|
}], loaderType: [{
|
|
609
674
|
type: Input
|
|
610
675
|
}], loaderSize: [{
|
|
@@ -624,9 +689,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
624
689
|
}], onscrollBottom: [{
|
|
625
690
|
type: Output
|
|
626
691
|
}], isInfiniteScrollGrid: [{
|
|
627
|
-
type: Input
|
|
692
|
+
type: Input,
|
|
693
|
+
args: [{ transform: (value) => value === true || value === 'true' }]
|
|
628
694
|
}], gridLoading: [{
|
|
629
|
-
type: Input
|
|
695
|
+
type: Input,
|
|
696
|
+
args: [{ transform: (value) => value === true || value === 'true' }]
|
|
630
697
|
}], minResizableWidth: [{
|
|
631
698
|
type: Input
|
|
632
699
|
}], showRefresh: [{
|
|
@@ -642,4 +709,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
642
709
|
}], isSelectAllCheckboxRequired: [{
|
|
643
710
|
type: Input
|
|
644
711
|
}] } });
|
|
645
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0QsU0FBUyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFxQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdk8sT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RELE9BQU8sRUFBa0IsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRixPQUFPLEVBQWtDLGFBQWEsRUFBNkcsTUFBTSw4QkFBOEIsQ0FBQztBQUN4TSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBVyxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFPdEcsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUFtQixRQUFnQztRQUFoQyxhQUFRLEdBQVIsUUFBUSxDQUF3QjtRQUQxQyxTQUFJLEdBQVcsRUFBRSxDQUFDO0lBQzRCLENBQUM7K0dBRjdDLG9CQUFvQjttR0FBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9C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QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0ksY0FBYztzQkFBdkIsTUFBTTtnQkFDRSwyQkFBMkI7c0JBQW5DLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIENvbnRlbnRDaGlsZHJlbiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0LCBSZW5kZXJlcjIsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBLZXlzIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IFNvcnREZXNjcmlwdG9yLCBvcmRlckJ5IH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWRhdGEtcXVlcnknO1xuaW1wb3J0IHsgTG9hZGVyU2l6ZSwgTG9hZGVyVGhlbWVDb2xvciwgTG9hZGVyVHlwZSB9IGZyb20gJy4uLy4uL2F0b21zL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENlbGxDbGlja0V2ZW50LCBDZWxsQ2xvc2VFdmVudCwgR3JpZENvbXBvbmVudCwgR3JpZERhdGFSZXN1bHQsIFBhZ2VDaGFuZ2VFdmVudCwgUm93Q2xhc3NBcmdzLCBTZWxlY3RBbGxDaGVja2JveFN0YXRlLCBTZWxlY3RhYmxlTW9kZSwgU2VsZWN0YWJsZVNldHRpbmdzIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItZ3JpZCc7XG5pbXBvcnQgeyBjaGV2cm9uRG93bkljb24sIGNoZXZyb25VcEljb24sIG1vcmVWZXJ0aWNhbEljb24sIFNWR0ljb24gfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tc3ZnLWljb25zJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW3R5cGVdJ1xufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21Db2x1bW5UZW1wbGF0ZSB7XG4gIEBJbnB1dCgpIHR5cGU6IHN0cmluZyA9IFwiXCI7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8Q29tcG9uZW50PikgeyB9XG59XG5cbmNvbnN0IGNyZWF0ZUZvcm1Hcm91cCA9IChkYXRhSXRlbTogYW55KTogRm9ybUdyb3VwID0+IHtcbiAgY29uc3QgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICBmb3IgKGxldCBkYXRhIG9mIE9iamVjdC5rZXlzKGRhdGFJdGVtKSkge1xuICAgIGZvcm0uYWRkQ29udHJvbChkYXRhLCBuZXcgRm9ybUNvbnRyb2woZGF0YUl0ZW1bZGF0YV0sIFZhbGlkYXRvcnMucmVxdWlyZWQpKVxuICB9XG4gIHJldHVybiBmb3JtXG59O1xuXG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWdyaWQtcGFnaW5hdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLXBhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ncmlkLXBhZ2luYXRpb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBHcmlkUGFnaW5hdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihDdXN0b21Db2x1bW5UZW1wbGF0ZSkgY29sdW1uVGVtcGxhdGVzITogUXVlcnlMaXN0PEN1c3RvbUNvbHVtblRlbXBsYXRlPiB8IFtdO1xuICBAQ29udGVudENoaWxkKCdtdWx0aUNvbHVtbkRhdGEnKSB0ZW1wbGF0ZVJlZiE6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuICBAQ29udGVudENoaWxkKCdkZXRhaWxUZW1wbGF0ZScpIGRldGFpbFRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PiB8IG51bGw7XG4gIEBDb250ZW50Q2hpbGQoJ2ltcGFjdENvbHVtbicpIGltcGFjdENvbHVtbiE6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuICBAVmlld0NoaWxkKEdyaWRDb21wb25lbnQpIGdyaWQhOiBHcmlkQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdncmlkRWxlbWVudCcpIGdyaWRFbGVtZW50ITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnc2VsZWN0QWxsQ2hlY2tib3gnKSBzZWxlY3RBbGxDaGVja2JveCE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdEFsbE1lc3NhZ2VFbGVtZW50Jykgc2VsZWN0QWxsTWVzc2FnZUVsZW1lbnQhOiBFbGVtZW50UmVmO1xuICBASW5wdXQoKSBza2lwOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBpdGVtTmFtZTogc3RyaW5nID0gJ0l0ZW1zJztcbiAgQElucHV0KCkgc2hvd1NlbGVjdEFsbE1lc3NhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgYWxsUGFnZXNTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcmV2aW91c1NlbGVjdEFsbFN0YXRlOiBTZWxlY3RBbGxDaGVja2JveFN0YXRlID0gJ3VuY2hlY2tlZCc7XG4gIEBPdXRwdXQoKSBvblNlbGVjdEFsbEFjcm9zc1BhZ2VzID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBASW5wdXQoKSBhaVF1ZXN0aW9uczogYW55ID0gW107XG4gIEBJbnB1dCgpIGNvbHVtbkRhdGE6IGFueSA9IFtdO1xuICBASW5wdXQoKSBwYWdlU2l6ZTogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgcGFnZWFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc29ydGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZ3JvdXBhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlb3JkZXJhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlc2l6YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjaGVja0JveFdpZHRoOiBudW1iZXIgPSA0NTtcbiAgQElucHV0KCkgY2hlY2tCb3hDb2x1bW5SZXNpemFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY2hlY2tCb3hDb2x1bW5NZW51OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNoZWNrQm94Q29sdW1uU2hvd1NlbGVjdGVkQWxsOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgY2hlY2tCb3hSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjb2x1bW5NZW51OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1vZGU6IFNlbGVjdGFibGVNb2RlIHwgdW5kZWZpbmVkID0gJ211bHRpcGxlJztcbiAgQElucHV0KCkgY2hlY2tib3hPbmx5ID0gdHJ1ZTtcbiAgQElucHV0KCkgZHJhZ0NvbHVtbnMgPSBmYWxzZTtcbiAgQElucHV0KCkgbmF2aWdhYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgZ3JpZEhlaWdodCE6IGFueTtcbiAgQElucHV0KCkgZ3JpZFJvd1NlbGVjdEJ5VmFsdWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBub1JlY29yZHNDb250ZW50OiBzdHJpbmcgPSAnTm8gcmVjb3JkcyBhcmUgYXZhaWxhYmxlIHlldC4nO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRSb3dEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgQElucHV0KCkgc2hvd1Rvb2xiYXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZXh0cmFjdERhdGFJdGVtczogYW55O1xuICBzZWxlY3RhYmxlU2V0dGluZ3M6IFNlbGVjdGFibGVTZXR0aW5ncyA9IHt9O1xuICBASW5wdXQoKSBrZWJhYkxpc3Q6IGFueSA9IFtdO1xuICBASW5wdXQoKSBzaG93S2ViYWI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHJvd0RldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuICBAT3V0cHV0KCkga2ViYWJJdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgaWNvbjogU1ZHSWNvbiA9IG1vcmVWZXJ0aWNhbEljb247XG4gIEBJbnB1dCgpIGtlYmFiQ29sdW1uV2lkdGg6IG51bWJlciA9IDkwO1xuICBkYXRhOiBhbnkgPSBbXTtcbiAgQElucHV0KCkgc2VsZWN0Q29sdW1uID0gJyc7XG4gIEBPdXRwdXQoKSByb3dEYXRhT2ZDbGlja2VkQ2VsbCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBfcHJlU2VsZWN0ZWQ6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIHNldCBwcmVTZWxlY3RlZCh2YWx1ZTogYW55W10pIHtcbiAgICB0aGlzLl9wcmVTZWxlY3RlZCA9IHZhbHVlO1xuICAgIHRoaXMuaW5pdEdyaWQoKTtcbiAgfVxuICBfZ3JpZFZpZXc6IEdyaWREYXRhUmVzdWx0ID0geyBkYXRhOiBbXSwgdG90YWw6IDAgfTtcbiAgQElucHV0KCkgc2V0IGdyaWRWaWV3KHZhbHVlOiBHcmlkRGF0YVJlc3VsdCkge1xuICAgIHRoaXMuX2dyaWRWaWV3ID0gdmFsdWU7XG4gIH1cbiAgcHJlU2VsZWN0ZWRSZWNvcmRzOiBhbnlbXSA9IFtdO1xuICBAT3V0cHV0KCkgb25QYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGlnbm9yZUNvbHVtbkNlbGxDbGljazogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgYWxsb3dDb2x1bW5DbGljazogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzb3J0OiBTb3J0RGVzY3JpcHRvcltdID0gW1xuICAgIHtcbiAgICAgIGZpZWxkOiAnJyxcbiAgICAgIGRpcjogdW5kZWZpbmVkLFxuICAgIH0sXG4gIF07XG4gIEBJbnB1dCgpIGhhc0FwaVNvcnRpbmcgPSBmYWxzZTtcbiAgQE91dHB1dCgpIHNvcnREaXJlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcHVibGljIGFycm93RG93bkljb246IFNWR0ljb24gPSBjaGV2cm9uRG93bkljb247XG4gIHB1YmxpYyBhcnJvd1VwSWNvbjogU1ZHSWNvbiA9IGNoZXZyb25VcEljb247XG4gIEBJbnB1dCgpIGV4cGFuZFJvd0luZGV4OiBudW1iZXJbXSA9IFtdO1xuICBASW5wdXQoKSBjdXN0b21FeHBhbmRSb3dDb2x1bW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZGVsZXRlQ29sdW1uV2lkdGg6IG51bWJlciA9IDQyO1xuICBleHBhbmRSb3dDb2x1bW5XaWR0aDogbnVtYmVyID0gNTY7XG4gIEBPdXRwdXQoKSBkZWxldGVkUm93RGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBzaXplczogYW55W10gPSBbXTtcbiAgX3BhZ2VDb3VudDogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgc2V0IHBhZ2VDb3VudCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fcGFnZUNvdW50ID0gdmFsdWUgPiAxMCA/IDEwIDogdmFsdWU7XG4gIH1cbiAgQElucHV0KCkgc2hvd0RlbGV0ZUNvbHVtbiA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWRlS2ViYWJSb3dJbmRleDogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBsb2FkZXJUeXBlOiBMb2FkZXJUeXBlID0gTG9hZGVyVHlwZS5wdWxzaW5nO1xuICBASW5wdXQoKSBsb2FkZXJTaXplOiBMb2FkZXJTaXplID0gTG9hZGVyU2l6ZS5tZWRpdW07XG4gIEBJbnB1dCgpIGxvYWRlclRoZW1lOiBMb2FkZXJUaGVtZUNvbG9yID0gTG9hZGVyVGhlbWVDb2xvci5wcmltYXJ5O1xuICBpbml0aWFsR3JpZEhlaWdodDogYW55O1xuICBncmlkQm90dG9tU3BhY2UgPSAyNDtcbiAgcmVzaXplSGVpZ2h0OiBhbnkgPSAwO1xuICBzZWxlY3RBbGxTdGF0ZTogU2VsZWN0QWxsQ2hlY2tib3hTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICBzZWxlY3RlZEl0ZW1Db3VudDogbnVtYmVyID0gMDtcbiAgc2VsZWN0ZWRSb3dzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBkaXNhYmxlUHJlU2VsZWN0ZWRSb3dzID0gZmFsc2U7XG4gIHB1YmxpYyBmb3JtR3JvdXAhOiBGb3JtR3JvdXAgfCBhbnk7XG4gIEBPdXRwdXQoKSB1cGRhdGVkRGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBhbGxvd0VkaXRpbmdDZWxsID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNvbHVtbkNvbnRlbnROb1dyYXAgPSBmYWxzZTtcbiAgQElucHV0KCkgaW5maW5pdGVTY3JvbGxMb2FkZXIgPSBmYWxzZTtcbiAgQE91dHB1dCgpIG9uc2Nyb2xsQm90dG9tID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGlzSW5maW5pdGVTY3JvbGxHcmlkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGdyaWRMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIHNlbGVjdEFsbE1zZ1BhcmVudEVsZW1lbnQ6IGFueTtcbiAgQElucHV0KCkgbWluUmVzaXphYmxlV2lkdGggPSA1MDtcbiAgQElucHV0KCkgc2hvd1JlZnJlc2ggPSBmYWxzZTtcbiAgQElucHV0KCkgaXNLZWJhYkNvbHVtblN0aWNreSA9IHRydWU7XG4gIEBJbnB1dCgpIGlzQ2hlY2tCb3hDb2x1bW5TdGlja3kgPSBmYWxzZTtcbiAgQElucHV0KCkgaXNEZWxldGVDb2x1bW5TdGlja3kgPSBmYWxzZTtcbiAgQE91dHB1dCgpIGVtaXRSZWZyZXNoRXZ0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSBpc1NlbGVjdEFsbENoZWNrYm94UmVxdWlyZWQgPSB0cnVlO1xuXG4gIGtlYmFiQUlJY29uID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVdBQUFBRmdDQVlBQUFDRllhTk1BQUFRQUVsRVFWUjRBZXo5Q2JCbDE1VWRCcTY5ejcxdi9FUCsvL1BuUEJHY1FJQVRpS25BVXNrcFd5cEZ1UzFGdXlPUzBSMGV3bXE3U2N0U01VeEdsVXBTZEFRL0l1eHlWYkdDVktCY1VyUHNkblhJUFVRUUVlNE91ZTBLeVdVTFlYVVJKRUVRTElJQXllS1VpU0VCWkNJemtjTWYzcnYzN04xcjMvZmVSd0tjUURLUnlKOTViOTcxOWhuMjJXZWZmYzlaNzd6ekhqNFU3ZFZHb0kxQUc0RTJBbTlKQkZvQ2ZrdkMzbmJhUnFDTlFCc0JvQ1hnZGhhMEVXZ2pjR3RHNEFZWWRVdkFOOEJEYUYxb0k5Qkc0TmFNUUV2QXQrWnpiMGZkUnFDTndBMFFnWmFBYjRDSDBMclFSdURXaTBBNzRvaEFTOEFSaFJadEJOb0l0QkY0Q3lMUUV2QmJFUFMyeXpZQ2JRVGFDRVFFV2dLT0tMUm9JM0JyUmFBZDdRMFNnWmFBYjVBSDBiclJScUNOd0swWGdaYUFiNzFuM282NGpVQWJnUnNrQWkwQjN5QVBvblhqMW9sQU85STJBck1JdEFROGkwUXIyd2kwRVdnamNKMGowQkx3ZFE1NDIxMGJnVFlDYlFSbUVXZ0plQmFKVnQ0YUVXaEgyVWJnQm9wQVM4QTMwTU5vWFdrajBFYmcxb3BBUzhDMzF2TnVSOXRHb0kzQURSU0Jsb0J2b0lkeDg3dlNqckNOUUJ1QnF5UFFFdkRWMFdqVGJRVGFDTFFSdUk0UmFBbjRPZ2E3N2FxTlFCdUJOZ0pYUjZBbDRLdWpjWE9uMjlHMUVXZ2pjSU5Gb0NYZ0creUJ0TzYwRVdnamNPdEVvQ1hnVytkWnR5TnRJOUJHNEFhTFFFdkExK21CdE4yMEVXZ2owRWJnOVJGb0NmajFFV256YlFUYUNMUVJ1RTRSYUFuNE9nVzY3YWFOUUJ1Qk5nS3ZqOEN0UWNDdkgzV2JieVBRUnFDTndBMFFnWmFBYjRDSDBMclFScUNOd0swWmdaYUFiODNuM282NmpVQWJnUnNnQXRlQmdHK0FVYll1dEJGb0k5Qkc0QWFNUUV2QU4rQkRhVjFxSTlCRzROYUlRRXZBdDhaemJrZlpScUNOd0ZzUWdaL1daVXZBUHkxQ2JYMGJnVFlDYlFUZXBBaTBCUHdtQmJZMTIwYWdqVUFiZ1o4V2daYUFmMXFFMnZvMkFtMEVkbVlFZG9EWExRSHZnSWZVdXRoR29JM0F6Um1CbG9Cdnp1ZmFqcXFOUUJ1QkhSQ0Jsb0Izd0VOcVhXd2pzUE1pMEhyOFJpTFFFdkFiaVZLcjAwYWdqVUFiZ1RjaEFpMEJ2d2xCYlUyMkVXZ2owRWJnalVTZ0plQTNFcVZXcDQzQXpvcEE2KzBPaVVCTHdEdmtRYlZ1dGhGb0kzRHpSYUFsNEp2dm1iWWphaVBRUm1DSFJLQWw0QjN5b0ZvM2QwNEVXay9iQ0x6UkNMUUUvRVlqMWVxMUVXZ2owRWJnR2tlZ0plQnJITkRXWEJ1Qk5nSnRCTjVvQkZvQ2ZxT1JhdlYyUmdSYUwzOWNCR1J0YlUySjRuT2YrMXk1OXZtMXpxOC85T3ZkaDRpMVAxN3JSZnFqbi90b2VlTHpKNUs3eTQ4ejBwWmYyd2kwQkh4dDQ5bGFheU53UTBhQXhDdm5scytWdzl1dWRGL292REFjblJuTnIzUlg1cytYM2NWeFBWNmNtNXRiV01MUzRCQU9kVDd5OEVkYVhyaE9UN0VOOUhVS2ROdE5HNEczT0FKNlpGZTNPSCtwN01Fd0dQWjBEdVhXQXNwaVFiWGVsYXA2SVNFTk9oYzZuYVVMUy9vVyszckxkTjhHK3BaNTFOZGpvRzBmTjJvRTl1L2ZMK3Q1cnV6MnU5MjZxb2MxZkQ1N0FJdnU1YUtrdEtDb0JscHFwenZxdHJ4d25SNWtHK2pyRk9pMm16WUNiMlVFZU95UXltN1pUWjE2dmpkZkxIVUdhYVZUOWxkNnZjNXlyeXZMUmRuWjFaOGZEcnVkYnZkdCs5Nm1iNld2dDFMZmJhQnZwYWZkanZXV2pjRHd3REJwcHhwMkJyMmxzcGYya1l3UGR1YUsvY1RlL2x4dmRUaGZMcFZkblI4TVUvY1NMcVZiTmxEWGVlQXRBVi9uZ0wrSjNiV20yd2o4MkFqa2k3a29ldVVnbGJKVXBMUS9GZWxnVWVqK1ZLYTlxYU9yUmIvRFhUSHBPSlc5NWJubGxoZCtiQ1N2YlVVYjZHc2J6OVphRzRFYk1nS2RoVTVLWGd5UzZMS1dzZytGSGl4SzNWK2tZbTlSRkt1Rllqa1ZPdGNaYXJldzlYWUhmSjJlWWt2QTF5blFiVGR0Qk43S0NCUzJsWkJ5MzB2TVEzeEZrNjlDYk5VU0VWSnNCYWdYTXF4blBkZTMwdGRicWU4MjBOZm9hYmRtMmdqY3lCR3dqcXVsaXE5NTRNa1dUR3lwbHJ4UzIzaTF0cTI5WTl0YTNjcmp4WG84Nm0vbWNicVJ4M0l6K2RZUzhNMzBOTnV4dEJINE1SSHdHdXFPam9nTlhJd0VuSmNNZVNWN1hxMnMzbHZsYXJVbUFZK3M2aGZlRXZDUENlTTFMMjRKK0pxSHREWFlSdURHaTRDWFBGWlFkRnljQk93TGxFdm1lY1ZScjJZU2NNNzFhdTE1MFh6VUgxdmQ3b0N2MHlPOE9RajRPZ1dyN2FhTndFNkpBSGU3Y256dGVISGk4eWM2LzhFZi93ZTk4eHNYQnlQZkhJeHRQS3k4bXF0c1BGK2htaC9uYXFIeThjS1k2WnAxNDF3UExtOXM5ZGZZYnZhM0llQ1FuVEx1bmVablM4QTc3WW0xL3JZUmVBTVIrQ3NQSGsrSGJ6dmNYYmlFdWM2NFhscXZMeTl0VnB1TEc3WTF0MlZiL1MwZmRiZnlWbmVFVWJubDQzSk1qSHpVWS9sd0pGdnpaNHYrZkhlNDNyOXpmVmllZVBoRXl4TnZJT1kvajBvYjJKOG5hbTJiTmdJM2VBUlc3MWpWem5pcjI5VzVvZlZsbDQzejBwYU5Ga1o1YTI0ekNOaEdQUkp1SnpER3VDREtFYXJlR05XZ3p0VjhPZEo1MVg3L1hGbTFmeHZpVFh6VzE0Q0EzMFR2V3ROdEJOb0kvRndSR0s0UE5lVnVkMXpVYzhsbFY1WEh5MVU5WGlRSno0MXN4T01JN29COTNCMXg1enUyY1VuWnFYemNxL05vT0hKZnFEUG1SZXErRFZKNVlPbENld1R4Y3oyRm45Nm9KZUNmSHFOV280M0Fqb3RBVGpucFF0R1ZqczNWYXN0MXN1V3gxZ3NWNmtFbFZZYzczWUl5amFWS1k2MlU2WEtNZWxnVnZzdEtXOFZBVm5OWEY5VTcvWXM0MUg0cDl5Yk5nSmFBMzZUQXRtYmJDTHlWRVNnWFM5MHFSNzF4d2tJZXlITGQ4ZVdxOVBtcXFIdmpNaXNsSnNnVFdlYWlMbTB1Rjc3YnVqaWNPM3E0N29Ba2pQbDY3a3o1Vm83bFJ1NzdGL1d0SmVCZk5JSnQrellDTjJBRXpDd2hTVThLbVlmYWlwVytuRk9lcnd2cjFkd2RYMDIrNDZJbUNlY2lCd0Z6OSt1RkhrYUp3MTdLYnRxWTI5QmVjUU1POGFad1NXK0tVYlNEYUNQUVJ1QTFFVEMzVkpHQWM4Zm1yUlNTcjYvVXliZ0R0aDdKTjFYRlpPYzdKVjlVS1JkUjc0cFZLQTZieW1GUlhVVXBjNldVTFFHL0pyclhMdE1TOExXTFpXdXBqY0JiR3dHSHJLMDEvOTgzN1N4MENpMTA0S0tMVnVodVQ3cFNLeFpxSVFHTDZWaHFqRFdqVnBzaFdmSmVwbzRwVmx4a0phc3ZaTFYra1BsYk83QWYwL3ROVU53UzhFM3dFTnNodEJHSS8xaWkrYjN1dndaOTZnNFVHeGU5aDVTR2tzcGRyckpxUWdDTGxWbC9aUHppelRJcU0xUnVxTm1ZcEN1MW84eEFseGhtMkRDYjl5cElVV3ZkL2dyaVRacGlMUUcvU1lGdHpiWVJ1SjRSV0h0d1RlNWN2VlBPUFhrdUxWMDRYUlNpWFpkaUxpZFpjazE3ak1jSk5RbTRkdStQTGFleDFTVGYzSkJ2VFFJbStYSS9EQjVNY0JjTURFakNneXpTelRtWG8xcGJubmlUSG1ZYjJEY3BzSzNaTmdMWE93SlBuWVdPdXFOMDRRSjNzaW9rWUptRDZCS1BIMVo1cExCS1VsMnNZUDBxV3hweEJ6d21ZZ2VjU2NDc0U2STBrSFRkaHlUcllYYnJ1V2pSU2ZsSDdJQ3Y5K2h1enY1YUFyNDVuMnM3cWxzc0FrL2RjWWZFenZkS1R0M2hmTkZIVHNOY3k1eVpETW16Y3lUWEFZK0l1KzdDWXdaUmM0RkJFVEkzYVJIS2xKM2s3ZWlhb1pkZCtqbjdjS05LYy8vZXAzOWpHSDlUSXY0K1JKd3ozMkxoZmRPRzJ4THdteGJhMW5BYmdlc1lnYWNmVGtHK1VoYkRXc3JGYXNzWGM0VkJQWFllSTBCekRWaFdnUmRRNlRRUUwxbFl3SE9DMVNLZVJTeHJrSFBLaGk3YnpPVk5YWmJMeGQ3MXRMNTNmV093aTd2cndlbjlwOU4xSE5sTjNWVkx3RGYxNDIwSGQ1Tkc0SWVHTlR3NlZDODdIYWwwYUdLTHNFUUM5aUYzc0oxcWJJbGtLbTVjN2cwQmwwalNoWUFFekx3YkNiaUJDb2szV1paQXgycWRxN01zNWJIdkxRdnNNYXQzZ2J2cmNXZWNmc2lCdHVEbmlnQ2Z5TS9Wcm0zVVJxQ053QTBVZ2M2NG80VjVsMXZab1lvdW92WkZIOHV3cnJnRHJsM3JtcHZkSUdBa0tEcUlYYkNRZ0gxR3dMVTJ1MS9QcXRtazJRRmJ4cHlQZmRteTdPVjU4TjdDMDY0ODhrRitlWGU2Z1lhK28xM1JIZTE5NjN3YmdUWUNUUVJlTEhhbHNSUzkzT25NbStxS28xZ3gwd1hQcVpkalIwdnlkUUpXQUhIMHNBMGVRYkJzU3NSaVNHS3U2cDRLWWdDVWk2SnBGV1d4Nm1WYWxJNzJqVi8wTloyMkw3OXdCUFFYdHRBYWFDTndpMFhnUmh6dXNvNVRLdE5BaXM0dWxNVmVTWVNVdTBpc0EzaVJuRWNNYmdXTUNEa0Rnb2pSbVJ4SHhJNFlCVndhSk1vK2VYZ0JSV2UzOXZzcjB1c3M2Rnl2NXl2RGRnZDhqU1pCUzhEWEtKQ3RtVFlDYjJVRVRQdkp0ZWg3UjNlaEtQWncxN29Ia25ZSldJYVV1SnNsK1NZRUVWdE9USk5rZzN3SklVQVNkaEl3Q0E4U1JwR2dSVStVcEZ1VUsxSVdLOUxwTGtqUjZibFU2YTBjNjgzVXQ5NU1nMm5IMGtiZ1ZvMkFTemQ1a29HUWRLRzYxNlRZQ3k5Mm1hY0JkOEZwdHZNTkdmQmNrSXdESlVQV0lTaWx4SlI4S1VuYUtIdlF0SUJVa29ETEZYTHlBc3JVQjdxSkRkcjdHa1NnSmVCckVNVFd4SFdJZ0VQV2ZFM1gvdVZhOGJtdmZLNWMrL3hhNTlmL3gxL3ZQdlEvUHRSZCsrTzEza05NZis1ekh5MC8vL2tUM08yNVhBZVAzdW91Qkd0cmVvTGpQYjYyVmx5cXE2NXBNYWhFRm12UkZaNERMNXVrZVJKcWp5VE1tSERYNjBUc2ZrbStOajJTY081K1BiNklvd3hpcGk2eUtXcFBtbDI2TlhTdWhpeFY0c3UwUFY4TEJoc2luZWd6K2c0ZkFOd0s4Y2FiY2JVRS9HWkV0YlY1elNPd2hqVTU5eWZueXVINFN2ZUZaMThZam9yUi9FcGVtVCsvZFg2eFhCNHZYcmt5dDNCaGFXbndIQTUxSG43NEl6Zi92RjViazd2M24wNW5uNzZ6UElNenZaRlhnODJNdWJIb2ZLV3lXSWt1MUVpRGpOVEpYbWptc1lLUmFCdk1TTGlSQ1JhRXpIVE9pcW9TR1pObHg1WHJWbzN1S1B0Z3kyeGh5MzF4eS9MQ1ZyYTVVVjBOcXY0ei9lZWVPOVFKSDBqQ0xRSGo1N3R1L29uNjg4V2xiWFdqUmVBUjZKSFVMYzZ2eDhkaURJYXVjeGh0TFhDTHRtQWozWlhMdEpCVEdvelI2Vnk0c0hUVHorc1RkendsOHk4Y1NKczQxK21qN20yNERzWmljMk5nWVF6bExqZ3QxS29OQVJzS0RlTE5WalJudjJZSnpUbHdFQy9MNGd1NUtLc3pDYmhXakN2SXFQWTB6dDRKQWg2N0w0emNGMGVPK1pIWjNIcmx3NDMrc0RjZXJuYzY2OE1pZkxuUnBzdE84ZWVtbjZnNzVVSHNERC9mT2kvM3orK1g5WTI1c3B1NjNicXE0L2V0ODZybGZJVzhLUEJGejdMQWo5MERnM1pHaDdzMy9iem16bGU0OHkxcWpEcFZ2OXVEZVQ5RGhqV0V4d1J4RENFTEdjVWdDM2ZBRWdSY1lrTENRYjRGTW5lOE5nTUpPZktCS2d0SXdCalYwSEh0bmJINUlBaTRjaXhXN2lSM0RNMXRVS1RjczFHM285WEZJbng1NjJiR3p1NzVwcCtvTy92eHRON1BJdkRDa3kra1VzZmRoSTM1WHRlWGRPQXJVdmhLNnVibDFKWGxWT1pkcWpZY3A5eXRyeFE3ZjE2dnJlbmRILzFvZVh4dHJmZXJ2L0VidzcvNXU3ODdmL3l6YTd2K2pmL3l0MWQrOVo5OGVnOE85dmN0SDloem9MdDY0TkJ3YnVGSWx1N2hzYVc5dGV0UzVUSWt1clZMbVQwbDh5SiszOXNRY0xQYjlRSnVKYnlSQmN3S09CRzc0QWFlWUo0a0l5V2lKQmQzczlBbXo0SXpkRzhsZXRpSythTzl3ZkFRNW5jZndFSHMrN1dIZm52MXIzOW1iZm12L3M1dkxkTG51UWMrODRuK3J6MzA2OTI3ZVM1LzRzU0p4R01LaFhzY1ZRVFFYcE1JN1B5Sk9obEgrM3FUUjJCNDRFcXFoamFVQVpaMGFQdFMzdzRXZzNvLyt0akx2ZCtxREh4SitqNmZkblc2bDFZWGQveTM5SGVmUHAzMkhEalFUK1B4NG5pdVdOM0ttd2NMMDdjQmVCZFF2emQ1L21DQjhrT3BXOTZqdmY1OUtEb2ZORW0zVllaVm9sdGxGM0EzU0FBQUVBQkpSRUZVYXBrZzh3czFhMENTRGNKRlNSTVRPTDk0YTBEeURRSUc4NElPUkFpZEFFcGRncmE3cnNWdWc5NW1xZnNCS2RPOXJ1WGRLSHNmSktPK3Z5N3FPNm9DNzZqNy9jTTZXTi9iM3hnc3g3bjgwdmQ1TG4rSVo4VWN6L0VISDB4cmEydFVSNEIrdExlMklkZ3hFYmlsSGMyYWlqTHBRUHF5aEdUN1VjcEJUNzVmUzl1TEFxdkVraGMyNTFMMWx2dlk2Zk5hNWc4Y0lQZU8rK2o0WXNybEtqZVBCMFgwR0NmQnU4emxUdmYwQWRIeUx0RjBqNlIwSHlSOU1KdThQYnZ1SG1kMFNjS29wd1NjdmRuUmNnTmFJRWkyQVVpc0pGeE15ZGNwd1RLUkVrTHlWU0lrU0w2dUpHOHR1ZzRTc0JTMzBZOFBRdlZldU40dHFoOFU2UHRkL0E0a2VidlU5UkdZN3EzcTBVcVo2NFZSR2cyR25VNG54ck1LNkNNRUhVRjdUU0tnRTlHK3RoRzRzU1BRNGVGQzBhMEhDbCtXd3ZkcDhvTWszZjFJSk9EU1ZpWDVzblpscmxkWWQ3M2Eyc2s3WUlrbjBibHlKZVdPOVpHTFJVdSs2dkNENW5pYkdyZ0RsdmVLNElNdStKQ28zRTFDdkJlaXpPdHROWGZBdFFrSldFQ0oyaFZtaVp4SE1HQWtVWnJuN2piSWwvRFlGWk44UTRKcGtJUlZ1aER0QWxvMmFBaFlpcTZwQm9mZTVwQVBzT0plS0Q1RVkzY3gvMzVBN2hEa2QyakNZVGZmeHdld1hIdGFLTFVjMVAyNnhKa3p4VmsydW56NnRPREJCd1h0MVVSQW05ZjJwWTNBRFI2QnJicE9JMVQ5blBLOGFiMWlxVnExVks5YVNUQ2RpMnE1eG1oaFhPU2VkK1JHbk5leXhuUGQ0MnRyeGQyZisxeHp0bnQ4N1EvbmpuLzJzN3VPLy83djc3Ny9ILzJqdmIveTJjL3RQLzdRZjNYd2wvL1I1dzV2SFh6YmtUeFlQanJ1engydE80T2pWZW9jcXlVZHJhVTRSaUk4bHBHT092U0llenJzU0lkTWRKOTVXaUlHMlRWbFUrVFkrWko4V1lZWnFOK1FzWkZzUFJEa1M1M1lBVWNlSkdXUXFCRjFiTzhlQkI2MitKWm5PakNlTWJ1a2ZjSSsyZTloNW85a3c3RWFjcXoyNGxoRi82cHljTXo2ODBlbDN6OVd6ZTg2aG9XRHg5SnR0eC9Sd2ZMQitiZS9kKyt2TEMrdi9LWC80aDh2L2RwRER5MUVEQjc0ekdkNFh2d1F6NHMvVjU3NC9PY1RIYnhsQ0ZyUlhtOG9BcTNTV3h1Qks1MU5yWFdqUXd3cWJDNVV1cmxVNitaS0pWdXJ0V3p1SlZhemJDMW1qUHJqK2dJM1lHK3R2Ni92bmVRcm53ZUs4MWV1ZEhIaHdtQ3pMQmZIZzd4M1hPRllWUmUzRjNYQlhTUSs1UHhvWDVhOUIxSTVlTUE3OC9ma1R2OERWZG03WTVTNjc2eTBSNElyRDFRb2QyY3BGMnNwaGpXS2J2YkVMOW9TREJONFE1eUpQRWF3YkR0dml0Z05XeU1qVFRTNnhVVFhxRCtyeXdLckZYVWxCSkRIUkMyTkhvY0IxMUs1bSs1bUZITmpLWGFOcEZnZFMzbW9TcjNiNm03djlyclhlMzlWRGo4a2crRzkwdWw4R04zMGdIZjFidTBVNzB2ajlPNU9zcmR0YmRTSGdkRys3cVZxNWNvVkxDd3hMczg5OTF6bnhNTVA2K3ZqZDdQbWI1bUIzcXdQOEpZWlY2RmF5MWFua3ExQnBWc0xsRXZNcjlRWXJkWmFrWUFwMDJpeFN1UCt1RXNtdWNFQzh3aWd4WlVyNVhCdXJqdkllVkJLYjlIcXZNOGR4NkJ5Tzh3L0FINmtGOGQ5b3ZKaFQvb0FVcnJIeXVJRHRSWjMxcWw0SitYUlNqdjdTYnk3aVVYellrZ0M3SmdVUEprb2FLSWdRUll3S2QxQWVHSVpRUksyV2RwSXVvRThrZkczSVNZb0VOSXNVUlpPNmJrVzVBcW94NDZhTWpkdDRyMk5SeE5TcXZGWUlzZWJnT3V1Q3JxbmxuUW84NHRBUytYdGxqcnZROW01aTZPK2ovaXdhWG9BbXU1MitQdll3YnZON1RaM0hKYU83QlV0VnRKNGZYR1V1NFBoZU56NS9vVUx0d3d2M1RJRFJYdnQ2QWpJZUVzTmRTZGpQS2hsdkpDbDRnNTR2SkoxekozdmVHL1dhalZydlZCanExL1g2OEVTTjlSNEwrL2ZMK1h1M1VWUmxsMVg3V2VyZDZuWVBqcDV6RjF1ZDVIM3c3a0RodHdud0FNUVBPQ1M3b0drRDdpbU83S21kNUxjanBxa0E1bVdzaFNMM1AwT0RhbExxVGxJTmlDRk56dGVwcDBrM0tSSnZvMjBDZWxhUTZTUlRpRFJ3cWIxRThuMm9VY2RFcTVQQ0pna1RBSzJXc2lkaVc2U3JGRW1ROEVkc002UmZKZHFFbkRtc1lScGNadEp1dDFUOFQ0UzdvZWdlcDhMUGl3aUQ4Q0Y1OVh5UHFiZjdZYTNBWElJWnZ1eTJRcmJMcVJxYXppeVFXZlBhSFRMOE5MT0dDamE2NWFMZ0VOT2ZQNUVPdkg1T3pyL3dSOGY3MjNnbFg1bG8wR04wVERMYUs2VzhYeEdOVjlMeFRQaGFwNkVQSjk5UEpjMVUyL2NZOXZPMnI4OFhsQUdZNURUcm5rRW16UGRFeWRPcE9NODF6Mnh0dFk1OFpsUDlDbm4vdXJ2L003aVgvL00ydkt2Zm5wdHo2OTg5ck04MTMzb1VIZDA4VWluMHpreTdoVkh4MFZ4ck83cXNib29qbkpuZURTckhITk5KRmM5WmdLZXArSllkb244d1N5Nm56cXJyc1V5NWE0TW5jOUlQT2ROUGNySjczeU5WTTZkYXhBb2Q4VndCRUVHRXRPRUs1eVkxQ3M1VHdpRjJ3elVZWHR2b0srcE01WTF5RkdlRURaOFF0akNkTUgrT2k2cFowaEQwN1NRTlMyUmZIZWI2RjVpWDRZZU5PaGhneHl4SkVleXlGSGltQmZDcyt6aVdFN3BHSThvam1yUlBXcXBkNlFRUDdLNVhoLyt0ejd6VHc3KzlmLzhjL3YvNW4vK2ovYWUrTzJIVms5ODVqUEwvODdhUXd2LzNtOThldmpydi81UTk2TWYvV2h6WHJ5MnRoWWM5bVk4WDF5UEs1eS9IdjIwZmJRUitKa2ljT0xoRTdyVS8zNTNXTzRaakxwcGNXTlU3eHJiNXNLWUpFdlM3V2NaZDdPT08xbXFUbzF4YVZLVnRZOTdWYjB4ck5kSDh3dTROUGZNOTZ2K2NQMXNHYlorcHM3ZmdESVh2cHcrZlRvTjc3eXpYTVdaSG5CeGJuTmpzRHdDOW5YRzYwZDhTOStadGJ5endPaERMdFVEaXZUTDFzRURWcFQzNTI1NWI5M3BmRENYeGUxMVdRUVI3NnNLWGE1VUY4YWErcFZJaDBpMWFqSkpZa295VlpLZkZMQUFtT1o1aGJtaURwQklhOElhWWxTZVloUWNBZUZKNEFrVHdsUzRNVXVZQ3l4a2dPa29qeklQRzJSSE43WWhZRW1FWks0b29kSUJtSTY2MkVGemR3d1AyL1RIaFVjUzJrSDRHZjVsVVd4RGs5Y2lhTWJqTXF4RWx6ak9mWlVXUitxVTNwN0x6dTFXRk8relR2cWdkanNmMHFLNHB5aDY5OVU1MzFlazBZZUtUdWQ5b3ZxZWNxTjRoNmtlVG5QRjZwVzVLd3YxcnJmM2x2NzA2ZTVUUUJIUGdzN3R5RnQzcE5ldDA3ZEFCSjVLNDNxK1k1VU9TeDB0NXZGb3FiWjZnVVE3elBGckNCbjNhbFJkazNGSkVpNHJiOGk0bTYwYWpHMXJIbFUxWDVYRHZscFYzcmw2OXBydmtKNTY2aWtaSHppUUtwenI5RWVMM1ZRTWhzbDAyUXJmUjg0OEF0RjN1T21kTG5xWE9YN0pWSDVab0ErNDZ2Mm02VjdYNG9Qa3Q5dHowbU81U0h0ektuaWtvdHpSZzE4eVNxZUdGQm1xTEJkUGhaaVc3cEpnRGJUNWhVUDJoR3hNbXpUU0xEV2tTTkxsZUZNQVRySjI2cGtyR2xEZkdreEltRDZ5alNKa2xEY3lpMUFLN1VDbTVDc2syVWc3KzhnNUlYU05kbU8zRFMycFNvUnMzaWdTQ1RpZ0NQS3RSVW5DbWtpK0EySTVxKzZyVmJqalRXOTMxWGQ3b1VHeVBDK1d1dzF5THp1K0g4QzlKTjY3UEJ1UFp2UU9FWGxIa2Z4UXBiSnFxVmpvbVBiSEEzU1dUcU40Nm80N09GYTIySUgzR3lEZ0hUaXExdVVkSDRIaCtoNGRiYVl1YkR5c3Mrd2krZkxqZDU3UFhzMU5DTGppK2VPWTU1OVZKd2pZcENyTnExNzJldUNWa2NoOHJwUHF2c3pQbFUrZFhiM204L3pzblhmS09zNFVhVFJYYnVwV2I3UWxjNjYyQk0vN3pIQUU4SGVvNEU0K2lBK0o0cGRJSUI5Mm51dEM1WDZ5Mm4yVUh6U1YyMDMxYUU1cGIxWmRJbG54REZzR2xKTWRzSkNBQ1d0MndBVjNtS1ViQ1RpVFZCdTROc1E3SVdHbW1UY1VBSGVsb0F4eWRDL2dMSGNTWnlOZFNKN0VUQnJUcHZBcHJOR05mT0lRYUFzbGdud1YzQUUzdGhMYkszSlcyRlVFM0pBdy9UVDJiZUVqQjAzaVJRMUZ5Q3lhc3VyQXVBT3VSZlpUSGpHUklHQ2VmK3Y3WERWK3g4eFl5VDBBN29mTGZaUWZndUQ5cXY0ZVVYMjd3dzZyeUtwTFhxaTZvMzZ2R0hicVhmMjA5S2QvcXRUZGtmZU9kWHhIUnJ0MStnMUhvTE43WG9zNTZVcTNuTzhPaXlWSnNod0xMNk1lbU1hWGNYVmhVcWNzVmNxb2xDaHJxWWN1dGtzN3N0cWY3NjUyNWpxTFpiL3NId0laNnczMy9NWVVqMU50dERFbm0vTlFGSjBFSG9XZ2xnR2c4eEJaRXZodWcrOEJzTS9kRDhMOWtFQU9JaUJ5d0lYbG9ydGRaUmZUY3lib20wb25RM2l1QzQ1SmxMdEJkVW5rb2htVVpnTE11NUlBSndnQ05sTjRrQ3hsUTR4QmpnU29OOE9FZ0xua3J5cDdmWjFIZTJLaW14b1NGcEl3UURKdUNKaUVIdjNRZGtQdUxQZEErTWt3aDc5R2FReExBeEZ3SE1ob3hzT2pJdSs3eEp1VkxMcUF6eFM3WFdRUFk3WlBCQWZnNE9QQ1lSR0plTzFudlBZd2ZveWw4YzBOQzU3ekhNOWwrTWxHdStpT1NodHNKdHg5TjNicXBUdlY4ZGJ2bXpzQ3RVa3F5NkxmN1hjV3ltRm5KWFhTaWlkZmdGclBFTVJibzVZS0dSVnFqSkdsTGx6ekhEZGhxNTFCY2JpM3EzZTRQOTliSGM3SmZIbGdWRnpyYUQxQ2c5M0J3SEVaU05GMVN1NmlJb0FxaEN3VmpCUWY1VWtmaHV6bXRjTXltNW1RMWtJUjRreE40TzRJc0dBaW1hZHVaS211VEJKR2V5UlBNNUlhNFVHVURhYUV6TFFGWW5kSzJkUlRIMGhOZTdrcWpkZW5JOStBdXBRK0pWbVFhQ2VJRUJJa1lRVGhVanJyQWhheTBWZVloWS9TOUFlbkRJQ1NKUndZRTd5WkZuRGNCTWZNZ2tpYlVGVlZSVFdscENxSk1lTHRUcU1aMmJKUldhbmxwcWtlbzdDNlNPa2k5TUlMTDlBR2piNEo5NXR0VXQvc0RscjdiUVIrbmdqWWdxWnl6bnZTd1lLV3Nsc0wyUzJLQlM3VFhwYk1UVkNOVE9xdEd3S3V3RFBnMG1EejRCbGhVUlpIT3AxMHBCeklLanJsZktYZDh1Zng0WTIwS2JwZDcvUmhxajFQQllrUUtkWVVXUXlGdUF1cEpXNlNyOWNrSUNPakVyUXN4UFFtcjdBcTFMeVJmS1drSm9LbWhEd2RQRVJpZzdJOHdISVNyQkVrbzZiTVNJREdmTUJKd0EzSWFPNmhIeTRGRW0xUlN1RWl5UkVBNVJRelhhZXRTSVBFMmdDbEkwRFNCWUtFSTV3QnZzOVF4NlBmYVQvUmpzTVdOM2JsVTVqVFlXSTZYcG5LaWVCb25VOFZFQ3FKQ0FNb2txU0JVbFdvd0VmdG5tRjh3dG5WcEdKczY5SnlSYWFHN2p0M2pucllrWmZ1U0s5YnAyLzZDQXp6NVZRVXFWZDJpL25FM1c4cWRHVkN3TGx2a2xNbStlWXArZGJjQVZ2c2dDV1RnSDFWQ3oyY3luUVluYlRLNDR1NU5LekpHdGMrWkwzaDBNdk95SXM2Q0lxRWFTUU1JU09CTEVVQ1lZbUl1WnRaZG84ZE1MSUl1RWRFdzBZVDFuREVQK3FTU0pueUNScHZQVjZweFlFRGlTcEtDTnhJcWtaSks4YnVQQWl6UVpRcmVVb2FlT2lSR0VIaVJyUVBHZVRibENXeVk5aEw3Q1FrUVNLZXRmR3dGN1pSMEhYcU5PVExjZnFFZU1FaE5rY1FvUk5nWDBZNGJWOE4wRWRBNEkzRTVKS0o0R0NZNEhoQlVJSEZTbFdOM1crQWVZYkxHUVd2elMwTFBZbkRaNjFSWkVFUnUrQk5pVUc5RXp2MTBwM3FlT3YzVFJrQnJqRTB2Njh0NW9heFRlT1hOcmJMeEZaZGZMZXJMeEE4Z3NpYXdRMlJUREJOSityMHVKUVhxYzh6dzd5YjYzV2g4dHl2SzBuWE9scXJkOXpoL2ZWMTEzRTNWOE5oRFpHeHEyMnE2QldCWGhTMzg2U09zL1RuQlJMTmMwdy9TNTRKZVpyNUY4aElMOEh5eTJUSzgySjJrUit4cjhEeWxycVBDV043RXFSRHpJRVptQVNKVEFMa0hTSFpzUzhJeVhVQ3ZzK1FETkZBMlFXWE4zVkFPTnU4Qmhha0dEcFRTWHVoQjBxbi9rdzZiVTBRdWd3ajY1emduaDhlaEJ0MnB1QmJDL2hZd0wxcTQ3Tnc4SUx3RXBaRXVDOUhyWTZ4dUk4RXZrRmNBc0R0cTc4azRxZjUvRTVULzNsQW5oZm84eUpnN09RbHVMOU1XK2R6enBkZ1dLZmVLRG5xb29PNjd5ekJkN0JUTDl3ZmxPc0FBQkFBU1VSQlZENmhuZXA2Ni9kTkZvRWdYdmtyRHg1UHAvZWZUdFZvcTVPcmFpNUxKZ0huMVF4YjVTNW8wV0hjQVhzeXJqc0RjOXZTcFhZcnM5ZmRpcFE0cnNmREtvOTZ1ZDRxT2xyTHRZN1ZuVTgvN2QzbDVaeUh3eXF0cjQ5SkR1c3B5M25BbjRmSzl3SDVscWc4NmZDdjBjM0hTQ0pmNWh2Q1kyNyt1R1Y3d3V2OGRUSDdwdVQ2ZTVMek0ycjVSWDZnUDUvY05ncTNYTGdqbVVGemh0VGs5NUNaZVhPUXhLQkJ1M3hmS1FKYW9FZ0ZraVlrS1NDU0lDQkluaUJaK3BRZ3VZZUVaU0RYRHBwcjB0NFFzOUp0RWl6YllBb1B5ZmJPOXJZTmdVMXR1UUVNUFlSeUFtZmFBZm9vWVR5N0MwOXRrem5IZ2x6Q3F4TFlMR0hySmZ3aXgvZHljbitXaHpiZkVlRHI0bmljK0RJZC95SU5mMEZFSG9YSTR4QThLYUxmWml4L1FOSjlUcUV2R2VPc0twZHF5WnZyWTR4SG94RzlvRDg3OEdia2Q2RFhyY3MzWFFTY2EvY1JQS0tyZDZ6cXVETk9vMDNwY29NMXpQRDQrZGtlbXhJdzEzWGYzSklKWDhrQVJuYmpqb2dwVjNjcmFzKzl5dXZCMk1lQjdqalg1ZWE0dXViei9GT2YrcFN2bkQrZmQzVzdkUWNZOTdyZGRYcDhEcWFudmZZZndPVGJEdmtHQ2VNSk4zbk1nUytSZEwrQ09qL3VWZjJFVitNbnZhcSt4ZngzdGE1UEZUbS9RRndvU01DbGUxMllrWUF6bEpJNkNKRFFTSEtBUXBENG1rUlJrSENMVkhvZ01hMGtYNVkyR3FFWkJPb2tXVE1oZVFJNU96R1ZScXBqT2YzanBsUUZMdUpTT0pTZ2RDRkZtb2dadXcxa2lJTmhac0JwMDJHZ2dRa2swdGtnQk9xUW1mNGJINVJiQ2FsTGwzSHAyR0w2Q3VXbEFuNlc1UHNzeC9jZHRmd2szQjZuNWNmbzVKZEU5TS9NOHhmaC9sVTY5ZzNLdnpDM0g2RFE1MnF2WDVMc0Y5VHo1V29MRytQaVluWGh3Z1dqRnp2eTFoM3BkZXYwVFJlQkJ4OWNrM2Z0ZjVjTTE0YzYyRmd2ck5DT2V4NjYyNUxEVjQzSEVBWmZkT2NPR1B3U2pxdmZ1RHJKQmVRTmF2QTF3OHJzdVZ0YlBheXNHdFoxSFdSY1pNMXlyUU1tSWs0U3ppVGg2c0lkZDR5cTBXZzlsUXZuME9tY1JsbCt2K3pWM3lwUWZFTk1uNEJXaitWcTlPVnFsQi9MVnphK2FsYzJudkFyRzErWGphMXZwcTNSOTRyeDZKbFVWeThXMlM2VVp1c2s0VXdFZ1NGMms4SWRNR3F5WDdhZ1AwSkl3SUdFbEFvdllnZE1KQkp4b2d3U2psb2hTVE1zY0NPM2txSXNreStKSU9FbUhlVlpHRVhXYzVmcjNQRWkydEE2UUhxa1pJOXcxbG5vdXBBZmdZazl3WXlFeFJ3Z1NJd0FmV3g4cmJOcmRpZVZaeEl1ZDhDb1NwRk5qaXZHZDdIazhRdS9OWDJXYnpiZktkeS96ckUvem5aZk5xdSt5QThzWHloVUh4WFZ4N09tSnp1YXZxMGI0NU5BNTdtMFVyeTBpY0g1N3ZqYzVlSG85Q2FlZTI3ODhNT2Y1K2l3SXkvZGtWNjNUdDkwRVhqcWpxZGt1SFNoNkF6WHV6WmZEN2hESXZucUhFbDNBdmZZRGZleWVFRU9FWmJqVllBODAxQnhZbGxwYmwydS9YNFdHK1NjNS9KV252OVBQbjlpN2hPZlA5SC82RmMrV3E2dHJWMlRlUjhrVEZ2MjhFYytraDllV3hzLy9NbFBidjZ6My9xdHkvL0RQL2dIRi83NzMxaDcrVi84NW0rZWVlVHYvYjBYSC8zay8vbjVpOCtlZVc3ejVaZWZ0WXNYVCtVTEYwNzVhSFFTTlVrbDF5ZkY2cFBKNmxQSjg4bmtkb3JVRitEdTBKL243dkFGTVh0SnpWNFc4d3NrdWN2cVBEODFqTlF4VnZQTXZLdExROHdnVVRJWUVSQTRQMEtBNU9sVGJKTnJFQzNMbWpvb2dFUW9uT21acnRGZXdCczVxNVBHTHBVcFdjTysyV2dFdzZaa1c0ZjVKY3BYaUhOUzIxbHhlNEY0bmoxd1BPRFlDSkdUN08xa0FhWTUxc0x0Sk1uNFpLK3VHSWVOVTBucVU5MUx6ejN6MzMzOC8vVGNmL2VKajczdy8vN052MzNtbi83RHYzdnUvL2s3LytEQy8yUHQ0NWYrMjkvOHpmV0hQL3ZKelQvNGd6OFkvZEVmL1ZIMThNTVBaOFRHSER2ellteDJwdU90MXpkZEJKS1h3eTRuNUZ5ZTYrektWaXpWa0RrdTg2NDVONE1jcm5HMW00RTg1TWl4NlRKbk9yaUFHeSt3WENEY0N5ZHlFTmU0ZDgxazN1dTB3ZysrKzlIRnZxbzdXaG8vZTJaNCt0ODZ6WHBjMTJ1UjU1UTJQeit1UlRhVDZpWFVOY2xVWDFLeDUrajJEemkwYnhOUGNyeVB1K05SY2Y4ejhmeGx5cStTaEo4VXk5OUtubmtPbXAvWFhMOU1YSlJjYnlEbk1Xb3o1dzdaNnBwTkRGNFRUWUFZRGVNd25UMlFkQVVGS1RaSlNoMEVWRXVJa082aE1GYzQ5Umd6eENZMllEbmlLM1JyQWtEQVM0U1NoTTh3WTRzUDRJcFl2b0E2bitGUnl2T1M3UWVTTTQ4VjdDbGsrM00zK3dwYlB5b2lYNkQ1TDhIOEs3VHhCRDE3aXRhL0o2N1B1K0Y4cGZVVjNVcGIzYXFxem9LVVRxVmI0ZVo4dnhXRzJZN3hSbzlBSEQyOFVxMzNwTnVkRTVNbDk3VGtwdndTRGwwdVhJM1ZIbHlTNFZ6WEVGS09HRW1ZZDdOYW5hVGdBUFdFM09BRk4zOGRMdm81aUM2YkYvdVE2MzM4R21ocFRtMHcvUDRGYnNDdWIwUnU0em5sMXNXTDFYZzQzTmh5djZ4RmNiNU94aStVMG5NdTlnTlJJUUg3azhxelVFSCtncGg5UWJKOU9kWDVxeW56STNvUWNNNC8wRXdDcnV1WEpkY1hwU1lCMS9YWTY5cThJdm5XQnMrTUVOblRNaWt1QWhhQkk3a3lOQkFwb0NUZHBJV29scUtTUkpRSEJOUHpYb002anlkbzJoc1lBeDhJWWdZRUlDVGdFRjZaNzNZanlmbUtWUFVGK3ZXUzFJMXZKMU5WL3dYRzQ2ZWxxdjdjNi93VkV1eWpVSHlCcmI0RUZ4S3lQT0dxM3lBWmZ3K0MwOWJCK2RUcFhPbjFiZlBTNW1hMSt0UlRqbHZrYWduNEZublFOL293TzdzN21sTFpIVlgxZkZaWmtscVhBSm5qZ3UyYWlKSmFHcUkxTGswZUx5QTNrbHNsU3Q3Y3ZZRjhJRUxPU09TYjVPQlhZcEI1bUs2Z2t2M1paWityTFJtNmd4R1FjSjB2ZmxTMkIzaGV1WGo2OUthTng1Y0hHeHZuTTNDbWcvRnpZOVVmZEd6OGJSVDVTYlg4bGRMdEMyVTEvck5PVlgrcEhHODkwYW0zbml6cThiZFNYWDgvVmVQVEtWY3ZTMTFmUXE3WHVmTU1Bbll5SjBoMmhNRXl5YmNCR0JmaGkwSTRaSlVFbFJKSnVRTW1TTDRRa2pJdzNmMHllRVprRXZjTTdtd083bUVKaUtENTEwaVltSkdBL1lyV2RsN0cxUmtaMTgrbDhmaGtHbzIvVTJ4dVBTMWJvNi9aMWliUHY4ZVBtdnNYeXFMNGtxZytwaVpQcExFK1ZhaDlyNWNIejI4QzV4Y3VYYnBDOHQwaytmSllZZWVlNmVKbnZQUm4xRy9WMndpOEtSR29yVTQrMEY3UjAzbHV6bGE4MEJWM1dTQVg5TGg0RXlVM1RFQklKdzJ3RGlHRE1BSk9yMWduN2hEbTFZSFNSUWNPMlNXRnJCWmRXZlZPc2FnRit2VVMyUWpYL1hLU2NINmM1NWJmNWZubG81Lzk3T2JUYTJ0WHZyUzJkdWxKbmhuL3EzL3dEMTd1WHJyMDB2Q1p2emk5MjdhZUtmbWxVM0g1MGluZHJFOTI2dEhKVHE1T3FsV25OTnZKZ1BEc1ZNMmVrV3pQaXZ1enlQWWlCMzZCMklCNTdFN0JBREVZQWhoQllnWGZtUURsd09QOWg5SjUvTUF5bjhFbVJPelVEV0Jic29rajN2YzJtTG9na0JmWjUzTms5MmNGT09YWlRrbk9KNldtYjFYTkhmQ0lKRHc2bVM5dm5xcGVmdVdaVjU1LzVaay8vZWkvLyt5Zi9FZi96dlAvMDYvL2g2Zi8rU2MrOXNLLzRObnVQLy9rSjgvL3M5LzZEeTgveXJQemg5Zld4bytzcmRVUkkwQWN0OGpGcDNDTGpMUWQ1ZzBkQVZ1d2xKTDF2U083cElNOVNMSUhLb3ZtTXVDSDZrUVNobkVFVHZJRk9HMkZaTUYwNU0yQjJMR0ZEQjJEaHk3WkJUMXVxK2Y0Y1g5WnltSlpTNTAzMVI0L3BRY0QwZHFQdnQrcTBsVis5RDdNcytJclAvaUJkVGVxS3ZmU1JsSGtTeHpiZWN0NENTNm5CUDRkRi9rR0hGOWpUTDRLK0ZmYzhXVVJlVUlnM3lQT2xpNmo1SUtBTURiQ05Jd3RzNEIya0d0TWtOSGtMZW9Db2VjS1lXeVZvSzBKRlRhQjlSR0ovYXliZnc5bVQ4RFlwK054dUgyTnpaNDB5RGRWOFYwZ25RVDBOTjhCem5yaEYyc3ZONWZuMXRrVEFINUFRWHU5SmdMNm1seWJhU1B3RmtWZ21DM3hzL0dBckxGb2hleVJRbGU1a0hlUlAvcG1pQjB3ZVlhMEk5emN6a0N5Y0s1KzFzT2NaT0lrM3BBY2c3R3hpL1FnT2k5bFdwSlNsMU5INTdqRDd1N3FGa3FWRytzV3daMTMzdWtYTGx5d3paV1ZmR213V2ZYUjI2aHlmU254STM3SkhhN0JuOGt1M3pIenB3VCtOVGY1cXJ0OUJXWmZGc3RmRS9mdko4alpCSXdLQ0RUZ0FpRzVnbkFHeFRQamxCMThFMEpEeGl5M0lHWktNSjVvV3FWb1NRaUU4YVJkOEIydUlXREs3K2ZhdnBaejlaalgvampmQkw3bUxsOFg0R21tdjB1anAxVDFlV2h4MWp4ZkhGcTFlZm4wL295V2ZQR2pMdjFSaFcxWkc0SHJIWUhjOThUdmcvcXUwaHdaUUdXUGl5dzZwRy93NlE1WWdvRUJpV25MSFRBWGRSQXZDUUFoalFRVG41TkpCTlFETjREUzVVNTZYcE53OTBzU1RzVzhGOUtyTXhKdXZNdlgxdGI4NGM5LzNoNzUxS2N5ZDhQVm1kUGR6YmtyYzVkR1ZYa092ZTZMODcxMHlqdWo3eFM1K0lhazlEV3I2cTlLcFkvNXVQNnkxZmExd3VSN2hjdlpKTndCYzN3TUFMOVdFNUtva0hVWnV5RGFqSVo4ODFVa0hIRnpFckM3UUtBTmxER1d5RHZZbGk4KzJRRmJ0dS9aZVBTMXZMWCs1YnJhZU56ci9MVlNlRVk5R24relRyM3YrRWhQZFlIVE9sK2ZYWDRabCtyUjZjM0hEN3pBWG1tbnZYOG9BdnBESlcxQkc0SHJGd0VoVXdyV29HT3ZpbkZHMzhUbk0vSnlkbHNtbjg2N0NOZXp4cmEzVVEyU21JQUVUTElBNGNSTU91a2pRRUpXZDNUSk0vSDc0VjAxOHE1Szg1eEJlaU9wNDM5akV3WUVZQVBjTUJkZGx3WnhGdnI0SDMycytwTS8rUGpvMGM5K2N2T1J0Yjl6NVUvLy9zY3VmdmtmL3Qxelgxajc5OC8wTjcvN29sK1I1emMzUjg4VlZ6WlBsVm1lVFlLWGt0a3J5YkdlZUF5aExoV1J4Zm1QQk10WGtpbVhQTk93a0lRSDR2MG9rYWdqclpRU2NBR3lBbFVDZUtUaDZ6eHpma1hjWDhKVzllem95c2FwOVpkZWV1Nzh4WmRQLzNuOTBrdFAvQmNmUC92MDJuOTAvbXYvNkJPdi9ObnYvZGJseDlmV05oNzV2NjF0eFprMzF0YnNob253RGVZSTQzdURlZFM2YzZ0RVFMampreE1QbjlDNzk5K2ROaTV2ZGNZWTk4WStIbzV6dlZoNTVoZHdOaUFMZEtCSkNjWkZHeEkyRW9peEFpUVBRWUpLMFVBa0FWRHVoZ1ZjOFZxN2QyckxnNUhsaFJGdEVzTlJQZTV0alZNWmYyL2krSVBIVS9qQVJrTHNxSHYxcVR2ODBoejNzYmtlYjZaaTVJYk5sRzA5aVZ4S2pvdkovUkxQYlRiVU1CYmp2NGhWQUFtQ09LQWdHRGZ4UWlSa1U1WkFUWkkwUTJGdXlXU2NIQnNkNEZKWDVHSlgwNldPeTdxa1l0UFdMNC9taG1uY2ovTmQrc0lXN2YxelJFQi9qalp0a3pZQ3YzZ0VISWovK28yRzBueG5QbFYxWFZhNUlnSG51UXA1b1lZdFpIY1NzSFpjVlNYSVZSUk9FakhqMlVNR1dWWUZrbHdUUDNocmdIUWhzZkVWTnhjeEN3TDJRVzMxd3BpRVBzN1YzS2pLL1hHcXl2aDdFL0YzSng3Qkl6UktMM2JZL2ZDZFQvdks2WEVlRGJUcVZMTFZnVzJRZE5lNUE3NWNXcjVZbUY5U2txZTZqZ2xUVTRpVFlCbS9SamFFT3lGaFJjSElKZ1pNUk9MUWdqdG16ZHo5dW8vNWhSNEpXQzUxVlMveW5mQnlQK242b0pNMjZuNjVOZUk1OVVxYzc5SVh0TmZQRlFIOXVWcTFqVzdTQ0Z6SFlUMEkrZjZGNyt2WjliUGFTWjFVcDF5U0tIdEUvQjJIeFpxN1ZoTU1US1FqbWhTYTZCeTUwb1hzeWsyYVNVUEdRbUpXN3VCVUM5WnY2N0FPbWgxbGRodU16UmFxWEMxV1pzTks2cDZRN05jMzFvdjRqei9pNzArc1BiZ21iTHl6N3JVMWo3UFZlNThhVnN0ejN4LzFDdC9zb0xoU0dDNm43QmVUNFJMUjdJQzEyUUVMcVZVbkpJd0NNb1dHWlB3RWlXVUpjSVlpQS93SVlYeExHNVhBUnBlNzZqN2s0aURoY3E4b3JuUzZ2YzJYNXRaSEo1KzZvd29mZU1UZ2JORyszMWJqQUFBUUFFbEVRVlRlUDBjRTlPZG8welpwSS9BTFIrRDR2M1pjN3poMlIyZHBjV200dkxpOFdGcG5sNnN1T0h6T3hQdEVsenhRY21XVFIxeWM5QkFBZDNDQU1xZjBnV2p5Z2loM2tnZDN4enlDY0dSbTJENFJKWThqdWxta1R5dERrdkw4T090aWQ2RTd2ejVjSDJ6Mk56dk5McGpXZHRqdEpENTcrT0dQNUVmVzF1cFNmTXczbGszTmRya3dYRkMzQzJKK1JRd2p3aHBpdFZtYzRvMXNFanRuTEJFeGJNRDZSZ2RRSGtHUWhMZTRpNzZVM00rUmlGOU81aGY1UURhV3JEOWkzelhZTjZVeGJrNjA5ODhSQVQ2Rm42TlYyNlNOd0M4WWdXTW5qeFgxVmoxWHBHSzNtaDVTS1E2SjZXNklEcDBaNTh3a2F5Q1RVZXRzQ0ZpenpBVWlDZExzMm9KSUJFYVd6YXkwQUE5REkwMENoanMzZkNJQU45QklLYm1tQWRzdEpSVDc2bjY5VDB0ZDJ1cHREZnIzOWRNdk9KeTN2SG5tdVkyb2JESWFsOXpyYzJKK0RvNUxETWNXdzVLZHhPcDhnMm9RYVlLaFJSTTd4czlJb3dHK2V3bmJNWFpTSS91RzFYYkJjMzdSOHZoRnNYekJhMS9QMWZSM3ZXLzVxSGUrQTV6bU8zOFFOOGtJYnFsaGNQZFptTmxjMTdzcjNJUWRFdWdoa2JRYnFuTWdTenFKMHdGeWdDTm5rd0FKUWx4NG9zbnpYdFhrWUJvbTVBV0kxUzZXblhvVGhLNEpEU2luZUdwUWlLUWgyeXg1MG4yZTBqNVJXU3BUT2RqOTh1NkNtanY2cnJjOG85cmE0Zzc0a3VaOHppM2dseG1rVFJoSXNUeTVhVWhXWUQ1Rmt3Y1lLOGJZNGN3N2d5WVpJZ3k3bVc5NHRnczJybC9FMXVnbEc0OHU1SHE4SVZyWE96cFlONUR6bkprM2tEZXRLN2RNQklibHNDaUxrbVNMM2R4eEhWSXREb3JJYmhFU3NFclI3SURKQXVhT21neVI4NFFnQUlGSWdtcUNZTElEZGhJSHliY2hrZGo5UnB2TWRnN0FSVUJsU0VwSlZBZXF4UklMOXFuWVBuNVR0MXdsR2RwdVMxVGQwZmQ4andSTUJwYng1bVhVbzNOT0VqYXpTNTU5aTZISVVldFFkeGNTclpCMFgwWEVsaUZtR1VOZ3hFUW5rN2czY3UwWGJEUjZLVzl1dkZodlhybVFMcit5VVc4Rm9WT3Z2WC9oQ09ndmJLRTEwRWJnNTRpQXVmRjhOZzg4K1pJVWFROGdleDI2eXlBREYrSDJGbHovQkZuVUF3QWN3dGNwZ3FFajc0S20zbGsvaGMwazYwMEVBVmRKUmdLbS9XVlc3K2R4eEg0cGlpV3k4b0JFdk9NSk9GK3hySlZ0OHJQQVJVRStDOE5aZUxvSVNSdDgwNmxFMVlRRURNSmRZWXhiQXdPY05RR3dESXlaRUFydWcwMjIzUHlTWlh2WnE5SExPaHBkR28ycXpkSEY1ekxhNjVwRVFLK0psWnZBU0R1RTZ4c0I3bWRUS3JwZEZNV2NGN3JzS3N0UW1TYzU5Z3l1NUFVNGljQkZBT0UwRFVUZVJJSnd6UnZpRUFxQTVhK0N1c3o3RktFWHRyaUI1cEVIaGc1ZElrakF1cCsybDdOZ1dHbTN3QTYveG5NNUYxcHRTclpYM093TXBEaVR5czc1b3VoZUljWkY2dWFrQmFQSHI5S0VYNnU1d2wySWlRVGpKWVNLSXFtQ256Qk1pelRTbE5aRmlsZE0waXRlOUs0VWRUWGVWUmVHOXJvbUVZalplazBNdFViYUNQd3NFVWhMU2JuZWV4Q1pGeEdTcnk0RE9rK0c2SEo3bFVpTTdtRlFCQkFGUUxKb2dQamlTUGpSdWlGaU9Pc0RyQXVkZ0lPa1FteVRMK0JNSndPUEd4ekxaSmg5THJMZmtKWkZNTXhhRmRqaDErWFQ0NXd6TmxKaHI2RHN2S1NCWW5DaEtIdFh5cUl6S3NzeWF5cXprSHhoaktVSEdLZUpaS3pWQVlVdzFra1RDbFZMV3BLQU8rdWFPcTkwVW42bHEzbDlESXpPakxxMnc4TjF3N2l2TjR3bnJTTzNWQVRXelZJdVVzK1R6bnVTWllndWt3dm1HSVNlTTJOdzhrUnNjQVVpQ2lHQUlJMEErQkVhSUdzMGlIS1FQRUt5TFJCNlU1QXB5TldJUTh0RUVoNndubjNKZmxmaEVRUjN3NTFpQU9zbDdQRHJieHg0SVMvMVg5aGMyRng2Wlc2Y3o2VGU4a3RGZDNpaDZQU3ZsR1YzWEJRZDdvQkw0MjdXblNUc2ZoWDVNdkFNTm9SZmFpcmpyS3BJcWNpcWFTUlNydGVkN3NVYWZqRjN4dXZMSk9Eb2E0ZUg2NFp4WDI4SVQxb25idjRJa1BsT25EZ1IvK2x2Y1dMdFJLZmNMTG93Nnp0OFNQS2NOOFdjaS9UTnBUU1BnMG9oQlYrTm1Lb0NPTXV1d2l3UHNJNGtMQTBTaEVUQ0xtRVFtRHY0NVZ3Y2EzUmNuQ1NNUlJZdnNuaGUzUWFwMnVxZG9FL0gxNDVQL2tZRVdJdWRkYTJ0cmRuRGEydlY1ejl6WXV0RGcyZlhwUmhjMFZTdUp5MDJlSXl3cWRDUmlsUUN5Y0lnaUdNNlNDYlFnRkZGTGNBVzlkWXAxME1tS2RhMTZLd1h2ZjdtS3M2TzUzNWxYNzMycVU5RkE3VFhMeDZCbU5XL3VKWFdRaHVCbnhLQkV4ODVvZnQrWlYveDFPcVpYcmxuOXpCZndieFYvUGlmWlZDYjljM1FKVXFISkxqd2VJRVU0QUluV2JoUk5vaGRHNmNzZDI5b3dISks2aUIwTUNOZmZvUVdtb204R3lSK0VVRVNwalExNXpaUGtDQlNrUHk3TmZ2WGpHRzVweHl1cnE3MnZyVDhwZmlmZGdwMjZDVWkrTlNuUHVVMTM4Y01xQncyZ3RrR3Y1eGJkODhqUnF4U05WTXhNTTNvR2FQV2dNU2NOd1Yya2NFOEMrUXpsSzlBYlIwNVY2czRaU3kwTzU5KzJ0bHdoMGJueG5PYnMvbkdjNnIxNk9hTHdKMTMzaWt2cGx3aWIvWnRVK2JJRVB6YVNPYjREZnZBSEQwejcxS1c3czJma1NRQkNwZ21RcEtQZzRoSnlDQmxnSlFSMHBsMmxvV01QRHdCSkY2VkFrSVplbEZ2MllVa1R5TWc3VmdpZ3lRMksybW1DM2pmSzUvYnFyZUd4V2JSbTB0ejVRNzlMK1BBeXdtSUNBckpCcmNLbnJjY2VaMEg1eHNjNjViQUtuSGo4TUhvR1VNd2dZQW55TEJOZUw0b1ZwOVZ5MmZGOHlzc1h4Y1NNTzY0SXg4SGJMTDdsZWlteFRXSWdBTFh3RXByb28zQVQ0bkFVM2hLUy9FeVZmMWVxZU81NUpqMzJvZG1NckJzZmU1U3UyNGdBUWR6Q29JNEd4alRCbmpJS1FrN3FRT2tqcUNRQmsxZDdDVVUwbXh1RTdReG8zQUFtUzg1dTdBUEJiZ0QxaUI1bEV4M3hiMmZSejZYTEExSG5WR3ZsTEpjeFNyMXNGTXZqaFplOFMxSFBEY0VMRzdyUWNJQzI0SmJMVXlvT0dOa1VCN1NLREtqWnJXNmJZcVJnSkdEZk0rUXRGL0p0VzBrcFBIREowN1kydHFuSEd6TXdEalIzdGNnQW5vTmJMUW0yZ2o4MUFnTWp3NzVuVTd1bFFzODZ4MTJsbHpTc3JndXdESElrSTVEa29Ia0NPNVNUUVRUUFZxUWJXQ1dSNUF2RVdWWFkxYitXa2t6dE9OT0FnZGd6dU1JR2pJcU9ieHd0eDZ6YzZxeUsvWFRybFNrWWVWVk4zekZEcjl5UGNyQ2p4dHVkcEZFK3JKWWZ0bHpmU25LeE9xc1hpT1FVSk44NjBpYmVMMUpNcVorSFFSTVZCZEx5UnVNVlUzaWRVQUlCTkJlMXlZQ2VtM010RmJhQ1B6a0NLeHZESXJVN1E2S1hyR2tnMkt2cG1LdmFOcmxVSDRwUnZJTm9rUVFKcWRrUTdBSkhrY0tUS09SQ2JBa1VlWkdIV04rVms3WmxGUFhHd2lNOWdKT0NjTERObDAwRmhEY0ZWdktibjN6dkNoSmQ2TmI3QzZINVdJYXBGNU9tY2FwdklOdnJlZTVDYzZYeGZOWlJ6NEZzMU5pOVJuazhXVzFFWGU3STM0TUdMOEtWRG1oMm9UVmx4VDF5L0Q4TXZuMklnbDhjeE9idG9ORDhSTmRmNnNyT1pQZmFoZmEvbStGQ0N5dHppY3Bpb0VWdWxTa3RGZUx0RmNreFg4V1BIQlg3a1pGZU14QThNT3hxV0FiU2NRUzh4UHlaVG1vUDRFcFpXb1FKTzJXWUN3em96cEJybVdkTUx5YzVnMEpBODRjaVZlTURkelJKeFpSK0c2ZWo2eWlLQlk4bFgxK1ZiZmpDZGoxVWkyb1NNQjJSaXcvNDU1UG1ZMTVyREJtMmJoU0d5T1FmSXdDSTBrWVpiVnFLMkY4Q1prRWJLTnpSYjExeWJHNU5kelF6TEMxOTVzUUFjN01OOEZxYTdLTndPc2lrREZPMHVQK3NraTdvTEpQTk8wRlpJbmdEaGpKZ2lDYjNTdW41TFpNSUU5T2dFZ0g0VTVCb25YdWZFSFNEWjFJZTdRajhjNUkySmtHYUE4Q0JOaUhrWEV6VVpzVlRQZFp0TUM2VmFqdmRySEZzdU1zQzhQWTBaZVZwK3Z4NXNabEhXMmMwV3JybEkvWG4wRTlPaU41ZEVremQ4QTJRcEJ2Y3BLdlYzd1BHdlBieWEwdDJQaFN3dWhscVRkZkJrYVhldFZvYzJ2d1lrdkFiOUpzaU5uNUpwbHV6YllSZURVQ2hsNGk3M0YzaVVWTFFyTERxa01YU0pwOVNuNG5GOFJLb2lRanNneEJxaUNob2lGUVR0UGd4QmtzWWFJVGJXWjFJU2Y1SUY2ZjJwbEprSUI5QnFkNU9FbmZteDJ3cSt6bTduZTNKMTBjUytxN1JFZlkwZGRGN21PbE85NTAyN29vdm5YV3JUb0xyMTRCNm8wa3VVcW9yVUJsaGVTNlJGMFh5R09tTjFoMlNheTZVS2J4ZWZPdEszVlpqZllzSDM1ekNIaEhSL2phT005WmUyME10VmJhQ1B5WUNBakx4WWZ4Lzd6d2JsYk01ZVJMV1dXSm05aDVrbCtYSkVrQ0ZwQ0lHOEE1TFluWGt1eWtiRllIY3FRVCtGRjZRZG9zeDdZVXVxQmdQeE9RaU0wbHVRakpWaFpkc0ZvbnZpRVUvRkl3ZVIvRElSbWVTazZ3NVU2ODkyRFZpdEd3QXZLV1oxOVg5eXVGK0dZSkd4VmlWU2xXbCtwanluRkhmWXR5c3hTNWtrUXVxY3NybGZ1bG9yRDFEb241VFBkWjI0a3gyQWsrYzFidkJEZGJIM2RvQklMNTRPNHdxMU0yNjNFbHo1dGdtU1dFekxsTER4RE9ReUg1RWlST0o0SllyMGFVYllNZm5nSDFCdVRSa0I3NWFBZWFDdGxBZ0dtZS9UQk4rK1JVSjlnbEZkbTN5SUx4UzdnZzRWeUE1OEhhcjNWY2JQOXZpaHBsTnQxaDkzRWN0Lzd5SmdsNGJxdnUycm9oWHhHM3pVSjhSTEt0T3NsSndsNTFJZzhiZFFRYnBlVDFVdnh5U3VtVlZLU0xKWFJqdERBYzNiYTBaRHRzK0R2R1hkMHhucmFPN3NnSUJQaysrT0NENHQ1SnB0SXp0WGwrQWJac0lrc096THRJMXhFc0dsTXhJQnhuN0ZhWkpva0c2VjVOeEFqeWJjb1RvdncxOWZFcnRxYU9iYWZFQ3hmYUM5Qm1FQy9oTENHYUhiQ0pMaks5NmcwSnkySU5HZVJ4V2VCVHdEWUpVMytuM1d0cjhQdlAveG9KR0Z2blJ4dnJLWEUzcTNtam8wRzJWbmVFVUJ0M0pJLzVaTGE2bWplN2lpdWRKSmVLTkxxNHVMejc0dVg5NC9WRGg5RDhCbmlualgrbitCc3pkYWY0MnZxNWd5S3d0cmFtSC8zY1I0dS85ZURmNm41dmVLVS8zaGdOeld4b0xrTVREQTArZEVqOFdhMlNVc3lCMktWNlE2QkJtSlBkS2tpa1RvREVHZWx0NmNJR25MN1VSMU5QZ21VNjJzK0lPZHBGZmdKcDlDZDlOR2x1b2FVRTBEZlZPWU1zR0hUZVhPWnl0dUZULy9qTTRLbUZwN29mL2FPUEZqRVc2dTJ3VzN4dFRleVJ0YjlTUDczMmtYRVg1VmFTMkFIbjlhUjJ1UkJjS21DWFM4Rmw3b0t2bElvcnBmZ0dUK28zNW9ydTVwOTgvTjhjUGY2eGoxVVBmK1FqR1NLK3d3YS9ZOXpsRE40eHZyYU83cUFJUEFMb2hicm9yaS9QejFlRGpXVWIyVW8yWDh3azRRenZrUENTZ2R0WkY4a0FWN2pBSUlpVjdwUk4yb05VV2VhQldYb2lNYTNEZGgybk1zdWE4aURrYVRyeU1OWVJNL0oxMWh2N05LaWFKSFhSd2tRN0dYeHo4TFNJbkZiV3U2T1Z1cjh5LzJKUjl4NzUxOWdBTy92cWxwdVpPOXpORW5LeEF6bGJpcDNwaUp4TmduUEpjWUVJVXQ3ZzU0cHhKU09HWjJlUGQ2ZDR6NW01VTF4dC9keEpFZWd2bjBzRnlTc1g5YnludEF5M1pYNFp0T0NHZ1JtNjVsNXdsYXM1MURrd0l5YVNaRXNDYnNneTVOVncxaEVUMHBYcGpwWlR1Q0hiU1YyMGU3VStkSWpnOStpR2V0NkF1c0dwWkY0VFNZRXNRcCtFdTNJczVpeTdsU1M4VVZZTGxYaXYvK1E1OGhJZHZIYjNkYmZrbGVSU0pJNFpMcGJpSkdCNWlmSmxrdkc1UXVSQ0NWd3FJUnVsNWFxTEZJL2p1dnQ0SzNiSTJYc3JEcnNkODVzZGdibDloWTVHM1o3WE51ODVMNU40Vjl5eFFPSWQ4Rnk0UTdKTlRDY1RGL2ZKWjF4REVLTk1kOElDWjc0cGV5MXBJa2dVem5waUppZGxNWjFqaDB3WmJXTFh1MDI4MUE4aVpodjJSeHNpcGdUUG4wMWlCeXdkMXpUSTBFVnpXVEcxRlZxWjc2RGZLN3FqSFUvQVhXeFoxMld6SjM1eG9EamJCMTdxQ001MjFNOTNCUmM2NFdXRVB3QUFFQUJKUkVGVURRSDdSaUVZZHlYZUc5L3NHZExhandob3ZMUm9JM0R0SXpCS3ZYbnBkK2NIQytnVnEveTB2d3JITHBJYlNVNksyaEc3WDJGZWpKMVBTQkZCakJPUWZDZGxEWEZPeXB4cEVpdENOanZZVjhrV0xQY3BJcjBOb3c0QndnTlRIV2Q3Y3hXRFNBWTB1NVJ1TXFEdFJVMXBOWldkM1NtVlRFdWYzdTU0QXA3Zjh0eEQzaXBoY2ZaN3JrQjlwblIvcVhCN0tWR0srTXZLdXRKOEUyTXdKSHdvN2YybVI2QWw0RGM5eExkbUI4UDFUcUZGZjFBVTVWTFo3ZTVObmM1ZXBMVEw0WU9jUFdWelpBY29DQUdKRUE1NUZhNU5Pb2pVdHdtWDlVNnFZRjFUVGhKdEpQTk93SlFLbk5KTVJ6NFE5WUZaMnFFZWFUUEJCRUJOdXFFL2lmNE1nR0tYcHM2ZTFPdnVLYnE5WFY2VUE5V0ZIVS9BMHZOc3lGdFcxWmV0cnM0eDl4SlBHMTZBNStmYzh6TjhKM3lPYjBBdlYvQXJIWXpyVzNQV1h2OVI2L1h2c3UzeFZvaUFMZmFUZG5XZ25iUlVkTXE5bW9xOTRycGtrRUYyVHpYUElTamRIRnozY0pJdlN3VG13Z3dSWkJ4cFNvUU1nTk4xUXE3aUxnSUxNcDdJU0lkZWdIVUlHWWgwNE9wMDB4ZWs2WnVrNitGSGJVZ09pZjh3WTVjV2FVK1IwbDR0eWwxbHYrZ0x4N0xUbjVsZXNaeTNxaTN6K3BLTXgrZThxbDZTcW5vaFYvWHpYbzJmTmF1ZXQ3eDFMbGRiNjVldzNoTHdkWHJnbk5IWHFhZTJtMXNxQW81dUV1SHVNWlc3b01VK0lhRkJZd2NzOGJkL0MrNDRteDB3Q2JBaFhCSnpjS2lUQk9Fa1duZDVqVVRrQTFOQ2JuYTExSnRKbnhBemJYRktNeDNsVitQMTlaRTMydU8yRUNUZjhJVm4waklRU2ZRMzdaV2kzSlBLY3RHbHcxMXhOKzMwaDdlVlg3YjZ5dmt0MmRpNG5EZEp0QnZyWjNLMStZS01OcDZydDlhZnFUYlduNitxelhOdVcxZDZXS3JSWHRjbEFweXQxNldmdHBOYklRSmtUeWR6cnEydHFkUlY2YkMrQ1JiSWM4dXNtbndKSjlvemlKb0V3VTdBUEZnL0FaVnBnbWtlUVVTYUpEdkx6d2pWbXpKT1hSS3RFMDA1eTNpVXk1M3Y2OHFqZmxZM2xiUDIwWFlDK3VHcUxPOFM4OFN5aXl6VC93VXg4SHVyOFk0bllDd2V5c2xsbERmWDF6SGVlZ1gxNXJscWErTmN2YmwrcmhwdHZGemx6UXR5K2NMbDR1TExvN040Mm02RjZYb2pqSkd6OVVad28vVmh4MGVBREhyaUl5ZjByeno0WUhvS1R4V2JXNlBPS0h0L1ZPZTVjYmJGMm55QnBEdWdXbGRTb2R3Tmt6ZEpza3FRR0ZrZXUxZng3VFJKTWRJazBLWnNKbG1HV1pveVNEZElOTW9tU0NUaENkd2JTVU9OM0M1SGxJTmxFaWhvb29Cb1FRSk9YV3VPU0xBUS9sYk80eEpZQjZpcENPRXpDbERzdlB2N3B5LzRsbHBsdFd3NjdJcDY5MUpKV1hSa25aOUdOc3Z4MXRhV2pxdmhIdFNyVDkzaE8yK0VPOVBqbG9CMzVuTzc0YngyN2xuUDNubW45SmZQcGEzOVM4Rm9uWnpyT0c2WXE1MEVERi9JSkRjeVhZZWJ6VVFDRmtnU1FNVUo4MGJTaWhCVFV2YVFRdUpVanBmcHlBZkEvRlE2SmFCT0crNGtWbWMrQUVxV1Q5cTZpaEFzbzNHOUNrbUVQb2dVSVJORU8ydzdvTEVGSG8wc21QRUxRNkF6enNJT3RqbEo2TXlPdTIrN3NHUjdMOCtQcTc1dVNpb3ZieGIxWmNmNFN1V3k3cW0zVWZoNHRIY0Y0ODdwL2ZuT081L2VIdXlPRytnT2M1Z3plWWQ1M0xyN0MwVGd6V3NhZis5aEZVOXAwUjJsaGRGNk1hNnJUbVhvMSs1RG5yR1MwTGdEQmdia3dZNG5WVWtKSkdHNEpJTGtTbEkxa0JzcHZVR2tCU1JOTkhtUHFUclJJMGsyWlZFSGtpL1I2Rkh5ZllCNkpHS0E5cStXa1o3Q1EwWTkrNGJFZTBVQitxS1ExSEcrU1Jpd3dGM2hBa2w0UU5rdFN0RVlIeG4relF2Z20yejU0WWRQMlByNnNEb3o2bTRXcTNzdXM3dEx4ZW83THUvWkdLd2ZadG5aUGRoYWYrcU82c0NCRnpLUGtKejE3WDBkSXFEWG9ZKzJpMXNnQW8rUXduckRvMlZ2ZmRqYnpLdER0VFRIVlR3MCtNRGN1Uk1HUDk2anpHUmM0d0ZyWnFXUmNBTk8yWUFrTzVFazMwZ0hnb3hEVGhHazYxZVhUZFBzbmxHTzZSeVFDU0d6VGVodmc3cVl3cWQxN3V6TENPY08zQ1d4LzlKY3VvRDBpYUdqbUt1dmxJdFA3ZCtjLy9kLy96Y0hKejYvVnE2dHJVVW4yRm1YK01NUGZ5US8va2NmcXg1ZSs4ajRULzdnNDZPUWY4Ujg0SkcxdFRycU9UYmp1SnhvNytzUWdSMDRrYTVEVk5vdWZ1WUlyTjRCdmRMZjdPV096bnV2V0lISWlrSG16Zm1sbTBBTmlGOGFnR2VycUxNUlRoaEl6Z1Q1TW9nUXduTmdZaW94bFg1MUhkTzRHaVpzd0oyeEUwdzN1cEdlNmtRKzlKMjJHbmxWdWRFcDR6dEJEbis0VGVlUkEvc0hMOXJpMXBodGh6QlpLVVFPcU00ZHFGWjJMZU1TNXA2NkE5d3lVNjI5MndqOGdoRm9DZmdYRE9EUDBQem1WbjN1WWlwU3A1ZExXeURScldRU0Z4eno1TGo0MVVNeTBtUjJSN1lnM3dteVJSNHdpRHRQYWZrU2FaSWdsVW1Za1o4Qkxnak04bzBFaVRMSTFrakNwbXpFNmN4ODZBVW1wRHZSaVYyd04zV1RmTFNuSzhnWnFHdjYwUkF4K0dZZ2JNcStKQlU4SnhsSzFoVTZkU0NMRWZWSzBtcTRkYUVsNEp0N01sKy8wWEhHWHIvTzJwNXU0Z2p3N0xmU29sZEtaeDRxSzZLNlRBSmM0SWg3NUVjbHo0RWM1N0VEcnJJaEVBUnNUcjcxYmVMak1Xc1FKRW1RaEJza0djQ01qQ25KanBpQVU1YzZRYXpBRDdmeGJiS1ZScit4US8xdGFlekRnR1lIek4xdkptSUhiUFRGb3grUjVLNURFVjBXMDROOGp6am8yVllxS1lkUzlIbkFqUFpxSS9BTFI0Q3orQmUyMFJwb0l3QVU4encvMVVFbHVndXFlOGh0ZTBsa3V3elNKeElCWTV3TUpMNEdKRDhTb2tVWnBWTjY4d0l5OGxXa0dicFIzeUNJVnFrUWtuYWFzb2tFU1hnYkpGLy9FZTFJcUxRZGJXbWpxWSswTlBhQ3lKMzJndHhEdWplNzNBRWNISS9zZ2VnZWw3U0w1WU81MFlYMkNBTHRkUzBpRURQeFd0aTU0VzIwRHI2NUVhaTUvVFV0WXNlNDRxazRBRWtIWEdUWkhITkVZVUY0d3VtbUN0RkVGSVNDTDBEVU9ZblVlQTdCZE9UQi9MYmNUb05rU2IzSU4yRDdxWFRLYllTTjdUeEpsdmxaWGRnTmNnN0NGU1FrTFpCU2laQXFCUURxTzd0eE9tclNvLzZDeGk1WXNLSXE4NHFpdHpsY1VMUlhHNEZyRUlGMklsMkRJTFltR0lHRmJrcGxHcEpRVjhoaEpHQTlBTWlLaXd4TlVManpRenhFUk5VbEpWZENsSnRtYjM1OVFGWVZvVDZaajhJSkVKUk9rQVJmTFg5ZG5tYTVxMlZ6bG9kdUEzYkY4dVk0STlvMlpiTjYybTN5VUlna0tFazNhWWxFRWxaSkFFakFSbnZtUElJQUNSanpMRnhCU3N1cWFWNEs3MEZ1Z3Y4eWpvTnE3N2MrQXZyV3U5QjZjRE5FSUZmZ0xsZUhwdHoxaXNidTk0QTdDUmd5NU5sdlllUlhGMDYzMlAybUJKSXd1WTU1bHBFc1gwT2lJRm0rQnBCWENYZzd6YmFOSGdtVGtuMU5iQVQ1Tm5tV1I1cjZWOVUxT28xdEVxMndiNTBSTUVsWWhINDUyem5BOCtEa1JnSVduV2Y3Rlhxd1lvSUZRZXFKbEFudDFVYmdHa1NBcy9nYVdQbHBKdHI2bXpFQ3NyYTJwc2ZYMW9vNzFrNTBzbXoxSERZRWxGKzh5WktMN25MVm9VTzZFRkZLOGg1M2xoQ0E1SWRHQ2pDVlVUOUxONUlreWdaQTFQK1lOSWtSMnpwaGsrUVpSd3VCcG81dFEzclVFYzc2Qmt3MzdaZ0gwMEtFRElTK21aQ0FFWCt2dUVNaUhyTDcrSy80RnZsR1FqTEdnTXpjTy9INXRjN3hmN2xXblBqOGlZU0o4Mml2TmdJL2F3UmFBdjVaSTlicU54RWcrY3FYbHMrVndKbmVuc1dEZzd5bGM5bDhtR0dETFBIRkc3cmtwWkxnT1VNU0YrSHVFekFIcU5mQURFMFpYTGhYRldaK0FraW1vZGRnbHFaMG9pbWpEVEJOQWhXZkV1b2tQYkhaNkVWOWdMcVJOMHJ6OEFld0hOSVJQNVdMM3lhVGJJWHBzbmJ2VnVhRHltd3V1ODJOUGNkdm0rZHhDWE1MMysvM2grdDNsaWNlUHRHdUk3VFh6eE9CZHVMOFBGRnIyK0FSUURmUFp4SnczZE4xR1k2clBHZEFRNzVaRUQ4OTYzSWpXWnJ3b0Zla0lVVW4rUVhoY1ZlSkdmbnlZejdnNENXVU1pRml2bUlDdmtwVERwOUsybWpTTThseVozb0d0cU0rbXpVRmJET3RpelpSRlBVaFNjNE4rWWNmNXVJa1hHL1NIQVRUeUFibEcwV1JnNERkaGpYeVhHVStuMnRiR05YamhieFZ6YWZ4WnYrODljdXpxM2RHUjJpdk5nSS9JZ0kvc2FnbDRKOFlucmJ5eDBYZ0RKNVNMSFlLTFliZHNZNkhFQXVDaXZQZWdTTUkyTHNHYlhiQUVDVUJDNHhrYUk0Z054S3dFK1JLNXNIeUlNaEdncW9rMVduZXA1S0t3WEhFdEM0SWRLby9xV3Zzb0xrbVNZSFRyaU9tK0NRTnRvMHlOT1VDWTk1Y1NieU9JTjlzSkdKRGt6WXFjMU5jY0FmY0l3a1Bhdk81REp1cjRmTXc0Vm13emttdStsM2ZMRmZQTnAyZ3Zkb0kvS3dSaU5uNXM3WnA5Vy9OQ0Z4MTVydldPYnE4cjlleDRid09Pc3ZGWUc0UHYxUmJoZXNTQ1c1WU83b1prcmdENXRsdmM1WXFMSWVUOE54QkNkaFVrdWN3ZzdCK2x2NkprZ1FLd21mNlRNL3lUUm56UGdWNHpkS05aSnR0NmV5YW1KQXZRTzU5RlM0OGdwQ1VSVkl0S0lsZUxUS2ZCVXVtdXFmcUYzdXNNMWlxS2l6Z1FxOS9ZbzFud21zOEV6N1JuZ2t6NU8zOUJpUFFFdkFiRE5TdHJyYTJ0bmJWbVMrUEd0TENvblRMVmZRSEI4cGUvNWgydWtlUmRBOUpkNEhnUjNjZ204Zi84QkpCYkU2aTQwM3lGVzVqZWNlbTBaVUpUa0duQUJIU2hlY1ZMR085bUxDUXR4T3plajRJajN3WVkxa2ptRy9LbUFjUjZhYjhxblRrQStEbFRQQ0dzejU4TThwSU54Q0ZFNllLUzl3ZDA4VThRWmtWODdsTXE3bVREdGRsY2JUdXlZR3RucTZ1cDNyWHBRV2VDZmMzK21mdnZMTTg4WkgyVEpoaHZpSHVHOTJKbU9rM3VvK3RmemRBQkI3QjlNeDNydDlUcjRZMjBsM1NrVlV0aTROYWxtK1RWQjUxN2d4Slp2UDhLRi95WTdzWS9UYm56akxBdEpNb1FiS0RrOUZzU3E2Uko5bVM5YkFOZzdDeGJPZWpYUUF5MFJGeENEZlhqaWJ2VVI2Z1RxUURZTjdCNmdZMDFlU25rbTBkNGdIdWZvVm4wc0l2M2dpSXNjNVNjaWRNRlptb2s2TG1ZWXVWYWM0S1diV2tSNHdFWEJWeUFFbFd0YlpkcFc3T1ZmM1VXK2h2bENSaE9zcU8yN3VOd0UrSmdQNlUrcmE2alVBVGdUTWdTeTd1S1ZSN1hlR1hVanhZV0lUSXFvZ2VWRTNISk9sUnF1engrSmdPSndFRDhXV1dPVW1RVk1jYlRNSmRLSVUyT2ZXWXh0V0FRQ0pQMlpSUEpVdHBSQnE0cUVlZGg3RklOem8weDNiT3RGTmlLcHQ4cE1HbU13UjVlK1REajVEZ0RsMjJRZnMwejkxdnN3c1dFakNSQ0pVaWMyd2s1VlZQY3BqZEhIWEhRU3F2Y21lOHk4dHltTXo2bzNMQWp3V01GZnRyN3pZQ1B5MENYQVUvVGFXdHZ4VWlzTGEycG5kLzduUGxBNS81UlAvNEg2N05IZi9zMnE0VC8vVm5say84TncrdG52ampQOXozcnIzZEEwV2hoMFgwQ0dLM1c2YWpHWHFFUkhUSWdJTUdEZkxkWlJCK0NkZjg4b0draGdtb1pJUVRFT0d0VUJLY1FNRWN3UEtHZUNsbjZjalBFR1dnWmlOREIzRUp5WnpTQ2RZMUlwSkVwRitEeUVRNXBRY2kzVUQ0T29NQzlNbUZkbW5QS0kxNTQyYWR4QXZLWkVuN0p0aFZDL1lRQjJyeGd6enZQbHlKSGQwME8xYVh2U1BsUUEvbkl3dUgvdmYvcno4NDhHLy8wMC92aVJqKzFkLzVuY1ZmL2ZTbmh5Y1kyemdyUHZINXo2ZUlOd2N3Nnh3MzVkVU82cWRHZ0xQdXArcTBDcmRBQlA3Ny9mdlQvTVlMdzdseWNhbGNUL3Q3VWg1WnovbWRWUjdkV2RuNHJyb283eW1LOG03dmRlK3VDOXhUaTM2Z05yd3JDSWhrdERzREN5WXlBTFFENWVkMjRkUWlQTWpNQVNQQXRKQjBnM3huaUx5QUYrdUZBSFVhb24yZEZHKzAwSkJXcEVQWHVXR21uaU11bVZReC85cjJVUmZOUWxLSDlVNkFmb0QraVNTb0ppYVZSWW44ek4wdkpucDhNK0ViaUlEalFoYlIycjFMT2FnaEN4VjhkMlU0UElhOWM2dTI5OWNpZDQrTGRNZkp3M29BQUJBQVNVUkJWRTh1aS90TTdmNWM1M3ZTV044M1pneTcvWHk0VE90N1I5WGlVcHdWYnozOWRQY3BvRGorNElOQnhFTFBBaFR0ZmF0RlFHKzFBYmZqL2RFUjZLeC9xeWdMREdRTHkxcjRQbjY2UHlvWjczVG9uUTYvUzFUdmRwVjdCTGpIa2U0MjZBY3kvRjNFWVo3M05nVHNyZ05YRW5CS0FrMFRNbk1TbUU4STBDSDhwMUI1RlZGQ1pXcE5qaGJnbUZ5dmwxRktyWWFJbldZQ0ZJMCt5ejNxcDRqME5xS09neUhEdWsrT0g4U2REUW5hRWtuSk5SVU5oSDVCaENhRmJ4Z0VCSmt3NmhyaVZ4M1NJZmtPTXJCUU8xWXo3SEJ0OXE0YS9uNlM5TjBPM0F2b3ZTSjZQMk4yanlkNXJ6amV5YmVqd3puclhoNVZMS2VOYXQ2NlcxMWN2Smo2NTg2bFI5aUE3eHhUejF0eHEwV2dKZUJiN1luL21QRjJ1NHNKbTJrb1NaZW9zcDg0Q3ZnNzNYQW5JSGNKY0krSTNPMmlkNHRTT2o3Z2tIZVJuRWpBV0tWY01PNkFYYldFa0hJMEFhb04xN0dPaEFhYUUwQUVPdHQxUWlCQmppNnNBeTl4Y1lySUk4cUltWnlWWFowUFhlWWJ3WHFQTkNVbzBVZ0FFOUlGSFFFZ2NNUVZrclpGSVFINkt2UUpUQU5LSFFFSmR3b0lkNzNnRGxjNXZnN0xCN1dRZ0xrRHp1WWN1L0JOaWdRTTNNMUIzQ1BBZmNUOUFyNVppYitYdzN0bmRqc2lZbnZodXBRTG5mTlJyenNxeTJLdUtIUVYwTFVISDVUdzZ0cWl0YllUSXFBN3djbld4NThqQXU1eWZDMytUc05hNS9nZnIvVis5ZE8vTWZ5cnYvTmJpMy85djE1Yi90Vi9zcmJuK0IvLzNyNS8vWi84WndmLzhoLytaNGYvOWYvNjk0OTJkSGpNQm5yTVVrRlE4b3MxQTQ3eG5QTVlKYzk3Y1pRRWRBU3FoMXpUUVNUZHl4M3hpb3Nzc254QWRLbFhPaVE1VkNqeEdyZ3dEM0lVdVlacEVMSU5sa09hZjFFT1p6NUEwYVJEQnFqUFlURWxEWnd0QW1na3RpOTNkc09jVC9XZDlTRGN3WXJ3WTlJZVVVYUVuTUdaZnhWVXB3MkxNaGJ5UzhYRTNXL0pONVFZYTR4NWdkVXJqTWxlcExRZm1nNlNyQS9Yd05IYS9GZ1ZFQnl6UW85V0hUMDI3dXF4UE9nZEd5OFh4eTY5YmZIbytiZXZIcjY4ZC9IQS83cDNZZit2OHJ6NDMvZ3ZmM3ZscjM3dWR4YVA4d3orZ2M5OHB2OXJELzE2OS9qYVdnR2V6Nk85YnNvSXRBUjhVejVXNFBpREQ2Yk84RXAzY2VIaVhENDlYdHBJeGQ2NjN6ODgzc3J2ekNwM2FsWEZzY0s5cVN3ZUVQZGZxWlA5SlJMSXZUekRmTDhWeGJ1ejZ0c3F4Y0ZLc0h2c3RzZ3p6d0hiZFYyMWxLSVFLVXNnRldBZUxqcmRMUXE0SzVSTXBqTURDTEtkTU1JSzRUOHFnbFVzNXdkMHNobnI0WmtVNXF5bmlQcUFYSldPL0FSS085S0FYSWdBYUROa29FbXpYYVFEWURyS0dqRGRsRTMxNFdqOENGKzR3Mi84SWFteWpPNVNGL1FIbEt3VG4waEUvUVNPelBZVzVSeDN4Q0JpSVdWSExHbGl2TXFSVzNmVDg5d21kOGxiZ29PaklyMjk2cGJ2cWZxZDkxZTk4dTVxMEh2QWl1Nkg2MTduL25GcDkwclg3M0tlRjB1MyswN1A2U2hHMk5mSHh2TG1lR1VlcStqZGZmbzBQMDdRK1dZd2FLK2JLQUl4cTIraTRiUkRtVVVnZmpaMk9lV3VqanR6a05GUzRXbVBvVDdpVXJ6RFRlNTA5N3ZJa2ZlSzR3RjMrOHNrbkYveHBQZWErZ2RJSk8rdVNjQ213bS82c1ZvQmk5elZEVTIwNjRtc3k0L09VaFFJOG5GTmJDb3c4b094OHlDbStGMXRFTEdUcUp6bFFvQms1UzV3S3JFZWdVaXpNU2FOaFovU0NTUUhJVkRLVitHUlovdEdmeXJEWHVSRE92dG80QUJFV0VTQVlBb0JnelQ5c0E1VGVOVFQ0WGdUOEd6aVRDUEFDZ1FnYklvSkRMQXBPRGFhQXVLTkJ5bUI1T3NvQ3JGVXBNeTNwakc4TzNZZmpvR1ZlQlBMU1cvTEtiMm5MdkFCTCtRZVYza0FTVDhzU2U1M3hUM3M1aTVML2w0Z3Y4czFINFVXKzJyWXNuazlqMDMwNWc4YzRJRzZZM3JKVkxiaUpvaEFTOEEzd1VQOFVVUFlFOHQ0czk5VnErZEVpMTFaNnIwcWVoaUtkM0RCMzBtcXUwc0U5ekw5WVRqK011VmZjcEY3UmVYOXJ2SnVWeHlySVFjTnZrb3lhSGJBcHRKRFNnVjNmQ0pGN0lBVFFBSTI0UTZZeG94R01wM0o1QXB6UjNBWldFWWxUQ0FJMGpVcUJTTHRKc0ZrcE1LSmhNdDJXcGlPL0F6T0ExV252Umt3VFRmU2FRYThRb2Z0bkFEcm82MkhKQnJKOHFoenB6NWZacVE2a3o3VmN3Ykt0M1dGWThIcklEVE41Vk9Vem5oQU9xWHdqU3RsbFhJTWZzM0dIVERsQ3MrTEQrYUV0NU40MytPUzNtK1RMek1mZ09EREVMbWZJQUhMWFRUMlhoTzhFKzU4Y3I3UGdXVkhNWStNWG1kNEpUMzQ0SVBpemxLMDE4MFVBYzZnbTJrNE4vVllaRzF0OHZkMzcvN2NSOHRmNC9uZzMxaGJHeHpuZVdIOHp2U3ZmK1l6eTcvMjN6eTArdGYvMjgvdS83WC8rME9Ia3M0ZnNhWE8wV3ArZUxUcXAyTzVLSTVXU1k1bG1RSEhNcGdtU0t4SFRZUzdZeEt1NkY2bWR4TkwxbnpaSkFNU2NaZnRTb0k3UENRamE1Z0lPVU1Ra25rMElEOEVSMWdqaFE4am9CQ1N0SktrQlFvRW1ucVFhNFF2TEFJbEVZUXJsRFJNRXFhdUU2SGZRS2hMUkgwRGhVL0xhWTVHV0JlRXlUb25RTXhrcEsrR3NLN0pVNTlHNkFkTk8zZ0pvYXhWelB3VjV0RG9DWlU0WGdNYXNxYStzYzREd2s4QkhLT3JTZzJrMmxGUWRySmdrRVhtcytpU3FlNTJSY1QyZ0FrT0VVY3l3TGo3MFJyT1p4R1FZN1drb3hXZkVjbjhtSGVMb3pMb0hMWEJ3U05mZWR1dVEzL2puLzVmRHZ5YmYveUhlMytOejduNWZUSFBpMy8xbjM1NmVIeHRyWGRpYmExRFdjUWNBZWdVMm1zblJFQjNncE90andBWGxzUnZSenRYcm5TWExpd05jR1Z1WVRSZnJaVHIvUEtuTXo1U0ZSdnZpTi9zaXV0ZEx2YUFGL3BoNlhYdVE2ZjgwTGdzM2o4cWl2ZU1rOXhXSlQwNFRtbTFVbDJzaXpUZ1F1L3d2RmNKY1BmV3dFUXhBUWxIcHVCRElMR2dKcnRXWktDNmdhTTU3MlVkaXhHRUZIQVhCREdCZG9URWxDUkJ0WUJRQ2hRSVVBY0JwaHZpSlRzMTVUUWdFT3BNSUZlbEVVWm5lbGVYMDBaVUljcGMwTWdtSFMvc3Iya1RsZ1NORFJaSG41TTBvb3d2RXFXMEpFajBPUWc0SUtJUWxpSjhuY0tkVFd5Q1p0d3NpR09KeWM0ZjNMUmlFZ3NSWk1LSWtMUDRScnFtOFVyUUdZc01lRlN4TUlLc2pIbmtNeTd3dHFwVHZqdDN5dmQ1cjNPWDk3cjNvcHNleURrOVlPUHhQVkxaQjhqdWQyeFdlRWZYK29mTGw5UGV3V0N3YTZQYkhRTG9mV2w1dVl5NXduUjc3NEFJNkE3d3NYV1JFWGdFMEl0WHJwUXlsN3NwcHdGeVd2QmNybVROKzdsZFBLSWk3eERvblR4Yi9aQ0wvaEx6SHhZdDd2T2tIN0tVM3A4VmQ5UXAzY1pGZnlnbjJaMFRDVmhrV0t0Mm1BNENkdTdVU0JpS3JCUGlDS0o0RFFEVUpKc2czNGFFbVE3aUNSSWlKNUYwQUNOSkdTbkxnN1FJRmU0bVNiNUpDcWdrQ1BNek1oTUltalJpR2s3U0Vta1hZVGxQYWljeTBnMmlidGJHSi9vZUVqd3JGcDRkQi96cU5sTzdWN1ZwaU5kWTRJR0pEY1Rsd2dLQy9pbVI2S3NHUUorYkd0cWlEdjJndGpwTlRKQmRNc0c0QzJNaGpKZWJzSjdJYkdkMEorSnBLcFBZTWsveVpWcVVza1B5SlFITHdsakFMenY5WUMzeU5rdTQzWks4ejFYdjhwUjRMQVFlV2NndkNZOHZSUHo5NHJnRG50NGh1VDRpa3ZlT2ZjUWQ5bWc0UDRmZTV2bnpaY3dWT3RuZU95QUNuRlU3d012V1JWemVmMXBzZHlwUTlydUZXcDhmY2hkTXNGdFY5NWxwSEIrUWdPMU9pSDJJNGZvbGQ4UVo0MzJ1SkdEQkI3TG9lN0xnTmtzU2kzeVZwTEJBSWg0US9LaXNRY0RJR3NRUlJDRXdFc1VFc1J1T01xQ0dOd1FjNUZ0bFF4QnhkaUN6UXhJUzNJVWFtTW9KbVVtUVdPd29BMHdMRkt3QitBcnFiMHVtWitVaEEwMWQ2UDBra09nYVBiYjNuNlIzVlYzWURqVHRXQjUrZzVmUU55WDVYbzBvQzRCNjRTLzdjRGVPa2VDSEFFemdZRGhnRGtMQUtqRFdNTVl6TjNIa214b2xZODRZQytzRUZUdXBJWjFhWk1Bdk9SY0luaGRMZk9uNU5vUGV6dWYyUG9qZUJlQmVpRHlBK0xJVXVNZUJEN2o0ZXdUK0RoRWN6ckM5aGFaZE9XT3V6dWdOdS9FbjZqZ1FObXp2R3o4Q2V1TzdlRk43eUhWRTVsaWJuTzIrNDlkL3ZYczN6M1YvK1hmLzN2d0hQN3UyNis3Zi8vM2Q5LzdoNyswNy9sODlkS2lMZHh3WkQ1ZU9qT1lIUnpkN3cyTWIzZjZ4Y2FISHFrU29IS3VCWTl4RjhTd1J4MGdBeDF6a3FJc2U0dUk5SUZyc1JVcTdvV25Kb0F1c0d4aWs1eVFBeW1RaVFnbktoaHhDdmdxd25JQWdkSElqSXgrSU1wQWJwaEFCWXUzUEpIVVJjS0ZDQUx3b3FTTWVVMDhnVVJjNlB5UG8rOVNXNE9vMHdzN1ZOaU1kaVBLcndiS203Nm1jcE5uYUF4Ty9vb3dwK3FoUStpdmg5MnNRZlhOb3RPRnM1eUhaaHhNZ1FqckF1QVZrSWxrUWNUUkFNdUk4SGFVSnVpNHlJT2JCODJLbzhGbkpYbGZaejdKREJqbENuZmd0ZHZOc2EwZnp2Q3VlMzhmekh4ZHlyQnFVUjdjNm5hTmJpOFhoODBjV0R2MjEvK3NmSERqT3VmTXJELzMyNmdPZldWdSsrM2QrYS9IOW41NmNGeDlmVzV1Y0ZYUGVJWnhHZTcxVkVkQzNxdU8yWDhTWGFuTDh3UWRUL003elBNOTJGMWM2ODFwVUsxVk8rOHNLeDRxaXZyMUkrT0FZK1pkVU83OXN2YzREbzE3di9zMUI5Nzd4c0hmWHVOZDU3MmFSM3IxWnltMWJDWWY0Y1haMURINmNkZlF5K0hsY1ZFbStxbHBJMGdKSkVsUUtoeXVjSzlxTnhPRENYUnNsSDRoeE1iSm9RaFF5TFd2S0oya0hDNFhnYmxZQ29oQUNVR29KbW4rc1o2ZFFTcG9EUDVvamMzc1dpSFFZbitncDlaWHRDUG9BSXZTdmxwRytHbEUvUTVSSG12WUV0TlQ0TnJNUmVhWkRwd0h6alh4TkdmdGx1Y3pRMUFHZUF3YmpsdGFiTFMydHMwNUFFaVlTWXppRElrRWpuaEEySWtJU29Rc29tc3Y1U2p0aHF3SHo3bndFRVdoV29kR1h5U3RqS1EwU2k1TXdUU09xZkZRRmQ5TGRMQmlPM1pjcStKNlIrS0dSNGpidXBOL0RNLzRQVkttNEovYzc5K1RFWXljVTk5ZGk5K2F5ODRHc25mZFVLTjRocVgrNFU2L3YzZHhWTGxiOWpYNzgvL3p1M244Nm5YajRJNXdNSENEYTY2MklBQi93VzlGdDJ5ZTRDT09zYmhYUXpuQllESFB1cHRTZjUzWnJ4VkhzRjAzSFJQeDJrdVVIeFhHL3dYL1pWQjVBU3ZkN0t1N05LWDBvRi9wZTdvRGVYYW0ramNUYkVIRGxXT0N4UURjN21ZRkdSRW0rcVVUU0Vpb0ZCUEhJZVdZS29RZnFKQVVoTVU0QWtNOElJU0k5azVFTzRtQWVvcndEcVpFUUZqWmdXZFFGVW5MUjVLeHpma1IzbnBFMllEOHhiUFpNWFV3QXNQMlBBQnZqOVpqcHpzb2pIMms2elhjUkdvbU14Tml1d3RYNTRKa0FWUkdTa0cyZ0diU1RMQzNUVFFZY0dlQkhBMm9MdlZVb3g5YVFyL0xOakZCSnJJdHh4RmlWbG9qd2dSQWkvS0p3QnRyNVprY0U4VTRBQjhBV1FndlN2RmNtVjlxWEdaUzhDRlUrODJTaUtUdTZmTFp6dFdCcERPeXB4QThTdDlYcTd6SEZCL21sNjkwT3VkZVQzQWZJL1FLOWwwLzNBNkw1RG9XOUE0NGoxc0dlUE5yY3BmMWR2VHc2VXN5L2NDQjkvOEtTNHNFSEJlMzFsa1JBMzVKZTIwNFJrLzd5NmRQeTNNV0xxVHNhcGFMdlhjazJ6OUNzY01IdUp6MGVnK0Iycm93UHNPeVh5SEcvRE1nREpuSS96M0h2dGFRZnl0RDNtY3E3dVNodjQvSER3UnJOZnpTeFVJbDBheEV1M0tTUXBKcEtLVklKblJLd09LMmFnS1FBOWdWeURybkNDVXdoWURWaWt6YURBMXpEYktjQ2lkMnZLcGlZQUFJRVJNQTZFa2tRazBRREJLSFYzQUhYTlZrdFNJMTlDM1ZGRklJSjRBcG5PWWlaalBTUHdxdytwTk1DaUczSjl0RW02a0kyZGRPeUp0K1FzZEF2Z3Uza0trUjlrQzBIN1I2NzM1ck84b2JUQ20xb0FJa2VKeVRHTWFEYkJFeExyS2ZteENMSEJwRkpQd3hnRTJjR21YNU5TSmcyM2VNRnZNUkZoT29FMzdTRVBjakVMcE1xRGswR2NBZU0yQUVINUxFNUFBQVFBRWxFUVZUUDhUMWhLY1AyWlBnaDR1MVo1RDBtOGdGWHZkdFY3Z1hrUGhmY1QvdjN1dm9IMk0xN1hOTGJUZVN3bXUxRldTemF4cWh2T1JkODQwOTdSbDFkUTN1OVZSSFF0NnJqbTc3ZnRjbTU3cTg5OUZEM2IvQmM5Mi8rN3UvT0gvL3MycTUvNDdkL2UrVlhQLzNwUFgrdDM5ODMvN2EzSFN5UDdUOVV2ZVBJVVZ2WmYxUVdGbzdxWUhoVWU3MmoxaW1QY2FkN2xBdm5HQmZac1F3NVNzbXpRRGxzb2dlSi9TVGhQZnhpWjdjblhYSk5DMWwwUUwwdXVhTWdoeWpYdkJyaUVRdDhLaVdrUjFrZ3lnUGtDa3dseWNDRitVWk95ekRKSThvUVpWUmdHa3hQZ09rMUxZODZtWkNxa3dHQ2hCczQxV2hjNkVNQWxOaTJFZjc4WkV6R1FMdE5PMHFPdzRtSm5XZ3J3TFk5cHRuWEQrV2JNb1dFREZCZmFFOG93WHlRWmV6VUF3aC9qVFVzbitrMGtubGNCV2M2RUdVVEh3VUllOXZBNUFwN1VSYVNiUkRwd0N3OWt5eHpncDhleEdnNG0ydHRuaWc3L0NLMFZ3UEREUEJMV0ZtQzZtNGszZWNxQjF6MVlHNittUE9qMUduT2k0MmZwTHpVWXg3enFkTTlKcDNlc2ZIYy9MSFJRdS9vdUNlSHM3enJ3UCs2c0xBLzV1Uy96Ymw1NG5kK1ovSEUydHJjaWVadlVUelUvZWpuUGxlZWFQOStNZDZzUzk4c3c3ZTYzZVBndDEzOWZqK2ZQNytZaTJKMUsyOGVMRGZLWTR6THU3S043NndMK1dEdUorNWEwdjNhN1gwWWcrNEQydS9lcmYzQisyVFlmN2VRaEhOWjdxdFMybFVKZW1OdXQ3akxUU1JjeVpxRUN3dXVpYjNFMzJNSUpLNS9oYkVETGxSd3dhTG01MWJ1UGlWa1p0cTR3SjJBS0dRRzVkNU9CUGlSVVBLQVR1b2dZQ1pBVG5XUUhHQk9TZkRHQkxRVDlnUFVaME9Xc3gxSnpLUE1vcEE2RGVFcE0wSWlWSUFwUlAwVW9mdWpFRHBSSHZyaFM4aEFsRTN5WWV1MUVIOXRIdXdiMFEvN2xBWUtFYVlZRC9EaTRDUkl1RUVPUmRaQldFUEVPQXlJc1h0MnVBVkFTWGlBT3BTTi9hWmY1aUc4RWwrakh3Sk5HVjlEMGl4VDhScHRuRzJkWGRKczAwZThDY1N6cTdQeFdScml1VExaUEdNVHhwV2ZRdmptQy9DTEFoVHhuMEpycWhYbEdONGRpdzNISWt0Vm9YdnFzblBJdTUzYnZEZDRqM1g2SDVSdTUvNjZvdzlZMmJtdlR2bWVRdlV1VlgzZlZyZjd6bEZLUjBmZDdyNHJsNnFWSHVmdW1SZGVHT0s1NXpyeEcvVGovTDVpYlcwdEhBK2d2WDd4Q09ndmJxSzFNSTNBYTBSL2VUbHRiVzcyT3lrdGl0bHU1SFJBUkk0aDRWMWNZKytGMkFkRjlCNm8zTSt5RDB1aEQ2QW83a2FuODE0dWtIZUJPeFlyMHI1YWRkY1kwaHM3aXBvTkt1anNKMk93Uk5JbGtBcUEwa1NSWGNCdnlibGdIVFdab3M2VXRVbk9SamNBaDBLb0IwbEFJeFhRNUV6L0NBaDFBZ29YTG5oRWV5RUJURGlLRFNaODVlS1JCaWlaUU1EUUtJYnlOa2hLRWhCbDVRUnNBMkRTdjhjUndVL0FkajM0eGhDZzdtdktJaDk5dnc1Q1g3YkJka0pnQXZvaFJQZ2lBRk53anRHY3NYSU9Cc3dFV08rc0R4aUx6QkhrYUJtTmJNaWFkUXdDdkpIVURWdlRjUUlpQWlWNE05YkNOejBFd2dkajBCcXd2NURNMGdhNVhScU9KK2w2eFplS0hkYU1OcnRrZDNTTjdUbDJnTTg5NENueGpWbFRGaTByb0RzR2hsV1NYYldtdlY0V2g3eFR2dDJMNGoyY1p4OTAxZnNCempjNGp5cmtIbjdYY0pkSy9DMEt2TXVBbzVabFgxbld5N25iWFREMEI5V2xTMTBzTEtRKzUvUWpiQWhua05CZTF5SUNlaTJNdERaK09BTEYrZk9wS0hpeTY3N2dJcXVxZXNCZ3grRDJMazdmOTNJVjNTWEEzUUlTc09pSElmcExrdlJEWEpqdkl4Ry9tempxU2ZkbGxja09XSkFxMFZRbjVVSVRNVTBJZUVPK0pHRGxMbGdVR1VMaWRjSWFFczVCd0VSSXJtRngxZ01KUXQwQSt3VkUzaGdnaUxYWHdFRHl3YXQ1bjZTRHdHZ01vTzRNN3JRL0E1UTFFNEJwQ01tWEpaaldoKzZQdzdhOTBDZEM3K295ZDBWak0reitKTEF2WWIyUXNOSEVRUUFoRU9NVGpzdkI1d052eGlRc0ZRNk90cHM4azR5bkVXNFRQUXBNOUVPUFlBc2E1Q3ZiTlBZVlFnbjJJWWgvekRkU0VKY3o3ZlRKbmJZSlk5b280NW5WMmZnY2lacmdHMnI4bDRlWmpZeTJQQ1gzcEVEQloxL0VEbGhTN0lENTVWeTNnZzhyeUpJbDJjTTM2a09jSjdjaDZYdGNFOS80WTg1SnpMbjd5UGYzT09RdWlMeVh0UDVPRHY0b1ZQYWh4b3BaV2tEWEJqSWNka1pWVmN6VnRhNmkvZnZGRFA4MXUvV2FXYnI1RGNuYTJwckdlZGpkSC8xb2VYeHRyVWZNSGVlNTdxLzg5bSt2SHYrOTM5djMxLzdnZHcvOFcvL2tueHo4MWYvbUR3K1A5cThjeVlQQmtkR2dlM1Nya0dQakpNZXNLSTdsb2p4cXFUem1SVUdwZ1NOY1RFZklaNGVKQXk2eXh5QXJ4QzRUSGJwSXowVUxndHMrNFJvUk1SSU5GdzI0RmhwSXM3ampVVTRSOVZPWUN6d0E3bUxCZEVBbzJTWnN1RThXUFFVQ05OaklTRHQxUWQyQVFGZ1ZvTDQ1NHZpQkd6TGFabkhjN0FQYk9xRVhBQzlocVRRU1RDR3UwSDA5bXJxcjlWNU5oeDhOMkNZa3FMc3R0OHRpN0d6RGZOUy9CbEYyTmRoK01zalE1M2d3dVp3aUFOYlBaS1JuY05wd0E4ZU9adHdNUXlPZHl0NjBZVnhmSjdmYlJoeWJ1a25iV2V4ZWF5UHE2Qk40T2RPTmZ0aU1OTXVZQjUrYjhNMDNKQ1RxQkhTSlBqbm5CWlFFbmZqZVVHUklhZnprWk0wY0lwR0tMbkVPcmJySVB1TjNDQTdoK2E5dzNnbS9aMEI4eDNDc2p0K1RjMTVtenRkUnJ6aFdGM3BzdmVnZXU1alNzWE5sZWVRc3VnZGZtbC9kK3krR2UzZi9wWC84ajVmdWYraWhoVHZXL25EdWdjOThwditPWDMrb2UvZEhlVjU4NHZPSlFaa09Jbnh1OFpNaUVMUDJKOVh2bUxvMzIxR1NyM3dlS0w3LzlOUGQ0c0NCZmhxUEY5SEZQdHZTdDVWcTd5blVQaUJlM2wyTDNaK1FQcHhTOGVHNmwrNnR5dUtEVmFkeng3Z3MzMW1WNWJHNlV4N2dGMnk3YzFrdWtvaUhYQXhkTHBURUJRTXVITlIxRmdKMTVuZmMyVVJjb0Z4MHRBbmxQM0dBcXczYzZsSkdtbk9kWkNzQjdteFZFcFFMVkxYWWxzSThXTzRCRnpHWHhvVFIxamFZNEFZTDNDVWpTQ1pJaGRaNUMwUVVRZ0NDS0ErQWJSc2dMdUZMZ0lMbDIvWFVsNEFLdEdtUHBuMzBFUVFlNEM1U3dNdXA5NlBBMkxBYjlqdXJwKzlYNnlIS1oyV3M0TTArcU04eXpFQ2Q3YlN4TU80R1RsM0NmREp1eCtTaXYwSkF3clhYd2pHeDdkRSswZ1NvRitYZ0MrOFFVM0M4dE9nQlp4OVRaQWFZcHdwODNwTXl4Z0IwZ2I2RWJiQkRCWVJQVzJjb2tQaEpKNlVTUlNPWjUvT0ZpOUFVY3V5TzY0eWNEWmJacDRFdkFacnlDUnpLUGdSbUlwbGQxT3lBUjFYeGE1bEJKYkpRSlYzaGVmR0JVWkhlTmlyTGQzTyt2bStya3o0MEx2VytjU29mUU9vOFVKVjJkeTc4ZlNqejdWVlYzV1oxZmJnL1dOKzdzWUhseFpYeFBKWXVESjQ3OUZ6bnhFY2U1Z0RZZjN2LzFBaTBnZnFwSVpvb1BIWEhIZElIaXY3V1ZyZS92ajRZZFh5UksyaGZjbm1iUU45akxoL2tndUNYYW42ZlFEN3NxZzhROTNoS0g2aUxkRWVWMGp2ck1oM2xMdmlBbGVWdUs0dEZLM1JvbWpvbXFtd1ByaVBDVWRVazRTcUxHYmlRaExTYWtDVHh4SkNXamNnQXpBbEFuSG1DU3hWQmNvcUVKRVVEcFZRdEVKQWdZU2djWElUTzNaSzVCT0diMHd4ZkdsTGNsc2FGSGFCaGg3QUhBZ0lRekpNd3hETWRRVnpDUW9JYWZJMENzSk80V1E2SUNQdG5sRlJkUkNaMVR1SmhYeFRVYzRROWpvZU9jVGgyRmFLdkg0V1p6dFYxVWVaaC8xWDQ2L0xzalAyejNsaEJSTC9lZEU4WFdNTWtXQU5RQmFLVVRJaXdUTjNKZFEyWTR1NVYrT1loZm5YLzFIS3F2d2FnMGF2aDREQWRFZXZNeGlFYk1FMmJZRFcxbTV1OWlnajRSRVVsYVlBelFDY29LSlhsUWtlamZlYWJkYTVKd0p4QUhCUGNoYWJvTTUxeG56eHpsdEcrd2xpV0dTc2kzdlE3TlhSUXFTeU1GYnU1QXo2WVZkK1drOTdPZWZxK1hPaGRuTVAzWnZFUG04b3ZzZTNkUElkK1A1dS8yMTF2QTlKaEFmWVZObDRXVkF2YTEvNjRNKzU4ZitrQ2c0ZjJlZ01SYUFQMUJvSVVLdC8vMHo4bGxhRW9jdTV5OGZWVExoYmhQQ3VESERQSEhTcjRBQkkrSkFaK3dZRVBzODBEMEhRUEorNEhpVHVKZC9FTGttTThqenRnUmJIYkMrNkF0U0FCYTVmbG10a2dGbVhObFZGek1ZV01jMFp3d1NqSnR5QVVTbmJpbExkUUprSVN3a1VXVURvUXVubzE4YktkTUE5S2lNSnB3MmpUdUVTNWVJWEFCQk55NEFJV2dtVzAzOXdDa1FEN2pqemJOV1FSMHB3MUFHc2JSQW91QU9zYVJLbE1pRmVFNVV3NzZ5YjlPYUtmeUR2MUpnQXY2czN5dERVcEY1cjdFWmpXZy9wb3Jxa095ekdGVHlXY0NrMzZhb2xtbk1aM3VzWVhScGUxQUgwVlBsQVJCZmpHd1FJQUFoQWVvSjFHQWpRNzZSTlJmaFdhUEpzNFFvZGdndk1HZ1hqTzBhZHgrK3BOK2FRKzBrNGJDSWhDVk5GOG1ra0phYmJ6YldTSnBBVUFQazhIYWhKdnpKbG1CMnh3bXVXTFJEMkRMRXlIbnJKdjRRY25hV1RzZ0RPa1V3c0d4RUl0dXBKRkR2QTdCeEt3M0U3NVBvUGVaYXIzdW5BekFYK0FCdThXa2ZkQjh1MEt1WTJHRDR2clhoRmZxV0VMamp4QXZ5Z3Zka2RLM2ZaK0F4RzROb0Y2QXgzZGdDcHk0c1NKZEh4dHJUaXgxdnd0MWQ2di9zWnZEUC9tNy83dS9QOTI3Yk83NGplUi8vYW5QNzNuZi9mWnorNy90WWNlT3JUbkhlODRNdC9ySFpYNSthTzJ1SGlVM3hBZnM2TGtqbFpKcW5LTUUvVVlKelNCWTF4Z3gycjNveGwraUR1S2ZhWnAxWkl1VzBxTHpNOFRBMDcybm9tV0dab01RdDZXWm1Fd3pYa3REZUJjUklRUWtRNDVBMHdnZ2FneklPb0Q0Z3JXVEJGcEJVUUEwR1lEcWdMc0MzREtDYUora21sSVlGSklINjRxWXhMUkY2WFF6Z3lUTW1FcDc5ZTFRK1FiWFlXSVVpSDA2QWZ0UkQrTjI1Rm1EY0R5cXpETEEwb3pQNHdvYjNTYTlyTzJtQXpxVlRISlQvMEE3VStBNWdvZlFpR2s4NlZSbzQ2SUFBM0FpN1pad1dyR2crWHNyNm1qWHdnMGV2U1A0M05Jb3c5S0I2L1FwZUFBb3B0SVVZWk9KRVBTTm5YeE92alZlZHJGcko5WnVkTU1FWGFEYk1GQU5qTDZJNFQ2TVU5QWZTZG0wbGtYNER4bEV4SE93Wmg3WlJidGNvUEFPYW56V2JCa29ydVozMHZzNXhRNzZDS0hpU09zTzlvQWV0VGd4MFQwbUJUcG1QYTdSN3U5enRGaVdCd3BCM2JreUdFYyt0Yy84NW1EL3lhL0YvbFZycUcvOGZ0cnUvODMvOFhmWC9xYnYvdjM1azk4NWhQOTVyZkZYSHM4MW1QZ1hIQUxYM3FyanAza3ExZjI3U3RXZ2Q3RzF0WndzTDYrYXpBM3QrbzVINVRlNkdpZHV1K3NVYnkzUnZxUW1qMkFUdWVYdGRONUFQMysvYWxiM2llZDRvTmVscmQ3MlRucW5jNmVPaFc3YXBINXNhQy81ZFlad1JPL2hkWU0wVnBWTW5jeG1ic3E1c0d6dDIxa1BvQU00WUxnWEpRRTRXNVZ1THZSa0xINE9EL051SkhoZWNGc2tRbkxCUHhIeVlZSU5vMGRISTlFbXZTa0RJaXlobGlpdmRPR3M0eUloY3R1dzBJREZkcWFvU21ScUtZeWFOb1IvUWRvZ3VVQ29WK2lDcUZzQ2hxYmdxZ1BJUG96TUM5Tk5UQ1ZEdUhON3FrN0xZczh3TEZQODZFYlpZRW1IV084cWk3S1pwanBZS1pEdVYwV2JaaWY2VTRrZU1rRVRkM0VSMmRKZ0FKUWRVUXNRQjlGR0Q2T240TzZldnhVZ3NoMC9KU0FBQUcyWTJNNHBuYVppR2ZXZ0dtd1QzRVI1WE51QU4xT0M4c0FaY3NBKzZZK3d3aHV6aHRrUHYvNFZCUzdYUjVSb2VheFEvakVCcUFWSkUxSW9reUxSSjZ2REhZNEZMWUM5QW5DcVNId3FUUW9UQ2ZJb3VER29FR3RncHBOTStzQ2xvVGxVakJOa3NaU0xkaVhSWTVZcWJkSldkeGVkRHJ2TC91OXV6cGw5KzVPdDNzUHo0anZFN043YTlXNzFNYnY4eTIvSFZWNUc4YWRBMWN1bFN0blh2am1FSWNPZGI1MDdseDUvTUVIMDNTaXhGQnVPZWd0TitMcFNtZkp2QUFBRUFCSlJFRlVnTS9lZWFmTXJheVVWODZkNnhmajhWd3FpbDJjWUt2SWNxQUdqcEV5MytWcTczV3h1MFgxbHlEeXk2N3lnS1IwdjZkMEg0cjBRUy9TN2FZODEwMXBqeFZwVjYxcGJ1em9qdzNsT0hzeEJsS3RLdFFSRTFxa2tab2Z3MnN1alFEWEZEbFRZSmdBd3NmQmhhUkJ3SlJzRHJqQU14Q0xMUll5RFZHYkN3M1VkUTZHaUhJYVFrTzRYTFh1SUhFRW1KamtFVHFUUW9CTjJIQnlpd2hFQk1xKytZcnRpMHBORzdabjM3T21vRFlrZEFOUVJKNEd4VE1kSmR5RnVoT0E0MndHNTFSemRrTEJNb0N5S2ZveE11b0RvUk1TemhqOENEUjF0QUVSWjVvQUwrcENHb21ycExEOUJDeGxHczBWZWswQ2s4WUNFVUtUSTRpWWVoeCtFM3ZHQUU0bEIrc2xRUWhJakYrQjBPZHpoYkJkU0pERU9mWkczeG52SmhIOUNFU1VVV08wSllsS0FhWWdvcEFwZ1BCZjNXbkhUYmI3RGlMT2NUeEY0bTBJbU1kVUZvWDBNV3drU1ZET21VaEhMeHlyaEMyaHZSZ2NEVzc3NzJHYk1JN1I2THVsNUFIT2Z4S3RjZ2tRR3BCSnZrbHJNcEdCcVM1bEVyQXBEa1BrN1VqcGRxNko5eWszSkpSM3E4aTlBSS9oNHVnQ2RoZmRlNjlKdXAwRHZZMmhPTWl2RVpmclNvYm9kRHE3dTkyaWYrNWNXbnZ3UVdHYm5Yci9RbjdyTDlSNkJ6Zm16bGU1OHkwN1pkbXJ6ZVk0MDNaeHA3c3FhZ2M0RzQ1eEJiNVRSTzdrckkyL3Ivc0EweDhXeUFNUS9KSndja0gwTG1oNnQ2c2U5VlRzeVpwMjhkdmtlUkpyZit6ZUdYbnNnSkVxS21kVnlWd2NXVG1wUlZBemJqeWlvQlR5RnBBNU05a2ZYQlFpQ1pxNE1FbkNJb3BZT0dZazBsQXlOcVF1RnhlWE43MXhBUW1PWUgzb0JKaHN5cWpIdGlSRFZqZmxVUURhb3dLVDdJekdCSk4vT3BXVFhGTkgyOUhZcVI3OUI5ak1RZjg1Sk1SQ2p6UWdOSW9HMUozSThMTkIxQkZRS2t3a0RTQUF0dk5wZWVSL0ZFSW5FSFVoZndqMEVhTHNWaVkybWNiMkZmMEpleEg2UkRUbElRT1JvWFJXTVVrRGZHV2VyM0dMQ0VRa2tvZzN0Umk3VVlsaFpKbXdUaUY4bHNKbkJXMUlGeXdBSURSSVgraVhFeUFSdTdGb2luaHViQWxsdTBSTUNETkJtQllrVUIrMHc3QUxvaS9qVXpZREFwblBQeEJudlhWZG95WVJoMS9ncGFKSW5GK05UVW0wcncwRUNrQVF2bmd6VnFacDA2Tk1tQ2FNYlFPWjdSc1NaajZyY0RrRU9GK2J0TUpVRXN1YkhiQ0o3Q1dPdU9yYlJlUjJUZm8rNFhxUUpCOFMxWHRZZGgrN3VWZUFENHJyZTluVDdYRGN4dkVmZ0dDbExHVUkzZWhzcFZUTUZZVSs5ZFJUVk1VdGVjVVR1aVVISG9QdWlLaDBPcW1RYmlFbE9pNHlGTU1pRjgweWVXZVZrMmF2QS92aGZwRDY4YmQxRDdKSkEyamFCNTZWdWFiRkxEb2tlZ2J0Y0xOYTFvNWtyTXdRbWlORTRhcmt4WUJRRXY1cTJqRkpoMlF6ZHBVQUlWaU9nQXRkRUFDQmVHVEtsQUo4QmV2Z0FIMEdEYU5KYzdVRmNZQXl3UDBvbW90NndqYlNaREJOU1NPdmZzWFVaa2lmcHAxdEl6OXBKUlRLZHNyK21HYUtCVTA2L0FqZGJjenFLSjBJUFFkVnQ4R3hUY3ZSU0RTWE16MERtRzc2Ym54aGZ5RloxdFJQMDZIVDVGbmVwSDNhQnlXYWkrMGErZHFYcHJSNVlia3dFV2hzVE51em1JellrT0RFRkhXYWVvNDlKSjh0S1AwcVJENzhqUmlFbkQyWEprMS9sUkRxU3lPVlhLVkE1SnRuUFVrM3VpeUxPVEd6M1pBeTI1Q0xKLzR3SFhyQ2RvMDk2amR5V2c1ZTNxUWp3VGhIbWpvVGU4cW1DaElwOFZySnVZeEExRG5INTR3SlFiZWxaTnNlcmMwNXdDK2hmUm1xdTBGQ0ZwSDlBaHdrRGdIQ0wrZmtrRUQyTTRwN2FHTlpvSXY4Ym1RZXdNQnkyZDNjS2pxMVhpbDZLV2w4R21YNUxYbkgwNzRsQng2RExyYTJuRHRSNHlUS0NZV0J1eERqMjdtcUZuQXRPSG5WdVR3SXpoM095WVpMMVZRVG01QWdSY0c2WmpIRUxpVVdpTHZTZEpTSHBBNUNNdCtVSitwSEdURWhXQUg3ZE9vRUVKSjY3SmU4eVFYRGZKU0IvUWd4U1F0RWhIM013Q251elBMbW13YUNlSjNPK0RZVGd2cVlXV3FrdUZBS1J3WTA3eEFRSUdCOFlSMmRSUGlBU1pxVmt6RXdUeTRYR011ZGZRWkFTNkRQcktNak1nVkYxSWU1bVdRNituREtiWVFkWEswclRiL09jbmlVUjM0bUkvMWFnSG9lOWtJRzZIKzBiY0J5T0kzSFRlbEVrOStXa1loS1VGTWdFcGlsQVJZQUVJRHdzRTJKcVhTbUorQnpqVDRqQmdIV2gzN29iVXNIQnlDTWN3Q05oRkZtQUNZTmhESUE3cGdKVmtTOE9VZkNaangzemhVUHlYblhTT2JCdkl0UWR4S1Q2Tk9OZWRwMjl1bnh3alNhTkhXb09ibHBtMjNCdG80b1Z4amxObmdzTVNtUHVrQzBvbDNxTktsSU1oMUNSQkFUUW1RcW5kdGw1NFFHQ3FHa0N3b2VTUkVaM3F3ZnVxWGlsUlFkSFJlbyt1bWljbWNTaG45TzdQUm11dE1IOEl2NHY5SHRlc2ZkZUtiTDB6V3hzQ1dJVlVEeUZTdVpuOFRIaGNkZXdvMnRtdkNjVDZKYWtnQ2NUQ3poUjBHeHpKbVdPUitqT1FwSEEzNDh4UlJzaDBCTTBtZ0g0UnlOK1VsQW02N2NtWGJoZ2xEM3hnNzVud3VpNmEvcFV5RlRYWWdBdUFyc2tZMUlZS1JoSnB4Z2hocTBCTENWUUFYTUF3cUVvMHpMQkFiaDZJV0xwQ0VFMEljRzFCUUNyS2FtVUFLZ0d1dWRpSFRvQ2NzQ2thY2JDQ0tJZW1mR1dUY3A1OWdBK0ErQjlxZ3owWTE2NW5tVTRBUm1NZmd4MGxudXhxRUVuSkoyUURoNDhjVWo3YlJKZ0IzTVlzSVMxbENudVFWTlpoYlBtWndVYnZzYkNXZVpjOXpzamxuNkdma0FLenpBV0ZGTTZxZ25NeGo3TUhaRHlUaERNb0JwR2l4SHVNNnhnR1dJTnJTRGhpUkp3c0kzN1duYXI1TE9jbERQQ1VwdndGZkdnN2JSZ0Q2aHljL3NNNlpVYVJ4M0NOM2pNeEZtQ1lOZ0c1eHovTVRHNlRpWmYyQWViQ3ZVQVNFQ1hzM0xSTHBMWEVDMFFpSXBGNndvcUJIRkx1Q0lSYkp3aVZnZEE2MEtVeTJrcmxOWFJOOTErclJRLzVhOFl5M2VrZ05mT3IzZnk2MmUxL3hFMU5VaXA1STc0SlFnR3JNdHlGZGpFcEVKT1ozZ1FkQ1pjNFZJbkdXaGx4ZzNUbUJ3NHBxQUNqQk9OZmNvaTdEK01Cd3NrNmlQdGtTemlDaFpIblZjRkRCTzlKQ2MwNGd5c0k1T29jSHN2SkY5c2dBSTZRQVY0WTJja0s5eDFUbDN3VkVockE1TXlGZG9iUUpoV3k0SXJnYW0vRldBYVRxQkJwSG1lS0lGMkRMOGFjYkh2cHgxQWRCT0ErbzFiWnR5TlA0MDlaR2Y2ampsTnB3NklHWnlWaWN5NVVrQnEyaUhrb213OVZxd0xkdWdzYytZaG16QThwQ3M4Mms3ZHNQQzVoVXMyazRMaTRRdlFsMXAwdkhhSlBneVU0c3kra0Nkc0dlTlpIN1dSeE1YNWtONlZQSVpVNEQxRFRnMzRJQ0VOQUNab0pTUUJKK0JON0dPZXNaUUNBUm9Ed0hPRjNDZU9IZS9FMG43eklQbEh2VjhncUI5UG5JYUZwK2xtN3l4Q0xONGNqemhVL2pHdGsxN1p5WHpGaEJCU0JZMWNwYU92RGRtQk9EY0ZPbzJFR1lqUFpNT1laTE9PWGNtVXFnSEViT284UWpab2RsY25jdUxIYVZrb3NWbUo2Y051YVFYRGh4Z1U5eVNGd04yUzQ0YmYzSGdCYmRPUHlkRG5WTlZHV1JMUEswekdwY0JmVVdBY3c2Y29YeUI4am5LWitGNEhvTFRJdktpUUZnbkw3UHNBbWZzUmNvcm5QNmJURmRpenZkNmF2Z0VDTWtGSnBSTk9pUU5nWVlEempSYk5HU0RxQ09pakw1c2w4M3EzV01oVFFDbXdjVWtoUEtUWEVnUjlnbGgweG5BWEtRcFE1OElHMDNiYVRyeXpqNHhROU5DQWJ3ZXdySUp2R25MOUZWdHdIWmdHNkUvUWdrSVBFQWRCMzJPTk1Fa25INkNhU2RtTXRMdTB6WXNqM1RVVVJrL2RGRXZ5cHMyckF5SmFFT0VoSU9YRU95WHVoN2xsSk55RmpzUjkwd3k3VXkvaW1nN0ErUEFNU0ZBTzA0WWJVMHd0ZTlUeVRxd0RpRUpZUngwQ2lHeFNwUkZQZlhSU0dGRGd1VWdmQXBRMTlsdWxtOWswMytpV3ZpVHFFazUxUWxiUHJVbnJBbFFjWnFLbkFETXdjSCtlRGVTc1c3a3BJeXZ6UzBzQzNEeWVjeGxrcW1wZWVadXBCYkJtSlpHNnJJaDdwZG83eHp6TDdISmFWbzdEY2p6cFB6bkFaeG1HZGVKbm9Gem5aaTlvaUtYdVRIWU5OVUtsZVlTZlJ2NGdpMmREbFcydUFYdmVJSzM0TENCMVR2dThHN0Y3OHRxakgxVWJpcjBFdWZZV1FlZWMvaDNPWm1mNW1UN3VrTytLaUpmZHNlWGlNZTR6WDNjY3Y2YW16M3BscjhOcys5eC8vVnNjbnVKRSs4VmRkdFVRNjNjZ1Fia0t0bWszVG1wRGNJdHM1Z0RNempURGZnNG1BVFJaQ25KNTFRekdHMWx0cHZBcVNJUUxzcVVDaVJDdVdsbm51NG1DQWtaTGlLSVIwdzRsMGNEd05tbnZRWlJSckFlb0UyMkVkcVZiWmxZR1RZNFV1bzRRZHZ3eGpmQW1IY0NvUThSNVc0dHdKU0FIbENOT2tCSVFBQW9YN1dSYU9ycEc0UjV3aU5CR1dJRzZtQ1duc2tvK3lGZDhHSmJwd2k5bVl4czVHZWdyODUwK014WVNPd1dqYnRSSGlPQmVjd2txQ2YwTmNhaWtyaGRqRTdwcTNNc0FadElQaGFFcmRBUDZXd0RRcHlVd3poRzI0a05aYThUTlBYTXdTYzI0VXBqc2cyZjJnL2JGbW1DdXBDWnZmQ0hBQ1p0bkZJQ3JCZWk2WlAxVGI5OEhsRVc5WEFnbnIxekh0RnB6a1ZhWUprRzJCSG5McFNkS3ljZE55ZWVISmxwd3Fya3ZzWER0U3Y4YUhpUjZaZUpaeG04N3pCbVg2ZDhuQ2ErRFBnWElmSm54S1BFVngzMkZQRmQ5bldLVS84RmR2NXlBaTZpTERlNlZiVjFNZWY2THc0Y1lGUGNraGVmK2kwNWJ0ejU5Tk9PeFV1NWxJVlIxdjVtR3ZsbFRyaXpuSkhQUXRKM1JmQk5jM21TOGduTDlwaUxmOGx6L29ybC9GV3Y2aWVJSjdsMy9wWmEvbjV5ZTVhVDZrVk8zQXRxdnNHeXJKbW5GVnc5U3NnVVRab1RYOXhwamt2Qk9PK2NZRDJhZER3TDVrTUVtS1FxekV3c201QjR5ZHZ1dFRubnZQT2lVaXcySHAya0lHQktuWkV3VklSMUlCd2tqWUJ6ZVJoZ1RnK01TOEpDQnBpT01pNDk2cE1TMGhUS1ZzcE9kRnZDSmZMMG1xTmxtZ2xZWTVQRjFCSko3RG1KOHArSXNqQklHK3dnRUcwSkNiQXVKQ2pCUE9FRUFwRjRQWnFLcUp3aTZwc2tlRTNhSS9MMENkTFFDVFd1bHVKb3J1aVBDRDJXQlBrNll6dUQxU1lOTWdOaU5PakNVY1JvVklSanc1UW9tM2F6OXFSbXA3cFQ4aE9RTkdCR21wWUpEUW15clJKUkJranpEN094c3c5UW56ZmpKRVRFQ2pBSG9wK0lyL01UMUtTZFFsUEJqL0tGU3h4SnNhMkhuK1lDbzR1U21ycEdKL1Fnb3BBRzRoRGFpSG5qYkVNNG9oTXhod2FZNVZNRjF3SGhTTlFRVGo0MXEva1V4OHh2SnJQMTB2MVNFcHhsMmJOUyszZFFqWiswT2orT1hEK0dUQUoyZklIT2ZKSEd2OHFvZllObXZ5T3FwNHk3WWhMdnk2bXVML0hzZC8xaVNxTTBHdFhIcVloYjlOSmJkTnhZVzF2ek80RWFEeHdhWHhwc2JsNjVNbmRwWTFpY3JRZURaNnNTMzYzcjR1bWl3TmRyNUs4VzZId1p1ZnB5YmFQSDh2cjZWNnZOamEvWjV1WTN2S3ErcmRtL1Y3Zy93OG41VXVFZ0Fkc0dKMjBtc0UzQzJUakJEVkgyR2ppWExWY1hLUkFCdUlNTGNmdVJORmt6Y1M0T2EyRElSdEJlems1VmNlSFNVcEp1U2lWU2tIRHNkZ0lzUndEeGlMbFVYR2hlUUM5OFlnK1kySFRLU0xOYmRnOVhDTnROa0ZpaXJKaUNOZ0F1VWNyd3JVbWIwQzRJYWZTaVhVTTRNeC9BK2diVW9ZWXpqZkJKaExtd082bEhVLzdhTkJxZDBQc3hlRTA5MkFIMVJCejBqN2xKUGhKTm5uWDBIUWc1Z2JQY25Xb1djQmhqdXIwVFpocXNFL29xSElzeXhtQmN3UFpORzlaNXRJc25Gekx5WVkvMW9TT0lzU2xFRWpSQUc4SlBKVW9iazdxSkQ0QkMrQThCQzJQMEpleFlTSUNQSGRGUEkxa09rcTQwOWhLa2Fhc0FVeDUxbENLSzZPTlZKRFRQUXhRQTR4dCtjbXd4QjhLNDBMQUdXQjR5eUpkUEdBbHc1cmtEZGg3VEdlR1RIVEJ3aGQrV1hDd05MM08zL0t6azZqdGVqNytlTjdjZXIrdjZ5N0RxaTRMOFoxS1dqNklvdmxxcFBqVlcvWUpJVjRFQUFCQUFTVVJCVkU1aGRxclkySGhCUkY3ZUdvMHVMbDI0c0RHZW14dmR2N0pTeFZyRUxYckZVN2xGaHc3bmc3ZUhQL0tSL01qYVd2MG5mL0R4MGIvNHpkOWMvNU9QZi96U1AvL2tKOC8veVQvOCtObC85cC8rcHkvOTgwOTg0b1gvN3lmLzl2TmFGTStPcmx4NWRxdmFQR1diVjA1Vld4c25wYXBQOGwzL0ZDeWZJZ21mVkxkVERPZ3BUc3huMVB4Wk1YOWVzNzBvWm1lWTU0UzFWNUxGVHRzM3FNdHpOS3ZFUGF0enNydVRIbVlBVnlKNE9ZSGdnU21FZVVLdUFoY1ZDTDhhTGx4YlFib2FoTXUyUXVnRUpGajJNa2xqV3NhMllZTmVNRVhiTE1jMmhBNndQVzJDaUg1Q0J1Z3lJbjgxRU8xaXNRZG96UUZNaUo0SnR1Y3JFUDQzZWdKZ2dyQkZZNWhjTEl1R2dVa0JYMWsyMWNWTU52VXNEem16UFpYZVNOYk5kQ21kQU11Yk9rcHBvSXoxMVFBZERyQXRZeVgwVTBsSElXZll0Z0ZldEFFSG5BZ1pjSlo1NUtPL0JrcEYybXZTbE0zNEtaczgyMUk2UVNYZUVldEpXZGpDekphektuU1lENzhSYWZyMnFwejJ3WG9ub2wzQVF5L3lsTkd1UWFUTm5YTXk1bDdGK1RkSzJUYzVONitvKzBXUzhIblduV1U2UHRYeFRCZlBjQTZmRWdmbnVKOVN3Y2tFUDVseWZVcXpuZlN0K3FSdlhENVpYN3g0YXYzeTVWUFBYcnIwRE5mUmMvLzhFNTk0Z1d2cXpQLzhELy9odWYvUDJ0b3IvK3ozZnUveWY3KzJ0dkVuZi9BSG96LzZveitxSGxsYnEyTU5Jb2JMbDF2eGpxZDJLNDc3Wng3em1XN1hPc0NZQWR2SUtWMFVMYzV4ZmI0STZEUEU5N2dDdncyVEorRjRIR0w4K0lWSEJYaE00VTl3SWorWlBIODd1ZjJBOG5UaCtWenBkcWswMit5NGp3dFNGQ2MwQ2phbURxbkxvQ0RjWDEycVRLbVNDbFFsY1dzZWdDU1lBenlTUU1WZGNWVTdBalYzT0RYUE5Hc0R6R2pKRTkwalNDUkFFa2dKU0FHNUNtRUx5dEhSSm9RU0FnU2NrbjNRTmQ1Y3Fzdzc4OTdJcUp1Q3V0NkFmZnBWYUh4d09CMTFad1hiQ2ZXVTRJSkdjN0Y0V3pJOTBZc0VNRW16dG1rYlpSTzh0anpxQXhJTitKNUdTZnZVWkh1aDMxTTQyQ1hyNkFQNDhBUUp5dkVtTFpBWWk4UzBNbFlhZFFFVE5sQmlLcUVBN1FvbFM5aVhFSmhjemlSOURMOG1BTWh4VndIMDVWVk1HdkdWN2ZnNnZXa1BMcndnVFJMeHlycXBZQ3pqcUNUZTBDS2VORTQxaGNvRUFKKzF1Y1JPUG5NK0VFMDY5UG5CaVoxVGcrWVQ5VXBKVmtESGhXR0R1OWxMaGZtNTB2eUZNdHN6aGRsM2s5azNVemFlN2VKeEJ2U0xLaExIQ2p6anhWZG82QWwzZXdxTzd6RmN6NHZhZVk3MUNrMXZhYjlmN1FFbkw3MXU3NThlQWYzcEtxMUdST0MycFNVYkxTeU1TbUJEZ0V0RjVlZE1paGM4MWMrQzU4QUcvNVo0ZmhMWnZxcndSOVV5VVQ5RytVVGhOUW5ZdnNVSi9vTVN1U0hnd3ZMbHdtMmpnSTBwdVJnTWlmT1diYmtUTm42UUpqakQyUmU0eXNBRmdDQmdUUWxGU3FLYUpDNFhkUkt3VjlrOS9sQkxrQy9URFNsbkU3cWpNQ05vM1lQaXBlQndvbTBoa0RTRmlrQUZEWmgwQ0JBdWtIdm9qVGNRc2lqZ3pxb0FLSWxRbllGdG12clFNUWY3RFRqbEJHNW9McUhQRFNEUkFWOVo3R3d3QXpqd1FKTm5ncEkzYlVkNmdrWWpYdGdzUkNCMEVMNjVrek1JbzNtZndKcTAwc2FFakFGbHYwRmNCWktXWHFUU0UrT2pqSk13WHNMWU5VUk1LVUhHb1UvYmtZWUxqUXFkbm9MbDhJbGY3czQrSEJhU1FZaTh6YW9ZVWlkQWhHU1RhRVo5bXVJZGVTQnMrc1RKU0RMZmlDaWlRdGh6UGxqUEhCL2lFb2draUNabTJJeWQ1WnlGYzBGSXdNajBJUWk1aVQxdFVEdEdHQzI4Y09GcEd6YUxiSmU1RVRoSDRuMnhxTzJaSXVmdmxqVUoyT3pybXYxeHVIMlJ3M25Vb1Y4UzZGY2c2UWxBditIcTM5UE0rVnpYNTAza2l2VDdtK1htWnJYNjFGUDBGTzMxQmlLZ2IwQ25WV0VFSGo1eHdnNGRPalMrdkgvLyt1THk4c1gxc2o3WEhYVmZIT1hNbzRZZWQ4RGRieFdhdnQ3MS9MalcrWXVsMVkrV1ZmMVl0NnFlNkZUMWs3MWNmYXRyOVE4NlpxZTdidWM2c1FPR2JaUk9BdVlNTDdnVVV3T0RJc0Rwemp6WEtpVCtpVUJWa2FhNzM1QWkxSFFnWndjWEhDcUQxMDBhcURPNCtLU0J1Y0pKTDg2bEI1SU1wanRnQ01tWUVBS2FBQzVMc1BlQVE0Q0FnMjBKazBiU0pkNno5RlNuYVJObFFzOHhBZHNGQ1FWaXQyYm1rL1lOZFFrdEM4MXpSODBVRFNMQUpnRHJROUVubVVtalNFZkI2eERaYUhjMW9zeEpOQ0NjdGdNMlMxTkdPUmlQZ0RBZVNRcFB6UTY0QkNVNUpmSHRSaUZURWhicVRpRFlsdFB4U21PUHJ2c0VtTXBtekI2dU95eXFtSTZ5QUZWQ0RhQnZpSWVMdUh4YUZ1bUFnSFVBQkNMZ3haZW1JZlZvTUdJWkFQc1hFY1M4RUZFQUVxRnI1a1BPeG4yQk4yQVNNd0pXdGtuMHYyaDJ3REl1VERZNmprdGw3ZWM3dGIvWXpmbVovcWorYm05Y2ZiTS9zajhmalBQam11V0xETXlqVW0xOXVVeitGYS9raVdxc1Q0M052bGZsL1B6bVlIRCtJcytHU2I2YnEwODlWVDM4OE1QMEV1MzFCaUtnYjBDblZZa0ljTEhFZWZIakgvdFk5U2NmLy9qb2NaNWxQYkwyZDY0OC92Zi8vc1gvM3ovNFR5Nzg2dnBMTCsrOWZQYWx4WTBMenkrdVgzaW1PMTQvT1JpUFQvWnpmYkpyV3lkTHl6d25yazZSY0U4bTk1T0ZFUEJUSWhaZjREMmo3czhSTDRyNVdiRjhRYzB1aWZ1Nk9yWkl6RldDMUVrazg0R1pTclAwWTJrM2lNVVljUE5tb1RrWElqeElsd3VYaTgydkFwaEdMRlpKSEZXQWk1YjZUdjFZME5FMjBLUTl6QXRmQ0dwSFdVQmMySUtlaEMybVJJUzE3SS9wcUNmZjRGWFFQdldwUUR0OGpiUXhTZHU0R3F5U3lGTTI1U0YvR21iNjIzcmh4d1FldmhBZS9ZV2MrdXFVVVRhcG40eEIrT1lremZpVm1rcm5GQkx0bWpMNmIreUFiMENJTXJhWGJVaWpINjhCTUJjNlRWdlFUTUFCbThKbmt1V05TVW9Xb1FGZmVMUGsxVnVhcElSVk5DRm1ublBpVllNMHpQbUNnRWFhajE4SXpoa2phaHJlWXQwVm1MMUNuT05ET1NQQUN5cDRUb0ZuRXVRVTV4Ym5wWndzWTA2YW55eXpuK1FtNFZTbnFrNXk0M0NxczdIK3pPS0Y2cG5ES3l2UC9yVlhYbm51Zi9tUC8rUFQvK29USDN2aEM3LzV0ODg4K3NsUG52K3ozL3F0eTVTYlQ2K3RqUjlaVzZ0SnZwbHV2bjRvTEdydkh4VUJQb2NmVmR5Vy9hd1JXUHZVcC93c2wwYTl2SndMY0FOYVZTTjBmRjJnRjZGNlRwRGp2UGlVdzc0RCtEY0FQT0dRcjNEQjhHTWR6NHZkdjhTdHk5ZkU2bS95WTkzM2VIVHhMSThtWGlyaEYwcGd2UlNNQ3JNcTVaeWJnOTZxQnJlM0VHNXZTTnlrQkFRa2RrT0ZLcElxdTFXSUNQZ0NnSkpnbndnaWFBQjY0cStDSDlNUmNDNmhrQWpTc2FZUmxhSzlzb1d5WUFxaFZINlFsUVNKTkFRZU1LbzdWWU93QXF3RGRGS1hYY0wyNU0zQ0dqNmhKaVQwSXVHUkVGcGh4aWRDbUp5QlNhQXBucFpRWFpxOEFvMFVZQ1paRjJsbjN6TVpKcDMrUkpteHZvR0I0NmJ2TmdFYWZmckwrdGc1aHI4QmQvQ1NCa0liTWgyM1VpcnpEWnBmS1Noa1pvTXBuNkxweTRGTTJOVm82c0g0QUhTbGVUNU5odVVLSVBFWk1zSklUSk5ZR1N0SEJGRTRGZENnamp5UEZNdzRWM0pIaGRBdGZtZnhDajladmFobXB5VGJ0eW1mRkxmSDJjbWp0UDhGZCtIY2s2K3dWODVGUENuQXQ4WDkrd0EzQTBuT0pOUVhUVXNlazUydjQyZWJhK3kvdmE5dEJPTDVYbHVMdDZvMUxoSisvUExOOCtkekQ2am5nWEcxdWJuaFJiNlV6YzRuMVJkRjdaUnI4UmRDQXFiNkUyNzJPQmZTbHlrZjVabGVFUEFUeVBscDFQWDN0S3FmU3ptZktjMHZjQ0d0ZCtBakVuS2wyVEtQT0p4NkxwbkxPR2VoRFpvMlVvQ2dXYXc4VGtncE1hMlFwcFJMQ3dGTUxwa3VZK2RTSTRKY1h0MUJPOG5JUVg4YUluRFdjOEd5RDVFZ1NXbnN4R3RBU1RQUlIzS1I1QWp3QTd4QjNQaVoxVjNZbjJEeVQ5a1pSKzZBWlpPQUc2dVpKeGt3RWJjQWJDUE9KZ0VXQ1pOd0pnSVVUWjR5N2tsYXBtMG1FbXcvZzlNN05HQy9sSkhmQnZYQ1B6UEJCRFRETWpTNzN2QTFJUENtSHRSaFRNSUg2a2pFZEFxbERBaEplQnQ4VTBJZzR1RWlaaUQ0eHNNT0orbXI4bndXckdhTnhQRXVuSDN3UmtBNFNJVkFSZmdzQlFvd3VoNWdkTTJGVVc0TWN4N3cwTmNUdndjbzRia3JXbmRGdGpxQ1YvaW0vVkxLZGxKei9SZFM1eWUxc3NmVjdWSGl6emlxTDhIbE1YRi9nZ2FmbEl4dkEvSURqdm81R2VlenViQlhjaHB0eEh5T0RRWSs5U2tIZlVGN1hiTUk2RFd6MUJyeWgzbjI5Y2luUHBYajk4VzlPKzRZWGVaNWNlcDJMNjZXNWJsUnQvc2l2NlE0bGRTK1UzYlNrenJHRTVMOUsxYmxMeFgxK05GaWEvTkxhYlQxTmRuWS9LWnNiWDAvalVmUGxUbS94TFBpQzExZ25lZDBvMlRlRVBDck8rQWNLNW5ndW1EOEV4ZEhJaUVrVlNSTjBBRExta1VqVkFCZnVPRGRBZDRFbDU0eFBRWEpnVVR6YXQ1WkRtZWJBTnVLUTRScElSVTBFR1ZCSURVUzROTDFhRCtWYUlnZW9INER0bTM2Tm4rMUgrcUQ3V2FRMTZkWkwwQlQydmlDdUxaTG1KbWxoVHB5VlY2YnRMUFVwLzA3WXhGcFk1bXh6RHo4bEtrdkFpZlpPc3NRSk16NlNKdkhlR2IrVHV3TDYrUjFZMWZtcjBib0FMVFpBRERhTmRveUFMRUR6cFEyTFdNeDY4SGg4WG13M0tPQWFIcmpTNkxmaWJJWmtWQ05DaVJlU000TitJWU50VXdPTlNzNEcySUgzRlBkNmprdWRzMWY3SXpIcDlLbytuWWFqYjZCcmZGWGRXUHJpMmxVZjBGSFcxK3liRjloMnlmS2pqOVpxWDY3eVBvRDIwelBqM280czdHeDhjcUZwYVdObU04UThRWjBreTYyOXpXS1FEelRhMlNxTmNNSU5KTTBmdHQ0OVhueHc1Lzg1T1lqZitmdlhQblRqMzNzNHYvOGQvL3V1WC94dC8vMm1iOTg2YVVYNW45UVA5KzljdTY1NHZMNVU3SzVkVksycXBNazNwTmFqV1BIY2xMZFRxcjVxUUk0R1dkMXlleFpzZndjbWVKNUxyNFhKZHRaMXA5bjNVWHVQOWNUc0VtTUMrRlpzY0M0YmgwQ0J4ZXNCNXBrVUVBVU9aY1NKWjF1Ym1aWkRTRXA0R28wNmdMTUpBMDJPa0ZDTXowYWNLWmZSUlFRb1lzRWtSazQzV1o2dE9mVFBqR1ZFakthemZENmZKUy9wb3grUlJsbU1qS1J2aHJzay9WT2Y1M0Uyc2hJVDJIaGp3a2F5VEpNL1EwSjVwMzFzemNtWTk5Tm1oSXNmeFhSeHhUUkJ4RnRBOXY5OFdFWTdWbjRNazM3Tk4zSVNOTjlkL0J4OGJsRWdra0pPSGltSzdXNmpKTDdCbkZaekY5UnMzTmkrWXhhZm9IeWVjNlg1eExzbWFUQzd4alFvSVNmVEZhZkxNYjF5YlExT2xsc2prN3ErTkxKNGFYMVUrbTVLODlXZy9Iei93dm5Zc3pKUjM3all5Ly9EL3crNDAvV1BuN3BYL3ptYjY0L3NyYTI5VGkvODRqNVROZmErMDJJZ0w0Sk5sdVRieUFDYTlRNU0rb2FSUjF3MmRyU0doY2Q2WXk0UE12MS9UMnV3VzhLNU0rWmZreUFMemw0Wm1kNFRMbHo1bDdwYThudG13bit2ZVQrSEVuNkpjb0x6TWVQNmJsUUxhdFpodFZ1UEU4d3EyR1J0U3ptMWl4eXJtMHVlelJRdmlxSm9aR1JEckJqK2dJeDZqaENIWkVQNGhIbTZSOXRBcFlKNnRBczdkSlR0bk9TamJqd1NranhLd05DSkFFQlVDZmdsRk5RRjJGM2hpWWZPZzNBaTdwOGpWdllONmE0T28zR0ZqV20waWtiMEpkdFNYdmhXOENpM0lURFUwUWVyZ0orYXBEd2xSS2lDQmpiVE1qWE9WNUgvTUtnQVF2Tm5XT202ejRCaTVpWENXZ2ZBWTdaaWJBVjBsam1oUEc4T0tTekh4ZTJZVDgweDdaaDA5MTVMa1Ruc3JnRlJnbDJTZDNQSmZqcGdzUktyLzlDSGQ5Zy9STXdmd3l3THdGNFZNeS9BUGlYYU81ckx2Z1dSM0dTK1JlOGtITkZ5cGM3bFk5R0YwZjUwT0toUFAvQ0M5NGNMYkJoZTEvL0NQRFpYUDlPMng0WmdVOTl5bSs3c0dTWFQrL1AvWFBMbFd6ME4rdCsvWW9uZmFuMi9Ld0EzeVdoZnRNbGRxNEJBQUFRQUVsRVFWVGMvbHhFSG5Qekw0bm5MM1BuKzVoWS9aVmsva1RoL25SaCtHN3BlTGFFdmNSRmVaNXRyaWhzeElWS1lzOEdNNXFvNFo1ZmhYRTl1M0hkbW5DUk91MjdxTHJLMVVpVGNsSXVBaTdOUDJRV3V3dDN4RUplcHcwWGZveWR3THpKdTlPcUNXMG5LSWxIcFdpa01DMVFJRUFUZ0pBWGhOWUZpRFFoVTB6eVlEMXY2dEltRTVNODJLS0JZMUpHOGVvdDAyUklnZE9lUjN2MkdXa0w2Y3B5Z25LU0Y2RU9CMGpmd2tlZW4wdmlXeHJUSHUwWkYyT2Y1Z0NQVzdmQnlHSzJJMlo3V1BSREdQV00waWR0NFNSWUVLNmt6b2wwcHRtRVBrUSswUGdsY0hwdjNoQXdHR056TSs1K3dkMHZSdlR1TXAvNXkzekdwd3UzazN6ZWYwSDVWREwvYXJMOG1CcSt5SUU4S3ZISGNLQmZoTm5Ya1AxYm50SVBhT1lGenBOek9ZOHVyMS9Kby9IdHcvb3NucmJqMFl0RXJOaHhlMS8zQ1BDWlh2YysydzRqQWx6ekQzLytoRDErNElWOC84cjVxaHhzYnZhcjZ1SldEMmQ4TXozckkvMmVqN25ETGFzL0w4ck9ZM2xrWDBwVi9XVWRqUjVMbTZPdmxGWDF0VTZkbitZWjhmZDZzR2M3OENEZ0MxeVVWL2pGeTFpY0xHdEcxcTI1azZyZFpqdGdON0NnUWVNR1Yzd3N2NWdJU3NKb1FFSm9KRW1FckFUdXdnQ21BNUVQQ2JZTDBCelhPY0NlRUdrM2tram8wcGFRVklRa3B0eFJObUJhYUJ2VCtwQUNRU05aOXFydEtFTlRqcWpIVlJmSkVPeGJDRENHVFUya1g0Tm9UMkFDaDdJSi9RcEowbzI4c2IrUUFZdHlBdUVmU1JMMFZ4b1poSm5jcVdzT2NobThJZURzM0FVVExPUU5aOTFFQ295NlBnT2lYd1cyYlRFZnUxNmhGS0ZQSVluUWEvSWNzanZjS00zWUw2MTV2SE1hM3pGdHBHYnhSM0JlNWpNLzNlR1haYVhaWDNSUWY0UDRhbGxYWCs3YTZFc3BWNDlhem4vRzQrRXZvc0RYU3RUZnFzcnk1RlovL1FXcmkzTVh6M1V1TDgrdGp4NS80WVg4eUtjK2xkZlcxcHd4REZDMDkvV09nRjd2RHR2K3JvcEFFTWphbW5FUjJDTnJheld4OVhXZXZUMyt1My8vNHFOcm56ei9yLzdoeDgveTdQakYvK2svL0QrYzNoeFd6K3FsaldlSDQvVlRuZEhXcVlJb3hVNTIzSGsrakpPRmc5SlBxa3dnYnMvQTgvTmN5cWZkL1NVeXc4c0N1NkJ1bHdXK29ZZ2RsVlhLQlI0VXd6eHBBQlA0UkFwZDVVZGNTT1ROMGFTYk1tSFpCR1FSZHNGQzZuaUFTWkNBTUNXL1Z5Vjc4Q21pbDVsT3lLWmNhR2NLeE1WMGlLdEIrd2pNeWlJZDdadDg2QXQ3RmVZNFFxYWNkUTBpdlEzbHhsSnBSaWxEVDVzMFI3Y3RRZjhtZVFHbVpNa0UwTmlnbSt6WENUWmdCcnlFTmRLa0pTb1lLMHhseEc2aUo0M09WYTh4NnN5SVZEejQ0TzVXTmdXNFRHTVgyRGIrenZSTE5IaWFlSTQyVHRIVGs5UTlSZkE1Zzd2ZmZLb2psT1luTzZQeHFWNjFjYXBZM3poVlhocWR1dmlOMFRPUGZQemZmZTZSdi9PM1hveHozYTk5NG0rOTh1M2YrcTNMajY5OWJPTzdmL0R4RWVkWmpiVTFROHcvZHNBKzIvc3Rpb0MrUmYyMjNmNk1FWWl6dXM2VnVySlJIblVMWCsrZzg0clUrU3pYRUJlb2ZZK00rQzN1Vkova1luMGNrQyt5L0ZGeGY0eGIwNitwNVNjVDhyY0syQS80d1pxN0o1d3I0WmRLWUtOd3E1TERFcmRkSkdPU3JQOW9BS1FsSUVFbUVHRitBdmFKNWlMaEJkazRNOEUvTkFrejBJV0FrMWVpUW9EUWk5WkJRWlNnVFRScDFqVnB5c2JJNjJUVVlYWkZYV09JUTVjR2FOcXdmaVliZldGL2NaUEMySWV6YkFLbCtxc3crdEdBSmpOaGhBZW9EOWFCNHdYSldKaFdrU1liVWlGTlBCUm80c2FZUXpobzRSYTBrVXh6NTRwQU1rY3k0NEdNZzIrWVZnakdTV1NqZ0Z3cVJWNHVSSGkyS3o5SUFNOXQvVWt4ZndJT251MkNaN3J5S0FQNFZiZzl4VDYrbzVDVGZHTjlnZlplaHVSTHRMd2gzVHdxY0w2KzdhOHVHZDFwN3gwUUFkMEJQdDRvTHI2bGZod0hTWExVclZOVmJsWG9iS0NzTCtic1oxRGpPWWgrajlYZk5NalhNL0JWY3NRWHVYQy82RHdYRk10UFNLNmYxR3pmNG5ueER6cnc1enZxTDNmNWhVN0piOVFMOFhIeTdGeklraXlMa2lBQ2trMDB1NmlicEFETGszbDhTUGVDNThXSk5ZbmtFeE5JS0lYUkNiQmZ1S09CTWVIbU1NS05aUUhXQ1IwTWdCSXVBTnQ3Z0drMlFaTnU4bXdUWlNEbFFGbEZhZE56Wmtxd2JnSlFNVUJiVVVaOUJEeUtCZDdZbXNwSUIwaW1UaGdSMGpteTBEUFdFWFJYbkhYa09CYlFHRytoZFJHT1hmZ3hRem4rQnF3Z2pVdkVKajRocU5HSzBjSU1tV2xDbVZjM0pJNGlkQXVZTTEzeEdXeHlKM3U1QTV6clFFNHpmeko1amovY3hEZE5mNEsydjB3bkh1Vnd2aWlhSG1jZjhmZDEvNktHblhKTnB5dXhjMGcxQ2JpM3dlT3BVZnhtTi82akNiVFhqb2hBcko4ZDRlaXQ3aVNQS1R6T2lzYzh2N3U4ZjdDZXExY3U5bnBiWjNxRHdiTWorUGRkOVp1Rnk5ZGRxOGVGWDhEVXlJOXFYVDJHOGRZVFphNmU3T2J4dDd1ZWY5QjFQOTJGbitzcUxuRVhIRHRnRXJEWmhDQ2NOR2RjNjA1NU5ZQ1lLQWxvZG5zSlFxbVlFSkJBbVJjWFRDNUtKL0VGREFqeW5jR1pSK2cxVUtwVGw2M0JuV2xUVGpzSXNDMENrUmJ4SnQza01iMmkzU1FaS1duc0NmMk9NcUcrTU5HQWFiRDU2OGlYZlJwdE8rVUVpVG9Lb3gvR2tac0orTjdETjVGb1J6OUZJUUhxSzJsWUlBakpVaWhBeUFSc0tPNFFNL0FOcklGYVJoTmJjMHFmRURCN1M0RHhFOGlZNUx2UkVibEVuQ05PZHdVL0lMN1ZxZXNucFJvL0FUNURrdTRYeFBYUmxQSFZ1aTYra1VhZDc3aHVudHFxMHd2OXJmN0xtSnU3ZE9aMGR6TitleDYvMlkyNWd2YmFFUkdJK2JNakhHMmRuUHo5NGtmVzF1ckhQL2F4K0Z1cVcvRmJ6VC81K0w5NzZkRlAva2ZuLzlYSC80OHYvNnVMMzN2cDJPcmM2ZDVMMzM1dWEvMmxaNHJMRjU3cDhueXdrOGNuVTUxNVRweFBsWEZ1R09mR1BETXU0S2U0QzR1L0NmQU1KOEp6WW42YUJQS1NtTDJzN2hjU3o0c1RoQitSTVM0aGRRSXl5Y1FiY2dtU0NiSnhrSTRtSkNSTUNlTGlLOHNqQmNvZzNnYXNCNmtLUVdaRWsyYmVtM0lCZklydFBDMUVXWk9mcHBzODAxRVc2UURUYk1uQ2VCWG1tSFNhYTFJU0NSWUlXRVNFSkVpMjN2U3RMSnZBbURmYXl3NXdlSWcwazZ5bkRSSHdCbDh4SVY4d1RRc1JBeXFMbTVQR2MyR1d1WXV0ZUxRektqeHZKdmZMeWZ3aTQzWmUzYzRvM3dCSnFQOS85czd0UjdMck91L2YydnRVVlhjUEx5YVZFV3hGZVFnZnhmak5nSUE4MFVDQXdBRU1Bd3JFTjlzQkVvUXdiQWVRZ0NCQlhxYnliK2hQY0FNeEVEc3dFaVF3QThGaWRCa0pvQ2dhRm0xNmhzTzVkVTNmNm5icTFEbDdyM3hyVi9YTVNMVEVJYWU3cDZkcm5UbnJySDIvZk9mMHIzZnZ1c3hIOU56UEZlN25DdmR6Y2FNWGNLT1NmRFB5L2d4eXZsRzF6YzFlVERlMmhUNFBQdm91OTNTLy9ZM2Z2ZnVkLy9oN2UvL252L3orL3R2ZitNYlJYLzJuZnp2NXMrRmI4Nyt3N3liNTFsdXR2ZmVjOE0wQWg4eUxueGRmZ1hEeGgrZ2pmRUlGMU43UHVmdisrM3IxSzEvUlYzdTlMZzkyNmlSNTNIVTRDQ0hmVXdLWHI5MS9RSkM4UjNyWS91SVAyUFozU1pwM2tMTzloZWs2L2J1RXhWOFRVWDlIR056dUMvYjdNVXo3QVFTS3RpRno0Nk50VmRzVzZEcVJyRndObzBBcHN0RUEvbU1IUXNBS2hNMmIwVEVzYW1HQjhNLzlZcXVhekZ3QlVGbTNtTUhSck1TRk5Ea3hJNHZ3c2piV0xHZWg1Q3FONDJGaGhpRmNpZkppZWViTVcvODBaUncwODlaZlpqL0ZKR2hpL3NvQVRzMzZwbXdzclFDRU14QWdDRkJHVFBBaWRVQzdoQ3lYR2xMcStGZkZnbjlkekxlRGpMY0VEM3JBWFlMNG82anBnNUQxUFZHOUR0Ry9BdkJ0UU4raC96NDcrSkZDbUJkK0dpQTNJYmluZzdEZmsvNGs5WGNXbytwZVpqay9MNkVDNFJMT2FYT25KSUlUQ0IrUHgya2U2MFV2eVNRRUhLajI3b1VRdWVvS1B5VUUrTU11UDFMRkQwZ3JlMy94TzVMMC93WE4xd21KZHlYbnY0NDVmY2dWOHUyZXlQNUFaTmFYMEVSRlM4Z2tkQVR3Y2lub0VsbVNDU05CWk4rQjBBM21tUkpJRVpnUmFQVHNTcFNlS2N4aE9ad1l5eXBUbGVXS1dmaHhLK2tvMndGV0h6eXNQQjFQenBmNURKU1RNWHBlV1VBeUc3R1RadTJDM294WmJJeXpabHdMNUJtV3FKbnd6U3BsNnlFcDZJRk1YK29TdktDeFpZNFdpQUM5Y3U2Y2Z3RndDK25hSEZQYjlaRWF3bmUyVThueHRzaURMZVM3L1p3KzZxWDB0L1R2Y1lYOEEwbjVPeUtaQU1ZNzBQUjlsZkJEOXZaZWlQcFQvbmx4TStSd3I0OThrSHRoTW4wd2JiNThjSkRZcForWFVJRndDZWUweVZNaUZRaTY0VkRmQjdwZnErdmEzdmU1czRPRFJZTjczWGErMllid1FZcmh4Mm1aZnRScjhRUE1tKytwZlM5QXUzeEgyblE5dE8yN0liVi9YZVgwZHdQSTdVRWdSR0tjOW9NMC9CTzdSYzVKMjA2MTQ4cVByL1FIVXNvZW9vZndKVmhGQkNmL1FMQ0JZQ3RtWWNzbndvU3JZT2FoV01GWmdKcFgrb2NtVEZzWkMvNE1oQzNPVE5naGJGK1VJWHFjR0FSZ21scWNXU1ZzYVJDQS9aZ3A0MnJ3WlR5eno1VUpVbDRacDhZK1lWV3RCWWdBUWZEUVJEUEVBTnd0Z1c2cE1hZTJuN1haQ1pqdnhEQ20zOS9SZkc5SDA4M3QxSDZ3bGRyM0J1M2llcS90L29xLzNMNk50SHdueFBDOVFlcCtLSDM5Y2R2SUIxMnNiZzRHZzN2QUZ3NE84dkgwaXhndDNyNTJ6UUZjN3NEbHU5alB6dVdibGM5SU1SeVc5eGJiK3o3ZitlWTM2L2VIZnppOS90WmJ4OS83bzkvZi84NGYvTjdldnh6Ly9kMHJIeDNkZWZGZ2ZPdkY4ZjVOMU5PYmcyVnpvOWUyTjZyVTNZaXB1OG05U3U1THlvMHF5STBvY3BNQXZoVnl2bzJjN21wTzkwVjFYNkRqQUpsSGdJQkdLK0ErTWRlR0F2NGovRVRCUXg0WjA1UjVTZythZVRNdzdaZFpxY015anp4NHNGMmxLeWZEeGE4dmJCc3NEenRPd2xhVzRlTG93WHpyVzgyRDRDOWVZSEdVWTlXbXpZRnpWZXFSZ21wNTN5N1h6UE9ZODFnMDcwdk85eVdsTzZaTkZQMm9SNjIycUZsZjlFWmZzdWw1a3krRTN1Z3YyeHVEZW5GamF6bTc4VS8vVWUvbTd6ejQ0TlozLzkzWGJuLzdyWDk5OXp1Lzk3Vzk3LzNSMS9hdnYvWG04ZHQvK09iMG5XKytXZjh0OTNiZkhnNDdpSTJnRE1ndmwweUJjTW5tNDlONVFnV0dMTGZYRFBMeWhWa0tLWFk3dWI5ZzBoU3BQU1JrN211UWp5RDRnRXZBOXhUS3ZXTDVMalIvSDZvLzRFTnpQVUxlNWRiR0IxSENyU2g0RVBsS2ZoQVlpSmRFV1dZWkJEWkFhSWw1WWRnV2pLb0ExOUJjU0NzTmJJN0FVOVo0M0ZoVHJieDVCdFE4NDBaR1JqbE1xMlBHK3F0MEN6eG13akk4RmVWWEFleGdHQVc2akt5OTBxdXlDRDNZRG9OMEhDMlh1bUtqWmpNOHdaNXNCSnhUdHJuTkNkL3lpVFRPOXhaTFV3TjlsK0hybk1WMUR1SzZxbDdueEg3RXh0NFR5TitJaEE4aHVNMC9BQjZ3MlduVmFHdHZGUnZDajAxWElHeTZBQnM3LytFMVBma3VpbGplWC96U0lqWnAwdWJxSVBYNlhOSHBMWW55UVVaNmorRDhBVFFUd1BJOUFwVUFWZ1B3anlzSkgxUWgzS3BFUnBFclllNFJ6NW0vcEdVYW1RTWFFVVN5Y1ExSGpnazBvNEEzSi9OU3dsYnFaNndBMFI1TmdScjZXRjlaUUFsR1ZhWXhnbklJV0lBbld5ZEhHV0NjYVpaWHlqQk1MN0RSbU9GaGZtbUhvelBQZXFKcUViRzFKaGtwTkpDWFpwbmVURlZ5YmduZnVySjNoMmgrMEJQOXVCZndVLzd5ZWJkQy9pRkh3VDMwVEFoemEwZmxSeUwyd2xva2dQT0gwdWx0U0xQZjI5bWFiTCthV3Y5K1hkNExQL2wwdXdnYnFvRG83dTZqNzZKWXZ2Qmg4K3JnaXhOOG9UNm9tbnF2aXVtVzVQaEI3ZzkrSEZIOVFEcDhseS9vZlMrcWZyK2Y1WWRiVlh5M3ovM2tYcEJidllBSGxXRE1WZUNjdGlRNnVZc0swTk1FSi84SU9uSWNoSzZ1RFNEVzFzYjEwWGxkandBQUVBQkpSRUZVSTBzWDRKcFhncFllckEwUkFCWTN6em9uWVFVUFViQXNTdmdFc2t3K1NTTStWM2xnclpQOFZUdXdNa3c5R1lPVkVQYjV5TUJjbWlwOXpoRlk4aGNOVjhBNjdvcys2QUczdG9KK3NCM3p1NzJjZmpoQWMxM1FYazlOZXoyMnl4OVZWZmRlZjVEL3BrcnA3L2tpM0cxN3orNUw0NWVtWHowNGFGRlF6N0hiZE9ESHBpcGdQeU9iT25lZnQ2MGFoNCsraTJKMytPYnluVzkrczdiLzYrNS8vK2UzanYvbk45ODgrRjkvOExXOS8vN0h2M05uWjV3L3htSjZxMnJ4MFJVbzl6YjFab3p4STY3K2J2TWh1a1BiQ3lwSEFzeTVuRXcwYXgyTTAxWlhNS1JtQkYrbUtZdytCQ3UzSDhEMEV5QmFlQVZpNWpGOUZXWVBwYzY2cmNmRDRNRTRyMnhRV0VOS0VBekJPZ0U0bG5YYVNUbkxBdy9tODJRQTZ4U2xQK2x4NWFObTBCS3Q1dmJNVVZUZG85M2hMNTNiRmNLdDdhQTNmeVhvamRnMHQ2clo1T09YWngvZS9tL2YrTjI3ZjhxOTlqL2xudnYvV0gvSDdwOE4zNXJ2VXVQaGNKamhoeXRBQmZoVTgrcm5oaWp3K2FjNXd0VTgyQmErQURWZnRCcW5VWHFIb3NuK0c3emIwSHlEUzlxYk9hYzlkR21DbEZ2K3VVN29hZWxRaUxUSERZeXZ6QjQvWWRCQUc4aktSd2F1UlBYRURKbzBpNWYwRWhiZzhYYUVjUVd2NWdYbG4xb0pLVkNHSGF4bmpoMHhqWm1yQU1lWkdWK1pFTGFjQ3lRbjhFVTFSUHJJTkw3ZzFvbW1DZE5IUVJQL09zZzNPZHJiSW5rVWNqeHF1bmJXRzRSNnNOMjJKa3JweHkrdXdLY29ZRDhCbjFMRXMxMEI0T3BQUmpxdVE3dTEzYStqdE5PMlNrY3FlVTl6dnEwNTNjZzVmYVE1ajJnVFdnZENDNm9RTXpKUVJBb1V3ZXZqcGllUS9ZUVhvS3lNN1JFbDZwaHY5VlNaTHR4dFJtRGpOR1hERE1GOEtXT2x3SVBsU2wvZzlWRVk2OE5TYkh6RnlIK2V5ZzZWY2JWd01jSTM1THlDY0U1dGxmTWs1RVRnZGg4eC9hYms3ZzVoUEdvclBZcVNwNzFZTDhaMTNWNzl5VTkwM1kwN1YrQ1hLbUJQOXk4dDRKbXVnQ213eS8zaXF6KzUwbzdyMStxWDhOSTBkTk9qS3NTOXFtdHZvMXZlUUdvLzB0VHRhVW9UNU5TQjRDcndaV1dEblJDRElDdUxNUTBRWUcxS2NQN0RSZ3l1ODJEZWdDeUVMeEZaNmpLdTZ6WXNMbytIRlR5RVRLVXhoQkpuNE1ReldIS3NDMlVpVGNxWU00VGdOU1AyTldwQ01jNHA1RzRhVXhyRjVmSlc3QlkzdWJkN3A5Y3VScUZMUnk5aFBDVjhhOEszM2QzOWs4em0vWFFGUGxVQkIvQ25TblJxQlo3emh1eEZ1emZUMjhQZjdIYUhieTd2TEY2cEYzVTdTVGtmaE9WeVQ3dThSNEFkQ3ZJMGFGNFFYcTBvT3E0b0RVWktUeGdDVENNbURYMG54a2R3RFZSbGpqSmN2QUhYakhHWVp4NXJBL1NXLy9OcGo5SUZZQmt6QzZFY0ZucGtZbTFxeVZpVlpGYjUzVUJLMnk4TmFBYm5ncENUSVo1N3Y5cHhoV3Z2N3BoeWZrZWkyS3Y0UW1Wdk9UdlVRVy84Q3JYWUhRNlhidytIM2U3dWJnSllBbjY0QXArdUFKLytUeS9rSlZ5Qm4xZmdpN2lhcTVkNkxXSllJUGFtUUppRUlKTks0cVNLWVJJbHpBamhSb0NXZThLS1RPS3BtYlVrQko4UXlIejhDRU5sVE9sUlFCdWdocjExdUtSWjNrbGFObFN5RFBPaERKZDBZUjFoZTJ4YnpkTk8yaXlOTTUxeGpzRXlvQlpsWEdoQlJHSUlpQ0VnQktZSXdOYllWbVpMbW9KOThDS2c0WXVOM0hyUmVaQXc1YWduTVdEYWRiRWV0TUk5MzZzWmZyZ0NuME1CUGt1Zm81WlgyWGdGM3NBYmVUdTkwR0s3V25SWlp1aEh3aGZUS3RKQzRJdDBtUFBoV2tqV0Rwbm95d3BlWWZRVEJCWGJTckMzaURHTVlsRU53a3F3RmpPd21qSE9mRllUMXFVeHpuSmlDWXJpbU02ZUdNYmFTcnFDQjh1ckdUTllDWFN3T0dBaGtMMElJalJpVlVRc3pOSmN2eXJZc25JMW5JS2dyUVFOclk1QjVrRjBtaXBNMHM3V3hQYkRiVi9jOXNmaGh5dndPUlN3Si9kelZIditxdmlJVDFlQjRSRDYxWVBmYWpHNnVqaG9lck9COUd6VlN5T0FRUlBNQ0svVkNsaEpYKzZ2UW0wTVFnUVNjN3lDbUN0V1FFdmtZYlcvV3dBTWV6UURWN1ptVnA2ZWFicXVZMlZLWGNZdHpmaDZZdXQrQ0did3NIYXRQbzJ4Y3E3N0puTWhFaEREeXRnalkxZ0JPS3NTdGdTd3RsSFFCQkVDbUhPQ21VeGVHci9FUGQvWHVPZDdoWHUrWDgvd3d4WDRIQXJ3bWZzY3RieUtLMEJNRFllU2JVLzRmZTRKSjJTdUVzTzhna3lxZ09Ob0gwMEc1c1Rma2hSZEFVcTE2RmFjQlpXNVpsaDVtRGZJYWlCRG1jYjR3N1FTdHNkMWJWYlB5dEhEck9TZlFKYWVhY28wQlErR2VTV1FWK204bHVpcUhwTlo2T0dZVmprUVFXS3dnWUw3dm5wRUdCL3lWOGVZTHp4T293N3FYYzdaNXI2Nyt5YkxDVnRnYVQ5ZGdjK29nRDNObjdHS0YzY0ZQcW5BZGlkSlFsaEV0UmZoOURDcUhnYkNPQUpOaEtUSUtvR0duUG1YdllJTFRISlpZZVF5QXdoY0pkWHBMUXdRd284QlZ0ZGhKVXlMUFN6SGVneXpLdHRqdU9TanRGc3VqTU1POHpSNUdHYVpyTWdwSTZWVUxPZk1OdFJLMENRcFpNYkFnU3J1TU9PdVFnOFluMGtZZFBSK3VnSlByVUQ1bVhqcVZqNnRBYysvOUFvc1paRWoyaVpLbVBTQWd3Q2hLVit3a2tVUXlZSGs0Mm1FaGVZa21yTmttbVp1dFdZbWszWThTVVVoTjJtRUpRcFlDV0xoMW9RRXRmaERzM3lhbGpKV25sVlB3aXpMZEo2bGpxTHNNUWVXQmdzSkx6VEcyRGN5TVpzNkFwaVdNeEZMMmdyYkFhVGpRR2FzVEFEclhXNVEzOUdVRGhScGx0b0pWNzN3d3hWNGFnWENVN2ZnRGJnQ1ZPQktxNm1mWkZIbHhEL1I5YkRpQ3BpcjNnbU5VRWF5QjAxWWpnUWtnQTEwR1dRZEdXZUpCT2dLZW94YnFaV3BwUmxNRFphMkFpWklsV0dZTWMveVQrSWx6S1pVaEt3c2dkSStXTTQyQ0t4RnNMN0ZvYkJoTUYrUmM0YXRnRE5Yd1JZdWxRV1FJSjF5QlV3bUU4QkMrSFozMmRRK2pTdmdiVjhCdzQvVFVNQitMazZqSFc5and4WElWelJWUUIyaUhwR0JlM3l3OXFCeUxKQTV3MnNBSy9rRmlJQ0hRSGdGcndvN0hvT3dyc01HWFJxNEhRR1dXM211aUMzTU1xdTBkVmxMTTF1bm43U0pFaEFDOThSWXk4cFkrbU4rQlhMbXNRMmhRU1dKaEhsR09NcWE5eURoUHRPT3VrYnJiZ0ZmQWNPUEoxVGdseGJqejhZdnpmZE1WK0NKRktnR0wzY3QycG5tc004LzFlL2tyTnczemZ0Y1VjNjRKdTFvQmFNQmdpaWhXS0F2c0dPYWdnZUJxQXpEak9BdFlWNTR3Z3pjcWdETG9PUUZybUNGWUEwQXl5dGJWMHRuUVo0QTQ2WHNpYmQ2VEJYekN1NTVDR3NKZ2tTT2hSWld4bzBLV2VVZ0syVEJOc2JJd2psMSs2Rk5FNFRGb25uSkFRdy9Ua1dCY0NxdGVDTWJyMERYL0gySy9KTTk2T0tnRXR6aGt2ZTJadXdqWjBJNTJhWXY3R0VMeEZzTUFURUVCQU13NC9LNGVnWklvaEVuWnZITVNPYTZtcTZrVzFveFFwaHBCQ1ZCYksyWXNSZGxXU1p5VlNzY3cycUp6RGlzbllMZXdGZ2dyamtHMEU3Z0t4RTJKc3NGQXNjc0M3WXh5UkwyT2FmOUZQSTRwbjc5NVRGOEJRdy9Ua09CY0JxTmVCdXV3QXZmL3RWdU1tMm0zU3pzeDdhOXZlenluWTRBTGl2Z25Nc0tXQ2hUSkhBandSc0pQUWxDZkFwVGVTb1pTbWNub2JkZTNhN1lDWllxcGdRdURlQmpXN3dBbHNldzBqOXVzREpNczN4bFBsZXlCYjNtb1V3MUUwS1kwSTFTd1N3SVlVd1RHbnZJZ3JnUXJjYXBDL3V5eVB0eFBKdkVuaXhHZUQvRGorZENnWXMrU0Q1bkYzMklQcjduUVlIZDNUZnpHN2k1clBHMzg2czNGdU9Fd1RISFBRbXE5b0dNV2dRTkg3YVdTRTFpckZVbEVGbmk0V21wYXdOOVNUZS9ObjNrbFdIV0pxVER5a3A1dGw2Z3UvS1dqNGZwNjdvbHZncmJWb1FRek1JME0vQUZPa0hnMkVJYklCeHJxRVZSTTIyV2MyK2k5V2kyTStqVkw4KzIyamZBdFRUOGNBV2VYb0h3OUUxNEM2N0FJd1d1L3VRcit0TXYzZFZlMTZRcXhDYkVPS3RDR0ZlUU1ZRTJSOVpsVGlsclN0Q2NpVEthc3I0WlhUa3RUTWppb1JjbTB5eU53SVI1d2hNV05tTzRRSm5wSng0bHpRQzlxdmNvM2VLV1Rzc3F5czJFVE5QRXpZb3NTN1k5RDF6MWNpMDhEdWhOUTRpMWlDeTN0MTlwdTFlYlpOK0xQSVFmcnNEcEtPQUFQaDBkdlJWQWg4TnIrdnJyNzZ1dEVMZDIrbDB2aEtZWDRxd1h3bkVraFBtd3phRzYxSlJ6TmdBbmV5dWFzdVphUGdaaHRvNkNRSVhGaXljNEMyek5zeVdHbGVscW9MVXdDTlNmTWE2MW1RNmFja3NZWWp1N05FYlk1aXFUbXd6RUxyUmpKNG1yV2dKWWNwd0hDZnlGVVIwSGlkT2d2VHBnYTdtRlY3cjY0TmRUK2Q2SDRUVldnQitmcG9EbmY2b0M5aVIvYWlFdjRBbzhtUUtpdytHd21IYVMrcUZxZWxIbXZSakhWUkN1Z0hXT25BbmdyZ0NZR0FheUFqek5ESzJsbjNYY3drS0FRb1ZsMWdZK3Nvd3JEUlptdm9VL2FldHkzRnF3K3BadnEySUxyenlCelRac0JXeVdrM0pWTHN1Z1lSNjVBbzZoZHh5bFA0M1J2b0MrV3I2Tzk3dTM4WC96N3E1OTc0UFlDRzE0YnE3QVV5bkFwL1NwNm50bFYrRG5GVEE0cVlTdGpvdk9SUVZNYUFkY2V4NElaQUlGWDloQ0VsV1lNYzc2RFBOYXdtb0JNM2tJWFlFOERJUFF4R054WlZ6WElDN3Bsa2ZUdFZuYVNiNmxXYndZNjUyMHhkWTVsc0F4aVkxdElocjJKUXZISE1aUXJXV3cxZklYUzhad21GbFg0WWNyY0VvS09JQlBTVWh2NW1jVnVMSWRVMjVUclVtUGNzb2o1dTRwOHJFSWdSYVFRaER3aEpCK1pUMzVPTllzYkFZZTVnMldZRUh6SjNHR0xRaExCL2xNcjQ4WkxHeGxhQ2pHUjczNFZUdldwN0JNNEFDQ0JNUWdTVVRtQUE2emR2YzFwWHZhTlVmY3JwNTNiYzFkWXVZOFY2Y1A5bmxRZ0UvbDh6Qk1IK1B6cG9DMkU3NElSNkNsOWhoSWU1cTZrYWdjaWZCUGZBa3BCdjZ4THdKN0FBV0FHUlJHVWw3V3A4VXQ1ekZ3d3NKY3I0TExheUNvL2tJVGhVUmxlVmtaRzhwV2tXdHhjNndmbUJRNEFzS1hWMG5jbEpqYkx3eDArWDd1bHZlN3JqMUV0NWd2bDlFQnZMNGw3azVYZ1hDNnpYbHJyc0JLZ2J3TUtUZGRyVGx4QmR6dDBUOWNBUk40WGVTVEY0S29DSWhCRlBBeXlBQlBYWnZscUtYU1RqeUJTNkNXOGlkZVdlNlhHdXNxWDZ3RE1idXFJNnd2RUVJNGNnRFJWc0F4ZEZKV3dIcVlXc0szV2Q3UHpmSnd1V3puUzZEamlQeDBCVTVkQWY0WW5IcWIzcUFyQUsxRDZycW1CdHBqN2RJb3EzSUZqQ01vNWhCMFFaQUZJQnFoS0FjZHo1Tlk4U2R4ZXFKNlZacVZVV29KbEdFejBPTVR4MG5yOUFaZUsyUDFpb2V0Z1JsaWJSSDdwclljb0IxL0dPWUFqbFR6aUlNZmFiTWM1K1d5ZnZsNDlGbFh3R3pHVDFmZzB4WGdNL2ZwaGJ5RUsvQlpGZWhlalNuSVlvRTJqRU5JRC9qWC80aDJ4SFptb21pUWxTOTYyWnZBa0FIdUpDaHppRlM3b29DU29aTDJtR2VROVZoOUJWK0xZb1ZSNk05N3R2RXphU1VPZGtWYm5aWkM4S1ljUlcxRjNnanlYQVJqYmt2c0Iwa0hzWjhudmRSZmpMb1hPTVpWSmIrNkFxZXBnQVA0Tk5YMHRoNHFVQjlzcDYzdGwydkZZcHlXNFFGUiswQkZiQVZNQU90U0FLNHFDNFM1VDZ1c1IrTkprakxNVTFtQ1VBVzkwTUM4NGtzYUU1UUJHdEV0RDIyVkJIMlV6V3BjMnpJTzVqMHlDN0V5WUt2d3hOY0V6Wll4eXF5S2NoeWlIRlJ0T0VpU0p5KytXQysrL0lWdGpoVit1QUtucm9BRCtOUWw5UVpOZ2JldnZaSEc5VXQxZlBVZkhXL0w5b05GdFQxS1NZOFZtQUc2QkZmQXBPUHFreGhFTUtscDFWYkdRaVZBTHpRTFM0R29oY3pFTHF3dXhZQ1ZWK1hPZ2dyb1NucnhyRmU4bFdFWWRtaTVLTW5ObmVHY0JMbUw0SzhKeVhOdVM0OTdGZlpmQ2VPRGx3ZXp5ZVRPWVdQdi83VWFicTdBYVN2Z0FENXRSYjI5bFFJaWF2OW4ybC84aDMvVi9Obnd0K2RWN0U5RHFDWkJaY0tIYnNJOTRFbmdUakZSeXRlNHVENjJXaVFveVZxZHQ2Y0FBQkFBU1VSQlZFaytNMUlnU1cvblNkZ0FlbUlFS2l4TWI5VkFiM0VGV3oweDVxdWxNMTd5c1RyWXA1SGFjbHZDdDRuUVdiRC9TZ2s2clpCbnNiYzErK2N2ZkZqLzViVi8wMXovMWx2ZDZ2Mi9xN3ArZFFWT1V3SCtMSnhtYzk2V0svQVBLOEFYNUZJTVdsY0J4eEY1RkFXakFEa1d0Uys4UWFKL0RMeUNBazVESkEwRm9vWk44S0MzdE1mTjhoazMrTUxDWm94RGhZVlhiYWt5YU9tNUJBekFXVFEzb21rcTJoMEdjTTlYMnluM2ZoZTVXNlpyMTY2cGlOV0JINjdBbVNrUXpxeGxiM2d6RmZnRnN4NzBKVVdWT29vZTkwUkdFUVpnSExPNGZldVk3YkVxN0MxbUVwUWdYWVZWbUwweXRmQ0pzUXlzYkRGRDkyTjFNZ1EwVlhvN3pheGU4V3lPcDJUYitnV2hueHZXbkZTNU82eHlPdXdoVFNMU1l0QVBTVVJZc3B4YXJuNXhCYzVBQVFmd0dZanFUWDVTZ2UwMnB1Mm9kUjg0N2dlTWVxSWpia01jMHdxQURhTUZlWVk3QXlaTkMyZ0Z5ckMxdVBLQk84WXNXZExXM3NKbUJsbWFsaTJIQUxVd2Qzbk5nMkV6NndjOFF1YTJoMnBaQVFldWdDc3NEMFBYVG1PN2FGSlhQdm1tTEdaRzU2Y3JjRFlLT0lEUFJsZHY5ZWNVSUgxVDBGVDNvTWM5MjRLQWpJaldZNjVXYXhMV1ZzQmxDMExXb01RYW9qZ0I2OW9YQ0JPTDV2VXhYOHF0NDZ1d3NEM2F3L2FraEd4WUJjS2lTWkJycm9DNUpaSkdRYnRSaFk1YklxbmVXWWJWZUt5d215dHdoZ280Z005UTNQTnYrdUwyK05KeVhBQXMyaDFyWG4wd0kyY2N3NzdzQnNMdEFHQ0Z5RURQRFFyUTFQWUJBc0NVWWlxd2cydFhFTnhZZ1pZcGxtN3dUU3hZd2xidWtRbVRzVFlMQ3hTU0NXREZuQkEvWW52M2tOcjdRZE5oTDFhenREVk84TU1WT0FjRjdPaytoMjY4aTAxWHdENFpWK1VsVjd2NU9LQWJFWGdqd3Jmc0FkTWJnQXNYUlEyNkoyYVBweFRRcWxvMmc1bW1hN053Wm41U3ZwNUd3cklNMmNwTXFsM0N3a1JoSkJRdjVRb0VFYmFBRGlvelpEM2tMNFQ3VmM3M29pNFBVN3VZaC9peWYvU1lxdmw1OWdxRXMrL0NlM0FGZ083Vm1McHVWZzkwZWx5MWk1SG0xajZjd2RVd2FxNW1EY0FRZ3lZaENWdjkwZ1QyZUpvSllPbVdiOGF3R2tLTEViNldSaGlqeElVOFgxbXB3N0lySDFZaHd0ZGFZOHkraG4ydXFvY2hwWHZjKzcyWCtXTGNBSlA1Y25iSFY4RHc0endVQ09mUnlZYjA0ZFA4SlFyOGs4R3QvUExXVmhQU1lsWmhkcFE3SE9Xc00xRTBNVWpIVldtV0FrZSt5RmJhRWZKMGJRYllGVDRCTVh3S25RQ1F4Lzdab3l6QXVpemJYWVVaRnl0bFRVRXlYUTdLN1ljQSt6VGVYRlRHb3ZtZzF6YUhjVDZieXFKdXJ1S200UngrdUFKbnJZQTl0V2ZkaDdmdkN1Q25kKy9xOFlORk40QXVBSmtIaWJNUVloMURhS0pJUjBzUjNBdm0raFdBRm1mTFhGdlZFcUFnU0VFdmRrU1dwSVVRSklTSWxRVXdaaVVncFE2c0ZabzF4WVFNZXo5RUNwQ1cxYXpQUlpRNEY0NEQycHUyeUxNcTVjWE9scllqY0UzTzZuNjZBbWV0UURqckRyeDlWOEFVZUlOUWk4MVJkenp0TjRPdEYyY3BiczlFZW5XTVZWTkphR05aQlJmd0VaVXJhQmIra3Awd0E5ZXhFbmdsYUNFTUJRa1NDZDJWQ2NPQ0FKRUFRTENxdzRvOEM4ekxSUWhndEFIYVJPaENoTnNmSWM2YVhweUcwTTYyWHV3VzAvM2svK3N4L0RndkJleHBQYSsrenJRZmIveGlLekFjRHZXclh6aG9seTk4Mkx6eXl1RzhJNEJEMWFzSjBZYndiYU53OVV2akEwbjZrcGFGdnFzNXFRRzFXSUFRc0VMWWh2WEtWOVkrTUUwc0QxTCtGUUFyNjFzN21ZR3NYRU5yQVhBVnhQcXNZNUM1VkwxWndndlRuYTI5MlFpamhZMXhPTHpHQ3F6cnB5dHd4Z3FFTTI3Zm0zY0ZUaFJRUWppL1BSeDIzM3JycmJicXh5YmEvNDRSWkJwRWpxUElPQWptWExvdWdXeDd0YXhIRHZLRXFwMHdxQ3FFNlF3YVRrdlk0bWFXekIxZWMyb1hRTXl6cnFWeW45ZGVyYlB2Zmxpd3RQVTVZWit6b0toN1ZXeDJoOFBsMnh5YmpYRmRFMzY0QW1ldGdBUDRyQlgyOXY5QkJicXVTa0RpSG13K2lKTHZBZm1lUUE4Snh4bTNDQktCU1lCbVFNMFVTcC9OY2thWE1oSjlNbjlpWE9WbUdvc1lwMW5QdXRVVm9yWDR4UFliSmt3QzhtR1VkQ2lpMDFqSm91dmJXS3k4bXl0d3ZncWNEb0RQZDh6ZTJ5VlFZRWRDVjRuT3VSZDd5RjNkdXhHNFM4b2VFcnh6UWU2a1lGUTVVMldJcHNwMWNjWUpkQTNDSjVhU3Fsa0JNTXV4QWprTEFwekdpSEJyV1loc2duY1JWS2Q4NkE4SStvT2dlUkp5Ym5yemxwU0hINjdBdVN2QVovSGMrL1FPWFFGMHl3WDNZek5YdS9rd2huUlB1QW9Pb2dSam5nZnlsTEFrUU1sRk5WT3lXWkdWWml0ZnM1VFdNRmJ0a3FXYmxXSWdjeDhxTEt3VG1NQUhuYXRxYmZqQzJ5UklQcXk0MnVZdmdHa2xhYkh0SytDSGVubmdmQlhnYzNtK0hYcHZyb0Fwa0YrMS93VFRWc0RwTUNvQnJMaW5XUTlKMlJrMGRaSVRWN0dadGxvRm4xQzF4SGhSMndNMnp4TFduc1hOazdYRm1SZGxBYTUrVVNCdWEyU2RJK2NqeHZjZ2VTOUtPdUkrY1oyVzg3U3E1RmRYNERNcjhGUVZITUJQSlo5WC9yd0t2TndjcDlpbU9VRjV5RmZIN25QNzlsN082VkJ6TnlkL0UzY2hBRUtZc0lTUWtpSkNUd3NCRWlNazBPaERDQ0toUWdnQndkNEpRUy9DY21WZ21aek5RT3JNdXB5N1djcHBuMWkrSFVSdks4SytwYkVvQy9EcXB5dHd6Z3FFYys3UHUzTUZpZ0xMV1Q4MW9aMHp3aFZ3dUpkVHVwOVNPc3lwbXlPMUt3QnJncERRTEFQaGt5cUJZQ1ZndzBQNFJxWkhoQkJFaXRGSjROcVlSbXFYRlRBaFRxaVQ1VjJuS1UwMTVYMXVCOS9tQzMrM0srUjlEVEpsK3c1Z2l1RG4rU3NRenI5TDc5RVZLQXAwVmJYRkY5ejBVRk4zTDNmNVhtcmJJMDFjRmVlMlErNGdCRENYd1JCaGVWNUVoT0VBd3BiUU5mamF5dGQ4WE1VbHJQS0Y1VmlGN0ZaWUcyeEx1emFsdHB0MVhidS83Tm83V2ZNZDZITC9oWFk2bTl6NWFiTGlicytmQXMvN2lNUHpQZ0VmLy9PcHdCdDRJNy8wOFhpNTNhdm4vZXJLdUVuNVdJQkpRT0lMYzFwSDVJWXZuclZjQVNlbWMxVnI4MlNJcDRLcE5OQXMvTGdIRHhaaERwU0xZTDdRcDYyMUZVWG5qRStoR0xldEh2NUtnNlBVSHN6d0twcmYvdEsvZHdCVE56L1BYd0VIOFBscjdqMVNnU0grSy9hYUwyYmJpZ2h4dit0cldsWkJDT013N1VlTWU1V01JK05SWkNtd1Y5RkFkbkpCcStEcmFGb3M1YnoyeWhJMGU5Rk55VjIyejBWd3JvQzJDbUhlaXpLdTJDYmJuY2FvOWRhMk5FY1lkY0RWYm0vd3hReU9oVlg4ZEFYT1hRRUg4TGxMN2gwV0JhNWQwOWNPUDh5VE95K20rRkhxWkdlbkdWVDJxVFJNQjcxdzNDYzBDYzU1REZpS2xMY3lBSVN2NmdxMG1UN3psYnZIemZMQWRORXNrUkdyVzBXRGVoeHZXWnU5TUIxVXNSWlV5KzFYWDJnbnYvWmlldTJWRC9QdzJqVzJYRWJsbDgraWdKZDlhZ1Vjd0U4dG9UZnd1UlRnZnNEdW4zdzlYLy9TbjZldmZ1RzMyaXVTbHIxZXJMZXFPRFZZRHJnQ05nQ0hZQ3RnNFNxVi9DVmNkUTNkWko3eDR0Y3JZVEFOUktsdFFmREJ6clo2N25FVmJXMVptOWIySVBibTl0SGpyeDc4VnZ2YmQvODg3WDc5NnhrY3krZWFnMWR5Qlo1U0FUNm5UOW1DVjNjRlBxOENCcjdoTUErSGtyUE11ejdTb2hmeXRJZDB4TlhyVVJEWXA5WWFMb0N6RUxiV2pmSmlacUJkSjhHOE1zSDhLbUlsbFB1L1dMQ05DZHZhNTNiRVFSVXdqcEpxNmJRZHNzL2hjT2p3cFo1K1Bqc0ZITURQVG52ditURUZ1alltbFc0aE9ZMEozSDNKM2I3bU5GSE5DNFc5bFVFaGhLeXRia1Y0dGRNODJ4QVI1cG1wTFpOcEdjZzVzZTZjM2o3Y2NWODAzUSs1T3lMelNmckw4TjBQbkxpZno3MENEdURuL2haZWpnbHNENnBVZGUwaWFKb2d0UWZRdksvSUUvcUZrTVFrS2lkS3dBb2RUeEZaUWJmNG9JeFpwb3B5SFp4NVVlMXl5bk55K0VoVGR4OW1tZzVEMjh4M2x2N0pOMHJvNXdWUXdBRjhBVzZDRHdHb2orNXlCM2U1UUxlWVJGM3VxMEU0NXpIWnV5Q0VzNUNycXhXd1FvUzRoV0IxQmtVNUJGWUdYQ1d6UENTbkJOVTVraDVxdTl5VHRybXY3ZUlvYUdjZi91aEtGYis0QXM5WUFRZndNNzRCM3YxS2dSZTNrZEMxZFV6NUdEbU5DTkFSTk50N2crZmtiUXZSRENXRmxZU2xXNEdXZFMxY2pOc085TEkyNWlTMnMyQ1ZNZHQ2RUhKK2dHVTN4bnkrbU55WnNqQkxmUDdUYTdvQ3A2S0FBL2hVWlBSR25sNkJxMTNNZWM1VjdXRkljaCtodWdmSWdZUXdDZEFtcWlidTN5YUFDMlhONUNvWnFvbE1OaTR6bkdsa05CUEE4clNjdVNadVdIQ1cwVHZVa0k3Nk1VNjdrSnN2RGlMYmdSK3V3RE5Yd0FIOHpHK0JEOEFVc1BjREQxS2FhMjZPT21udnQ0ajNrb1FETG5pbkV0QVF2aDNCU3FnYWZRbmRmR0tFY0RiTEFBRXNac2hjTkpkTEE0bFQwdmlJZlJ3aXBlbE83SnE5NWhZTE04VlBWK0FaSytBQWZzWTN3THRmS1dEdkJ6NDhmRzBlKzY4ZTlpc0NPSVQ3UUR3SVFleXRhTXNvU0FKYjhtWUZ1TTlBMEtwWkFURUJ6Q3hMRm5LWG9FYk1ta1dsZ2NwVWtoeGRhZVpIclhTemJudld2SGI0aWdONEpidGZuN0VDRHVCbmZBTzgrN1VDdzJHKy9xM2ZhTjhlL3ViaTdlR2IwMUJ0VFVLc3BrRmtYa1hVVWJRaGpOc2dCTEVTd05DeUxVemcwcGV3QnMxY0pXTVJJVE9XblFiSU5DTE1XZ216NXVYWi9FczdUUVBjN093RElPdGUzYmtDejFTQjhFeDc5ODVkZ1YrZ1FPaXk5cUowL1VvV3ZSQm1WVVVMMm5BbDNJYWdTaUNETUthcHJNTXBpTlFoNEpnMmlrSDJXUDhvVkpodDlYdkxxN2lTUjdpYXIvN2tLNlQxTCtqVWsxMkJjMWJBQVh6T2dqLzMzWjNUQk9KMlAvZDdzU1ZFbTM0c1g2Z3pqeUVzWWtCWENYSVF3TUFidVJJTzNHc2dtRk1NV2xjU2pnbnNVUytHVVJWaG42aWJ5MUxiRWQ0bmZFZTYrL3I3Q2dqOGNBVXVnZ0lPNEl0d0Yzd01uMURnaFg3V2dVZzNpSEhCVmZDc1Y0VlpMNkNwQW13YjRyRVZNQXFJQ2VHeUFpYUlqM3NSbzBIQXFCZmkwWGFJTTFSbzM3NTJMZTN1Zmoxak9GUjJaa2JucHl2d2JCVndBRDliL2IzM1g2QkE2bnFwaXJtT1VZOGpnVnBCUjN4eHpkNFhYQWVrRkpCaEZvdFhSS2lsTVM4ZkU4YWpLb0JiRURpU1N1YWgvMklMRVFYTXVHU0dINjdBeFZEQUFYd3g3c01Uam1KemlvVk8ycVJwcktyM2FUZXk2ZzNONlQ1dExEbTNRUk9LRWNDUlJoZ24wVndMOUFnNTd3bnlYdGIyT0VEbVY3WnFmOS92NWp3Nno5Vk13M00xV2gvc3hpaWdZZHlGSE1aOHZlMStTT2xHNnJvYk9XZjdUb2VKYU1jOEEzQitDR0hDT0JHNmM5VjhKTkQ3WEFYZnIxU1BRbTdyYnJIbEFONllKK2Y1bXFnRCtQbTZYeHN6Mmw3ZHRqV09KdTN5ZUM5Mzh4dmF0VGR5Mjk1SFRsd0JwN0lDamlDRWJmV3JCTEZ3U2F5cGhxWWo2SEl2ZFBNOVNIUFVRejF2anNkcFk0VHppVDVYQ2ppQW4veDJlY2x6VkdEeWF5K21uTHU2MHVhWUlCMTE3WExFRmJCOVQ4UThLcmNna0hQZ1hqQWhuQ3BKWGRDMGpOQzVhT2EyUlRxSXFUME1MU2E1V1RSZmZ2a2xCL0E1M2p2djZza1ZjQUEvdVZaZThod1ZlUEh1Uk5zSHVldGFORUlRUS9NOEN1cWVhQk5EYm51UzI0cldDOXJRTjVXOUJTM2tXUWc2NVZwNDBrbC9Vbkg1ZStWWHRwWWpqUEk1RHQyN2NnV2VXQUVIOEJOTDVRWFBVd0g3WDVPN0YvNXhPNXRLTTQ5eHJtRXdxNEE2R25DREVyNnBJM3lYRmRLU0FGNFF5SFUwU0NQTkVNRnRpbnE2dGEzMXVHN2JxejhaNlhtTzNmdHlCWjVVZ2VjR3dFODZJUzkzT1JRWURxRnY0dlh1MVJmNkRWNTVaZDVYblF2U29rSmU5alIzWFBHMlBYQVZiRUNXeEZWd0lweXpiVUZNTTdjZVhoMzg2b1R3clFuZmR0ZmUvM3M1WlBGWlhESUZITUNYN0laZW51bUlEb2VTM3g3K1puYzNMM0tZQUFBRk5VbEVRVlQ5cmQ5b3F5bzJQZUVXUk5CWkZmT2tKMG96bjZlOWdFbWYydy85b0xPK2FOM3Z5MkozK00rV1ZuZDM5MDN1LzViMy8xNGVhWHdtbDBZQkIvQ2x1WldYZXlMOTNqTDF1YWRMeUI3M0EwYjlxUGQ3VVVmOVN2ZjdNUi8xSXNhTXo3a3lYbGJhK1o3djVYNGNMczNzbmd6QWwyYTZQcEhuVllIdE5xWXQ0ZXEya3VPdENxTkJ4UDFCejd6dU0zdzRpRHFtbjI5WGVkbS9zblFBUDY4M2VzUEc3UURlc0J2K3ZFNTNnR1hlR1dpOVUrWGpIWUozcDlMNzJ3UXgvVDZoZTdqVnczaTcwdmxnS3kvNzBuY0FQNjgzZXNQRzdRRGVzQnYrdkU0M3Zvd3VLdXBCek1jOVpHNUI1SHQ5NmU1Vm92ZTRKM3l2Ri9Lb3g3eVl0WDdCLzlmajUvVTJYOFJ4bittWUhNQm5LcTgzZmxvSzVHVXZxUzVxN2JwamFMdVhVM2RIa1Q4VzdUNkM0b1pxK2pqbjdvRUduVTZSdTlQcTE5dHhCYzVTQVFmd1dhcnJiWithQWxvZnBtUWZ5RWpMSTlYbEhyUzVvOHZGN1p6Ylc4akxtMmk3ajBQU0IvMW1QcTJRSE1DbnBydzNkSllLT0lEUFVsMXYrOVFVNkY2TlNjTnNEcGtlYVZyc29abmV5ZDNzWXl5bnQzUStKb0JuSDNmTjdBRmtNZDFDN1FBK05lV2ZiVU9YdlhjSDhHVy93NWRrZm52djNjcFlMcHRscW1kcFBqNU91ampJN1h3LzVQRURYVXozcStiNDhFcTZNMTNnY0lHdklGMlNhZnMwTHJrQ0R1Qkxmb012eS9SZSt4ZXY1QXF6VGhiOVJyZGtEbDNNeld2VHIzZGtxKzdGdW1tM3RPMzJtL1Q2KzEvWHl6SnZuOGZsVnNBQmZMbnY3NldaM2V2dnY2OWJlS1VMVzlORzBadFh2YTNac2w3V0tiUjE5MksxbUd6RlpycWYydm9MdjU2dVhlUExjdkRqcVJYd0JzNWNBUWZ3bVV2c0haeUdBc1BoVUYvSCs5M1dWMTVwOXU3TTZpLysybkwyMmlIbXQ0KzZ4UWhYRjViKzFTLzhjZnVYMTk1SUluSWFYWG9icnNDWksrQUFQbk9KdllOVFVrQUo0Yno3NXB2cCtyZmVhci8xRm8zZXd1VTdINWcrSEVvV0tkLzdvS2ZVcHpmakNweXBBZzdnTTVYWEczY0ZQcThDWG04VEZIQUFiOEpkOWptNkFxN0FoVlRBQVh3aGI0c1B5aFZ3QlRaQkFRZndKdHhsbitOblZjREx1d0xub29BRCtGeGs5azVjQVZmQUZmaWtBZzdnVDJyaUthNkFLK0FLbklzQ0R1QnprZGs3K1N3S2VGbFhZRk1VY0FCdnlwMzJlYm9DcnNDRlU4QUJmT0Z1aVEvSUZYQUZOa1VCQi9DbTNPa25uYWVYY3dWY2dYTlR3QUY4YmxKN1I2NkFLK0FLL0t3Q0R1Q2YxY05qcm9BcjRBcWNtd0lPNEhPVCtrazY4akt1Z0N1d1NRbzRnRGZwYnZ0Y1hRRlg0RUlwNEFDK1VMZkRCK01LdUFLYnBJQUQrTkhkOXBBcjRBcTRBdWVxZ0FQNFhPWDJ6bHdCVjhBVmVLU0FBL2lSRmg1eUJWd0JWK0JjRmJnd0FEN1hXWHRucm9BcjRBcGNBQVVjd0JmZ0p2Z1FYQUZYWURNVmNBQnY1bjMzV2JzQ3JzQUZVR0FGNEFzd0VCK0NLK0FLdUFLYnBvQURlTlB1dU0vWEZYQUZMb3dDRHVBTGN5dDhJSzZBSy9BTUZIaW1YVHFBbjZuODNya3I0QXBzc2dJTzRFMisrejUzVjhBVmVLWUtPSUNmcWZ6ZXVTdXcyUXBzK3V3ZHdKditCUGo4WFFGWDRKa3A0QUIrWnRKN3g2NkFLN0RwQ2ppQU4vMEo4UGx2cmdJKzgyZXVnQVA0bWQ4Q0g0QXI0QXBzcWdJTzRFMjk4ejV2VjhBVmVPWUtPSUNmK1Mzd0FXeW1BajVyVndCd0FQdFQ0QXE0QXE3QU0xTEFBZnlNaFBkdVhRRlh3QlZ3QVBzenNJa0srSnhkZ1F1aGdBUDRRdHdHSDRRcjRBcHNvZ0lPNEUyODZ6NW5WOEFWdUJBS09JQXZ4RzNZckVINGJGMEJWMkNsZ0FONHBZTmZYUUZYd0JVNGR3VWN3T2N1dVhmb0NyZ0Nyc0JLQVFmd1NvZk51ZnBNWFFGWDRNSW80QUMrTUxmQ0IrSUt1QUticG9BRGVOUHV1TS9YRlhBRkxvd0NEdUJ6dlJYZW1TdmdDcmdDanhUNC93QUFBUC8vd3haREVnQUFBQVpKUkVGVUF3Q2dpVjlDc0J3elF3QUFBQUJKUlU1RXJrSmdnZz09XCI7XG4gIGtlYmFiSWNvblNhZmVVcmwgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwodGhpcy5rZWJhYkFJSWNvbik7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICkge1xuICAgIHRoaXMuc2V0U2VsZWN0YWJsZVNldHRpbmdzKCk7XG4gIH1cblxuICBjb2x1bW5UZW1wbGF0ZURpY3Q6IGFueSA9IHt9O1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29sdW1uRGF0YS5mb3JFYWNoKChjb2x1bW46IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgY29sdW1uLnNvcnRhYmxlID0gY29sdW1uLnNvcnRhYmxlID09IHVuZGVmaW5lZCA/IHRydWUgOiBjb2x1bW4uc29ydGFibGU7XG4gICAgICBpZiAoIXRoaXMuaWdub3JlQ29sdW1uQ2VsbENsaWNrLmluY2x1ZGVzKGluZGV4KSkge1xuICAgICAgICBjb2x1bW4uY2xhc3MgPSAnY29sdW1uLWN1cnNvci1wb2ludGVyJztcbiAgICAgIH1cbiAgICAgIGNvbHVtbi5jb2x1bW5XaWR0aCA9IGNvbHVtbi5jb2x1bW5XaWR0aCA/IGNvbHVtbi5jb2x1bW5XaWR0aCA6IFwiNTBcIjtcbiAgICB9KVxuICAgIGlmICghdGhpcy5oYXNBcGlTb3J0aW5nKSB7XG4gICAgICB0aGlzLmxvYWRHcmlkRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIHNjcm9sbEJvdHRvbSgpIHtcbiAgICB0aGlzLm9uc2Nyb2xsQm90dG9tLmVtaXQoKTtcbiAgfVxuXG4gIGdldFBvc2l0aW9uKCk6IGFueSB7XG4gICAgaWYgKHRoaXMuc2hvd1Rvb2xiYXIgJiYgdGhpcy5pbmZpbml0ZVNjcm9sbExvYWRlcikge1xuICAgICAgcmV0dXJuICdib3RoJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2hvd1Rvb2xiYXIpIHtcbiAgICAgIHJldHVybiAndG9wJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW5maW5pdGVTY3JvbGxMb2FkZXIpIHtcbiAgICAgIHJldHVybiAnYm90dG9tJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucGFnZWFibGUpIHtcbiAgICAgIHRoaXMucGFnZVNpemUgPSB0aGlzLl9ncmlkVmlldy5kYXRhPy5sZW5ndGg7XG4gICAgfVxuICAgIHRoaXMuY29sdW1uVGVtcGxhdGVzLmZvckVhY2goeCA9PiB0aGlzLmNvbHVtblRlbXBsYXRlRGljdFt4LnR5cGVdID0geC50ZW1wbGF0ZSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5pbml0R3JpZCgpO1xuICB9XG5cbiAgaW5pdEdyaWQoKSB7XG4gICAgaWYgKHRoaXMuY3VzdG9tRXhwYW5kUm93Q29sdW1uKSB7XG4gICAgICB0aGlzLmV4cGFuZFJvd0luZGV4LmZvckVhY2goKGlkKSA9PiB7XG4gICAgICAgIHRoaXMuZ3JpZC5leHBhbmRSb3coaWQpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRSb3dzID0gdGhpcy5fcHJlU2VsZWN0ZWQ7XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkUm93cz8ubGVuZ3RoID09IHRoaXMuX2dyaWRWaWV3LnRvdGFsKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAnY2hlY2tlZCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2luZGV0ZXJtaW5hdGUnO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ3VuY2hlY2tlZCc7XG4gICAgfVxuICAgIGlmICh0aGlzLmdyaWRFbGVtZW50KSB7XG4gICAgICB0aGlzLmluaXRpYWxHcmlkSGVpZ2h0ID1cbiAgICAgICAgdGhpcy5ncmlkRWxlbWVudD8ubmF0aXZlRWxlbWVudD8ub2Zmc2V0SGVpZ2h0ICsgdGhpcy5ncmlkQm90dG9tU3BhY2U7XG4gICAgICAvLyB0aGlzLmdldEdyaWRIZWlnaHQoKTtcblxuICAgICAgY29uc3QgZ3JpZENvbnRhaW5lciA9IHRoaXMuZ3JpZEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2stZ3JpZC1jb250YWluZXInKVswXTtcbiAgICAgIGlmIChncmlkQ29udGFpbmVyICYmIHRoaXMuc2VsZWN0QWxsTWVzc2FnZUVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUoXG4gICAgICAgICAgZ3JpZENvbnRhaW5lci5wYXJlbnRFbGVtZW50LFxuICAgICAgICAgIHRoaXMuc2VsZWN0QWxsTWVzc2FnZUVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgZ3JpZENvbnRhaW5lcixcbiAgICAgICAgICB0cnVlXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBjb25zdCBzZWxlY3RBbGxDaGVja2JveCA9IHRoaXMuZ3JpZEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoJy5zZWxlY3QtYWxsLWhlYWRlciBpbnB1dCcpO1xuICAgICAgaWYgKHNlbGVjdEFsbENoZWNrYm94KSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkoc2VsZWN0QWxsQ2hlY2tib3gsICdkaXNhYmxlZCcsIHRoaXMuY2FuRW5hYmxlU2VsZWN0QWxsKCkpO1xuICAgICAgfVxuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0QWNyb3NzUGFnZXMoaXNTZWxlY3RlZDogYm9vbGVhbikge1xuICAgIHRoaXMudHJpZ2dlclNlbGVjdEFsbFBhZ2VzRXZlbnQoaXNTZWxlY3RlZCk7XG4gICAgaWYgKCFpc1NlbGVjdGVkKSB7XG4gICAgICB0aGlzLm9uU2VsZWN0QWxsQ2hhbmdlKHRoaXMucHJldmlvdXNTZWxlY3RBbGxTdGF0ZSlcbiAgICB9XG4gIH1cblxuICB0cmlnZ2VyU2VsZWN0QWxsUGFnZXNFdmVudChpc1NlbGVjdGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5hbGxQYWdlc1NlbGVjdGVkID0gaXNTZWxlY3RlZDtcbiAgICB0aGlzLm9uU2VsZWN0QWxsQWNyb3NzUGFnZXMuZW1pdChpc1NlbGVjdGVkKTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbUNvdW50ID0gaXNTZWxlY3RlZCA/IHRoaXMuX2dyaWRWaWV3LnRvdGFsIDogMDtcbiAgICBjb25zb2xlLmxvZygndHJpZ2dlclNlbGVjdEFsbFBhZ2VzRXZlbnQgOiBpc1NlbGVjdGVkJywgaXNTZWxlY3RlZCk7XG4gIH1cblxuICBhZGRTZWxlY3RBbGxNZXNzYWdlKHNlbGVjdEFsbDogYm9vbGVhbikge1xuICAgIHRoaXMuc2VsZWN0QWxsTXNnUGFyZW50RWxlbWVudCA9IHRoaXMuc2VsZWN0QWxsTWVzc2FnZUVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LnBhcmVudEVsZW1lbnQ7XG4gICAgaWYgKHRoaXMuc2hvd1NlbGVjdEFsbE1lc3NhZ2UgJiYgdGhpcy5zZWxlY3RBbGxNc2dQYXJlbnRFbGVtZW50ICYmICh0aGlzLl9wYWdlQ291bnQgPiAxIHx8IHRoaXMuaXNJbmZpbml0ZVNjcm9sbEdyaWQpKSB7XG4gICAgICBjb25zdCBzZWxlY3RBbGxNc2dFbGVtZW50ID0gdGhpcy5zZWxlY3RBbGxNZXNzYWdlRWxlbWVudD8ubmF0aXZlRWxlbWVudD8ucXVlcnlTZWxlY3RvcignLmxpYi1ncmlkLXNlbGVjdC1hbGwtbWVzc2FnZS1jb250YWluZXInKTtcbiAgICAgIGlmIChzZWxlY3RBbGwpIHtcbiAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gdGhpcy5zZWxlY3RBbGxNc2dQYXJlbnRFbGVtZW50Lm9mZnNldEhlaWdodDtcblxuICAgICAgICBzZWxlY3RBbGxNc2dFbGVtZW50Py5jbGFzc0xpc3QuYWRkKCdsaWItZ3JpZC1zZWxlY3QtYWxsLW1lc3NhZ2Utc2hvdycpO1xuXG4gICAgICAgIGNvbnN0IGFmdGVySGVpZ2h0ID0gdGhpcy5zZWxlY3RBbGxNc2dQYXJlbnRFbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICAgICAgdGhpcy5zZWxlY3RBbGxNc2dQYXJlbnRFbGVtZW50LnN0eWxlLmhlaWdodCA9ICh0aGlzLnNlbGVjdEFsbE1zZ1BhcmVudEVsZW1lbnQub2Zmc2V0SGVpZ2h0IC0gKGFmdGVySGVpZ2h0IC0gYmVmb3JlSGVpZ2h0KSkgKyAncHgnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VsZWN0QWxsTXNnRWxlbWVudD8uY2xhc3NMaXN0LnJlbW92ZSgnbGliLWdyaWQtc2VsZWN0LWFsbC1tZXNzYWdlLXNob3cnKTtcbiAgICAgICAgaWYgKHRoaXMuYWxsUGFnZXNTZWxlY3RlZCkge1xuICAgICAgICAgIHRoaXMudHJpZ2dlclNlbGVjdEFsbFBhZ2VzRXZlbnQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcGFnZUNoYW5nZShldmVudDogUGFnZUNoYW5nZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0QWxsTXNnUGFyZW50RWxlbWVudCkge1xuICAgICAgdGhpcy5zZWxlY3RBbGxNc2dQYXJlbnRFbGVtZW50LnN0eWxlLmhlaWdodCA9ICcnXG4gICAgfVxuICAgIHRoaXMub25QYWdlQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgc2V0U2VsZWN0YWJsZVNldHRpbmdzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNoZWNrYm94T25seSB8fCB0aGlzLm1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICB0aGlzLmRyYWdDb2x1bW5zID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RhYmxlU2V0dGluZ3MgPSB7XG4gICAgICBjaGVja2JveE9ubHk6IHRoaXMuY2hlY2tib3hPbmx5LFxuICAgICAgbW9kZTogdGhpcy5tb2RlLFxuICAgICAgZHJhZzogdGhpcy5kcmFnQ29sdW1ucyxcbiAgICB9O1xuICB9XG5cbiAgLy8gV2UgY2FuIGV4dHJhY3QgZGF0YSBvdXQgb2Ygcm93IG51bWJlciB1c2luZyBiZWxvdyBmdW5jdGlvblxuICAvKiBleHRyYWN0KCkge1xuICAgIHRoaXMuZXh0cmFjdERhdGFJdGVtcyA9IHRoaXMubXlTZWxlY3Rpb24ubWFwKGlkeCA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5ncmlkRGF0YS5maW5kKChkYXRhOiB7IFByb2R1Y3RJRDogbnVtYmVyOyB9KSA9PiBkYXRhLlByb2R1Y3RJRCA9PT0gaWR4KTtcbiAgICB9KTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmV4dHJhY3REYXRhSXRlbXMpXG4gICAgdGhpcy5zZWxlY3RlZFJvd0RhdGEuZW1pdCh0aGlzLmV4dHJhY3REYXRhSXRlbXMpO1xuICB9ICovXG5cbiAgc2VsZWN0ZWRLZXlzQ2hhbmdlKHJvd3M6IG51bWJlcltdKSB7XG4gICAgbGV0IHNlbGVjdGVkUm93RGF0YTogYW55ID0gW107XG4gICAgbGV0IHNlbGVjdGVkUm93c0NvdW50ID0gMDtcblxuICAgIGlmIChyb3dzPy5sZW5ndGggPiAwKSB7XG4gICAgICBzZWxlY3RlZFJvd3NDb3VudCA9IHJvd3M/Lmxlbmd0aDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPiAwICYmIHRoaXMuZGlzYWJsZVByZVNlbGVjdGVkUm93cykge1xuICAgICAgc2VsZWN0ZWRSb3dzQ291bnQgPSB0aGlzLnNlbGVjdGVkUm93cz8ubGVuZ3RoO1xuICAgICAgcm93cyA9IHRoaXMuc2VsZWN0ZWRSb3dzO1xuICAgIH1cbiAgICB0aGlzLnByZXZpb3VzU2VsZWN0QWxsU3RhdGUgPSB0aGlzLnNlbGVjdEFsbFN0YXRlO1xuICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSB0aGlzLmdldFNlbGVjdEFsbFN0YXRlKHNlbGVjdGVkUm93c0NvdW50KTtcbiAgICBpZiAodGhpcy5zZWxlY3RBbGxTdGF0ZSA9PT0gJ3VuY2hlY2tlZCcgfHwgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9PT0gJ2luZGV0ZXJtaW5hdGUnKSB7XG4gICAgICB0aGlzLmFkZFNlbGVjdEFsbE1lc3NhZ2UoZmFsc2UpO1xuICAgIH1cblxuICAgIHNlbGVjdGVkUm93RGF0YSA9IHJvd3MubWFwKHJvd0RhdGEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX2dyaWRWaWV3LmRhdGEuZmluZCgoZGF0YSkgPT4gZGF0YVt0aGlzLmdyaWRSb3dTZWxlY3RCeVZhbHVlXSA9PT0gcm93RGF0YSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnNlbGVjdGVkUm93RGF0YS5lbWl0KHNlbGVjdGVkUm93RGF0YSk7XG4gIH1cblxuICBnZXRTZWxlY3RBbGxTdGF0ZShzZWxlY3RlZFJvd3NDb3VudDogbnVtYmVyKTogYW55IHtcbiAgICBpZiAoc2VsZWN0ZWRSb3dzQ291bnQgPT0gdGhpcy5fZ3JpZFZpZXcudG90YWwpIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAnY2hlY2tlZCc7XG4gICAgfSBlbHNlIGlmIChzZWxlY3RlZFJvd3NDb3VudCA9PSAwKSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ3VuY2hlY2tlZCc7XG4gICAgICB0aGlzLmFkZFNlbGVjdEFsbE1lc3NhZ2UoZmFsc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2luZGV0ZXJtaW5hdGUnO1xuICAgICAgdGhpcy5hZGRTZWxlY3RBbGxNZXNzYWdlKGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBvbktlYmFiQ2xpY2soaXRlbTogYW55LCByb3dEZXRhaWxzOiBhbnkpIHtcbiAgICB0aGlzLmtlYmFiSXRlbUNsaWNrLmVtaXQoeyBhY3Rpb246IGl0ZW0sIHJvd0RldGFpbHMgfSk7XG4gIH1cblxuICBvbkRldGFpbEV4cGFuZChyb3dEYXRhOiBhbnkpIHtcbiAgICB0aGlzLnJvd0RldGFpbHMuZW1pdChyb3dEYXRhLmRhdGFJdGVtKTtcbiAgfVxuXG4gIGNlbGxDbGlja0hhbmRsZXIoYXJnczogQ2VsbENsaWNrRXZlbnQpIHtcbiAgICBpZiAodGhpcy5hbGxvd0NvbHVtbkNsaWNrKSB7XG4gICAgICBpZiAodGhpcy5pZ25vcmVDb2x1bW5DZWxsQ2xpY2suaW5jbHVkZXMoYXJncy5jb2x1bW5JbmRleCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5yb3dEYXRhT2ZDbGlja2VkQ2VsbC5lbWl0KHsgZGF0YUl0ZW06IGFyZ3MuZGF0YUl0ZW0sIGNvbHVtbkluZGV4OiBhcmdzLmNvbHVtbkluZGV4IH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5hbGxvd0VkaXRpbmdDZWxsKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cCA9IGNyZWF0ZUZvcm1Hcm91cChhcmdzLmRhdGFJdGVtKTtcbiAgICAgIGFyZ3Muc2VuZGVyLmVkaXRDZWxsKGFyZ3Mucm93SW5kZXgsIGFyZ3MuY29sdW1uSW5kZXgsIHRoaXMuZm9ybUdyb3VwKTtcbiAgICB9XG4gIH1cblxuICBzb3J0Q2hhbmdlKHNvcnQ6IFNvcnREZXNjcmlwdG9yW10pOiB2b2lkIHtcbiAgICB0aGlzLnNvcnQgPSBzb3J0O1xuICAgIGlmICghdGhpcy5oYXNBcGlTb3J0aW5nKSB7XG4gICAgICB0aGlzLmxvYWRHcmlkRGF0YSgpO1xuICAgIH1cbiAgICB0aGlzLnNvcnREaXJlY3Rpb24uZW1pdCh0aGlzLnNvcnQpO1xuICB9XG5cbiAgbG9hZEdyaWREYXRhKCk6IHZvaWQge1xuICAgIHRoaXMuX2dyaWRWaWV3ID0ge1xuICAgICAgZGF0YTogb3JkZXJCeSh0aGlzLl9ncmlkVmlldz8uZGF0YSwgdGhpcy5zb3J0KSxcbiAgICAgIHRvdGFsOiB0aGlzLl9ncmlkVmlldz8udG90YWwsXG4gICAgfTtcbiAgfVxuXG4gIGV4cGFuZFJvdyhpZDogbnVtYmVyKSB7XG4gICAgdGhpcy5ncmlkLmV4cGFuZFJvdyhpZCk7XG4gICAgdGhpcy5leHBhbmRSb3dJbmRleC5wdXNoKGlkKTtcbiAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAvLyAgIHRoaXMuZ2V0R3JpZEhlaWdodCgpO1xuICAgIC8vIH0sIDApO1xuICB9XG5cbiAgY29sbGFwc2VSb3coaWQ6IG51bWJlcikge1xuICAgIHRoaXMuZ3JpZC5jb2xsYXBzZVJvdyhpZCk7XG4gICAgdGhpcy5leHBhbmRSb3dJbmRleC5zcGxpY2UodGhpcy5leHBhbmRSb3dJbmRleC5pbmRleE9mKGlkKSwgMSk7XG4gICAgLy8gaWYgKHRoaXMuZXhwYW5kUm93SW5kZXg/Lmxlbmd0aCA9PSAwKSB7XG4gICAgLy8gICBjb25zdCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgLy8gICBjb25zdCB2aWV3cG9ydDogYW55ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpYi1ncmlkJyk7XG4gICAgLy8gICBjb25zdCBncmlkT2Zmc2V0ID0gdmlld3BvcnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnNjcm9sbFk7XG4gICAgLy8gICBpZiAod2luZG93SGVpZ2h0ID4gZ3JpZE9mZnNldCArIHRoaXMuaW5pdGlhbEdyaWRIZWlnaHQpIHtcbiAgICAvLyAgICAgdGhpcy5oZWlnaHQgPSAnMTAwJSc7XG4gICAgLy8gICAgIHJldHVybjtcbiAgICAvLyAgIH1cbiAgICAvLyAgIC8vIHRoaXMuZ2V0R3JpZEhlaWdodCgpO1xuICAgIC8vIH1cbiAgfVxuXG4gIG9uRGVsZXRlKHJvd0RldGFpbHM6IGFueSkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5nZXRIZWFkZXJIZWlnaHQoKTtcbiAgICB9LCAxMDAwKTtcbiAgICB0aGlzLmRlbGV0ZWRSb3dEYXRhLmVtaXQocm93RGV0YWlscyk7XG4gIH1cblxuICBnZXRIZWFkZXJIZWlnaHQoKSB7XG4gICAgaWYgKHRoaXMuX2dyaWRWaWV3Py5kYXRhPy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiAnaGlkZS1oZWFkZXInO1xuICAgIH1cbiAgICByZXR1cm4gJ3ZpZXctaGVhZGVyJztcbiAgfVxuXG4gIC8qXG4gICAqIFRoaXMgbG9naWMgb2YgZHluYW1pY2FsbHkgY2FsY3VsYXRpbmcgdGhlIGhlaWdodCBvZiBncmlkIG5lZWQgZnVydGhlciBicmFpbnN0b3JtaW5nIGhlbmNlIGNvbW1lbnRlZCBmb3Igbm93LlxuICAgKi9cbiAgLy8gZ2V0R3JpZEhlaWdodCgpIHtcbiAgLy8gICBjb25zdCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gIC8vICAgY29uc3Qgdmlld3BvcnQ6IGFueSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaWItZ3JpZCcpO1xuICAvLyAgIGNvbnN0IGdyaWRPZmZzZXQgPSB2aWV3cG9ydC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyB3aW5kb3cuc2Nyb2xsWTtcbiAgLy8gICBjb25zdCBncmlkSGVpZ2h0ID1cbiAgLy8gICAgIHRoaXMuZ3JpZEVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgKyB0aGlzLmdyaWRCb3R0b21TcGFjZTsgLy9ncmlkIHNob3VsZCBoYXZlIDI0cHggc3BhY2UgYXQgYm90dG9tXG4gIC8vICAgaWYgKGdyaWRPZmZzZXQgKyBncmlkSGVpZ2h0ID49IHdpbmRvd0hlaWdodCkge1xuICAvLyAgICAgdGhpcy5oZWlnaHQgPSB3aW5kb3dIZWlnaHQgLSAoZ3JpZE9mZnNldCArIHRoaXMuZ3JpZEJvdHRvbVNwYWNlKTtcbiAgLy8gICB9XG4gIC8vIH1cblxuICAvLyBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgLy8gcmVzaXplKGV2OiBhbnkpIHtcbiAgLy8gICBpZiAoZXYudGFyZ2V0LmlubmVySGVpZ2h0ID4gdGhpcy5yZXNpemVIZWlnaHQpIHtcbiAgLy8gICAgIHRoaXMucmVzaXplSGVpZ2h0ID0gZXYudGFyZ2V0LmlubmVySGVpZ2h0O1xuICAvLyAgICAgdGhpcy5oZWlnaHQgPSAnMTAwJSc7XG4gIC8vICAgfVxuICAvLyAgIGlmICh0aGlzLnJlc2l6ZUhlaWdodCA+IHdpbmRvdy5pbm5lckhlaWdodCkge1xuICAvLyAgICAgdGhpcy5yZXNpemVIZWlnaHQgPSAwO1xuICAvLyAgIH1cbiAgLy8gICB0aGlzLmdldEdyaWRIZWlnaHQoKTtcbiAgLy8gfVxuXG4gIHJvd0NsYXNzID0gKGFyZ3M6IFJvd0NsYXNzQXJncykgPT4ge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkUm93cyAmJiB0aGlzLmRpc2FibGVQcmVTZWxlY3RlZFJvd3MpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgICdrLWRpc2FibGVkJzogdGhpcy5zZWxlY3RlZFJvd3MuaW5jbHVkZXMoXG4gICAgICAgICAgYXJncy5kYXRhSXRlbVt0aGlzLmdyaWRSb3dTZWxlY3RCeVZhbHVlXVxuICAgICAgICApIHx8IHRoaXMuYWxsUGFnZXNTZWxlY3RlZCxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfTtcblxuICBleHBhbmRDb2x1bW5DbGFzcygpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCA+IDAgJiYgdGhpcy5kaXNhYmxlUHJlU2VsZWN0ZWRSb3dzKSB7XG4gICAgICB0aGlzLmV4cGFuZFJvd0NvbHVtbldpZHRoID0gMTk0O1xuICAgICAgcmV0dXJuICdleHBhbmQtcm93JztcbiAgICB9XG4gICAgdGhpcy5leHBhbmRSb3dDb2x1bW5XaWR0aCA9IDU2O1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIG9uU2VsZWN0QWxsQ2hhbmdlKGNoZWNrZWRTdGF0ZTogU2VsZWN0QWxsQ2hlY2tib3hTdGF0ZSk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGNoZWNrZWRTdGF0ZSA9PT0gJ2NoZWNrZWQnXG4gICAgKSB7XG4gICAgICB0aGlzLl9wcmVTZWxlY3RlZCA9IHRoaXMuX2dyaWRWaWV3LmRhdGFcbiAgICAgICAgLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdKVxuICAgICAgICAuZmlsdGVyKChpZDogYW55KSA9PiBpZCk7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2NoZWNrZWQnO1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1Db3VudCA9IHRoaXMuX2dyaWRWaWV3LmRhdGEubGVuZ3RoO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCA+IDAgJiYgdGhpcy5kaXNhYmxlUHJlU2VsZWN0ZWRSb3dzKSB7XG4gICAgICB0aGlzLl9wcmVTZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRSb3dzO1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICdpbmRldGVybWluYXRlJztcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtQ291bnQgPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9wcmVTZWxlY3RlZCA9IFtdO1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1Db3VudCA9IDA7XG4gICAgfVxuICAgIHRoaXMuYWRkU2VsZWN0QWxsTWVzc2FnZSh0aGlzLnNlbGVjdEFsbFN0YXRlID09PSAnY2hlY2tlZCcpO1xuICB9XG5cbiAgY2FuRW5hYmxlU2VsZWN0QWxsKCkge1xuICAgIHJldHVybiAodGhpcy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCA9PSB0aGlzLl9ncmlkVmlldy50b3RhbCAmJlxuICAgICAgdGhpcy5kaXNhYmxlUHJlU2VsZWN0ZWRSb3dzKVxuICB9XG5cbiAgcHVibGljIGNlbGxDbG9zZUhhbmRsZXIoYXJnczogQ2VsbENsb3NlRXZlbnQpOiB2b2lkIHtcbiAgICBsZXQgeyBmb3JtR3JvdXAsIGRhdGFJdGVtIH0gPSBhcmdzO1xuICAgIGlmICghZm9ybUdyb3VwLnZhbGlkKSB7XG4gICAgICBhcmdzLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfSBlbHNlIGlmIChmb3JtR3JvdXAuZGlydHkpIHtcbiAgICAgIGlmIChhcmdzLm9yaWdpbmFsRXZlbnQgJiYgYXJncy5vcmlnaW5hbEV2ZW50LmtleUNvZGUgPT09IEtleXMuRXNjYXBlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIE9iamVjdC5hc3NpZ24oZGF0YUl0ZW0sIGZvcm1Hcm91cC52YWx1ZSk7XG4gICAgICB0aGlzLnNhdmVDaGFuZ2VzKCk7XG4gICAgICB0aGlzLnVwZGF0ZWREYXRhLmVtaXQodGhpcy5ncmlkLmRhdGEpXG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNhdmVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZ3JpZC5jbG9zZUNlbGwoKTtcbiAgICB0aGlzLmdyaWQuY2FuY2VsQ2VsbCgpO1xuICB9XG5cbiAgcmVmcmVzaEdyaWREYXRhKCkge1xuICAgIHRoaXMuZW1pdFJlZnJlc2hFdnQuZW1pdCgpO1xuICB9XG5cbiAgb25DaGVmeUNsaWNrKGU6IGFueSwgZGF0YUl0ZW06IGFueSwgcXVlcnkgPSBudWxsKSB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBjb25zdCBjdXN0b21FdmVudCA9IG5ldyBDdXN0b21FdmVudCgnZ3JpZENoZWZ5Q2xpY2snLCB7XG4gICAgICBkZXRhaWw6IHtcbiAgICAgICAgaXRlbU5hbWU6IHRoaXMuaXRlbU5hbWUsXG4gICAgICAgIGRhdGFJdGVtOiBkYXRhSXRlbSxcbiAgICAgICAgcXVlcnk6IHF1ZXJ5LFxuICAgICAgICBjb2x1bW5EYXRhOiB0aGlzLmNvbHVtbkRhdGFcbiAgICAgIH0sXG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgY2FuY2VsYWJsZTogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLy8gRGlzcGF0Y2ggb24gZG9jdW1lbnQgdG8gbWFrZSBpdCBnbG9iYWxseSBhdmFpbGFibGVcbiAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGN1c3RvbUV2ZW50KTtcbiAgfVxuXG59XG4iLCI8ZGl2ICNncmlkRWxlbWVudCBbbmdDbGFzc109XCJjb2x1bW5Db250ZW50Tm9XcmFwID8gJ2NvbHVtbi1jb250ZW50LW5vd3JhcCcgOiAnJ1wiPlxuICA8a2VuZG8tZ3JpZCBbZGF0YV09XCJfZ3JpZFZpZXdcIiBbcGFnZVNpemVdPVwicGFnZVNpemVcIiBbc2tpcF09XCJza2lwXCIgW3NlbGVjdGFibGVdPVwic2VsZWN0YWJsZVNldHRpbmdzXCJcbiAgICBbcGFnZWFibGVdPVwicGFnZWFibGVcIiBbc29ydGFibGVdPVwic29ydGFibGVcIiBbbG9hZGluZ109XCJncmlkTG9hZGluZ1wiIFtncm91cGFibGVdPVwiZ3JvdXBhYmxlXCJcbiAgICBbcmVvcmRlcmFibGVdPVwicmVvcmRlcmFibGVcIiBbcmVzaXphYmxlXT1cInJlc2l6YWJsZVwiIFtjb2x1bW5NZW51XT1cImNvbHVtbk1lbnVcIiBbbmF2aWdhYmxlXT1cIm5hdmlnYWJsZVwiXG4gICAgW2hlaWdodF09XCJncmlkSGVpZ2h0XCIgKGNoYW5nZSk9XCJzZXRTZWxlY3RhYmxlU2V0dGluZ3MoKVwiIChzZWxlY3RlZEtleXNDaGFuZ2UpPVwic2VsZWN0ZWRLZXlzQ2hhbmdlKCRldmVudClcIlxuICAgIFtrZW5kb0dyaWRTZWxlY3RCeV09XCJncmlkUm93U2VsZWN0QnlWYWx1ZVwiIChkZXRhaWxFeHBhbmQpPVwib25EZXRhaWxFeHBhbmQoJGV2ZW50KVwiIFtzZWxlY3RlZEtleXNdPVwiX3ByZVNlbGVjdGVkXCJcbiAgICAocGFnZUNoYW5nZSk9XCJwYWdlQ2hhbmdlKCRldmVudClcIiAoY2VsbENsaWNrKT1cImNlbGxDbGlja0hhbmRsZXIoJGV2ZW50KVwiIChjZWxsQ2xvc2UpPVwiY2VsbENsb3NlSGFuZGxlcigkZXZlbnQpXCJcbiAgICBbc29ydF09XCJzb3J0XCIgKHNvcnRDaGFuZ2UpPVwic29ydENoYW5nZSgkZXZlbnQpXCIgKHNjcm9sbEJvdHRvbSk9XCJzY3JvbGxCb3R0b20oKVwiIFtuZ0NsYXNzXT1cImdldEhlYWRlckhlaWdodCgpXCJcbiAgICBpZD1cImxpYi1ncmlkXCIgW3Jvd0NsYXNzXT1cInJvd0NsYXNzXCI+XG4gICAgPGRpdiAjc2VsZWN0QWxsTWVzc2FnZUVsZW1lbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwibGliLWdyaWQtc2VsZWN0LWFsbC1tZXNzYWdlLWNvbnRhaW5lclwiXG4gICAgICAgICpuZ0lmPVwiKChzZWxlY3RlZEl0ZW1Db3VudCA8IF9ncmlkVmlldy50b3RhbCkgfHwgYWxsUGFnZXNTZWxlY3RlZClcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIihzZWxlY3RlZEl0ZW1Db3VudCA8IF9ncmlkVmlldy50b3RhbClcIiBjbGFzcz1cImxpYi1ncmlkLXNlbGVjdC1hbGwtbWVzc2FnZVwiPlxuICAgICAgICAgIDxsaWItdHlwb2dyYXBoeSBbZGVmYXVsdFRleHRdPVwiJ0FsbCAnK3NlbGVjdGVkSXRlbUNvdW50KycgJytpdGVtTmFtZSsnIG9uIHRoaXMgcGFnZSBhcmUgc2VsZWN0ZWQuJ1wiXG4gICAgICAgICAgICB0eXBlPVwiQk9EWV9TTUFMTFwiPjwvbGliLXR5cG9ncmFwaHk+XG4gICAgICAgICAgPHU+PGxpYi10eXBvZ3JhcGh5IChjbGljayk9XCJzZWxlY3RBY3Jvc3NQYWdlcyh0cnVlKVwiIGNsYXNzPVwic2VsZWN0LWFsbC1oYW5kbGVyXCJcbiAgICAgICAgICAgICAgW2RlZmF1bHRUZXh0XT1cIidTZWxlY3QgYWxsICcrX2dyaWRWaWV3LnRvdGFsKycgJytpdGVtTmFtZSsnIGZyb20gYWxsIHBhZ2VzJ1wiXG4gICAgICAgICAgICAgIHR5cGU9XCJCT0RZX1NNQUxMXCI+PC9saWItdHlwb2dyYXBoeT48L3U+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiYWxsUGFnZXNTZWxlY3RlZFwiIGNsYXNzPVwibGliLWdyaWQtc2VsZWN0LWFsbC1tZXNzYWdlXCI+XG4gICAgICAgICAgPGxpYi1pY29uIG5hbWU9XCJjaXJjbGUtY2hlY2tlZFwiIGNsYXNzPVwiYWxsLXNlbGVjdGVkLWljb25cIj48L2xpYi1pY29uPlxuICAgICAgICAgIDxsaWItdHlwb2dyYXBoeSBbZGVmYXVsdFRleHRdPVwiJ0FsbCAnK19ncmlkVmlldy50b3RhbCsnICcraXRlbU5hbWUrJyBhY3Jvc3MgYWxsIHBhZ2VzIGFyZSBzZWxlY3RlZC4nXCJcbiAgICAgICAgICAgIHR5cGU9XCJCT0RZX1NNQUxMXCI+PC9saWItdHlwb2dyYXBoeT5cbiAgICAgICAgICA8dT48bGliLXR5cG9ncmFwaHkgKGNsaWNrKT1cInNlbGVjdEFjcm9zc1BhZ2VzKGZhbHNlKVwiIGNsYXNzPVwic2VsZWN0LWFsbC1oYW5kbGVyXCJcbiAgICAgICAgICAgICAgW2RlZmF1bHRUZXh0XT1cIidDbGVhciBzZWxlY3Rpb24nXCIgdHlwZT1cIkJPRFlfU01BTExcIj48L2xpYi10eXBvZ3JhcGh5PjwvdT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkVG9vbGJhclRlbXBsYXRlIFtwb3NpdGlvbl09XCJnZXRQb3NpdGlvbigpXCIgbGV0LXBvc2l0aW9uPVwicG9zaXRpb25cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93VG9vbGJhciAmJiBwb3NpdGlvbiA9PT0gJ3RvcCdcIj5cbiAgICAgICAgPCEtLSA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2hvd0FJSWNvblwiPjwvbmctY29udGFpbmVyPiAtLT5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1JlZnJlc2hcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2hvd1JlZnJlc2hUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImluZmluaXRlU2Nyb2xsTG9hZGVyICYmIHBvc2l0aW9uID09PSAnYm90dG9tJ1wiPlxuICAgICAgICA8bGliLWdyaWQtcGFnaW5hdGlvbi1zcGFjZXI+PC9saWItZ3JpZC1wYWdpbmF0aW9uLXNwYWNlcj5cbiAgICAgICAgPGxpYi1sb2FkZXIgW3R5cGVdPVwibG9hZGVyVHlwZVwiIFtzaXplXT1cImxvYWRlclNpemVcIiBbdGhlbWVDb2xvcl09XCJsb2FkZXJUaGVtZVwiPjwvbGliLWxvYWRlcj5cbiAgICAgICAgPGxpYi1ncmlkLXBhZ2luYXRpb24tc3BhY2VyPjwvbGliLWdyaWQtcGFnaW5hdGlvbi1zcGFjZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNzaG93UmVmcmVzaFRlbXBsYXRlPlxuICAgICAgPGxpYi10b29sdGlwIHBvc2l0aW9uPVwidG9wXCIgc2hvd09uPVwiaG92ZXJcIiBbdG9vbHRpcFdpZHRoXT1cIjY4XCIgW2NhbGxvdXRdPVwidHJ1ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbHRpcC1jb250ZW50XCI+XG4gICAgICAgICAgPGxpYi10eXBvZ3JhcGh5IGRlZmF1bHRUZXh0PVwiUmVmcmVzaFwiPjwvbGliLXR5cG9ncmFwaHk+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bGliLWJ1dHRvbiBzaXplPVwic21hbGxcIiB3aWR0aD1cIjIuNHJlbVwiIHJvdW5kZWQ9XCJzbWFsbFwiIGZpbGxNb2RlPVwic29saWRcIiB0aGVtZUNvbG9yPVwicHJpbWFyeVwiIGljb25OYW1lPVwicmVzZXRcIlxuICAgICAgICAgIFt0b2dnbGVhYmxlXT1cImZhbHNlXCIgKGJ1dHRvbkNsaWNrKT1cInJlZnJlc2hHcmlkRGF0YSgpXCIgW2ljb25CdXR0b25dPVwidHJ1ZVwiIFtpY29uRm9udFNpemVdPVwiMTNcIj48L2xpYi1idXR0b24+XG4gICAgICA8L2xpYi10b29sdGlwPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPCEtLSA8bmctdGVtcGxhdGUgI3Nob3dBSUljb24+XG4gICAgICA8ZGl2ICpuZ0lmPVwibWFpbkFJUXVlc3Rpb25zICYmIG1haW5BSVF1ZXN0aW9ucz8ubGVuZ3RoID4gMFwiPlxuICAgICAgICA8ZGl2IGtlbmRvUG9wb3ZlckFuY2hvciBbcG9wb3Zlcl09XCJhY3Rpb25Qb3BvdmVyXCIgc2hvd09uPVwiaG92ZXJcIj5cbiAgICAgICAgICA8aW1nIFtzcmNdPVwia2ViYWJJY29uU2FmZVVybFwiIGFsdD1cIkFzayBDaGVmIEFJXCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgd2lkdGg6ICcxLjc1cmVtJywgY3Vyc29yOiAncG9pbnRlcicsIHBvc2l0aW9uOiAncmVsYXRpdmUnLCB0b3A6ICctMnB4JyB9XCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkNoZWZ5Q2xpY2soJGV2ZW50LCBudWxsKVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxrZW5kby1wb3BvdmVyICNhY3Rpb25Qb3BvdmVyIGFwcGVuZFRvPVwiYm9keVwiIFt3aWR0aF09XCIyMDBcIiBbb2Zmc2V0XT1cIi0xNlwiIHBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICAgICAgICAgIHBvcHVwQ2xhc3M9XCJjaGVmLWFpLW1lbnVcIiBbY2FsbG91dF09XCJ0cnVlXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUga2VuZG9Qb3BvdmVyQm9keVRlbXBsYXRlPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVjb21tZW5kYXRpb25zXCIgKm5nRm9yPVwibGV0IG1haW5BSVF1ZXN0aW9uIG9mIG1haW5BSVF1ZXN0aW9uc1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2hlZnlDbGljaygkZXZlbnQsIG51bGwsIG1haW5BSVF1ZXN0aW9uKVwiPlxuICAgICAgICAgICAgICAgIDxsaWItdHlwb2dyYXBoeSB0eXBlPVwiQk9EWV9NRURJVU1cIiBbZGVmYXVsdFRleHRdPVwibWFpbkFJUXVlc3Rpb25cIj48L2xpYi10eXBvZ3JhcGh5PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlY29tbWVuZGF0aW9ucyBhY3Rpb24taXRlbVwiIChjbGljayk9XCJvbkNoZWZ5Q2xpY2soJGV2ZW50LCBudWxsKVwiPlxuICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJrZWJhYkljb25TYWZlVXJsXCIgYWx0PVwiQXNrIENoZWYgQUlcIlxuICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyB3aWR0aDogJzEuNXJlbScsIGN1cnNvcjogJ3BvaW50ZXInLCBwb3NpdGlvbjogJ3JlbGF0aXZlJywgdG9wOiAnLTJweCcgfVwiIC8+XG4gICAgICAgICAgICAgICAgPGxpYi10eXBvZ3JhcGh5IHR5cGU9XCJCT0RZX01FRElVTVwiIGRlZmF1bHRUZXh0PVwiU3RhcnQgTmV3IENvbnZlcnNhdGlvblwiPjwvbGliLXR5cG9ncmFwaHk+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L2tlbmRvLXBvcG92ZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiIW1haW5BSVF1ZXN0aW9ucyB8fCBtYWluQUlRdWVzdGlvbnM/Lmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICA8aW1nIFtzcmNdPVwia2ViYWJJY29uU2FmZVVybFwiIGFsdD1cIkFzayBDaGVmIEFJXCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7IHdpZHRoOiAnMS43NXJlbScsIGN1cnNvcjogJ3BvaW50ZXInLCBwb3NpdGlvbjogJ3JlbGF0aXZlJywgdG9wOiAnLTJweCcgfVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQ2hlZnlDbGljaygkZXZlbnQsIG51bGwpXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+IC0tPlxuXG4gICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZExvYWRpbmdUZW1wbGF0ZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJrLWxvYWRpbmctY29sb3JcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsb2FkaW5nLWNvbnRhaW5lclwiPlxuICAgICAgICA8bGliLWxvYWRlciBbdHlwZV09XCJsb2FkZXJUeXBlXCIgW3NpemVdPVwibG9hZGVyU2l6ZVwiIFt0aGVtZUNvbG9yXT1cImxvYWRlclRoZW1lXCI+PC9saWItbG9hZGVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cInRoaXMuX2dyaWRWaWV3LnRvdGFsID09PSAwXCIga2VuZG9HcmlkTm9SZWNvcmRzVGVtcGxhdGU+XG4gICAgICA8bGliLXR5cG9ncmFwaHkgKm5nSWY9XCIhbG9hZGluZ1wiIFtkZWZhdWx0VGV4dF09XCJub1JlY29yZHNDb250ZW50XCIgdHlwZT1cIkJPRFlfTUVESVVNXCI+PC9saWItdHlwb2dyYXBoeT5cbiAgICAgIDxsaWItbG9hZGVyICpuZ0lmPVwibG9hZGluZ1wiIFt0eXBlXT1cImxvYWRlclR5cGVcIiBbc2l6ZV09XCJsb2FkZXJTaXplXCIgW3RoZW1lQ29sb3JdPVwibG9hZGVyVGhlbWVcIj48L2xpYi1sb2FkZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGhpcy5fZ3JpZFZpZXcudG90YWwgPiAwXCI+XG4gICAgICA8a2VuZG8tZ3JpZC1jaGVja2JveC1jb2x1bW4gI3NlbGVjdEFsbENoZWNrYm94IGhlYWRlckNsYXNzPVwic2VsZWN0LWFsbC1oZWFkZXJcIiAqbmdJZj1cImNoZWNrQm94UmVxdWlyZWRcIlxuICAgICAgICBbd2lkdGhdPVwiY2hlY2tCb3hXaWR0aFwiIFtyZXNpemFibGVdPVwiY2hlY2tCb3hDb2x1bW5SZXNpemFibGVcIiBbY29sdW1uTWVudV09XCJjaGVja0JveENvbHVtbk1lbnVcIlxuICAgICAgICBjbGFzcz1cImNoZWNrYm94LWNvbHVtblwiIFtzdGlja3ldPVwiaXNDaGVja0JveENvbHVtblN0aWNreSAmJiAhY3VzdG9tRXhwYW5kUm93Q29sdW1uXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRIZWFkZXJUZW1wbGF0ZSAqbmdJZj1cImlzU2VsZWN0QWxsQ2hlY2tib3hSZXF1aXJlZFwiPlxuICAgICAgICAgIDxpbnB1dCBpZD1cInNlbGVjdEFsbENoZWNrYm94SWRcIiB0eXBlPVwiY2hlY2tib3hcIiBrZW5kb0NoZWNrQm94IGtlbmRvR3JpZFNlbGVjdEFsbENoZWNrYm94XG4gICAgICAgICAgICBbc3RhdGVdPVwic2VsZWN0QWxsU3RhdGVcIiAoc2VsZWN0QWxsQ2hhbmdlKT1cIm9uU2VsZWN0QWxsQ2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9rZW5kby1ncmlkLWNoZWNrYm94LWNvbHVtbj5cblxuICAgICAgPGtlbmRvLWdyaWQtY29sdW1uIGNsYXNzPVwiZ3JpZC1jb2x1bW5cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb2x1bW5EYXRhOyBsZXQgaSA9IGluZGV4XCIgW2ZpZWxkXT1cIml0ZW0uZmllbGRcIlxuICAgICAgICBbdGl0bGVdPVwiaXRlbS50aXRsZVwiIFt3aWR0aF09XCJpdGVtLmNvbHVtbldpZHRoXCIgW21pblJlc2l6YWJsZVdpZHRoXT1cIm1pblJlc2l6YWJsZVdpZHRoXCJcbiAgICAgICAgW3NvcnRhYmxlXT1cIml0ZW0uc29ydGFibGVcIiBbZWRpdG9yXT1cIml0ZW0uZWRpdG9yXCIgW2NsYXNzXT1cIml0ZW0uY2xhc3NcIlxuICAgICAgICBbc3RpY2t5XT1cIml0ZW0uY29sdW1uU3RpY2t5ICYmICFjdXN0b21FeHBhbmRSb3dDb2x1bW5cIj5cblxuICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJzb3J0YWJsZVwiIGtlbmRvR3JpZEhlYWRlclRlbXBsYXRlPlxuICAgICAgICAgIHt7aXRlbS50aXRsZX19XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0WzBdLmZpZWxkID09PSBpdGVtLmZpZWxkXCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRbMF0uZGlyID09PSAnYXNjJ1wiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic29ydFswXS5kaXIgPT09ICdkZXNjJ1wiPjwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPCEtLSA8bmctdGVtcGxhdGUgKm5nSWY9XCJpID09PSAwXCIga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlyc3QtY3VzdG9tLWNvbHVtblwiPlxuICAgICAgICAgICAgPGxpYi10eXBvZ3JhcGh5IHR5cGU9XCJCT0RZX01FRElVTVwiPnt7ZGF0YUl0ZW0/LltpdGVtLmZpZWxkXX19PC9saWItdHlwb2dyYXBoeT5cbiAgICAgICAgICAgIDxsaWItYnV0dG9uIGNsYXNzPVwiY2hlZnlcIiBzaXplPVwic21hbGxcIiByb3VuZGVkPVwiZnVsbFwiIChidXR0b25DbGljayk9XCJvbkNoZWZ5Q2xpY2soJGV2ZW50LCBkYXRhSXRlbSlcIiBmaWxsTW9kZT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgdGhlbWVDb2xvcj1cInByaW1hcnlcIiBsYWJlbD1cIkNoZWZ5XCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT4gLS0+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiaXRlbS5jdXN0b21Db2x1bW5cIiBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sdW1uVGVtcGxhdGVEaWN0W2l0ZW0udHlwZV1cIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInskaW1wbGljaXQ6IGRhdGFJdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cIml0ZW0uY3VzdG9tXCIga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVSZWY7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGRhdGFJdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJpdGVtLmltcGFjdFwiIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImltcGFjdENvbHVtbjsgY29udGV4dDogeyRpbXBsaWNpdDogZGF0YUl0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2tlbmRvLWdyaWQtY29sdW1uPlxuXG4gICAgICA8a2VuZG8tZ3JpZC1jb2x1bW4gKm5nSWY9XCJzaG93RGVsZXRlQ29sdW1uXCIgW3dpZHRoXT1cImRlbGV0ZUNvbHVtbldpZHRoXCIgY2xhc3M9XCJkZWxldGUtY29sdW1uXCIgdGl0bGU9XCJBY3Rpb25cIlxuICAgICAgICBbc3RpY2t5XT1cImlzRGVsZXRlQ29sdW1uU3RpY2t5ICYmICFjdXN0b21FeHBhbmRSb3dDb2x1bW5cIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0gbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgICAgICAgICA8bGliLXRvb2x0aXAgc2hvd09uPVwiaG92ZXJcIiBwb3NpdGlvbj1cImJvdHRvbVwiIGNsYXNzPVwicmVtb3ZlLXRvb2x0aXBcIj5cbiAgICAgICAgICAgIDxsaWItaWNvbiBuYW1lPVwiZGVsZXRlXCIgY2xhc3M9XCJkZWxldGUtaWNvblwiIChjbGljayk9XCJvbkRlbGV0ZShkYXRhSXRlbSlcIj48L2xpYi1pY29uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2x0aXAtY29udGVudFwiPlxuICAgICAgICAgICAgICA8bGliLXR5cG9ncmFwaHkgZGVmYXVsdFRleHQ9XCJSZW1vdmVcIj48L2xpYi10eXBvZ3JhcGh5PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9saWItdG9vbHRpcD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwva2VuZG8tZ3JpZC1jb2x1bW4+XG5cbiAgICAgIDxrZW5kby1ncmlkLWNvbHVtbiBbd2lkdGhdPVwia2ViYWJDb2x1bW5XaWR0aFwiIGNsYXNzPVwia2ViYWItY29sdW1uXCIgdGl0bGU9XCJBY3Rpb25zXCJcbiAgICAgICAgW3N0aWNreV09XCJpc0tlYmFiQ29sdW1uU3RpY2t5ICYmICFjdXN0b21FeHBhbmRSb3dDb2x1bW5cIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0gbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYWlRdWVzdGlvbnMgJiYgYWlRdWVzdGlvbnM/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgIDxkaXYga2VuZG9Qb3BvdmVyQW5jaG9yIFtwb3BvdmVyXT1cImFjdGlvblBvcG92ZXJcIiBzaG93T249XCJob3ZlclwiPlxuICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwia2ViYWJJY29uU2FmZVVybFwiIGFsdD1cIkFzayBDaGVmIEFJXCJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IHdpZHRoOiAnMS43NXJlbScsIGN1cnNvcjogJ3BvaW50ZXInLCBwb3NpdGlvbjogJ3JlbGF0aXZlJywgdG9wOiAnLTJweCcgfVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2hlZnlDbGljaygkZXZlbnQsIGRhdGFJdGVtKVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxrZW5kby1wb3BvdmVyICNhY3Rpb25Qb3BvdmVyIGFwcGVuZFRvPVwiYm9keVwiIFt3aWR0aF09XCIyMDBcIiBbb2Zmc2V0XT1cIi0xNlwiIHBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgICBwb3B1cENsYXNzPVwiY2hlZi1haS1tZW51XCIgW2NhbGxvdXRdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb1BvcG92ZXJCb2R5VGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVjb21tZW5kYXRpb25zXCIgKm5nRm9yPVwibGV0IHF1ZXN0aW9uIG9mIGFpUXVlc3Rpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2hlZnlDbGljaygkZXZlbnQsIGRhdGFJdGVtLCBxdWVzdGlvbilcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpYi10eXBvZ3JhcGh5IHR5cGU9XCJCT0RZX01FRElVTVwiIFtkZWZhdWx0VGV4dF09XCJxdWVzdGlvblwiPjwvbGliLXR5cG9ncmFwaHk+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWNvbW1lbmRhdGlvbnMgYWN0aW9uLWl0ZW1cIiAoY2xpY2spPVwib25DaGVmeUNsaWNrKCRldmVudCwgZGF0YUl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJrZWJhYkljb25TYWZlVXJsXCIgYWx0PVwiQXNrIENoZWYgQUlcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgd2lkdGg6ICcxLjVyZW0nLCBjdXJzb3I6ICdwb2ludGVyJywgcG9zaXRpb246ICdyZWxhdGl2ZScsIHRvcDogJy0ycHgnIH1cIiAvPlxuICAgICAgICAgICAgICAgICAgICA8bGliLXR5cG9ncmFwaHkgdHlwZT1cIkJPRFlfTUVESVVNXCIgZGVmYXVsdFRleHQ9XCJTdGFydCBOZXcgQ29udmVyc2F0aW9uXCI+PC9saWItdHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwva2VuZG8tcG9wb3Zlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIhYWlRdWVzdGlvbnMgfHwgYWlRdWVzdGlvbnM/Lmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICAgICAgPGltZyBbc3JjXT1cImtlYmFiSWNvblNhZmVVcmxcIiBhbHQ9XCJBc2sgQ2hlZiBBSVwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgd2lkdGg6ICcxLjc1cmVtJywgY3Vyc29yOiAncG9pbnRlcicsIHBvc2l0aW9uOiAncmVsYXRpdmUnLCB0b3A6ICctMnB4JyB9XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2hlZnlDbGljaygkZXZlbnQsIGRhdGFJdGVtKVwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dLZWJhYlwiPlxuICAgICAgICAgICAgPGtlbmRvLWRyb3Bkb3duYnV0dG9uICpuZ0lmPVwiIWhpZGVLZWJhYlJvd0luZGV4LmluY2x1ZGVzKHJvd0luZGV4KVwiIFtzdmdJY29uXT1cImljb25cIiBmaWxsTW9kZT1cIm5vbmVcIlxuICAgICAgICAgICAgICBbZGF0YV09XCJrZWJhYkxpc3QgfCBrZWJhYk1lbnVGaWx0ZXIgOiBkYXRhSXRlbVwiIGNsYXNzPVwia2ViYWJcIiAoaXRlbUNsaWNrKT1cIm9uS2ViYWJDbGljaygkZXZlbnQsIGRhdGFJdGVtKVwiXG4gICAgICAgICAgICAgIFtwb3B1cFNldHRpbmdzXT1cInsgYWxpZ246ICdyaWdodCcsIGFuaW1hdGU6IHRydWUsIHBvcHVwQ2xhc3M6ICdrZWJhYi1saXN0JyB9XCI+XG4gICAgICAgICAgICA8L2tlbmRvLWRyb3Bkb3duYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9rZW5kby1ncmlkLWNvbHVtbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gTGltaXRhdGlvbjogZGV0YWlsIHRlbXBsYXRlIGFuZCBzdGlja3kgY29sdW1ucyBkbyBub3QgY28tZXhpc3QtLT5cbiAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJjdXN0b21FeHBhbmRSb3dDb2x1bW5cIiBrZW5kb0dyaWREZXRhaWxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGV0YWlsVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGRhdGFJdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8a2VuZG8tZ3JpZC1jb2x1bW4gKm5nSWY9XCJjdXN0b21FeHBhbmRSb3dDb2x1bW5cIiBbd2lkdGhdPVwiZXhwYW5kUm93Q29sdW1uV2lkdGhcIiBjbGFzcz1cImdyaWQtY29sdW1uIGV4cGFuZC1jb2x1bW5cIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiZXhwYW5kQ29sdW1uQ2xhc3MoKVwiPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRSb3dzLmluY2x1ZGVzKGRhdGFJdGVtW2dyaWRSb3dTZWxlY3RCeVZhbHVlXSkgJiYgZGlzYWJsZVByZVNlbGVjdGVkUm93c1wiXG4gICAgICAgICAgICBjbGFzcz1cImV4cGFuZC1jb2x1bW4tdGV4dFwiPlxuICAgICAgICAgICAgQWxyZWFkeSBhZGRlZFxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8a2VuZG8tYnV0dG9uICpuZ0lmPVwiIWV4cGFuZFJvd0luZGV4LmluY2x1ZGVzKHJvd0luZGV4KVwiIFtzdmdJY29uXT1cImFycm93RG93bkljb25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImV4cGFuZFJvdyhyb3dJbmRleClcIiBmaWxsTW9kZT1cIm5vbmVcIiBjbGFzcz1cImFycm93LWJ0blwiPlxuICAgICAgICAgIDwva2VuZG8tYnV0dG9uPlxuICAgICAgICAgIDxrZW5kby1idXR0b24gKm5nSWY9XCJleHBhbmRSb3dJbmRleC5pbmNsdWRlcyhyb3dJbmRleClcIiBbc3ZnSWNvbl09XCJhcnJvd1VwSWNvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY29sbGFwc2VSb3cocm93SW5kZXgpXCIgZmlsbE1vZGU9XCJub25lXCIgY2xhc3M9XCJhcnJvdy1idG5cIj5cbiAgICAgICAgICA8L2tlbmRvLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwva2VuZG8tZ3JpZC1jb2x1bW4+XG5cbiAgICA8bmctdGVtcGxhdGUga2VuZG9QYWdlclRlbXBsYXRlIGxldC10b3RhbFBhZ2VzPVwidG90YWxQYWdlc1wiIGxldC1jdXJyZW50UGFnZT1cImN1cnJlbnRQYWdlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicGFnaW5hdGlvbi13cmFwcGVyXCIgW25nQ2xhc3NdPVwiYWxsUGFnZXNTZWxlY3RlZCA/ICdwYWdpbmF0aW9uLWRpc2FibGVkJyA6ICcnXCI+XG4gICAgICAgIDxrZW5kby1wYWdlci1wcmV2LWJ1dHRvbnM+PC9rZW5kby1wYWdlci1wcmV2LWJ1dHRvbnM+XG4gICAgICAgIDxrZW5kby1wYWdlci1udW1lcmljLWJ1dHRvbnMgW2J1dHRvbkNvdW50XT1cIl9wYWdlQ291bnRcIj48L2tlbmRvLXBhZ2VyLW51bWVyaWMtYnV0dG9ucz5cbiAgICAgICAgPGtlbmRvLXBhZ2VyLW5leHQtYnV0dG9ucz48L2tlbmRvLXBhZ2VyLW5leHQtYnV0dG9ucz5cbiAgICAgICAgPGtlbmRvLXBhZ2VyLWluZm8+PC9rZW5kby1wYWdlci1pbmZvPlxuICAgICAgICA8a2VuZG8tcGFnZXItcGFnZS1zaXplcyBbcGFnZVNpemVzXT1cInNpemVzXCI+PC9rZW5kby1wYWdlci1wYWdlLXNpemVzPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICA8L2tlbmRvLWdyaWQ+XG48L2Rpdj5cbiJdfQ==
|
|
712
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0QsU0FBUyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFxQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdk8sT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RELE9BQU8sRUFBa0IsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRixPQUFPLEVBQWtDLGFBQWEsRUFBNEgsTUFBTSw4QkFBOEIsQ0FBQztBQUN2TixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBVyxNQUFNLDJCQUEyQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7OztBQU8vRCxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQW1CLFFBQWdDO1FBQWhDLGFBQVEsR0FBUixRQUFRLENBQXdCO1FBRDFDLFNBQUksR0FBVyxFQUFFLENBQUM7SUFDNEIsQ0FBQzsrR0FGN0Msb0JBQW9CO21HQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBSmhDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxtQkFBbUI7aUJBQzlCO2dGQUVVLElBQUk7c0JBQVosS0FBSzs7QUFJUixNQUFNLGVBQWUsR0FBRyxDQUFDLFFBQWEsRUFBYSxFQUFFO0lBQ25ELE1BQU0sSUFBSSxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLEtBQUssSUFBSSxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtJQUM3RSxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDLENBQUM7QUF1QkYsTUFBTSxPQUFPLHVCQUF1QjtJQThEbEMsSUFBYSxXQUFXLENBQUMsS0FBWTtRQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELElBQWEsUUFBUSxDQUFDLEtBQXFCO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUE0QkQsSUFBYSxTQUFTLENBQUMsS0FBYTtRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzVDLENBQUM7SUErQkQsWUFBb0IsS0FBd0IsRUFDbEMsUUFBbUI7UUFEVCxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUNsQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBdEh4QixTQUFJLEdBQVcsQ0FBQyxDQUFDO1FBQ2IsYUFBUSxHQUFXLE9BQU8sQ0FBQztRQUNtRCx5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFDN0gscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQ2xDLDJCQUFzQixHQUEyQixXQUFXLENBQUM7UUFDbkQsMkJBQXNCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUN0RCxlQUFVLEdBQVEsRUFBRSxDQUFDO1FBSXpCLGFBQVEsR0FBVyxDQUFDLENBQUM7UUFDYyxhQUFRLEdBQTRCLEtBQUssQ0FBQztRQUNLLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBSTdHLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBQ3VELDRCQUF1QixHQUFZLEtBQUssQ0FBQztRQUN6Qyx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDcEMsa0NBQTZCLEdBQVksSUFBSSxDQUFDO1FBQzlDLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzFHLFNBQUksR0FBK0IsVUFBVSxDQUFDO1FBQzlDLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQzBELGNBQVMsR0FBWSxJQUFJLENBQUM7UUFFeEcseUJBQW9CLEdBQVcsRUFBRSxDQUFDO1FBQ2xDLHFCQUFnQixHQUFXLCtCQUErQixDQUFDO1FBQzFELG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUNpQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUVwSCx1QkFBa0IsR0FBdUIsRUFBRSxDQUFDO1FBQ25DLGNBQVMsR0FBUSxFQUFFLENBQUM7UUFDMEQsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUN4RyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUN2QyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDMUMsU0FBSSxHQUFZLGdCQUFnQixDQUFDO1FBSXJDLHFCQUFnQixHQUFXLEVBQUUsQ0FBQztRQUNuQyxTQUFJLEdBQVEsRUFBRSxDQUFDO1FBQ04saUJBQVksR0FBRyxFQUFFLENBQUM7UUFDakIseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN6RCxpQkFBWSxHQUFVLEVBQUUsQ0FBQztRQUt6QixjQUFTLEdBQW1CLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFJbkQsdUJBQWtCLEdBQVUsRUFBRSxDQUFDO1FBQ3JCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN4QywwQkFBcUIsR0FBYSxFQUFFLENBQUM7UUFDeUMscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQ2hILFNBQUksR0FBcUI7WUFDaEM7Z0JBQ0UsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsR0FBRyxFQUFFLFNBQVM7YUFDZjtTQUNGLENBQUM7UUFDTyxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUNyQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDM0Msa0JBQWEsR0FBWSxlQUFlLENBQUM7UUFDekMsZ0JBQVcsR0FBWSxhQUFhLENBQUM7UUFDbkMsbUJBQWMsR0FBYSxFQUFFLENBQUM7UUFDZ0QsMEJBQXFCLEdBQVksS0FBSyxDQUFDO1FBSXpILHNCQUFpQixHQUFXLEVBQUUsQ0FBQztRQUkvQix5QkFBb0IsR0FBVyxFQUFFLENBQUM7UUFDN0IsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzFDLFVBQUssR0FBVSxFQUFFLENBQUM7UUFDM0IsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUlkLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFDNkMsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN2RyxlQUFVLEdBQWUsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUM1QyxlQUFVLEdBQWUsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUMzQyxnQkFBVyxHQUFxQixnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7UUFFbEUsb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFDckIsaUJBQVksR0FBUSxDQUFDLENBQUM7UUFDdEIsbUJBQWMsR0FBMkIsV0FBVyxDQUFDO1FBQ3JELHNCQUFpQixHQUFXLENBQUMsQ0FBQztRQUM5QixpQkFBWSxHQUFVLEVBQUUsQ0FBQztRQUNoQiwyQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFFOUIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3ZDLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6Qix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDNUIseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQzVCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNvQyx5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFDdEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFFM0csc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUM1QiwyQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFDL0IseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQzVCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyQyxnQ0FBMkIsR0FBRyxJQUFJLENBQUM7UUFRNUMsdUJBQWtCLEdBQVEsRUFBRSxDQUFDO1FBMFA3Qjs7V0FFRztRQUNILG9CQUFvQjtRQUNwQiw2Q0FBNkM7UUFDN0MsK0RBQStEO1FBQy9ELDhFQUE4RTtRQUM5RSx1QkFBdUI7UUFDdkIsa0hBQWtIO1FBQ2xILG1EQUFtRDtRQUNuRCx3RUFBd0U7UUFDeEUsTUFBTTtRQUNOLElBQUk7UUFFSiw2Q0FBNkM7UUFDN0Msb0JBQW9CO1FBQ3BCLHFEQUFxRDtRQUNyRCxpREFBaUQ7UUFDakQsNEJBQTRCO1FBQzVCLE1BQU07UUFDTixrREFBa0Q7UUFDbEQsNkJBQTZCO1FBQzdCLE1BQU07UUFDTiwwQkFBMEI7UUFDMUIsSUFBSTtRQUVKLGFBQVEsR0FBRyxDQUFDLElBQWtCLEVBQUUsRUFBRTtZQUNoQyxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7Z0JBQ3JELE9BQU87b0JBQ0wsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUN6QyxJQUFJLElBQUksQ0FBQyxnQkFBZ0I7aUJBQzNCLENBQUM7WUFDSixDQUFDO1lBQ0QsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUM7UUFoU0EsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUlELFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQVcsRUFBRSxLQUFhLEVBQUUsRUFBRTtZQUNyRCxNQUFNLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDeEUsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDaEQsTUFBTSxDQUFDLEtBQUssR0FBRyx1QkFBdUIsQ0FBQztZQUN6QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ2xELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM1QixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ3JDLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTztRQUNULENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7UUFDOUMsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUV0QyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7WUFDbEMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsZUFBZSxDQUFDO1lBQ3hDLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDO1FBQ3BDLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsaUJBQWlCO2dCQUNwQixJQUFJLENBQUMsV0FBVyxFQUFFLGFBQWEsRUFBRSxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUN2RSx3QkFBd0I7WUFFeEIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsc0JBQXNCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyRyxJQUFJLGFBQWEsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsYUFBYSxFQUFFLENBQUM7Z0JBQ2pFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUN4QixhQUFhLENBQUMsYUFBYSxFQUMzQixJQUFJLENBQUMsdUJBQXVCLEVBQUUsYUFBYSxFQUMzQyxhQUFhLEVBQ2IsSUFBSSxDQUNMLENBQUM7WUFDSixDQUFDO1lBQ0QsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsMEJBQTBCLENBQUMsQ0FBQztZQUNyRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1lBQ3RGLENBQUM7WUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsVUFBbUI7UUFDbkMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUE7UUFDckQsQ0FBQztJQUNILENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxVQUFtQjtRQUM1QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsVUFBVSxDQUFDO1FBQ25DLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRCxPQUFPLENBQUMsR0FBRyxDQUFDLHlDQUF5QyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxTQUFrQjtRQUNwQyxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUM7UUFDNUYsSUFBSSxJQUFJLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLHlCQUF5QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztZQUN0SCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLHdDQUF3QyxDQUFDLENBQUM7WUFDakksSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDZCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsWUFBWSxDQUFDO2dCQUVqRSxtQkFBbUIsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7Z0JBRXZFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxZQUFZLENBQUM7Z0JBQ2hFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFlBQVksR0FBRyxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNwSSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sbUJBQW1CLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO2dCQUMxRSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO29CQUMxQixJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsS0FBc0I7UUFDL0IsSUFBSSxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUE7UUFDbEQsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDM0IsQ0FBQztRQUVELElBQUksQ0FBQyxrQkFBa0IsR0FBRztZQUN4QixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQ3ZCLENBQUM7SUFDSixDQUFDO0lBRUQsNkRBQTZEO0lBQzdEOzs7Ozs7UUFNSTtJQUVKLGtCQUFrQixDQUFDLElBQWM7UUFDL0IsSUFBSSxlQUFlLEdBQVEsRUFBRSxDQUFDO1FBQzlCLElBQUksaUJBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBRTFCLElBQUksSUFBSSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNyQixpQkFBaUIsR0FBRyxJQUFJLEVBQUUsTUFBTSxDQUFDO1FBQ25DLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUN4RSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQztZQUM5QyxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUMzQixDQUFDO1FBQ0QsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDbEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoRSxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssZUFBZSxFQUFFLENBQUM7WUFDbkYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFFRCxlQUFlLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxDQUFDO1FBQ3pGLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGlCQUFpQixDQUFDLGlCQUF5QjtRQUN6QyxJQUFJLGlCQUFpQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7UUFDbEMsQ0FBQzthQUFNLElBQUksaUJBQWlCLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUM7WUFDbEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGNBQWMsR0FBRyxlQUFlLENBQUM7WUFDdEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVMsRUFBRSxVQUFlO1FBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxjQUFjLENBQUMsT0FBWTtRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQW9CO1FBQ25DLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDMUIsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO2dCQUMxRCxPQUFPO1lBQ1QsQ0FBQztZQUNELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDN0YsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEUsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsSUFBc0I7UUFDL0IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxTQUFTLEdBQUc7WUFDZixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDOUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSztTQUM3QixDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVMsQ0FBQyxFQUFVO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLHFCQUFxQjtRQUNyQiwwQkFBMEI7UUFDMUIsU0FBUztJQUNYLENBQUM7SUFFRCxXQUFXLENBQUMsRUFBVTtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvRCwwQ0FBMEM7UUFDMUMsNkNBQTZDO1FBQzdDLCtEQUErRDtRQUMvRCw4RUFBOEU7UUFDOUUsOERBQThEO1FBQzlELDRCQUE0QjtRQUM1QixjQUFjO1FBQ2QsTUFBTTtRQUNOLDZCQUE2QjtRQUM3QixJQUFJO0lBQ04sQ0FBQztJQUVELFFBQVEsQ0FBQyxVQUFlO1FBQ3RCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxPQUFPLGFBQWEsQ0FBQztRQUN2QixDQUFDO1FBQ0QsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQXVDRCxpQkFBaUI7UUFDZixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUNqRSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsR0FBRyxDQUFDO1lBQ2hDLE9BQU8sWUFBWSxDQUFDO1FBQ3RCLENBQUM7UUFDRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO1FBQy9CLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELGlCQUFpQixDQUFDLFlBQW9DO1FBQ3BELElBQ0UsWUFBWSxLQUFLLFNBQVMsRUFDMUIsQ0FBQztZQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJO2lCQUNwQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztpQkFDbkQsTUFBTSxDQUFDLENBQUMsRUFBTyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQztZQUNoQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3RELENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUN4RSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDdEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxlQUFlLENBQUM7WUFDdEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQztRQUM3QixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUNELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxLQUFLLFNBQVMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSztZQUN2RCxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtJQUNoQyxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsSUFBb0I7UUFDMUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsQ0FBQzthQUFNLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3JFLE9BQU87WUFDVCxDQUFDO1lBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3ZDLENBQUM7SUFDSCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7K0dBL2RVLHVCQUF1QjttR0FBdkIsdUJBQXVCLHdGQVVkLENBQUMsS0FBa0MsRUFBRSxFQUFFO29CQUN6RCxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUk7d0JBQUUsT0FBTyxDQUFDLENBQUM7b0JBQ3BELE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUN0RSxDQUFDLGdHQUVtQixDQUFDLEtBQXVCLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLE1BQU0sZ0VBSy9ELENBQUMsS0FBa0MsRUFBRSxFQUFFO29CQUN6RCxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUk7d0JBQUUsT0FBTyxDQUFDLENBQUM7b0JBQ3BELE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUN0RSxDQUFDLHNDQUNtQixnQkFBZ0Isc0NBQ2hCLENBQUMsS0FBdUIsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssTUFBTSx5Q0FDL0QsQ0FBQyxLQUF1QixFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxNQUFNLCtDQUMvRCxDQUFDLEtBQXVCLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLE1BQU0seUNBQy9ELENBQUMsS0FBdUIsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssTUFBTSxxREFDL0QsQ0FBQyxLQUFrQyxFQUFFLEVBQUU7b0JBQ3pELElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSTt3QkFBRSxPQUFPLEVBQUUsQ0FBQztvQkFDckQsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3ZFLENBQUMsbUZBQ21CLENBQUMsS0FBdUIsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssTUFBTSxvRUFDL0QsQ0FBQyxLQUF1QixFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxNQUFNLHFHQUMvRCxDQUFDLEtBQXVCLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLE1BQU0sOERBQy9ELENBQUMsS0FBdUIsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssTUFBTSw0Q0FDL0QsQ0FBQyxLQUF1QixFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxNQUFNLGlIQUkvRCxDQUFDLEtBQXVCLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLE1BQU0sNkpBSy9ELENBQUMsS0FBdUIsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssTUFBTSxpRUFJL0QsQ0FBQyxLQUF1QixFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxNQUFNLDRFQUkvRCxDQUFDLEtBQWtDLEVBQUUsRUFBRTtvQkFDekQsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJO3dCQUFFLE9BQU8sRUFBRSxDQUFDO29CQUNyRCxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFDdkUsQ0FBQyw4TEFnQm1CLENBQUMsS0FBdUIsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssTUFBTSw2SkFZL0QsQ0FBQyxLQUF1QixFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxNQUFNLGlFQUMvRCxDQUFDLEtBQWtDLEVBQUUsRUFBRTtvQkFDekQsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJO3dCQUFFLE9BQU8sRUFBRSxDQUFDO29CQUNyRCxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFDdkUsQ0FBQywwRUFDbUIsQ0FBQyxLQUFrQyxFQUFFLEVBQUU7b0JBQ3pELElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSTt3QkFBRSxPQUFPLEVBQUUsQ0FBQztvQkFDckQsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3ZFLENBQUMseUpBU21CLENBQUMsS0FBdUIsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssTUFBTSw0VUFpQi9ELENBQUMsS0FBdUIsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssTUFBTSwrQ0FDL0QsQ0FBQyxLQUF1QixFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxNQUFNLHkvQkF0SGxFLG9CQUFvQixtRUFJMUIsYUFBYSwyV0NqRTFCLG16U0EySkEsKzFMRDVHSSxVQUFVLHltR0FDVixZQUFZLG9nQkFDWixhQUFhLDhWQUNiLGVBQWUsK0JBQ2YsbUJBQW1CLHNIQUNuQixhQUFhLDRHQUNiLGVBQWUsdVJBQ2YsZUFBZSwrRkFDZixnQkFBZ0Isb0pBQ2hCLG1CQUFtQjs7NEZBR1YsdUJBQXVCO2tCQW5CbkMsU0FBUztpQ0FDSSxJQUFJLFlBQ04scUJBQXFCLFdBSXRCO3dCQUNQLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjtxQkFDcEI7OEdBSXNDLGVBQWU7c0JBQXJELGVBQWU7dUJBQUMsb0JBQW9CO2dCQUNKLFdBQVc7c0JBQTNDLFlBQVk7dUJBQUMsaUJBQWlCO2dCQUNDLGNBQWM7c0JBQTdDLFlBQVk7dUJBQUMsZ0JBQWdCO2dCQUNBLFlBQVk7c0JBQXpDLFlBQVk7dUJBQUMsY0FBYztnQkFDRixJQUFJO3NCQUE3QixTQUFTO3VCQUFDLGFBQWE7Z0JBQ0UsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUNRLGlCQUFpQjtzQkFBaEQsU0FBUzt1QkFBQyxtQkFBbUI7Z0JBQ1EsdUJBQXVCO3NCQUE1RCxTQUFTO3VCQUFDLHlCQUF5QjtnQkFJL0IsSUFBSTtzQkFIUixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBa0MsRUFBRSxFQUFFOzRCQUN6RCxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUk7Z0NBQUUsT0FBTyxDQUFDLENBQUM7NEJBQ3BELE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO3dCQUN0RSxDQUFDLEVBQUU7Z0JBQ00sUUFBUTtzQkFBaEIsS0FBSztnQkFDaUYsb0JBQW9CO3NCQUExRyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBdUIsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssTUFBTSxFQUFFO2dCQUczRSxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBQ0UsVUFBVTtzQkFBbEIsS0FBSztnQkFJRCxRQUFRO3NCQUhaLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFrQyxFQUFFLEVBQUU7NEJBQ3pELElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSTtnQ0FBRSxPQUFPLENBQUMsQ0FBQzs0QkFDcEQsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7d0JBQ3RFLENBQUMsRUFBRTtnQkFDcUMsUUFBUTtzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDaUQsUUFBUTtzQkFBOUYsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQXVCLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLE1BQU0sRUFBRTtnQkFDRSxTQUFTO3NCQUEvRixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBdUIsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssTUFBTSxFQUFFO2dCQUNFLFdBQVc7c0JBQWpHLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUF1QixFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxNQUFNLEVBQUU7Z0JBQ0UsU0FBUztzQkFBL0YsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQXVCLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLE1BQU0sRUFBRTtnQkFJaEYsYUFBYTtzQkFIakIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQWtDLEVBQUUsRUFBRTs0QkFDekQsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJO2dDQUFFLE9BQU8sRUFBRSxDQUFDOzRCQUNyRCxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQzt3QkFDdkUsQ0FBQyxFQUFFO2dCQUNvRix1QkFBdUI7c0JBQTdHLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUF1QixFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxNQUFNLEVBQUU7Z0JBQ0Usa0JBQWtCO3NCQUF4RyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBdUIsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssTUFBTSxFQUFFO2dCQUNFLDZCQUE2QjtzQkFBbkgsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQXVCLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLE1BQU0sRUFBRTtnQkFDRSxnQkFBZ0I7c0JBQXRHLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUF1QixFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxNQUFNLEVBQUU7Z0JBQ0UsVUFBVTtzQkFBaEcsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQXVCLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLE1BQU0sRUFBRTtnQkFDNUUsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDaUYsU0FBUztzQkFBL0YsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQXVCLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLE1BQU0sRUFBRTtnQkFDNUUsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNJLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ2dGLFdBQVc7c0JBQWpHLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUF1QixFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxNQUFNLEVBQUU7Z0JBRzVFLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ2lGLFNBQVM7c0JBQS9GLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUF1QixFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxNQUFNLEVBQUU7Z0JBQzNFLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRSxJQUFJO3NCQUFaLEtBQUs7Z0JBSUQsZ0JBQWdCO3NCQUhwQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBa0MsRUFBRSxFQUFFOzRCQUN6RCxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUk7Z0NBQUUsT0FBTyxFQUFFLENBQUM7NEJBQ3JELE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO3dCQUN2RSxDQUFDLEVBQUU7Z0JBRU0sWUFBWTtzQkFBcEIsS0FBSztnQkFDSSxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBRU0sV0FBVztzQkFBdkIsS0FBSztnQkFLTyxRQUFRO3NCQUFwQixLQUFLO2dCQUlJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0UscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNpRixnQkFBZ0I7c0JBQXRHLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUF1QixFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxNQUFNLEVBQUU7Z0JBQzVFLElBQUk7c0JBQVosS0FBSztnQkFNRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBR0UsY0FBYztzQkFBdEIsS0FBSztnQkFDaUYscUJBQXFCO3NCQUEzRyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBdUIsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssTUFBTSxFQUFFO2dCQUloRixpQkFBaUI7c0JBSHJCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFrQyxFQUFFLEVBQUU7NEJBQ3pELElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSTtnQ0FBRSxPQUFPLEVBQUUsQ0FBQzs0QkFDckQsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7d0JBQ3ZFLENBQUMsRUFBRTtnQkFJRSxvQkFBb0I7c0JBSHhCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFrQyxFQUFFLEVBQUU7NEJBQ3pELElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSTtnQ0FBRSxPQUFPLEVBQUUsQ0FBQzs0QkFDckQsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7d0JBQ3ZFLENBQUMsRUFBRTtnQkFDTyxjQUFjO3NCQUF2QixNQUFNO2dCQUNFLEtBQUs7c0JBQWIsS0FBSztnQkFFTyxTQUFTO3NCQUFyQixLQUFLO2dCQUdHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ2lGLE9BQU87c0JBQTdGLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUF1QixFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxNQUFNLEVBQUU7Z0JBQzVFLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQU9HLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNFLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ2dGLG9CQUFvQjtzQkFBMUcsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQXVCLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLE1BQU0sRUFBRTtnQkFDRSxXQUFXO3NCQUFqRyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBdUIsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssTUFBTSxFQUFFO2dCQUU1RSxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNFLDJCQUEyQjtzQkFBbkMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgQ29udGVudENoaWxkcmVuLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFJlbmRlcmVyMiwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEtleXMgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHsgU29ydERlc2NyaXB0b3IsIG9yZGVyQnkgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tZGF0YS1xdWVyeSc7XG5pbXBvcnQgeyBMb2FkZXJTaXplLCBMb2FkZXJUaGVtZUNvbG9yLCBMb2FkZXJUeXBlIH0gZnJvbSAnLi4vLi4vYXRvbXMvbG9hZGVyL2xvYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2VsbENsaWNrRXZlbnQsIENlbGxDbG9zZUV2ZW50LCBHcmlkQ29tcG9uZW50LCBHcmlkRGF0YVJlc3VsdCwgUGFnZUNoYW5nZUV2ZW50LCBQYWdlclNldHRpbmdzLCBSb3dDbGFzc0FyZ3MsIFNlbGVjdEFsbENoZWNrYm94U3RhdGUsIFNlbGVjdGFibGVNb2RlLCBTZWxlY3RhYmxlU2V0dGluZ3MgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1ncmlkJztcbmltcG9ydCB7IGNoZXZyb25Eb3duSWNvbiwgY2hldnJvblVwSWNvbiwgbW9yZVZlcnRpY2FsSWNvbiwgU1ZHSWNvbiB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1zdmctaWNvbnMnO1xuaW1wb3J0IHsgR3JpZE1vZHVsZSB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWdyaWQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG51bWJlckF0dHJpYnV0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnV0dG9uc01vZHVsZSB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWJ1dHRvbnMnO1xuaW1wb3J0IHsgRHJvcERvd25zTW9kdWxlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItZHJvcGRvd25zJztcbmltcG9ydCB7IFR5cG9ncmFwaHlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90eXBvZ3JhcGh5L3R5cG9ncmFwaHkuY29tcG9uZW50JztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB7IEtlYmFiTWVudUZpbHRlclBpcGUgfSBmcm9tICcuL2tlYmFiLW1lbnUtZmlsdGVyLnBpcGUnO1xuXG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW3R5cGVdJ1xufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21Db2x1bW5UZW1wbGF0ZSB7XG4gIEBJbnB1dCgpIHR5cGU6IHN0cmluZyA9IFwiXCI7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8Q29tcG9uZW50PikgeyB9XG59XG5cbmNvbnN0IGNyZWF0ZUZvcm1Hcm91cCA9IChkYXRhSXRlbTogYW55KTogRm9ybUdyb3VwID0+IHtcbiAgY29uc3QgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICBmb3IgKGxldCBkYXRhIG9mIE9iamVjdC5rZXlzKGRhdGFJdGVtKSkge1xuICAgIGZvcm0uYWRkQ29udHJvbChkYXRhLCBuZXcgRm9ybUNvbnRyb2woZGF0YUl0ZW1bZGF0YV0sIFZhbGlkYXRvcnMucmVxdWlyZWQpKVxuICB9XG4gIHJldHVybiBmb3JtXG59O1xuXG5cblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnbGliLWdyaWQtcGFnaW5hdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLXBhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ncmlkLXBhZ2luYXRpb24uY29tcG9uZW50LnNjc3MnXVxuLFxuICBpbXBvcnRzOiBbXG4gICAgR3JpZE1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQnV0dG9uc01vZHVsZSxcbiAgICBEcm9wRG93bnNNb2R1bGUsXG4gICAgVHlwb2dyYXBoeUNvbXBvbmVudCxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBMb2FkZXJDb21wb25lbnQsXG4gICAgVG9vbHRpcENvbXBvbmVudCxcbiAgICBLZWJhYk1lbnVGaWx0ZXJQaXBlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgR3JpZFBhZ2luYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oQ3VzdG9tQ29sdW1uVGVtcGxhdGUpIGNvbHVtblRlbXBsYXRlcyE6IFF1ZXJ5TGlzdDxDdXN0b21Db2x1bW5UZW1wbGF0ZT4gfCBbXTtcbiAgQENvbnRlbnRDaGlsZCgnbXVsdGlDb2x1bW5EYXRhJykgdGVtcGxhdGVSZWYhOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcbiAgQENvbnRlbnRDaGlsZCgnZGV0YWlsVGVtcGxhdGUnKSBkZXRhaWxUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuICBAQ29udGVudENoaWxkKCdpbXBhY3RDb2x1bW4nKSBpbXBhY3RDb2x1bW4hOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcbiAgQFZpZXdDaGlsZChHcmlkQ29tcG9uZW50KSBncmlkITogR3JpZENvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnZ3JpZEVsZW1lbnQnKSBncmlkRWxlbWVudCE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdEFsbENoZWNrYm94Jykgc2VsZWN0QWxsQ2hlY2tib3ghOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdzZWxlY3RBbGxNZXNzYWdlRWxlbWVudCcpIHNlbGVjdEFsbE1lc3NhZ2VFbGVtZW50ITogRWxlbWVudFJlZjtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiAodmFsdWU6IG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4ge1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSByZXR1cm4gMDtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHBhcnNlSW50KHZhbHVlLCAxMCkgfHwgMCA6IHZhbHVlO1xuICB9IH0pIHNraXA6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIGl0ZW1OYW1lOiBzdHJpbmcgPSAnSXRlbXMnO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06ICh2YWx1ZTogYm9vbGVhbiB8IHN0cmluZykgPT4gdmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09ICd0cnVlJyB9KSBzaG93U2VsZWN0QWxsTWVzc2FnZTogYm9vbGVhbiA9IGZhbHNlO1xuICBhbGxQYWdlc1NlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHByZXZpb3VzU2VsZWN0QWxsU3RhdGU6IFNlbGVjdEFsbENoZWNrYm94U3RhdGUgPSAndW5jaGVja2VkJztcbiAgQE91dHB1dCgpIG9uU2VsZWN0QWxsQWNyb3NzUGFnZXMgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBJbnB1dCgpIGNvbHVtbkRhdGE6IGFueSA9IFtdO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpIHJldHVybiAwO1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gcGFyc2VJbnQodmFsdWUsIDEwKSB8fCAwIDogdmFsdWU7XG4gIH0gfSkgcGFnZVNpemU6IG51bWJlciA9IDA7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBwYWdlYWJsZTogYm9vbGVhbiB8IFBhZ2VyU2V0dGluZ3MgPSBmYWxzZTtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiAodmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcpID0+IHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSAndHJ1ZScgfSkgc29ydGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiAodmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcpID0+IHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSAndHJ1ZScgfSkgZ3JvdXBhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogKHZhbHVlOiBib29sZWFuIHwgc3RyaW5nKSA9PiB2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gJ3RydWUnIH0pIHJlb3JkZXJhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogKHZhbHVlOiBib29sZWFuIHwgc3RyaW5nKSA9PiB2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gJ3RydWUnIH0pIHJlc2l6YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpIHJldHVybiA0NTtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHBhcnNlSW50KHZhbHVlLCAxMCkgfHwgNDUgOiB2YWx1ZTtcbiAgfSB9KSBjaGVja0JveFdpZHRoOiBudW1iZXIgPSA0NTtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiAodmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcpID0+IHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSAndHJ1ZScgfSkgY2hlY2tCb3hDb2x1bW5SZXNpemFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiAodmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcpID0+IHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSAndHJ1ZScgfSkgY2hlY2tCb3hDb2x1bW5NZW51OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogKHZhbHVlOiBib29sZWFuIHwgc3RyaW5nKSA9PiB2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gJ3RydWUnIH0pIGNoZWNrQm94Q29sdW1uU2hvd1NlbGVjdGVkQWxsOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiAodmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcpID0+IHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSAndHJ1ZScgfSkgY2hlY2tCb3hSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06ICh2YWx1ZTogYm9vbGVhbiB8IHN0cmluZykgPT4gdmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09ICd0cnVlJyB9KSBjb2x1bW5NZW51OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1vZGU6IFNlbGVjdGFibGVNb2RlIHwgdW5kZWZpbmVkID0gJ211bHRpcGxlJztcbiAgQElucHV0KCkgY2hlY2tib3hPbmx5ID0gdHJ1ZTtcbiAgQElucHV0KCkgZHJhZ0NvbHVtbnMgPSBmYWxzZTtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiAodmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcpID0+IHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSAndHJ1ZScgfSkgbmF2aWdhYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgZ3JpZEhlaWdodCE6IGFueTtcbiAgQElucHV0KCkgZ3JpZFJvd1NlbGVjdEJ5VmFsdWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBub1JlY29yZHNDb250ZW50OiBzdHJpbmcgPSAnTm8gcmVjb3JkcyBhcmUgYXZhaWxhYmxlIHlldC4nO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRSb3dEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiAodmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcpID0+IHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSAndHJ1ZScgfSkgc2hvd1Rvb2xiYXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZXh0cmFjdERhdGFJdGVtczogYW55O1xuICBzZWxlY3RhYmxlU2V0dGluZ3M6IFNlbGVjdGFibGVTZXR0aW5ncyA9IHt9O1xuICBASW5wdXQoKSBrZWJhYkxpc3Q6IGFueSA9IFtdO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06ICh2YWx1ZTogYm9vbGVhbiB8IHN0cmluZykgPT4gdmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09ICd0cnVlJyB9KSBzaG93S2ViYWI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHJvd0RldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuICBAT3V0cHV0KCkga2ViYWJJdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgaWNvbjogU1ZHSWNvbiA9IG1vcmVWZXJ0aWNhbEljb247XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHtcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuIDkwO1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gcGFyc2VJbnQodmFsdWUsIDEwKSB8fCA5MCA6IHZhbHVlO1xuICB9IH0pIGtlYmFiQ29sdW1uV2lkdGg6IG51bWJlciA9IDkwO1xuICBkYXRhOiBhbnkgPSBbXTtcbiAgQElucHV0KCkgc2VsZWN0Q29sdW1uID0gJyc7XG4gIEBPdXRwdXQoKSByb3dEYXRhT2ZDbGlja2VkQ2VsbCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBfcHJlU2VsZWN0ZWQ6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIHNldCBwcmVTZWxlY3RlZCh2YWx1ZTogYW55W10pIHtcbiAgICB0aGlzLl9wcmVTZWxlY3RlZCA9IHZhbHVlO1xuICAgIHRoaXMuaW5pdEdyaWQoKTtcbiAgfVxuICBfZ3JpZFZpZXc6IEdyaWREYXRhUmVzdWx0ID0geyBkYXRhOiBbXSwgdG90YWw6IDAgfTtcbiAgQElucHV0KCkgc2V0IGdyaWRWaWV3KHZhbHVlOiBHcmlkRGF0YVJlc3VsdCkge1xuICAgIHRoaXMuX2dyaWRWaWV3ID0gdmFsdWU7XG4gIH1cbiAgcHJlU2VsZWN0ZWRSZWNvcmRzOiBhbnlbXSA9IFtdO1xuICBAT3V0cHV0KCkgb25QYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGlnbm9yZUNvbHVtbkNlbGxDbGljazogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiAodmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcpID0+IHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSAndHJ1ZScgfSkgYWxsb3dDb2x1bW5DbGljazogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzb3J0OiBTb3J0RGVzY3JpcHRvcltdID0gW1xuICAgIHtcbiAgICAgIGZpZWxkOiAnJyxcbiAgICAgIGRpcjogdW5kZWZpbmVkLFxuICAgIH0sXG4gIF07XG4gIEBJbnB1dCgpIGhhc0FwaVNvcnRpbmcgPSBmYWxzZTtcbiAgQE91dHB1dCgpIHNvcnREaXJlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcHVibGljIGFycm93RG93bkljb246IFNWR0ljb24gPSBjaGV2cm9uRG93bkljb247XG4gIHB1YmxpYyBhcnJvd1VwSWNvbjogU1ZHSWNvbiA9IGNoZXZyb25VcEljb247XG4gIEBJbnB1dCgpIGV4cGFuZFJvd0luZGV4OiBudW1iZXJbXSA9IFtdO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06ICh2YWx1ZTogYm9vbGVhbiB8IHN0cmluZykgPT4gdmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09ICd0cnVlJyB9KSBjdXN0b21FeHBhbmRSb3dDb2x1bW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiAodmFsdWU6IG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4ge1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSByZXR1cm4gNDI7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyBwYXJzZUludCh2YWx1ZSwgMTApIHx8IDQyIDogdmFsdWU7XG4gIH0gfSkgZGVsZXRlQ29sdW1uV2lkdGg6IG51bWJlciA9IDQyO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpIHJldHVybiA1NjtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHBhcnNlSW50KHZhbHVlLCAxMCkgfHwgNTYgOiB2YWx1ZTtcbiAgfSB9KSBleHBhbmRSb3dDb2x1bW5XaWR0aDogbnVtYmVyID0gNTY7XG4gIEBPdXRwdXQoKSBkZWxldGVkUm93RGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBzaXplczogYW55W10gPSBbXTtcbiAgX3BhZ2VDb3VudDogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgc2V0IHBhZ2VDb3VudCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fcGFnZUNvdW50ID0gdmFsdWUgPiAxMCA/IDEwIDogdmFsdWU7XG4gIH1cbiAgQElucHV0KCkgc2hvd0RlbGV0ZUNvbHVtbiA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWRlS2ViYWJSb3dJbmRleDogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiAodmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcpID0+IHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSAndHJ1ZScgfSkgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBsb2FkZXJUeXBlOiBMb2FkZXJUeXBlID0gTG9hZGVyVHlwZS5wdWxzaW5nO1xuICBASW5wdXQoKSBsb2FkZXJTaXplOiBMb2FkZXJTaXplID0gTG9hZGVyU2l6ZS5tZWRpdW07XG4gIEBJbnB1dCgpIGxvYWRlclRoZW1lOiBMb2FkZXJUaGVtZUNvbG9yID0gTG9hZGVyVGhlbWVDb2xvci5wcmltYXJ5O1xuICBpbml0aWFsR3JpZEhlaWdodDogYW55O1xuICBncmlkQm90dG9tU3BhY2UgPSAyNDtcbiAgcmVzaXplSGVpZ2h0OiBhbnkgPSAwO1xuICBzZWxlY3RBbGxTdGF0ZTogU2VsZWN0QWxsQ2hlY2tib3hTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICBzZWxlY3RlZEl0ZW1Db3VudDogbnVtYmVyID0gMDtcbiAgc2VsZWN0ZWRSb3dzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBkaXNhYmxlUHJlU2VsZWN0ZWRSb3dzID0gZmFsc2U7XG4gIHB1YmxpYyBmb3JtR3JvdXAhOiBGb3JtR3JvdXAgfCBhbnk7XG4gIEBPdXRwdXQoKSB1cGRhdGVkRGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBhbGxvd0VkaXRpbmdDZWxsID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNvbHVtbkNvbnRlbnROb1dyYXAgPSBmYWxzZTtcbiAgQElucHV0KCkgaW5maW5pdGVTY3JvbGxMb2FkZXIgPSBmYWxzZTtcbiAgQE91dHB1dCgpIG9uc2Nyb2xsQm90dG9tID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogKHZhbHVlOiBib29sZWFuIHwgc3RyaW5nKSA9PiB2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gJ3RydWUnIH0pIGlzSW5maW5pdGVTY3JvbGxHcmlkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogKHZhbHVlOiBib29sZWFuIHwgc3RyaW5nKSA9PiB2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gJ3RydWUnIH0pIGdyaWRMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIHNlbGVjdEFsbE1zZ1BhcmVudEVsZW1lbnQ6IGFueTtcbiAgQElucHV0KCkgbWluUmVzaXphYmxlV2lkdGggPSA1MDtcbiAgQElucHV0KCkgc2hvd1JlZnJlc2ggPSBmYWxzZTtcbiAgQElucHV0KCkgaXNLZWJhYkNvbHVtblN0aWNreSA9IGZhbHNlO1xuICBASW5wdXQoKSBpc0NoZWNrQm94Q29sdW1uU3RpY2t5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlzRGVsZXRlQ29sdW1uU3RpY2t5ID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBlbWl0UmVmcmVzaEV2dCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQElucHV0KCkgaXNTZWxlY3RBbGxDaGVja2JveFJlcXVpcmVkID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7XG4gICAgdGhpcy5zZXRTZWxlY3RhYmxlU2V0dGluZ3MoKTtcbiAgfVxuXG4gIGNvbHVtblRlbXBsYXRlRGljdDogYW55ID0ge307XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jb2x1bW5EYXRhLmZvckVhY2goKGNvbHVtbjogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBjb2x1bW4uc29ydGFibGUgPSBjb2x1bW4uc29ydGFibGUgPT0gdW5kZWZpbmVkID8gdHJ1ZSA6IGNvbHVtbi5zb3J0YWJsZTtcbiAgICAgIGlmICghdGhpcy5pZ25vcmVDb2x1bW5DZWxsQ2xpY2suaW5jbHVkZXMoaW5kZXgpKSB7XG4gICAgICAgIGNvbHVtbi5jbGFzcyA9ICdjb2x1bW4tY3Vyc29yLXBvaW50ZXInO1xuICAgICAgfVxuICAgIH0pXG4gICAgaWYgKCF0aGlzLmhhc0FwaVNvcnRpbmcpIHtcbiAgICAgIHRoaXMubG9hZEdyaWREYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgc2Nyb2xsQm90dG9tKCkge1xuICAgIHRoaXMub25zY3JvbGxCb3R0b20uZW1pdCgpO1xuICB9XG5cbiAgZ2V0UG9zaXRpb24oKTogYW55IHtcbiAgICBpZiAodGhpcy5zaG93VG9vbGJhciAmJiB0aGlzLmluZmluaXRlU2Nyb2xsTG9hZGVyKSB7XG4gICAgICByZXR1cm4gJ2JvdGgnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zaG93VG9vbGJhcikge1xuICAgICAgcmV0dXJuICd0b3AnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pbmZpbml0ZVNjcm9sbExvYWRlcikge1xuICAgICAgcmV0dXJuICdib3R0b20nO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wYWdlYWJsZSkge1xuICAgICAgdGhpcy5wYWdlU2l6ZSA9IHRoaXMuX2dyaWRWaWV3LmRhdGE/Lmxlbmd0aDtcbiAgICB9XG4gICAgdGhpcy5jb2x1bW5UZW1wbGF0ZXMuZm9yRWFjaCh4ID0+IHRoaXMuY29sdW1uVGVtcGxhdGVEaWN0W3gudHlwZV0gPSB4LnRlbXBsYXRlKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmluaXRHcmlkKCk7XG4gIH1cblxuICBpbml0R3JpZCgpIHtcbiAgICBpZiAodGhpcy5jdXN0b21FeHBhbmRSb3dDb2x1bW4pIHtcbiAgICAgIHRoaXMuZXhwYW5kUm93SW5kZXguZm9yRWFjaCgoaWQpID0+IHtcbiAgICAgICAgdGhpcy5ncmlkLmV4cGFuZFJvdyhpZCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZFJvd3MgPSB0aGlzLl9wcmVTZWxlY3RlZDtcblxuICAgIGlmICh0aGlzLnNlbGVjdGVkUm93cz8ubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPT0gdGhpcy5fZ3JpZFZpZXcudG90YWwpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICdjaGVja2VkJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAnaW5kZXRlcm1pbmF0ZSc7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAndW5jaGVja2VkJztcbiAgICB9XG4gICAgaWYgKHRoaXMuZ3JpZEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuaW5pdGlhbEdyaWRIZWlnaHQgPVxuICAgICAgICB0aGlzLmdyaWRFbGVtZW50Py5uYXRpdmVFbGVtZW50Py5vZmZzZXRIZWlnaHQgKyB0aGlzLmdyaWRCb3R0b21TcGFjZTtcbiAgICAgIC8vIHRoaXMuZ2V0R3JpZEhlaWdodCgpO1xuXG4gICAgICBjb25zdCBncmlkQ29udGFpbmVyID0gdGhpcy5ncmlkRWxlbWVudD8ubmF0aXZlRWxlbWVudD8uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnay1ncmlkLWNvbnRhaW5lcicpWzBdO1xuICAgICAgaWYgKGdyaWRDb250YWluZXIgJiYgdGhpcy5zZWxlY3RBbGxNZXNzYWdlRWxlbWVudD8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZShcbiAgICAgICAgICBncmlkQ29udGFpbmVyLnBhcmVudEVsZW1lbnQsXG4gICAgICAgICAgdGhpcy5zZWxlY3RBbGxNZXNzYWdlRWxlbWVudD8ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICBncmlkQ29udGFpbmVyLFxuICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNlbGVjdEFsbENoZWNrYm94ID0gdGhpcy5ncmlkRWxlbWVudD8ubmF0aXZlRWxlbWVudD8ucXVlcnlTZWxlY3RvcignLnNlbGVjdC1hbGwtaGVhZGVyIGlucHV0Jyk7XG4gICAgICBpZiAoc2VsZWN0QWxsQ2hlY2tib3gpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eShzZWxlY3RBbGxDaGVja2JveCwgJ2Rpc2FibGVkJywgdGhpcy5jYW5FbmFibGVTZWxlY3RBbGwoKSk7XG4gICAgICB9XG4gICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RBY3Jvc3NQYWdlcyhpc1NlbGVjdGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy50cmlnZ2VyU2VsZWN0QWxsUGFnZXNFdmVudChpc1NlbGVjdGVkKTtcbiAgICBpZiAoIWlzU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMub25TZWxlY3RBbGxDaGFuZ2UodGhpcy5wcmV2aW91c1NlbGVjdEFsbFN0YXRlKVxuICAgIH1cbiAgfVxuXG4gIHRyaWdnZXJTZWxlY3RBbGxQYWdlc0V2ZW50KGlzU2VsZWN0ZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmFsbFBhZ2VzU2VsZWN0ZWQgPSBpc1NlbGVjdGVkO1xuICAgIHRoaXMub25TZWxlY3RBbGxBY3Jvc3NQYWdlcy5lbWl0KGlzU2VsZWN0ZWQpO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtQ291bnQgPSBpc1NlbGVjdGVkID8gdGhpcy5fZ3JpZFZpZXcudG90YWwgOiAwO1xuICAgIGNvbnNvbGUubG9nKCd0cmlnZ2VyU2VsZWN0QWxsUGFnZXNFdmVudCA6IGlzU2VsZWN0ZWQnLCBpc1NlbGVjdGVkKTtcbiAgfVxuXG4gIGFkZFNlbGVjdEFsbE1lc3NhZ2Uoc2VsZWN0QWxsOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZWxlY3RBbGxNc2dQYXJlbnRFbGVtZW50ID0gdGhpcy5zZWxlY3RBbGxNZXNzYWdlRWxlbWVudD8ubmF0aXZlRWxlbWVudD8ucGFyZW50RWxlbWVudDtcbiAgICBpZiAodGhpcy5zaG93U2VsZWN0QWxsTWVzc2FnZSAmJiB0aGlzLnNlbGVjdEFsbE1zZ1BhcmVudEVsZW1lbnQgJiYgKHRoaXMuX3BhZ2VDb3VudCA+IDEgfHwgdGhpcy5pc0luZmluaXRlU2Nyb2xsR3JpZCkpIHtcbiAgICAgIGNvbnN0IHNlbGVjdEFsbE1zZ0VsZW1lbnQgPSB0aGlzLnNlbGVjdEFsbE1lc3NhZ2VFbGVtZW50Py5uYXRpdmVFbGVtZW50Py5xdWVyeVNlbGVjdG9yKCcubGliLWdyaWQtc2VsZWN0LWFsbC1tZXNzYWdlLWNvbnRhaW5lcicpO1xuICAgICAgaWYgKHNlbGVjdEFsbCkge1xuICAgICAgICBjb25zdCBiZWZvcmVIZWlnaHQgPSB0aGlzLnNlbGVjdEFsbE1zZ1BhcmVudEVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuXG4gICAgICAgIHNlbGVjdEFsbE1zZ0VsZW1lbnQ/LmNsYXNzTGlzdC5hZGQoJ2xpYi1ncmlkLXNlbGVjdC1hbGwtbWVzc2FnZS1zaG93Jyk7XG5cbiAgICAgICAgY29uc3QgYWZ0ZXJIZWlnaHQgPSB0aGlzLnNlbGVjdEFsbE1zZ1BhcmVudEVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICB0aGlzLnNlbGVjdEFsbE1zZ1BhcmVudEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gKHRoaXMuc2VsZWN0QWxsTXNnUGFyZW50RWxlbWVudC5vZmZzZXRIZWlnaHQgLSAoYWZ0ZXJIZWlnaHQgLSBiZWZvcmVIZWlnaHQpKSArICdweCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZWxlY3RBbGxNc2dFbGVtZW50Py5jbGFzc0xpc3QucmVtb3ZlKCdsaWItZ3JpZC1zZWxlY3QtYWxsLW1lc3NhZ2Utc2hvdycpO1xuICAgICAgICBpZiAodGhpcy5hbGxQYWdlc1NlbGVjdGVkKSB7XG4gICAgICAgICAgdGhpcy50cmlnZ2VyU2VsZWN0QWxsUGFnZXNFdmVudChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwYWdlQ2hhbmdlKGV2ZW50OiBQYWdlQ2hhbmdlRXZlbnQpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RBbGxNc2dQYXJlbnRFbGVtZW50KSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbE1zZ1BhcmVudEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gJydcbiAgICB9XG4gICAgdGhpcy5vblBhZ2VDaGFuZ2UuZW1pdChldmVudCk7XG4gIH1cblxuICBzZXRTZWxlY3RhYmxlU2V0dGluZ3MoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2hlY2tib3hPbmx5IHx8IHRoaXMubW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIHRoaXMuZHJhZ0NvbHVtbnMgPSBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGFibGVTZXR0aW5ncyA9IHtcbiAgICAgIGNoZWNrYm94T25seTogdGhpcy5jaGVja2JveE9ubHksXG4gICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICBkcmFnOiB0aGlzLmRyYWdDb2x1bW5zLFxuICAgIH07XG4gIH1cblxuICAvLyBXZSBjYW4gZXh0cmFjdCBkYXRhIG91dCBvZiByb3cgbnVtYmVyIHVzaW5nIGJlbG93IGZ1bmN0aW9uXG4gIC8qIGV4dHJhY3QoKSB7XG4gICAgdGhpcy5leHRyYWN0RGF0YUl0ZW1zID0gdGhpcy5teVNlbGVjdGlvbi5tYXAoaWR4ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmdyaWREYXRhLmZpbmQoKGRhdGE6IHsgUHJvZHVjdElEOiBudW1iZXI7IH0pID0+IGRhdGEuUHJvZHVjdElEID09PSBpZHgpO1xuICAgIH0pO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuZXh0cmFjdERhdGFJdGVtcylcbiAgICB0aGlzLnNlbGVjdGVkUm93RGF0YS5lbWl0KHRoaXMuZXh0cmFjdERhdGFJdGVtcyk7XG4gIH0gKi9cblxuICBzZWxlY3RlZEtleXNDaGFuZ2Uocm93czogbnVtYmVyW10pIHtcbiAgICBsZXQgc2VsZWN0ZWRSb3dEYXRhOiBhbnkgPSBbXTtcbiAgICBsZXQgc2VsZWN0ZWRSb3dzQ291bnQgPSAwO1xuXG4gICAgaWYgKHJvd3M/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHNlbGVjdGVkUm93c0NvdW50ID0gcm93cz8ubGVuZ3RoO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCA+IDAgJiYgdGhpcy5kaXNhYmxlUHJlU2VsZWN0ZWRSb3dzKSB7XG4gICAgICBzZWxlY3RlZFJvd3NDb3VudCA9IHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGg7XG4gICAgICByb3dzID0gdGhpcy5zZWxlY3RlZFJvd3M7XG4gICAgfVxuICAgIHRoaXMucHJldmlvdXNTZWxlY3RBbGxTdGF0ZSA9IHRoaXMuc2VsZWN0QWxsU3RhdGU7XG4gICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9IHRoaXMuZ2V0U2VsZWN0QWxsU3RhdGUoc2VsZWN0ZWRSb3dzQ291bnQpO1xuICAgIGlmICh0aGlzLnNlbGVjdEFsbFN0YXRlID09PSAndW5jaGVja2VkJyB8fCB0aGlzLnNlbGVjdEFsbFN0YXRlID09PSAnaW5kZXRlcm1pbmF0ZScpIHtcbiAgICAgIHRoaXMuYWRkU2VsZWN0QWxsTWVzc2FnZShmYWxzZSk7XG4gICAgfVxuXG4gICAgc2VsZWN0ZWRSb3dEYXRhID0gcm93cy5tYXAocm93RGF0YSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5fZ3JpZFZpZXcuZGF0YS5maW5kKChkYXRhKSA9PiBkYXRhW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdID09PSByb3dEYXRhKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc2VsZWN0ZWRSb3dEYXRhLmVtaXQoc2VsZWN0ZWRSb3dEYXRhKTtcbiAgfVxuXG4gIGdldFNlbGVjdEFsbFN0YXRlKHNlbGVjdGVkUm93c0NvdW50OiBudW1iZXIpOiBhbnkge1xuICAgIGlmIChzZWxlY3RlZFJvd3NDb3VudCA9PSB0aGlzLl9ncmlkVmlldy50b3RhbCkge1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICdjaGVja2VkJztcbiAgICB9IGVsc2UgaWYgKHNlbGVjdGVkUm93c0NvdW50ID09IDApIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAndW5jaGVja2VkJztcbiAgICAgIHRoaXMuYWRkU2VsZWN0QWxsTWVzc2FnZShmYWxzZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAnaW5kZXRlcm1pbmF0ZSc7XG4gICAgICB0aGlzLmFkZFNlbGVjdEFsbE1lc3NhZ2UoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIG9uS2ViYWJDbGljayhpdGVtOiBhbnksIHJvd0RldGFpbHM6IGFueSkge1xuICAgIHRoaXMua2ViYWJJdGVtQ2xpY2suZW1pdCh7IGFjdGlvbjogaXRlbSwgcm93RGV0YWlscyB9KTtcbiAgfVxuXG4gIG9uRGV0YWlsRXhwYW5kKHJvd0RhdGE6IGFueSkge1xuICAgIHRoaXMucm93RGV0YWlscy5lbWl0KHJvd0RhdGEuZGF0YUl0ZW0pO1xuICB9XG5cbiAgY2VsbENsaWNrSGFuZGxlcihhcmdzOiBDZWxsQ2xpY2tFdmVudCkge1xuICAgIGlmICh0aGlzLmFsbG93Q29sdW1uQ2xpY2spIHtcbiAgICAgIGlmICh0aGlzLmlnbm9yZUNvbHVtbkNlbGxDbGljay5pbmNsdWRlcyhhcmdzLmNvbHVtbkluZGV4KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnJvd0RhdGFPZkNsaWNrZWRDZWxsLmVtaXQoeyBkYXRhSXRlbTogYXJncy5kYXRhSXRlbSwgY29sdW1uSW5kZXg6IGFyZ3MuY29sdW1uSW5kZXggfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmFsbG93RWRpdGluZ0NlbGwpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwID0gY3JlYXRlRm9ybUdyb3VwKGFyZ3MuZGF0YUl0ZW0pO1xuICAgICAgYXJncy5zZW5kZXIuZWRpdENlbGwoYXJncy5yb3dJbmRleCwgYXJncy5jb2x1bW5JbmRleCwgdGhpcy5mb3JtR3JvdXApO1xuICAgIH1cbiAgfVxuXG4gIHNvcnRDaGFuZ2Uoc29ydDogU29ydERlc2NyaXB0b3JbXSk6IHZvaWQge1xuICAgIHRoaXMuc29ydCA9IHNvcnQ7XG4gICAgaWYgKCF0aGlzLmhhc0FwaVNvcnRpbmcpIHtcbiAgICAgIHRoaXMubG9hZEdyaWREYXRhKCk7XG4gICAgfVxuICAgIHRoaXMuc29ydERpcmVjdGlvbi5lbWl0KHRoaXMuc29ydCk7XG4gIH1cblxuICBsb2FkR3JpZERhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5fZ3JpZFZpZXcgPSB7XG4gICAgICBkYXRhOiBvcmRlckJ5KHRoaXMuX2dyaWRWaWV3Py5kYXRhLCB0aGlzLnNvcnQpLFxuICAgICAgdG90YWw6IHRoaXMuX2dyaWRWaWV3Py50b3RhbCxcbiAgICB9O1xuICB9XG5cbiAgZXhwYW5kUm93KGlkOiBudW1iZXIpIHtcbiAgICB0aGlzLmdyaWQuZXhwYW5kUm93KGlkKTtcbiAgICB0aGlzLmV4cGFuZFJvd0luZGV4LnB1c2goaWQpO1xuICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgIC8vICAgdGhpcy5nZXRHcmlkSGVpZ2h0KCk7XG4gICAgLy8gfSwgMCk7XG4gIH1cblxuICBjb2xsYXBzZVJvdyhpZDogbnVtYmVyKSB7XG4gICAgdGhpcy5ncmlkLmNvbGxhcHNlUm93KGlkKTtcbiAgICB0aGlzLmV4cGFuZFJvd0luZGV4LnNwbGljZSh0aGlzLmV4cGFuZFJvd0luZGV4LmluZGV4T2YoaWQpLCAxKTtcbiAgICAvLyBpZiAodGhpcy5leHBhbmRSb3dJbmRleD8ubGVuZ3RoID09IDApIHtcbiAgICAvLyAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAvLyAgIGNvbnN0IHZpZXdwb3J0OiBhbnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGliLWdyaWQnKTtcbiAgICAvLyAgIGNvbnN0IGdyaWRPZmZzZXQgPSB2aWV3cG9ydC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyB3aW5kb3cuc2Nyb2xsWTtcbiAgICAvLyAgIGlmICh3aW5kb3dIZWlnaHQgPiBncmlkT2Zmc2V0ICsgdGhpcy5pbml0aWFsR3JpZEhlaWdodCkge1xuICAgIC8vICAgICB0aGlzLmhlaWdodCA9ICcxMDAlJztcbiAgICAvLyAgICAgcmV0dXJuO1xuICAgIC8vICAgfVxuICAgIC8vICAgLy8gdGhpcy5nZXRHcmlkSGVpZ2h0KCk7XG4gICAgLy8gfVxuICB9XG5cbiAgb25EZWxldGUocm93RGV0YWlsczogYW55KSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmdldEhlYWRlckhlaWdodCgpO1xuICAgIH0sIDEwMDApO1xuICAgIHRoaXMuZGVsZXRlZFJvd0RhdGEuZW1pdChyb3dEZXRhaWxzKTtcbiAgfVxuXG4gIGdldEhlYWRlckhlaWdodCgpIHtcbiAgICBpZiAodGhpcy5fZ3JpZFZpZXc/LmRhdGE/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuICdoaWRlLWhlYWRlcic7XG4gICAgfVxuICAgIHJldHVybiAndmlldy1oZWFkZXInO1xuICB9XG5cbiAgLypcbiAgICogVGhpcyBsb2dpYyBvZiBkeW5hbWljYWxseSBjYWxjdWxhdGluZyB0aGUgaGVpZ2h0IG9mIGdyaWQgbmVlZCBmdXJ0aGVyIGJyYWluc3Rvcm1pbmcgaGVuY2UgY29tbWVudGVkIGZvciBub3cuXG4gICAqL1xuICAvLyBnZXRHcmlkSGVpZ2h0KCkge1xuICAvLyAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgLy8gICBjb25zdCB2aWV3cG9ydDogYW55ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpYi1ncmlkJyk7XG4gIC8vICAgY29uc3QgZ3JpZE9mZnNldCA9IHZpZXdwb3J0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHdpbmRvdy5zY3JvbGxZO1xuICAvLyAgIGNvbnN0IGdyaWRIZWlnaHQgPVxuICAvLyAgICAgdGhpcy5ncmlkRWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCArIHRoaXMuZ3JpZEJvdHRvbVNwYWNlOyAvL2dyaWQgc2hvdWxkIGhhdmUgMjRweCBzcGFjZSBhdCBib3R0b21cbiAgLy8gICBpZiAoZ3JpZE9mZnNldCArIGdyaWRIZWlnaHQgPj0gd2luZG93SGVpZ2h0KSB7XG4gIC8vICAgICB0aGlzLmhlaWdodCA9IHdpbmRvd0hlaWdodCAtIChncmlkT2Zmc2V0ICsgdGhpcy5ncmlkQm90dG9tU3BhY2UpO1xuICAvLyAgIH1cbiAgLy8gfVxuXG4gIC8vIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICAvLyByZXNpemUoZXY6IGFueSkge1xuICAvLyAgIGlmIChldi50YXJnZXQuaW5uZXJIZWlnaHQgPiB0aGlzLnJlc2l6ZUhlaWdodCkge1xuICAvLyAgICAgdGhpcy5yZXNpemVIZWlnaHQgPSBldi50YXJnZXQuaW5uZXJIZWlnaHQ7XG4gIC8vICAgICB0aGlzLmhlaWdodCA9ICcxMDAlJztcbiAgLy8gICB9XG4gIC8vICAgaWYgKHRoaXMucmVzaXplSGVpZ2h0ID4gd2luZG93LmlubmVySGVpZ2h0KSB7XG4gIC8vICAgICB0aGlzLnJlc2l6ZUhlaWdodCA9IDA7XG4gIC8vICAgfVxuICAvLyAgIHRoaXMuZ2V0R3JpZEhlaWdodCgpO1xuICAvLyB9XG5cbiAgcm93Q2xhc3MgPSAoYXJnczogUm93Q2xhc3NBcmdzKSA9PiB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzICYmIHRoaXMuZGlzYWJsZVByZVNlbGVjdGVkUm93cykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgJ2stZGlzYWJsZWQnOiB0aGlzLnNlbGVjdGVkUm93cy5pbmNsdWRlcyhcbiAgICAgICAgICBhcmdzLmRhdGFJdGVtW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdXG4gICAgICAgICkgfHwgdGhpcy5hbGxQYWdlc1NlbGVjdGVkLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9O1xuXG4gIGV4cGFuZENvbHVtbkNsYXNzKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkUm93cz8ubGVuZ3RoID4gMCAmJiB0aGlzLmRpc2FibGVQcmVTZWxlY3RlZFJvd3MpIHtcbiAgICAgIHRoaXMuZXhwYW5kUm93Q29sdW1uV2lkdGggPSAxOTQ7XG4gICAgICByZXR1cm4gJ2V4cGFuZC1yb3cnO1xuICAgIH1cbiAgICB0aGlzLmV4cGFuZFJvd0NvbHVtbldpZHRoID0gNTY7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgb25TZWxlY3RBbGxDaGFuZ2UoY2hlY2tlZFN0YXRlOiBTZWxlY3RBbGxDaGVja2JveFN0YXRlKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgY2hlY2tlZFN0YXRlID09PSAnY2hlY2tlZCdcbiAgICApIHtcbiAgICAgIHRoaXMuX3ByZVNlbGVjdGVkID0gdGhpcy5fZ3JpZFZpZXcuZGF0YVxuICAgICAgICAubWFwKChpdGVtOiBhbnkpID0+IGl0ZW1bdGhpcy5ncmlkUm93U2VsZWN0QnlWYWx1ZV0pXG4gICAgICAgIC5maWx0ZXIoKGlkOiBhbnkpID0+IGlkKTtcbiAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAnY2hlY2tlZCc7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbUNvdW50ID0gdGhpcy5fZ3JpZFZpZXcuZGF0YS5sZW5ndGg7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkUm93cz8ubGVuZ3RoID4gMCAmJiB0aGlzLmRpc2FibGVQcmVTZWxlY3RlZFJvd3MpIHtcbiAgICAgIHRoaXMuX3ByZVNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZFJvd3M7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2luZGV0ZXJtaW5hdGUnO1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1Db3VudCA9IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3ByZVNlbGVjdGVkID0gW107XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ3VuY2hlY2tlZCc7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbUNvdW50ID0gMDtcbiAgICB9XG4gICAgdGhpcy5hZGRTZWxlY3RBbGxNZXNzYWdlKHRoaXMuc2VsZWN0QWxsU3RhdGUgPT09ICdjaGVja2VkJyk7XG4gIH1cblxuICBjYW5FbmFibGVTZWxlY3RBbGwoKSB7XG4gICAgcmV0dXJuICh0aGlzLnNlbGVjdGVkUm93cz8ubGVuZ3RoID09IHRoaXMuX2dyaWRWaWV3LnRvdGFsICYmXG4gICAgICB0aGlzLmRpc2FibGVQcmVTZWxlY3RlZFJvd3MpXG4gIH1cblxuICBwdWJsaWMgY2VsbENsb3NlSGFuZGxlcihhcmdzOiBDZWxsQ2xvc2VFdmVudCk6IHZvaWQge1xuICAgIGxldCB7IGZvcm1Hcm91cCwgZGF0YUl0ZW0gfSA9IGFyZ3M7XG4gICAgaWYgKCFmb3JtR3JvdXAudmFsaWQpIHtcbiAgICAgIGFyZ3MucHJldmVudERlZmF1bHQoKTtcbiAgICB9IGVsc2UgaWYgKGZvcm1Hcm91cC5kaXJ0eSkge1xuICAgICAgaWYgKGFyZ3Mub3JpZ2luYWxFdmVudCAmJiBhcmdzLm9yaWdpbmFsRXZlbnQua2V5Q29kZSA9PT0gS2V5cy5Fc2NhcGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgT2JqZWN0LmFzc2lnbihkYXRhSXRlbSwgZm9ybUdyb3VwLnZhbHVlKTtcbiAgICAgIHRoaXMuc2F2ZUNoYW5nZXMoKTtcbiAgICAgIHRoaXMudXBkYXRlZERhdGEuZW1pdCh0aGlzLmdyaWQuZGF0YSlcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2F2ZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5ncmlkLmNsb3NlQ2VsbCgpO1xuICAgIHRoaXMuZ3JpZC5jYW5jZWxDZWxsKCk7XG4gIH1cblxuICByZWZyZXNoR3JpZERhdGEoKSB7XG4gICAgdGhpcy5lbWl0UmVmcmVzaEV2dC5lbWl0KCk7XG4gIH1cblxufVxuIiwiPGRpdiAjZ3JpZEVsZW1lbnQgW25nQ2xhc3NdPVwiY29sdW1uQ29udGVudE5vV3JhcCA/ICdjb2x1bW4tY29udGVudC1ub3dyYXAnIDogJydcIj5cbiAgPGtlbmRvLWdyaWQgW2RhdGFdPVwiX2dyaWRWaWV3XCIgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCIgW3NraXBdPVwic2tpcFwiIFtzZWxlY3RhYmxlXT1cInNlbGVjdGFibGVTZXR0aW5nc1wiXG4gICAgW3BhZ2VhYmxlXT1cInBhZ2VhYmxlXCIgW3NvcnRhYmxlXT1cInNvcnRhYmxlXCIgW2xvYWRpbmddPVwiZ3JpZExvYWRpbmdcIiBbZ3JvdXBhYmxlXT1cImdyb3VwYWJsZVwiXG4gICAgW3Jlb3JkZXJhYmxlXT1cInJlb3JkZXJhYmxlXCIgW3Jlc2l6YWJsZV09XCJyZXNpemFibGVcIiBbY29sdW1uTWVudV09XCJjb2x1bW5NZW51XCIgW25hdmlnYWJsZV09XCJuYXZpZ2FibGVcIlxuICAgIFtoZWlnaHRdPVwiZ3JpZEhlaWdodFwiIChjaGFuZ2UpPVwic2V0U2VsZWN0YWJsZVNldHRpbmdzKClcIiAoc2VsZWN0ZWRLZXlzQ2hhbmdlKT1cInNlbGVjdGVkS2V5c0NoYW5nZSgkZXZlbnQpXCJcbiAgICBba2VuZG9HcmlkU2VsZWN0QnldPVwiZ3JpZFJvd1NlbGVjdEJ5VmFsdWVcIiAoZGV0YWlsRXhwYW5kKT1cIm9uRGV0YWlsRXhwYW5kKCRldmVudClcIiBbc2VsZWN0ZWRLZXlzXT1cIl9wcmVTZWxlY3RlZFwiXG4gICAgKHBhZ2VDaGFuZ2UpPVwicGFnZUNoYW5nZSgkZXZlbnQpXCIgKGNlbGxDbGljayk9XCJjZWxsQ2xpY2tIYW5kbGVyKCRldmVudClcIiAoY2VsbENsb3NlKT1cImNlbGxDbG9zZUhhbmRsZXIoJGV2ZW50KVwiXG4gICAgW3NvcnRdPVwic29ydFwiIChzb3J0Q2hhbmdlKT1cInNvcnRDaGFuZ2UoJGV2ZW50KVwiIChzY3JvbGxCb3R0b20pPVwic2Nyb2xsQm90dG9tKClcIiBbbmdDbGFzc109XCJnZXRIZWFkZXJIZWlnaHQoKVwiXG4gICAgaWQ9XCJsaWItZ3JpZFwiIFtyb3dDbGFzc109XCJyb3dDbGFzc1wiPlxuICAgIDxkaXYgI3NlbGVjdEFsbE1lc3NhZ2VFbGVtZW50PlxuICAgICAgPGRpdiBjbGFzcz1cImxpYi1ncmlkLXNlbGVjdC1hbGwtbWVzc2FnZS1jb250YWluZXJcIlxuICAgICAgICAqbmdJZj1cIigoc2VsZWN0ZWRJdGVtQ291bnQgPCBfZ3JpZFZpZXcudG90YWwpIHx8IGFsbFBhZ2VzU2VsZWN0ZWQpXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIoc2VsZWN0ZWRJdGVtQ291bnQgPCBfZ3JpZFZpZXcudG90YWwpXCIgY2xhc3M9XCJsaWItZ3JpZC1zZWxlY3QtYWxsLW1lc3NhZ2VcIj5cbiAgICAgICAgICA8bGliLXR5cG9ncmFwaHkgW2RlZmF1bHRUZXh0XT1cIidBbGwgJytzZWxlY3RlZEl0ZW1Db3VudCsnICcraXRlbU5hbWUrJyBvbiB0aGlzIHBhZ2UgYXJlIHNlbGVjdGVkLidcIlxuICAgICAgICAgICAgdHlwZT1cIkJPRFlfU01BTExcIj48L2xpYi10eXBvZ3JhcGh5PlxuICAgICAgICAgIDx1PjxsaWItdHlwb2dyYXBoeSAoY2xpY2spPVwic2VsZWN0QWNyb3NzUGFnZXModHJ1ZSlcIiBjbGFzcz1cInNlbGVjdC1hbGwtaGFuZGxlclwiXG4gICAgICAgICAgICAgIFtkZWZhdWx0VGV4dF09XCInU2VsZWN0IGFsbCAnK19ncmlkVmlldy50b3RhbCsnICcraXRlbU5hbWUrJyBmcm9tIGFsbCBwYWdlcydcIlxuICAgICAgICAgICAgICB0eXBlPVwiQk9EWV9TTUFMTFwiPjwvbGliLXR5cG9ncmFwaHk+PC91PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImFsbFBhZ2VzU2VsZWN0ZWRcIiBjbGFzcz1cImxpYi1ncmlkLXNlbGVjdC1hbGwtbWVzc2FnZVwiPlxuICAgICAgICAgIDxsaWItaWNvbiBuYW1lPVwiY2lyY2xlLWNoZWNrZWRcIiBjbGFzcz1cImFsbC1zZWxlY3RlZC1pY29uXCI+PC9saWItaWNvbj5cbiAgICAgICAgICA8bGliLXR5cG9ncmFwaHkgW2RlZmF1bHRUZXh0XT1cIidBbGwgJytfZ3JpZFZpZXcudG90YWwrJyAnK2l0ZW1OYW1lKycgYWNyb3NzIGFsbCBwYWdlcyBhcmUgc2VsZWN0ZWQuJ1wiXG4gICAgICAgICAgICB0eXBlPVwiQk9EWV9TTUFMTFwiPjwvbGliLXR5cG9ncmFwaHk+XG4gICAgICAgICAgPHU+PGxpYi10eXBvZ3JhcGh5IChjbGljayk9XCJzZWxlY3RBY3Jvc3NQYWdlcyhmYWxzZSlcIiBjbGFzcz1cInNlbGVjdC1hbGwtaGFuZGxlclwiXG4gICAgICAgICAgICAgIFtkZWZhdWx0VGV4dF09XCInQ2xlYXIgc2VsZWN0aW9uJ1wiIHR5cGU9XCJCT0RZX1NNQUxMXCI+PC9saWItdHlwb2dyYXBoeT48L3U+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZFRvb2xiYXJUZW1wbGF0ZSBbcG9zaXRpb25dPVwiZ2V0UG9zaXRpb24oKVwiIGxldC1wb3NpdGlvbj1cInBvc2l0aW9uXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1Rvb2xiYXIgJiYgcG9zaXRpb24gPT09ICd0b3AnXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dSZWZyZXNoXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNob3dSZWZyZXNoVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbmZpbml0ZVNjcm9sbExvYWRlciAmJiBwb3NpdGlvbiA9PT0gJ2JvdHRvbSdcIj5cbiAgICAgICAgPGxpYi1ncmlkLXBhZ2luYXRpb24tc3BhY2VyPjwvbGliLWdyaWQtcGFnaW5hdGlvbi1zcGFjZXI+XG4gICAgICAgIDxsaWItbG9hZGVyIFt0eXBlXT1cImxvYWRlclR5cGVcIiBbc2l6ZV09XCJsb2FkZXJTaXplXCIgW3RoZW1lQ29sb3JdPVwibG9hZGVyVGhlbWVcIj48L2xpYi1sb2FkZXI+XG4gICAgICAgIDxsaWItZ3JpZC1wYWdpbmF0aW9uLXNwYWNlcj48L2xpYi1ncmlkLXBhZ2luYXRpb24tc3BhY2VyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjc2hvd1JlZnJlc2hUZW1wbGF0ZT5cbiAgICAgIDxsaWItdG9vbHRpcCBwb3NpdGlvbj1cInRvcFwiIHNob3dPbj1cImhvdmVyXCIgW3Rvb2x0aXBXaWR0aF09XCI2OFwiIFtjYWxsb3V0XT1cInRydWVcIiBbY2xvc2FibGVdPVwiZmFsc2VcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRvb2x0aXAtY29udGVudFwiPlxuICAgICAgICAgIDxsaWItdHlwb2dyYXBoeSBkZWZhdWx0VGV4dD1cIlJlZnJlc2hcIj48L2xpYi10eXBvZ3JhcGh5PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGxpYi1idXR0b24gc2l6ZT1cInNtYWxsXCIgd2lkdGg9XCIyLjRyZW1cIiByb3VuZGVkPVwic21hbGxcIiBmaWxsTW9kZT1cInNvbGlkXCIgdGhlbWVDb2xvcj1cInByaW1hcnlcIiBpY29uTmFtZT1cInJlc2V0XCJcbiAgICAgICAgICBbdG9nZ2xlYWJsZV09XCJmYWxzZVwiIChidXR0b25DbGljayk9XCJyZWZyZXNoR3JpZERhdGEoKVwiIFtpY29uQnV0dG9uXT1cInRydWVcIiBbaWNvbkZvbnRTaXplXT1cIjEzXCI+PC9saWItYnV0dG9uPlxuICAgICAgPC9saWItdG9vbHRpcD5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZExvYWRpbmdUZW1wbGF0ZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJrLWxvYWRpbmctY29sb3JcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsb2FkaW5nLWNvbnRhaW5lclwiPlxuICAgICAgICA8bGliLWxvYWRlciBbdHlwZV09XCJsb2FkZXJUeXBlXCIgW3NpemVdPVwibG9hZGVyU2l6ZVwiIFt0aGVtZUNvbG9yXT1cImxvYWRlclRoZW1lXCI+PC9saWItbG9hZGVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cInRoaXMuX2dyaWRWaWV3LnRvdGFsID09PSAwXCIga2VuZG9HcmlkTm9SZWNvcmRzVGVtcGxhdGU+XG4gICAgICA8bGliLXR5cG9ncmFwaHkgKm5nSWY9XCIhbG9hZGluZ1wiIFtkZWZhdWx0VGV4dF09XCJub1JlY29yZHNDb250ZW50XCIgdHlwZT1cIkJPRFlfTUVESVVNXCI+PC9saWItdHlwb2dyYXBoeT5cbiAgICAgIDxsaWItbG9hZGVyICpuZ0lmPVwibG9hZGluZ1wiIFt0eXBlXT1cImxvYWRlclR5cGVcIiBbc2l6ZV09XCJsb2FkZXJTaXplXCIgW3RoZW1lQ29sb3JdPVwibG9hZGVyVGhlbWVcIj48L2xpYi1sb2FkZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGhpcy5fZ3JpZFZpZXcudG90YWwgPiAwXCI+XG4gICAgICA8a2VuZG8tZ3JpZC1jaGVja2JveC1jb2x1bW4gI3NlbGVjdEFsbENoZWNrYm94IGhlYWRlckNsYXNzPVwic2VsZWN0LWFsbC1oZWFkZXJcIiAqbmdJZj1cImNoZWNrQm94UmVxdWlyZWRcIlxuICAgICAgICBbd2lkdGhdPVwiY2hlY2tCb3hXaWR0aFwiIFtyZXNpemFibGVdPVwiY2hlY2tCb3hDb2x1bW5SZXNpemFibGVcIiBbY29sdW1uTWVudV09XCJjaGVja0JveENvbHVtbk1lbnVcIlxuICAgICAgICBjbGFzcz1cImNoZWNrYm94LWNvbHVtblwiIFtzdGlja3ldPVwiaXNDaGVja0JveENvbHVtblN0aWNreSAmJiAhY3VzdG9tRXhwYW5kUm93Q29sdW1uXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRIZWFkZXJUZW1wbGF0ZSAqbmdJZj1cImlzU2VsZWN0QWxsQ2hlY2tib3hSZXF1aXJlZFwiPlxuICAgICAgICAgIDxpbnB1dCBpZD1cInNlbGVjdEFsbENoZWNrYm94SWRcIiB0eXBlPVwiY2hlY2tib3hcIiBrZW5kb0NoZWNrQm94IGtlbmRvR3JpZFNlbGVjdEFsbENoZWNrYm94XG4gICAgICAgICAgICBbc3RhdGVdPVwic2VsZWN0QWxsU3RhdGVcIiAoc2VsZWN0QWxsQ2hhbmdlKT1cIm9uU2VsZWN0QWxsQ2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9rZW5kby1ncmlkLWNoZWNrYm94LWNvbHVtbj5cblxuICAgICAgPGtlbmRvLWdyaWQtY29sdW1uIGNsYXNzPVwiZ3JpZC1jb2x1bW5cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb2x1bW5EYXRhXCIgW2ZpZWxkXT1cIml0ZW0uZmllbGRcIiBbdGl0bGVdPVwiaXRlbS50aXRsZVwiXG4gICAgICAgIFt3aWR0aF09XCJpdGVtLmNvbHVtbldpZHRoXCIgW21pblJlc2l6YWJsZVdpZHRoXT1cIm1pblJlc2l6YWJsZVdpZHRoXCIgW3NvcnRhYmxlXT1cIml0ZW0uc29ydGFibGVcIlxuICAgICAgICBbZWRpdG9yXT1cIml0ZW0uZWRpdG9yXCIgW2NsYXNzXT1cIml0ZW0uY2xhc3NcIiBbc3RpY2t5XT1cIml0ZW0uY29sdW1uU3RpY2t5ICYmICFjdXN0b21FeHBhbmRSb3dDb2x1bW5cIj5cblxuICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJzb3J0YWJsZVwiIGtlbmRvR3JpZEhlYWRlclRlbXBsYXRlPlxuICAgICAgICAgIHt7aXRlbS50aXRsZX19XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0WzBdLmZpZWxkID09PSBpdGVtLmZpZWxkXCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRbMF0uZGlyID09PSAnYXNjJ1wiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic29ydFswXS5kaXIgPT09ICdkZXNjJ1wiPjwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiaXRlbS5jdXN0b21Db2x1bW5cIiBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sdW1uVGVtcGxhdGVEaWN0W2l0ZW0udHlwZV1cIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInskaW1wbGljaXQ6IGRhdGFJdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cIml0ZW0uY3VzdG9tXCIga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVSZWY7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGRhdGFJdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJpdGVtLmltcGFjdFwiIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImltcGFjdENvbHVtbjsgY29udGV4dDogeyRpbXBsaWNpdDogZGF0YUl0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2tlbmRvLWdyaWQtY29sdW1uPlxuXG4gICAgICA8a2VuZG8tZ3JpZC1jb2x1bW4gKm5nSWY9XCJzaG93RGVsZXRlQ29sdW1uXCIgW3dpZHRoXT1cImRlbGV0ZUNvbHVtbldpZHRoXCIgY2xhc3M9XCJkZWxldGUtY29sdW1uXCIgdGl0bGU9XCJBY3Rpb25cIlxuICAgICAgICBbc3RpY2t5XT1cImlzRGVsZXRlQ29sdW1uU3RpY2t5ICYmICFjdXN0b21FeHBhbmRSb3dDb2x1bW5cIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0gbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgICAgICAgICA8bGliLXRvb2x0aXAgc2hvd09uPVwiaG92ZXJcIiBwb3NpdGlvbj1cImJvdHRvbVwiIGNsYXNzPVwicmVtb3ZlLXRvb2x0aXBcIj5cbiAgICAgICAgICAgIDxsaWItaWNvbiBuYW1lPVwiZGVsZXRlXCIgY2xhc3M9XCJkZWxldGUtaWNvblwiIChjbGljayk9XCJvbkRlbGV0ZShkYXRhSXRlbSlcIj48L2xpYi1pY29uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2x0aXAtY29udGVudFwiPlxuICAgICAgICAgICAgICA8bGliLXR5cG9ncmFwaHkgZGVmYXVsdFRleHQ9XCJSZW1vdmVcIj48L2xpYi10eXBvZ3JhcGh5PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9saWItdG9vbHRpcD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwva2VuZG8tZ3JpZC1jb2x1bW4+XG5cbiAgICAgIDxrZW5kby1ncmlkLWNvbHVtbiBbd2lkdGhdPVwia2ViYWJDb2x1bW5XaWR0aFwiIGNsYXNzPVwia2ViYWItY29sdW1uXCIgKm5nSWY9XCJzaG93S2ViYWJcIiB0aXRsZT1cIkFjdGlvbnNcIlxuICAgICAgICBbc3RpY2t5XT1cImlzS2ViYWJDb2x1bW5TdGlja3kgJiYgIWN1c3RvbUV4cGFuZFJvd0NvbHVtblwiPlxuICAgICAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbSBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxuICAgICAgICAgIDxrZW5kby1kcm9wZG93bmJ1dHRvbiAqbmdJZj1cIiFoaWRlS2ViYWJSb3dJbmRleC5pbmNsdWRlcyhyb3dJbmRleClcIiBbc3ZnSWNvbl09XCJpY29uXCIgZmlsbE1vZGU9XCJub25lXCJcbiAgICAgICAgICAgIFtkYXRhXT1cImtlYmFiTGlzdCB8IGtlYmFiTWVudUZpbHRlciA6IGRhdGFJdGVtXCIgY2xhc3M9XCJrZWJhYlwiIChpdGVtQ2xpY2spPVwib25LZWJhYkNsaWNrKCRldmVudCwgZGF0YUl0ZW0pXCJcbiAgICAgICAgICAgIFtwb3B1cFNldHRpbmdzXT1cInsgYWxpZ246ICdyaWdodCcsIGFuaW1hdGU6IHRydWUsIHBvcHVwQ2xhc3M6ICdrZWJhYi1saXN0JyB9XCI+XG4gICAgICAgICAgPC9rZW5kby1kcm9wZG93bmJ1dHRvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwva2VuZG8tZ3JpZC1jb2x1bW4+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIExpbWl0YXRpb246IGRldGFpbCB0ZW1wbGF0ZSBhbmQgc3RpY2t5IGNvbHVtbnMgZG8gbm90IGNvLWV4aXN0LS0+XG4gICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiY3VzdG9tRXhwYW5kUm93Q29sdW1uXCIga2VuZG9HcmlkRGV0YWlsVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRldGFpbFRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiBkYXRhSXRlbX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPGtlbmRvLWdyaWQtY29sdW1uICpuZ0lmPVwiY3VzdG9tRXhwYW5kUm93Q29sdW1uXCIgW3dpZHRoXT1cImV4cGFuZFJvd0NvbHVtbldpZHRoXCIgY2xhc3M9XCJncmlkLWNvbHVtbiBleHBhbmQtY29sdW1uXCI+XG4gICAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbSBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImV4cGFuZENvbHVtbkNsYXNzKClcIj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkUm93cy5pbmNsdWRlcyhkYXRhSXRlbVtncmlkUm93U2VsZWN0QnlWYWx1ZV0pICYmIGRpc2FibGVQcmVTZWxlY3RlZFJvd3NcIlxuICAgICAgICAgICAgY2xhc3M9XCJleHBhbmQtY29sdW1uLXRleHRcIj5cbiAgICAgICAgICAgIEFscmVhZHkgYWRkZWRcbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPGtlbmRvLWJ1dHRvbiAqbmdJZj1cIiFleHBhbmRSb3dJbmRleC5pbmNsdWRlcyhyb3dJbmRleClcIiBbc3ZnSWNvbl09XCJhcnJvd0Rvd25JY29uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJleHBhbmRSb3cocm93SW5kZXgpXCIgZmlsbE1vZGU9XCJub25lXCIgY2xhc3M9XCJhcnJvdy1idG5cIj5cbiAgICAgICAgICA8L2tlbmRvLWJ1dHRvbj5cbiAgICAgICAgICA8a2VuZG8tYnV0dG9uICpuZ0lmPVwiZXhwYW5kUm93SW5kZXguaW5jbHVkZXMocm93SW5kZXgpXCIgW3N2Z0ljb25dPVwiYXJyb3dVcEljb25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNvbGxhcHNlUm93KHJvd0luZGV4KVwiIGZpbGxNb2RlPVwibm9uZVwiIGNsYXNzPVwiYXJyb3ctYnRuXCI+XG4gICAgICAgICAgPC9rZW5kby1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2tlbmRvLWdyaWQtY29sdW1uPlxuXG4gICAgPG5nLXRlbXBsYXRlIGtlbmRvUGFnZXJUZW1wbGF0ZSBsZXQtdG90YWxQYWdlcz1cInRvdGFsUGFnZXNcIiBsZXQtY3VycmVudFBhZ2U9XCJjdXJyZW50UGFnZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInBhZ2luYXRpb24td3JhcHBlclwiIFtuZ0NsYXNzXT1cImFsbFBhZ2VzU2VsZWN0ZWQgPyAncGFnaW5hdGlvbi1kaXNhYmxlZCcgOiAnJ1wiPlxuICAgICAgICA8a2VuZG8tcGFnZXItcHJldi1idXR0b25zPjwva2VuZG8tcGFnZXItcHJldi1idXR0b25zPlxuICAgICAgICA8a2VuZG8tcGFnZXItbnVtZXJpYy1idXR0b25zIFtidXR0b25Db3VudF09XCJfcGFnZUNvdW50XCI+PC9rZW5kby1wYWdlci1udW1lcmljLWJ1dHRvbnM+XG4gICAgICAgIDxrZW5kby1wYWdlci1uZXh0LWJ1dHRvbnM+PC9rZW5kby1wYWdlci1uZXh0LWJ1dHRvbnM+XG4gICAgICAgIDxrZW5kby1wYWdlci1pbmZvPjwva2VuZG8tcGFnZXItaW5mbz5cbiAgICAgICAgPGtlbmRvLXBhZ2VyLXBhZ2Utc2l6ZXMgW3BhZ2VTaXplc109XCJzaXplc1wiPjwva2VuZG8tcGFnZXItcGFnZS1zaXplcz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgPC9rZW5kby1ncmlkPlxuPC9kaXY+XG4iXX0=
|