@bnsights/bbsf-admin-portal 1.1.4 → 1.1.6
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/README.md +6 -2
- package/bnsights-bbsf-admin-portal-1.1.6.tgz +0 -0
- package/esm2022/lib/Pages/ActiveDirectories/active-directories.component.mjs +1 -1
- package/esm2022/lib/Pages/ActiveDirectories/active-directory/active-directory.component.mjs +146 -146
- package/esm2022/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.mjs +152 -152
- package/esm2022/lib/Pages/_layout/components/aside/aside-menu/aside-menu.component.mjs +1 -1
- package/esm2022/lib/Pages/_layout/components/aside/aside.component.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/activation/activation.component.mjs +15 -15
- package/esm2022/lib/Pages/anonymouslayout/anonymouslayout-routing.module.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/anonymouslayout.component.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/error/error.component.mjs +7 -7
- package/esm2022/lib/Pages/anonymouslayout/forgot-password/forgot-password.component.mjs +12 -12
- package/esm2022/lib/Pages/anonymouslayout/login/login.component.mjs +19 -19
- package/esm2022/lib/Pages/anonymouslayout/rest-password/rest-password.component.mjs +15 -15
- package/esm2022/lib/Pages/anonymouslayout/upload-license/upload-license.component.mjs +12 -12
- package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration-edit/auth-configuration-edit.component.mjs +102 -102
- package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration.component.mjs +7 -7
- package/esm2022/lib/Pages/configurations/configuration/configuration.component.mjs +271 -271
- package/esm2022/lib/Pages/core/auth.module.mjs +1 -1
- package/esm2022/lib/Pages/core/authentication/admin.guard.mjs +1 -1
- package/esm2022/lib/Pages/core/authentication/auth.guard.mjs +3 -3
- package/esm2022/lib/Pages/departments/department/department.component.mjs +48 -48
- package/esm2022/lib/Pages/departments/department-info/department-info.component.mjs +32 -32
- package/esm2022/lib/Pages/documents/add-document/add-document.component.mjs +52 -52
- package/esm2022/lib/Pages/documents/document-master-layouts/document-master-layouts.component.mjs +20 -20
- package/esm2022/lib/Pages/documents/document-template-info/document-template-info.component.mjs +100 -100
- package/esm2022/lib/Pages/documents/document-templates/document-templates.component.mjs +151 -151
- package/esm2022/lib/Pages/documents/edit-document/edit-document.component.mjs +72 -72
- package/esm2022/lib/Pages/documents/edit-document-template/edit-document-template.component.mjs +27 -27
- package/esm2022/lib/Pages/empty-data/empty-data.component.mjs +1 -1
- package/esm2022/lib/Pages/empty-data/empty-data.module.mjs +1 -1
- package/esm2022/lib/Pages/helpCenter/help-center/help-center.component.mjs +84 -84
- package/esm2022/lib/Pages/helpCenter/help-center-preview/help-center-preview.component.mjs +1 -1
- package/esm2022/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.mjs +56 -56
- package/esm2022/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.mjs +58 -58
- package/esm2022/lib/Pages/home/home.component.mjs +7 -7
- package/esm2022/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.mjs +129 -129
- package/esm2022/lib/Pages/jobs/jobs/jobs.component.mjs +14 -14
- package/esm2022/lib/Pages/license/license/license.component.mjs +11 -11
- package/esm2022/lib/Pages/localizations/localizations-replace-text/localizations-replace-text.component.mjs +41 -41
- package/esm2022/lib/Pages/localizations/localizations.component.mjs +125 -125
- package/esm2022/lib/Pages/logs/log/log.component.mjs +11 -11
- package/esm2022/lib/Pages/lookups/lookup/lookup.component.mjs +120 -120
- package/esm2022/lib/Pages/lookups/lookup-group/lookup-group.component.mjs +34 -34
- package/esm2022/lib/Pages/lookups/lookup-item/lookup-item.component.mjs +83 -83
- package/esm2022/lib/Pages/notifications/add-notification/add-notification.component.mjs +35 -35
- package/esm2022/lib/Pages/notifications/edit-email/edit-email.component.mjs +53 -53
- package/esm2022/lib/Pages/notifications/edit-notification/edit-notification.component.mjs +50 -50
- package/esm2022/lib/Pages/notifications/edit-sms/edit-sms.component.mjs +16 -16
- package/esm2022/lib/Pages/notifications/master-layouts/master-layouts.component.mjs +20 -20
- package/esm2022/lib/Pages/notifications/template-info/template-info.component.mjs +135 -135
- package/esm2022/lib/Pages/notifications/templates/templates.component.mjs +186 -186
- package/esm2022/lib/Pages/providers/provider/provider.component.mjs +122 -122
- package/esm2022/lib/Pages/publicHolidays/public-holiday/public-holiday.component.mjs +120 -120
- package/esm2022/lib/Pages/roles/permission-set-info/permission-set-info.component.mjs +29 -29
- package/esm2022/lib/Pages/roles/permissions/permissions.component.mjs +57 -57
- package/esm2022/lib/Pages/roles/permissionsets/permissionsets.component.mjs +79 -79
- package/esm2022/lib/Pages/sectors/sector/sector.component.mjs +35 -35
- package/esm2022/lib/Pages/sectors/sector-info/sector-info.component.mjs +27 -27
- package/esm2022/lib/Pages/sectors/sectors-department-info/sectors-department-info.component.mjs +27 -27
- package/esm2022/lib/Pages/shared/Services/AccountService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/ActiveDirectoryService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/AnonymousLayoutService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/DepartmentService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/DocumentHeaderAndFooterTemplate.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/DocumentTemplateService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/HelpCenterService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/ImpersonationRuleService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/JobsService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/LicenseService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/LogsService.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/LookupGroupsService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/LookupService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/PermissionSetService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/PermissionsService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/PublicHolidayService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/SectorService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/TemplateService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/WorkflowActivityService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/WorkflowService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/WorkflowVariablesService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/localizationsService.service .mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/provider.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/external-url/external-url.component.mjs +36 -36
- package/esm2022/lib/Pages/shared/components/survey/add-survey/add-survey.component.mjs +74 -74
- package/esm2022/lib/Pages/shared/components/survey/delete-survey/delete-survey.component.mjs +8 -8
- package/esm2022/lib/Pages/shared/components/survey/duplicate-survey/duplicate-survey.component.mjs +10 -10
- package/esm2022/lib/Pages/shared/components/survey/edit-survey/edit-survey.component.mjs +89 -89
- package/esm2022/lib/Pages/shared/components/survey/submissions/delete-submission/delete-submission.component.mjs +7 -7
- package/esm2022/lib/Pages/shared/components/survey/submissions/eliminate-submission/eliminate-submission.component.mjs +9 -9
- package/esm2022/lib/Pages/shared/components/survey/submissions/uneliminate-submission/uneliminate-submission.component.mjs +10 -10
- package/esm2022/lib/Pages/shared/components/survey/survey-info/add-question/add-question.component.mjs +222 -222
- package/esm2022/lib/Pages/shared/components/survey/survey-info/delete-question/delete-question.component.mjs +7 -7
- package/esm2022/lib/Pages/shared/components/survey/survey-info/edit-question/edit-question.component.mjs +257 -257
- package/esm2022/lib/Pages/shared/components/survey/survey-info/preview/preview.component.mjs +25 -25
- package/esm2022/lib/Pages/shared/components/survey/survey-info/publish-survey/publish-survey.component.mjs +24 -24
- package/esm2022/lib/Pages/shared/components/survey/survey-info/result-question/result.component.mjs +6 -6
- package/esm2022/lib/Pages/shared/components/survey/survey-info/survey-info.component.mjs +52 -52
- package/esm2022/lib/Pages/shared/components/survey/survey-info/take-survey/take-survey.component.mjs +16 -16
- package/esm2022/lib/Pages/shared/components/survey/survey-info/unpublish-survey/unpublish-survey.component.mjs +20 -20
- package/esm2022/lib/Pages/shared/components/survey/survey.component.mjs +69 -69
- package/esm2022/lib/Pages/shared/components/survey-form/survey-form.component.mjs +180 -180
- package/esm2022/lib/Pages/shared/models/SurveyModels/survey-question-option.mjs +3 -3
- package/esm2022/lib/Pages/users/users.component.mjs +190 -190
- package/esm2022/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.mjs +176 -176
- package/esm2022/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.mjs +364 -364
- package/esm2022/lib/Pages/workflows/instance-info/instance-info.component.mjs +67 -67
- package/esm2022/lib/Pages/workflows/tabs/tabs.component.mjs +227 -227
- package/esm2022/lib/Pages/workflows/version-info/version-info.component.mjs +31 -31
- package/esm2022/lib/Pages/workflows/workflow/workflow.component.mjs +56 -56
- package/fesm2022/bnsights-bbsf-admin-portal.mjs +5187 -5187
- package/fesm2022/bnsights-bbsf-admin-portal.mjs.map +1 -1
- package/lib/Pages/ActiveDirectories/active-directories.component.d.ts +0 -1
- package/lib/Pages/configurations/auth-configuration/auth-configuration-edit/auth-configuration-edit.component.d.ts +2 -2
- package/lib/Pages/workflows/tabs/tabs.component.d.ts +1 -1
- package/package.json +3 -3
- package/esm2022/bnsights-test-test-admin-portal.mjs +0 -5
- package/fesm2022/bnsights-test-test-admin-portal.mjs +0 -27181
- package/fesm2022/bnsights-test-test-admin-portal.mjs.map +0 -1
|
@@ -40,7 +40,7 @@ export class SurveyComponent extends AppBaseComponent {
|
|
|
40
40
|
this.showFilters = !this.showFilters;
|
|
41
41
|
this.loading = true;
|
|
42
42
|
this.isFiltersDataLoaded = false;
|
|
43
|
-
this.pageHeaderOptions.
|
|
43
|
+
this.pageHeaderOptions.filtersButton.showLoadingInFiltersBox =
|
|
44
44
|
this.loading;
|
|
45
45
|
}
|
|
46
46
|
this.flipping = !this.flipping;
|
|
@@ -48,33 +48,33 @@ export class SurveyComponent extends AppBaseComponent {
|
|
|
48
48
|
this.loadFiltersData = () => {
|
|
49
49
|
this.surveyService.loadFiltersDropdown().subscribe((r) => {
|
|
50
50
|
let result = r;
|
|
51
|
-
this.statusDropdownOptions.
|
|
52
|
-
this.sortDropdownOptions.
|
|
53
|
-
this.sortTypeDropdownOptions.
|
|
54
|
-
this.visibleDropdownOptions.
|
|
51
|
+
this.statusDropdownOptions.dataSource = result.statuses;
|
|
52
|
+
this.sortDropdownOptions.dataSource = result.surveySortingTypes;
|
|
53
|
+
this.sortTypeDropdownOptions.dataSource = result.sortTypes;
|
|
54
|
+
this.visibleDropdownOptions.dataSource = result.visibility;
|
|
55
55
|
this.showFilters = true;
|
|
56
56
|
this.isFiltersDataLoaded = true;
|
|
57
57
|
this.loading = false;
|
|
58
|
-
this.pageHeaderOptions.
|
|
58
|
+
this.pageHeaderOptions.filtersButton.showLoadingInFiltersBox =
|
|
59
59
|
this.loading;
|
|
60
60
|
});
|
|
61
61
|
};
|
|
62
62
|
this.resetFilters = () => {
|
|
63
|
-
this.filtersForm.controls[this.DatePickerWithRangeMode.
|
|
64
|
-
this.filtersForm.controls[this.visibleDropdownOptions.
|
|
65
|
-
this.filtersForm.controls[this.statusDropdownOptions.
|
|
66
|
-
this.filtersForm.controls[this.sortDropdownOptions.
|
|
67
|
-
this.filtersForm.controls[this.sortTypeDropdownOptions.
|
|
68
|
-
this.filtersForm.controls[this.searchTextBoxOptions.
|
|
63
|
+
this.filtersForm.controls[this.DatePickerWithRangeMode.name].setValue(null);
|
|
64
|
+
this.filtersForm.controls[this.visibleDropdownOptions.name].setValue(null);
|
|
65
|
+
this.filtersForm.controls[this.statusDropdownOptions.name].setValue(null);
|
|
66
|
+
this.filtersForm.controls[this.sortDropdownOptions.name].setValue(null);
|
|
67
|
+
this.filtersForm.controls[this.sortTypeDropdownOptions.name].setValue(null);
|
|
68
|
+
this.filtersForm.controls[this.searchTextBoxOptions.name].setValue(null);
|
|
69
69
|
this.loading = true;
|
|
70
|
-
this.pageHeaderOptions.
|
|
70
|
+
this.pageHeaderOptions.filtersButton.showLoadingInFiltersBox = this.loading;
|
|
71
71
|
this.pagingElement.ReinitializePaging();
|
|
72
72
|
};
|
|
73
73
|
this.search = () => {
|
|
74
74
|
if (!this.filtersForm.valid)
|
|
75
75
|
return;
|
|
76
76
|
this.loading = true;
|
|
77
|
-
this.pageHeaderOptions.
|
|
77
|
+
this.pageHeaderOptions.filtersButton.showLoadingInFiltersBox = this.loading;
|
|
78
78
|
this.pagingElement.ReinitializePaging();
|
|
79
79
|
};
|
|
80
80
|
this.showAddModal = () => {
|
|
@@ -101,110 +101,110 @@ export class SurveyComponent extends AppBaseComponent {
|
|
|
101
101
|
this.searchTextFilter.IsFormControl = true;
|
|
102
102
|
this.searchTextFilter.FilterType = FilterType.TextBox;
|
|
103
103
|
this.visibleDropdownOptions = new DropdownOptions();
|
|
104
|
-
this.visibleDropdownOptions.
|
|
105
|
-
this.visibleDropdownOptions.
|
|
106
|
-
this.visibleDropdownOptions.
|
|
104
|
+
this.visibleDropdownOptions.name = 'visibleSurvey';
|
|
105
|
+
this.visibleDropdownOptions.labelKey = 'Visibility';
|
|
106
|
+
this.visibleDropdownOptions.singleSelection = true;
|
|
107
107
|
this.visiblePanelDropdownFilter = new FilterItem();
|
|
108
108
|
this.visiblePanelDropdownFilter.FormControlName =
|
|
109
|
-
this.visibleDropdownOptions.
|
|
109
|
+
this.visibleDropdownOptions.name;
|
|
110
110
|
this.visiblePanelDropdownFilter.ActionParameterName = 'ActiveStatus';
|
|
111
111
|
this.visiblePanelDropdownFilter.IsFormControl = true;
|
|
112
112
|
this.visiblePanelDropdownFilter.FilterType = FilterType.DropdownList;
|
|
113
113
|
this.statusDropdownOptions = new DropdownOptions();
|
|
114
|
-
this.statusDropdownOptions.
|
|
115
|
-
this.statusDropdownOptions.
|
|
116
|
-
this.statusDropdownOptions.
|
|
117
|
-
this.statusDropdownOptions.
|
|
114
|
+
this.statusDropdownOptions.name = 'Status';
|
|
115
|
+
this.statusDropdownOptions.labelKey = 'Status';
|
|
116
|
+
this.statusDropdownOptions.singleSelection = true;
|
|
117
|
+
this.statusDropdownOptions.notFoundText = this.l('NoResultFound');
|
|
118
118
|
this.statusDropdownFilter = new FilterItem();
|
|
119
|
-
this.statusDropdownFilter.FormControlName = this.statusDropdownOptions.
|
|
119
|
+
this.statusDropdownFilter.FormControlName = this.statusDropdownOptions.name;
|
|
120
120
|
this.statusDropdownFilter.ActionParameterName = 'SurveyStatus';
|
|
121
121
|
this.statusDropdownFilter.IsFormControl = true;
|
|
122
122
|
this.statusDropdownFilter.FilterType = FilterType.DropdownList;
|
|
123
123
|
this.DatePickerWithRangeMode = new DatePickerOptions();
|
|
124
|
-
this.DatePickerWithRangeMode.
|
|
125
|
-
this.DatePickerWithRangeMode.
|
|
126
|
-
this.DatePickerWithRangeMode.
|
|
127
|
-
this.DatePickerWithRangeMode.
|
|
128
|
-
this.DatePickerWithRangeMode.
|
|
129
|
-
this.DatePickerWithRangeMode.
|
|
124
|
+
this.DatePickerWithRangeMode.name = 'DatePickerWithRangeMode';
|
|
125
|
+
this.DatePickerWithRangeMode.labelKey = 'Date';
|
|
126
|
+
this.DatePickerWithRangeMode.viewType = ControlLayout.Vertical;
|
|
127
|
+
this.DatePickerWithRangeMode.startView = StartView.Month;
|
|
128
|
+
this.DatePickerWithRangeMode.pickerType = PickerType.Calendar;
|
|
129
|
+
this.DatePickerWithRangeMode.selectMode = SelectMode.Range;
|
|
130
130
|
this.DatePickerWithRangeFilter = new FilterItem();
|
|
131
131
|
this.DatePickerWithRangeFilter.FormControlName =
|
|
132
|
-
this.DatePickerWithRangeMode.
|
|
132
|
+
this.DatePickerWithRangeMode.name;
|
|
133
133
|
this.DatePickerWithRangeFilter.ActionParameterName = 'Date';
|
|
134
134
|
this.DatePickerWithRangeFilter.IsFormControl = true;
|
|
135
135
|
this.DatePickerWithRangeFilter.FilterType = FilterType.DatePicker;
|
|
136
136
|
this.sortDropdownOptions = new DropdownOptions();
|
|
137
|
-
this.sortDropdownOptions.
|
|
138
|
-
this.sortDropdownOptions.
|
|
139
|
-
this.sortDropdownOptions.
|
|
140
|
-
this.sortDropdownOptions.
|
|
137
|
+
this.sortDropdownOptions.name = 'Sort';
|
|
138
|
+
this.sortDropdownOptions.labelKey = 'Sort';
|
|
139
|
+
this.sortDropdownOptions.singleSelection = true;
|
|
140
|
+
this.sortDropdownOptions.notFoundText = this.l('NoResultFound');
|
|
141
141
|
this.sortDropdownFilter = new FilterItem();
|
|
142
|
-
this.sortDropdownFilter.FormControlName = this.sortDropdownOptions.
|
|
142
|
+
this.sortDropdownFilter.FormControlName = this.sortDropdownOptions.name;
|
|
143
143
|
this.sortDropdownFilter.ActionParameterName = 'SortBy';
|
|
144
144
|
this.sortDropdownFilter.IsFormControl = true;
|
|
145
145
|
this.sortDropdownFilter.FilterType = FilterType.DropdownList;
|
|
146
146
|
this.sortTypeDropdownOptions = new DropdownOptions();
|
|
147
|
-
this.sortTypeDropdownOptions.
|
|
148
|
-
this.sortTypeDropdownOptions.
|
|
149
|
-
this.sortTypeDropdownOptions.
|
|
150
|
-
this.sortTypeDropdownOptions.
|
|
147
|
+
this.sortTypeDropdownOptions.name = 'SortType';
|
|
148
|
+
this.sortTypeDropdownOptions.labelKey = 'SortType';
|
|
149
|
+
this.sortTypeDropdownOptions.singleSelection = true;
|
|
150
|
+
this.sortTypeDropdownOptions.notFoundText = this.l('NoResultFound');
|
|
151
151
|
this.sortTypeDropdownFilter = new FilterItem();
|
|
152
152
|
this.sortTypeDropdownFilter.FormControlName =
|
|
153
|
-
this.sortTypeDropdownOptions.
|
|
153
|
+
this.sortTypeDropdownOptions.name;
|
|
154
154
|
this.sortTypeDropdownFilter.ActionParameterName = 'SortType';
|
|
155
155
|
this.sortTypeDropdownFilter.IsFormControl = true;
|
|
156
156
|
this.sortTypeDropdownFilter.FilterType = FilterType.DropdownList;
|
|
157
157
|
this.pageHeaderOptions = new PageHeaderOptions();
|
|
158
|
-
this.pageHeaderOptions.
|
|
159
|
-
this.pageHeaderOptions.
|
|
160
|
-
this.pageHeaderOptions.
|
|
161
|
-
this.pageHeaderOptions.
|
|
158
|
+
this.pageHeaderOptions.titleKey = this.pageTitle;
|
|
159
|
+
this.pageHeaderOptions.subTitleKey = this.l('Survey_SubHeader');
|
|
160
|
+
this.pageHeaderOptions.searchTextBox.active = true;
|
|
161
|
+
this.pageHeaderOptions.searchTextBox.textSearchBoxOptions =
|
|
162
162
|
this.searchTextBoxOptions;
|
|
163
|
-
this.pageHeaderOptions.
|
|
164
|
-
this.pageHeaderOptions.
|
|
165
|
-
this.pageHeaderOptions.
|
|
166
|
-
this.pageHeaderOptions.
|
|
163
|
+
this.pageHeaderOptions.breadCrumb.active = true;
|
|
164
|
+
this.pageHeaderOptions.breadCrumb.breadCrumbItems = this.breadCrumb;
|
|
165
|
+
this.pageHeaderOptions.editButton.active = false;
|
|
166
|
+
this.pageHeaderOptions.exportButton.active = false;
|
|
167
167
|
if (this.enableActions) {
|
|
168
|
-
this.pageHeaderOptions.
|
|
169
|
-
this.pageHeaderOptions.
|
|
170
|
-
this.pageHeaderOptions.
|
|
168
|
+
this.pageHeaderOptions.addButton.active = true;
|
|
169
|
+
this.pageHeaderOptions.addButton.buttonTextKey = this.l('Add');
|
|
170
|
+
this.pageHeaderOptions.addButton.function = this.showAddModal;
|
|
171
171
|
}
|
|
172
|
-
this.pageHeaderOptions.
|
|
173
|
-
this.pageHeaderOptions.
|
|
174
|
-
this.pageHeaderOptions.
|
|
175
|
-
this.pageHeaderOptions.
|
|
176
|
-
this.pageHeaderOptions.
|
|
177
|
-
this.pageHeaderOptions.
|
|
172
|
+
this.pageHeaderOptions.filtersButton.active = true;
|
|
173
|
+
this.pageHeaderOptions.filtersButton.buttonTextKey = this.l('Filters');
|
|
174
|
+
this.pageHeaderOptions.filtersButton.function = this.loadFilters;
|
|
175
|
+
this.pageHeaderOptions.filters.applyFunction = this.search;
|
|
176
|
+
this.pageHeaderOptions.filters.restFunction = this.resetFilters;
|
|
177
|
+
this.pageHeaderOptions.filters.controlsOptions.push({
|
|
178
178
|
key: DataType.SingleSelect,
|
|
179
179
|
value: this.visibleDropdownOptions,
|
|
180
180
|
});
|
|
181
|
-
this.pageHeaderOptions.
|
|
181
|
+
this.pageHeaderOptions.filters.controlsOptions.push({
|
|
182
182
|
key: DataType.SingleSelect,
|
|
183
183
|
value: this.statusDropdownOptions,
|
|
184
184
|
});
|
|
185
|
-
this.pageHeaderOptions.
|
|
185
|
+
this.pageHeaderOptions.filters.controlsOptions.push({
|
|
186
186
|
key: DataType.Date,
|
|
187
187
|
value: this.DatePickerWithRangeMode,
|
|
188
188
|
});
|
|
189
|
-
this.pageHeaderOptions.
|
|
189
|
+
this.pageHeaderOptions.filters.controlsOptions.push({
|
|
190
190
|
key: DataType.SingleSelect,
|
|
191
191
|
value: this.sortDropdownOptions,
|
|
192
192
|
});
|
|
193
|
-
this.pageHeaderOptions.
|
|
193
|
+
this.pageHeaderOptions.filters.controlsOptions.push({
|
|
194
194
|
key: DataType.SingleSelect,
|
|
195
195
|
value: this.sortTypeDropdownOptions,
|
|
196
196
|
});
|
|
197
|
-
this.pageHeaderOptions.
|
|
197
|
+
this.pageHeaderOptions.listing = true;
|
|
198
198
|
this.EN = this.utilityService.isCurrentLanguageEnglish();
|
|
199
199
|
this.pagingOptions = new PagingOptions();
|
|
200
|
-
this.pagingOptions.
|
|
201
|
-
this.pagingOptions.
|
|
202
|
-
this.pagingOptions.
|
|
203
|
-
this.pageHeaderOptions.
|
|
204
|
-
this.pagingOptions.
|
|
200
|
+
this.pagingOptions.pageSize = 8;
|
|
201
|
+
this.pagingOptions.disableBlockUI = true;
|
|
202
|
+
this.pagingOptions.actionPostURL = this.apiURL + 'GetAll';
|
|
203
|
+
this.pageHeaderOptions.listing = true;
|
|
204
|
+
this.pagingOptions.onKeyPressFiltersControlNames = [
|
|
205
205
|
this.searchTextBoxOptions.Name,
|
|
206
206
|
];
|
|
207
|
-
this.pagingOptions.
|
|
207
|
+
this.pagingOptions.filters = [
|
|
208
208
|
this.searchTextFilter,
|
|
209
209
|
this.visiblePanelDropdownFilter,
|
|
210
210
|
this.statusDropdownFilter,
|
|
@@ -289,4 +289,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
289
289
|
type: ViewChild,
|
|
290
290
|
args: ['duplicateModal', { static: false }]
|
|
291
291
|
}] } });
|
|
292
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvc2hhcmVkL2NvbXBvbmVudHMvc3VydmV5L3N1cnZleS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9jb21wb25lbnRzL3N1cnZleS9zdXJ2ZXkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLFNBQVMsRUFBMkIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsYUFBYSxFQUNiLFFBQVEsRUFDUixpQkFBaUIsRUFDakIsZUFBZSxFQUNmLFVBQVUsRUFDVixVQUFVLEVBQ1YsU0FBUyxFQUVULFNBQVMsRUFDVCxjQUFjLEVBQ2QsVUFBVSxFQUNWLFVBQVUsRUFDVixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLGdCQUFnQixHQUNqQixNQUFNLHlCQUF5QixDQUFDO0FBR2pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBTXRFLE1BQU0sT0FBTyxlQUFnQixTQUFRLGdCQUFnQjtJQTBDbkQsWUFDVSxRQUFrQixFQUNsQixhQUE0QjtRQUVwQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFIUixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBMUN0QyxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLGVBQVUsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUcvQixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUN4QixxQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQXVCM0MsaUJBQVksR0FBVSxFQUFFLENBQUM7UUFFekIsZ0JBQVcsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoQyxXQUFNLEdBQVcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7UUFDM0MsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0Isb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFHakMsWUFBTyxHQUFZLElBQUksQ0FBQztRQUN4QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBc0sxQixnQkFBVyxHQUFHLEdBQUcsRUFBRTtZQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVc7Z0JBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2lCQUN0RTtnQkFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFDckMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsdUJBQXVCO29CQUMxRCxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQ2hCO1lBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDakMsQ0FBQyxDQUFDO1FBRUYsb0JBQWUsR0FBRyxHQUFHLEVBQUU7WUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUN2RCxJQUFJLE1BQU0sR0FBRyxDQUFRLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUM7Z0JBQ2hFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO2dCQUMzRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztnQkFDeEIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztnQkFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsdUJBQXVCO29CQUMxRCxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsaUJBQVksR0FBRyxHQUFHLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1RSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNFLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4RSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVFLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQzVFLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQyxDQUFDLENBQUM7UUFFRixXQUFNLEdBQUcsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSztnQkFBRSxPQUFPO1lBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUM1RSxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUMsQ0FBQyxDQUFDO1FBRUYsaUJBQVksR0FBRyxHQUFHLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUM7SUEvTUYsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLFlBQVksQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLGtCQUFrQjtZQUMxRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUNqRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQztRQUNqRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDaEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZO1lBQ3BDLDREQUE0RCxDQUFDO1FBQy9ELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzNDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEdBQUcsbUNBQW1DLENBQUM7UUFFckUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsR0FBRyxZQUFZLENBQUM7UUFDekQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDM0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBRXRELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3BELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEdBQUcsZUFBZSxDQUFDO1FBQ25ELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDO1FBQ3BELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBRW5ELElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ25ELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxlQUFlO1lBQzdDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUM7UUFDbkMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLG1CQUFtQixHQUFHLGNBQWMsQ0FBQztRQUNyRSxJQUFJLENBQUMsMEJBQTBCLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUNyRCxJQUFJLENBQUMsMEJBQTBCLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUM7UUFFckUsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFDM0MsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDL0MsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDbEQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRWxFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQztRQUM1RSxJQUFJLENBQUMsb0JBQW9CLENBQUMsbUJBQW1CLEdBQUcsY0FBYyxDQUFDO1FBQy9ELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQy9DLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQztRQUUvRCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEdBQUcseUJBQXlCLENBQUM7UUFDOUQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7UUFDL0MsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDO1FBQy9ELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUN6RCxJQUFJLENBQUMsdUJBQXVCLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDOUQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBRTNELElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxlQUFlO1lBQzVDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUM7UUFDcEMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQztRQUM1RCxJQUFJLENBQUMseUJBQXlCLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUNwRCxJQUFJLENBQUMseUJBQXlCLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUM7UUFFbEUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDakQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7UUFDdkMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7UUFDM0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDaEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRWhFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQztRQUN4RSxJQUFJLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLEdBQUcsUUFBUSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzdDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQztRQUU3RCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNyRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztRQUMvQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUNuRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUNwRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFcEUsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGVBQWU7WUFDekMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQztRQUNwQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLEdBQUcsVUFBVSxDQUFDO1FBQzdELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ2pELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQztRQUVqRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNqRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxvQkFBb0I7WUFDdkQsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBQzVCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNoRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3BFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNqRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbkQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUMvQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDL0Q7UUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNoRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7WUFDbEQsR0FBRyxFQUFFLFFBQVEsQ0FBQyxZQUFZO1lBQzFCLEtBQUssRUFBRSxJQUFJLENBQUMsc0JBQXNCO1NBQ25DLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztZQUNsRCxHQUFHLEVBQUUsUUFBUSxDQUFDLFlBQVk7WUFDMUIsS0FBSyxFQUFFLElBQUksQ0FBQyxxQkFBcUI7U0FDbEMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO1lBQ2xELEdBQUcsRUFBRSxRQUFRLENBQUMsSUFBSTtZQUNsQixLQUFLLEVBQUUsSUFBSSxDQUFDLHVCQUF1QjtTQUNwQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7WUFDbEQsR0FBRyxFQUFFLFFBQVEsQ0FBQyxZQUFZO1lBQzFCLEtBQUssRUFBRSxJQUFJLENBQUMsbUJBQW1CO1NBQ2hDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztZQUNsRCxHQUFHLEVBQUUsUUFBUSxDQUFDLFlBQVk7WUFDMUIsS0FBSyxFQUFFLElBQUksQ0FBQyx1QkFBdUI7U0FDcEMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDdEMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFFekQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7UUFDMUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyw2QkFBNkIsR0FBRztZQUNqRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSTtTQUMvQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEdBQUc7WUFDM0IsSUFBSSxDQUFDLGdCQUFnQjtZQUNyQixJQUFJLENBQUMsMEJBQTBCO1lBQy9CLElBQUksQ0FBQyxvQkFBb0I7WUFDekIsSUFBSSxDQUFDLHlCQUF5QjtZQUM5QixJQUFJLENBQUMsa0JBQWtCO1lBQ3ZCLElBQUksQ0FBQyxzQkFBc0I7U0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQU07UUFDckIsUUFBUSxDQUFDO1FBQ1QsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUM7UUFDM0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBbURELGFBQWEsQ0FBQyxFQUFFO1FBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUNELGtCQUFrQixDQUFDLEVBQUU7UUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsZUFBZSxDQUFDLEVBQUU7UUFDaEIsSUFBSSxDQUFDLDhCQUE4QixDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQU07UUFDZixJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdEIsUUFBUSxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBRTtZQUNsQyxLQUFLLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3JFLEtBQUssSUFBSSxDQUFDLGdCQUFnQixDQUFDLHdCQUF3QixDQUFDLGlCQUFpQixFQUFFO2dCQUNyRSxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUNqQixNQUFNO1lBQ1IsS0FBSyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN0RSxLQUFLLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQyxpQkFBaUIsRUFBRTtnQkFDdEUsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDbEIsTUFBTTtZQUNSO2dCQUNFLE1BQU07U0FDVDtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxTQUFTLENBQUMsTUFBTTtRQUNkLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNsQixRQUFRLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFO1lBQ2xDLEtBQUssSUFBSSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixFQUFFO2dCQUNsRSxRQUFRLEdBQUcsaUJBQWlCLENBQUM7Z0JBQzdCLE1BQU07WUFDUixLQUFLLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxpQkFBaUIsRUFBRTtnQkFDbkUsUUFBUSxHQUFHLGNBQWMsQ0FBQztnQkFDMUIsTUFBTTtZQUNSLEtBQUssSUFBSSxDQUFDLGdCQUFnQixDQUFDLHlCQUF5QixDQUFDLGlCQUFpQixFQUFFO2dCQUN0RSxRQUFRLEdBQUcsZUFBZSxDQUFDO2dCQUMzQixNQUFNO1lBQ1IsS0FBSyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ3JFLFFBQVEsR0FBRyxlQUFlLENBQUM7Z0JBQzNCLE1BQU07WUFFUjtnQkFDRSxNQUFNO1NBQ1Q7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOzhHQTdTVSxlQUFlO2tHQUFmLGVBQWUsbWxCQ2hDNUIsNG1LQThGQTs7MkZEOURhLGVBQWU7a0JBSjNCLFNBQVM7K0JBQ0UsWUFBWTt5R0FhdEIsYUFBYTtzQkFEWixTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFUCxRQUFRO3NCQUFqRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0csU0FBUztzQkFBbkQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUV6Qyw4QkFBOEI7c0JBRDdCLFNBQVM7dUJBQUMsZ0NBQWdDLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUc5RCxjQUFjO3NCQURiLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVsZXRlU3VydmV5Q29tcG9uZW50IH0gZnJvbSAnLi9kZWxldGUtc3VydmV5L2RlbGV0ZS1zdXJ2ZXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRWRpdFN1cnZleUNvbXBvbmVudCB9IGZyb20gJy4vZWRpdC1zdXJ2ZXkvZWRpdC1zdXJ2ZXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRkU3VydmV5Q29tcG9uZW50IH0gZnJvbSAnLi9hZGQtc3VydmV5L2FkZC1zdXJ2ZXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBDb250cm9sTGF5b3V0LFxyXG4gIERhdGFUeXBlLFxyXG4gIERhdGVQaWNrZXJPcHRpb25zLFxyXG4gIERyb3Bkb3duT3B0aW9ucyxcclxuICBGaWx0ZXJJdGVtLFxyXG4gIEZpbHRlclR5cGUsXHJcbiAgSW5wdXRUeXBlLFxyXG4gIFBhZ2luZ0NvbXBvbmVudCxcclxuICBTdGFydFZpZXcsXHJcbiAgVGV4dEJveE9wdGlvbnMsXHJcbiAgUGlja2VyVHlwZSxcclxuICBTZWxlY3RNb2RlLFxyXG4gIFBhZ2luZ09wdGlvbnMsXHJcbiAgUGFnZUhlYWRlck9wdGlvbnMsXHJcbiAgQXBwQmFzZUNvbXBvbmVudCxcclxufSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcblxyXG5pbXBvcnQgeyBEdXBsaWNhdGVTdXJ2ZXlDb21wb25lbnQgfSBmcm9tICcuL2R1cGxpY2F0ZS1zdXJ2ZXkvZHVwbGljYXRlLXN1cnZleS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlNb2RlLCBTdXJ2ZXlTdGF0dXNFbnVtIH0gZnJvbSAnLi4vLi4vRW51bXMvRW51bXMnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vU2VydmljZXMvc3VydmV5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvU3VydmV5TW9kZWxzL3N1cnZleS11dGlscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zdXJ2ZXknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdXJ2ZXkuY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3VydmV5Q29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcGFnZUhlYWRlck9wdGlvbnM6IFBhZ2VIZWFkZXJPcHRpb25zO1xyXG4gIHBhZ2VUaXRsZSA9ICcnO1xyXG4gIHN1YlRpdGxlID0gJyc7XHJcbiAgc3VydmV5Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGJyZWFkQ3J1bWI6IGFueVtdO1xyXG4gIEVOOiBib29sZWFuO1xyXG4gIGVuYWJsZUFjdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgU3VydmV5U3RhdHVzRW51bSA9IFN1cnZleVN0YXR1c0VudW07XHJcbiAgQFZpZXdDaGlsZCgncGFnaW5nVmlld0VsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBwYWdpbmdFbGVtZW50OiBQYWdpbmdDb21wb25lbnQ8YW55PjtcclxuICBAVmlld0NoaWxkKCdhZGRNb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBhZGRNb2RhbDogQWRkU3VydmV5Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2VkaXRNb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBlZGl0TW9kYWw6IEVkaXRTdXJ2ZXlDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZGVsZXRlQ29uZmlybWF0aW9uTW9kYWxDb250cm9sJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgZGVsZXRlQ29uZmlybWF0aW9uTW9kYWxDb250cm9sOiBEZWxldGVTdXJ2ZXlDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZHVwbGljYXRlTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBkdXBsaWNhdGVNb2RhbDogRHVwbGljYXRlU3VydmV5Q29tcG9uZW50O1xyXG5cclxuICAvL0xpc3RpbmdcclxuICBzZWFyY2hUZXh0Qm94T3B0aW9uczogYW55O1xyXG4gIHNlYXJjaFRleHRGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgc3RhdHVzRHJvcGRvd25PcHRpb25zOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgdmlzaWJsZURyb3Bkb3duT3B0aW9uczogRHJvcGRvd25PcHRpb25zO1xyXG4gIHZpc2libGVQYW5lbERyb3Bkb3duRmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIHN0YXR1c0Ryb3Bkb3duRmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIERhdGVQaWNrZXJXaXRoUmFuZ2VNb2RlOiBEYXRlUGlja2VyT3B0aW9ucztcclxuICBEYXRlUGlja2VyV2l0aFJhbmdlRmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIHNvcnREcm9wZG93bk9wdGlvbnM6IERyb3Bkb3duT3B0aW9ucztcclxuICBzb3J0VHlwZURyb3Bkb3duT3B0aW9uczogRHJvcGRvd25PcHRpb25zO1xyXG4gIHNvcnREcm9wZG93bkZpbHRlcjogRmlsdGVySXRlbTtcclxuICBzb3J0VHlwZURyb3Bkb3duRmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIHBhZ2luZ1Jlc3VsdDogYW55W10gPSBbXTtcclxuICBwYWdpbmdPcHRpb25zOiBQYWdpbmdPcHRpb25zO1xyXG4gIGZpbHRlcnNGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgYXBpVVJMOiBzdHJpbmcgPSB0aGlzLnN1cnZleVNlcnZpY2UuYXBpVVJMO1xyXG4gIGxvYWRpbmdQYWdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd1BhZ2VDb250ZW50OiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNGaWx0ZXJzRGF0YUxvYWRlZDogYm9vbGVhbjtcclxuICBzaG93RmlsdGVyczogYm9vbGVhbjtcclxuICBsb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBmbGlwcGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBzdXJ2ZXlTZXJ2aWNlOiBTdXJ2ZXlTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihpbmplY3Rvcik7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmIChTdXJ2ZXlDb25maWcuc3VydmV5TW9kZSA9PSBTdXJ2ZXlNb2RlLlN1cnZleV9GdWxsX0FjY2VzcylcclxuICAgICAgdGhpcy5lbmFibGVBY3Rpb25zID0gdHJ1ZTtcclxuICAgIHRoaXMucGFnZVRpdGxlID0gdGhpcy5sKCdTdXJ2ZXlzX0hlYWRlcicpO1xyXG4gICAgdGhpcy51cGRhdGVQYWdlVGl0bGUodGhpcy5wYWdlVGl0bGUpO1xyXG4gICAgdGhpcy5icmVhZENydW1iID0gW107XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3hPcHRpb25zID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3hPcHRpb25zLk5hbWUgPSAnU2VhcmNoVGV4dEJveCc7XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3hPcHRpb25zLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgIHRoaXMuc2VhcmNoVGV4dEJveE9wdGlvbnMuUGxhY2Vob2xkZXIgPSB0aGlzLmwoJ1NlYXJjaCcpO1xyXG4gICAgdGhpcy5zZWFyY2hUZXh0Qm94T3B0aW9ucy5FeHRyYUNsYXNzZXMgPVxyXG4gICAgICAnZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbSBmb3JtLWNvbnRyb2wtc29saWQgc2VhcmNoLWJveCc7XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3hPcHRpb25zLkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3hPcHRpb25zLkljb24gPSAnLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9zZWFyY2guc3ZnJztcclxuXHJcbiAgICB0aGlzLnNlYXJjaFRleHRGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy5zZWFyY2hUZXh0RmlsdGVyLkZvcm1Db250cm9sTmFtZSA9IHRoaXMuc2VhcmNoVGV4dEJveE9wdGlvbnMuTmFtZTtcclxuICAgIHRoaXMuc2VhcmNoVGV4dEZpbHRlci5BY3Rpb25QYXJhbWV0ZXJOYW1lID0gJ1NlYXJjaFRleHQnO1xyXG4gICAgdGhpcy5zZWFyY2hUZXh0RmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlO1xyXG4gICAgdGhpcy5zZWFyY2hUZXh0RmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLlRleHRCb3g7XHJcblxyXG4gICAgdGhpcy52aXNpYmxlRHJvcGRvd25PcHRpb25zID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgdGhpcy52aXNpYmxlRHJvcGRvd25PcHRpb25zLk5hbWUgPSAndmlzaWJsZVN1cnZleSc7XHJcbiAgICB0aGlzLnZpc2libGVEcm9wZG93bk9wdGlvbnMuTGFiZWxLZXkgPSAnVmlzaWJpbGl0eSc7XHJcbiAgICB0aGlzLnZpc2libGVEcm9wZG93bk9wdGlvbnMuU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLnZpc2libGVQYW5lbERyb3Bkb3duRmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgIHRoaXMudmlzaWJsZVBhbmVsRHJvcGRvd25GaWx0ZXIuRm9ybUNvbnRyb2xOYW1lID1cclxuICAgICAgdGhpcy52aXNpYmxlRHJvcGRvd25PcHRpb25zLk5hbWU7XHJcbiAgICB0aGlzLnZpc2libGVQYW5lbERyb3Bkb3duRmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSAnQWN0aXZlU3RhdHVzJztcclxuICAgIHRoaXMudmlzaWJsZVBhbmVsRHJvcGRvd25GaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWU7XHJcbiAgICB0aGlzLnZpc2libGVQYW5lbERyb3Bkb3duRmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLkRyb3Bkb3duTGlzdDtcclxuXHJcbiAgICB0aGlzLnN0YXR1c0Ryb3Bkb3duT3B0aW9ucyA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgIHRoaXMuc3RhdHVzRHJvcGRvd25PcHRpb25zLk5hbWUgPSAnU3RhdHVzJztcclxuICAgIHRoaXMuc3RhdHVzRHJvcGRvd25PcHRpb25zLkxhYmVsS2V5ID0gJ1N0YXR1cyc7XHJcbiAgICB0aGlzLnN0YXR1c0Ryb3Bkb3duT3B0aW9ucy5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgdGhpcy5zdGF0dXNEcm9wZG93bk9wdGlvbnMuTm90Rm91bmRUZXh0ID0gdGhpcy5sKCdOb1Jlc3VsdEZvdW5kJyk7XHJcblxyXG4gICAgdGhpcy5zdGF0dXNEcm9wZG93bkZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICB0aGlzLnN0YXR1c0Ryb3Bkb3duRmlsdGVyLkZvcm1Db250cm9sTmFtZSA9IHRoaXMuc3RhdHVzRHJvcGRvd25PcHRpb25zLk5hbWU7XHJcbiAgICB0aGlzLnN0YXR1c0Ryb3Bkb3duRmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSAnU3VydmV5U3RhdHVzJztcclxuICAgIHRoaXMuc3RhdHVzRHJvcGRvd25GaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWU7XHJcbiAgICB0aGlzLnN0YXR1c0Ryb3Bkb3duRmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLkRyb3Bkb3duTGlzdDtcclxuXHJcbiAgICB0aGlzLkRhdGVQaWNrZXJXaXRoUmFuZ2VNb2RlID0gbmV3IERhdGVQaWNrZXJPcHRpb25zKCk7XHJcbiAgICB0aGlzLkRhdGVQaWNrZXJXaXRoUmFuZ2VNb2RlLk5hbWUgPSAnRGF0ZVBpY2tlcldpdGhSYW5nZU1vZGUnO1xyXG4gICAgdGhpcy5EYXRlUGlja2VyV2l0aFJhbmdlTW9kZS5MYWJlbEtleSA9ICdEYXRlJztcclxuICAgIHRoaXMuRGF0ZVBpY2tlcldpdGhSYW5nZU1vZGUuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgdGhpcy5EYXRlUGlja2VyV2l0aFJhbmdlTW9kZS5TdGFydFZpZXcgPSBTdGFydFZpZXcuTW9udGg7XHJcbiAgICB0aGlzLkRhdGVQaWNrZXJXaXRoUmFuZ2VNb2RlLlBpY2tlclR5cGUgPSBQaWNrZXJUeXBlLkNhbGVuZGFyO1xyXG4gICAgdGhpcy5EYXRlUGlja2VyV2l0aFJhbmdlTW9kZS5TZWxlY3RNb2RlID0gU2VsZWN0TW9kZS5SYW5nZTtcclxuXHJcbiAgICB0aGlzLkRhdGVQaWNrZXJXaXRoUmFuZ2VGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy5EYXRlUGlja2VyV2l0aFJhbmdlRmlsdGVyLkZvcm1Db250cm9sTmFtZSA9XHJcbiAgICAgIHRoaXMuRGF0ZVBpY2tlcldpdGhSYW5nZU1vZGUuTmFtZTtcclxuICAgIHRoaXMuRGF0ZVBpY2tlcldpdGhSYW5nZUZpbHRlci5BY3Rpb25QYXJhbWV0ZXJOYW1lID0gJ0RhdGUnO1xyXG4gICAgdGhpcy5EYXRlUGlja2VyV2l0aFJhbmdlRmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlO1xyXG4gICAgdGhpcy5EYXRlUGlja2VyV2l0aFJhbmdlRmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLkRhdGVQaWNrZXI7XHJcblxyXG4gICAgdGhpcy5zb3J0RHJvcGRvd25PcHRpb25zID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgdGhpcy5zb3J0RHJvcGRvd25PcHRpb25zLk5hbWUgPSAnU29ydCc7XHJcbiAgICB0aGlzLnNvcnREcm9wZG93bk9wdGlvbnMuTGFiZWxLZXkgPSAnU29ydCc7XHJcbiAgICB0aGlzLnNvcnREcm9wZG93bk9wdGlvbnMuU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgIHRoaXMuc29ydERyb3Bkb3duT3B0aW9ucy5Ob3RGb3VuZFRleHQgPSB0aGlzLmwoJ05vUmVzdWx0Rm91bmQnKTtcclxuXHJcbiAgICB0aGlzLnNvcnREcm9wZG93bkZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICB0aGlzLnNvcnREcm9wZG93bkZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSB0aGlzLnNvcnREcm9wZG93bk9wdGlvbnMuTmFtZTtcclxuICAgIHRoaXMuc29ydERyb3Bkb3duRmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSAnU29ydEJ5JztcclxuICAgIHRoaXMuc29ydERyb3Bkb3duRmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlO1xyXG4gICAgdGhpcy5zb3J0RHJvcGRvd25GaWx0ZXIuRmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuRHJvcGRvd25MaXN0O1xyXG5cclxuICAgIHRoaXMuc29ydFR5cGVEcm9wZG93bk9wdGlvbnMgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICB0aGlzLnNvcnRUeXBlRHJvcGRvd25PcHRpb25zLk5hbWUgPSAnU29ydFR5cGUnO1xyXG4gICAgdGhpcy5zb3J0VHlwZURyb3Bkb3duT3B0aW9ucy5MYWJlbEtleSA9ICdTb3J0VHlwZSc7XHJcbiAgICB0aGlzLnNvcnRUeXBlRHJvcGRvd25PcHRpb25zLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICB0aGlzLnNvcnRUeXBlRHJvcGRvd25PcHRpb25zLk5vdEZvdW5kVGV4dCA9IHRoaXMubCgnTm9SZXN1bHRGb3VuZCcpO1xyXG5cclxuICAgIHRoaXMuc29ydFR5cGVEcm9wZG93bkZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICB0aGlzLnNvcnRUeXBlRHJvcGRvd25GaWx0ZXIuRm9ybUNvbnRyb2xOYW1lID1cclxuICAgICAgdGhpcy5zb3J0VHlwZURyb3Bkb3duT3B0aW9ucy5OYW1lO1xyXG4gICAgdGhpcy5zb3J0VHlwZURyb3Bkb3duRmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSAnU29ydFR5cGUnO1xyXG4gICAgdGhpcy5zb3J0VHlwZURyb3Bkb3duRmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlO1xyXG4gICAgdGhpcy5zb3J0VHlwZURyb3Bkb3duRmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLkRyb3Bkb3duTGlzdDtcclxuXHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zID0gbmV3IFBhZ2VIZWFkZXJPcHRpb25zKCk7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLlRpdGxlS2V5ID0gdGhpcy5wYWdlVGl0bGU7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLlN1YlRpdGxlS2V5ID0gdGhpcy5sKCdTdXJ2ZXlfU3ViSGVhZGVyJyk7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLlNlYXJjaFRleHRCb3guQWN0aXZlID0gdHJ1ZTtcclxuICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuU2VhcmNoVGV4dEJveC5UZXh0U2VhcmNoQm94T3B0aW9ucyA9XHJcbiAgICAgIHRoaXMuc2VhcmNoVGV4dEJveE9wdGlvbnM7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkJyZWFkQ3J1bWIuQWN0aXZlID0gdHJ1ZTtcclxuICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuQnJlYWRDcnVtYi5CcmVhZENydW1iSXRlbXMgPSB0aGlzLmJyZWFkQ3J1bWI7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkVkaXRCdXR0b24uQWN0aXZlID0gZmFsc2U7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkV4cG9ydEJ1dHRvbi5BY3RpdmUgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLmVuYWJsZUFjdGlvbnMpIHtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5BZGRCdXR0b24uQWN0aXZlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5BZGRCdXR0b24uQnV0dG9uVGV4dEtleSA9IHRoaXMubCgnQWRkJyk7XHJcbiAgICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuQWRkQnV0dG9uLkZ1bmN0aW9uID0gdGhpcy5zaG93QWRkTW9kYWw7XHJcbiAgICB9XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkZpbHRlcnNCdXR0b24uQWN0aXZlID0gdHJ1ZTtcclxuICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuRmlsdGVyc0J1dHRvbi5CdXR0b25UZXh0S2V5ID0gdGhpcy5sKCdGaWx0ZXJzJyk7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkZpbHRlcnNCdXR0b24uRnVuY3Rpb24gPSB0aGlzLmxvYWRGaWx0ZXJzO1xyXG4gICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5GaWx0ZXJzLkFwcGx5RnVuY3Rpb24gPSB0aGlzLnNlYXJjaDtcclxuICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuRmlsdGVycy5SZXN0RnVuY3Rpb24gPSB0aGlzLnJlc2V0RmlsdGVycztcclxuICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuRmlsdGVycy5Db250cm9sc09wdGlvbnMucHVzaCh7XHJcbiAgICAgIGtleTogRGF0YVR5cGUuU2luZ2xlU2VsZWN0LFxyXG4gICAgICB2YWx1ZTogdGhpcy52aXNpYmxlRHJvcGRvd25PcHRpb25zLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkZpbHRlcnMuQ29udHJvbHNPcHRpb25zLnB1c2goe1xyXG4gICAgICBrZXk6IERhdGFUeXBlLlNpbmdsZVNlbGVjdCxcclxuICAgICAgdmFsdWU6IHRoaXMuc3RhdHVzRHJvcGRvd25PcHRpb25zLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkZpbHRlcnMuQ29udHJvbHNPcHRpb25zLnB1c2goe1xyXG4gICAgICBrZXk6IERhdGFUeXBlLkRhdGUsXHJcbiAgICAgIHZhbHVlOiB0aGlzLkRhdGVQaWNrZXJXaXRoUmFuZ2VNb2RlLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkZpbHRlcnMuQ29udHJvbHNPcHRpb25zLnB1c2goe1xyXG4gICAgICBrZXk6IERhdGFUeXBlLlNpbmdsZVNlbGVjdCxcclxuICAgICAgdmFsdWU6IHRoaXMuc29ydERyb3Bkb3duT3B0aW9ucyxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5GaWx0ZXJzLkNvbnRyb2xzT3B0aW9ucy5wdXNoKHtcclxuICAgICAga2V5OiBEYXRhVHlwZS5TaW5nbGVTZWxlY3QsXHJcbiAgICAgIHZhbHVlOiB0aGlzLnNvcnRUeXBlRHJvcGRvd25PcHRpb25zLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkxpc3RpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5FTiA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VFbmdsaXNoKCk7XHJcblxyXG4gICAgdGhpcy5wYWdpbmdPcHRpb25zID0gbmV3IFBhZ2luZ09wdGlvbnMoKTtcclxuICAgIHRoaXMucGFnaW5nT3B0aW9ucy5QYWdlU2l6ZSA9IDg7XHJcbiAgICB0aGlzLnBhZ2luZ09wdGlvbnMuRGlzYWJsZUJsb2NrVUkgPSB0cnVlO1xyXG4gICAgdGhpcy5wYWdpbmdPcHRpb25zLkFjdGlvblBvc3RVUkwgPSB0aGlzLmFwaVVSTCArICdHZXRBbGwnO1xyXG4gICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5MaXN0aW5nID0gdHJ1ZTtcclxuICAgIHRoaXMucGFnaW5nT3B0aW9ucy5PbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcyA9IFtcclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Qm94T3B0aW9ucy5OYW1lLFxyXG4gICAgXTtcclxuICAgIHRoaXMucGFnaW5nT3B0aW9ucy5GaWx0ZXJzID0gW1xyXG4gICAgICB0aGlzLnNlYXJjaFRleHRGaWx0ZXIsXHJcbiAgICAgIHRoaXMudmlzaWJsZVBhbmVsRHJvcGRvd25GaWx0ZXIsXHJcbiAgICAgIHRoaXMuc3RhdHVzRHJvcGRvd25GaWx0ZXIsXHJcbiAgICAgIHRoaXMuRGF0ZVBpY2tlcldpdGhSYW5nZUZpbHRlcixcclxuICAgICAgdGhpcy5zb3J0RHJvcGRvd25GaWx0ZXIsXHJcbiAgICAgIHRoaXMuc29ydFR5cGVEcm9wZG93bkZpbHRlcixcclxuICAgIF07XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWRpbmdQYWdlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHNldExpc3RpbmdSZXN1bHQocmVzdWx0KSB7XHJcbiAgICBkZWJ1Z2dlcjtcclxuICAgIHRoaXMucGFnaW5nUmVzdWx0ID0gcmVzdWx0O1xyXG4gICAgdGhpcy5zaG93UGFnZUNvbnRlbnQgPSB0cnVlO1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG4gIH1cclxuXHJcbiAgbG9hZEZpbHRlcnMgPSAoKSA9PiB7XHJcbiAgICBpZiAoIXRoaXMuaXNGaWx0ZXJzRGF0YUxvYWRlZCAmJiAhdGhpcy5zaG93RmlsdGVycykgdGhpcy5sb2FkRmlsdGVyc0RhdGEoKTtcclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnNob3dGaWx0ZXJzID0gIXRoaXMuc2hvd0ZpbHRlcnM7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuaXNGaWx0ZXJzRGF0YUxvYWRlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkZpbHRlcnNCdXR0b24uU2hvd0xvYWRpbmdJbkZpbHRlcnNCb3ggPVxyXG4gICAgICAgIHRoaXMubG9hZGluZztcclxuICAgIH1cclxuICAgIHRoaXMuZmxpcHBpbmcgPSAhdGhpcy5mbGlwcGluZztcclxuICB9O1xyXG5cclxuICBsb2FkRmlsdGVyc0RhdGEgPSAoKSA9PiB7XHJcbiAgICB0aGlzLnN1cnZleVNlcnZpY2UubG9hZEZpbHRlcnNEcm9wZG93bigpLnN1YnNjcmliZSgocikgPT4ge1xyXG4gICAgICBsZXQgcmVzdWx0ID0gciBhcyBhbnk7XHJcbiAgICAgIHRoaXMuc3RhdHVzRHJvcGRvd25PcHRpb25zLkRhdGFTb3VyY2UgPSByZXN1bHQuc3RhdHVzZXM7XHJcbiAgICAgIHRoaXMuc29ydERyb3Bkb3duT3B0aW9ucy5EYXRhU291cmNlID0gcmVzdWx0LnN1cnZleVNvcnRpbmdUeXBlcztcclxuICAgICAgdGhpcy5zb3J0VHlwZURyb3Bkb3duT3B0aW9ucy5EYXRhU291cmNlID0gcmVzdWx0LnNvcnRUeXBlcztcclxuICAgICAgdGhpcy52aXNpYmxlRHJvcGRvd25PcHRpb25zLkRhdGFTb3VyY2UgPSByZXN1bHQudmlzaWJpbGl0eTtcclxuICAgICAgdGhpcy5zaG93RmlsdGVycyA9IHRydWU7XHJcbiAgICAgIHRoaXMuaXNGaWx0ZXJzRGF0YUxvYWRlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkZpbHRlcnNCdXR0b24uU2hvd0xvYWRpbmdJbkZpbHRlcnNCb3ggPVxyXG4gICAgICAgIHRoaXMubG9hZGluZztcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIHJlc2V0RmlsdGVycyA9ICgpID0+IHtcclxuICAgIHRoaXMuZmlsdGVyc0Zvcm0uY29udHJvbHNbdGhpcy5EYXRlUGlja2VyV2l0aFJhbmdlTW9kZS5OYW1lXS5zZXRWYWx1ZShudWxsKTtcclxuICAgIHRoaXMuZmlsdGVyc0Zvcm0uY29udHJvbHNbdGhpcy52aXNpYmxlRHJvcGRvd25PcHRpb25zLk5hbWVdLnNldFZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy5maWx0ZXJzRm9ybS5jb250cm9sc1t0aGlzLnN0YXR1c0Ryb3Bkb3duT3B0aW9ucy5OYW1lXS5zZXRWYWx1ZShudWxsKTtcclxuICAgIHRoaXMuZmlsdGVyc0Zvcm0uY29udHJvbHNbdGhpcy5zb3J0RHJvcGRvd25PcHRpb25zLk5hbWVdLnNldFZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy5maWx0ZXJzRm9ybS5jb250cm9sc1t0aGlzLnNvcnRUeXBlRHJvcGRvd25PcHRpb25zLk5hbWVdLnNldFZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy5maWx0ZXJzRm9ybS5jb250cm9sc1t0aGlzLnNlYXJjaFRleHRCb3hPcHRpb25zLk5hbWVdLnNldFZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuRmlsdGVyc0J1dHRvbi5TaG93TG9hZGluZ0luRmlsdGVyc0JveCA9IHRoaXMubG9hZGluZztcclxuICAgIHRoaXMucGFnaW5nRWxlbWVudC5SZWluaXRpYWxpemVQYWdpbmcoKTtcclxuICB9O1xyXG5cclxuICBzZWFyY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoIXRoaXMuZmlsdGVyc0Zvcm0udmFsaWQpIHJldHVybjtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkZpbHRlcnNCdXR0b24uU2hvd0xvYWRpbmdJbkZpbHRlcnNCb3ggPSB0aGlzLmxvYWRpbmc7XHJcbiAgICB0aGlzLnBhZ2luZ0VsZW1lbnQuUmVpbml0aWFsaXplUGFnaW5nKCk7XHJcbiAgfTtcclxuXHJcbiAgc2hvd0FkZE1vZGFsID0gKCkgPT4ge1xyXG4gICAgdGhpcy5hZGRNb2RhbC5zaG93TW9kYWwoKTtcclxuICB9O1xyXG4gIHNob3dFZGl0TW9kYWwoaWQpIHtcclxuICAgIHRoaXMuZWRpdE1vZGFsLnNob3dFZGl0TW9kYWwoaWQpO1xyXG4gIH1cclxuICBzaG93RHVwbGljYXRlTW9kYWwoaWQpIHtcclxuICAgIHRoaXMuZHVwbGljYXRlTW9kYWwuc2hvd0R1cGxpY2F0ZU1vZGFsKGlkKTtcclxuICB9XHJcbiAgc2hvd0RlbGV0ZU1vZGFsKGlkKSB7XHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbC5zaG93RGVsZXRlTW9kYWwoaWQpO1xyXG4gIH1cclxuXHJcbiAgaXNFZGl0YWJsZShzdGF0dXMpIHtcclxuICAgIGxldCBhbGxvd0VkaXQgPSBmYWxzZTtcclxuICAgIHN3aXRjaCAoc3RhdHVzLnRvTG9jYWxlTG93ZXJDYXNlKCkpIHtcclxuICAgICAgY2FzZSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX0RyYWZ0LnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgIGNhc2UgdGhpcy5TdXJ2ZXlTdGF0dXNFbnVtLlNjb3JpbmdUeXBlRW51bV9VcGNvbWluZy50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgIGFsbG93RWRpdCA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5TdXJ2ZXlTdGF0dXNFbnVtLlNjb3JpbmdUeXBlRW51bV9DbG9zZWQudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgY2FzZSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX1B1Ymxpc2hlZC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgIGFsbG93RWRpdCA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFsbG93RWRpdDtcclxuICB9XHJcbiAgZ2V0U3RhdHVzKHN0YXR1cykge1xyXG4gICAgdmFyIFN0YXR1c2VzID0gJyc7XHJcbiAgICBzd2l0Y2ggKHN0YXR1cy50b0xvY2FsZUxvd2VyQ2FzZSgpKSB7XHJcbiAgICAgIGNhc2UgdGhpcy5TdXJ2ZXlTdGF0dXNFbnVtLlNjb3JpbmdUeXBlRW51bV9EcmFmdC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgIFN0YXR1c2VzID0gJ2JhZGdlLXNlY29uZGFyeSc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5TdXJ2ZXlTdGF0dXNFbnVtLlNjb3JpbmdUeXBlRW51bV9DbG9zZWQudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICBTdGF0dXNlcyA9ICdiYWRnZS1kYW5nZXInO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMuU3VydmV5U3RhdHVzRW51bS5TY29yaW5nVHlwZUVudW1fUHVibGlzaGVkLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgU3RhdHVzZXMgPSAnYmFkZ2Utc3VjY2Vzcyc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5TdXJ2ZXlTdGF0dXNFbnVtLlNjb3JpbmdUeXBlRW51bV9VcGNvbWluZy50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgIFN0YXR1c2VzID0gJ2JhZGdlLXN1Y2Nlc3MnO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiBTdGF0dXNlcztcclxuICB9XHJcbn1cclxuIiwiPCEtLXRvb2xiYXItLT5cclxuPGJic2YtcGFnZS1oZWFkZXItY29tcG9uZW50IFtvcHRpb25zXT1cInBhZ2VIZWFkZXJPcHRpb25zXCIgW2dyb3VwXT1cImZpbHRlcnNGb3JtXCI+PC9iYnNmLXBhZ2UtaGVhZGVyLWNvbXBvbmVudD5cclxuPCEtLUVuZCB0b29sYmFyLS0+XHJcbjxkaXYgY2xhc3M9XCJjb250YWluZXIteHhsXCI+XHJcbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC14bC02IGQtZmxleFwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHBhZ2luZ1Jlc3VsdFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWxpc3Rpbmcgdy1pY29uLWJveGVzIHN1cnZleS1jYXJkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBsaW5lLWNsYW1wXCI+XHJcbiAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnLi4vaW5mbycsIGl0ZW0uaURfR1VJRF1cIj5cclxuICAgICAgICAgICAgICB7e2l0ZW0ubG9jYWxpemVkVGl0bGV9fVxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXIgZC1mbGV4IGZsZXgtbm93cmFwIGZsZXgtc3RhY2tcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodCBiYWdkZS14cyBtZS0yXCIgKm5nSWY9XCIhaXRlbS52aXNpYmxlXCI+IHt7bChcIk5vdFZpc2libGVcIil9fSA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFnZGUteHMgYmFkZ2UtbGlnaHQgbWUtMlwiIFtuZ0NsYXNzXT1cImdldFN0YXR1cyhpdGVtLnN0YXR1c0l0ZW1JRClcIj57e2l0ZW0ubG9jYWxpemVkU3RhdHVzfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiICpuZ0lmPVwiZW5hYmxlQWN0aW9uc1wiIGNsYXNzPVwiZHJvcGRvd24tY3VzdG9tXCIgW3BsYWNlbWVudF09XCJFTiA/ICdib3R0b20tcmlnaHQnIDogJ2JvdHRvbS1sZWZ0J1wiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZHJvcGRvd24tdG9nZ2xlLWN1c3RvbSBidG4gYnRuLWNsZWFyIGJ0bi1zbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBuZ2JEcm9wZG93blRvZ2dsZT5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tM1wiIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL2NhcmQtZHJvcGRvd24uc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudSBjbGFzcz1cImRyb3Bkb3duLW1lbnUtY3VzdG9tXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaXNFZGl0YWJsZShpdGVtLnN0YXR1c0l0ZW1JRClcIiAoY2xpY2spPVwic2hvd0VkaXRNb2RhbChpdGVtLmlEX0dVSUQpXCIgYXBwcHJldmVudGRvdWJsZWNsaWNrIHR5cGU9XCJidXR0b25cIiBuZ2JEcm9wZG93bkl0ZW0gY2xhc3M9XCJkcm9wZG93bi1idXR0b25cIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0zXCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvRWRpdC5zdmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAge3tsKFwiRWRpdFwiKX19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInNob3dEdXBsaWNhdGVNb2RhbChpdGVtLmlEX0dVSUQpXCIgYXBwcHJldmVudGRvdWJsZWNsaWNrIHR5cGU9XCJidXR0b25cIiBuZ2JEcm9wZG93bkl0ZW0gY2xhc3M9XCJkcm9wZG93bi1idXR0b25cIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0zXCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvY29weS5zdmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAge3tsKFwiRHVwbGljYXRlXCIpfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNob3dEZWxldGVNb2RhbChpdGVtLmlEX0dVSUQpXCIgYXBwcHJldmVudGRvdWJsZWNsaWNrIG5nYkRyb3Bkb3duSXRlbSBjbGFzcz1cImRyb3Bkb3duLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9UcmFzaC5zdmcnXCI+PC9zcGFuPiAge3tsKFwiRGVsZXRlXCIpfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgbWItNFwiPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJsaW5lLWNsYW1wLTFcIj5cclxuICAgICAgICAgICAge3tpdGVtLmxvY2FsaXplZERlc2N9fVxyXG4gICAgICAgICAgPC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS1mb290ZXIgdHlwZSBvbmUtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXIgcHQtMFwiPlxyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZleS1jb3VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdXJ2ZXktY291bnRlci10aXRsZVwiPnt7bCgnUXVlc3Rpb24nKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtYnJhbmQgYmFkZ2Utc3F1YXJlIFwiPnt7aXRlbS50b3RhbFF1ZXN0aW9uQ291bnR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXktY291bnRlclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VydmV5LWNvdW50ZXItdGl0bGVcIj57e2woJ1N1Ym1pc3Npb25zJyl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LWJyYW5kIGJhZGdlLXNxdWFyZSBcIj57e2l0ZW0udG90YWxTdWJtaXNzaW9uc0NvdW50fX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmVyeS1kYXRlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWJveGVzIGFsaWduLWl0ZW1zLWJhc2VsaW5lXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tYm94IHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ltYm9sXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ltYm9sLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi00XCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvY2FsZW5kYXIuc3ZnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1cnZleS1jb3VudGVyLXRpdGxlXCIgKm5nSWY9XCJpdGVtLnN0YXJ0RGF0ZT09bnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICB7e2woJ05vdFN0YXJ0ZWRZZXQnKX19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICAqbmdJZj1cIml0ZW0uc3RhcnREYXRlIT1udWxsXCIgY2xhc3M9XCJkLWZsZXggZmxleC1zdGFjayB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1cnZleS1jb3VudGVyLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tpdGVtLnN0YXJ0RGF0ZSB8c3VydmV5RGF0ZX19XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLmVuZERhdGUhPW51bGxcIj4gLSB7eyhpdGVtLmVuZERhdGV8c3VydmV5RGF0ZSl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0XCIgKm5nSWY9XCJpdGVtLmVuZERhdGU9PW51bGxcIj57e2woJ0hhc05vRW5kJyl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxCQlNGLVBhZ2luZyAoSXRlbXMpPVwic2V0TGlzdGluZ1Jlc3VsdCgkZXZlbnQpXCIgKm5nSWY9XCJsb2FkaW5nUGFnZVwiIFtvcHRpb25zXT1cInBhZ2luZ09wdGlvbnNcIiBbZ3JvdXBdPVwiZmlsdGVyc0Zvcm1cIlxyXG4gICAgICAgICAgICAgICAjcGFnaW5nVmlld0VsZW1lbnQ+PC9CQlNGLVBhZ2luZz5cclxuPC9kaXY+XHJcblxyXG5cclxuXHJcbjxhcHAtbm8tcmVzdWx0cyAqbmdJZj1cInBhZ2luZ1Jlc3VsdC5sZW5ndGggPT0gMCAmJiBzaG93UGFnZUNvbnRlbnRcIj48L2FwcC1uby1yZXN1bHRzPlxyXG48YXBwLWFkZC1zdXJ2ZXkgI2FkZE1vZGFsIFtwYWdpbmdFbGVtZW50XT1cInBhZ2luZ0VsZW1lbnRcIj48L2FwcC1hZGQtc3VydmV5PlxyXG48YXBwLWVkaXQtc3VydmV5ICNlZGl0TW9kYWwgW3BhZ2luZ0VsZW1lbnRdPVwicGFnaW5nRWxlbWVudFwiPjwvYXBwLWVkaXQtc3VydmV5PlxyXG48YXBwLWRlbGV0ZS1zdXJ2ZXkgI2RlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbCBbcGFnaW5nRWxlbWVudF09XCJwYWdpbmdFbGVtZW50XCI+PC9hcHAtZGVsZXRlLXN1cnZleT5cclxuPGFwcC1kdXBsaWNhdGUtc3VydmV5ICNkdXBsaWNhdGVNb2RhbCBbcGFnaW5nRWxlbWVudF09XCJwYWdpbmdFbGVtZW50XCI+PC9hcHAtZHVwbGljYXRlLXN1cnZleT5cclxuIl19
|
|
292
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvc2hhcmVkL2NvbXBvbmVudHMvc3VydmV5L3N1cnZleS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9jb21wb25lbnRzL3N1cnZleS9zdXJ2ZXkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLFNBQVMsRUFBMkIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsYUFBYSxFQUNiLFFBQVEsRUFDUixpQkFBaUIsRUFDakIsZUFBZSxFQUNmLFVBQVUsRUFDVixVQUFVLEVBQ1YsU0FBUyxFQUVULFNBQVMsRUFDVCxjQUFjLEVBQ2QsVUFBVSxFQUNWLFVBQVUsRUFDVixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLGdCQUFnQixHQUNqQixNQUFNLHlCQUF5QixDQUFDO0FBR2pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBTXRFLE1BQU0sT0FBTyxlQUFnQixTQUFRLGdCQUFnQjtJQTBDbkQsWUFDVSxRQUFrQixFQUNsQixhQUE0QjtRQUVwQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFIUixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBMUN0QyxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsYUFBUSxHQUFHLEVBQUUs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LFFBQVEsR0FBRyxlQUFlLENBQUM7Z0JBQzNCLE1BQU07WUFFUjtnQkFDRSxNQUFNO1NBQ1Q7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOzhHQTdTVSxlQUFlO2tHQUFmLGVBQWUsbWxCQ2hDNUIsNG1LQThGQTs7MkZEOURhLGVBQWU7a0JBSjNCLFNBQVM7K0JBQ0UsWUFBWTt5R0FhdEIsYUFBYTtzQkFEWixTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFUCxRQUFRO3NCQUFqRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0csU0FBUztzQkFBbkQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUV6Qyw4QkFBOEI7c0JBRDdCLFNBQVM7dUJBQUMsZ0NBQWdDLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUc5RCxjQUFjO3NCQURiLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVsZXRlU3VydmV5Q29tcG9uZW50IH0gZnJvbSAnLi9kZWxldGUtc3VydmV5L2RlbGV0ZS1zdXJ2ZXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRWRpdFN1cnZleUNvbXBvbmVudCB9IGZyb20gJy4vZWRpdC1zdXJ2ZXkvZWRpdC1zdXJ2ZXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRkU3VydmV5Q29tcG9uZW50IH0gZnJvbSAnLi9hZGQtc3VydmV5L2FkZC1zdXJ2ZXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBDb250cm9sTGF5b3V0LFxyXG4gIERhdGFUeXBlLFxyXG4gIERhdGVQaWNrZXJPcHRpb25zLFxyXG4gIERyb3Bkb3duT3B0aW9ucyxcclxuICBGaWx0ZXJJdGVtLFxyXG4gIEZpbHRlclR5cGUsXHJcbiAgSW5wdXRUeXBlLFxyXG4gIFBhZ2luZ0NvbXBvbmVudCxcclxuICBTdGFydFZpZXcsXHJcbiAgVGV4dEJveE9wdGlvbnMsXHJcbiAgUGlja2VyVHlwZSxcclxuICBTZWxlY3RNb2RlLFxyXG4gIFBhZ2luZ09wdGlvbnMsXHJcbiAgUGFnZUhlYWRlck9wdGlvbnMsXHJcbiAgQXBwQmFzZUNvbXBvbmVudCxcclxufSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcblxyXG5pbXBvcnQgeyBEdXBsaWNhdGVTdXJ2ZXlDb21wb25lbnQgfSBmcm9tICcuL2R1cGxpY2F0ZS1zdXJ2ZXkvZHVwbGljYXRlLXN1cnZleS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlNb2RlLCBTdXJ2ZXlTdGF0dXNFbnVtIH0gZnJvbSAnLi4vLi4vRW51bXMvRW51bXMnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vU2VydmljZXMvc3VydmV5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvU3VydmV5TW9kZWxzL3N1cnZleS11dGlscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zdXJ2ZXknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdXJ2ZXkuY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3VydmV5Q29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcGFnZUhlYWRlck9wdGlvbnM6IFBhZ2VIZWFkZXJPcHRpb25zO1xyXG4gIHBhZ2VUaXRsZSA9ICcnO1xyXG4gIHN1YlRpdGxlID0gJyc7XHJcbiAgc3VydmV5Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGJyZWFkQ3J1bWI6IGFueVtdO1xyXG4gIEVOOiBib29sZWFuO1xyXG4gIGVuYWJsZUFjdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgU3VydmV5U3RhdHVzRW51bSA9IFN1cnZleVN0YXR1c0VudW07XHJcbiAgQFZpZXdDaGlsZCgncGFnaW5nVmlld0VsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBwYWdpbmdFbGVtZW50OiBQYWdpbmdDb21wb25lbnQ8YW55PjtcclxuICBAVmlld0NoaWxkKCdhZGRNb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBhZGRNb2RhbDogQWRkU3VydmV5Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2VkaXRNb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBlZGl0TW9kYWw6IEVkaXRTdXJ2ZXlDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZGVsZXRlQ29uZmlybWF0aW9uTW9kYWxDb250cm9sJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgZGVsZXRlQ29uZmlybWF0aW9uTW9kYWxDb250cm9sOiBEZWxldGVTdXJ2ZXlDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZHVwbGljYXRlTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBkdXBsaWNhdGVNb2RhbDogRHVwbGljYXRlU3VydmV5Q29tcG9uZW50O1xyXG5cclxuICAvL0xpc3RpbmdcclxuICBzZWFyY2hUZXh0Qm94T3B0aW9uczogYW55O1xyXG4gIHNlYXJjaFRleHRGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgc3RhdHVzRHJvcGRvd25PcHRpb25zOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgdmlzaWJsZURyb3Bkb3duT3B0aW9uczogRHJvcGRvd25PcHRpb25zO1xyXG4gIHZpc2libGVQYW5lbERyb3Bkb3duRmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIHN0YXR1c0Ryb3Bkb3duRmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIERhdGVQaWNrZXJXaXRoUmFuZ2VNb2RlOiBEYXRlUGlja2VyT3B0aW9ucztcclxuICBEYXRlUGlja2VyV2l0aFJhbmdlRmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIHNvcnREcm9wZG93bk9wdGlvbnM6IERyb3Bkb3duT3B0aW9ucztcclxuICBzb3J0VHlwZURyb3Bkb3duT3B0aW9uczogRHJvcGRvd25PcHRpb25zO1xyXG4gIHNvcnREcm9wZG93bkZpbHRlcjogRmlsdGVySXRlbTtcclxuICBzb3J0VHlwZURyb3Bkb3duRmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIHBhZ2luZ1Jlc3VsdDogYW55W10gPSBbXTtcclxuICBwYWdpbmdPcHRpb25zOiBQYWdpbmdPcHRpb25zO1xyXG4gIGZpbHRlcnNGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgYXBpVVJMOiBzdHJpbmcgPSB0aGlzLnN1cnZleVNlcnZpY2UuYXBpVVJMO1xyXG4gIGxvYWRpbmdQYWdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd1BhZ2VDb250ZW50OiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNGaWx0ZXJzRGF0YUxvYWRlZDogYm9vbGVhbjtcclxuICBzaG93RmlsdGVyczogYm9vbGVhbjtcclxuICBsb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBmbGlwcGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBzdXJ2ZXlTZXJ2aWNlOiBTdXJ2ZXlTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihpbmplY3Rvcik7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmIChTdXJ2ZXlDb25maWcuc3VydmV5TW9kZSA9PSBTdXJ2ZXlNb2RlLlN1cnZleV9GdWxsX0FjY2VzcylcclxuICAgICAgdGhpcy5lbmFibGVBY3Rpb25zID0gdHJ1ZTtcclxuICAgIHRoaXMucGFnZVRpdGxlID0gdGhpcy5sKCdTdXJ2ZXlzX0hlYWRlcicpO1xyXG4gICAgdGhpcy51cGRhdGVQYWdlVGl0bGUodGhpcy5wYWdlVGl0bGUpO1xyXG4gICAgdGhpcy5icmVhZENydW1iID0gW107XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3hPcHRpb25zID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3hPcHRpb25zLk5hbWUgPSAnU2VhcmNoVGV4dEJveCc7XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3hPcHRpb25zLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgIHRoaXMuc2VhcmNoVGV4dEJveE9wdGlvbnMuUGxhY2Vob2xkZXIgPSB0aGlzLmwoJ1NlYXJjaCcpO1xyXG4gICAgdGhpcy5zZWFyY2hUZXh0Qm94T3B0aW9ucy5FeHRyYUNsYXNzZXMgPVxyXG4gICAgICAnZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbSBmb3JtLWNvbnRyb2wtc29saWQgc2VhcmNoLWJveCc7XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3hPcHRpb25zLkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3hPcHRpb25zLkljb24gPSAnLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9zZWFyY2guc3ZnJztcclxuXHJcbiAgICB0aGlzLnNlYXJjaFRleHRGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy5zZWFyY2hUZXh0RmlsdGVyLkZvcm1Db250cm9sTmFtZSA9IHRoaXMuc2VhcmNoVGV4dEJveE9wdGlvbnMuTmFtZTtcclxuICAgIHRoaXMuc2VhcmNoVGV4dEZpbHRlci5BY3Rpb25QYXJhbWV0ZXJOYW1lID0gJ1NlYXJjaFRleHQnO1xyXG4gICAgdGhpcy5zZWFyY2hUZXh0RmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlO1xyXG4gICAgdGhpcy5zZWFyY2hUZXh0RmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLlRleHRCb3g7XHJcblxyXG4gICAgdGhpcy52aXNpYmxlRHJvcGRvd25PcHRpb25zID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgdGhpcy52aXNpYmxlRHJvcGRvd25PcHRpb25zLm5hbWUgPSAndmlzaWJsZVN1cnZleSc7XHJcbiAgICB0aGlzLnZpc2libGVEcm9wZG93bk9wdGlvbnMubGFiZWxLZXkgPSAnVmlzaWJpbGl0eSc7XHJcbiAgICB0aGlzLnZpc2libGVEcm9wZG93bk9wdGlvbnMuc2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLnZpc2libGVQYW5lbERyb3Bkb3duRmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgIHRoaXMudmlzaWJsZVBhbmVsRHJvcGRvd25GaWx0ZXIuRm9ybUNvbnRyb2xOYW1lID1cclxuICAgICAgdGhpcy52aXNpYmxlRHJvcGRvd25PcHRpb25zLm5hbWU7XHJcbiAgICB0aGlzLnZpc2libGVQYW5lbERyb3Bkb3duRmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSAnQWN0aXZlU3RhdHVzJztcclxuICAgIHRoaXMudmlzaWJsZVBhbmVsRHJvcGRvd25GaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWU7XHJcbiAgICB0aGlzLnZpc2libGVQYW5lbERyb3Bkb3duRmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLkRyb3Bkb3duTGlzdDtcclxuXHJcbiAgICB0aGlzLnN0YXR1c0Ryb3Bkb3duT3B0aW9ucyA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgIHRoaXMuc3RhdHVzRHJvcGRvd25PcHRpb25zLm5hbWUgPSAnU3RhdHVzJztcclxuICAgIHRoaXMuc3RhdHVzRHJvcGRvd25PcHRpb25zLmxhYmVsS2V5ID0gJ1N0YXR1cyc7XHJcbiAgICB0aGlzLnN0YXR1c0Ryb3Bkb3duT3B0aW9ucy5zaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgdGhpcy5zdGF0dXNEcm9wZG93bk9wdGlvbnMubm90Rm91bmRUZXh0ID0gdGhpcy5sKCdOb1Jlc3VsdEZvdW5kJyk7XHJcblxyXG4gICAgdGhpcy5zdGF0dXNEcm9wZG93bkZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICB0aGlzLnN0YXR1c0Ryb3Bkb3duRmlsdGVyLkZvcm1Db250cm9sTmFtZSA9IHRoaXMuc3RhdHVzRHJvcGRvd25PcHRpb25zLm5hbWU7XHJcbiAgICB0aGlzLnN0YXR1c0Ryb3Bkb3duRmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSAnU3VydmV5U3RhdHVzJztcclxuICAgIHRoaXMuc3RhdHVzRHJvcGRvd25GaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWU7XHJcbiAgICB0aGlzLnN0YXR1c0Ryb3Bkb3duRmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLkRyb3Bkb3duTGlzdDtcclxuXHJcbiAgICB0aGlzLkRhdGVQaWNrZXJXaXRoUmFuZ2VNb2RlID0gbmV3IERhdGVQaWNrZXJPcHRpb25zKCk7XHJcbiAgICB0aGlzLkRhdGVQaWNrZXJXaXRoUmFuZ2VNb2RlLm5hbWUgPSAnRGF0ZVBpY2tlcldpdGhSYW5nZU1vZGUnO1xyXG4gICAgdGhpcy5EYXRlUGlja2VyV2l0aFJhbmdlTW9kZS5sYWJlbEtleSA9ICdEYXRlJztcclxuICAgIHRoaXMuRGF0ZVBpY2tlcldpdGhSYW5nZU1vZGUudmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgdGhpcy5EYXRlUGlja2VyV2l0aFJhbmdlTW9kZS5zdGFydFZpZXcgPSBTdGFydFZpZXcuTW9udGg7XHJcbiAgICB0aGlzLkRhdGVQaWNrZXJXaXRoUmFuZ2VNb2RlLnBpY2tlclR5cGUgPSBQaWNrZXJUeXBlLkNhbGVuZGFyO1xyXG4gICAgdGhpcy5EYXRlUGlja2VyV2l0aFJhbmdlTW9kZS5zZWxlY3RNb2RlID0gU2VsZWN0TW9kZS5SYW5nZTtcclxuXHJcbiAgICB0aGlzLkRhdGVQaWNrZXJXaXRoUmFuZ2VGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy5EYXRlUGlja2VyV2l0aFJhbmdlRmlsdGVyLkZvcm1Db250cm9sTmFtZSA9XHJcbiAgICAgIHRoaXMuRGF0ZVBpY2tlcldpdGhSYW5nZU1vZGUubmFtZTtcclxuICAgIHRoaXMuRGF0ZVBpY2tlcldpdGhSYW5nZUZpbHRlci5BY3Rpb25QYXJhbWV0ZXJOYW1lID0gJ0RhdGUnO1xyXG4gICAgdGhpcy5EYXRlUGlja2VyV2l0aFJhbmdlRmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlO1xyXG4gICAgdGhpcy5EYXRlUGlja2VyV2l0aFJhbmdlRmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLkRhdGVQaWNrZXI7XHJcblxyXG4gICAgdGhpcy5zb3J0RHJvcGRvd25PcHRpb25zID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgdGhpcy5zb3J0RHJvcGRvd25PcHRpb25zLm5hbWUgPSAnU29ydCc7XHJcbiAgICB0aGlzLnNvcnREcm9wZG93bk9wdGlvbnMubGFiZWxLZXkgPSAnU29ydCc7XHJcbiAgICB0aGlzLnNvcnREcm9wZG93bk9wdGlvbnMuc2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgIHRoaXMuc29ydERyb3Bkb3duT3B0aW9ucy5ub3RGb3VuZFRleHQgPSB0aGlzLmwoJ05vUmVzdWx0Rm91bmQnKTtcclxuXHJcbiAgICB0aGlzLnNvcnREcm9wZG93bkZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICB0aGlzLnNvcnREcm9wZG93bkZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSB0aGlzLnNvcnREcm9wZG93bk9wdGlvbnMubmFtZTtcclxuICAgIHRoaXMuc29ydERyb3Bkb3duRmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSAnU29ydEJ5JztcclxuICAgIHRoaXMuc29ydERyb3Bkb3duRmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlO1xyXG4gICAgdGhpcy5zb3J0RHJvcGRvd25GaWx0ZXIuRmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuRHJvcGRvd25MaXN0O1xyXG5cclxuICAgIHRoaXMuc29ydFR5cGVEcm9wZG93bk9wdGlvbnMgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICB0aGlzLnNvcnRUeXBlRHJvcGRvd25PcHRpb25zLm5hbWUgPSAnU29ydFR5cGUnO1xyXG4gICAgdGhpcy5zb3J0VHlwZURyb3Bkb3duT3B0aW9ucy5sYWJlbEtleSA9ICdTb3J0VHlwZSc7XHJcbiAgICB0aGlzLnNvcnRUeXBlRHJvcGRvd25PcHRpb25zLnNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICB0aGlzLnNvcnRUeXBlRHJvcGRvd25PcHRpb25zLm5vdEZvdW5kVGV4dCA9IHRoaXMubCgnTm9SZXN1bHRGb3VuZCcpO1xyXG5cclxuICAgIHRoaXMuc29ydFR5cGVEcm9wZG93bkZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICB0aGlzLnNvcnRUeXBlRHJvcGRvd25GaWx0ZXIuRm9ybUNvbnRyb2xOYW1lID1cclxuICAgICAgdGhpcy5zb3J0VHlwZURyb3Bkb3duT3B0aW9ucy5uYW1lO1xyXG4gICAgdGhpcy5zb3J0VHlwZURyb3Bkb3duRmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSAnU29ydFR5cGUnO1xyXG4gICAgdGhpcy5zb3J0VHlwZURyb3Bkb3duRmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlO1xyXG4gICAgdGhpcy5zb3J0VHlwZURyb3Bkb3duRmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLkRyb3Bkb3duTGlzdDtcclxuXHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zID0gbmV3IFBhZ2VIZWFkZXJPcHRpb25zKCk7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLnRpdGxlS2V5ID0gdGhpcy5wYWdlVGl0bGU7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLnN1YlRpdGxlS2V5ID0gdGhpcy5sKCdTdXJ2ZXlfU3ViSGVhZGVyJyk7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLnNlYXJjaFRleHRCb3guYWN0aXZlID0gdHJ1ZTtcclxuICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuc2VhcmNoVGV4dEJveC50ZXh0U2VhcmNoQm94T3B0aW9ucyA9XHJcbiAgICAgIHRoaXMuc2VhcmNoVGV4dEJveE9wdGlvbnM7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLmJyZWFkQ3J1bWIuYWN0aXZlID0gdHJ1ZTtcclxuICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuYnJlYWRDcnVtYi5icmVhZENydW1iSXRlbXMgPSB0aGlzLmJyZWFkQ3J1bWI7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLmVkaXRCdXR0b24uYWN0aXZlID0gZmFsc2U7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLmV4cG9ydEJ1dHRvbi5hY3RpdmUgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLmVuYWJsZUFjdGlvbnMpIHtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5hZGRCdXR0b24uYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5hZGRCdXR0b24uYnV0dG9uVGV4dEtleSA9IHRoaXMubCgnQWRkJyk7XHJcbiAgICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuYWRkQnV0dG9uLmZ1bmN0aW9uID0gdGhpcy5zaG93QWRkTW9kYWw7XHJcbiAgICB9XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLmZpbHRlcnNCdXR0b24uYWN0aXZlID0gdHJ1ZTtcclxuICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuZmlsdGVyc0J1dHRvbi5idXR0b25UZXh0S2V5ID0gdGhpcy5sKCdGaWx0ZXJzJyk7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLmZpbHRlcnNCdXR0b24uZnVuY3Rpb24gPSB0aGlzLmxvYWRGaWx0ZXJzO1xyXG4gICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5maWx0ZXJzLmFwcGx5RnVuY3Rpb24gPSB0aGlzLnNlYXJjaDtcclxuICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuZmlsdGVycy5yZXN0RnVuY3Rpb24gPSB0aGlzLnJlc2V0RmlsdGVycztcclxuICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuZmlsdGVycy5jb250cm9sc09wdGlvbnMucHVzaCh7XHJcbiAgICAgIGtleTogRGF0YVR5cGUuU2luZ2xlU2VsZWN0LFxyXG4gICAgICB2YWx1ZTogdGhpcy52aXNpYmxlRHJvcGRvd25PcHRpb25zLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLmZpbHRlcnMuY29udHJvbHNPcHRpb25zLnB1c2goe1xyXG4gICAgICBrZXk6IERhdGFUeXBlLlNpbmdsZVNlbGVjdCxcclxuICAgICAgdmFsdWU6IHRoaXMuc3RhdHVzRHJvcGRvd25PcHRpb25zLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLmZpbHRlcnMuY29udHJvbHNPcHRpb25zLnB1c2goe1xyXG4gICAgICBrZXk6IERhdGFUeXBlLkRhdGUsXHJcbiAgICAgIHZhbHVlOiB0aGlzLkRhdGVQaWNrZXJXaXRoUmFuZ2VNb2RlLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLmZpbHRlcnMuY29udHJvbHNPcHRpb25zLnB1c2goe1xyXG4gICAgICBrZXk6IERhdGFUeXBlLlNpbmdsZVNlbGVjdCxcclxuICAgICAgdmFsdWU6IHRoaXMuc29ydERyb3Bkb3duT3B0aW9ucyxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5maWx0ZXJzLmNvbnRyb2xzT3B0aW9ucy5wdXNoKHtcclxuICAgICAga2V5OiBEYXRhVHlwZS5TaW5nbGVTZWxlY3QsXHJcbiAgICAgIHZhbHVlOiB0aGlzLnNvcnRUeXBlRHJvcGRvd25PcHRpb25zLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLmxpc3RpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5FTiA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VFbmdsaXNoKCk7XHJcblxyXG4gICAgdGhpcy5wYWdpbmdPcHRpb25zID0gbmV3IFBhZ2luZ09wdGlvbnMoKTtcclxuICAgIHRoaXMucGFnaW5nT3B0aW9ucy5wYWdlU2l6ZSA9IDg7XHJcbiAgICB0aGlzLnBhZ2luZ09wdGlvbnMuZGlzYWJsZUJsb2NrVUkgPSB0cnVlO1xyXG4gICAgdGhpcy5wYWdpbmdPcHRpb25zLmFjdGlvblBvc3RVUkwgPSB0aGlzLmFwaVVSTCArICdHZXRBbGwnO1xyXG4gICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5saXN0aW5nID0gdHJ1ZTtcclxuICAgIHRoaXMucGFnaW5nT3B0aW9ucy5vbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcyA9IFtcclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Qm94T3B0aW9ucy5OYW1lLFxyXG4gICAgXTtcclxuICAgIHRoaXMucGFnaW5nT3B0aW9ucy5maWx0ZXJzID0gW1xyXG4gICAgICB0aGlzLnNlYXJjaFRleHRGaWx0ZXIsXHJcbiAgICAgIHRoaXMudmlzaWJsZVBhbmVsRHJvcGRvd25GaWx0ZXIsXHJcbiAgICAgIHRoaXMuc3RhdHVzRHJvcGRvd25GaWx0ZXIsXHJcbiAgICAgIHRoaXMuRGF0ZVBpY2tlcldpdGhSYW5nZUZpbHRlcixcclxuICAgICAgdGhpcy5zb3J0RHJvcGRvd25GaWx0ZXIsXHJcbiAgICAgIHRoaXMuc29ydFR5cGVEcm9wZG93bkZpbHRlcixcclxuICAgIF07XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWRpbmdQYWdlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHNldExpc3RpbmdSZXN1bHQocmVzdWx0KSB7XHJcbiAgICBkZWJ1Z2dlcjtcclxuICAgIHRoaXMucGFnaW5nUmVzdWx0ID0gcmVzdWx0O1xyXG4gICAgdGhpcy5zaG93UGFnZUNvbnRlbnQgPSB0cnVlO1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG4gIH1cclxuXHJcbiAgbG9hZEZpbHRlcnMgPSAoKSA9PiB7XHJcbiAgICBpZiAoIXRoaXMuaXNGaWx0ZXJzRGF0YUxvYWRlZCAmJiAhdGhpcy5zaG93RmlsdGVycykgdGhpcy5sb2FkRmlsdGVyc0RhdGEoKTtcclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnNob3dGaWx0ZXJzID0gIXRoaXMuc2hvd0ZpbHRlcnM7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuaXNGaWx0ZXJzRGF0YUxvYWRlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLmZpbHRlcnNCdXR0b24uc2hvd0xvYWRpbmdJbkZpbHRlcnNCb3ggPVxyXG4gICAgICAgIHRoaXMubG9hZGluZztcclxuICAgIH1cclxuICAgIHRoaXMuZmxpcHBpbmcgPSAhdGhpcy5mbGlwcGluZztcclxuICB9O1xyXG5cclxuICBsb2FkRmlsdGVyc0RhdGEgPSAoKSA9PiB7XHJcbiAgICB0aGlzLnN1cnZleVNlcnZpY2UubG9hZEZpbHRlcnNEcm9wZG93bigpLnN1YnNjcmliZSgocikgPT4ge1xyXG4gICAgICBsZXQgcmVzdWx0ID0gciBhcyBhbnk7XHJcbiAgICAgIHRoaXMuc3RhdHVzRHJvcGRvd25PcHRpb25zLmRhdGFTb3VyY2UgPSByZXN1bHQuc3RhdHVzZXM7XHJcbiAgICAgIHRoaXMuc29ydERyb3Bkb3duT3B0aW9ucy5kYXRhU291cmNlID0gcmVzdWx0LnN1cnZleVNvcnRpbmdUeXBlcztcclxuICAgICAgdGhpcy5zb3J0VHlwZURyb3Bkb3duT3B0aW9ucy5kYXRhU291cmNlID0gcmVzdWx0LnNvcnRUeXBlcztcclxuICAgICAgdGhpcy52aXNpYmxlRHJvcGRvd25PcHRpb25zLmRhdGFTb3VyY2UgPSByZXN1bHQudmlzaWJpbGl0eTtcclxuICAgICAgdGhpcy5zaG93RmlsdGVycyA9IHRydWU7XHJcbiAgICAgIHRoaXMuaXNGaWx0ZXJzRGF0YUxvYWRlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLmZpbHRlcnNCdXR0b24uc2hvd0xvYWRpbmdJbkZpbHRlcnNCb3ggPVxyXG4gICAgICAgIHRoaXMubG9hZGluZztcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIHJlc2V0RmlsdGVycyA9ICgpID0+IHtcclxuICAgIHRoaXMuZmlsdGVyc0Zvcm0uY29udHJvbHNbdGhpcy5EYXRlUGlja2VyV2l0aFJhbmdlTW9kZS5uYW1lXS5zZXRWYWx1ZShudWxsKTtcclxuICAgIHRoaXMuZmlsdGVyc0Zvcm0uY29udHJvbHNbdGhpcy52aXNpYmxlRHJvcGRvd25PcHRpb25zLm5hbWVdLnNldFZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy5maWx0ZXJzRm9ybS5jb250cm9sc1t0aGlzLnN0YXR1c0Ryb3Bkb3duT3B0aW9ucy5uYW1lXS5zZXRWYWx1ZShudWxsKTtcclxuICAgIHRoaXMuZmlsdGVyc0Zvcm0uY29udHJvbHNbdGhpcy5zb3J0RHJvcGRvd25PcHRpb25zLm5hbWVdLnNldFZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy5maWx0ZXJzRm9ybS5jb250cm9sc1t0aGlzLnNvcnRUeXBlRHJvcGRvd25PcHRpb25zLm5hbWVdLnNldFZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy5maWx0ZXJzRm9ybS5jb250cm9sc1t0aGlzLnNlYXJjaFRleHRCb3hPcHRpb25zLm5hbWVdLnNldFZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuZmlsdGVyc0J1dHRvbi5zaG93TG9hZGluZ0luRmlsdGVyc0JveCA9IHRoaXMubG9hZGluZztcclxuICAgIHRoaXMucGFnaW5nRWxlbWVudC5SZWluaXRpYWxpemVQYWdpbmcoKTtcclxuICB9O1xyXG5cclxuICBzZWFyY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoIXRoaXMuZmlsdGVyc0Zvcm0udmFsaWQpIHJldHVybjtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLmZpbHRlcnNCdXR0b24uc2hvd0xvYWRpbmdJbkZpbHRlcnNCb3ggPSB0aGlzLmxvYWRpbmc7XHJcbiAgICB0aGlzLnBhZ2luZ0VsZW1lbnQuUmVpbml0aWFsaXplUGFnaW5nKCk7XHJcbiAgfTtcclxuXHJcbiAgc2hvd0FkZE1vZGFsID0gKCkgPT4ge1xyXG4gICAgdGhpcy5hZGRNb2RhbC5zaG93TW9kYWwoKTtcclxuICB9O1xyXG4gIHNob3dFZGl0TW9kYWwoaWQpIHtcclxuICAgIHRoaXMuZWRpdE1vZGFsLnNob3dFZGl0TW9kYWwoaWQpO1xyXG4gIH1cclxuICBzaG93RHVwbGljYXRlTW9kYWwoaWQpIHtcclxuICAgIHRoaXMuZHVwbGljYXRlTW9kYWwuc2hvd0R1cGxpY2F0ZU1vZGFsKGlkKTtcclxuICB9XHJcbiAgc2hvd0RlbGV0ZU1vZGFsKGlkKSB7XHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbC5zaG93RGVsZXRlTW9kYWwoaWQpO1xyXG4gIH1cclxuXHJcbiAgaXNFZGl0YWJsZShzdGF0dXMpIHtcclxuICAgIGxldCBhbGxvd0VkaXQgPSBmYWxzZTtcclxuICAgIHN3aXRjaCAoc3RhdHVzLnRvTG9jYWxlTG93ZXJDYXNlKCkpIHtcclxuICAgICAgY2FzZSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX0RyYWZ0LnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgIGNhc2UgdGhpcy5TdXJ2ZXlTdGF0dXNFbnVtLlNjb3JpbmdUeXBlRW51bV9VcGNvbWluZy50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgIGFsbG93RWRpdCA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5TdXJ2ZXlTdGF0dXNFbnVtLlNjb3JpbmdUeXBlRW51bV9DbG9zZWQudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgY2FzZSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX1B1Ymxpc2hlZC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgIGFsbG93RWRpdCA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFsbG93RWRpdDtcclxuICB9XHJcbiAgZ2V0U3RhdHVzKHN0YXR1cykge1xyXG4gICAgdmFyIFN0YXR1c2VzID0gJyc7XHJcbiAgICBzd2l0Y2ggKHN0YXR1cy50b0xvY2FsZUxvd2VyQ2FzZSgpKSB7XHJcbiAgICAgIGNhc2UgdGhpcy5TdXJ2ZXlTdGF0dXNFbnVtLlNjb3JpbmdUeXBlRW51bV9EcmFmdC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgIFN0YXR1c2VzID0gJ2JhZGdlLXNlY29uZGFyeSc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5TdXJ2ZXlTdGF0dXNFbnVtLlNjb3JpbmdUeXBlRW51bV9DbG9zZWQudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICBTdGF0dXNlcyA9ICdiYWRnZS1kYW5nZXInO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMuU3VydmV5U3RhdHVzRW51bS5TY29yaW5nVHlwZUVudW1fUHVibGlzaGVkLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgU3RhdHVzZXMgPSAnYmFkZ2Utc3VjY2Vzcyc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5TdXJ2ZXlTdGF0dXNFbnVtLlNjb3JpbmdUeXBlRW51bV9VcGNvbWluZy50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgIFN0YXR1c2VzID0gJ2JhZGdlLXN1Y2Nlc3MnO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiBTdGF0dXNlcztcclxuICB9XHJcbn1cclxuIiwiPCEtLXRvb2xiYXItLT5cclxuPGJic2YtcGFnZS1oZWFkZXItY29tcG9uZW50IFtvcHRpb25zXT1cInBhZ2VIZWFkZXJPcHRpb25zXCIgW2dyb3VwXT1cImZpbHRlcnNGb3JtXCI+PC9iYnNmLXBhZ2UtaGVhZGVyLWNvbXBvbmVudD5cclxuPCEtLUVuZCB0b29sYmFyLS0+XHJcbjxkaXYgY2xhc3M9XCJjb250YWluZXIteHhsXCI+XHJcbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC14bC02IGQtZmxleFwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHBhZ2luZ1Jlc3VsdFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWxpc3Rpbmcgdy1pY29uLWJveGVzIHN1cnZleS1jYXJkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBsaW5lLWNsYW1wXCI+XHJcbiAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnLi4vaW5mbycsIGl0ZW0uaURfR1VJRF1cIj5cclxuICAgICAgICAgICAgICB7e2l0ZW0ubG9jYWxpemVkVGl0bGV9fVxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXIgZC1mbGV4IGZsZXgtbm93cmFwIGZsZXgtc3RhY2tcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodCBiYWdkZS14cyBtZS0yXCIgKm5nSWY9XCIhaXRlbS52aXNpYmxlXCI+IHt7bChcIk5vdFZpc2libGVcIil9fSA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFnZGUteHMgYmFkZ2UtbGlnaHQgbWUtMlwiIFtuZ0NsYXNzXT1cImdldFN0YXR1cyhpdGVtLnN0YXR1c0l0ZW1JRClcIj57e2l0ZW0ubG9jYWxpemVkU3RhdHVzfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiICpuZ0lmPVwiZW5hYmxlQWN0aW9uc1wiIGNsYXNzPVwiZHJvcGRvd24tY3VzdG9tXCIgW3BsYWNlbWVudF09XCJFTiA/ICdib3R0b20tcmlnaHQnIDogJ2JvdHRvbS1sZWZ0J1wiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZHJvcGRvd24tdG9nZ2xlLWN1c3RvbSBidG4gYnRuLWNsZWFyIGJ0bi1zbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBuZ2JEcm9wZG93blRvZ2dsZT5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tM1wiIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL2NhcmQtZHJvcGRvd24uc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudSBjbGFzcz1cImRyb3Bkb3duLW1lbnUtY3VzdG9tXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaXNFZGl0YWJsZShpdGVtLnN0YXR1c0l0ZW1JRClcIiAoY2xpY2spPVwic2hvd0VkaXRNb2RhbChpdGVtLmlEX0dVSUQpXCIgYXBwcHJldmVudGRvdWJsZWNsaWNrIHR5cGU9XCJidXR0b25cIiBuZ2JEcm9wZG93bkl0ZW0gY2xhc3M9XCJkcm9wZG93bi1idXR0b25cIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0zXCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvRWRpdC5zdmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAge3tsKFwiRWRpdFwiKX19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInNob3dEdXBsaWNhdGVNb2RhbChpdGVtLmlEX0dVSUQpXCIgYXBwcHJldmVudGRvdWJsZWNsaWNrIHR5cGU9XCJidXR0b25cIiBuZ2JEcm9wZG93bkl0ZW0gY2xhc3M9XCJkcm9wZG93bi1idXR0b25cIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0zXCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvY29weS5zdmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAge3tsKFwiRHVwbGljYXRlXCIpfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNob3dEZWxldGVNb2RhbChpdGVtLmlEX0dVSUQpXCIgYXBwcHJldmVudGRvdWJsZWNsaWNrIG5nYkRyb3Bkb3duSXRlbSBjbGFzcz1cImRyb3Bkb3duLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9UcmFzaC5zdmcnXCI+PC9zcGFuPiAge3tsKFwiRGVsZXRlXCIpfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgbWItNFwiPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJsaW5lLWNsYW1wLTFcIj5cclxuICAgICAgICAgICAge3tpdGVtLmxvY2FsaXplZERlc2N9fVxyXG4gICAgICAgICAgPC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS1mb290ZXIgdHlwZSBvbmUtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXIgcHQtMFwiPlxyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZleS1jb3VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdXJ2ZXktY291bnRlci10aXRsZVwiPnt7bCgnUXVlc3Rpb24nKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtYnJhbmQgYmFkZ2Utc3F1YXJlIFwiPnt7aXRlbS50b3RhbFF1ZXN0aW9uQ291bnR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXktY291bnRlclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VydmV5LWNvdW50ZXItdGl0bGVcIj57e2woJ1N1Ym1pc3Npb25zJyl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LWJyYW5kIGJhZGdlLXNxdWFyZSBcIj57e2l0ZW0udG90YWxTdWJtaXNzaW9uc0NvdW50fX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmVyeS1kYXRlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWJveGVzIGFsaWduLWl0ZW1zLWJhc2VsaW5lXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tYm94IHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ltYm9sXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ltYm9sLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi00XCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvY2FsZW5kYXIuc3ZnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1cnZleS1jb3VudGVyLXRpdGxlXCIgKm5nSWY9XCJpdGVtLnN0YXJ0RGF0ZT09bnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICB7e2woJ05vdFN0YXJ0ZWRZZXQnKX19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICAqbmdJZj1cIml0ZW0uc3RhcnREYXRlIT1udWxsXCIgY2xhc3M9XCJkLWZsZXggZmxleC1zdGFjayB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1cnZleS1jb3VudGVyLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tpdGVtLnN0YXJ0RGF0ZSB8c3VydmV5RGF0ZX19XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLmVuZERhdGUhPW51bGxcIj4gLSB7eyhpdGVtLmVuZERhdGV8c3VydmV5RGF0ZSl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0XCIgKm5nSWY9XCJpdGVtLmVuZERhdGU9PW51bGxcIj57e2woJ0hhc05vRW5kJyl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxCQlNGLVBhZ2luZyAoSXRlbXMpPVwic2V0TGlzdGluZ1Jlc3VsdCgkZXZlbnQpXCIgKm5nSWY9XCJsb2FkaW5nUGFnZVwiIFtvcHRpb25zXT1cInBhZ2luZ09wdGlvbnNcIiBbZ3JvdXBdPVwiZmlsdGVyc0Zvcm1cIlxyXG4gICAgICAgICAgICAgICAjcGFnaW5nVmlld0VsZW1lbnQ+PC9CQlNGLVBhZ2luZz5cclxuPC9kaXY+XHJcblxyXG5cclxuXHJcbjxhcHAtbm8tcmVzdWx0cyAqbmdJZj1cInBhZ2luZ1Jlc3VsdC5sZW5ndGggPT0gMCAmJiBzaG93UGFnZUNvbnRlbnRcIj48L2FwcC1uby1yZXN1bHRzPlxyXG48YXBwLWFkZC1zdXJ2ZXkgI2FkZE1vZGFsIFtwYWdpbmdFbGVtZW50XT1cInBhZ2luZ0VsZW1lbnRcIj48L2FwcC1hZGQtc3VydmV5PlxyXG48YXBwLWVkaXQtc3VydmV5ICNlZGl0TW9kYWwgW3BhZ2luZ0VsZW1lbnRdPVwicGFnaW5nRWxlbWVudFwiPjwvYXBwLWVkaXQtc3VydmV5PlxyXG48YXBwLWRlbGV0ZS1zdXJ2ZXkgI2RlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbCBbcGFnaW5nRWxlbWVudF09XCJwYWdpbmdFbGVtZW50XCI+PC9hcHAtZGVsZXRlLXN1cnZleT5cclxuPGFwcC1kdXBsaWNhdGUtc3VydmV5ICNkdXBsaWNhdGVNb2RhbCBbcGFnaW5nRWxlbWVudF09XCJwYWdpbmdFbGVtZW50XCI+PC9hcHAtZHVwbGljYXRlLXN1cnZleT5cclxuIl19
|