tango-app-ui-analyse-trax 3.9.81 → 3.9.82

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.
@@ -19,10 +19,11 @@ export class ExportGalleryComponent {
19
19
  type;
20
20
  payload;
21
21
  clientName;
22
+ exportgalleryPdf;
22
23
  selectedDateRange = {};
23
24
  destroy$ = new Subject();
24
25
  maxdaysReached = false;
25
- previewType = 'image';
26
+ previewType = "image";
26
27
  storeList = [];
27
28
  userList = [];
28
29
  selectedStore = [];
@@ -37,14 +38,14 @@ export class ExportGalleryComponent {
37
38
  dateRangePickerInput;
38
39
  ngOnInit() {
39
40
  this.selectedDateRange = {
40
- startDate: dayjs(this.payload?.fromDate).format('DD-MM-YYYY'),
41
- endDate: dayjs(this.payload?.toDate).format('DD-MM-YYYY'),
41
+ startDate: dayjs(this.payload?.fromDate).format("DD-MM-YYYY"),
42
+ endDate: dayjs(this.payload?.toDate).format("DD-MM-YYYY"),
42
43
  };
43
44
  console.log(this.payload);
44
45
  this.payload.previewType = this.previewType;
45
- if (this.type === 'Export as CSV') {
46
+ if (this.type === "Export as CSV" || (this.type === 'Export as PDF' && this.exportgalleryPdf)) {
46
47
  console.log(this.payload.filtertype);
47
- if (this.payload.filtertype === 'Clusters') {
48
+ if (this.payload.filtertype === "Clusters") {
48
49
  this.getStoreData();
49
50
  }
50
51
  else {
@@ -54,107 +55,133 @@ export class ExportGalleryComponent {
54
55
  }
55
56
  getStoreData() {
56
57
  this.getstore = true;
57
- this.traxService.getStoreslist({ clientId: this.payload.clientId, clusters: [], city: [] }).subscribe({
58
+ this.traxService
59
+ .getStoreslist({
60
+ clientId: this.payload.clientId,
61
+ clusters: [],
62
+ city: [],
63
+ })
64
+ .subscribe({
58
65
  next: (res) => {
59
66
  if (res && res.code == 200) {
60
67
  let stores = res.data.storesData.map((data) => data.storeId);
61
68
  let obj = {
62
- "fromDate": dayjs(this.payload.fromDate).format('YYYY-MM-DD'),
63
- "toDate": dayjs(this.payload.toDate).format('YYYY-MM-DD'),
64
- "ChecklistType": 'custom',
65
- "checklistName": this.payload.checklistName,
66
- "checklistId": this.payload.sourceCheckList_id,
67
- "storeId": stores,
68
- "answerType": this.payload.answerType,
69
- "viewFlag": this.payload.viewFlag,
70
- "viewRedo": this.payload.viewRedo,
71
- "filter": this.payload.filter,
72
- "filtertype": this.payload.filtertype,
73
- "questions": this.payload.questions.length > 0 && this.payload.questions[0].questions.length > 0 ? this.payload.questions[0].questions[0] : ""
69
+ fromDate: dayjs(this.payload.fromDate).format("YYYY-MM-DD"),
70
+ toDate: dayjs(this.payload.toDate).format("YYYY-MM-DD"),
71
+ ChecklistType: "custom",
72
+ checklistName: this.payload.checklistName,
73
+ checklistId: this.payload.sourceCheckList_id,
74
+ storeId: stores,
75
+ answerType: this.payload.answerType,
76
+ viewFlag: this.payload.viewFlag,
77
+ viewRedo: this.payload.viewRedo,
78
+ filter: this.payload.filter,
79
+ filtertype: this.payload.filtertype,
80
+ questions: this.payload.questions.length > 0 &&
81
+ this.payload.questions[0].questions.length > 0
82
+ ? this.payload.questions[0].questions[0]
83
+ : "",
74
84
  };
75
85
  console.log(this.payload.insertType);
76
- if (this.payload.insertType === 'task') {
77
- this.traxService.getQuestions(obj)?.pipe(takeUntil(this.destroy$))?.subscribe({
86
+ if (this.payload.insertType === "task") {
87
+ this.traxService
88
+ .getQuestions(obj)
89
+ ?.pipe(takeUntil(this.destroy$))
90
+ ?.subscribe({
78
91
  next: (res) => {
79
92
  if (res && res.code === 200) {
80
93
  this.selectedStore = res.data.storesDetails;
81
94
  this.storeList = res.data.storesDetails;
82
95
  this.getstore = false;
83
96
  }
84
- }
97
+ },
85
98
  });
86
99
  }
87
100
  else {
88
- this.traxService.getchecklist(obj)?.pipe(takeUntil(this.destroy$))?.subscribe({
101
+ this.traxService
102
+ .getchecklist(obj)
103
+ ?.pipe(takeUntil(this.destroy$))
104
+ ?.subscribe({
89
105
  next: (res) => {
90
106
  if (res && res.code === 200) {
91
107
  this.selectedStore = res.data.storesDetails;
92
108
  this.storeList = res.data.storesDetails;
93
109
  this.getstore = false;
94
110
  }
95
- }
111
+ },
96
112
  });
97
113
  }
98
114
  }
99
- }
115
+ },
100
116
  });
101
117
  }
102
118
  getuserData() {
103
119
  this.getstore = true;
104
- this.traxService.getusers({ clientId: this.payload.clientId, clusters: [], city: [] }).subscribe({
120
+ this.traxService
121
+ .getusers({ clientId: this.payload.clientId, clusters: [], city: [] })
122
+ .subscribe({
105
123
  next: (res) => {
106
124
  if (res && res.code == 200) {
107
125
  let users = res.data.map((data) => data.userEmail);
108
126
  let obj = {
109
- "fromDate": this.payload.fromDate,
110
- "toDate": this.payload.toDate,
111
- "ChecklistType": 'custom',
112
- "checklistName": this.payload.checklistName,
113
- "checklistId": this.payload.sourceCheckList_id,
114
- "storeId": [],
115
- "userEmail": users,
116
- "filtertype": this.payload.filtertype,
117
- "answerType": this.payload.answerType,
118
- "viewFlag": this.payload.viewFlag,
119
- "viewRedo": this.payload.viewRedo,
120
- "filter": this.payload.filter,
121
- "questions": this.payload.questions.length > 0 && this.payload.questions[0].questions.length > 0 ? this.payload.questions[0].questions[0] : ""
127
+ fromDate: this.payload.fromDate,
128
+ toDate: this.payload.toDate,
129
+ ChecklistType: "custom",
130
+ checklistName: this.payload.checklistName,
131
+ checklistId: this.payload.sourceCheckList_id,
132
+ storeId: [],
133
+ userEmail: users,
134
+ filtertype: this.payload.filtertype,
135
+ answerType: this.payload.answerType,
136
+ viewFlag: this.payload.viewFlag,
137
+ viewRedo: this.payload.viewRedo,
138
+ filter: this.payload.filter,
139
+ questions: this.payload.questions.length > 0 &&
140
+ this.payload.questions[0].questions.length > 0
141
+ ? this.payload.questions[0].questions[0]
142
+ : "",
122
143
  };
123
144
  console.log(this.payload.insertType);
124
- if (this.payload.insertType === 'task') {
125
- this.traxService.getQuestions(obj)?.pipe(takeUntil(this.destroy$))?.subscribe({
145
+ if (this.payload.insertType === "task") {
146
+ this.traxService
147
+ .getQuestions(obj)
148
+ ?.pipe(takeUntil(this.destroy$))
149
+ ?.subscribe({
126
150
  next: (res) => {
127
151
  if (res && res.code === 200) {
128
152
  this.selectedusers = res.data.storesDetails;
129
153
  this.userList = res.data.storesDetails;
130
154
  this.getstore = false;
131
155
  }
132
- }
156
+ },
133
157
  });
134
158
  }
135
159
  else {
136
- this.traxService.getchecklist(obj)?.pipe(takeUntil(this.destroy$))?.subscribe({
160
+ this.traxService
161
+ .getchecklist(obj)
162
+ ?.pipe(takeUntil(this.destroy$))
163
+ ?.subscribe({
137
164
  next: (res) => {
138
165
  if (res && res.code === 200) {
139
166
  this.selectedusers = res.data.storesDetails;
140
167
  this.userList = res.data.storesDetails;
141
168
  this.getstore = false;
142
169
  }
143
- }
170
+ },
144
171
  });
145
172
  }
146
173
  }
147
- }
174
+ },
148
175
  });
149
176
  }
150
177
  ngAfterViewInit() {
151
- this.dateRangePickerInput?.nativeElement?.addEventListener('focus', () => {
178
+ this.dateRangePickerInput?.nativeElement?.addEventListener("focus", () => {
152
179
  setTimeout(() => {
153
- const datePicker = document.querySelector('.daterangepicker');
180
+ const datePicker = document.querySelector(".daterangepicker");
154
181
  if (datePicker) {
155
182
  document.body.appendChild(datePicker);
156
- datePicker.style.position = 'absolute';
157
- datePicker.style.zIndex = '1050';
183
+ datePicker.style.position = "absolute";
184
+ datePicker.style.zIndex = "1050";
158
185
  }
159
186
  }, 0);
160
187
  });
@@ -176,16 +203,16 @@ export class ExportGalleryComponent {
176
203
  const start = dayjs(this.payload.fromDate);
177
204
  const end = dayjs(this.payload.toDate);
178
205
  // Calculate the difference in the specified unit
179
- const difference = end.diff(start, 'days');
206
+ const difference = end.diff(start, "days");
180
207
  if (difference > 30) {
181
208
  this.maxdaysReached = true;
182
209
  }
183
210
  else {
184
211
  this.maxdaysReached = false;
185
212
  }
186
- this.csvheight = '';
213
+ this.csvheight = "";
187
214
  this.getstore = false;
188
- if (this.payload.filtertype === 'Clusters') {
215
+ if (this.payload.filtertype === "Clusters") {
189
216
  this.getStoreData();
190
217
  }
191
218
  else {
@@ -195,7 +222,7 @@ export class ExportGalleryComponent {
195
222
  dayjs = dayjs;
196
223
  isCustomDate = (m) => {
197
224
  const isValidDate = m > this.dayjs();
198
- return isValidDate ? 'invalid-date' : false;
225
+ return isValidDate ? "invalid-date" : false;
199
226
  };
200
227
  onStartDateChange(event) {
201
228
  if (this.dayjs(event.startDate).isValid()) {
@@ -211,8 +238,8 @@ export class ExportGalleryComponent {
211
238
  this.payload.previewType = value;
212
239
  }
213
240
  cancel() {
214
- this.activeModal.close('close');
215
- const triggerButton = document.querySelector('#triggerButtonId');
241
+ this.activeModal.close("close");
242
+ const triggerButton = document.querySelector("#triggerButtonId");
216
243
  triggerButton?.focus();
217
244
  }
218
245
  onSubmit() {
@@ -223,24 +250,27 @@ export class ExportGalleryComponent {
223
250
  if (this.selectedusers && this.selectedusers.length > 0) {
224
251
  this.payload.userEmailList = this.selectedusers.map((data) => data.userEmail);
225
252
  }
226
- this.payload.fromDate = dayjs(this.payload.fromDate).format('YYYY-MM-DD');
227
- this.payload.toDate = dayjs(this.payload.toDate).format('YYYY-MM-DD');
253
+ this.payload.fromDate = dayjs(this.payload.fromDate).format("YYYY-MM-DD");
254
+ this.payload.toDate = dayjs(this.payload.toDate).format("YYYY-MM-DD");
228
255
  console.log(this.payload);
229
- this.traxService.reportTableExport(this.payload)?.pipe(takeUntil(this.destroy$))?.subscribe({
256
+ this.traxService
257
+ .reportTableExport(this.payload)
258
+ ?.pipe(takeUntil(this.destroy$))
259
+ ?.subscribe({
230
260
  next: (res) => {
231
261
  if (res && res.code === 200) {
232
262
  this.getstore = false;
233
- this.activeModal.close('success');
263
+ this.activeModal.close("success");
234
264
  }
235
265
  else {
236
266
  this.getstore = false;
237
- this.activeModal.close('error');
267
+ this.activeModal.close("error");
238
268
  }
239
269
  },
240
270
  error: (err) => {
241
271
  console.log(err);
242
272
  this.toastService.getErrorToast(`<div><span class="me-8" >${err?.error?.error?.error}</span></div>`);
243
- }
273
+ },
244
274
  });
245
275
  }
246
276
  csvheight = '';
@@ -248,19 +278,21 @@ export class ExportGalleryComponent {
248
278
  this.csvheight = "300px";
249
279
  }
250
280
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExportGalleryComponent, deps: [{ token: i1.NgbActiveModal }, { token: i0.ChangeDetectorRef }, { token: i2.TraxService }, { token: i3.ToastService }], target: i0.ɵɵFactoryTarget.Component });
251
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ExportGalleryComponent, selector: "lib-export-gallery", inputs: { type: "type", payload: "payload", clientName: "clientName" }, viewQueries: [{ propertyName: "dateRangePickerInput", first: true, predicate: ["dateRangePickerInput"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"card group-delete py-0 scroll\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"my-5\">\r\n <div class=\"symbol symbol-75px symbol-circle\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\" />\r\n <path\r\n d=\"M37 31V35C37 35.5304 36.7893 36.0391 36.4142 36.4142C36.0391 36.7893 35.5304 37 35 37H21C20.4696 37 19.9609 36.7893 19.5858 36.4142C19.2107 36.0391 19 35.5304 19 35V31M23 26L28 31M28 31L33 26M28 31V19\"\r\n stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </div>\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">{{type}}</a>\r\n\r\n <span *ngIf=\"type ==='Export as CSV'\" class=\"fw-normal mt-2\"><span class=\"dark-line1\">One of your team has\r\n requested edit access to your project</span> <span class=\"dark-line ms-1\">Website Design.</span></span>\r\n <div *ngIf=\"type ==='Export as CSV'\" class=\"col-md-12 position-relative mt-3 h-350px\">\r\n <span style=\"top: 2%;\" class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14 \" #dateRangePickerInput\r\n style=\"min-width: 260px !important; z-index: 1050 !important;\" type=\"text\" matInput ngxDaterangepickerMd\r\n [drops]=\"'down'\" [opens]=\"'right'\" [alwaysShowCalendars]=\"false\" [keepCalendarOpeningWithRange]=\"true\"\r\n [showCancel]=\"false\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" (click)=\"dateheight()\"\r\n [ngModelOptions]=\"{standalone: true}\" (datesUpdated)=\"datechange($event)\" [autoApply]=\"true\"\r\n (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n name=\"daterange\" [readonly]=\"true\" />\r\n <div class=\"col-md-8 mb-4 mt-4\">\r\n <div class=\"select-wrapper\">\r\n <div class=\"placeholder-overlay\" *ngIf=\"this.payload.filtertype==='Clusters'\">\r\n Select Stores\r\n </div>\r\n <lib-stores-select *ngIf=\"this.payload.filtertype==='Clusters'\" [items]=\"storeList\"\r\n [disabled]=\"false\" [multi]=\"true\" [searchField]=\"'storeName'\" [idField]=\"'storeId'\"\r\n (selected)=\"onStoreSelect($event)\" [selectedValues]=\"selectedStore\"></lib-stores-select>\r\n\r\n <div class=\"placeholder-overlay\" *ngIf=\"this.payload.filtertype==='Teams'\">\r\n Select Users\r\n </div>\r\n <lib-stores-select *ngIf=\"this.payload.filtertype==='Teams'\" [items]=\"userList\" [disabled]=\"false\"\r\n [multi]=\"true\" [searchField]=\"'userName'\" [idField]=\"'userName'\"\r\n (selected)=\"onuserSelect($event)\" [selectedValues]=\"selectedusers\"></lib-stores-select>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n <span *ngIf=\"type ==='Export as CSV'\" [ngClass]=\"maxdaysReached ? 'flagclour':''\"\r\n class=\"dark-line1 fw-normal mt-2\">Data downloads are limited to one month at a time.</span>\r\n <span *ngIf=\"type ==='Export as PDF'\" class=\"dark-line1 fw-normal mt-2\">This blog post has been published. Team\r\n members will be able to edit this post and republish changes.</span>\r\n <div *ngIf=\"type==='Export as PDF'\" class=\"col-md-12 mt-3\">\r\n <label class=\"label\">Select checklist</label>\r\n <select class=\"form-control\">\r\n <option><span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.6654 1.66602H4.9987C4.55667 1.66602 4.13275 1.84161 3.82019 2.15417C3.50763 2.46673 3.33203 2.89065 3.33203 3.33268V16.666C3.33203 17.108 3.50763 17.532 3.82019 17.8445C4.13275 18.1571 4.55667 18.3327 4.9987 18.3327H14.9987C15.4407 18.3327 15.8646 18.1571 16.1772 17.8445C16.4898 17.532 16.6654 17.108 16.6654 16.666V6.66602M11.6654 1.66602L16.6654 6.66602M11.6654 1.66602V6.66602H16.6654M13.332 10.8327H6.66536M13.332 14.166H6.66536M8.33203 7.49935H6.66536\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>Store Operation checklist</option>\r\n </select>\r\n </div>\r\n <div *ngIf=\"type==='Export as PDF'\" class=\"col-md-12 mt-3\">\r\n <label class=\"label\">Select Store</label>\r\n <select class=\"form-control\">\r\n <option></option>\r\n </select>\r\n </div>\r\n\r\n <div *ngIf=\"type==='Export as PDF'\" class=\"col-md-12 position-relative mt-5\">\r\n <span style=\"top: 20%;\" class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" #dateRangePickerInput\r\n style=\"min-width: 260px !important; z-index: 1050 !important;\" type=\"text\" matInput ngxDaterangepickerMd\r\n [drops]=\"'down'\" [singleDatePicker]=\"true\" [opens]=\"'right'\" [alwaysShowCalendars]=\"false\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"false\" autocomplete=\"off\"\r\n [(ngModel)]=\"selectedDateRange\" [ngModelOptions]=\"{standalone: true}\"\r\n (datesUpdated)=\"datechange($event)\" [autoApply]=\"true\" (startDateChanged)=\"onStartDateChange($event)\"\r\n [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n name=\"daterange\" [readonly]=\"true\" />\r\n <span class=\"sub-title fw-normal mt-2\">Only 1 day data can be downloaded</span>\r\n </div>\r\n <div *ngIf=\"type==='Export as PPT'||type==='Export as ZIP'\">\r\n\r\n <div class=\"d-flex flex-wrap mt-5\">\r\n <div class=\"border rounded min-w-200px cursor-pointer py-3 px-4 me-6 mb-3\"\r\n [ngClass]=\"previewType === 'image' ? 'nav-line-tabs1' : 'border-gray-300'\"\r\n (click)=\"onSelect('image')\">\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <svg *ngIf=\"previewType === 'image'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M5 21H19C20.1046 21 21 20.1046 21 19V5C21 3.89543 20.1046 3 19 3H5C3.89543 3 3 3.89543 3 5V19C3 20.1046 3.89543 21 5 21ZM5 21L16 10L21 15M10 8.5C10 9.32843 9.32843 10 8.5 10C7.67157 10 7 9.32843 7 8.5C7 7.67157 7.67157 7 8.5 7C9.32843 7 10 7.67157 10 8.5Z\"\r\n stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"previewType === 'video'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M5 21H19C20.1046 21 21 20.1046 21 19V5C21 3.89543 20.1046 3 19 3H5C3.89543 3 3 3.89543 3 5V19C3 20.1046 3.89543 21 5 21ZM5 21L16 10L21 15M10 8.5C10 9.32843 9.32843 10 8.5 10C7.67157 10 7 9.32843 7 8.5C7 7.67157 7.67157 7 8.5 7C9.32843 7 10 7.67157 10 8.5Z\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <div [ngClass]=\"previewType === 'image' ? 'text-border-priamry' : 'textvalue'\">Image</div>\r\n </div>\r\n <div class=\"border rounded min-w-200px cursor-pointer py-3 px-4 mb-3\"\r\n [ngClass]=\"previewType === 'video' ? 'nav-line-tabs1' : 'border-gray-300'\"\r\n (click)=\"onSelect('video')\">\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <svg *ngIf=\"previewType === 'image'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path d=\"M10 8L16 12L10 16V8Z\" stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"previewType === 'video'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\"\r\n stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path d=\"M10 8L16 12L10 16V8Z\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <div [ngClass]=\"previewType === 'video' ? 'text-border-priamry' : 'textvalue'\">Video</div>\r\n </div>\r\n\r\n </div>\r\n <!-- <label for=\"dropdown\" class=\"m-4 fs-4\">Choose an option: </label> -->\r\n <!-- <select id=\"dropdown\" class=\"form-control\" [(ngModel)]=\"previewType\" (change)=\"onSelect($event)\">\r\n <option [value]=\"'image'\">Image</option>\r\n <option [value]=\"'video'\">Video</option>\r\n </select> -->\r\n </div>\r\n <div *ngIf=\"type ==='Export as CSV'\" class=\"row w-100\">\r\n <div class=\"col-md-8\"></div>\r\n <div class=\"col-md-4 mt-2 text-end\">\r\n <div role=\"group\" class=\"d-flex mt-3 mb-15\">\r\n <button class=\"btn btn-outline w-100 me-2\" (click)=\"cancel()\">Cancel</button>\r\n <button id=\"alert-toast\" class=\"btn btn-primary w-100 ms-2\" [disabled]=\"maxdaysReached||getstore\"\r\n (click)=\"onSubmit()\">Confirm</button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div *ngIf=\"type !=='Export as CSV'\" class=\"mt-2 w-100 text-end\">\r\n\r\n <div role=\"group\" class=\"d-flex mt-3 mb-15\">\r\n <button class=\"btn btn-outline w-100 me-2\" (click)=\"cancel()\">Cancel</button>\r\n <button id=\"alert-toast\" class=\"btn btn-primary w-100 ms-2\" [disabled]=\"maxdaysReached||getstore\"\r\n (click)=\"onSubmit()\">Confirm</button>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n</div>", styles: [":host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .md-drppicker.shown.drops-down-right{transform-origin:0 0;width:600px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.show-ranges.shown{top:65px!important}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;right:-475px!important;left:unset!important;height:400px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}:host::ng-deep .daterangepicker{position:fixed!important;top:30%!important;left:50%!important;transform:translate(-50%);z-index:1050!important}.label{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:500;line-height:20px!important}.flagclour{color:red!important}.nav-line-tabs1{border-radius:8px!important;border:1px solid var(--Primary-700, #009BF3)!important;border-color:#009bf3!important;padding:16px!important;background:var(--Primary-25, #F6FCFF)!important}.border-gray-300{border-color:#101828!important;padding:16px!important}.textvalue{color:var(--Gray-900, #101828);font-size:16px!important;font-style:normal;font-weight:600!important;line-height:24px!important}.text-border-priamry{color:var(--Primary-700, #009BF3);font-size:16px!important;font-style:normal;font-weight:600!important;line-height:24px!important}.dark-line{color:var(--Gray-500, #667085)!important;font-size:14px;font-style:normal;font-weight:500!important;line-height:20px}.dark-line1{color:var(--Gray-500, #667085)!important;font-size:14px;font-style:normal;font-weight:400!important;line-height:20px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.DaterangepickerDirective, selector: "input[ngxDaterangepickerMd]", inputs: ["minDate", "maxDate", "autoApply", "alwaysShowCalendars", "showCustomRangeLabel", "linkedCalendars", "dateLimit", "singleDatePicker", "showWeekNumbers", "showISOWeekNumbers", "showDropdowns", "isInvalidDate", "isCustomDate", "isTooltipDate", "showClearButton", "customRangeDirection", "ranges", "opens", "drops", "firstMonthDayClass", "lastMonthDayClass", "emptyWeekRowClass", "emptyWeekColumnClass", "firstDayOfNextMonthClass", "lastDayOfPreviousMonthClass", "keepCalendarOpeningWithRange", "showRangeLabelOnInput", "showCancel", "lockStartDate", "timePicker", "timePicker24Hour", "timePickerIncrement", "timePickerSeconds", "closeOnAutoApply", "endKeyHolder", "startKey", "locale", "endKey"], outputs: ["change", "rangeClicked", "datesUpdated", "startDateChanged", "endDateChanged", "clearClicked"] }, { kind: "component", type: i7.CustomSelectComponent, selector: "lib-stores-select", inputs: ["items", "searchField", "multi", "idField", "selectedValues", "disabled", "label"], outputs: ["selected"] }] });
281
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ExportGalleryComponent, selector: "lib-export-gallery", inputs: { type: "type", payload: "payload", clientName: "clientName", exportgalleryPdf: "exportgalleryPdf" }, viewQueries: [{ propertyName: "dateRangePickerInput", first: true, predicate: ["dateRangePickerInput"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"card group-delete py-0 scroll\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"my-5\">\r\n <div class=\"symbol symbol-75px symbol-circle\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\" />\r\n <path\r\n d=\"M37 31V35C37 35.5304 36.7893 36.0391 36.4142 36.4142C36.0391 36.7893 35.5304 37 35 37H21C20.4696 37 19.9609 36.7893 19.5858 36.4142C19.2107 36.0391 19 35.5304 19 35V31M23 26L28 31M28 31L33 26M28 31V19\"\r\n stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </div>\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">{{type}}</a>\r\n\r\n <span *ngIf=\"type ==='Export as CSV' || (type ==='Export as PDF' && exportgalleryPdf)\" class=\"fw-normal mt-2\"><span class=\"dark-line1\">One of your team has\r\n requested edit access to your project</span> <span class=\"dark-line ms-1\">Website Design.</span></span>\r\n <div *ngIf=\"type ==='Export as CSV' || (type ==='Export as PDF' && exportgalleryPdf)\" class=\"col-md-12 position-relative mt-3 h-350px\">\r\n <span style=\"top: 2%;\" class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14 \" #dateRangePickerInput\r\n style=\"min-width: 260px !important; z-index: 1050 !important;\" type=\"text\" matInput ngxDaterangepickerMd\r\n [drops]=\"'down'\" [opens]=\"'right'\" [alwaysShowCalendars]=\"false\" [keepCalendarOpeningWithRange]=\"true\"\r\n [showCancel]=\"false\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" (click)=\"dateheight()\"\r\n [ngModelOptions]=\"{standalone: true}\" (datesUpdated)=\"datechange($event)\" [autoApply]=\"true\"\r\n (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n name=\"daterange\" [readonly]=\"true\" />\r\n <div class=\"col-md-8 mb-4 mt-4\">\r\n <div class=\"select-wrapper\">\r\n <div class=\"placeholder-overlay\" *ngIf=\"this.payload.filtertype==='Clusters'\">\r\n Select Stores\r\n </div>\r\n <lib-stores-select *ngIf=\"this.payload.filtertype==='Clusters'\" [items]=\"storeList\"\r\n [disabled]=\"false\" [multi]=\"true\" [searchField]=\"'storeName'\" [idField]=\"'storeId'\"\r\n (selected)=\"onStoreSelect($event)\" [selectedValues]=\"selectedStore\"></lib-stores-select>\r\n\r\n <div class=\"placeholder-overlay\" *ngIf=\"this.payload.filtertype==='Teams'\">\r\n Select Users\r\n </div>\r\n <lib-stores-select *ngIf=\"this.payload.filtertype==='Teams'\" [items]=\"userList\" [disabled]=\"false\"\r\n [multi]=\"true\" [searchField]=\"'userName'\" [idField]=\"'userName'\"\r\n (selected)=\"onuserSelect($event)\" [selectedValues]=\"selectedusers\"></lib-stores-select>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n <span *ngIf=\"type ==='Export as CSV' || (type ==='Export as PDF' && exportgalleryPdf)\" [ngClass]=\"maxdaysReached ? 'flagclour':''\"\r\n class=\"dark-line1 fw-normal mt-2\">Data downloads are limited to one month at a time.</span>\r\n <span *ngIf=\"type ==='Export as PDF' && !exportgalleryPdf\" class=\"dark-line1 fw-normal mt-2\">This blog post has been published. Team\r\n members will be able to edit this post and republish changes.</span>\r\n <div *ngIf=\"type==='Export as PDF' && !exportgalleryPdf\" class=\"col-md-12 mt-3\">\r\n <label class=\"label\">Select checklist</label>\r\n <select class=\"form-control\">\r\n <option><span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.6654 1.66602H4.9987C4.55667 1.66602 4.13275 1.84161 3.82019 2.15417C3.50763 2.46673 3.33203 2.89065 3.33203 3.33268V16.666C3.33203 17.108 3.50763 17.532 3.82019 17.8445C4.13275 18.1571 4.55667 18.3327 4.9987 18.3327H14.9987C15.4407 18.3327 15.8646 18.1571 16.1772 17.8445C16.4898 17.532 16.6654 17.108 16.6654 16.666V6.66602M11.6654 1.66602L16.6654 6.66602M11.6654 1.66602V6.66602H16.6654M13.332 10.8327H6.66536M13.332 14.166H6.66536M8.33203 7.49935H6.66536\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>Store Operation checklist</option>\r\n </select>\r\n </div>\r\n <div *ngIf=\"type==='Export as PDF' && !exportgalleryPdf\" class=\"col-md-12 mt-3\">\r\n <label class=\"label\">Select Store</label>\r\n <select class=\"form-control\">\r\n <option></option>\r\n </select>\r\n </div>\r\n\r\n <div *ngIf=\"type==='Export as PDF' && !exportgalleryPdf\" class=\"col-md-12 position-relative mt-5\">\r\n <span style=\"top: 20%;\" class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" #dateRangePickerInput\r\n style=\"min-width: 260px !important; z-index: 1050 !important;\" type=\"text\" matInput ngxDaterangepickerMd\r\n [drops]=\"'down'\" [singleDatePicker]=\"true\" [opens]=\"'right'\" [alwaysShowCalendars]=\"false\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"false\" autocomplete=\"off\"\r\n [(ngModel)]=\"selectedDateRange\" [ngModelOptions]=\"{standalone: true}\"\r\n (datesUpdated)=\"datechange($event)\" [autoApply]=\"true\" (startDateChanged)=\"onStartDateChange($event)\"\r\n [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n name=\"daterange\" [readonly]=\"true\" />\r\n <span class=\"sub-title fw-normal mt-2\">Only 1 day data can be downloaded</span>\r\n </div>\r\n <div *ngIf=\"type==='Export as PPT'||type==='Export as ZIP'\">\r\n\r\n <div class=\"d-flex flex-wrap mt-5\">\r\n <div class=\"border rounded min-w-200px cursor-pointer py-3 px-4 me-6 mb-3\"\r\n [ngClass]=\"previewType === 'image' ? 'nav-line-tabs1' : 'border-gray-300'\"\r\n (click)=\"onSelect('image')\">\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <svg *ngIf=\"previewType === 'image'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M5 21H19C20.1046 21 21 20.1046 21 19V5C21 3.89543 20.1046 3 19 3H5C3.89543 3 3 3.89543 3 5V19C3 20.1046 3.89543 21 5 21ZM5 21L16 10L21 15M10 8.5C10 9.32843 9.32843 10 8.5 10C7.67157 10 7 9.32843 7 8.5C7 7.67157 7.67157 7 8.5 7C9.32843 7 10 7.67157 10 8.5Z\"\r\n stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"previewType === 'video'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M5 21H19C20.1046 21 21 20.1046 21 19V5C21 3.89543 20.1046 3 19 3H5C3.89543 3 3 3.89543 3 5V19C3 20.1046 3.89543 21 5 21ZM5 21L16 10L21 15M10 8.5C10 9.32843 9.32843 10 8.5 10C7.67157 10 7 9.32843 7 8.5C7 7.67157 7.67157 7 8.5 7C9.32843 7 10 7.67157 10 8.5Z\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <div [ngClass]=\"previewType === 'image' ? 'text-border-priamry' : 'textvalue'\">Image</div>\r\n </div>\r\n <div class=\"border rounded min-w-200px cursor-pointer py-3 px-4 mb-3\"\r\n [ngClass]=\"previewType === 'video' ? 'nav-line-tabs1' : 'border-gray-300'\"\r\n (click)=\"onSelect('video')\">\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <svg *ngIf=\"previewType === 'image'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path d=\"M10 8L16 12L10 16V8Z\" stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"previewType === 'video'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\"\r\n stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path d=\"M10 8L16 12L10 16V8Z\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <div [ngClass]=\"previewType === 'video' ? 'text-border-priamry' : 'textvalue'\">Video</div>\r\n </div>\r\n\r\n </div>\r\n <!-- <label for=\"dropdown\" class=\"m-4 fs-4\">Choose an option: </label> -->\r\n <!-- <select id=\"dropdown\" class=\"form-control\" [(ngModel)]=\"previewType\" (change)=\"onSelect($event)\">\r\n <option [value]=\"'image'\">Image</option>\r\n <option [value]=\"'video'\">Video</option>\r\n </select> -->\r\n </div>\r\n <div *ngIf=\"type ==='Export as CSV' || (type ==='Export as PDF' && exportgalleryPdf)\" class=\"row w-100\">\r\n <div class=\"col-md-8\"></div>\r\n <div class=\"col-md-4 mt-2 text-end\">\r\n <div role=\"group\" class=\"d-flex mt-3 mb-15\">\r\n <button class=\"btn btn-outline w-100 me-2\" (click)=\"cancel()\">Cancel</button>\r\n <button id=\"alert-toast\" class=\"btn btn-primary w-100 ms-2\" [disabled]=\"maxdaysReached||getstore\"\r\n (click)=\"onSubmit()\">Confirm</button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div *ngIf=\"type !=='Export as CSV' && (type ==='Export as PDF' && !exportgalleryPdf)\" class=\"mt-2 w-100 text-end\">\r\n\r\n <div role=\"group\" class=\"d-flex mt-3 mb-15\">\r\n <button class=\"btn btn-outline w-100 me-2\" (click)=\"cancel()\">Cancel</button>\r\n <button id=\"alert-toast\" class=\"btn btn-primary w-100 ms-2\" [disabled]=\"maxdaysReached||getstore\"\r\n (click)=\"onSubmit()\">Confirm</button>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n</div>", styles: [":host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .md-drppicker.shown.drops-down-right{transform-origin:0 0;width:600px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.show-ranges.shown{top:65px!important}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;right:-475px!important;left:unset!important;height:400px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}:host::ng-deep .daterangepicker{position:fixed!important;top:30%!important;left:50%!important;transform:translate(-50%);z-index:1050!important}.label{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:500;line-height:20px!important}.flagclour{color:red!important}.nav-line-tabs1{border-radius:8px!important;border:1px solid var(--Primary-700, #009BF3)!important;border-color:#009bf3!important;padding:16px!important;background:var(--Primary-25, #F6FCFF)!important}.border-gray-300{border-color:#101828!important;padding:16px!important}.textvalue{color:var(--Gray-900, #101828);font-size:16px!important;font-style:normal;font-weight:600!important;line-height:24px!important}.text-border-priamry{color:var(--Primary-700, #009BF3);font-size:16px!important;font-style:normal;font-weight:600!important;line-height:24px!important}.dark-line{color:var(--Gray-500, #667085)!important;font-size:14px;font-style:normal;font-weight:500!important;line-height:20px}.dark-line1{color:var(--Gray-500, #667085)!important;font-size:14px;font-style:normal;font-weight:400!important;line-height:20px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.DaterangepickerDirective, selector: "input[ngxDaterangepickerMd]", inputs: ["minDate", "maxDate", "autoApply", "alwaysShowCalendars", "showCustomRangeLabel", "linkedCalendars", "dateLimit", "singleDatePicker", "showWeekNumbers", "showISOWeekNumbers", "showDropdowns", "isInvalidDate", "isCustomDate", "isTooltipDate", "showClearButton", "customRangeDirection", "ranges", "opens", "drops", "firstMonthDayClass", "lastMonthDayClass", "emptyWeekRowClass", "emptyWeekColumnClass", "firstDayOfNextMonthClass", "lastDayOfPreviousMonthClass", "keepCalendarOpeningWithRange", "showRangeLabelOnInput", "showCancel", "lockStartDate", "timePicker", "timePicker24Hour", "timePickerIncrement", "timePickerSeconds", "closeOnAutoApply", "endKeyHolder", "startKey", "locale", "endKey"], outputs: ["change", "rangeClicked", "datesUpdated", "startDateChanged", "endDateChanged", "clearClicked"] }, { kind: "component", type: i7.CustomSelectComponent, selector: "lib-stores-select", inputs: ["items", "searchField", "multi", "idField", "selectedValues", "disabled", "label"], outputs: ["selected"] }] });
252
282
  }
253
283
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExportGalleryComponent, decorators: [{
254
284
  type: Component,
255
- args: [{ selector: 'lib-export-gallery', template: "<div class=\"card group-delete py-0 scroll\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"my-5\">\r\n <div class=\"symbol symbol-75px symbol-circle\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\" />\r\n <path\r\n d=\"M37 31V35C37 35.5304 36.7893 36.0391 36.4142 36.4142C36.0391 36.7893 35.5304 37 35 37H21C20.4696 37 19.9609 36.7893 19.5858 36.4142C19.2107 36.0391 19 35.5304 19 35V31M23 26L28 31M28 31L33 26M28 31V19\"\r\n stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </div>\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">{{type}}</a>\r\n\r\n <span *ngIf=\"type ==='Export as CSV'\" class=\"fw-normal mt-2\"><span class=\"dark-line1\">One of your team has\r\n requested edit access to your project</span> <span class=\"dark-line ms-1\">Website Design.</span></span>\r\n <div *ngIf=\"type ==='Export as CSV'\" class=\"col-md-12 position-relative mt-3 h-350px\">\r\n <span style=\"top: 2%;\" class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14 \" #dateRangePickerInput\r\n style=\"min-width: 260px !important; z-index: 1050 !important;\" type=\"text\" matInput ngxDaterangepickerMd\r\n [drops]=\"'down'\" [opens]=\"'right'\" [alwaysShowCalendars]=\"false\" [keepCalendarOpeningWithRange]=\"true\"\r\n [showCancel]=\"false\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" (click)=\"dateheight()\"\r\n [ngModelOptions]=\"{standalone: true}\" (datesUpdated)=\"datechange($event)\" [autoApply]=\"true\"\r\n (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n name=\"daterange\" [readonly]=\"true\" />\r\n <div class=\"col-md-8 mb-4 mt-4\">\r\n <div class=\"select-wrapper\">\r\n <div class=\"placeholder-overlay\" *ngIf=\"this.payload.filtertype==='Clusters'\">\r\n Select Stores\r\n </div>\r\n <lib-stores-select *ngIf=\"this.payload.filtertype==='Clusters'\" [items]=\"storeList\"\r\n [disabled]=\"false\" [multi]=\"true\" [searchField]=\"'storeName'\" [idField]=\"'storeId'\"\r\n (selected)=\"onStoreSelect($event)\" [selectedValues]=\"selectedStore\"></lib-stores-select>\r\n\r\n <div class=\"placeholder-overlay\" *ngIf=\"this.payload.filtertype==='Teams'\">\r\n Select Users\r\n </div>\r\n <lib-stores-select *ngIf=\"this.payload.filtertype==='Teams'\" [items]=\"userList\" [disabled]=\"false\"\r\n [multi]=\"true\" [searchField]=\"'userName'\" [idField]=\"'userName'\"\r\n (selected)=\"onuserSelect($event)\" [selectedValues]=\"selectedusers\"></lib-stores-select>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n <span *ngIf=\"type ==='Export as CSV'\" [ngClass]=\"maxdaysReached ? 'flagclour':''\"\r\n class=\"dark-line1 fw-normal mt-2\">Data downloads are limited to one month at a time.</span>\r\n <span *ngIf=\"type ==='Export as PDF'\" class=\"dark-line1 fw-normal mt-2\">This blog post has been published. Team\r\n members will be able to edit this post and republish changes.</span>\r\n <div *ngIf=\"type==='Export as PDF'\" class=\"col-md-12 mt-3\">\r\n <label class=\"label\">Select checklist</label>\r\n <select class=\"form-control\">\r\n <option><span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.6654 1.66602H4.9987C4.55667 1.66602 4.13275 1.84161 3.82019 2.15417C3.50763 2.46673 3.33203 2.89065 3.33203 3.33268V16.666C3.33203 17.108 3.50763 17.532 3.82019 17.8445C4.13275 18.1571 4.55667 18.3327 4.9987 18.3327H14.9987C15.4407 18.3327 15.8646 18.1571 16.1772 17.8445C16.4898 17.532 16.6654 17.108 16.6654 16.666V6.66602M11.6654 1.66602L16.6654 6.66602M11.6654 1.66602V6.66602H16.6654M13.332 10.8327H6.66536M13.332 14.166H6.66536M8.33203 7.49935H6.66536\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>Store Operation checklist</option>\r\n </select>\r\n </div>\r\n <div *ngIf=\"type==='Export as PDF'\" class=\"col-md-12 mt-3\">\r\n <label class=\"label\">Select Store</label>\r\n <select class=\"form-control\">\r\n <option></option>\r\n </select>\r\n </div>\r\n\r\n <div *ngIf=\"type==='Export as PDF'\" class=\"col-md-12 position-relative mt-5\">\r\n <span style=\"top: 20%;\" class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" #dateRangePickerInput\r\n style=\"min-width: 260px !important; z-index: 1050 !important;\" type=\"text\" matInput ngxDaterangepickerMd\r\n [drops]=\"'down'\" [singleDatePicker]=\"true\" [opens]=\"'right'\" [alwaysShowCalendars]=\"false\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"false\" autocomplete=\"off\"\r\n [(ngModel)]=\"selectedDateRange\" [ngModelOptions]=\"{standalone: true}\"\r\n (datesUpdated)=\"datechange($event)\" [autoApply]=\"true\" (startDateChanged)=\"onStartDateChange($event)\"\r\n [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n name=\"daterange\" [readonly]=\"true\" />\r\n <span class=\"sub-title fw-normal mt-2\">Only 1 day data can be downloaded</span>\r\n </div>\r\n <div *ngIf=\"type==='Export as PPT'||type==='Export as ZIP'\">\r\n\r\n <div class=\"d-flex flex-wrap mt-5\">\r\n <div class=\"border rounded min-w-200px cursor-pointer py-3 px-4 me-6 mb-3\"\r\n [ngClass]=\"previewType === 'image' ? 'nav-line-tabs1' : 'border-gray-300'\"\r\n (click)=\"onSelect('image')\">\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <svg *ngIf=\"previewType === 'image'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M5 21H19C20.1046 21 21 20.1046 21 19V5C21 3.89543 20.1046 3 19 3H5C3.89543 3 3 3.89543 3 5V19C3 20.1046 3.89543 21 5 21ZM5 21L16 10L21 15M10 8.5C10 9.32843 9.32843 10 8.5 10C7.67157 10 7 9.32843 7 8.5C7 7.67157 7.67157 7 8.5 7C9.32843 7 10 7.67157 10 8.5Z\"\r\n stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"previewType === 'video'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M5 21H19C20.1046 21 21 20.1046 21 19V5C21 3.89543 20.1046 3 19 3H5C3.89543 3 3 3.89543 3 5V19C3 20.1046 3.89543 21 5 21ZM5 21L16 10L21 15M10 8.5C10 9.32843 9.32843 10 8.5 10C7.67157 10 7 9.32843 7 8.5C7 7.67157 7.67157 7 8.5 7C9.32843 7 10 7.67157 10 8.5Z\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <div [ngClass]=\"previewType === 'image' ? 'text-border-priamry' : 'textvalue'\">Image</div>\r\n </div>\r\n <div class=\"border rounded min-w-200px cursor-pointer py-3 px-4 mb-3\"\r\n [ngClass]=\"previewType === 'video' ? 'nav-line-tabs1' : 'border-gray-300'\"\r\n (click)=\"onSelect('video')\">\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <svg *ngIf=\"previewType === 'image'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path d=\"M10 8L16 12L10 16V8Z\" stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"previewType === 'video'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\"\r\n stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path d=\"M10 8L16 12L10 16V8Z\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <div [ngClass]=\"previewType === 'video' ? 'text-border-priamry' : 'textvalue'\">Video</div>\r\n </div>\r\n\r\n </div>\r\n <!-- <label for=\"dropdown\" class=\"m-4 fs-4\">Choose an option: </label> -->\r\n <!-- <select id=\"dropdown\" class=\"form-control\" [(ngModel)]=\"previewType\" (change)=\"onSelect($event)\">\r\n <option [value]=\"'image'\">Image</option>\r\n <option [value]=\"'video'\">Video</option>\r\n </select> -->\r\n </div>\r\n <div *ngIf=\"type ==='Export as CSV'\" class=\"row w-100\">\r\n <div class=\"col-md-8\"></div>\r\n <div class=\"col-md-4 mt-2 text-end\">\r\n <div role=\"group\" class=\"d-flex mt-3 mb-15\">\r\n <button class=\"btn btn-outline w-100 me-2\" (click)=\"cancel()\">Cancel</button>\r\n <button id=\"alert-toast\" class=\"btn btn-primary w-100 ms-2\" [disabled]=\"maxdaysReached||getstore\"\r\n (click)=\"onSubmit()\">Confirm</button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div *ngIf=\"type !=='Export as CSV'\" class=\"mt-2 w-100 text-end\">\r\n\r\n <div role=\"group\" class=\"d-flex mt-3 mb-15\">\r\n <button class=\"btn btn-outline w-100 me-2\" (click)=\"cancel()\">Cancel</button>\r\n <button id=\"alert-toast\" class=\"btn btn-primary w-100 ms-2\" [disabled]=\"maxdaysReached||getstore\"\r\n (click)=\"onSubmit()\">Confirm</button>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n</div>", styles: [":host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .md-drppicker.shown.drops-down-right{transform-origin:0 0;width:600px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.show-ranges.shown{top:65px!important}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;right:-475px!important;left:unset!important;height:400px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}:host::ng-deep .daterangepicker{position:fixed!important;top:30%!important;left:50%!important;transform:translate(-50%);z-index:1050!important}.label{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:500;line-height:20px!important}.flagclour{color:red!important}.nav-line-tabs1{border-radius:8px!important;border:1px solid var(--Primary-700, #009BF3)!important;border-color:#009bf3!important;padding:16px!important;background:var(--Primary-25, #F6FCFF)!important}.border-gray-300{border-color:#101828!important;padding:16px!important}.textvalue{color:var(--Gray-900, #101828);font-size:16px!important;font-style:normal;font-weight:600!important;line-height:24px!important}.text-border-priamry{color:var(--Primary-700, #009BF3);font-size:16px!important;font-style:normal;font-weight:600!important;line-height:24px!important}.dark-line{color:var(--Gray-500, #667085)!important;font-size:14px;font-style:normal;font-weight:500!important;line-height:20px}.dark-line1{color:var(--Gray-500, #667085)!important;font-size:14px;font-style:normal;font-weight:400!important;line-height:20px}\n"] }]
285
+ args: [{ selector: "lib-export-gallery", template: "<div class=\"card group-delete py-0 scroll\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"my-5\">\r\n <div class=\"symbol symbol-75px symbol-circle\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\" />\r\n <path\r\n d=\"M37 31V35C37 35.5304 36.7893 36.0391 36.4142 36.4142C36.0391 36.7893 35.5304 37 35 37H21C20.4696 37 19.9609 36.7893 19.5858 36.4142C19.2107 36.0391 19 35.5304 19 35V31M23 26L28 31M28 31L33 26M28 31V19\"\r\n stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </div>\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">{{type}}</a>\r\n\r\n <span *ngIf=\"type ==='Export as CSV' || (type ==='Export as PDF' && exportgalleryPdf)\" class=\"fw-normal mt-2\"><span class=\"dark-line1\">One of your team has\r\n requested edit access to your project</span> <span class=\"dark-line ms-1\">Website Design.</span></span>\r\n <div *ngIf=\"type ==='Export as CSV' || (type ==='Export as PDF' && exportgalleryPdf)\" class=\"col-md-12 position-relative mt-3 h-350px\">\r\n <span style=\"top: 2%;\" class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14 \" #dateRangePickerInput\r\n style=\"min-width: 260px !important; z-index: 1050 !important;\" type=\"text\" matInput ngxDaterangepickerMd\r\n [drops]=\"'down'\" [opens]=\"'right'\" [alwaysShowCalendars]=\"false\" [keepCalendarOpeningWithRange]=\"true\"\r\n [showCancel]=\"false\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" (click)=\"dateheight()\"\r\n [ngModelOptions]=\"{standalone: true}\" (datesUpdated)=\"datechange($event)\" [autoApply]=\"true\"\r\n (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n name=\"daterange\" [readonly]=\"true\" />\r\n <div class=\"col-md-8 mb-4 mt-4\">\r\n <div class=\"select-wrapper\">\r\n <div class=\"placeholder-overlay\" *ngIf=\"this.payload.filtertype==='Clusters'\">\r\n Select Stores\r\n </div>\r\n <lib-stores-select *ngIf=\"this.payload.filtertype==='Clusters'\" [items]=\"storeList\"\r\n [disabled]=\"false\" [multi]=\"true\" [searchField]=\"'storeName'\" [idField]=\"'storeId'\"\r\n (selected)=\"onStoreSelect($event)\" [selectedValues]=\"selectedStore\"></lib-stores-select>\r\n\r\n <div class=\"placeholder-overlay\" *ngIf=\"this.payload.filtertype==='Teams'\">\r\n Select Users\r\n </div>\r\n <lib-stores-select *ngIf=\"this.payload.filtertype==='Teams'\" [items]=\"userList\" [disabled]=\"false\"\r\n [multi]=\"true\" [searchField]=\"'userName'\" [idField]=\"'userName'\"\r\n (selected)=\"onuserSelect($event)\" [selectedValues]=\"selectedusers\"></lib-stores-select>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n <span *ngIf=\"type ==='Export as CSV' || (type ==='Export as PDF' && exportgalleryPdf)\" [ngClass]=\"maxdaysReached ? 'flagclour':''\"\r\n class=\"dark-line1 fw-normal mt-2\">Data downloads are limited to one month at a time.</span>\r\n <span *ngIf=\"type ==='Export as PDF' && !exportgalleryPdf\" class=\"dark-line1 fw-normal mt-2\">This blog post has been published. Team\r\n members will be able to edit this post and republish changes.</span>\r\n <div *ngIf=\"type==='Export as PDF' && !exportgalleryPdf\" class=\"col-md-12 mt-3\">\r\n <label class=\"label\">Select checklist</label>\r\n <select class=\"form-control\">\r\n <option><span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.6654 1.66602H4.9987C4.55667 1.66602 4.13275 1.84161 3.82019 2.15417C3.50763 2.46673 3.33203 2.89065 3.33203 3.33268V16.666C3.33203 17.108 3.50763 17.532 3.82019 17.8445C4.13275 18.1571 4.55667 18.3327 4.9987 18.3327H14.9987C15.4407 18.3327 15.8646 18.1571 16.1772 17.8445C16.4898 17.532 16.6654 17.108 16.6654 16.666V6.66602M11.6654 1.66602L16.6654 6.66602M11.6654 1.66602V6.66602H16.6654M13.332 10.8327H6.66536M13.332 14.166H6.66536M8.33203 7.49935H6.66536\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>Store Operation checklist</option>\r\n </select>\r\n </div>\r\n <div *ngIf=\"type==='Export as PDF' && !exportgalleryPdf\" class=\"col-md-12 mt-3\">\r\n <label class=\"label\">Select Store</label>\r\n <select class=\"form-control\">\r\n <option></option>\r\n </select>\r\n </div>\r\n\r\n <div *ngIf=\"type==='Export as PDF' && !exportgalleryPdf\" class=\"col-md-12 position-relative mt-5\">\r\n <span style=\"top: 20%;\" class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" #dateRangePickerInput\r\n style=\"min-width: 260px !important; z-index: 1050 !important;\" type=\"text\" matInput ngxDaterangepickerMd\r\n [drops]=\"'down'\" [singleDatePicker]=\"true\" [opens]=\"'right'\" [alwaysShowCalendars]=\"false\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"false\" autocomplete=\"off\"\r\n [(ngModel)]=\"selectedDateRange\" [ngModelOptions]=\"{standalone: true}\"\r\n (datesUpdated)=\"datechange($event)\" [autoApply]=\"true\" (startDateChanged)=\"onStartDateChange($event)\"\r\n [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n name=\"daterange\" [readonly]=\"true\" />\r\n <span class=\"sub-title fw-normal mt-2\">Only 1 day data can be downloaded</span>\r\n </div>\r\n <div *ngIf=\"type==='Export as PPT'||type==='Export as ZIP'\">\r\n\r\n <div class=\"d-flex flex-wrap mt-5\">\r\n <div class=\"border rounded min-w-200px cursor-pointer py-3 px-4 me-6 mb-3\"\r\n [ngClass]=\"previewType === 'image' ? 'nav-line-tabs1' : 'border-gray-300'\"\r\n (click)=\"onSelect('image')\">\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <svg *ngIf=\"previewType === 'image'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M5 21H19C20.1046 21 21 20.1046 21 19V5C21 3.89543 20.1046 3 19 3H5C3.89543 3 3 3.89543 3 5V19C3 20.1046 3.89543 21 5 21ZM5 21L16 10L21 15M10 8.5C10 9.32843 9.32843 10 8.5 10C7.67157 10 7 9.32843 7 8.5C7 7.67157 7.67157 7 8.5 7C9.32843 7 10 7.67157 10 8.5Z\"\r\n stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"previewType === 'video'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M5 21H19C20.1046 21 21 20.1046 21 19V5C21 3.89543 20.1046 3 19 3H5C3.89543 3 3 3.89543 3 5V19C3 20.1046 3.89543 21 5 21ZM5 21L16 10L21 15M10 8.5C10 9.32843 9.32843 10 8.5 10C7.67157 10 7 9.32843 7 8.5C7 7.67157 7.67157 7 8.5 7C9.32843 7 10 7.67157 10 8.5Z\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <div [ngClass]=\"previewType === 'image' ? 'text-border-priamry' : 'textvalue'\">Image</div>\r\n </div>\r\n <div class=\"border rounded min-w-200px cursor-pointer py-3 px-4 mb-3\"\r\n [ngClass]=\"previewType === 'video' ? 'nav-line-tabs1' : 'border-gray-300'\"\r\n (click)=\"onSelect('video')\">\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <svg *ngIf=\"previewType === 'image'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path d=\"M10 8L16 12L10 16V8Z\" stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"previewType === 'video'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\"\r\n stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path d=\"M10 8L16 12L10 16V8Z\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <div [ngClass]=\"previewType === 'video' ? 'text-border-priamry' : 'textvalue'\">Video</div>\r\n </div>\r\n\r\n </div>\r\n <!-- <label for=\"dropdown\" class=\"m-4 fs-4\">Choose an option: </label> -->\r\n <!-- <select id=\"dropdown\" class=\"form-control\" [(ngModel)]=\"previewType\" (change)=\"onSelect($event)\">\r\n <option [value]=\"'image'\">Image</option>\r\n <option [value]=\"'video'\">Video</option>\r\n </select> -->\r\n </div>\r\n <div *ngIf=\"type ==='Export as CSV' || (type ==='Export as PDF' && exportgalleryPdf)\" class=\"row w-100\">\r\n <div class=\"col-md-8\"></div>\r\n <div class=\"col-md-4 mt-2 text-end\">\r\n <div role=\"group\" class=\"d-flex mt-3 mb-15\">\r\n <button class=\"btn btn-outline w-100 me-2\" (click)=\"cancel()\">Cancel</button>\r\n <button id=\"alert-toast\" class=\"btn btn-primary w-100 ms-2\" [disabled]=\"maxdaysReached||getstore\"\r\n (click)=\"onSubmit()\">Confirm</button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div *ngIf=\"type !=='Export as CSV' && (type ==='Export as PDF' && !exportgalleryPdf)\" class=\"mt-2 w-100 text-end\">\r\n\r\n <div role=\"group\" class=\"d-flex mt-3 mb-15\">\r\n <button class=\"btn btn-outline w-100 me-2\" (click)=\"cancel()\">Cancel</button>\r\n <button id=\"alert-toast\" class=\"btn btn-primary w-100 ms-2\" [disabled]=\"maxdaysReached||getstore\"\r\n (click)=\"onSubmit()\">Confirm</button>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n</div>", styles: [":host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .md-drppicker.shown.drops-down-right{transform-origin:0 0;width:600px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.show-ranges.shown{top:65px!important}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;right:-475px!important;left:unset!important;height:400px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}:host::ng-deep .daterangepicker{position:fixed!important;top:30%!important;left:50%!important;transform:translate(-50%);z-index:1050!important}.label{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:500;line-height:20px!important}.flagclour{color:red!important}.nav-line-tabs1{border-radius:8px!important;border:1px solid var(--Primary-700, #009BF3)!important;border-color:#009bf3!important;padding:16px!important;background:var(--Primary-25, #F6FCFF)!important}.border-gray-300{border-color:#101828!important;padding:16px!important}.textvalue{color:var(--Gray-900, #101828);font-size:16px!important;font-style:normal;font-weight:600!important;line-height:24px!important}.text-border-priamry{color:var(--Primary-700, #009BF3);font-size:16px!important;font-style:normal;font-weight:600!important;line-height:24px!important}.dark-line{color:var(--Gray-500, #667085)!important;font-size:14px;font-style:normal;font-weight:500!important;line-height:20px}.dark-line1{color:var(--Gray-500, #667085)!important;font-size:14px;font-style:normal;font-weight:400!important;line-height:20px}\n"] }]
256
286
  }], ctorParameters: () => [{ type: i1.NgbActiveModal }, { type: i0.ChangeDetectorRef }, { type: i2.TraxService }, { type: i3.ToastService }], propDecorators: { type: [{
257
287
  type: Input
258
288
  }], payload: [{
259
289
  type: Input
260
290
  }], clientName: [{
261
291
  type: Input
292
+ }], exportgalleryPdf: [{
293
+ type: Input
262
294
  }], dateRangePickerInput: [{
263
295
  type: ViewChild,
264
- args: ['dateRangePickerInput', { read: ElementRef }]
296
+ args: ["dateRangePickerInput", { read: ElementRef }]
265
297
  }] } });
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWdhbGxlcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYW5hbHlzZS10cmF4L3NyYy9saWIvY29tcG9uZW50cy9leHBvcnQtZ2FsbGVyeS9leHBvcnQtZ2FsbGVyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2V4cG9ydC1nYWxsZXJ5L2V4cG9ydC1nYWxsZXJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWxILE9BQU8sRUFBRSxPQUFPLEVBQThDLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RixPQUFPLEtBQWdCLE1BQU0sT0FBTyxDQUFDO0FBQ3JDLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7QUFFbkMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQU1sQixNQUFNLE9BQU8sc0JBQXNCO0lBY3ZCO0lBQ0E7SUFDQTtJQUNBO0lBaEJELElBQUksQ0FBTTtJQUNWLE9BQU8sQ0FBTTtJQUNiLFVBQVUsQ0FBTTtJQUN6QixpQkFBaUIsR0FBUSxFQUFFLENBQUM7SUFDcEIsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFDakMsY0FBYyxHQUFZLEtBQUssQ0FBQztJQUNoQyxXQUFXLEdBQVEsT0FBTyxDQUFDO0lBQzNCLFNBQVMsR0FBRyxFQUFFLENBQUE7SUFDZCxRQUFRLEdBQUUsRUFBRSxDQUFBO0lBQ1osYUFBYSxHQUFHLEVBQUUsQ0FBQTtJQUNsQixhQUFhLEdBQUcsRUFBRSxDQUFBO0lBQ2xCLFFBQVEsR0FBWSxLQUFLLENBQUE7SUFDekIs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QkFBTTtvQkFDTCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQTtvQkFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQ2pDO1lBQ0gsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7Z0JBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLDRCQUE0QixHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLGVBQWUsQ0FBQyxDQUFBO1lBQ3RHLENBQUM7U0FDRixDQUFDLENBQUE7SUFJSixDQUFDO0lBQ0QsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUNmLFVBQVU7UUFDUixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQTtJQUMxQixDQUFDO3dHQXJQVSxzQkFBc0I7NEZBQXRCLHNCQUFzQiwyT0F1QlUsVUFBVSw2QkNyQ3ZELHc0YUE4S007OzRGRGhLTyxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9CO3dLQUtyQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBb0JtRCxvQkFBb0I7c0JBQTVFLFNBQVM7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBUaW1lUGVyaW9kIH0gZnJvbSAnbmd4LWRhdGVyYW5nZXBpY2tlci1tYXRlcmlhbC9kYXRlcmFuZ2VwaWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHJheFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmF4LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCBkYXlqcywgeyBEYXlqcyB9IGZyb20gXCJkYXlqc1wiO1xyXG5pbXBvcnQgdXRjIGZyb20gJ2RheWpzL3BsdWdpbi91dGMnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuZGF5anMuZXh0ZW5kKHV0Yyk7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWV4cG9ydC1nYWxsZXJ5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZXhwb3J0LWdhbGxlcnkuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9leHBvcnQtZ2FsbGVyeS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4cG9ydEdhbGxlcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIHR5cGU6IGFueTtcclxuICBASW5wdXQoKSBwYXlsb2FkOiBhbnk7XHJcbiAgQElucHV0KCkgY2xpZW50TmFtZTogYW55O1xyXG4gIHNlbGVjdGVkRGF0ZVJhbmdlOiBhbnkgPSB7fTtcclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBtYXhkYXlzUmVhY2hlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByZXZpZXdUeXBlOiBhbnkgPSAnaW1hZ2UnO1xyXG4gIHN0b3JlTGlzdCA9IFtdXHJcbiAgdXNlckxpc3Q9IFtdXHJcbiAgc2VsZWN0ZWRTdG9yZSA9IFtdXHJcbiAgc2VsZWN0ZWR1c2VycyA9IFtdXHJcbiAgZ2V0c3RvcmU6IGJvb2xlYW4gPSBmYWxzZVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhY3RpdmVNb2RhbDogTmdiQWN0aXZlTW9kYWwsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgdHJheFNlcnZpY2U6IFRyYXhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZVxyXG4gICkge1xyXG5cclxuXHJcblxyXG4gIH1cclxuICBAVmlld0NoaWxkKCdkYXRlUmFuZ2VQaWNrZXJJbnB1dCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBkYXRlUmFuZ2VQaWNrZXJJbnB1dDogRWxlbWVudFJlZjtcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UgPSB7XHJcbiAgICAgIHN0YXJ0RGF0ZTogZGF5anModGhpcy5wYXlsb2FkPy5mcm9tRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyksXHJcbiAgICAgIGVuZERhdGU6IGRheWpzKHRoaXMucGF5bG9hZD8udG9EYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKSxcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKHRoaXMucGF5bG9hZClcclxuICAgIHRoaXMucGF5bG9hZC5wcmV2aWV3VHlwZSA9IHRoaXMucHJldmlld1R5cGVcclxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdFeHBvcnQgYXMgQ1NWJykge1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLnBheWxvYWQuZmlsdGVydHlwZSlcclxuICAgICAgaWYodGhpcy5wYXlsb2FkLmZpbHRlcnR5cGU9PT0nQ2x1c3RlcnMnKXtcclxuICAgICAgICB0aGlzLmdldFN0b3JlRGF0YSgpXHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuZ2V0dXNlckRhdGEoKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIGdldFN0b3JlRGF0YSgpIHtcclxuICAgIHRoaXMuZ2V0c3RvcmUgPSB0cnVlXHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldFN0b3Jlc2xpc3QoeyBjbGllbnRJZDogdGhpcy5wYXlsb2FkLmNsaWVudElkLCBjbHVzdGVyczogW10sIGNpdHk6IFtdIH0pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICBsZXQgc3RvcmVzID0gcmVzLmRhdGEuc3RvcmVzRGF0YS5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS5zdG9yZUlkKVxyXG4gICAgICAgICAgbGV0IG9iaiA9IHtcclxuICAgICAgICAgICAgXCJmcm9tRGF0ZVwiOiBkYXlqcyh0aGlzLnBheWxvYWQuZnJvbURhdGUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpLFxyXG4gICAgICAgICAgICBcInRvRGF0ZVwiOiBkYXlqcyh0aGlzLnBheWxvYWQudG9EYXRlKS5mb3JtYXQoJ1lZWVktTU0tREQnKSxcclxuICAgICAgICAgICAgXCJDaGVja2xpc3RUeXBlXCI6ICdjdXN0b20nLFxyXG4gICAgICAgICAgICBcImNoZWNrbGlzdE5hbWVcIjogdGhpcy5wYXlsb2FkLmNoZWNrbGlzdE5hbWUsXHJcbiAgICAgICAgICAgIFwiY2hlY2tsaXN0SWRcIjogdGhpcy5wYXlsb2FkLnNvdXJjZUNoZWNrTGlzdF9pZCxcclxuICAgICAgICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgICAgICAgXCJhbnN3ZXJUeXBlXCI6IHRoaXMucGF5bG9hZC5hbnN3ZXJUeXBlLCAvL1tcImRlc2NyaXB0aXZlXCIsXCJ5ZXMvbm9cIixcIm11bHRpcGxlY2hvaWNlc2luZ2xlXCIsXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIsXCJpbWFnZVwiLFwidmlkZW9cIixcImRlc2NyaXB0aXZlSW1hZ2VcIixcIm11bHRpcGxlSW1hZ2VcIl1cclxuICAgICAgICAgICAgXCJ2aWV3RmxhZ1wiOiB0aGlzLnBheWxvYWQudmlld0ZsYWcsLy9bdHJ1ZSwgZmFsc2VdXHJcbiAgICAgICAgICAgIFwidmlld1JlZG9cIjogdGhpcy5wYXlsb2FkLnZpZXdSZWRvLFxyXG4gICAgICAgICAgICBcImZpbHRlclwiOiB0aGlzLnBheWxvYWQuZmlsdGVyLFxyXG4gICAgICAgICAgICBcImZpbHRlcnR5cGVcIjp0aGlzLnBheWxvYWQuZmlsdGVydHlwZSxcclxuICAgICAgICAgICAgXCJxdWVzdGlvbnNcIjogdGhpcy5wYXlsb2FkLnF1ZXN0aW9ucy5sZW5ndGggPiAwICYmIHRoaXMucGF5bG9hZC5xdWVzdGlvbnNbMF0ucXVlc3Rpb25zLmxlbmd0aCA+IDAgPyB0aGlzLnBheWxvYWQucXVlc3Rpb25zWzBdLnF1ZXN0aW9uc1swXSA6IFwiXCJcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMucGF5bG9hZC5pbnNlcnRUeXBlKVxyXG4gICAgICAgICAgaWYgKHRoaXMucGF5bG9hZC5pbnNlcnRUeXBlID09PSAndGFzaycpIHtcclxuICAgICAgICAgICAgdGhpcy50cmF4U2VydmljZS5nZXRRdWVzdGlvbnMob2JqKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTdG9yZSA9IHJlcy5kYXRhLnN0b3Jlc0RldGFpbHNcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0c3RvcmUgPSBmYWxzZVxyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldGNoZWNrbGlzdChvYmopPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFN0b3JlID0gcmVzLmRhdGEuc3RvcmVzRGV0YWlsc1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IHJlcy5kYXRhLnN0b3Jlc0RldGFpbHNcclxuICAgICAgICAgICAgICAgICAgdGhpcy5nZXRzdG9yZSA9IGZhbHNlXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG4gIGdldHVzZXJEYXRhKCkge1xyXG5cclxuICAgIHRoaXMuZ2V0c3RvcmUgPSB0cnVlXHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldHVzZXJzKHsgY2xpZW50SWQ6IHRoaXMucGF5bG9hZC5jbGllbnRJZCwgY2x1c3RlcnM6IFtdLCBjaXR5OiBbXSB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgbGV0IHVzZXJzID0gcmVzLmRhdGEubWFwKChkYXRhOiBhbnkpID0+IGRhdGEudXNlckVtYWlsKVxyXG4gICAgICAgICAgbGV0IG9iaiA9IHtcclxuICAgICAgICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLnBheWxvYWQuZnJvbURhdGUsXHJcbiAgICAgICAgICAgIFwidG9EYXRlXCI6IHRoaXMucGF5bG9hZC50b0RhdGUsXHJcbiAgICAgICAgICAgIFwiQ2hlY2tsaXN0VHlwZVwiOiAnY3VzdG9tJyxcclxuICAgICAgICAgICAgXCJjaGVja2xpc3ROYW1lXCI6IHRoaXMucGF5bG9hZC5jaGVja2xpc3ROYW1lLFxyXG4gICAgICAgICAgICBcImNoZWNrbGlzdElkXCI6IHRoaXMucGF5bG9hZC5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgICAgICAgIFwic3RvcmVJZFwiOiBbXSxcclxuICAgICAgICAgICAgXCJ1c2VyRW1haWxcIjogdXNlcnMsXHJcbiAgICAgICAgICAgIFwiZmlsdGVydHlwZVwiOnRoaXMucGF5bG9hZC5maWx0ZXJ0eXBlLFxyXG4gICAgICAgICAgICBcImFuc3dlclR5cGVcIjogdGhpcy5wYXlsb2FkLmFuc3dlclR5cGUsIC8vW1wiZGVzY3JpcHRpdmVcIixcInllcy9ub1wiLFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIixcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIixcImltYWdlXCIsXCJ2aWRlb1wiLFwiZGVzY3JpcHRpdmVJbWFnZVwiLFwibXVsdGlwbGVJbWFnZVwiXVxyXG4gICAgICAgICAgICBcInZpZXdGbGFnXCI6IHRoaXMucGF5bG9hZC52aWV3RmxhZywvL1t0cnVlLCBmYWxzZV1cclxuICAgICAgICAgICAgXCJ2aWV3UmVkb1wiOiB0aGlzLnBheWxvYWQudmlld1JlZG8sXHJcbiAgICAgICAgICAgIFwiZmlsdGVyXCI6IHRoaXMucGF5bG9hZC5maWx0ZXIsXHJcbiAgICAgICAgICAgIFwicXVlc3Rpb25zXCI6IHRoaXMucGF5bG9hZC5xdWVzdGlvbnMubGVuZ3RoID4gMCAmJiB0aGlzLnBheWxvYWQucXVlc3Rpb25zWzBdLnF1ZXN0aW9ucy5sZW5ndGggPiAwID8gdGhpcy5wYXlsb2FkLnF1ZXN0aW9uc1swXS5xdWVzdGlvbnNbMF0gOiBcIlwiXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnBheWxvYWQuaW5zZXJ0VHlwZSlcclxuICAgICAgICAgIGlmICh0aGlzLnBheWxvYWQuaW5zZXJ0VHlwZSA9PT0gJ3Rhc2snKSB7XHJcbiAgICAgICAgICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0UXVlc3Rpb25zKG9iaik/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkdXNlcnMgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXNlckxpc3QgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0c3RvcmUgPSBmYWxzZVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0Y2hlY2tsaXN0KG9iaik/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkdXNlcnMgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXNlckxpc3QgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0c3RvcmUgPSBmYWxzZVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5kYXRlUmFuZ2VQaWNrZXJJbnB1dD8ubmF0aXZlRWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoKSA9PiB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGRhdGVQaWNrZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZGF0ZXJhbmdlcGlja2VyJykgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgaWYgKGRhdGVQaWNrZXIpIHtcclxuICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGF0ZVBpY2tlcik7XHJcbiAgICAgICAgICBkYXRlUGlja2VyLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcclxuICAgICAgICAgIGRhdGVQaWNrZXIuc3R5bGUuekluZGV4ID0gJzEwNTAnO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgMCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgb25TdG9yZVNlbGVjdChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkU3RvcmUgPSBldmVudFxyXG4gICAgdGhpcy5zZWxlY3RlZHVzZXJzID0gW11cclxuXHJcbiAgfVxyXG4gIG9udXNlclNlbGVjdChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkU3RvcmUgPSBbXVxyXG4gICAgdGhpcy5zZWxlY3RlZHVzZXJzID0gZXZlbnRcclxuICB9XHJcblxyXG4gIGRhdGVjaGFuZ2UoZXZlbnQ6IFRpbWVQZXJpb2QpIHtcclxuICAgIGlmICghZXZlbnQuZW5kRGF0ZSB8fCAhZXZlbnQuc3RhcnREYXRlKSB7XHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG4gICAgdGhpcy5wYXlsb2FkLmZyb21EYXRlID0gZXZlbnQuc3RhcnREYXRlXHJcbiAgICB0aGlzLnBheWxvYWQudG9EYXRlID0gZXZlbnQuZW5kRGF0ZVxyXG4gICAgY29uc3Qgc3RhcnQgPSBkYXlqcyh0aGlzLnBheWxvYWQuZnJvbURhdGUpO1xyXG4gICAgY29uc3QgZW5kID0gZGF5anModGhpcy5wYXlsb2FkLnRvRGF0ZSk7XHJcblxyXG4gICAgLy8gQ2FsY3VsYXRlIHRoZSBkaWZmZXJlbmNlIGluIHRoZSBzcGVjaWZpZWQgdW5pdFxyXG4gICAgY29uc3QgZGlmZmVyZW5jZSA9IGVuZC5kaWZmKHN0YXJ0LCAnZGF5cycpO1xyXG4gICAgaWYgKGRpZmZlcmVuY2UgPiAzMCkge1xyXG4gICAgICB0aGlzLm1heGRheXNSZWFjaGVkID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubWF4ZGF5c1JlYWNoZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHRoaXMuY3N2aGVpZ2h0ID0gJyc7XHJcbiAgICB0aGlzLmdldHN0b3JlID0gZmFsc2VcclxuICAgICBpZih0aGlzLnBheWxvYWQuZmlsdGVydHlwZT09PSdDbHVzdGVycycpe1xyXG4gICAgICAgIHRoaXMuZ2V0U3RvcmVEYXRhKClcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5nZXR1c2VyRGF0YSgpXHJcbiAgICAgIH1cclxuICB9XHJcbiAgZGF5anMgPSBkYXlqcztcclxuICBpc0N1c3RvbURhdGUgPSAobTogZGF5anMuRGF5anMpID0+IHtcclxuICAgIGNvbnN0IGlzVmFsaWREYXRlID0gbSA+IHRoaXMuZGF5anMoKTtcclxuICAgIHJldHVybiBpc1ZhbGlkRGF0ZSA/ICdpbnZhbGlkLWRhdGUnIDogZmFsc2U7XHJcbiAgfVxyXG4gIG9uU3RhcnREYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkuaXNWYWxpZCgpKSB7XHJcbiAgICAgIHRoaXMuaXNDdXN0b21EYXRlID0gKG06IGRheWpzLkRheWpzKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaXNWYWxpZERhdGUgPVxyXG4gICAgICAgICAgbSA+IHRoaXMuZGF5anMoKSB8fCBtID4gdGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUuYWRkKDkwLCBcImRheXNcIikpO1xyXG4gICAgICAgIHJldHVybiBpc1ZhbGlkRGF0ZSA/IFwiaW52YWxpZC1kYXRlXCIgOiBmYWxzZTtcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIC8vIHRoaXMuZ2V0QWxsQ2hlY2tMaXN0cyhmYWxzZSlcclxuICB9XHJcbiAgb25TZWxlY3QodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5wcmV2aWV3VHlwZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5wYXlsb2FkLnByZXZpZXdUeXBlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKSB7XHJcbiAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdjbG9zZScpO1xyXG4gICAgY29uc3QgdHJpZ2dlckJ1dHRvbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN0cmlnZ2VyQnV0dG9uSWQnKSBhcyBIVE1MRWxlbWVudDtcclxuICAgIHRyaWdnZXJCdXR0b24/LmZvY3VzKCk7XHJcbiAgfVxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgdGhpcy5nZXRzdG9yZSA9IHRydWVcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkU3RvcmUgJiYgdGhpcy5zZWxlY3RlZFN0b3JlLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5wYXlsb2FkLnN0b3JlSWRzID0gdGhpcy5zZWxlY3RlZFN0b3JlLm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZHVzZXJzICYmIHRoaXMuc2VsZWN0ZWR1c2Vycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMucGF5bG9hZC51c2VyRW1haWxMaXN0ID0gdGhpcy5zZWxlY3RlZHVzZXJzLm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnVzZXJFbWFpbClcclxuICAgIH1cclxuICAgIHRoaXMucGF5bG9hZC5mcm9tRGF0ZSA9IGRheWpzKHRoaXMucGF5bG9hZC5mcm9tRGF0ZSkuZm9ybWF0KCdZWVlZLU1NLUREJylcclxuICAgIHRoaXMucGF5bG9hZC50b0RhdGUgPSBkYXlqcyh0aGlzLnBheWxvYWQudG9EYXRlKS5mb3JtYXQoJ1lZWVktTU0tREQnKVxyXG4gICAgY29uc29sZS5sb2codGhpcy5wYXlsb2FkKVxyXG4gICAgdGhpcy50cmF4U2VydmljZS5yZXBvcnRUYWJsZUV4cG9ydCh0aGlzLnBheWxvYWQpPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5nZXRzdG9yZSA9IGZhbHNlXHJcbiAgICAgICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdzdWNjZXNzJyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZ2V0c3RvcmUgPSBmYWxzZVxyXG4gICAgICAgICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgnZXJyb3InKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKVxyXG4gICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldEVycm9yVG9hc3QoYDxkaXY+PHNwYW4gY2xhc3M9XCJtZS04XCIgPiR7ZXJyPy5lcnJvcj8uZXJyb3I/LmVycm9yfTwvc3Bhbj48L2Rpdj5gKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuXHJcblxyXG4gIH1cclxuICBjc3ZoZWlnaHQgPSAnJztcclxuICBkYXRlaGVpZ2h0KCkge1xyXG4gICAgdGhpcy5jc3ZoZWlnaHQgPSBcIjMwMHB4XCJcclxuICB9XHJcbn1cclxuXHJcblxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FyZCBncm91cC1kZWxldGUgcHktMCBzY3JvbGxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktMCBkLWZsZXggZmxleC1zdGFydCBmbGV4LWNvbHVtbiBwLTkgXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm15LTVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN5bWJvbCBzeW1ib2wtNzVweCBzeW1ib2wtY2lyY2xlXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjREFGMUZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNFQUY4RkZcIiBzdHJva2Utd2lkdGg9XCI4XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTM3IDMxVjM1QzM3IDM1LjUzMDQgMzYuNzg5MyAzNi4wMzkxIDM2LjQxNDIgMzYuNDE0MkMzNi4wMzkxIDM2Ljc4OTMgMzUuNTMwNCAzNyAzNSAzN0gyMUMyMC40Njk2IDM3IDE5Ljk2MDkgMzYuNzg5MyAxOS41ODU4IDM2LjQxNDJDMTkuMjEwNyAzNi4wMzkxIDE5IDM1LjUzMDQgMTkgMzVWMzFNMjMgMjZMMjggMzFNMjggMzFMMzMgMjZNMjggMzFWMTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGEgY2xhc3M9XCJmcy00IHRleHQtZ3JheS04MDAgdGV4dC1ob3Zlci1wcmltYXJ5IGZ3LWJvbGQgbWItMCB0aXRsZSBjdXJzb3ItcG9pbnRlclwiPnt7dHlwZX19PC9hPlxyXG5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cInR5cGUgPT09J0V4cG9ydCBhcyBDU1YnXCIgY2xhc3M9XCJmdy1ub3JtYWwgbXQtMlwiPjxzcGFuIGNsYXNzPVwiZGFyay1saW5lMVwiPk9uZSBvZiB5b3VyIHRlYW0gaGFzXHJcbiAgICAgICAgICAgICAgICByZXF1ZXN0ZWQgZWRpdCBhY2Nlc3MgdG8geW91ciBwcm9qZWN0PC9zcGFuPiA8c3BhbiBjbGFzcz1cImRhcmstbGluZSBtcy0xXCI+V2Vic2l0ZSBEZXNpZ24uPC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0nRXhwb3J0IGFzIENTVidcIiBjbGFzcz1cImNvbC1tZC0xMiBwb3NpdGlvbi1yZWxhdGl2ZSBtdC0zIGgtMzUwcHhcIj5cclxuICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJ0b3A6IDIlO1wiIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTQgXCIgI2RhdGVSYW5nZVBpY2tlcklucHV0XHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIm1pbi13aWR0aDogMjYwcHggIWltcG9ydGFudDsgei1pbmRleDogMTA1MCAhaW1wb3J0YW50O1wiIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWRcclxuICAgICAgICAgICAgICAgIFtkcm9wc109XCInZG93bidcIiBbb3BlbnNdPVwiJ3JpZ2h0J1wiIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCIgW2tlZXBDYWxlbmRhck9wZW5pbmdXaXRoUmFuZ2VdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbc2hvd0NhbmNlbF09XCJmYWxzZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRlUmFuZ2VcIiAoY2xpY2spPVwiZGF0ZWhlaWdodCgpXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIiAoZGF0ZXNVcGRhdGVkKT1cImRhdGVjaGFuZ2UoJGV2ZW50KVwiIFthdXRvQXBwbHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAoc3RhcnREYXRlQ2hhbmdlZCk9XCJvblN0YXJ0RGF0ZUNoYW5nZSgkZXZlbnQpXCIgW2lzQ3VzdG9tRGF0ZV09XCJpc0N1c3RvbURhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2xvY2FsZV09XCJ7IGZvcm1hdDogJ0RELU1NLVlZWVknLCBmaXJzdERheTogMSwgbW9udGhOYW1lczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10gfVwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZGF0ZXJhbmdlXCIgW3JlYWRvbmx5XT1cInRydWVcIiAvPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTggbWItNCBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhY2Vob2xkZXItb3ZlcmxheVwiICpuZ0lmPVwidGhpcy5wYXlsb2FkLmZpbHRlcnR5cGU9PT0nQ2x1c3RlcnMnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBTdG9yZXNcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLXN0b3Jlcy1zZWxlY3QgKm5nSWY9XCJ0aGlzLnBheWxvYWQuZmlsdGVydHlwZT09PSdDbHVzdGVycydcIiBbaXRlbXNdPVwic3RvcmVMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCIgW211bHRpXT1cInRydWVcIiBbc2VhcmNoRmllbGRdPVwiJ3N0b3JlTmFtZSdcIiBbaWRGaWVsZF09XCInc3RvcmVJZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWQpPVwib25TdG9yZVNlbGVjdCgkZXZlbnQpXCIgW3NlbGVjdGVkVmFsdWVzXT1cInNlbGVjdGVkU3RvcmVcIj48L2xpYi1zdG9yZXMtc2VsZWN0PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhY2Vob2xkZXItb3ZlcmxheVwiICpuZ0lmPVwidGhpcy5wYXlsb2FkLmZpbHRlcnR5cGU9PT0nVGVhbXMnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBVc2Vyc1xyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaWItc3RvcmVzLXNlbGVjdCAqbmdJZj1cInRoaXMucGF5bG9hZC5maWx0ZXJ0eXBlPT09J1RlYW1zJ1wiIFtpdGVtc109XCJ1c2VyTGlzdFwiIFtkaXNhYmxlZF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aV09XCJ0cnVlXCIgW3NlYXJjaEZpZWxkXT1cIid1c2VyTmFtZSdcIiBbaWRGaWVsZF09XCIndXNlck5hbWUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkKT1cIm9udXNlclNlbGVjdCgkZXZlbnQpXCIgW3NlbGVjdGVkVmFsdWVzXT1cInNlbGVjdGVkdXNlcnNcIj48L2xpYi1zdG9yZXMtc2VsZWN0PlxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwidHlwZSA9PT0nRXhwb3J0IGFzIENTVidcIiBbbmdDbGFzc109XCJtYXhkYXlzUmVhY2hlZCA/ICdmbGFnY2xvdXInOicnXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJkYXJrLWxpbmUxIGZ3LW5vcm1hbCBtdC0yXCI+RGF0YSBkb3dubG9hZHMgYXJlIGxpbWl0ZWQgdG8gb25lIG1vbnRoIGF0IGEgdGltZS48L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJ0eXBlID09PSdFeHBvcnQgYXMgUERGJ1wiIGNsYXNzPVwiZGFyay1saW5lMSBmdy1ub3JtYWwgbXQtMlwiPlRoaXMgYmxvZyBwb3N0IGhhcyBiZWVuIHB1Ymxpc2hlZC4gVGVhbVxyXG4gICAgICAgICAgICBtZW1iZXJzIHdpbGwgYmUgYWJsZSB0byBlZGl0IHRoaXMgcG9zdCBhbmQgcmVwdWJsaXNoIGNoYW5nZXMuPC9zcGFuPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlPT09J0V4cG9ydCBhcyBQREYnXCIgY2xhc3M9XCJjb2wtbWQtMTIgIG10LTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIj5TZWxlY3QgY2hlY2tsaXN0PC9sYWJlbD5cclxuICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbj48c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTEuNjY1NCAxLjY2NjAySDQuOTk4N0M0LjU1NjY3IDEuNjY2MDIgNC4xMzI3NSAxLjg0MTYxIDMuODIwMTkgMi4xNTQxN0MzLjUwNzYzIDIuNDY2NzMgMy4zMzIwMyAyLjg5MDY1IDMuMzMyMDMgMy4zMzI2OFYxNi42NjZDMy4zMzIwMyAxNy4xMDggMy41MDc2MyAxNy41MzIgMy44MjAxOSAxNy44NDQ1QzQuMTMyNzUgMTguMTU3MSA0LjU1NjY3IDE4LjMzMjcgNC45OTg3IDE4LjMzMjdIMTQuOTk4N0MxNS40NDA3IDE4LjMzMjcgMTUuODY0NiAxOC4xNTcxIDE2LjE3NzIgMTcuODQ0NUMxNi40ODk4IDE3LjUzMiAxNi42NjU0IDE3LjEwOCAxNi42NjU0IDE2LjY2NlY2LjY2NjAyTTExLjY2NTQgMS42NjYwMkwxNi42NjU0IDYuNjY2MDJNMTEuNjY1NCAxLjY2NjAyVjYuNjY2MDJIMTYuNjY1NE0xMy4zMzIgMTAuODMyN0g2LjY2NTM2TTEzLjMzMiAxNC4xNjZINi42NjUzNk04LjMzMjAzIDcuNDk5MzVINi42NjUzNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5TdG9yZSBPcGVyYXRpb24gY2hlY2tsaXN0PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlPT09J0V4cG9ydCBhcyBQREYnXCIgY2xhc3M9XCJjb2wtbWQtMTIgIG10LTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIj5TZWxlY3QgU3RvcmU8L2xhYmVsPlxyXG4gICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1jb250cm9sXCI+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uPjwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInR5cGU9PT0nRXhwb3J0IGFzIFBERidcIiBjbGFzcz1cImNvbC1tZC0xMiBwb3NpdGlvbi1yZWxhdGl2ZSBtdC01XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwidG9wOiAyMCU7XCIgY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNFwiICNkYXRlUmFuZ2VQaWNrZXJJbnB1dFxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJtaW4td2lkdGg6IDI2MHB4ICFpbXBvcnRhbnQ7IHotaW5kZXg6IDEwNTAgIWltcG9ydGFudDtcIiB0eXBlPVwidGV4dFwiIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kXHJcbiAgICAgICAgICAgICAgICBbZHJvcHNdPVwiJ2Rvd24nXCIgW3NpbmdsZURhdGVQaWNrZXJdPVwidHJ1ZVwiIFtvcGVuc109XCIncmlnaHQnXCIgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgW2tlZXBDYWxlbmRhck9wZW5pbmdXaXRoUmFuZ2VdPVwidHJ1ZVwiIFtzaG93Q2FuY2VsXT1cImZhbHNlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRlUmFuZ2VcIiBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcclxuICAgICAgICAgICAgICAgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZWNoYW5nZSgkZXZlbnQpXCIgW2F1dG9BcHBseV09XCJ0cnVlXCIgKHN0YXJ0RGF0ZUNoYW5nZWQpPVwib25TdGFydERhdGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbaXNDdXN0b21EYXRlXT1cImlzQ3VzdG9tRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbbG9jYWxlXT1cInsgZm9ybWF0OiAnREQtTU0tWVlZWScsIGZpcnN0RGF5OiAxLCBtb250aE5hbWVzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSB9XCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJkYXRlcmFuZ2VcIiBbcmVhZG9ubHldPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViLXRpdGxlIGZ3LW5vcm1hbCBtdC0yXCI+T25seSAxIGRheSBkYXRhIGNhbiBiZSBkb3dubG9hZGVkPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlPT09J0V4cG9ydCBhcyBQUFQnfHx0eXBlPT09J0V4cG9ydCBhcyBaSVAnXCI+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcCBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIHJvdW5kZWQgbWluLXctMjAwcHggY3Vyc29yLXBvaW50ZXIgcHktMyBweC00IG1lLTYgbWItM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwicHJldmlld1R5cGUgPT09ICdpbWFnZScgPyAnbmF2LWxpbmUtdGFiczEnIDogJ2JvcmRlci1ncmF5LTMwMCdcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdCgnaW1hZ2UnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cInByZXZpZXdUeXBlID09PSAnaW1hZ2UnXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk01IDIxSDE5QzIwLjEwNDYgMjEgMjEgMjAuMTA0NiAyMSAxOVY1QzIxIDMuODk1NDMgMjAuMTA0NiAzIDE5IDNINUMzLjg5NTQzIDMgMyAzLjg5NTQzIDMgNVYxOUMzIDIwLjEwNDYgMy44OTU0MyAyMSA1IDIxWk01IDIxTDE2IDEwTDIxIDE1TTEwIDguNUMxMCA5LjMyODQzIDkuMzI4NDMgMTAgOC41IDEwQzcuNjcxNTcgMTAgNyA5LjMyODQzIDcgOC41QzcgNy42NzE1NyA3LjY3MTU3IDcgOC41IDdDOS4zMjg0MyA3IDEwIDcuNjcxNTcgMTAgOC41WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cInByZXZpZXdUeXBlID09PSAndmlkZW8nXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk01IDIxSDE5QzIwLjEwNDYgMjEgMjEgMjAuMTA0NiAyMSAxOVY1QzIxIDMuODk1NDMgMjAuMTA0NiAzIDE5IDNINUMzLjg5NTQzIDMgMyAzLjg5NTQzIDMgNVYxOUMzIDIwLjEwNDYgMy44OTU0MyAyMSA1IDIxWk01IDIxTDE2IDEwTDIxIDE1TTEwIDguNUMxMCA5LjMyODQzIDkuMzI4NDMgMTAgOC41IDEwQzcuNjcxNTcgMTAgNyA5LjMyODQzIDcgOC41QzcgNy42NzE1NyA3LjY3MTU3IDcgOC41IDdDOS4zMjg0MyA3IDEwIDcuNjcxNTcgMTAgOC41WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzEwMTgyOFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInByZXZpZXdUeXBlID09PSAnaW1hZ2UnID8gJ3RleHQtYm9yZGVyLXByaWFtcnknIDogJ3RleHR2YWx1ZSdcIj5JbWFnZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIHJvdW5kZWQgbWluLXctMjAwcHggY3Vyc29yLXBvaW50ZXIgcHktMyBweC00ICBtYi0zXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJwcmV2aWV3VHlwZSA9PT0gJ3ZpZGVvJyA/ICduYXYtbGluZS10YWJzMScgOiAnYm9yZGVyLWdyYXktMzAwJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KCd2aWRlbycpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnICpuZ0lmPVwicHJldmlld1R5cGUgPT09ICdpbWFnZSdcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyIDIyQzE3LjUyMjggMjIgMjIgMTcuNTIyOCAyMiAxMkMyMiA2LjQ3NzE1IDE3LjUyMjggMiAxMiAyQzYuNDc3MTUgMiAyIDYuNDc3MTUgMiAxMkMyIDE3LjUyMjggNi40NzcxNSAyMiAxMiAyMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMxMDE4MjhcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAgOEwxNiAxMkwxMCAxNlY4WlwiIHN0cm9rZT1cIiMxMDE4MjhcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cInByZXZpZXdUeXBlID09PSAndmlkZW8nXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMiAyMkMxNy41MjI4IDIyIDIyIDE3LjUyMjggMjIgMTJDMjIgNi40NzcxNSAxNy41MjI4IDIgMTIgMkM2LjQ3NzE1IDIgMiA2LjQ3NzE1IDIgMTJDMiAxNy41MjI4IDYuNDc3MTUgMjIgMTIgMjJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwIDhMMTYgMTJMMTAgMTZWOFpcIiBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJwcmV2aWV3VHlwZSA9PT0gJ3ZpZGVvJyA/ICd0ZXh0LWJvcmRlci1wcmlhbXJ5JyA6ICd0ZXh0dmFsdWUnXCI+VmlkZW88L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gPGxhYmVsIGZvcj1cImRyb3Bkb3duXCIgY2xhc3M9XCJtLTQgZnMtNFwiPkNob29zZSBhbiBvcHRpb246IDwvbGFiZWw+IC0tPlxyXG4gICAgICAgICAgICA8IS0tIDxzZWxlY3QgaWQ9XCJkcm9wZG93blwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJwcmV2aWV3VHlwZVwiIChjaGFuZ2UpPVwib25TZWxlY3QoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIidpbWFnZSdcIj5JbWFnZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIid2aWRlbydcIj5WaWRlbzwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8L3NlbGVjdD4gLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInR5cGUgPT09J0V4cG9ydCBhcyBDU1YnXCIgY2xhc3M9XCJyb3cgdy0xMDBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC04XCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBtdC0yIHRleHQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IHJvbGU9XCJncm91cFwiIGNsYXNzPVwiZC1mbGV4IG10LTMgbWItMTVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHctMTAwIG1lLTJcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPVwiYWxlcnQtdG9hc3RcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMCBtcy0yXCIgW2Rpc2FibGVkXT1cIm1heGRheXNSZWFjaGVkfHxnZXRzdG9yZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblN1Ym1pdCgpXCI+Q29uZmlybTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSAhPT0nRXhwb3J0IGFzIENTVidcIiBjbGFzcz1cIm10LTIgdy0xMDAgdGV4dC1lbmRcIj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgcm9sZT1cImdyb3VwXCIgY2xhc3M9XCJkLWZsZXggbXQtMyBtYi0xNVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSB3LTEwMCBtZS0yXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPVwiYWxlcnQtdG9hc3RcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMCBtcy0yXCIgW2Rpc2FibGVkXT1cIm1heGRheXNSZWFjaGVkfHxnZXRzdG9yZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU3VibWl0KClcIj5Db25maXJtPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
298
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWdhbGxlcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYW5hbHlzZS10cmF4L3NyYy9saWIvY29tcG9uZW50cy9leHBvcnQtZ2FsbGVyeS9leHBvcnQtZ2FsbGVyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2V4cG9ydC1nYWxsZXJ5L2V4cG9ydC1nYWxsZXJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWxILE9BQU8sRUFBRSxPQUFPLEVBQThDLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RixPQUFPLEtBQWdCLE1BQU0sT0FBTyxDQUFDO0FBQ3JDLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7QUFFbkMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQU1sQixNQUFNLE9BQU8sc0JBQXNCO0lBZXZCO0lBQ0E7SUFDQTtJQUNBO0lBakJELElBQUksQ0FBTTtJQUNWLE9BQU8sQ0FBTTtJQUNiLFVBQVUsQ0FBTTtJQUNoQixnQkFBZ0IsQ0FBTTtJQUMvQixpQkFBaUIsR0FBUSxFQUFFLENBQUM7SUFDcEIsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFDakMsY0FBYyxHQUFZLEtBQUssQ0FBQztJQUNoQyxXQUFXLEdBQVEsT0FBTyxDQUFDO0lBQzNCLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDZixRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ2QsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUNuQixhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQ25CLFFBQVEsR0FB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QUUsRUFBRTtnQkFDakIsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxHQUFHLEVBQUU7b0JBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO29CQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDbkM7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7b0JBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUNqQztZQUNILENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDYixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FDN0IsNEJBQTRCLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssZUFBZSxDQUNwRSxDQUFDO1lBQ0osQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ2YsVUFBVTtRQUNSLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFBO0lBQzFCLENBQUM7d0dBbFJVLHNCQUFzQjs0RkFBdEIsc0JBQXNCLGlSQW9CVSxVQUFVLDZCQ2xDdkQsa3RiQThLTTs7NEZEaEtPLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxvQkFBb0I7d0tBS3JCLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBaUJOLG9CQUFvQjtzQkFEbkIsU0FBUzt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiQWN0aXZlTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFRpbWVQZXJpb2QgfSBmcm9tICduZ3gtZGF0ZXJhbmdlcGlja2VyLW1hdGVyaWFsL2RhdGVyYW5nZXBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmF4U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYXguc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IGRheWpzLCB7IERheWpzIH0gZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yyc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5kYXlqcy5leHRlbmQodXRjKTtcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwibGliLWV4cG9ydC1nYWxsZXJ5XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9leHBvcnQtZ2FsbGVyeS5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsOiBcIi4vZXhwb3J0LWdhbGxlcnkuY29tcG9uZW50LnNjc3NcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4cG9ydEdhbGxlcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIHR5cGU6IGFueTtcclxuICBASW5wdXQoKSBwYXlsb2FkOiBhbnk7XHJcbiAgQElucHV0KCkgY2xpZW50TmFtZTogYW55O1xyXG4gIEBJbnB1dCgpIGV4cG9ydGdhbGxlcnlQZGY6IGFueTtcclxuICBzZWxlY3RlZERhdGVSYW5nZTogYW55ID0ge307XHJcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgbWF4ZGF5c1JlYWNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcmV2aWV3VHlwZTogYW55ID0gXCJpbWFnZVwiO1xyXG4gIHN0b3JlTGlzdCA9IFtdO1xyXG4gIHVzZXJMaXN0ID0gW107XHJcbiAgc2VsZWN0ZWRTdG9yZSA9IFtdO1xyXG4gIHNlbGVjdGVkdXNlcnMgPSBbXTtcclxuICBnZXRzdG9yZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhY3RpdmVNb2RhbDogTmdiQWN0aXZlTW9kYWwsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgdHJheFNlcnZpY2U6IFRyYXhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSxcclxuICApIHt9XHJcbiAgQFZpZXdDaGlsZChcImRhdGVSYW5nZVBpY2tlcklucHV0XCIsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxyXG4gIGRhdGVSYW5nZVBpY2tlcklucHV0OiBFbGVtZW50UmVmO1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZSA9IHtcclxuICAgICAgc3RhcnREYXRlOiBkYXlqcyh0aGlzLnBheWxvYWQ/LmZyb21EYXRlKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgICBlbmREYXRlOiBkYXlqcyh0aGlzLnBheWxvYWQ/LnRvRGF0ZSkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgIH07XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLnBheWxvYWQpO1xyXG4gICAgdGhpcy5wYXlsb2FkLnByZXZpZXdUeXBlID0gdGhpcy5wcmV2aWV3VHlwZTtcclxuICAgIGlmICh0aGlzLnR5cGUgPT09IFwiRXhwb3J0IGFzIENTVlwiIHx8ICh0aGlzLnR5cGUgPT09J0V4cG9ydCBhcyBQREYnICYmIHRoaXMuZXhwb3J0Z2FsbGVyeVBkZikpIHtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5wYXlsb2FkLmZpbHRlcnR5cGUpO1xyXG4gICAgICBpZiAodGhpcy5wYXlsb2FkLmZpbHRlcnR5cGUgPT09IFwiQ2x1c3RlcnNcIikge1xyXG4gICAgICAgIHRoaXMuZ2V0U3RvcmVEYXRhKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5nZXR1c2VyRGF0YSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZURhdGEoKSB7XHJcbiAgICB0aGlzLmdldHN0b3JlID0gdHJ1ZTtcclxuICAgIHRoaXMudHJheFNlcnZpY2VcclxuICAgICAgLmdldFN0b3Jlc2xpc3Qoe1xyXG4gICAgICAgIGNsaWVudElkOiB0aGlzLnBheWxvYWQuY2xpZW50SWQsXHJcbiAgICAgICAgY2x1c3RlcnM6IFtdLFxyXG4gICAgICAgIGNpdHk6IFtdLFxyXG4gICAgICB9KVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIGxldCBzdG9yZXMgPSByZXMuZGF0YS5zdG9yZXNEYXRhLm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpO1xyXG4gICAgICAgICAgICBsZXQgb2JqID0ge1xyXG4gICAgICAgICAgICAgIGZyb21EYXRlOiBkYXlqcyh0aGlzLnBheWxvYWQuZnJvbURhdGUpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAgICAgICAgICAgdG9EYXRlOiBkYXlqcyh0aGlzLnBheWxvYWQudG9EYXRlKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpLFxyXG4gICAgICAgICAgICAgIENoZWNrbGlzdFR5cGU6IFwiY3VzdG9tXCIsXHJcbiAgICAgICAgICAgICAgY2hlY2tsaXN0TmFtZTogdGhpcy5wYXlsb2FkLmNoZWNrbGlzdE5hbWUsXHJcbiAgICAgICAgICAgICAgY2hlY2tsaXN0SWQ6IHRoaXMucGF5bG9hZC5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgICAgICAgICAgc3RvcmVJZDogc3RvcmVzLFxyXG4gICAgICAgICAgICAgIGFuc3dlclR5cGU6IHRoaXMucGF5bG9hZC5hbnN3ZXJUeXBlLCAvL1tcImRlc2NyaXB0aXZlXCIsXCJ5ZXMvbm9cIixcIm11bHRpcGxlY2hvaWNlc2luZ2xlXCIsXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIsXCJpbWFnZVwiLFwidmlkZW9cIixcImRlc2NyaXB0aXZlSW1hZ2VcIixcIm11bHRpcGxlSW1hZ2VcIl1cclxuICAgICAgICAgICAgICB2aWV3RmxhZzogdGhpcy5wYXlsb2FkLnZpZXdGbGFnLCAvL1t0cnVlLCBmYWxzZV1cclxuICAgICAgICAgICAgICB2aWV3UmVkbzogdGhpcy5wYXlsb2FkLnZpZXdSZWRvLFxyXG4gICAgICAgICAgICAgIGZpbHRlcjogdGhpcy5wYXlsb2FkLmZpbHRlcixcclxuICAgICAgICAgICAgICBmaWx0ZXJ0eXBlOiB0aGlzLnBheWxvYWQuZmlsdGVydHlwZSxcclxuICAgICAgICAgICAgICBxdWVzdGlvbnM6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBheWxvYWQucXVlc3Rpb25zLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgICAgIHRoaXMucGF5bG9hZC5xdWVzdGlvbnNbMF0ucXVlc3Rpb25zLmxlbmd0aCA+IDBcclxuICAgICAgICAgICAgICAgICAgPyB0aGlzLnBheWxvYWQucXVlc3Rpb25zWzBdLnF1ZXN0aW9uc1swXVxyXG4gICAgICAgICAgICAgICAgICA6IFwiXCIsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMucGF5bG9hZC5pbnNlcnRUeXBlKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMucGF5bG9hZC5pbnNlcnRUeXBlID09PSBcInRhc2tcIikge1xyXG4gICAgICAgICAgICAgIHRoaXMudHJheFNlcnZpY2VcclxuICAgICAgICAgICAgICAgIC5nZXRRdWVzdGlvbnMob2JqKVxyXG4gICAgICAgICAgICAgICAgPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAgICAgICAgID8uc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkU3RvcmUgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRzdG9yZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMudHJheFNlcnZpY2VcclxuICAgICAgICAgICAgICAgIC5nZXRjaGVja2xpc3Qob2JqKVxyXG4gICAgICAgICAgICAgICAgPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAgICAgICAgID8uc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkU3RvcmUgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRzdG9yZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIGdldHVzZXJEYXRhKCkge1xyXG4gICAgdGhpcy5nZXRzdG9yZSA9IHRydWU7XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlXHJcbiAgICAgIC5nZXR1c2Vycyh7IGNsaWVudElkOiB0aGlzLnBheWxvYWQuY2xpZW50SWQsIGNsdXN0ZXJzOiBbXSwgY2l0eTogW10gfSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICBsZXQgdXNlcnMgPSByZXMuZGF0YS5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS51c2VyRW1haWwpO1xyXG4gICAgICAgICAgICBsZXQgb2JqID0ge1xyXG4gICAgICAgICAgICAgIGZyb21EYXRlOiB0aGlzLnBheWxvYWQuZnJvbURhdGUsXHJcbiAgICAgICAgICAgICAgdG9EYXRlOiB0aGlzLnBheWxvYWQudG9EYXRlLFxyXG4gICAgICAgICAgICAgIENoZWNrbGlzdFR5cGU6IFwiY3VzdG9tXCIsXHJcbiAgICAgICAgICAgICAgY2hlY2tsaXN0TmFtZTogdGhpcy5wYXlsb2FkLmNoZWNrbGlzdE5hbWUsXHJcbiAgICAgICAgICAgICAgY2hlY2tsaXN0SWQ6IHRoaXMucGF5bG9hZC5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgICAgICAgICAgc3RvcmVJZDogW10sXHJcbiAgICAgICAgICAgICAgdXNlckVtYWlsOiB1c2VycyxcclxuICAgICAgICAgICAgICBmaWx0ZXJ0eXBlOiB0aGlzLnBheWxvYWQuZmlsdGVydHlwZSxcclxuICAgICAgICAgICAgICBhbnN3ZXJUeXBlOiB0aGlzLnBheWxvYWQuYW5zd2VyVHlwZSwgLy9bXCJkZXNjcmlwdGl2ZVwiLFwieWVzL25vXCIsXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLFwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiLFwiaW1hZ2VcIixcInZpZGVvXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsXCJtdWx0aXBsZUltYWdlXCJdXHJcbiAgICAgICAgICAgICAgdmlld0ZsYWc6IHRoaXMucGF5bG9hZC52aWV3RmxhZywgLy9bdHJ1ZSwgZmFsc2VdXHJcbiAgICAgICAgICAgICAgdmlld1JlZG86IHRoaXMucGF5bG9hZC52aWV3UmVkbyxcclxuICAgICAgICAgICAgICBmaWx0ZXI6IHRoaXMucGF5bG9hZC5maWx0ZXIsXHJcbiAgICAgICAgICAgICAgcXVlc3Rpb25zOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5wYXlsb2FkLnF1ZXN0aW9ucy5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICAgICAgICB0aGlzLnBheWxvYWQucXVlc3Rpb25zWzBdLnF1ZXN0aW9ucy5sZW5ndGggPiAwXHJcbiAgICAgICAgICAgICAgICAgID8gdGhpcy5wYXlsb2FkLnF1ZXN0aW9uc1swXS5xdWVzdGlvbnNbMF1cclxuICAgICAgICAgICAgICAgICAgOiBcIlwiLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnBheWxvYWQuaW5zZXJ0VHlwZSk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnBheWxvYWQuaW5zZXJ0VHlwZSA9PT0gXCJ0YXNrXCIpIHtcclxuICAgICAgICAgICAgICB0aGlzLnRyYXhTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAuZ2V0UXVlc3Rpb25zKG9iailcclxuICAgICAgICAgICAgICAgID8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgICAgICAgICA/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZHVzZXJzID0gcmVzLmRhdGEuc3RvcmVzRGV0YWlscztcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckxpc3QgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRzdG9yZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMudHJheFNlcnZpY2VcclxuICAgICAgICAgICAgICAgIC5nZXRjaGVja2xpc3Qob2JqKVxyXG4gICAgICAgICAgICAgICAgPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAgICAgICAgID8uc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkdXNlcnMgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyTGlzdCA9IHJlcy5kYXRhLnN0b3Jlc0RldGFpbHM7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldHN0b3JlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuZGF0ZVJhbmdlUGlja2VySW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c1wiLCAoKSA9PiB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGRhdGVQaWNrZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxyXG4gICAgICAgICAgXCIuZGF0ZXJhbmdlcGlja2VyXCIsXHJcbiAgICAgICAgKSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBpZiAoZGF0ZVBpY2tlcikge1xyXG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkYXRlUGlja2VyKTtcclxuICAgICAgICAgIGRhdGVQaWNrZXIuc3R5bGUucG9zaXRpb24gPSBcImFic29sdXRlXCI7XHJcbiAgICAgICAgICBkYXRlUGlja2VyLnN0eWxlLnpJbmRleCA9IFwiMTA1MFwiO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgMCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgb25TdG9yZVNlbGVjdChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkU3RvcmUgPSBldmVudDtcclxuICAgIHRoaXMuc2VsZWN0ZWR1c2VycyA9IFtdO1xyXG4gIH1cclxuICBvbnVzZXJTZWxlY3QoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFN0b3JlID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkdXNlcnMgPSBldmVudDtcclxuICB9XHJcblxyXG4gIGRhdGVjaGFuZ2UoZXZlbnQ6IFRpbWVQZXJpb2QpIHtcclxuICAgIGlmICghZXZlbnQuZW5kRGF0ZSB8fCAhZXZlbnQuc3RhcnREYXRlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMucGF5bG9hZC5mcm9tRGF0ZSA9IGV2ZW50LnN0YXJ0RGF0ZTtcclxuICAgIHRoaXMucGF5bG9hZC50b0RhdGUgPSBldmVudC5lbmREYXRlO1xyXG4gICAgY29uc3Qgc3RhcnQgPSBkYXlqcyh0aGlzLnBheWxvYWQuZnJvbURhdGUpO1xyXG4gICAgY29uc3QgZW5kID0gZGF5anModGhpcy5wYXlsb2FkLnRvRGF0ZSk7XHJcblxyXG4gICAgLy8gQ2FsY3VsYXRlIHRoZSBkaWZmZXJlbmNlIGluIHRoZSBzcGVjaWZpZWQgdW5pdFxyXG4gICAgY29uc3QgZGlmZmVyZW5jZSA9IGVuZC5kaWZmKHN0YXJ0LCBcImRheXNcIik7XHJcbiAgICBpZiAoZGlmZmVyZW5jZSA+IDMwKSB7XHJcbiAgICAgIHRoaXMubWF4ZGF5c1JlYWNoZWQgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tYXhkYXlzUmVhY2hlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jc3ZoZWlnaHQgPSBcIlwiO1xyXG4gICAgdGhpcy5nZXRzdG9yZSA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMucGF5bG9hZC5maWx0ZXJ0eXBlID09PSBcIkNsdXN0ZXJzXCIpIHtcclxuICAgICAgdGhpcy5nZXRTdG9yZURhdGEoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZ2V0dXNlckRhdGEoKTtcclxuICAgIH1cclxuICB9XHJcbiAgZGF5anMgPSBkYXlqcztcclxuICBpc0N1c3RvbURhdGUgPSAobTogZGF5anMuRGF5anMpID0+IHtcclxuICAgIGNvbnN0IGlzVmFsaWREYXRlID0gbSA+IHRoaXMuZGF5anMoKTtcclxuICAgIHJldHVybiBpc1ZhbGlkRGF0ZSA/IFwiaW52YWxpZC1kYXRlXCIgOiBmYWxzZTtcclxuICB9O1xyXG4gIG9uU3RhcnREYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkuaXNWYWxpZCgpKSB7XHJcbiAgICAgIHRoaXMuaXNDdXN0b21EYXRlID0gKG06IGRheWpzLkRheWpzKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaXNWYWxpZERhdGUgPVxyXG4gICAgICAgICAgbSA+IHRoaXMuZGF5anMoKSB8fCBtID4gdGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUuYWRkKDkwLCBcImRheXNcIikpO1xyXG4gICAgICAgIHJldHVybiBpc1ZhbGlkRGF0ZSA/IFwiaW52YWxpZC1kYXRlXCIgOiBmYWxzZTtcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIC8vIHRoaXMuZ2V0QWxsQ2hlY2tMaXN0cyhmYWxzZSlcclxuICB9XHJcbiAgb25TZWxlY3QodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5wcmV2aWV3VHlwZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5wYXlsb2FkLnByZXZpZXdUeXBlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKSB7XHJcbiAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKFwiY2xvc2VcIik7XHJcbiAgICBjb25zdCB0cmlnZ2VyQnV0dG9uID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcclxuICAgICAgXCIjdHJpZ2dlckJ1dHRvbklkXCIsXHJcbiAgICApIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgdHJpZ2dlckJ1dHRvbj8uZm9jdXMoKTtcclxuICB9XHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICB0aGlzLmdldHN0b3JlID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkU3RvcmUgJiYgdGhpcy5zZWxlY3RlZFN0b3JlLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5wYXlsb2FkLnN0b3JlSWRzID0gdGhpcy5zZWxlY3RlZFN0b3JlLm1hcChcclxuICAgICAgICAoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQsXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZHVzZXJzICYmIHRoaXMuc2VsZWN0ZWR1c2Vycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMucGF5bG9hZC51c2VyRW1haWxMaXN0ID0gdGhpcy5zZWxlY3RlZHVzZXJzLm1hcChcclxuICAgICAgICAoZGF0YTogYW55KSA9PiBkYXRhLnVzZXJFbWFpbCxcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMucGF5bG9hZC5mcm9tRGF0ZSA9IGRheWpzKHRoaXMucGF5bG9hZC5mcm9tRGF0ZSkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKTtcclxuICAgIHRoaXMucGF5bG9hZC50b0RhdGUgPSBkYXlqcyh0aGlzLnBheWxvYWQudG9EYXRlKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5wYXlsb2FkKTtcclxuICAgIHRoaXMudHJheFNlcnZpY2VcclxuICAgICAgLnJlcG9ydFRhYmxlRXhwb3J0KHRoaXMucGF5bG9hZClcclxuICAgICAgPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0c3RvcmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZShcInN1Y2Nlc3NcIik7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmdldHN0b3JlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoXCJlcnJvclwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChcclxuICAgICAgICAgICAgYDxkaXY+PHNwYW4gY2xhc3M9XCJtZS04XCIgPiR7ZXJyPy5lcnJvcj8uZXJyb3I/LmVycm9yfTwvc3Bhbj48L2Rpdj5gLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgY3N2aGVpZ2h0ID0gJyc7XHJcbiAgZGF0ZWhlaWdodCgpIHtcclxuICAgIHRoaXMuY3N2aGVpZ2h0ID0gXCIzMDBweFwiXHJcbiAgfVxyXG59XHJcblxyXG5cclxuIiwiPGRpdiBjbGFzcz1cImNhcmQgZ3JvdXAtZGVsZXRlIHB5LTAgc2Nyb2xsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB5LTAgZC1mbGV4IGZsZXgtc3RhcnQgZmxleC1jb2x1bW4gcC05IFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJteS01XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzeW1ib2wgc3ltYm9sLTc1cHggc3ltYm9sLWNpcmNsZVwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0RBRjFGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRUFGOEZGXCIgc3Ryb2tlLXdpZHRoPVwiOFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zNyAzMVYzNUMzNyAzNS41MzA0IDM2Ljc4OTMgMzYuMDM5MSAzNi40MTQyIDM2LjQxNDJDMzYuMDM5MSAzNi43ODkzIDM1LjUzMDQgMzcgMzUgMzdIMjFDMjAuNDY5NiAzNyAxOS45NjA5IDM2Ljc4OTMgMTkuNTg1OCAzNi40MTQyQzE5LjIxMDcgMzYuMDM5MSAxOSAzNS41MzA0IDE5IDM1VjMxTTIzIDI2TDI4IDMxTTI4IDMxTDMzIDI2TTI4IDMxVjE5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxhIGNsYXNzPVwiZnMtNCB0ZXh0LWdyYXktODAwIHRleHQtaG92ZXItcHJpbWFyeSBmdy1ib2xkIG1iLTAgdGl0bGUgY3Vyc29yLXBvaW50ZXJcIj57e3R5cGV9fTwvYT5cclxuXHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJ0eXBlID09PSdFeHBvcnQgYXMgQ1NWJyB8fCAodHlwZSA9PT0nRXhwb3J0IGFzIFBERicgJiYgZXhwb3J0Z2FsbGVyeVBkZilcIiBjbGFzcz1cImZ3LW5vcm1hbCBtdC0yXCI+PHNwYW4gY2xhc3M9XCJkYXJrLWxpbmUxXCI+T25lIG9mIHlvdXIgdGVhbSBoYXNcclxuICAgICAgICAgICAgICAgIHJlcXVlc3RlZCBlZGl0IGFjY2VzcyB0byB5b3VyIHByb2plY3Q8L3NwYW4+IDxzcGFuIGNsYXNzPVwiZGFyay1saW5lIG1zLTFcIj5XZWJzaXRlIERlc2lnbi48L3NwYW4+PC9zcGFuPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlID09PSdFeHBvcnQgYXMgQ1NWJyB8fCAodHlwZSA9PT0nRXhwb3J0IGFzIFBERicgJiYgZXhwb3J0Z2FsbGVyeVBkZilcIiBjbGFzcz1cImNvbC1tZC0xMiBwb3NpdGlvbi1yZWxhdGl2ZSBtdC0zIGgtMzUwcHhcIj5cclxuICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJ0b3A6IDIlO1wiIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTQgXCIgI2RhdGVSYW5nZVBpY2tlcklucHV0XHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIm1pbi13aWR0aDogMjYwcHggIWltcG9ydGFudDsgei1pbmRleDogMTA1MCAhaW1wb3J0YW50O1wiIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWRcclxuICAgICAgICAgICAgICAgIFtkcm9wc109XCInZG93bidcIiBbb3BlbnNdPVwiJ3JpZ2h0J1wiIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCIgW2tlZXBDYWxlbmRhck9wZW5pbmdXaXRoUmFuZ2VdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbc2hvd0NhbmNlbF09XCJmYWxzZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRlUmFuZ2VcIiAoY2xpY2spPVwiZGF0ZWhlaWdodCgpXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIiAoZGF0ZXNVcGRhdGVkKT1cImRhdGVjaGFuZ2UoJGV2ZW50KVwiIFthdXRvQXBwbHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAoc3RhcnREYXRlQ2hhbmdlZCk9XCJvblN0YXJ0RGF0ZUNoYW5nZSgkZXZlbnQpXCIgW2lzQ3VzdG9tRGF0ZV09XCJpc0N1c3RvbURhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2xvY2FsZV09XCJ7IGZvcm1hdDogJ0RELU1NLVlZWVknLCBmaXJzdERheTogMSwgbW9udGhOYW1lczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10gfVwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZGF0ZXJhbmdlXCIgW3JlYWRvbmx5XT1cInRydWVcIiAvPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTggbWItNCBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhY2Vob2xkZXItb3ZlcmxheVwiICpuZ0lmPVwidGhpcy5wYXlsb2FkLmZpbHRlcnR5cGU9PT0nQ2x1c3RlcnMnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBTdG9yZXNcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLXN0b3Jlcy1zZWxlY3QgKm5nSWY9XCJ0aGlzLnBheWxvYWQuZmlsdGVydHlwZT09PSdDbHVzdGVycydcIiBbaXRlbXNdPVwic3RvcmVMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCIgW211bHRpXT1cInRydWVcIiBbc2VhcmNoRmllbGRdPVwiJ3N0b3JlTmFtZSdcIiBbaWRGaWVsZF09XCInc3RvcmVJZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWQpPVwib25TdG9yZVNlbGVjdCgkZXZlbnQpXCIgW3NlbGVjdGVkVmFsdWVzXT1cInNlbGVjdGVkU3RvcmVcIj48L2xpYi1zdG9yZXMtc2VsZWN0PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhY2Vob2xkZXItb3ZlcmxheVwiICpuZ0lmPVwidGhpcy5wYXlsb2FkLmZpbHRlcnR5cGU9PT0nVGVhbXMnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBVc2Vyc1xyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaWItc3RvcmVzLXNlbGVjdCAqbmdJZj1cInRoaXMucGF5bG9hZC5maWx0ZXJ0eXBlPT09J1RlYW1zJ1wiIFtpdGVtc109XCJ1c2VyTGlzdFwiIFtkaXNhYmxlZF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aV09XCJ0cnVlXCIgW3NlYXJjaEZpZWxkXT1cIid1c2VyTmFtZSdcIiBbaWRGaWVsZF09XCIndXNlck5hbWUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkKT1cIm9udXNlclNlbGVjdCgkZXZlbnQpXCIgW3NlbGVjdGVkVmFsdWVzXT1cInNlbGVjdGVkdXNlcnNcIj48L2xpYi1zdG9yZXMtc2VsZWN0PlxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwidHlwZSA9PT0nRXhwb3J0IGFzIENTVicgfHwgKHR5cGUgPT09J0V4cG9ydCBhcyBQREYnICYmIGV4cG9ydGdhbGxlcnlQZGYpXCIgW25nQ2xhc3NdPVwibWF4ZGF5c1JlYWNoZWQgPyAnZmxhZ2Nsb3VyJzonJ1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZGFyay1saW5lMSBmdy1ub3JtYWwgbXQtMlwiPkRhdGEgZG93bmxvYWRzIGFyZSBsaW1pdGVkIHRvIG9uZSBtb250aCBhdCBhIHRpbWUuPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwidHlwZSA9PT0nRXhwb3J0IGFzIFBERicgJiYgIWV4cG9ydGdhbGxlcnlQZGZcIiBjbGFzcz1cImRhcmstbGluZTEgZnctbm9ybWFsIG10LTJcIj5UaGlzIGJsb2cgcG9zdCBoYXMgYmVlbiBwdWJsaXNoZWQuIFRlYW1cclxuICAgICAgICAgICAgbWVtYmVycyB3aWxsIGJlIGFibGUgdG8gZWRpdCB0aGlzIHBvc3QgYW5kIHJlcHVibGlzaCBjaGFuZ2VzLjwvc3Bhbj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZT09PSdFeHBvcnQgYXMgUERGJyAmJiAhZXhwb3J0Z2FsbGVyeVBkZlwiIGNsYXNzPVwiY29sLW1kLTEyICBtdC0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCI+U2VsZWN0IGNoZWNrbGlzdDwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24+PHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExLjY2NTQgMS42NjYwMkg0Ljk5ODdDNC41NTY2NyAxLjY2NjAyIDQuMTMyNzUgMS44NDE2MSAzLjgyMDE5IDIuMTU0MTdDMy41MDc2MyAyLjQ2NjczIDMuMzMyMDMgMi44OTA2NSAzLjMzMjAzIDMuMzMyNjhWMTYuNjY2QzMuMzMyMDMgMTcuMTA4IDMuNTA3NjMgMTcuNTMyIDMuODIwMTkgMTcuODQ0NUM0LjEzMjc1IDE4LjE1NzEgNC41NTY2NyAxOC4zMzI3IDQuOTk4NyAxOC4zMzI3SDE0Ljk5ODdDMTUuNDQwNyAxOC4zMzI3IDE1Ljg2NDYgMTguMTU3MSAxNi4xNzcyIDE3Ljg0NDVDMTYuNDg5OCAxNy41MzIgMTYuNjY1NCAxNy4xMDggMTYuNjY1NCAxNi42NjZWNi42NjYwMk0xMS42NjU0IDEuNjY2MDJMMTYuNjY1NCA2LjY2NjAyTTExLjY2NTQgMS42NjYwMlY2LjY2NjAySDE2LjY2NTRNMTMuMzMyIDEwLjgzMjdINi42NjUzNk0xMy4zMzIgMTQuMTY2SDYuNjY1MzZNOC4zMzIwMyA3LjQ5OTM1SDYuNjY1MzZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+U3RvcmUgT3BlcmF0aW9uIGNoZWNrbGlzdDwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZT09PSdFeHBvcnQgYXMgUERGJyAmJiAhZXhwb3J0Z2FsbGVyeVBkZlwiIGNsYXNzPVwiY29sLW1kLTEyICBtdC0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCI+U2VsZWN0IFN0b3JlPC9sYWJlbD5cclxuICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbj48L29wdGlvbj5cclxuICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlPT09J0V4cG9ydCBhcyBQREYnICYmICFleHBvcnRnYWxsZXJ5UGRmXCIgY2xhc3M9XCJjb2wtbWQtMTIgcG9zaXRpb24tcmVsYXRpdmUgbXQtNVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBzdHlsZT1cInRvcDogMjAlO1wiIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTRcIiAjZGF0ZVJhbmdlUGlja2VySW5wdXRcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwibWluLXdpZHRoOiAyNjBweCAhaW1wb3J0YW50OyB6LWluZGV4OiAxMDUwICFpbXBvcnRhbnQ7XCIgdHlwZT1cInRleHRcIiBtYXRJbnB1dCBuZ3hEYXRlcmFuZ2VwaWNrZXJNZFxyXG4gICAgICAgICAgICAgICAgW2Ryb3BzXT1cIidkb3duJ1wiIFtzaW5nbGVEYXRlUGlja2VyXT1cInRydWVcIiBbb3BlbnNdPVwiJ3JpZ2h0J1wiIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgIFtrZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlXT1cInRydWVcIiBbc2hvd0NhbmNlbF09XCJmYWxzZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRGF0ZVJhbmdlXCIgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXHJcbiAgICAgICAgICAgICAgICAoZGF0ZXNVcGRhdGVkKT1cImRhdGVjaGFuZ2UoJGV2ZW50KVwiIFthdXRvQXBwbHldPVwidHJ1ZVwiIChzdGFydERhdGVDaGFuZ2VkKT1cIm9uU3RhcnREYXRlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgW2lzQ3VzdG9tRGF0ZV09XCJpc0N1c3RvbURhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2xvY2FsZV09XCJ7IGZvcm1hdDogJ0RELU1NLVlZWVknLCBmaXJzdERheTogMSwgbW9udGhOYW1lczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10gfVwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZGF0ZXJhbmdlXCIgW3JlYWRvbmx5XT1cInRydWVcIiAvPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi10aXRsZSBmdy1ub3JtYWwgbXQtMlwiPk9ubHkgMSBkYXkgZGF0YSBjYW4gYmUgZG93bmxvYWRlZDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZT09PSdFeHBvcnQgYXMgUFBUJ3x8dHlwZT09PSdFeHBvcnQgYXMgWklQJ1wiPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXdyYXAgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciByb3VuZGVkIG1pbi13LTIwMHB4IGN1cnNvci1wb2ludGVyIHB5LTMgcHgtNCBtZS02IG1iLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInByZXZpZXdUeXBlID09PSAnaW1hZ2UnID8gJ25hdi1saW5lLXRhYnMxJyA6ICdib3JkZXItZ3JheS0zMDAnXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3QoJ2ltYWdlJylcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJwcmV2aWV3VHlwZSA9PT0gJ2ltYWdlJ1wiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNSAyMUgxOUMyMC4xMDQ2IDIxIDIxIDIwLjEwNDYgMjEgMTlWNUMyMSAzLjg5NTQzIDIwLjEwNDYgMyAxOSAzSDVDMy44OTU0MyAzIDMgMy44OTU0MyAzIDVWMTlDMyAyMC4xMDQ2IDMuODk1NDMgMjEgNSAyMVpNNSAyMUwxNiAxMEwyMSAxNU0xMCA4LjVDMTAgOS4zMjg0MyA5LjMyODQzIDEwIDguNSAxMEM3LjY3MTU3IDEwIDcgOS4zMjg0MyA3IDguNUM3IDcuNjcxNTcgNy42NzE1NyA3IDguNSA3QzkuMzI4NDMgNyAxMCA3LjY3MTU3IDEwIDguNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJwcmV2aWV3VHlwZSA9PT0gJ3ZpZGVvJ1wiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNSAyMUgxOUMyMC4xMDQ2IDIxIDIxIDIwLjEwNDYgMjEgMTlWNUMyMSAzLjg5NTQzIDIwLjEwNDYgMyAxOSAzSDVDMy44OTU0MyAzIDMgMy44OTU0MyAzIDVWMTlDMyAyMC4xMDQ2IDMuODk1NDMgMjEgNSAyMVpNNSAyMUwxNiAxMEwyMSAxNU0xMCA4LjVDMTAgOS4zMjg0MyA5LjMyODQzIDEwIDguNSAxMEM3LjY3MTU3IDEwIDcgOS4zMjg0MyA3IDguNUM3IDcuNjcxNTcgNy42NzE1NyA3IDguNSA3QzkuMzI4NDMgNyAxMCA3LjY3MTU3IDEwIDguNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMxMDE4MjhcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJwcmV2aWV3VHlwZSA9PT0gJ2ltYWdlJyA/ICd0ZXh0LWJvcmRlci1wcmlhbXJ5JyA6ICd0ZXh0dmFsdWUnXCI+SW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciByb3VuZGVkIG1pbi13LTIwMHB4IGN1cnNvci1wb2ludGVyIHB5LTMgcHgtNCAgbWItM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwicHJldmlld1R5cGUgPT09ICd2aWRlbycgPyAnbmF2LWxpbmUtdGFiczEnIDogJ2JvcmRlci1ncmF5LTMwMCdcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdCgndmlkZW8nKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cInByZXZpZXdUeXBlID09PSAnaW1hZ2UnXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMiAyMkMxNy41MjI4IDIyIDIyIDE3LjUyMjggMjIgMTJDMjIgNi40NzcxNSAxNy41MjI4IDIgMTIgMkM2LjQ3NzE1IDIgMiA2LjQ3NzE1IDIgMTJDMiAxNy41MjI4IDYuNDc3MTUgMjIgMTIgMjJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMTAxODI4XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwIDhMMTYgMTJMMTAgMTZWOFpcIiBzdHJva2U9XCIjMTAxODI4XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJwcmV2aWV3VHlwZSA9PT0gJ3ZpZGVvJ1wiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIgMjJDMTcuNTIyOCAyMiAyMiAxNy41MjI4IDIyIDEyQzIyIDYuNDc3MTUgMTcuNTIyOCAyIDEyIDJDNi40NzcxNSAyIDIgNi40NzcxNSAyIDEyQzIgMTcuNTIyOCA2LjQ3NzE1IDIyIDEyIDIyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMCA4TDE2IDEyTDEwIDE2VjhaXCIgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwicHJldmlld1R5cGUgPT09ICd2aWRlbycgPyAndGV4dC1ib3JkZXItcHJpYW1yeScgOiAndGV4dHZhbHVlJ1wiPlZpZGVvPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIDxsYWJlbCBmb3I9XCJkcm9wZG93blwiIGNsYXNzPVwibS00IGZzLTRcIj5DaG9vc2UgYW4gb3B0aW9uOiA8L2xhYmVsPiAtLT5cclxuICAgICAgICAgICAgPCEtLSA8c2VsZWN0IGlkPVwiZHJvcGRvd25cIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwicHJldmlld1R5cGVcIiAoY2hhbmdlKT1cIm9uU2VsZWN0KCRldmVudClcIj5cclxuICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCInaW1hZ2UnXCI+SW1hZ2U8L29wdGlvbj5cclxuICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCIndmlkZW8nXCI+VmlkZW88L29wdGlvbj5cclxuICAgICAgICAgICAgPC9zZWxlY3Q+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlID09PSdFeHBvcnQgYXMgQ1NWJyB8fCAodHlwZSA9PT0nRXhwb3J0IGFzIFBERicgJiYgZXhwb3J0Z2FsbGVyeVBkZilcIiBjbGFzcz1cInJvdyB3LTEwMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLThcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IG10LTIgdGV4dC1lbmRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgcm9sZT1cImdyb3VwXCIgY2xhc3M9XCJkLWZsZXggbXQtMyBtYi0xNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy0xMDAgbWUtMlwiIChjbGljayk9XCJjYW5jZWwoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9XCJhbGVydC10b2FzdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctMTAwIG1zLTJcIiBbZGlzYWJsZWRdPVwibWF4ZGF5c1JlYWNoZWR8fGdldHN0b3JlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU3VibWl0KClcIj5Db25maXJtPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlICE9PSdFeHBvcnQgYXMgQ1NWJyAmJiAodHlwZSA9PT0nRXhwb3J0IGFzIFBERicgJiYgIWV4cG9ydGdhbGxlcnlQZGYpXCIgY2xhc3M9XCJtdC0yIHctMTAwIHRleHQtZW5kXCI+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IHJvbGU9XCJncm91cFwiIGNsYXNzPVwiZC1mbGV4IG10LTMgbWItMTVcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy0xMDAgbWUtMlwiIChjbGljayk9XCJjYW5jZWwoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD1cImFsZXJ0LXRvYXN0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdy0xMDAgbXMtMlwiIFtkaXNhYmxlZF09XCJtYXhkYXlzUmVhY2hlZHx8Z2V0c3RvcmVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblN1Ym1pdCgpXCI+Q29uZmlybTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==