@resolveio/client-lib-core 15.1.10 → 15.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/widgets/date-shortcut/date-shortcut.component.mjs +188 -87
- package/esm2020/lib/widgets/dialog/dialog.login.content.mjs +204 -38
- package/esm2020/lib/widgets/dialog/dialog.register.content.mjs +1 -3
- package/fesm2015/resolveio-client-lib-core.mjs +392 -127
- package/fesm2015/resolveio-client-lib-core.mjs.map +1 -1
- package/fesm2020/resolveio-client-lib-core.mjs +392 -127
- package/fesm2020/resolveio-client-lib-core.mjs.map +1 -1
- package/lib/widgets/date-shortcut/date-shortcut.component.d.ts +5 -1
- package/package.json +1 -1
|
@@ -12,6 +12,8 @@ export class DateShortcutComponent extends BaseComponent {
|
|
|
12
12
|
this._cd = _cd;
|
|
13
13
|
this.startDateObjChange = new EventEmitter();
|
|
14
14
|
this.endDateObjChange = new EventEmitter();
|
|
15
|
+
this.startDateObjFormChange = new EventEmitter();
|
|
16
|
+
this.endDateObjFormChange = new EventEmitter();
|
|
15
17
|
this.datesChanged = new EventEmitter();
|
|
16
18
|
this.shortcutValue = null;
|
|
17
19
|
this.shortcutValueChange = new EventEmitter();
|
|
@@ -26,100 +28,191 @@ export class DateShortcutComponent extends BaseComponent {
|
|
|
26
28
|
}
|
|
27
29
|
onSelectShortcut() {
|
|
28
30
|
if (this.shortcutValue) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
if (this.startDateObj && this.endDateObj) {
|
|
32
|
+
let startDate = moment(new Date(this.startDateObj['year'], this.startDateObj['month'] - 1, this.startDateObj['day'])).toDate();
|
|
33
|
+
let endDate = moment(new Date(this.endDateObj['year'], this.endDateObj['month'] - 1, this.endDateObj['day'])).toDate();
|
|
34
|
+
if (this.shortcutValue === 'Q1') {
|
|
35
|
+
startDate = moment().startOf('year').toDate();
|
|
36
|
+
endDate = moment().startOf('year').quarter(2).subtract(1, 'days').toDate();
|
|
37
|
+
}
|
|
38
|
+
else if (this.shortcutValue === 'Q2') {
|
|
39
|
+
startDate = moment().startOf('year').quarter(2).toDate();
|
|
40
|
+
endDate = moment().startOf('year').quarter(3).subtract(1, 'days').toDate();
|
|
41
|
+
}
|
|
42
|
+
else if (this.shortcutValue === 'Q3') {
|
|
43
|
+
startDate = moment().startOf('year').quarter(3).toDate();
|
|
44
|
+
endDate = moment().startOf('year').quarter(4).subtract(1, 'days').toDate();
|
|
45
|
+
}
|
|
46
|
+
else if (this.shortcutValue === 'Q4') {
|
|
47
|
+
startDate = moment().startOf('year').quarter(4).toDate();
|
|
48
|
+
endDate = moment().endOf('year').toDate();
|
|
49
|
+
}
|
|
50
|
+
else if (this.shortcutValue === 'Last Q1') {
|
|
51
|
+
startDate = moment().startOf('year').subtract(1, 'year').toDate();
|
|
52
|
+
endDate = moment().startOf('year').subtract(1, 'year').quarter(2).subtract(1, 'days').toDate();
|
|
53
|
+
}
|
|
54
|
+
else if (this.shortcutValue === 'Last Q2') {
|
|
55
|
+
startDate = moment().startOf('year').subtract(1, 'year').quarter(2).toDate();
|
|
56
|
+
endDate = moment().startOf('year').subtract(1, 'year').quarter(3).subtract(1, 'days').toDate();
|
|
57
|
+
}
|
|
58
|
+
else if (this.shortcutValue === 'Last Q3') {
|
|
59
|
+
startDate = moment().startOf('year').subtract(1, 'year').quarter(3).toDate();
|
|
60
|
+
endDate = moment().startOf('year').subtract(1, 'year').quarter(4).subtract(1, 'days').toDate();
|
|
61
|
+
}
|
|
62
|
+
else if (this.shortcutValue === 'Last Q4') {
|
|
63
|
+
startDate = moment().startOf('year').subtract(1, 'year').quarter(4).toDate();
|
|
64
|
+
endDate = moment().endOf('year').subtract(1, 'year').toDate();
|
|
65
|
+
}
|
|
66
|
+
else if (this.shortcutValue === 'Today') {
|
|
67
|
+
startDate = moment().startOf('day').toDate();
|
|
68
|
+
endDate = new Date();
|
|
69
|
+
}
|
|
70
|
+
else if (this.shortcutValue === 'Yesterday') {
|
|
71
|
+
startDate = moment().subtract(1, 'days').startOf('day').toDate();
|
|
72
|
+
endDate = moment().subtract(1, 'days').endOf('day').toDate();
|
|
73
|
+
}
|
|
74
|
+
else if (this.shortcutValue === 'Week') {
|
|
75
|
+
startDate = moment().startOf('isoWeek').toDate();
|
|
76
|
+
endDate = new Date();
|
|
77
|
+
}
|
|
78
|
+
else if (this.shortcutValue === 'Last Week') {
|
|
79
|
+
endDate = moment().startOf('isoWeek').subtract(1, 'days').toDate();
|
|
80
|
+
startDate = moment(endDate).startOf('isoWeek').toDate();
|
|
81
|
+
}
|
|
82
|
+
else if (this.shortcutValue === 'Month') {
|
|
83
|
+
startDate = moment().startOf('month').toDate();
|
|
84
|
+
endDate = new Date();
|
|
85
|
+
}
|
|
86
|
+
else if (this.shortcutValue === 'Last Month') {
|
|
87
|
+
endDate = moment().startOf('month').subtract(1, 'days').endOf('day').toDate();
|
|
88
|
+
startDate = moment(endDate).startOf('month').toDate();
|
|
89
|
+
}
|
|
90
|
+
else if (this.shortcutValue === 'Last 30 Days') {
|
|
91
|
+
endDate = new Date();
|
|
92
|
+
startDate = moment().subtract(30, 'days').startOf('day').toDate();
|
|
93
|
+
}
|
|
94
|
+
else if (this.shortcutValue === 'Quarter') {
|
|
95
|
+
startDate = moment().startOf('year').quarter(moment().quarter()).toDate();
|
|
96
|
+
endDate = new Date();
|
|
97
|
+
}
|
|
98
|
+
else if (this.shortcutValue === 'Last Quarter') {
|
|
99
|
+
endDate = moment().startOf('year').quarter(moment().quarter()).subtract(1, 'days').endOf('day').toDate();
|
|
100
|
+
startDate = moment(endDate).startOf('quarter').toDate();
|
|
101
|
+
}
|
|
102
|
+
else if (this.shortcutValue === 'Year') {
|
|
103
|
+
startDate = moment().startOf('year').toDate();
|
|
104
|
+
endDate = new Date();
|
|
105
|
+
}
|
|
106
|
+
else if (this.shortcutValue === 'Last Year') {
|
|
107
|
+
endDate = moment().startOf('year').subtract(1, 'days').endOf('day').toDate();
|
|
108
|
+
startDate = moment(endDate).startOf('year').toDate();
|
|
109
|
+
}
|
|
110
|
+
else if (this.shortcutValue === 'All') {
|
|
111
|
+
startDate = new Date(2017, 0, 1, 0, 0, 0, 0);
|
|
112
|
+
endDate = new Date();
|
|
113
|
+
}
|
|
114
|
+
this.startDateObj = { year: startDate.getFullYear(), month: startDate.getMonth() + 1, day: startDate.getDate() };
|
|
115
|
+
this.endDateObj = { year: endDate.getFullYear(), month: endDate.getMonth() + 1, day: endDate.getDate() };
|
|
116
|
+
this.startDateObjChange.emit(this.startDateObj);
|
|
117
|
+
this.endDateObjChange.emit(this.endDateObj);
|
|
118
|
+
this.datesChanged.emit([this.startDateObj, this.endDateObj]);
|
|
34
119
|
}
|
|
35
|
-
else if (this.
|
|
36
|
-
startDate = moment(
|
|
37
|
-
endDate = moment(
|
|
120
|
+
else if (this.startDateObjForm && this.endDateObjForm) {
|
|
121
|
+
let startDate = moment(new Date(this.startDateObjForm.value['year'], this.startDateObj.value['month'] - 1, this.startDateObj.value['day'])).toDate();
|
|
122
|
+
let endDate = moment(new Date(this.endDateObj.value['year'], this.endDateObj.value['month'] - 1, this.endDateObj.value['day'])).toDate();
|
|
123
|
+
if (this.shortcutValue === 'Q1') {
|
|
124
|
+
startDate = moment().startOf('year').toDate();
|
|
125
|
+
endDate = moment().startOf('year').quarter(2).subtract(1, 'days').toDate();
|
|
126
|
+
}
|
|
127
|
+
else if (this.shortcutValue === 'Q2') {
|
|
128
|
+
startDate = moment().startOf('year').quarter(2).toDate();
|
|
129
|
+
endDate = moment().startOf('year').quarter(3).subtract(1, 'days').toDate();
|
|
130
|
+
}
|
|
131
|
+
else if (this.shortcutValue === 'Q3') {
|
|
132
|
+
startDate = moment().startOf('year').quarter(3).toDate();
|
|
133
|
+
endDate = moment().startOf('year').quarter(4).subtract(1, 'days').toDate();
|
|
134
|
+
}
|
|
135
|
+
else if (this.shortcutValue === 'Q4') {
|
|
136
|
+
startDate = moment().startOf('year').quarter(4).toDate();
|
|
137
|
+
endDate = moment().endOf('year').toDate();
|
|
138
|
+
}
|
|
139
|
+
else if (this.shortcutValue === 'Last Q1') {
|
|
140
|
+
startDate = moment().startOf('year').subtract(1, 'year').toDate();
|
|
141
|
+
endDate = moment().startOf('year').subtract(1, 'year').quarter(2).subtract(1, 'days').toDate();
|
|
142
|
+
}
|
|
143
|
+
else if (this.shortcutValue === 'Last Q2') {
|
|
144
|
+
startDate = moment().startOf('year').subtract(1, 'year').quarter(2).toDate();
|
|
145
|
+
endDate = moment().startOf('year').subtract(1, 'year').quarter(3).subtract(1, 'days').toDate();
|
|
146
|
+
}
|
|
147
|
+
else if (this.shortcutValue === 'Last Q3') {
|
|
148
|
+
startDate = moment().startOf('year').subtract(1, 'year').quarter(3).toDate();
|
|
149
|
+
endDate = moment().startOf('year').subtract(1, 'year').quarter(4).subtract(1, 'days').toDate();
|
|
150
|
+
}
|
|
151
|
+
else if (this.shortcutValue === 'Last Q4') {
|
|
152
|
+
startDate = moment().startOf('year').subtract(1, 'year').quarter(4).toDate();
|
|
153
|
+
endDate = moment().endOf('year').subtract(1, 'year').toDate();
|
|
154
|
+
}
|
|
155
|
+
else if (this.shortcutValue === 'Today') {
|
|
156
|
+
startDate = moment().startOf('day').toDate();
|
|
157
|
+
endDate = new Date();
|
|
158
|
+
}
|
|
159
|
+
else if (this.shortcutValue === 'Yesterday') {
|
|
160
|
+
startDate = moment().subtract(1, 'days').startOf('day').toDate();
|
|
161
|
+
endDate = moment().subtract(1, 'days').endOf('day').toDate();
|
|
162
|
+
}
|
|
163
|
+
else if (this.shortcutValue === 'Week') {
|
|
164
|
+
startDate = moment().startOf('isoWeek').toDate();
|
|
165
|
+
endDate = new Date();
|
|
166
|
+
}
|
|
167
|
+
else if (this.shortcutValue === 'Last Week') {
|
|
168
|
+
endDate = moment().startOf('isoWeek').subtract(1, 'days').toDate();
|
|
169
|
+
startDate = moment(endDate).startOf('isoWeek').toDate();
|
|
170
|
+
}
|
|
171
|
+
else if (this.shortcutValue === 'Month') {
|
|
172
|
+
startDate = moment().startOf('month').toDate();
|
|
173
|
+
endDate = new Date();
|
|
174
|
+
}
|
|
175
|
+
else if (this.shortcutValue === 'Last Month') {
|
|
176
|
+
endDate = moment().startOf('month').subtract(1, 'days').endOf('day').toDate();
|
|
177
|
+
startDate = moment(endDate).startOf('month').toDate();
|
|
178
|
+
}
|
|
179
|
+
else if (this.shortcutValue === 'Last 30 Days') {
|
|
180
|
+
endDate = new Date();
|
|
181
|
+
startDate = moment().subtract(30, 'days').startOf('day').toDate();
|
|
182
|
+
}
|
|
183
|
+
else if (this.shortcutValue === 'Quarter') {
|
|
184
|
+
startDate = moment().startOf('year').quarter(moment().quarter()).toDate();
|
|
185
|
+
endDate = new Date();
|
|
186
|
+
}
|
|
187
|
+
else if (this.shortcutValue === 'Last Quarter') {
|
|
188
|
+
endDate = moment().startOf('year').quarter(moment().quarter()).subtract(1, 'days').endOf('day').toDate();
|
|
189
|
+
startDate = moment(endDate).startOf('quarter').toDate();
|
|
190
|
+
}
|
|
191
|
+
else if (this.shortcutValue === 'Year') {
|
|
192
|
+
startDate = moment().startOf('year').toDate();
|
|
193
|
+
endDate = new Date();
|
|
194
|
+
}
|
|
195
|
+
else if (this.shortcutValue === 'Last Year') {
|
|
196
|
+
endDate = moment().startOf('year').subtract(1, 'days').endOf('day').toDate();
|
|
197
|
+
startDate = moment(endDate).startOf('year').toDate();
|
|
198
|
+
}
|
|
199
|
+
else if (this.shortcutValue === 'All') {
|
|
200
|
+
startDate = new Date(2017, 0, 1, 0, 0, 0, 0);
|
|
201
|
+
endDate = new Date();
|
|
202
|
+
}
|
|
203
|
+
this.startDateObjForm.setValue({ year: startDate.getFullYear(), month: startDate.getMonth() + 1, day: startDate.getDate() });
|
|
204
|
+
this.endDateObjForm.setValue({ year: endDate.getFullYear(), month: endDate.getMonth() + 1, day: endDate.getDate() });
|
|
205
|
+
this.startDateObjFormChange.emit(this.startDateObjForm);
|
|
206
|
+
this.endDateObjFormChange.emit(this.endDateObjForm);
|
|
207
|
+
this.datesChanged.emit([this.startDateObjForm, this.endDateObjForm]);
|
|
38
208
|
}
|
|
39
|
-
else if (this.shortcutValue === 'Q3') {
|
|
40
|
-
startDate = moment().startOf('year').quarter(3).toDate();
|
|
41
|
-
endDate = moment().startOf('year').quarter(4).subtract(1, 'days').toDate();
|
|
42
|
-
}
|
|
43
|
-
else if (this.shortcutValue === 'Q4') {
|
|
44
|
-
startDate = moment().startOf('year').quarter(4).toDate();
|
|
45
|
-
endDate = moment().endOf('year').toDate();
|
|
46
|
-
}
|
|
47
|
-
else if (this.shortcutValue === 'Last Q1') {
|
|
48
|
-
startDate = moment().startOf('year').subtract(1, 'year').toDate();
|
|
49
|
-
endDate = moment().startOf('year').subtract(1, 'year').quarter(2).subtract(1, 'days').toDate();
|
|
50
|
-
}
|
|
51
|
-
else if (this.shortcutValue === 'Last Q2') {
|
|
52
|
-
startDate = moment().startOf('year').subtract(1, 'year').quarter(2).toDate();
|
|
53
|
-
endDate = moment().startOf('year').subtract(1, 'year').quarter(3).subtract(1, 'days').toDate();
|
|
54
|
-
}
|
|
55
|
-
else if (this.shortcutValue === 'Last Q3') {
|
|
56
|
-
startDate = moment().startOf('year').subtract(1, 'year').quarter(3).toDate();
|
|
57
|
-
endDate = moment().startOf('year').subtract(1, 'year').quarter(4).subtract(1, 'days').toDate();
|
|
58
|
-
}
|
|
59
|
-
else if (this.shortcutValue === 'Last Q4') {
|
|
60
|
-
startDate = moment().startOf('year').subtract(1, 'year').quarter(4).toDate();
|
|
61
|
-
endDate = moment().endOf('year').subtract(1, 'year').toDate();
|
|
62
|
-
}
|
|
63
|
-
else if (this.shortcutValue === 'Today') {
|
|
64
|
-
startDate = moment().startOf('day').toDate();
|
|
65
|
-
endDate = new Date();
|
|
66
|
-
}
|
|
67
|
-
else if (this.shortcutValue === 'Yesterday') {
|
|
68
|
-
startDate = moment().subtract(1, 'days').startOf('day').toDate();
|
|
69
|
-
endDate = moment().subtract(1, 'days').endOf('day').toDate();
|
|
70
|
-
}
|
|
71
|
-
else if (this.shortcutValue === 'Week') {
|
|
72
|
-
startDate = moment().startOf('isoWeek').toDate();
|
|
73
|
-
endDate = new Date();
|
|
74
|
-
}
|
|
75
|
-
else if (this.shortcutValue === 'Last Week') {
|
|
76
|
-
endDate = moment().startOf('isoWeek').subtract(1, 'days').toDate();
|
|
77
|
-
startDate = moment(endDate).startOf('isoWeek').toDate();
|
|
78
|
-
}
|
|
79
|
-
else if (this.shortcutValue === 'Month') {
|
|
80
|
-
startDate = moment().startOf('month').toDate();
|
|
81
|
-
endDate = new Date();
|
|
82
|
-
}
|
|
83
|
-
else if (this.shortcutValue === 'Last Month') {
|
|
84
|
-
endDate = moment().startOf('month').subtract(1, 'days').endOf('day').toDate();
|
|
85
|
-
startDate = moment(endDate).startOf('month').toDate();
|
|
86
|
-
}
|
|
87
|
-
else if (this.shortcutValue === 'Last 30 Days') {
|
|
88
|
-
endDate = new Date();
|
|
89
|
-
startDate = moment().subtract(30, 'days').startOf('day').toDate();
|
|
90
|
-
}
|
|
91
|
-
else if (this.shortcutValue === 'Quarter') {
|
|
92
|
-
startDate = moment().startOf('year').quarter(moment().quarter()).toDate();
|
|
93
|
-
endDate = new Date();
|
|
94
|
-
}
|
|
95
|
-
else if (this.shortcutValue === 'Last Quarter') {
|
|
96
|
-
endDate = moment().startOf('year').quarter(moment().quarter()).subtract(1, 'days').endOf('day').toDate();
|
|
97
|
-
startDate = moment(endDate).startOf('quarter').toDate();
|
|
98
|
-
}
|
|
99
|
-
else if (this.shortcutValue === 'Year') {
|
|
100
|
-
startDate = moment().startOf('year').toDate();
|
|
101
|
-
endDate = new Date();
|
|
102
|
-
}
|
|
103
|
-
else if (this.shortcutValue === 'Last Year') {
|
|
104
|
-
endDate = moment().startOf('year').subtract(1, 'days').endOf('day').toDate();
|
|
105
|
-
startDate = moment(endDate).startOf('year').toDate();
|
|
106
|
-
}
|
|
107
|
-
else if (this.shortcutValue === 'All') {
|
|
108
|
-
startDate = new Date(2017, 0, 1, 0, 0, 0, 0);
|
|
109
|
-
endDate = new Date();
|
|
110
|
-
}
|
|
111
|
-
this.startDateObj = { year: startDate.getFullYear(), month: startDate.getMonth() + 1, day: startDate.getDate() };
|
|
112
|
-
this.endDateObj = { year: endDate.getFullYear(), month: endDate.getMonth() + 1, day: endDate.getDate() };
|
|
113
|
-
this.startDateObjChange.emit(this.startDateObj);
|
|
114
|
-
this.endDateObjChange.emit(this.endDateObj);
|
|
115
|
-
this.datesChanged.emit([this.startDateObj, this.endDateObj]);
|
|
116
209
|
this.shortcutValueChange.emit(this.shortcutValue);
|
|
117
210
|
}
|
|
118
211
|
this._cd.detectChanges();
|
|
119
212
|
}
|
|
120
213
|
}
|
|
121
214
|
DateShortcutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DateShortcutComponent, deps: [{ token: i1.ProviderService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
122
|
-
DateShortcutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DateShortcutComponent, selector: "date-shortcut", inputs: { startDateObj: "startDateObj", endDateObj: "endDateObj", shortcutValue: "shortcutValue" }, outputs: { startDateObjChange: "startDateObjChange", endDateObjChange: "endDateObjChange", datesChanged: "datesChanged", shortcutValueChange: "shortcutValueChange" }, providers: [ProviderService], usesInheritance: true, ngImport: i0, template: `
|
|
215
|
+
DateShortcutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DateShortcutComponent, selector: "date-shortcut", inputs: { startDateObj: "startDateObj", endDateObj: "endDateObj", startDateObjForm: "startDateObjForm", endDateObjForm: "endDateObjForm", shortcutValue: "shortcutValue" }, outputs: { startDateObjChange: "startDateObjChange", endDateObjChange: "endDateObjChange", startDateObjFormChange: "startDateObjFormChange", endDateObjFormChange: "endDateObjFormChange", datesChanged: "datesChanged", shortcutValueChange: "shortcutValueChange" }, providers: [ProviderService], usesInheritance: true, ngImport: i0, template: `
|
|
123
216
|
<label class="form-control-label">Date Shortcuts</label>
|
|
124
217
|
<ng-select [(ngModel)]="shortcutValue" (change)="onSelectShortcut()" placeholder="Select Shortcut" [clearable]="false">
|
|
125
218
|
<ng-option value="Today">Today</ng-option>
|
|
@@ -180,10 +273,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
180
273
|
type: Input
|
|
181
274
|
}], endDateObj: [{
|
|
182
275
|
type: Input
|
|
276
|
+
}], startDateObjForm: [{
|
|
277
|
+
type: Input
|
|
278
|
+
}], endDateObjForm: [{
|
|
279
|
+
type: Input
|
|
183
280
|
}], startDateObjChange: [{
|
|
184
281
|
type: Output
|
|
185
282
|
}], endDateObjChange: [{
|
|
186
283
|
type: Output
|
|
284
|
+
}], startDateObjFormChange: [{
|
|
285
|
+
type: Output
|
|
286
|
+
}], endDateObjFormChange: [{
|
|
287
|
+
type: Output
|
|
187
288
|
}], datesChanged: [{
|
|
188
289
|
type: Output
|
|
189
290
|
}], shortcutValue: [{
|
|
@@ -191,4 +292,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
191
292
|
}], shortcutValueChange: [{
|
|
192
293
|
type: Output
|
|
193
294
|
}] } });
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1zaG9ydGN1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvd2lkZ2V0cy9kYXRlLXNob3J0Y3V0L2RhdGUtc2hvcnRjdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDM0gsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBaUN2RSxNQUFNLE9BQU8scUJBQXNCLFNBQVEsYUFBYTtJQVN2RCxZQUFvQixTQUEwQixFQUFVLEdBQXNCO1FBQzdFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQURFLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFOcEUsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNoRCxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzlDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuQyxrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNwQix3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBSTNELENBQUM7SUFFRCxRQUFRO1FBQ1AsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELEtBQUs7UUFDSixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVsRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEs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O2dCQUNFLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksbUJBQW1CO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbmltcG9ydCB7IFByb3ZpZGVyU2VydmljZSwgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Jlc29sdmVpby1jbGFzcyc7XG5cbkBDb21wb25lbnQoe1xuXHRwcm92aWRlcnM6IFtQcm92aWRlclNlcnZpY2VdLFxuXHRzZWxlY3RvcjogJ2RhdGUtc2hvcnRjdXQnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxsYWJlbCBjbGFzcz1cImZvcm0tY29udHJvbC1sYWJlbFwiPkRhdGUgU2hvcnRjdXRzPC9sYWJlbD5cblx0XHQ8bmctc2VsZWN0IFsobmdNb2RlbCldPVwic2hvcnRjdXRWYWx1ZVwiIChjaGFuZ2UpPVwib25TZWxlY3RTaG9ydGN1dCgpXCIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgU2hvcnRjdXRcIiBbY2xlYXJhYmxlXT1cImZhbHNlXCI+XG5cdFx0XHQ8bmctb3B0aW9uIHZhbHVlPVwiVG9kYXlcIj5Ub2RheTwvbmctb3B0aW9uPlxuXHRcdFx0PG5nLW9wdGlvbiB2YWx1ZT1cIlllc3RlcmRheVwiPlllc3RlcmRheTwvbmctb3B0aW9uPlxuXHRcdFx0PG5nLW9wdGlvbiB2YWx1ZT1cIldlZWtcIj5UaGlzIFdlZWs8L25nLW9wdGlvbj5cblx0XHRcdDxuZy1vcHRpb24gdmFsdWU9XCJMYXN0IFdlZWtcIj5MYXN0IFdlZWs8L25nLW9wdGlvbj5cblx0XHRcdDxuZy1vcHRpb24gdmFsdWU9XCJNb250aFwiPlRoaXMgTW9udGg8L25nLW9wdGlvbj5cblx0XHRcdDxuZy1vcHRpb24gdmFsdWU9XCJMYXN0IE1vbnRoXCI+TGFzdCBNb250aDwvbmctb3B0aW9uPlxuXHRcdFx0PG5nLW9wdGlvbiB2YWx1ZT1cIkxhc3QgMzAgRGF5c1wiPkxhc3QgMzAgRGF5czwvbmctb3B0aW9uPlxuXHRcdFx0PG5nLW9wdGlvbiB2YWx1ZT1cIlF1YXJ0ZXJcIj5UaGlzIFF1YXJ0ZXI8L25nLW9wdGlvbj5cblx0XHRcdDxuZy1vcHRpb24gdmFsdWU9XCJMYXN0IFF1YXJ0ZXJcIj5MYXN0IFF1YXJ0ZXI8L25nLW9wdGlvbj5cblx0XHRcdDxuZy1vcHRpb24gdmFsdWU9XCJZZWFyXCI+VGhpcyBZZWFyPC9uZy1vcHRpb24+XG5cdFx0XHQ8bmctb3B0aW9uIHZhbHVlPVwiTGFzdCBZZWFyXCI+TGFzdCBZZWFyPC9uZy1vcHRpb24+XG5cdFx0XHQ8bmctb3B0aW9uIHZhbHVlPVwiUTFcIj5RMTwvbmctb3B0aW9uPlxuXHRcdFx0PG5nLW9wdGlvbiB2YWx1ZT1cIlEyXCI+UTI8L25nLW9wdGlvbj5cblx0XHRcdDxuZy1vcHRpb24gdmFsdWU9XCJRM1wiPlEzPC9uZy1vcHRpb24+XG5cdFx0XHQ8bmctb3B0aW9uIHZhbHVlPVwiUTRcIj5RNDwvbmctb3B0aW9uPlxuXHRcdFx0PG5nLW9wdGlvbiB2YWx1ZT1cIkxhc3QgUTFcIj5MYXN0IFExPC9uZy1vcHRpb24+XG5cdFx0XHQ8bmctb3B0aW9uIHZhbHVlPVwiTGFzdCBRMlwiPkxhc3QgUTI8L25nLW9wdGlvbj5cblx0XHRcdDxuZy1vcHRpb24gdmFsdWU9XCJMYXN0IFEzXCI+TGFzdCBRMzwvbmctb3B0aW9uPlxuXHRcdFx0PG5nLW9wdGlvbiB2YWx1ZT1cIkxhc3QgUTRcIj5MYXN0IFE0PC9uZy1vcHRpb24+XG5cdFx0XHQ8bmctb3B0aW9uIHZhbHVlPVwiQWxsXCI+QWxsPC9uZy1vcHRpb24+XG5cdFx0PC9uZy1zZWxlY3Q+XG5cdGAsXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuXG5leHBvcnQgY2xhc3MgRGF0ZVNob3J0Y3V0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7IFxuXHRASW5wdXQoKSBzdGFydERhdGVPYmo7XG5cdEBJbnB1dCgpIGVuZERhdGVPYmo7XG5cdEBPdXRwdXQoKSBzdGFydERhdGVPYmpDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE9iamVjdD4oKTtcblx0QE91dHB1dCgpIGVuZERhdGVPYmpDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE9iamVjdD4oKTtcblx0QE91dHB1dCgpIGRhdGVzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblx0QElucHV0KCkgc2hvcnRjdXRWYWx1ZSA9IG51bGw7XG5cdEBPdXRwdXQoKSBzaG9ydGN1dFZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTdHJpbmc+KCk7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfc2VydmljZXM6IFByb3ZpZGVyU2VydmljZSwgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XG5cdFx0c3VwZXIoX3NlcnZpY2VzKTtcblx0fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMub25TZWxlY3RTaG9ydGN1dCgpO1xuXHR9XG5cblx0cmVzZXQoKSB7XG5cdFx0dGhpcy5zaG9ydGN1dFZhbHVlID0gbnVsbDtcblx0XHR0aGlzLnNob3J0Y3V0VmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnNob3J0Y3V0VmFsdWUpO1xuXG5cdFx0dGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuXHR9XG5cblx0b25TZWxlY3RTaG9ydGN1dCgpIHtcblx0XHRpZiAodGhpcy5zaG9ydGN1dFZhbHVlKSB7XG5cdFx0XHRsZXQgc3RhcnREYXRlID0gbW9tZW50KG5ldyBEYXRlKHRoaXMuc3RhcnREYXRlT2JqWyd5ZWFyJ10sIHRoaXMuc3RhcnREYXRlT2JqWydtb250aCddIC0gMSwgdGhpcy5zdGFydERhdGVPYmpbJ2RheSddKSkudG9EYXRlKCk7XG5cdFx0XHRsZXQgZW5kRGF0ZSA9IG1vbWVudChuZXcgRGF0ZSh0aGlzLmVuZERhdGVPYmpbJ3llYXInXSwgdGhpcy5lbmREYXRlT2JqWydtb250aCddIC0gMSwgdGhpcy5lbmREYXRlT2JqWydkYXknXSkpLnRvRGF0ZSgpO1xuXG5cdFx0XHRpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnUTEnKSB7XG5cdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS50b0RhdGUoKTtcblx0XHRcdFx0ZW5kRGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS5xdWFydGVyKDIpLnN1YnRyYWN0KDEsICdkYXlzJykudG9EYXRlKCk7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdRMicpIHtcblx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnF1YXJ0ZXIoMikudG9EYXRlKCk7XG5cdFx0XHRcdGVuZERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykucXVhcnRlcigzKS5zdWJ0cmFjdCgxLCAnZGF5cycpLnRvRGF0ZSgpO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnUTMnKSB7XG5cdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS5xdWFydGVyKDMpLnRvRGF0ZSgpO1xuXHRcdFx0XHRlbmREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnF1YXJ0ZXIoNCkuc3VidHJhY3QoMSwgJ2RheXMnKS50b0RhdGUoKTtcblx0XHRcdH1cblx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ1E0Jykge1xuXHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykucXVhcnRlcig0KS50b0RhdGUoKTtcblx0XHRcdFx0ZW5kRGF0ZSA9IG1vbWVudCgpLmVuZE9mKCd5ZWFyJykudG9EYXRlKCk7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdMYXN0IFExJykge1xuXHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykuc3VidHJhY3QoMSwgJ3llYXInKS50b0RhdGUoKTtcblx0XHRcdFx0ZW5kRGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS5zdWJ0cmFjdCgxLCAneWVhcicpLnF1YXJ0ZXIoMikuc3VidHJhY3QoMSwgJ2RheXMnKS50b0RhdGUoKTtcblx0XHRcdH1cblx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ0xhc3QgUTInKSB7XG5cdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS5zdWJ0cmFjdCgxLCAneWVhcicpLnF1YXJ0ZXIoMikudG9EYXRlKCk7XG5cdFx0XHRcdGVuZERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykuc3VidHJhY3QoMSwgJ3llYXInKS5xdWFydGVyKDMpLnN1YnRyYWN0KDEsICdkYXlzJykudG9EYXRlKCk7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdMYXN0IFEzJykge1xuXHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykuc3VidHJhY3QoMSwgJ3llYXInKS5xdWFydGVyKDMpLnRvRGF0ZSgpO1xuXHRcdFx0XHRlbmREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnN1YnRyYWN0KDEsICd5ZWFyJykucXVhcnRlcig0KS5zdWJ0cmFjdCgxLCAnZGF5cycpLnRvRGF0ZSgpO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnTGFzdCBRNCcpIHtcblx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnN1YnRyYWN0KDEsICd5ZWFyJykucXVhcnRlcig0KS50b0RhdGUoKTtcblx0XHRcdFx0ZW5kRGF0ZSA9IG1vbWVudCgpLmVuZE9mKCd5ZWFyJykuc3VidHJhY3QoMSwgJ3llYXInKS50b0RhdGUoKTtcblx0XHRcdH1cblx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ1RvZGF5Jykge1xuXHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCdkYXknKS50b0RhdGUoKTtcblx0XHRcdFx0ZW5kRGF0ZSA9IG5ldyBEYXRlKCk7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdZZXN0ZXJkYXknKSB7XG5cdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN1YnRyYWN0KDEsICdkYXlzJykuc3RhcnRPZignZGF5JykudG9EYXRlKCk7XG5cdFx0XHRcdGVuZERhdGUgPSBtb21lbnQoKS5zdWJ0cmFjdCgxLCAnZGF5cycpLmVuZE9mKCdkYXknKS50b0RhdGUoKTtcblx0XHRcdH1cblx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ1dlZWsnKSB7XG5cdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ2lzb1dlZWsnKS50b0RhdGUoKTtcblx0XHRcdFx0ZW5kRGF0ZSA9IG5ldyBEYXRlKCk7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdMYXN0IFdlZWsnKSB7XG5cdFx0XHRcdGVuZERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCdpc29XZWVrJykuc3VidHJhY3QoMSwgJ2RheXMnKS50b0RhdGUoKTtcblx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KGVuZERhdGUpLnN0YXJ0T2YoJ2lzb1dlZWsnKS50b0RhdGUoKTtcblx0XHRcdH1cblx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ01vbnRoJykge1xuXHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCdtb250aCcpLnRvRGF0ZSgpO1xuXHRcdFx0XHRlbmREYXRlID0gbmV3IERhdGUoKTtcblx0XHRcdH1cblx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ0xhc3QgTW9udGgnKSB7XG5cdFx0XHRcdGVuZERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCdtb250aCcpLnN1YnRyYWN0KDEsICdkYXlzJykuZW5kT2YoJ2RheScpLnRvRGF0ZSgpO1xuXHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoZW5kRGF0ZSkuc3RhcnRPZignbW9udGgnKS50b0RhdGUoKTtcblx0XHRcdH1cblx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ0xhc3QgMzAgRGF5cycpIHtcblx0XHRcdFx0ZW5kRGF0ZSA9IG5ldyBEYXRlKCk7XG5cdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN1YnRyYWN0KDMwLCAnZGF5cycpLnN0YXJ0T2YoJ2RheScpLnRvRGF0ZSgpO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnUXVhcnRlcicpIHtcblx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnF1YXJ0ZXIobW9tZW50KCkucXVhcnRlcigpKS50b0RhdGUoKTtcblx0XHRcdFx0ZW5kRGF0ZSA9IG5ldyBEYXRlKCk7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdMYXN0IFF1YXJ0ZXInKSB7XG5cdFx0XHRcdGVuZERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykucXVhcnRlcihtb21lbnQoKS5xdWFydGVyKCkpLnN1YnRyYWN0KDEsICdkYXlzJykuZW5kT2YoJ2RheScpLnRvRGF0ZSgpO1xuXHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoZW5kRGF0ZSkuc3RhcnRPZigncXVhcnRlcicpLnRvRGF0ZSgpO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnWWVhcicpIHtcblx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnRvRGF0ZSgpO1xuXHRcdFx0XHRlbmREYXRlID0gbmV3IERhdGUoKTtcblx0XHRcdH1cblx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ0xhc3QgWWVhcicpIHtcblx0XHRcdFx0ZW5kRGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS5zdWJ0cmFjdCgxLCAnZGF5cycpLmVuZE9mKCdkYXknKS50b0RhdGUoKTtcblx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KGVuZERhdGUpLnN0YXJ0T2YoJ3llYXInKS50b0RhdGUoKTtcblx0XHRcdH1cblx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ0FsbCcpIHtcblx0XHRcdFx0c3RhcnREYXRlID0gbmV3IERhdGUoMjAxNywgMCwgMSwgMCwgMCwgMCwgMCk7XG5cdFx0XHRcdGVuZERhdGUgPSBuZXcgRGF0ZSgpO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnN0YXJ0RGF0ZU9iaiA9IHt5ZWFyOiBzdGFydERhdGUuZ2V0RnVsbFllYXIoKSwgbW9udGg6IHN0YXJ0RGF0ZS5nZXRNb250aCgpICsgMSwgZGF5OiBzdGFydERhdGUuZ2V0RGF0ZSgpfTtcblx0XHRcdHRoaXMuZW5kRGF0ZU9iaiA9IHt5ZWFyOiBlbmREYXRlLmdldEZ1bGxZZWFyKCksIG1vbnRoOiBlbmREYXRlLmdldE1vbnRoKCkgKyAxLCBkYXk6IGVuZERhdGUuZ2V0RGF0ZSgpfTtcblxuXHRcdFx0dGhpcy5zdGFydERhdGVPYmpDaGFuZ2UuZW1pdCh0aGlzLnN0YXJ0RGF0ZU9iaik7XG5cdFx0XHR0aGlzLmVuZERhdGVPYmpDaGFuZ2UuZW1pdCh0aGlzLmVuZERhdGVPYmopO1xuXG5cdFx0XHR0aGlzLmRhdGVzQ2hhbmdlZC5lbWl0KFt0aGlzLnN0YXJ0RGF0ZU9iaiwgdGhpcy5lbmREYXRlT2JqXSk7XG5cblx0XHRcdHRoaXMuc2hvcnRjdXRWYWx1ZUNoYW5nZS5lbWl0KHRoaXMuc2hvcnRjdXRWYWx1ZSk7XG5cdFx0fVxuXG5cdFx0dGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuXHR9XG59XG4iXX0=
|
|
295
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1zaG9ydGN1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvd2lkZ2V0cy9kYXRlLXNob3J0Y3V0L2RhdGUtc2hvcnRjdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDM0gsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBaUN2RSxNQUFNLE9BQU8scUJBQXNCLFNBQVEsYUFBYTtJQWF2RCxZQUFvQixTQUEwQixFQUFVLEdBQXNCO1FBQzdFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQURFLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFScEUsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNoRCxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzlDLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDcEQseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNsRCxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFDcEIsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUkzRCxDQUFDO0lBRUQsUUFBUTtRQUNQLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxLQUFLO1FBQ0osSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLG1C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IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbmltcG9ydCB7IFByb3ZpZGVyU2VydmljZSwgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Jlc29sdmVpby1jbGFzcyc7XG5cbkBDb21wb25lbnQoe1xuXHRwcm92aWRlcnM6IFtQcm92aWRlclNlcnZpY2VdLFxuXHRzZWxlY3RvcjogJ2RhdGUtc2hvcnRjdXQnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxsYWJlbCBjbGFzcz1cImZvcm0tY29udHJvbC1sYWJlbFwiPkRhdGUgU2hvcnRjdXRzPC9sYWJlbD5cblx0XHQ8bmctc2VsZWN0IFsobmdNb2RlbCldPVwic2hvcnRjdXRWYWx1ZVwiIChjaGFuZ2UpPVwib25TZWxlY3RTaG9ydGN1dCgpXCIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgU2hvcnRjdXRcIiBbY2xlYXJhYmxlXT1cImZhbHNlXCI+XG5cdFx0XHQ8bmctb3B0aW9uIHZhbHVlPVwiVG9kYXlcIj5Ub2RheTwvbmctb3B0aW9uPlxuXHRcdFx0PG5nLW9wdGlvbiB2YWx1ZT1cIlllc3RlcmRheVwiPlllc3RlcmRheTwvbmctb3B0aW9uPlxuXHRcdFx0PG5nLW9wdGlvbiB2YWx1ZT1cIldlZWtcIj5UaGlzIFdlZWs8L25nLW9wdGlvbj5cblx0XHRcdDxuZy1vcHRpb24gdmFsdWU9XCJMYXN0IFdlZWtcIj5MYXN0IFdlZWs8L25nLW9wdGlvbj5cblx0XHRcdDxuZy1vcHRpb24gdmFsdWU9XCJNb250aFwiPlRoaXMgTW9udGg8L25nLW9wdGlvbj5cblx0XHRcdDxuZy1vcHRpb24gdmFsdWU9XCJMYXN0IE1vbnRoXCI+TGFzdCBNb250aDwvbmctb3B0aW9uPlxuXHRcdFx0PG5nLW9wdGlvbiB2YWx1ZT1cIkxhc3QgMzAgRGF5c1wiPkxhc3QgMzAgRGF5czwvbmctb3B0aW9uPlxuXHRcdFx0PG5nLW9wdGlvbiB2YWx1ZT1cIlF1YXJ0ZXJcIj5UaGlzIFF1YXJ0ZXI8L25nLW9wdGlvbj5cblx0XHRcdDxuZy1vcHRpb24gdmFsdWU9XCJMYXN0IFF1YXJ0ZXJcIj5MYXN0IFF1YXJ0ZXI8L25nLW9wdGlvbj5cblx0XHRcdDxuZy1vcHRpb24gdmFsdWU9XCJZZWFyXCI+VGhpcyBZZWFyPC9uZy1vcHRpb24+XG5cdFx0XHQ8bmctb3B0aW9uIHZhbHVlPVwiTGFzdCBZZWFyXCI+TGFzdCBZZWFyPC9uZy1vcHRpb24+XG5cdFx0XHQ8bmctb3B0aW9uIHZhbHVlPVwiUTFcIj5RMTwvbmctb3B0aW9uPlxuXHRcdFx0PG5nLW9wdGlvbiB2YWx1ZT1cIlEyXCI+UTI8L25nLW9wdGlvbj5cblx0XHRcdDxuZy1vcHRpb24gdmFsdWU9XCJRM1wiPlEzPC9uZy1vcHRpb24+XG5cdFx0XHQ8bmctb3B0aW9uIHZhbHVlPVwiUTRcIj5RNDwvbmctb3B0aW9uPlxuXHRcdFx0PG5nLW9wdGlvbiB2YWx1ZT1cIkxhc3QgUTFcIj5MYXN0IFExPC9uZy1vcHRpb24+XG5cdFx0XHQ8bmctb3B0aW9uIHZhbHVlPVwiTGFzdCBRMlwiPkxhc3QgUTI8L25nLW9wdGlvbj5cblx0XHRcdDxuZy1vcHRpb24gdmFsdWU9XCJMYXN0IFEzXCI+TGFzdCBRMzwvbmctb3B0aW9uPlxuXHRcdFx0PG5nLW9wdGlvbiB2YWx1ZT1cIkxhc3QgUTRcIj5MYXN0IFE0PC9uZy1vcHRpb24+XG5cdFx0XHQ8bmctb3B0aW9uIHZhbHVlPVwiQWxsXCI+QWxsPC9uZy1vcHRpb24+XG5cdFx0PC9uZy1zZWxlY3Q+XG5cdGAsXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuXG5leHBvcnQgY2xhc3MgRGF0ZVNob3J0Y3V0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7IFxuXHRASW5wdXQoKSBzdGFydERhdGVPYmo7XG5cdEBJbnB1dCgpIGVuZERhdGVPYmo7XG5cdEBJbnB1dCgpIHN0YXJ0RGF0ZU9iakZvcm07XG5cdEBJbnB1dCgpIGVuZERhdGVPYmpGb3JtO1xuXHRAT3V0cHV0KCkgc3RhcnREYXRlT2JqQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxPYmplY3Q+KCk7XG5cdEBPdXRwdXQoKSBlbmREYXRlT2JqQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxPYmplY3Q+KCk7XG5cdEBPdXRwdXQoKSBzdGFydERhdGVPYmpGb3JtQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxPYmplY3Q+KCk7XG5cdEBPdXRwdXQoKSBlbmREYXRlT2JqRm9ybUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8T2JqZWN0PigpO1xuXHRAT3V0cHV0KCkgZGF0ZXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXHRASW5wdXQoKSBzaG9ydGN1dFZhbHVlID0gbnVsbDtcblx0QE91dHB1dCgpIHNob3J0Y3V0VmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFN0cmluZz4oKTtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9zZXJ2aWNlczogUHJvdmlkZXJTZXJ2aWNlLCBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcblx0XHRzdXBlcihfc2VydmljZXMpO1xuXHR9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5vblNlbGVjdFNob3J0Y3V0KCk7XG5cdH1cblxuXHRyZXNldCgpIHtcblx0XHR0aGlzLnNob3J0Y3V0VmFsdWUgPSBudWxsO1xuXHRcdHRoaXMuc2hvcnRjdXRWYWx1ZUNoYW5nZS5lbWl0KHRoaXMuc2hvcnRjdXRWYWx1ZSk7XG5cblx0XHR0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG5cdH1cblxuXHRvblNlbGVjdFNob3J0Y3V0KCkge1xuXHRcdGlmICh0aGlzLnNob3J0Y3V0VmFsdWUpIHtcblx0XHRcdGlmICh0aGlzLnN0YXJ0RGF0ZU9iaiAmJiB0aGlzLmVuZERhdGVPYmopIHtcblx0XHRcdFx0bGV0IHN0YXJ0RGF0ZSA9IG1vbWVudChuZXcgRGF0ZSh0aGlzLnN0YXJ0RGF0ZU9ialsneWVhciddLCB0aGlzLnN0YXJ0RGF0ZU9ialsnbW9udGgnXSAtIDEsIHRoaXMuc3RhcnREYXRlT2JqWydkYXknXSkpLnRvRGF0ZSgpO1xuXHRcdFx0XHRsZXQgZW5kRGF0ZSA9IG1vbWVudChuZXcgRGF0ZSh0aGlzLmVuZERhdGVPYmpbJ3llYXInXSwgdGhpcy5lbmREYXRlT2JqWydtb250aCddIC0gMSwgdGhpcy5lbmREYXRlT2JqWydkYXknXSkpLnRvRGF0ZSgpO1xuXG5cdFx0XHRcdGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdRMScpIHtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykudG9EYXRlKCk7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS5xdWFydGVyKDIpLnN1YnRyYWN0KDEsICdkYXlzJykudG9EYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnUTInKSB7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnF1YXJ0ZXIoMikudG9EYXRlKCk7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS5xdWFydGVyKDMpLnN1YnRyYWN0KDEsICdkYXlzJykudG9EYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnUTMnKSB7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnF1YXJ0ZXIoMykudG9EYXRlKCk7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS5xdWFydGVyKDQpLnN1YnRyYWN0KDEsICdkYXlzJykudG9EYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnUTQnKSB7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnF1YXJ0ZXIoNCkudG9EYXRlKCk7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG1vbWVudCgpLmVuZE9mKCd5ZWFyJykudG9EYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnTGFzdCBRMScpIHtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykuc3VidHJhY3QoMSwgJ3llYXInKS50b0RhdGUoKTtcblx0XHRcdFx0XHRlbmREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnN1YnRyYWN0KDEsICd5ZWFyJykucXVhcnRlcigyKS5zdWJ0cmFjdCgxLCAnZGF5cycpLnRvRGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ0xhc3QgUTInKSB7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnN1YnRyYWN0KDEsICd5ZWFyJykucXVhcnRlcigyKS50b0RhdGUoKTtcblx0XHRcdFx0XHRlbmREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnN1YnRyYWN0KDEsICd5ZWFyJykucXVhcnRlcigzKS5zdWJ0cmFjdCgxLCAnZGF5cycpLnRvRGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ0xhc3QgUTMnKSB7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnN1YnRyYWN0KDEsICd5ZWFyJykucXVhcnRlcigzKS50b0RhdGUoKTtcblx0XHRcdFx0XHRlbmREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnN1YnRyYWN0KDEsICd5ZWFyJykucXVhcnRlcig0KS5zdWJ0cmFjdCgxLCAnZGF5cycpLnRvRGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ0xhc3QgUTQnKSB7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnN1YnRyYWN0KDEsICd5ZWFyJykucXVhcnRlcig0KS50b0RhdGUoKTtcblx0XHRcdFx0XHRlbmREYXRlID0gbW9tZW50KCkuZW5kT2YoJ3llYXInKS5zdWJ0cmFjdCgxLCAneWVhcicpLnRvRGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ1RvZGF5Jykge1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ2RheScpLnRvRGF0ZSgpO1xuXHRcdFx0XHRcdGVuZERhdGUgPSBuZXcgRGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ1llc3RlcmRheScpIHtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdWJ0cmFjdCgxLCAnZGF5cycpLnN0YXJ0T2YoJ2RheScpLnRvRGF0ZSgpO1xuXHRcdFx0XHRcdGVuZERhdGUgPSBtb21lbnQoKS5zdWJ0cmFjdCgxLCAnZGF5cycpLmVuZE9mKCdkYXknKS50b0RhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdXZWVrJykge1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ2lzb1dlZWsnKS50b0RhdGUoKTtcblx0XHRcdFx0XHRlbmREYXRlID0gbmV3IERhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdMYXN0IFdlZWsnKSB7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ2lzb1dlZWsnKS5zdWJ0cmFjdCgxLCAnZGF5cycpLnRvRGF0ZSgpO1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudChlbmREYXRlKS5zdGFydE9mKCdpc29XZWVrJykudG9EYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnTW9udGgnKSB7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KCkuc3RhcnRPZignbW9udGgnKS50b0RhdGUoKTtcblx0XHRcdFx0XHRlbmREYXRlID0gbmV3IERhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdMYXN0IE1vbnRoJykge1xuXHRcdFx0XHRcdGVuZERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCdtb250aCcpLnN1YnRyYWN0KDEsICdkYXlzJykuZW5kT2YoJ2RheScpLnRvRGF0ZSgpO1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudChlbmREYXRlKS5zdGFydE9mKCdtb250aCcpLnRvRGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ0xhc3QgMzAgRGF5cycpIHtcblx0XHRcdFx0XHRlbmREYXRlID0gbmV3IERhdGUoKTtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdWJ0cmFjdCgzMCwgJ2RheXMnKS5zdGFydE9mKCdkYXknKS50b0RhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdRdWFydGVyJykge1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS5xdWFydGVyKG1vbWVudCgpLnF1YXJ0ZXIoKSkudG9EYXRlKCk7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG5ldyBEYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnTGFzdCBRdWFydGVyJykge1xuXHRcdFx0XHRcdGVuZERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykucXVhcnRlcihtb21lbnQoKS5xdWFydGVyKCkpLnN1YnRyYWN0KDEsICdkYXlzJykuZW5kT2YoJ2RheScpLnRvRGF0ZSgpO1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudChlbmREYXRlKS5zdGFydE9mKCdxdWFydGVyJykudG9EYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnWWVhcicpIHtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykudG9EYXRlKCk7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG5ldyBEYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnTGFzdCBZZWFyJykge1xuXHRcdFx0XHRcdGVuZERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykuc3VidHJhY3QoMSwgJ2RheXMnKS5lbmRPZignZGF5JykudG9EYXRlKCk7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KGVuZERhdGUpLnN0YXJ0T2YoJ3llYXInKS50b0RhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdBbGwnKSB7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbmV3IERhdGUoMjAxNywgMCwgMSwgMCwgMCwgMCwgMCk7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG5ldyBEYXRlKCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR0aGlzLnN0YXJ0RGF0ZU9iaiA9IHt5ZWFyOiBzdGFydERhdGUuZ2V0RnVsbFllYXIoKSwgbW9udGg6IHN0YXJ0RGF0ZS5nZXRNb250aCgpICsgMSwgZGF5OiBzdGFydERhdGUuZ2V0RGF0ZSgpfTtcblx0XHRcdFx0dGhpcy5lbmREYXRlT2JqID0ge3llYXI6IGVuZERhdGUuZ2V0RnVsbFllYXIoKSwgbW9udGg6IGVuZERhdGUuZ2V0TW9udGgoKSArIDEsIGRheTogZW5kRGF0ZS5nZXREYXRlKCl9O1xuXG5cdFx0XHRcdHRoaXMuc3RhcnREYXRlT2JqQ2hhbmdlLmVtaXQodGhpcy5zdGFydERhdGVPYmopO1xuXHRcdFx0XHR0aGlzLmVuZERhdGVPYmpDaGFuZ2UuZW1pdCh0aGlzLmVuZERhdGVPYmopO1xuXG5cdFx0XHRcdHRoaXMuZGF0ZXNDaGFuZ2VkLmVtaXQoW3RoaXMuc3RhcnREYXRlT2JqLCB0aGlzLmVuZERhdGVPYmpdKTtcblx0XHRcdH1cblx0XHRcdGVsc2UgaWYgKHRoaXMuc3RhcnREYXRlT2JqRm9ybSAmJiB0aGlzLmVuZERhdGVPYmpGb3JtKSB7XG5cdFx0XHRcdGxldCBzdGFydERhdGUgPSBtb21lbnQobmV3IERhdGUodGhpcy5zdGFydERhdGVPYmpGb3JtLnZhbHVlWyd5ZWFyJ10sIHRoaXMuc3RhcnREYXRlT2JqLnZhbHVlWydtb250aCddIC0gMSwgdGhpcy5zdGFydERhdGVPYmoudmFsdWVbJ2RheSddKSkudG9EYXRlKCk7XG5cdFx0XHRcdGxldCBlbmREYXRlID0gbW9tZW50KG5ldyBEYXRlKHRoaXMuZW5kRGF0ZU9iai52YWx1ZVsneWVhciddLCB0aGlzLmVuZERhdGVPYmoudmFsdWVbJ21vbnRoJ10gLSAxLCB0aGlzLmVuZERhdGVPYmoudmFsdWVbJ2RheSddKSkudG9EYXRlKCk7XG5cblx0XHRcdFx0aWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ1ExJykge1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS50b0RhdGUoKTtcblx0XHRcdFx0XHRlbmREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnF1YXJ0ZXIoMikuc3VidHJhY3QoMSwgJ2RheXMnKS50b0RhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdRMicpIHtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykucXVhcnRlcigyKS50b0RhdGUoKTtcblx0XHRcdFx0XHRlbmREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnF1YXJ0ZXIoMykuc3VidHJhY3QoMSwgJ2RheXMnKS50b0RhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdRMycpIHtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykucXVhcnRlcigzKS50b0RhdGUoKTtcblx0XHRcdFx0XHRlbmREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnF1YXJ0ZXIoNCkuc3VidHJhY3QoMSwgJ2RheXMnKS50b0RhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdRNCcpIHtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykucXVhcnRlcig0KS50b0RhdGUoKTtcblx0XHRcdFx0XHRlbmREYXRlID0gbW9tZW50KCkuZW5kT2YoJ3llYXInKS50b0RhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdMYXN0IFExJykge1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS5zdWJ0cmFjdCgxLCAneWVhcicpLnRvRGF0ZSgpO1xuXHRcdFx0XHRcdGVuZERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykuc3VidHJhY3QoMSwgJ3llYXInKS5xdWFydGVyKDIpLnN1YnRyYWN0KDEsICdkYXlzJykudG9EYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnTGFzdCBRMicpIHtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykuc3VidHJhY3QoMSwgJ3llYXInKS5xdWFydGVyKDIpLnRvRGF0ZSgpO1xuXHRcdFx0XHRcdGVuZERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykuc3VidHJhY3QoMSwgJ3llYXInKS5xdWFydGVyKDMpLnN1YnRyYWN0KDEsICdkYXlzJykudG9EYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnTGFzdCBRMycpIHtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykuc3VidHJhY3QoMSwgJ3llYXInKS5xdWFydGVyKDMpLnRvRGF0ZSgpO1xuXHRcdFx0XHRcdGVuZERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykuc3VidHJhY3QoMSwgJ3llYXInKS5xdWFydGVyKDQpLnN1YnRyYWN0KDEsICdkYXlzJykudG9EYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnTGFzdCBRNCcpIHtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykuc3VidHJhY3QoMSwgJ3llYXInKS5xdWFydGVyKDQpLnRvRGF0ZSgpO1xuXHRcdFx0XHRcdGVuZERhdGUgPSBtb21lbnQoKS5lbmRPZigneWVhcicpLnN1YnRyYWN0KDEsICd5ZWFyJykudG9EYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnVG9kYXknKSB7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KCkuc3RhcnRPZignZGF5JykudG9EYXRlKCk7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG5ldyBEYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnWWVzdGVyZGF5Jykge1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN1YnRyYWN0KDEsICdkYXlzJykuc3RhcnRPZignZGF5JykudG9EYXRlKCk7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG1vbWVudCgpLnN1YnRyYWN0KDEsICdkYXlzJykuZW5kT2YoJ2RheScpLnRvRGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ1dlZWsnKSB7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KCkuc3RhcnRPZignaXNvV2VlaycpLnRvRGF0ZSgpO1xuXHRcdFx0XHRcdGVuZERhdGUgPSBuZXcgRGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ0xhc3QgV2VlaycpIHtcblx0XHRcdFx0XHRlbmREYXRlID0gbW9tZW50KCkuc3RhcnRPZignaXNvV2VlaycpLnN1YnRyYWN0KDEsICdkYXlzJykudG9EYXRlKCk7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KGVuZERhdGUpLnN0YXJ0T2YoJ2lzb1dlZWsnKS50b0RhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdNb250aCcpIHtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCdtb250aCcpLnRvRGF0ZSgpO1xuXHRcdFx0XHRcdGVuZERhdGUgPSBuZXcgRGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ0xhc3QgTW9udGgnKSB7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ21vbnRoJykuc3VidHJhY3QoMSwgJ2RheXMnKS5lbmRPZignZGF5JykudG9EYXRlKCk7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KGVuZERhdGUpLnN0YXJ0T2YoJ21vbnRoJykudG9EYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnTGFzdCAzMCBEYXlzJykge1xuXHRcdFx0XHRcdGVuZERhdGUgPSBuZXcgRGF0ZSgpO1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN1YnRyYWN0KDMwLCAnZGF5cycpLnN0YXJ0T2YoJ2RheScpLnRvRGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ1F1YXJ0ZXInKSB7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnF1YXJ0ZXIobW9tZW50KCkucXVhcnRlcigpKS50b0RhdGUoKTtcblx0XHRcdFx0XHRlbmREYXRlID0gbmV3IERhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdMYXN0IFF1YXJ0ZXInKSB7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS5xdWFydGVyKG1vbWVudCgpLnF1YXJ0ZXIoKSkuc3VidHJhY3QoMSwgJ2RheXMnKS5lbmRPZignZGF5JykudG9EYXRlKCk7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KGVuZERhdGUpLnN0YXJ0T2YoJ3F1YXJ0ZXInKS50b0RhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdZZWFyJykge1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS50b0RhdGUoKTtcblx0XHRcdFx0XHRlbmREYXRlID0gbmV3IERhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdMYXN0IFllYXInKSB7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS5zdWJ0cmFjdCgxLCAnZGF5cycpLmVuZE9mKCdkYXknKS50b0RhdGUoKTtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoZW5kRGF0ZSkuc3RhcnRPZigneWVhcicpLnRvRGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ0FsbCcpIHtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBuZXcgRGF0ZSgyMDE3LCAwLCAxLCAwLCAwLCAwLCAwKTtcblx0XHRcdFx0XHRlbmREYXRlID0gbmV3IERhdGUoKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHRoaXMuc3RhcnREYXRlT2JqRm9ybS5zZXRWYWx1ZSh7eWVhcjogc3RhcnREYXRlLmdldEZ1bGxZZWFyKCksIG1vbnRoOiBzdGFydERhdGUuZ2V0TW9udGgoKSArIDEsIGRheTogc3RhcnREYXRlLmdldERhdGUoKX0pO1xuXHRcdFx0XHR0aGlzLmVuZERhdGVPYmpGb3JtLnNldFZhbHVlKHt5ZWFyOiBlbmREYXRlLmdldEZ1bGxZZWFyKCksIG1vbnRoOiBlbmREYXRlLmdldE1vbnRoKCkgKyAxLCBkYXk6IGVuZERhdGUuZ2V0RGF0ZSgpfSk7XG5cblx0XHRcdFx0dGhpcy5zdGFydERhdGVPYmpGb3JtQ2hhbmdlLmVtaXQodGhpcy5zdGFydERhdGVPYmpGb3JtKTtcblx0XHRcdFx0dGhpcy5lbmREYXRlT2JqRm9ybUNoYW5nZS5lbWl0KHRoaXMuZW5kRGF0ZU9iakZvcm0pO1xuXG5cdFx0XHRcdHRoaXMuZGF0ZXNDaGFuZ2VkLmVtaXQoW3RoaXMuc3RhcnREYXRlT2JqRm9ybSwgdGhpcy5lbmREYXRlT2JqRm9ybV0pO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnNob3J0Y3V0VmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnNob3J0Y3V0VmFsdWUpO1xuXHRcdH1cblxuXHRcdHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcblx0fVxufVxuIl19
|