ps-toolkit-ui 1.6.82 → 1.6.85
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/bundles/ps-toolkit-ui.umd.js +48 -62
- package/bundles/ps-toolkit-ui.umd.js.map +1 -1
- package/bundles/ps-toolkit-ui.umd.min.js +1 -1
- package/bundles/ps-toolkit-ui.umd.min.js.map +1 -1
- package/esm2015/lib/components/form/plaque/form.plaque.component.js +16 -37
- package/esm2015/lib/components/form/plaque/select/form.plaque.select.component.js +34 -27
- package/fesm2015/ps-toolkit-ui.js +48 -62
- package/fesm2015/ps-toolkit-ui.js.map +1 -1
- package/package.json +1 -1
|
@@ -54,12 +54,7 @@ export class FormPlaqueComponent {
|
|
|
54
54
|
this.part1.onChange = (v) => {
|
|
55
55
|
this.inp.error = null;
|
|
56
56
|
if (v.length === 2 && this.inp.type === InputType.Plaque) {
|
|
57
|
-
|
|
58
|
-
this.part3.focus(true);
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
this.part2.focus(true);
|
|
62
|
-
}
|
|
57
|
+
this.part2.focus(true);
|
|
63
58
|
}
|
|
64
59
|
else if (v.length === 3 && this.inp.type === InputType.PlaqueM) {
|
|
65
60
|
this.part3.focus(true);
|
|
@@ -68,14 +63,10 @@ export class FormPlaqueComponent {
|
|
|
68
63
|
this.part2.onChange = (v) => {
|
|
69
64
|
this.inp.error = null;
|
|
70
65
|
if (v.length === 1) {
|
|
71
|
-
|
|
72
|
-
this.part3.focus(true);
|
|
73
|
-
}, 100);
|
|
66
|
+
this.part3.focus(true);
|
|
74
67
|
}
|
|
75
68
|
else if (v.length === 0) {
|
|
76
|
-
|
|
77
|
-
this.part1.focus(true);
|
|
78
|
-
}, 100);
|
|
69
|
+
this.part1.focus(true);
|
|
79
70
|
}
|
|
80
71
|
};
|
|
81
72
|
this.part3.onChange = (v) => {
|
|
@@ -83,7 +74,7 @@ export class FormPlaqueComponent {
|
|
|
83
74
|
if (v.length === 3 && this.inp.type === InputType.Plaque) {
|
|
84
75
|
this.part4.focus(true);
|
|
85
76
|
}
|
|
86
|
-
if (v.length === 0 && this.inp.type === InputType.Plaque) {
|
|
77
|
+
else if (v.length === 0 && this.inp.type === InputType.Plaque) {
|
|
87
78
|
this.part2.focus(true);
|
|
88
79
|
}
|
|
89
80
|
else if (v.length === 5 && this.inp.type === InputType.PlaqueM) {
|
|
@@ -98,10 +89,8 @@ export class FormPlaqueComponent {
|
|
|
98
89
|
if (v.length === 2) {
|
|
99
90
|
this.changeIndex.emit('Tab');
|
|
100
91
|
}
|
|
101
|
-
else {
|
|
102
|
-
|
|
103
|
-
this.part3.focus(true);
|
|
104
|
-
}
|
|
92
|
+
else if (v.length === 0) {
|
|
93
|
+
this.part3.focus(true);
|
|
105
94
|
}
|
|
106
95
|
};
|
|
107
96
|
this.inp.setValue = (v) => {
|
|
@@ -171,12 +160,7 @@ export class FormPlaqueComponent {
|
|
|
171
160
|
if (this.inp.type === InputType.Plaque) {
|
|
172
161
|
if (p === 'Part1') {
|
|
173
162
|
if (a === 'Tab' || a === 'Enter') {
|
|
174
|
-
|
|
175
|
-
this.part3.focus();
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
this.part2.focus();
|
|
179
|
-
}
|
|
163
|
+
this.part2.focus(true);
|
|
180
164
|
}
|
|
181
165
|
else if (a === 'ShiftTab' || a === 'ShiftEnter') {
|
|
182
166
|
this.changeIndex.emit('ShiftTab');
|
|
@@ -184,23 +168,18 @@ export class FormPlaqueComponent {
|
|
|
184
168
|
}
|
|
185
169
|
else if (p === 'Part2') {
|
|
186
170
|
if (a === 'Tab' || a === 'Enter') {
|
|
187
|
-
this.part3.focus();
|
|
171
|
+
this.part3.focus(true);
|
|
188
172
|
}
|
|
189
173
|
else if (a === 'ShiftTab' || a === 'ShiftEnter') {
|
|
190
|
-
this.part1.focus();
|
|
174
|
+
this.part1.focus(true);
|
|
191
175
|
}
|
|
192
176
|
}
|
|
193
177
|
else if (p === 'Part3') {
|
|
194
178
|
if (a === 'Tab' || a === 'Enter') {
|
|
195
|
-
this.part4.focus();
|
|
179
|
+
this.part4.focus(true);
|
|
196
180
|
}
|
|
197
181
|
else if (a === 'ShiftTab' || a === 'ShiftEnter') {
|
|
198
|
-
|
|
199
|
-
this.part1.focus();
|
|
200
|
-
}
|
|
201
|
-
else {
|
|
202
|
-
this.part2.focus();
|
|
203
|
-
}
|
|
182
|
+
this.part2.focus(true);
|
|
204
183
|
}
|
|
205
184
|
}
|
|
206
185
|
else if (p === 'Part4') {
|
|
@@ -208,14 +187,14 @@ export class FormPlaqueComponent {
|
|
|
208
187
|
this.changeIndex.emit('Tab');
|
|
209
188
|
}
|
|
210
189
|
else if (a === 'ShiftTab' || a === 'ShiftEnter') {
|
|
211
|
-
this.part3.focus();
|
|
190
|
+
this.part3.focus(true);
|
|
212
191
|
}
|
|
213
192
|
}
|
|
214
193
|
}
|
|
215
194
|
else if (this.inp.type === InputType.PlaqueM || this.inp.type === InputType.PlaqueF) {
|
|
216
195
|
if (p === 'Part1') {
|
|
217
196
|
if (a === 'Tab' || a === 'Enter') {
|
|
218
|
-
this.part3.focus();
|
|
197
|
+
this.part3.focus(true);
|
|
219
198
|
}
|
|
220
199
|
else if (a === 'ShiftTab' || a === 'ShiftEnter') {
|
|
221
200
|
this.changeIndex.emit('ShiftTab');
|
|
@@ -226,7 +205,7 @@ export class FormPlaqueComponent {
|
|
|
226
205
|
this.changeIndex.emit('Tab');
|
|
227
206
|
}
|
|
228
207
|
else if (a === 'ShiftTab' || a === 'ShiftEnter') {
|
|
229
|
-
this.part1.focus();
|
|
208
|
+
this.part1.focus(true);
|
|
230
209
|
}
|
|
231
210
|
}
|
|
232
211
|
}
|
|
@@ -243,7 +222,7 @@ export class FormPlaqueComponent {
|
|
|
243
222
|
}
|
|
244
223
|
onFocusIn(e = null) {
|
|
245
224
|
if (e == null || !(e.screenX && e.screenX !== 0 && e.screenY && e.screenY !== 0)) {
|
|
246
|
-
this.part1.focus();
|
|
225
|
+
this.part1.focus(true);
|
|
247
226
|
}
|
|
248
227
|
}
|
|
249
228
|
onKeyDown(e) {
|
|
@@ -275,4 +254,4 @@ FormPlaqueComponent.propDecorators = {
|
|
|
275
254
|
inputDiv: [{ type: ViewChild, args: ['inputDiv',] }],
|
|
276
255
|
inputLabel: [{ type: ViewChild, args: ['inputLabel',] }]
|
|
277
256
|
};
|
|
278
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5wbGFxdWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1Byb2plY3RzL1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Zvcm0vcGxhcXVlL2Zvcm0ucGxhcXVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFPMUQsTUFBTSxPQUFPLG1CQUFtQjtJQWE5QjtRQVRBLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQVV6QyxDQUFDO0lBTEQsSUFBSSxJQUFJLEtBQXVCLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQztJQU9sRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNLEVBQUUsZ0NBQWdDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdJLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSSxFQUFFLGdDQUFnQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pKLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTSxFQUFFLGdDQUFnQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3SSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxnQ0FBZ0MsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNySixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDOUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3pHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQzFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLE9BQU8sRUFBQztZQUN0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QyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEQ7SUFDSCxDQUFDO0lBQ0QsUUFBUTtRQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbkwsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM1TyxDQUFDOzs7WUFyUEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLHVxQ0FBMkM7O2FBRTVDOzs7O2tCQUVFLEtBQUs7MEJBRUwsTUFBTTt3QkFPTixTQUFTLFNBQUMsV0FBVzt1QkFDckIsU0FBUyxTQUFDLFVBQVU7eUJBQ3BCLFNBQVMsU0FBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0lucHV0Q2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS5jbGFzcyc7XHJcbmltcG9ydCB7SW5wdXRFcnJvciwgSW5wdXRUeXBlfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2VudW0uY2xhc3MnO1xyXG5pbXBvcnQge0hlbHBlckNsYXNzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2hlbHBlci5jbGFzcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1mb3JtLXBsYXF1ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0ucGxhcXVlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtLnBsYXF1ZS5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1QbGFxdWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgQElucHV0KClcclxuICBpbnA6IElucHV0Q2xhc3M7XHJcbiAgQE91dHB1dCgpXHJcbiAgY2hhbmdlSW5kZXggPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBwYXJ0MTogSW5wdXRDbGFzcztcclxuICBwYXJ0MjogSW5wdXRDbGFzcztcclxuICBwYXJ0MzogSW5wdXRDbGFzcztcclxuICBwYXJ0NDogSW5wdXRDbGFzcztcclxuICBnZXQgdHlwZSgpOiB0eXBlb2YgSW5wdXRUeXBlIHsgcmV0dXJuIElucHV0VHlwZTsgfVxyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0QmFzZScpIGlucHV0QmFzZTogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdpbnB1dERpdicpIGlucHV0RGl2OiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0TGFiZWwnKSBpbnB1dExhYmVsOiBFbGVtZW50UmVmO1xyXG4gIGNvbnN0cnVjdG9yKCl7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucGFydDEgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmlucC5lbnZpcm9ubWVudCwgdGhpcy5pbnAubCwgJ1BhcnQxJywgbnVsbCwgSW5wdXRUeXBlLk51bWJlciwgJ3BsYXF1ZS1wYXJ0LTEgcGxhcXVlLXBhcnQtaXRlbScsIG51bGwsIHRydWUpO1xyXG4gICAgdGhpcy5wYXJ0MiA9IG5ldyBJbnB1dENsYXNzKHRoaXMuaW5wLmVudmlyb25tZW50LCB0aGlzLmlucC5sLCAnUGFydDInLCBudWxsLCBJbnB1dFR5cGUuVGV4dCwgJ3BsYXF1ZS1wYXJ0LTIgcGxhcXVlLXBhcnQtaXRlbScsIG51bGwsIHRydWUsIDEsIDEpO1xyXG4gICAgdGhpcy5wYXJ0MyA9IG5ldyBJbnB1dENsYXNzKHRoaXMuaW5wLmVudmlyb25tZW50LCB0aGlzLmlucC5sLCAnUGFydDMnLCBudWxsLCBJbnB1dFR5cGUuTnVtYmVyLCAncGxhcXVlLXBhcnQtMyBwbGFxdWUtcGFydC1pdGVtJywgbnVsbCwgdHJ1ZSk7XHJcbiAgICB0aGlzLnBhcnQ0ID0gbmV3IElucHV0Q2xhc3ModGhpcy5pbnAuZW52aXJvbm1lbnQsIHRoaXMuaW5wLmwsICdQYXJ0NCcsIG51bGwsIElucHV0VHlwZS5OdW1iZXIsICdwbGFxdWUtcGFydC00IHBsYXF1ZS1wYXJ0LWl0ZW0nLCBudWxsLCB0cnVlLCAxMCwgOTkpO1xyXG4gICAgdGhpcy5wYXJ0MS5kaXNwbGF5TGFiZWwgPSB0aGlzLnBhcnQyLmRpc3BsYXlMYWJlbCA9IHRoaXMucGFydDMuZGlzcGxheUxhYmVsID0gdGhpcy5wYXJ0NC5kaXNwbGF5TGFiZWwgPSBmYWxzZTtcclxuICAgIHRoaXMucGFydDEucGxhY2Vob2xkZXIgPSB0aGlzLnBhcnQyLnBsYWNlaG9sZGVyID0gdGhpcy5wYXJ0My5wbGFjZWhvbGRlciA9IHRoaXMucGFydDQucGxhY2Vob2xkZXIgPSBudWxsO1xyXG4gICAgdGhpcy5wYXJ0MS5kaXNhYmxlZCA9IHRoaXMucGFydDIuZGlzYWJsZWQgPSB0aGlzLnBhcnQzLmRpc2FibGVkID0gdGhpcy5wYXJ0NC5kaXNhYmxlZCA9IHRoaXMuaW5wLmRpc2FibGVkO1xyXG4gICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5QbGFxdWVNKXtcclxuICAgICAgdGhpcy5wYXJ0MS5taW5MZW5ndGggPSAxMDA7XHJcbiAgICAgIHRoaXMucGFydDEubWF4TGVuZ3RoID0gOTk5O1xyXG4gICAgICB0aGlzLnBhcnQxLmNsYXNzICs9ICcgcGxhcXVlLXBhcnQtbSc7XHJcbiAgICAgIHRoaXMucGFydDIuY2xhc3MgKz0gJyBwbGFxdWUtcGFydC1tJztcclxuICAgICAgdGhpcy5wYXJ0My5taW5MZW5ndGggPSAxMDAwMDtcclxuICAgICAgdGhpcy5wYXJ0My5tYXhMZW5ndGggPSA5OTk5OTtcclxuICAgICAgdGhpcy5wYXJ0My5jbGFzcyArPSAnIHBsYXF1ZS1wYXJ0LW0nO1xyXG4gICAgICB0aGlzLnBhcnQ0LmNsYXNzICs9ICcgcGxhcXVlLXBhcnQtbSc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5QbGFxdWVGKXtcclxuICAgICAgdGhpcy5wYXJ0MS5taW5MZW5ndGggPSAxMDA7XHJcbiAgICAgIHRoaXMucGFydDEubWF4TGVuZ3RoID0gOTk5OTk5OTk5O1xyXG4gICAgICB0aGlzLnBhcnQxLmNsYXNzICs9ICcgcGxhcXVlLXBhcnQtZic7XHJcbiAgICAgIHRoaXMucGFydDIuY2xhc3MgKz0gJyBwbGFxdWUtcGFydC1mJztcclxuICAgICAgdGhpcy5wYXJ0My5taW5MZW5ndGggPSAxO1xyXG4gICAgICB0aGlzLnBhcnQzLm1heExlbmd0aCA9IDIwO1xyXG4gICAgICB0aGlzLnBhcnQzLnR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgdGhpcy5wYXJ0My5jbGFzcyArPSAnIHBsYXF1ZS1wYXJ0LWYnO1xyXG4gICAgICB0aGlzLnBhcnQ0LmNsYXNzICs9ICcgcGxhcXVlLXBhcnQtZic7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5QbGFxdWVHKXtcclxuICAgICAgdGhpcy5wYXJ0MS5taW5MZW5ndGggPSAzO1xyXG4gICAgICB0aGlzLnBhcnQxLm1heExlbmd0aCA9IDE1O1xyXG4gICAgICB0aGlzLnBhcnQxLnR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgdGhpcy5wYXJ0MS5jbGFzcyArPSAnIHBsYXF1ZS1wYXJ0LWcnO1xyXG4gICAgICB0aGlzLnBhcnQyLmNsYXNzICs9ICcgcGxhcXVlLXBhcnQtZyc7XHJcbiAgICAgIHRoaXMucGFydDMuY2xhc3MgKz0gJyBwbGFxdWUtcGFydC1nJztcclxuICAgICAgdGhpcy5wYXJ0NC5jbGFzcyArPSAnIHBsYXF1ZS1wYXJ0LWcnO1xyXG4gICAgfSBlbHNle1xyXG4gICAgICB0aGlzLnBhcnQxLm1pbkxlbmd0aCA9IDEwO1xyXG4gICAgICB0aGlzLnBhcnQxLm1heExlbmd0aCA9IDk5O1xyXG4gICAgICB0aGlzLnBhcnQzLm1pbkxlbmd0aCA9IDEwMDtcclxuICAgICAgdGhpcy5wYXJ0My5tYXhMZW5ndGggPSA5OTk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnBhcnQxLm9uQ2hhbmdlID0gKHYpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICBpZiAodi5sZW5ndGggPT09IDIgJiYgdGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlBsYXF1ZSl7XHJcbiAgICAgICAgaWYgKHRoaXMucGFydDIuZGF0YSgpICE9IG51bGwpe1xyXG4gICAgICAgICAgdGhpcy5wYXJ0My5mb2N1cyh0cnVlKTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMucGFydDIuZm9jdXModHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHYubGVuZ3RoID09PSAzICYmIHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5QbGFxdWVNKXtcclxuICAgICAgICB0aGlzLnBhcnQzLmZvY3VzKHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5wYXJ0Mi5vbkNoYW5nZSA9ICh2KSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgICAgaWYgKHYubGVuZ3RoID09PSAxKXtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMucGFydDMuZm9jdXModHJ1ZSk7XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgICAgfSBlbHNlIGlmICh2Lmxlbmd0aCA9PT0gMCl7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBhcnQxLmZvY3VzKHRydWUpO1xyXG4gICAgICAgIH0sIDEwMCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLnBhcnQzLm9uQ2hhbmdlID0gKHYpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICBpZiAodi5sZW5ndGggPT09IDMgJiYgdGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlBsYXF1ZSl7XHJcbiAgICAgICAgdGhpcy5wYXJ0NC5mb2N1cyh0cnVlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodi5sZW5ndGggPT09IDAgJiYgdGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlBsYXF1ZSl7XHJcbiAgICAgICAgdGhpcy5wYXJ0Mi5mb2N1cyh0cnVlKTtcclxuICAgICAgfSBlbHNlIGlmICh2Lmxlbmd0aCA9PT0gNSAmJiB0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuUGxhcXVlTSl7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KCdUYWInKTtcclxuICAgICAgfSBlbHNlIGlmICh2Lmxlbmd0aCA9PT0gMCAmJiB0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuUGxhcXVlTSl7XHJcbiAgICAgICAgdGhpcy5wYXJ0MS5mb2N1cyh0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMucGFydDQub25DaGFuZ2UgPSAodikgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIGlmICh2Lmxlbmd0aCA9PT0gMil7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KCdUYWInKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodi5sZW5ndGggPT09IDApe1xyXG4gICAgICAgICAgdGhpcy5wYXJ0My5mb2N1cyh0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5zZXRWYWx1ZSA9ICh2KSA9PiB7XHJcbiAgICAgIGNvbnN0IHBhcnRzID0gdi5zcGxpdCgnXycpO1xyXG4gICAgICBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlBsYXF1ZSl7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlucC52YWx1ZSA9IHY7XHJcbiAgICAgICAgICB0aGlzLnBhcnQxLnZhbHVlID0gcGFydHNbMF07XHJcbiAgICAgICAgICB0aGlzLnBhcnQyLnZhbHVlID0gcGFydHNbMV07XHJcbiAgICAgICAgICB0aGlzLnBhcnQzLnZhbHVlID0gcGFydHNbMl07XHJcbiAgICAgICAgICB0aGlzLnBhcnQ0LnZhbHVlID0gcGFydHNbM107XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuUGxhcXVlTSB8fCB0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuUGxhcXVlRil7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlucC52YWx1ZSA9IHY7XHJcbiAgICAgICAgICB0aGlzLnBhcnQxLnZhbHVlID0gcGFydHNbMF07XHJcbiAgICAgICAgICB0aGlzLnBhcnQzLnZhbHVlID0gcGFydHNbMV07XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuUGxhcXVlRyl7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlucC52YWx1ZSA9IHY7XHJcbiAgICAgICAgICB0aGlzLnBhcnQxLnZhbHVlID0gcGFydHNbMF07XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5wYXJ0MS52YWx1ZSA9ICcnO1xyXG4gICAgICAgIHRoaXMucGFydDIudmFsdWUgPSAnJztcclxuICAgICAgICB0aGlzLnBhcnQzLnZhbHVlID0gJyc7XHJcbiAgICAgICAgdGhpcy5wYXJ0NC52YWx1ZSA9ICcnO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuaXNWYWxpZCA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAudmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XHJcbiAgICAgIGlmICh0aGlzLmlucC5yZXF1aXJlZCAmJiAhdGhpcy5pbnAudmFsdWUpIHtcclxuICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuUmVxdWlyZWQ7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5pbnAucmVxdWlyZWQgJiYgIXRoaXMuaW5wLnZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5QbGFxdWUgJiYgKCF0aGlzLnBhcnQxLmlzVmFsaWQoKSB8fCAhdGhpcy5wYXJ0Mi5pc1ZhbGlkKCkgfHwgIXRoaXMucGFydDMuaXNWYWxpZCgpIHx8ICF0aGlzLnBhcnQ0LmlzVmFsaWQoKSkpe1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlBsYXF1ZU0gfHwgdGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlBsYXF1ZUYpe1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBhcnQxLmlzVmFsaWQoKSAmJiB0aGlzLnBhcnQzLmlzVmFsaWQoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlBsYXF1ZUcpe1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBhcnQxLmlzVmFsaWQoKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gSGVscGVyQ2xhc3MucGxhcXVlVmFsaWQodGhpcy5pbnAudmFsdWUsIHRoaXMuaW5wLnR5cGUpO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmNsZWFyID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlID0gdGhpcy5pbnAuZGVmYXVsdDtcclxuICAgICAgdGhpcy5wYXJ0MS52YWx1ZSA9IHRoaXMucGFydDIudmFsdWUgPSB0aGlzLnBhcnQzLnZhbHVlID0gdGhpcy5wYXJ0NC52YWx1ZSA9IG51bGw7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuZGF0YSA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsdWUoKTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5mb2N1cyA9ICgpID0+IHtcclxuICAgICAgdGhpcy5vbkZvY3VzSW4oKTtcclxuICAgIH07XHJcbiAgfVxyXG4gIGNoYW5nZUZvY3VzKHAsIGEpOiB2b2lke1xyXG4gICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5QbGFxdWUpe1xyXG4gICAgICBpZiAocCA9PT0gJ1BhcnQxJyl7XHJcbiAgICAgICAgaWYgKGEgPT09ICdUYWInIHx8IGEgPT09ICdFbnRlcicpe1xyXG4gICAgICAgICAgaWYgKHRoaXMucGFydDIuZGF0YSgpICE9IG51bGwpe1xyXG4gICAgICAgICAgICB0aGlzLnBhcnQzLmZvY3VzKCk7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5wYXJ0Mi5mb2N1cygpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoYSA9PT0gJ1NoaWZ0VGFiJyB8fCBhID09PSAnU2hpZnRFbnRlcicpe1xyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KCdTaGlmdFRhYicpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChwID09PSAnUGFydDInKXtcclxuICAgICAgICBpZiAoYSA9PT0gJ1RhYicgfHwgYSA9PT0gJ0VudGVyJyl7XHJcbiAgICAgICAgICB0aGlzLnBhcnQzLmZvY3VzKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChhID09PSAnU2hpZnRUYWInIHx8IGEgPT09ICdTaGlmdEVudGVyJyl7XHJcbiAgICAgICAgICB0aGlzLnBhcnQxLmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHAgPT09ICdQYXJ0Mycpe1xyXG4gICAgICAgIGlmIChhID09PSAnVGFiJyB8fCBhID09PSAnRW50ZXInKXtcclxuICAgICAgICAgIHRoaXMucGFydDQuZm9jdXMoKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGEgPT09ICdTaGlmdFRhYicgfHwgYSA9PT0gJ1NoaWZ0RW50ZXInKXtcclxuICAgICAgICAgIGlmICh0aGlzLnBhcnQyLmRhdGEoKSAhPSBudWxsKXtcclxuICAgICAgICAgICAgdGhpcy5wYXJ0MS5mb2N1cygpO1xyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMucGFydDIuZm9jdXMoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAocCA9PT0gJ1BhcnQ0Jyl7XHJcbiAgICAgICAgaWYgKGEgPT09ICdUYWInIHx8IGEgPT09ICdFbnRlcicpe1xyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KCdUYWInKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGEgPT09ICdTaGlmdFRhYicgfHwgYSA9PT0gJ1NoaWZ0RW50ZXInKXtcclxuICAgICAgICAgIHRoaXMucGFydDMuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlBsYXF1ZU0gfHwgdGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlBsYXF1ZUYpe1xyXG4gICAgICBpZiAocCA9PT0gJ1BhcnQxJyl7XHJcbiAgICAgICAgaWYgKGEgPT09ICdUYWInIHx8IGEgPT09ICdFbnRlcicpe1xyXG4gICAgICAgICAgdGhpcy5wYXJ0My5mb2N1cygpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoYSA9PT0gJ1NoaWZ0VGFiJyB8fCBhID09PSAnU2hpZnRFbnRlcicpe1xyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KCdTaGlmdFRhYicpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChwID09PSAnUGFydDMnKXtcclxuICAgICAgICBpZiAoYSA9PT0gJ1RhYicgfHwgYSA9PT0gJ0VudGVyJyl7XHJcbiAgICAgICAgICB0aGlzLmNoYW5nZUluZGV4LmVtaXQoJ1RhYicpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoYSA9PT0gJ1NoaWZ0VGFiJyB8fCBhID09PSAnU2hpZnRFbnRlcicpe1xyXG4gICAgICAgICAgdGhpcy5wYXJ0MS5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuUGxhcXVlRyl7XHJcbiAgICAgIGlmIChwID09PSAnUGFydDEnKXtcclxuICAgICAgICBpZiAoYSA9PT0gJ1RhYicgfHwgYSA9PT0gJ0VudGVyJyl7XHJcbiAgICAgICAgICB0aGlzLmNoYW5nZUluZGV4LmVtaXQoJ1RhYicpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoYSA9PT0gJ1NoaWZ0VGFiJyB8fCBhID09PSAnU2hpZnRFbnRlcicpe1xyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KCdTaGlmdFRhYicpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBvbkZvY3VzSW4oZSA9IG51bGwpOiB2b2lke1xyXG4gICAgaWYgKGUgPT0gbnVsbCB8fCAhKGUuc2NyZWVuWCAmJiBlLnNjcmVlblggIT09IDAgJiYgZS5zY3JlZW5ZICYmIGUuc2NyZWVuWSAhPT0gMCkpe1xyXG4gICAgICB0aGlzLnBhcnQxLmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uS2V5RG93bihlKTogdm9pZHtcclxuICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgIGNvbnN0IGNvZGUgPSBlLmtleUNvZGUgfHwgZS53aGljaDtcclxuICAgIGlmIChjb2RlID09PSA5KSB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KGUuc2hpZnRLZXkgPyAnU2hpZnRUYWInIDogJ1RhYicpO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXRWYWx1ZSgpOiBzdHJpbmd7XHJcbiAgICByZXR1cm4gKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5QbGFxdWUgP1xyXG4gICAgICBgJHt0aGlzLnBhcnQxLnZhbHVlID8gdGhpcy5wYXJ0MS52YWx1ZSA6ICcnfV8ke3RoaXMucGFydDIudmFsdWUgPyB0aGlzLnBhcnQyLnZhbHVlIDogJyd9XyR7dGhpcy5wYXJ0My52YWx1ZSA/IHRoaXMucGFydDMudmFsdWUgOiAnJ31fJHt0aGlzLnBhcnQ0LnZhbHVlID8gdGhpcy5wYXJ0NC52YWx1ZSA6ICcnfWAgOlxyXG4gICAgICAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlBsYXF1ZU0gfHwgdGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlBsYXF1ZUYgPyBgJHt0aGlzLnBhcnQxLnZhbHVlID8gdGhpcy5wYXJ0MS52YWx1ZSA6ICcnfV8ke3RoaXMucGFydDMudmFsdWUgPyB0aGlzLnBhcnQzLnZhbHVlIDogJyd9YCA6IGAke3RoaXMucGFydDEudmFsdWUgPyB0aGlzLnBhcnQxLnZhbHVlIDogJyd9YCkpLnRvVXBwZXJDYXNlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
257
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5wbGFxdWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1Byb2plY3RzL1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Zvcm0vcGxhcXVlL2Zvcm0ucGxhcXVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFPMUQsTUFBTSxPQUFPLG1CQUFtQjtJQWE5QjtRQVRBLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQVV6QyxDQUFDO0lBTEQsSUFBSSxJQUFJLEtBQXVCLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQztJQU9sRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNLEVBQUUsZ0NBQWdDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdJLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSSxFQUFFLGdDQUFnQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pKLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTSxFQUFFLGdDQUFnQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3SSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxnQ0FBZ0MsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNySixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDOUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3pHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQzFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLE9BQU8sRUFBQztZQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7WUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1lBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLGdCQUFnQixDQUFDO1lBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLGdCQUFnQixDQUFDO1lBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksZ0JBQWdCLENBQUM7WUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksZ0JBQWdCLENBQUM7U0FDdEM7YUFBTSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxPQUFPLEVBQUM7WUFDN0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1lBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxnQkFBZ0IsQ0FBQztZQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxnQkFBZ0IsQ0FBQztZQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksZ0JBQWdCLENBQUM7WUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksZ0JBQWdCLENBQUM7U0FDdEM7YUFBTSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxPQUFPLEVBQUM7WUFDN0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLGdCQUFnQixDQUFDO1lBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLGdCQUFnQixDQUFDO1lBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLGdCQUFnQixDQUFDO1lBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLGdCQUFnQixDQUFDO1NBQ3RDO2FBQUs7WUFDSixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztZQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7U0FDNUI7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUN0QixJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxNQUFNLEVBQUM7Z0JBQ3ZELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3hCO2lCQUFNLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLE9BQU8sRUFBQztnQkFDL0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDeEI7UUFDSCxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUN0QixJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFDO2dCQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN4QjtpQkFBTSxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFDO2dCQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN4QjtRQUNILENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLE1BQU0sRUFBQztnQkFDdkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDeEI7aUJBQU0sSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsTUFBTSxFQUFDO2dCQUM5RCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN4QjtpQkFBTSxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxPQUFPLEVBQUM7Z0JBQy9ELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzlCO2lCQUFNLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLE9BQU8sRUFBQztnQkFDL0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDeEI7UUFDSCxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUN0QixJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFDO2dCQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM5QjtpQkFBTSxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFDO2dCQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN4QjtRQUNILENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDeEIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxNQUFNLEVBQUM7Z0JBQ3JDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO29CQUNuQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzlCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUNUO2lCQUFNLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsT0FBTyxFQUFDO2dCQUNwRixVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNkLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztvQkFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzlCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUNUO2lCQUFNLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLE9BQU8sRUFBQztnQkFDN0MsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDZCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7b0JBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDOUIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2FBQ1Q7aUJBQUk7Z0JBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2FBQ3ZCO1FBQ0gsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7Z0JBQ3JDLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRTtnQkFDekMsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUNELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFDO2dCQUMzSSxPQUFPLEtBQUssQ0FBQzthQUNkO1lBQ0QsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxPQUFPLEVBQUM7Z0JBQzdFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ3JEO1lBQ0QsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsT0FBTyxFQUFDO2dCQUN0QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDN0I7WUFDRCxPQUFPLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNuRixDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUM7SUFDSixDQUFDO0lBQ0QsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsTUFBTSxFQUFDO1lBQ3JDLElBQUksQ0FBQyxLQUFLLE9BQU8sRUFBQztnQkFDaEIsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxPQUFPLEVBQUM7b0JBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUN4QjtxQkFBTSxJQUFJLENBQUMsS0FBSyxVQUFVLElBQUksQ0FBQyxLQUFLLFlBQVksRUFBQztvQkFDaEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ25DO2FBQ0Y7aUJBQU0sSUFBSSxDQUFDLEtBQUssT0FBTyxFQUFDO2dCQUN2QixJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLE9BQU8sRUFBQztvQkFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3hCO3FCQUFNLElBQUksQ0FBQyxLQUFLLFVBQVUsSUFBSSxDQUFDLEtBQUssWUFBWSxFQUFDO29CQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDeEI7YUFDRjtpQkFBTSxJQUFJLENBQUMsS0FBSyxPQUFPLEVBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssT0FBTyxFQUFDO29CQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDeEI7cUJBQU0sSUFBSSxDQUFDLEtBQUssVUFBVSxJQUFJLENBQUMsS0FBSyxZQUFZLEVBQUM7b0JBQ2hELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUN4QjthQUNGO2lCQUFNLElBQUksQ0FBQyxLQUFLLE9BQU8sRUFBQztnQkFDdkIsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxPQUFPLEVBQUM7b0JBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUM5QjtxQkFBTSxJQUFJLENBQUMsS0FBSyxVQUFVLElBQUksQ0FBQyxLQUFLLFlBQVksRUFBQztvQkFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3hCO2FBQ0Y7U0FDRjthQUFNLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsT0FBTyxFQUFDO1lBQ3BGLElBQUksQ0FBQyxLQUFLLE9BQU8sRUFBQztnQkFDaEIsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxPQUFPLEVBQUM7b0JBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUN4QjtxQkFBTSxJQUFJLENBQUMsS0FBSyxVQUFVLElBQUksQ0FBQyxLQUFLLFlBQVksRUFBQztvQkFDaEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ25DO2FBQ0Y7aUJBQU0sSUFBSSxDQUFDLEtBQUssT0FBTyxFQUFDO2dCQUN2QixJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLE9BQU8sRUFBQztvQkFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQzlCO3FCQUFNLElBQUksQ0FBQyxLQUFLLFVBQVUsSUFBSSxDQUFDLEtBQUssWUFBWSxFQUFDO29CQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDeEI7YUFDRjtTQUNGO2FBQU0sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsT0FBTyxFQUFDO1lBQzdDLElBQUksQ0FBQyxLQUFLLE9BQU8sRUFBQztnQkFDaEIsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxPQUFPLEVBQUM7b0JBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUM5QjtxQkFBTSxJQUFJLENBQUMsS0FBSyxVQUFVLElBQUksQ0FBQyxLQUFLLFlBQVksRUFBQztvQkFDaEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ25DO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFDRCxTQUFTLENBQUMsQ0FBQyxHQUFHLElBQUk7UUFDaEIsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsRUFBQztZQUMvRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFDRCxTQUFTLENBQUMsQ0FBQztRQUNULElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUN0QixNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDbEMsSUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFO1lBQ2QsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEQ7SUFDSCxDQUFDO0lBQ0QsUUFBUTtRQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbkwsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM1TyxDQUFDOzs7WUFsT0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLHVxQ0FBMkM7O2FBRTVDOzs7O2tCQUVFLEtBQUs7MEJBRUwsTUFBTTt3QkFPTixTQUFTLFNBQUMsV0FBVzt1QkFDckIsU0FBUyxTQUFDLFVBQVU7eUJBQ3BCLFNBQVMsU0FBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0lucHV0Q2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS5jbGFzcyc7XHJcbmltcG9ydCB7SW5wdXRFcnJvciwgSW5wdXRUeXBlfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2VudW0uY2xhc3MnO1xyXG5pbXBvcnQge0hlbHBlckNsYXNzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2hlbHBlci5jbGFzcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1mb3JtLXBsYXF1ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0ucGxhcXVlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtLnBsYXF1ZS5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1QbGFxdWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgQElucHV0KClcclxuICBpbnA6IElucHV0Q2xhc3M7XHJcbiAgQE91dHB1dCgpXHJcbiAgY2hhbmdlSW5kZXggPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBwYXJ0MTogSW5wdXRDbGFzcztcclxuICBwYXJ0MjogSW5wdXRDbGFzcztcclxuICBwYXJ0MzogSW5wdXRDbGFzcztcclxuICBwYXJ0NDogSW5wdXRDbGFzcztcclxuICBnZXQgdHlwZSgpOiB0eXBlb2YgSW5wdXRUeXBlIHsgcmV0dXJuIElucHV0VHlwZTsgfVxyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0QmFzZScpIGlucHV0QmFzZTogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdpbnB1dERpdicpIGlucHV0RGl2OiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0TGFiZWwnKSBpbnB1dExhYmVsOiBFbGVtZW50UmVmO1xyXG4gIGNvbnN0cnVjdG9yKCl7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucGFydDEgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmlucC5lbnZpcm9ubWVudCwgdGhpcy5pbnAubCwgJ1BhcnQxJywgbnVsbCwgSW5wdXRUeXBlLk51bWJlciwgJ3BsYXF1ZS1wYXJ0LTEgcGxhcXVlLXBhcnQtaXRlbScsIG51bGwsIHRydWUpO1xyXG4gICAgdGhpcy5wYXJ0MiA9IG5ldyBJbnB1dENsYXNzKHRoaXMuaW5wLmVudmlyb25tZW50LCB0aGlzLmlucC5sLCAnUGFydDInLCBudWxsLCBJbnB1dFR5cGUuVGV4dCwgJ3BsYXF1ZS1wYXJ0LTIgcGxhcXVlLXBhcnQtaXRlbScsIG51bGwsIHRydWUsIDEsIDEpO1xyXG4gICAgdGhpcy5wYXJ0MyA9IG5ldyBJbnB1dENsYXNzKHRoaXMuaW5wLmVudmlyb25tZW50LCB0aGlzLmlucC5sLCAnUGFydDMnLCBudWxsLCBJbnB1dFR5cGUuTnVtYmVyLCAncGxhcXVlLXBhcnQtMyBwbGFxdWUtcGFydC1pdGVtJywgbnVsbCwgdHJ1ZSk7XHJcbiAgICB0aGlzLnBhcnQ0ID0gbmV3IElucHV0Q2xhc3ModGhpcy5pbnAuZW52aXJvbm1lbnQsIHRoaXMuaW5wLmwsICdQYXJ0NCcsIG51bGwsIElucHV0VHlwZS5OdW1iZXIsICdwbGFxdWUtcGFydC00IHBsYXF1ZS1wYXJ0LWl0ZW0nLCBudWxsLCB0cnVlLCAxMCwgOTkpO1xyXG4gICAgdGhpcy5wYXJ0MS5kaXNwbGF5TGFiZWwgPSB0aGlzLnBhcnQyLmRpc3BsYXlMYWJlbCA9IHRoaXMucGFydDMuZGlzcGxheUxhYmVsID0gdGhpcy5wYXJ0NC5kaXNwbGF5TGFiZWwgPSBmYWxzZTtcclxuICAgIHRoaXMucGFydDEucGxhY2Vob2xkZXIgPSB0aGlzLnBhcnQyLnBsYWNlaG9sZGVyID0gdGhpcy5wYXJ0My5wbGFjZWhvbGRlciA9IHRoaXMucGFydDQucGxhY2Vob2xkZXIgPSBudWxsO1xyXG4gICAgdGhpcy5wYXJ0MS5kaXNhYmxlZCA9IHRoaXMucGFydDIuZGlzYWJsZWQgPSB0aGlzLnBhcnQzLmRpc2FibGVkID0gdGhpcy5wYXJ0NC5kaXNhYmxlZCA9IHRoaXMuaW5wLmRpc2FibGVkO1xyXG4gICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5QbGFxdWVNKXtcclxuICAgICAgdGhpcy5wYXJ0MS5taW5MZW5ndGggPSAxMDA7XHJcbiAgICAgIHRoaXMucGFydDEubWF4TGVuZ3RoID0gOTk5O1xyXG4gICAgICB0aGlzLnBhcnQxLmNsYXNzICs9ICcgcGxhcXVlLXBhcnQtbSc7XHJcbiAgICAgIHRoaXMucGFydDIuY2xhc3MgKz0gJyBwbGFxdWUtcGFydC1tJztcclxuICAgICAgdGhpcy5wYXJ0My5taW5MZW5ndGggPSAxMDAwMDtcclxuICAgICAgdGhpcy5wYXJ0My5tYXhMZW5ndGggPSA5OTk5OTtcclxuICAgICAgdGhpcy5wYXJ0My5jbGFzcyArPSAnIHBsYXF1ZS1wYXJ0LW0nO1xyXG4gICAgICB0aGlzLnBhcnQ0LmNsYXNzICs9ICcgcGxhcXVlLXBhcnQtbSc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5QbGFxdWVGKXtcclxuICAgICAgdGhpcy5wYXJ0MS5taW5MZW5ndGggPSAxMDA7XHJcbiAgICAgIHRoaXMucGFydDEubWF4TGVuZ3RoID0gOTk5OTk5OTk5O1xyXG4gICAgICB0aGlzLnBhcnQxLmNsYXNzICs9ICcgcGxhcXVlLXBhcnQtZic7XHJcbiAgICAgIHRoaXMucGFydDIuY2xhc3MgKz0gJyBwbGFxdWUtcGFydC1mJztcclxuICAgICAgdGhpcy5wYXJ0My5taW5MZW5ndGggPSAxO1xyXG4gICAgICB0aGlzLnBhcnQzLm1heExlbmd0aCA9IDIwO1xyXG4gICAgICB0aGlzLnBhcnQzLnR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgdGhpcy5wYXJ0My5jbGFzcyArPSAnIHBsYXF1ZS1wYXJ0LWYnO1xyXG4gICAgICB0aGlzLnBhcnQ0LmNsYXNzICs9ICcgcGxhcXVlLXBhcnQtZic7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5QbGFxdWVHKXtcclxuICAgICAgdGhpcy5wYXJ0MS5taW5MZW5ndGggPSAzO1xyXG4gICAgICB0aGlzLnBhcnQxLm1heExlbmd0aCA9IDE1O1xyXG4gICAgICB0aGlzLnBhcnQxLnR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgdGhpcy5wYXJ0MS5jbGFzcyArPSAnIHBsYXF1ZS1wYXJ0LWcnO1xyXG4gICAgICB0aGlzLnBhcnQyLmNsYXNzICs9ICcgcGxhcXVlLXBhcnQtZyc7XHJcbiAgICAgIHRoaXMucGFydDMuY2xhc3MgKz0gJyBwbGFxdWUtcGFydC1nJztcclxuICAgICAgdGhpcy5wYXJ0NC5jbGFzcyArPSAnIHBsYXF1ZS1wYXJ0LWcnO1xyXG4gICAgfSBlbHNle1xyXG4gICAgICB0aGlzLnBhcnQxLm1pbkxlbmd0aCA9IDEwO1xyXG4gICAgICB0aGlzLnBhcnQxLm1heExlbmd0aCA9IDk5O1xyXG4gICAgICB0aGlzLnBhcnQzLm1pbkxlbmd0aCA9IDEwMDtcclxuICAgICAgdGhpcy5wYXJ0My5tYXhMZW5ndGggPSA5OTk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnBhcnQxLm9uQ2hhbmdlID0gKHYpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICBpZiAodi5sZW5ndGggPT09IDIgJiYgdGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlBsYXF1ZSl7XHJcbiAgICAgICAgdGhpcy5wYXJ0Mi5mb2N1cyh0cnVlKTtcclxuICAgICAgfSBlbHNlIGlmICh2Lmxlbmd0aCA9PT0gMyAmJiB0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuUGxhcXVlTSl7XHJcbiAgICAgICAgdGhpcy5wYXJ0My5mb2N1cyh0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMucGFydDIub25DaGFuZ2UgPSAodikgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIGlmICh2Lmxlbmd0aCA9PT0gMSl7XHJcbiAgICAgICAgdGhpcy5wYXJ0My5mb2N1cyh0cnVlKTtcclxuICAgICAgfSBlbHNlIGlmICh2Lmxlbmd0aCA9PT0gMCl7XHJcbiAgICAgICAgdGhpcy5wYXJ0MS5mb2N1cyh0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMucGFydDMub25DaGFuZ2UgPSAodikgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIGlmICh2Lmxlbmd0aCA9PT0gMyAmJiB0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuUGxhcXVlKXtcclxuICAgICAgICB0aGlzLnBhcnQ0LmZvY3VzKHRydWUpO1xyXG4gICAgICB9IGVsc2UgaWYgKHYubGVuZ3RoID09PSAwICYmIHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5QbGFxdWUpe1xyXG4gICAgICAgIHRoaXMucGFydDIuZm9jdXModHJ1ZSk7XHJcbiAgICAgIH0gZWxzZSBpZiAodi5sZW5ndGggPT09IDUgJiYgdGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlBsYXF1ZU0pe1xyXG4gICAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdCgnVGFiJyk7XHJcbiAgICAgIH0gZWxzZSBpZiAodi5sZW5ndGggPT09IDAgJiYgdGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlBsYXF1ZU0pe1xyXG4gICAgICAgIHRoaXMucGFydDEuZm9jdXModHJ1ZSk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLnBhcnQ0Lm9uQ2hhbmdlID0gKHYpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICBpZiAodi5sZW5ndGggPT09IDIpe1xyXG4gICAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdCgnVGFiJyk7XHJcbiAgICAgIH0gZWxzZSBpZiAodi5sZW5ndGggPT09IDApe1xyXG4gICAgICAgIHRoaXMucGFydDMuZm9jdXModHJ1ZSk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5zZXRWYWx1ZSA9ICh2KSA9PiB7XHJcbiAgICAgIGNvbnN0IHBhcnRzID0gdi5zcGxpdCgnXycpO1xyXG4gICAgICBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlBsYXF1ZSl7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlucC52YWx1ZSA9IHY7XHJcbiAgICAgICAgICB0aGlzLnBhcnQxLnZhbHVlID0gcGFydHNbMF07XHJcbiAgICAgICAgICB0aGlzLnBhcnQyLnZhbHVlID0gcGFydHNbMV07XHJcbiAgICAgICAgICB0aGlzLnBhcnQzLnZhbHVlID0gcGFydHNbMl07XHJcbiAgICAgICAgICB0aGlzLnBhcnQ0LnZhbHVlID0gcGFydHNbM107XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuUGxhcXVlTSB8fCB0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuUGxhcXVlRil7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlucC52YWx1ZSA9IHY7XHJcbiAgICAgICAgICB0aGlzLnBhcnQxLnZhbHVlID0gcGFydHNbMF07XHJcbiAgICAgICAgICB0aGlzLnBhcnQzLnZhbHVlID0gcGFydHNbMV07XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuUGxhcXVlRyl7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlucC52YWx1ZSA9IHY7XHJcbiAgICAgICAgICB0aGlzLnBhcnQxLnZhbHVlID0gcGFydHNbMF07XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5wYXJ0MS52YWx1ZSA9ICcnO1xyXG4gICAgICAgIHRoaXMucGFydDIudmFsdWUgPSAnJztcclxuICAgICAgICB0aGlzLnBhcnQzLnZhbHVlID0gJyc7XHJcbiAgICAgICAgdGhpcy5wYXJ0NC52YWx1ZSA9ICcnO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuaXNWYWxpZCA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAudmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XHJcbiAgICAgIGlmICh0aGlzLmlucC5yZXF1aXJlZCAmJiAhdGhpcy5pbnAudmFsdWUpIHtcclxuICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuUmVxdWlyZWQ7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5pbnAucmVxdWlyZWQgJiYgIXRoaXMuaW5wLnZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5QbGFxdWUgJiYgKCF0aGlzLnBhcnQxLmlzVmFsaWQoKSB8fCAhdGhpcy5wYXJ0Mi5pc1ZhbGlkKCkgfHwgIXRoaXMucGFydDMuaXNWYWxpZCgpIHx8ICF0aGlzLnBhcnQ0LmlzVmFsaWQoKSkpe1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlBsYXF1ZU0gfHwgdGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlBsYXF1ZUYpe1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBhcnQxLmlzVmFsaWQoKSAmJiB0aGlzLnBhcnQzLmlzVmFsaWQoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlBsYXF1ZUcpe1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBhcnQxLmlzVmFsaWQoKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gSGVscGVyQ2xhc3MucGxhcXVlVmFsaWQodGhpcy5pbnAudmFsdWUsIHRoaXMuaW5wLnR5cGUpO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmNsZWFyID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlID0gdGhpcy5pbnAuZGVmYXVsdDtcclxuICAgICAgdGhpcy5wYXJ0MS52YWx1ZSA9IHRoaXMucGFydDIudmFsdWUgPSB0aGlzLnBhcnQzLnZhbHVlID0gdGhpcy5wYXJ0NC52YWx1ZSA9IG51bGw7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuZGF0YSA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsdWUoKTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5mb2N1cyA9ICgpID0+IHtcclxuICAgICAgdGhpcy5vbkZvY3VzSW4oKTtcclxuICAgIH07XHJcbiAgfVxyXG4gIGNoYW5nZUZvY3VzKHAsIGEpOiB2b2lke1xyXG4gICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5QbGFxdWUpe1xyXG4gICAgICBpZiAocCA9PT0gJ1BhcnQxJyl7XHJcbiAgICAgICAgaWYgKGEgPT09ICdUYWInIHx8IGEgPT09ICdFbnRlcicpe1xyXG4gICAgICAgICAgdGhpcy5wYXJ0Mi5mb2N1cyh0cnVlKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGEgPT09ICdTaGlmdFRhYicgfHwgYSA9PT0gJ1NoaWZ0RW50ZXInKXtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdCgnU2hpZnRUYWInKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAocCA9PT0gJ1BhcnQyJyl7XHJcbiAgICAgICAgaWYgKGEgPT09ICdUYWInIHx8IGEgPT09ICdFbnRlcicpe1xyXG4gICAgICAgICAgdGhpcy5wYXJ0My5mb2N1cyh0cnVlKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGEgPT09ICdTaGlmdFRhYicgfHwgYSA9PT0gJ1NoaWZ0RW50ZXInKXtcclxuICAgICAgICAgIHRoaXMucGFydDEuZm9jdXModHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHAgPT09ICdQYXJ0Mycpe1xyXG4gICAgICAgIGlmIChhID09PSAnVGFiJyB8fCBhID09PSAnRW50ZXInKXtcclxuICAgICAgICAgIHRoaXMucGFydDQuZm9jdXModHJ1ZSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChhID09PSAnU2hpZnRUYWInIHx8IGEgPT09ICdTaGlmdEVudGVyJyl7XHJcbiAgICAgICAgICB0aGlzLnBhcnQyLmZvY3VzKHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChwID09PSAnUGFydDQnKXtcclxuICAgICAgICBpZiAoYSA9PT0gJ1RhYicgfHwgYSA9PT0gJ0VudGVyJyl7XHJcbiAgICAgICAgICB0aGlzLmNoYW5nZUluZGV4LmVtaXQoJ1RhYicpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoYSA9PT0gJ1NoaWZ0VGFiJyB8fCBhID09PSAnU2hpZnRFbnRlcicpe1xyXG4gICAgICAgICAgdGhpcy5wYXJ0My5mb2N1cyh0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlBsYXF1ZU0gfHwgdGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlBsYXF1ZUYpe1xyXG4gICAgICBpZiAocCA9PT0gJ1BhcnQxJyl7XHJcbiAgICAgICAgaWYgKGEgPT09ICdUYWInIHx8IGEgPT09ICdFbnRlcicpe1xyXG4gICAgICAgICAgdGhpcy5wYXJ0My5mb2N1cyh0cnVlKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGEgPT09ICdTaGlmdFRhYicgfHwgYSA9PT0gJ1NoaWZ0RW50ZXInKXtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdCgnU2hpZnRUYWInKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAocCA9PT0gJ1BhcnQzJyl7XHJcbiAgICAgICAgaWYgKGEgPT09ICdUYWInIHx8IGEgPT09ICdFbnRlcicpe1xyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KCdUYWInKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGEgPT09ICdTaGlmdFRhYicgfHwgYSA9PT0gJ1NoaWZ0RW50ZXInKXtcclxuICAgICAgICAgIHRoaXMucGFydDEuZm9jdXModHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5QbGFxdWVHKXtcclxuICAgICAgaWYgKHAgPT09ICdQYXJ0MScpe1xyXG4gICAgICAgIGlmIChhID09PSAnVGFiJyB8fCBhID09PSAnRW50ZXInKXtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdCgnVGFiJyk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChhID09PSAnU2hpZnRUYWInIHx8IGEgPT09ICdTaGlmdEVudGVyJyl7XHJcbiAgICAgICAgICB0aGlzLmNoYW5nZUluZGV4LmVtaXQoJ1NoaWZ0VGFiJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uRm9jdXNJbihlID0gbnVsbCk6IHZvaWR7XHJcbiAgICBpZiAoZSA9PSBudWxsIHx8ICEoZS5zY3JlZW5YICYmIGUuc2NyZWVuWCAhPT0gMCAmJiBlLnNjcmVlblkgJiYgZS5zY3JlZW5ZICE9PSAwKSl7XHJcbiAgICAgIHRoaXMucGFydDEuZm9jdXModHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uS2V5RG93bihlKTogdm9pZHtcclxuICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgIGNvbnN0IGNvZGUgPSBlLmtleUNvZGUgfHwgZS53aGljaDtcclxuICAgIGlmIChjb2RlID09PSA5KSB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KGUuc2hpZnRLZXkgPyAnU2hpZnRUYWInIDogJ1RhYicpO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXRWYWx1ZSgpOiBzdHJpbmd7XHJcbiAgICByZXR1cm4gKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5QbGFxdWUgP1xyXG4gICAgICBgJHt0aGlzLnBhcnQxLnZhbHVlID8gdGhpcy5wYXJ0MS52YWx1ZSA6ICcnfV8ke3RoaXMucGFydDIudmFsdWUgPyB0aGlzLnBhcnQyLnZhbHVlIDogJyd9XyR7dGhpcy5wYXJ0My52YWx1ZSA/IHRoaXMucGFydDMudmFsdWUgOiAnJ31fJHt0aGlzLnBhcnQ0LnZhbHVlID8gdGhpcy5wYXJ0NC52YWx1ZSA6ICcnfWAgOlxyXG4gICAgICAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlBsYXF1ZU0gfHwgdGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlBsYXF1ZUYgPyBgJHt0aGlzLnBhcnQxLnZhbHVlID8gdGhpcy5wYXJ0MS52YWx1ZSA6ICcnfV8ke3RoaXMucGFydDMudmFsdWUgPyB0aGlzLnBhcnQzLnZhbHVlIDogJyd9YCA6IGAke3RoaXMucGFydDEudmFsdWUgPyB0aGlzLnBhcnQxLnZhbHVlIDogJyd9YCkpLnRvVXBwZXJDYXNlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -110,32 +110,44 @@ export class FormPlaqueSelectComponent {
|
|
|
110
110
|
this.inp.error = null;
|
|
111
111
|
this.inp.value = null;
|
|
112
112
|
if (v.length === 2 && this.inp.type === InputType.SelectAutoCompletePlaque) {
|
|
113
|
-
this.part2.focus();
|
|
113
|
+
this.part2.focus(true);
|
|
114
114
|
this.loadOptions();
|
|
115
115
|
}
|
|
116
116
|
else if (v.length === 3 && this.inp.type === InputType.SelectAutoCompletePlaqueM) {
|
|
117
|
-
this.part3.focus();
|
|
117
|
+
this.part3.focus(true);
|
|
118
118
|
this.loadOptions();
|
|
119
119
|
}
|
|
120
120
|
};
|
|
121
|
-
this.part2.onChange = () => {
|
|
121
|
+
this.part2.onChange = (v) => {
|
|
122
122
|
this.inp.error = null;
|
|
123
123
|
this.inp.value = null;
|
|
124
|
-
|
|
125
|
-
this.part3.focus();
|
|
124
|
+
if (v.length === 1) {
|
|
125
|
+
this.part3.focus(true);
|
|
126
126
|
this.loadOptions();
|
|
127
|
-
}
|
|
127
|
+
}
|
|
128
|
+
else if (v.length === 0) {
|
|
129
|
+
this.part1.focus(true);
|
|
130
|
+
this.loadOptions();
|
|
131
|
+
}
|
|
128
132
|
};
|
|
129
133
|
this.part3.onChange = (v) => {
|
|
130
134
|
this.inp.error = null;
|
|
131
135
|
this.inp.value = null;
|
|
132
136
|
if (v.length === 3 && this.inp.type === InputType.SelectAutoCompletePlaque) {
|
|
133
|
-
this.part4.focus();
|
|
137
|
+
this.part4.focus(true);
|
|
138
|
+
this.loadOptions();
|
|
139
|
+
}
|
|
140
|
+
else if (v.length === 0 && this.inp.type === InputType.SelectAutoCompletePlaque) {
|
|
141
|
+
this.part2.focus(true);
|
|
134
142
|
this.loadOptions();
|
|
135
143
|
}
|
|
136
144
|
else if (v.length === 5 && this.inp.type === InputType.SelectAutoCompletePlaqueM) {
|
|
137
145
|
this.loadOptions();
|
|
138
146
|
}
|
|
147
|
+
else if (v.length === 0 && this.inp.type === InputType.SelectAutoCompletePlaqueM) {
|
|
148
|
+
this.part1.focus(true);
|
|
149
|
+
this.loadOptions();
|
|
150
|
+
}
|
|
139
151
|
};
|
|
140
152
|
this.part4.onChange = (v) => {
|
|
141
153
|
this.inp.error = null;
|
|
@@ -143,6 +155,9 @@ export class FormPlaqueSelectComponent {
|
|
|
143
155
|
if (v.length === 2) {
|
|
144
156
|
this.loadOptions();
|
|
145
157
|
}
|
|
158
|
+
else if (v.length === 0) {
|
|
159
|
+
this.part3.focus(true);
|
|
160
|
+
}
|
|
146
161
|
};
|
|
147
162
|
this.part1.onKeyDown = this.part2.onKeyDown = this.part3.onKeyDown = this.part4.onKeyDown = (e) => {
|
|
148
163
|
const code = e.keyCode || e.which;
|
|
@@ -151,6 +166,8 @@ export class FormPlaqueSelectComponent {
|
|
|
151
166
|
}
|
|
152
167
|
};
|
|
153
168
|
this.part1.onFocusOut = (e) => {
|
|
169
|
+
console.log($(e.relatedTarget));
|
|
170
|
+
console.log($(e.rangeParent));
|
|
154
171
|
if (!$(e.relatedTarget).closest('.form-input.plaque-select').hasClass('plaque-select') && !$(e.rangeParent).closest('.form-input.plaque-select').hasClass('plaque-select')) {
|
|
155
172
|
if (this.open) {
|
|
156
173
|
this.closeOptions();
|
|
@@ -197,7 +214,7 @@ export class FormPlaqueSelectComponent {
|
|
|
197
214
|
}
|
|
198
215
|
focusInput(f = false) {
|
|
199
216
|
if (f) {
|
|
200
|
-
this.part1.focus();
|
|
217
|
+
this.part1.focus(true);
|
|
201
218
|
}
|
|
202
219
|
}
|
|
203
220
|
closeOptions() {
|
|
@@ -365,12 +382,7 @@ export class FormPlaqueSelectComponent {
|
|
|
365
382
|
if (this.inp.type === InputType.SelectAutoCompletePlaque) {
|
|
366
383
|
if (p === 'Part1') {
|
|
367
384
|
if (a === 'Tab' || a === 'Enter') {
|
|
368
|
-
|
|
369
|
-
this.part3.focus();
|
|
370
|
-
}
|
|
371
|
-
else {
|
|
372
|
-
this.part2.focus();
|
|
373
|
-
}
|
|
385
|
+
this.part2.focus(true);
|
|
374
386
|
}
|
|
375
387
|
else if (a === 'ShiftTab' || a === 'ShiftEnter') {
|
|
376
388
|
this.changeIndex.emit('ShiftTab');
|
|
@@ -378,23 +390,18 @@ export class FormPlaqueSelectComponent {
|
|
|
378
390
|
}
|
|
379
391
|
else if (p === 'Part2') {
|
|
380
392
|
if (a === 'Tab' || a === 'Enter') {
|
|
381
|
-
this.part3.focus();
|
|
393
|
+
this.part3.focus(true);
|
|
382
394
|
}
|
|
383
395
|
else if (a === 'ShiftTab' || a === 'ShiftEnter') {
|
|
384
|
-
this.part1.focus();
|
|
396
|
+
this.part1.focus(true);
|
|
385
397
|
}
|
|
386
398
|
}
|
|
387
399
|
else if (p === 'Part3') {
|
|
388
400
|
if (a === 'Tab' || a === 'Enter') {
|
|
389
|
-
this.part4.focus();
|
|
401
|
+
this.part4.focus(true);
|
|
390
402
|
}
|
|
391
403
|
else if (a === 'ShiftTab' || a === 'ShiftEnter') {
|
|
392
|
-
|
|
393
|
-
this.part1.focus();
|
|
394
|
-
}
|
|
395
|
-
else {
|
|
396
|
-
this.part2.focus();
|
|
397
|
-
}
|
|
404
|
+
this.part2.focus(true);
|
|
398
405
|
}
|
|
399
406
|
}
|
|
400
407
|
else if (p === 'Part4') {
|
|
@@ -402,14 +409,14 @@ export class FormPlaqueSelectComponent {
|
|
|
402
409
|
this.changeIndex.emit('Tab');
|
|
403
410
|
}
|
|
404
411
|
else if (a === 'ShiftTab' || a === 'ShiftEnter') {
|
|
405
|
-
this.part3.focus();
|
|
412
|
+
this.part3.focus(true);
|
|
406
413
|
}
|
|
407
414
|
}
|
|
408
415
|
}
|
|
409
416
|
else if (this.inp.type === InputType.SelectAutoCompletePlaqueM || this.inp.type === InputType.SelectAutoCompletePlaqueF) {
|
|
410
417
|
if (p === 'Part1') {
|
|
411
418
|
if (a === 'Tab' || a === 'Enter') {
|
|
412
|
-
this.part3.focus();
|
|
419
|
+
this.part3.focus(true);
|
|
413
420
|
if (this.inp.type === InputType.SelectAutoCompletePlaqueF) {
|
|
414
421
|
this.loadOptions();
|
|
415
422
|
}
|
|
@@ -423,7 +430,7 @@ export class FormPlaqueSelectComponent {
|
|
|
423
430
|
this.changeIndex.emit('Tab');
|
|
424
431
|
}
|
|
425
432
|
else if (a === 'ShiftTab' || a === 'ShiftEnter') {
|
|
426
|
-
this.part1.focus();
|
|
433
|
+
this.part1.focus(true);
|
|
427
434
|
if (this.inp.type === InputType.SelectAutoCompletePlaqueF) {
|
|
428
435
|
this.loadOptions();
|
|
429
436
|
}
|
|
@@ -462,4 +469,4 @@ FormPlaqueSelectComponent.propDecorators = {
|
|
|
462
469
|
inputOptionsDiv: [{ type: ViewChild, args: ['inputOptionsDiv',] }],
|
|
463
470
|
inputLabel: [{ type: ViewChild, args: ['inputLabel',] }]
|
|
464
471
|
};
|
|
465
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5wbGFxdWUuc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9qZWN0cy9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9mb3JtL3BsYXF1ZS9zZWxlY3QvZm9ybS5wbGFxdWUuc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUMsVUFBVSxFQUFjLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQU9yRSxNQUFNLE9BQU8seUJBQXlCO0lBTHRDO1FBT0UsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBR3pDLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFDYixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsUUFBRyxHQUFHLEtBQUssQ0FBQztJQW1hZCxDQUFDO0lBOVpDLElBQUksSUFBSSxLQUF1QixPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFLbEQsUUFBUTtRQUNOLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUN4QixDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFD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QUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNsTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUN6RyxDQUFDOzs7WUE5YUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLHd1REFBa0Q7O2FBRW5EOzs7MEJBRUUsTUFBTTtrQkFFTixLQUFLO3VCQVVMLFNBQVMsU0FBQyxVQUFVO3dCQUNwQixTQUFTLFNBQUMsV0FBVzs4QkFDckIsU0FBUyxTQUFDLGlCQUFpQjt5QkFDM0IsU0FBUyxTQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzICQgZnJvbSAnanF1ZXJ5JztcclxuaW1wb3J0IHtJbnB1dENsYXNzLCBPcHRpb25DbGFzc30gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLmNsYXNzJztcclxuaW1wb3J0IHtJbnB1dEVycm9yLCBJbnB1dFR5cGV9IGZyb20gJy4uLy4uLy4uLy4uL2NsYXNzZXMvZW51bS5jbGFzcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1mb3JtLXBsYXF1ZS1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLnBsYXF1ZS5zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm0ucGxhcXVlLnNlbGVjdC5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1QbGFxdWVTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgQE91dHB1dCgpXHJcbiAgY2hhbmdlSW5kZXggPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBASW5wdXQoKVxyXG4gIGlucDogSW5wdXRDbGFzcztcclxuICBjU2VhcmNoID0gJyc7XHJcbiAgb3BlbiA9IGZhbHNlO1xyXG4gIHRvcCA9IGZhbHNlO1xyXG4gIHBhcnQxOiBJbnB1dENsYXNzO1xyXG4gIHBhcnQyOiBJbnB1dENsYXNzO1xyXG4gIHBhcnQzOiBJbnB1dENsYXNzO1xyXG4gIHBhcnQ0OiBJbnB1dENsYXNzO1xyXG4gIGdldCB0eXBlKCk6IHR5cGVvZiBJbnB1dFR5cGUgeyByZXR1cm4gSW5wdXRUeXBlOyB9XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXREaXYnKSBpbnB1dERpdjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdpbnB1dEJhc2UnKSBpbnB1dEJhc2U6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRPcHRpb25zRGl2JykgaW5wdXRPcHRpb25zRGl2OiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0TGFiZWwnKSBpbnB1dExhYmVsOiBFbGVtZW50UmVmO1xyXG4gIG5nT25Jbml0KCk6IHZvaWR7XHJcbiAgICB0aGlzLmlucC5zZXRWYWx1ZSA9ICh2KSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlID0gdjtcclxuICAgICAgdGhpcy5pbnAub3B0aW9ucyA9IFtdO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLnNldFNlYXJjaCA9IChzKSA9PiB7XHJcbiAgICAgIGNvbnN0IHAgPSBzID8gcy5zcGxpdCgnXycpIDogbnVsbDtcclxuICAgICAgaWYgKHAgJiYgcC5sZW5ndGggPT09IDQpIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMucGFydDEudmFsdWUgPSBwWzBdO1xyXG4gICAgICAgICAgdGhpcy5wYXJ0Mi52YWx1ZSA9IHBbMV07XHJcbiAgICAgICAgICB0aGlzLnBhcnQzLnZhbHVlID0gcFsyXTtcclxuICAgICAgICAgIHRoaXMucGFydDQudmFsdWUgPSBwWzNdO1xyXG4gICAgICAgIH0sIDEwMCk7XHJcbiAgICAgIH0gZWxzZSBpZiAocCAmJiBwLmxlbmd0aCA9PT0gMikge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wYXJ0MS52YWx1ZSA9IHBbMF07XHJcbiAgICAgICAgICB0aGlzLnBhcnQzLnZhbHVlID0gcFsxXTtcclxuICAgICAgICB9LCAxMDApO1xyXG4gICAgICB9ZWxzZSB7XHJcbiAgICAgICAgdGhpcy5wYXJ0MS52YWx1ZSA9ICcnO1xyXG4gICAgICAgIHRoaXMucGFydDIudmFsdWUgPSAnJztcclxuICAgICAgICB0aGlzLnBhcnQzLnZhbHVlID0gJyc7XHJcbiAgICAgICAgdGhpcy5wYXJ0NC52YWx1ZSA9ICcnO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuZm9jdXMgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMub3Blbk9wdGlvbnModHJ1ZSk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuaXNWYWxpZCA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5pbnAucmVxdWlyZWQgJiYgIXRoaXMuaW5wLnZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLlJlcXVpcmVkO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5jbGVhciA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICB0aGlzLmlucC52YWx1ZSA9IHRoaXMuaW5wLmRlZmF1bHQ7XHJcbiAgICAgIHRoaXMuaW5wLnNlYXJjaCA9ICcnO1xyXG4gICAgICB0aGlzLnBhcnQxLnZhbHVlID0gJyc7XHJcbiAgICAgIHRoaXMucGFydDIudmFsdWUgPSAnJztcclxuICAgICAgdGhpcy5wYXJ0My52YWx1ZSA9ICcnO1xyXG4gICAgICB0aGlzLnBhcnQ0LnZhbHVlID0gJyc7XHJcbiAgICAgIGlmICh0aGlzLmlucC5yZWwgIT0gbnVsbCl7XHJcbiAgICAgICAgdGhpcy5pbnAucmVsLm9wdGlvbnMgPSBbXTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmRhdGEgPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlucC52YWx1ZTtcclxuICAgIH07XHJcbiAgICB0aGlzLnBhcnQxID0gbmV3IElucHV0Q2xhc3ModGhpcy5pbnAuZW52aXJvbm1lbnQsIHRoaXMuaW5wLmwsICdQYXJ0MScsIG51bGwsIElucHV0VHlwZS5OdW1iZXIsICdwbGFxdWUtcGFydC0xIHBsYXF1ZS1wYXJ0LWl0ZW0nLCBudWxsLCB0cnVlKTtcclxuICAgIHRoaXMucGFydDIgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmlucC5lbnZpcm9ubWVudCwgdGhpcy5pbnAubCwgJ1BhcnQyJywgbnVsbCwgSW5wdXRUeXBlLlRleHQsICdwbGFxdWUtcGFydC0yIHBsYXF1ZS1wYXJ0LWl0ZW0nLCBudWxsLCB0cnVlLCAxLCAxKTtcclxuICAgIHRoaXMucGFydDMgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmlucC5lbnZpcm9ubWVudCwgdGhpcy5pbnAubCwgJ1BhcnQzJywgbnVsbCwgSW5wdXRUeXBlLk51bWJlciwgJ3BsYXF1ZS1wYXJ0LTMgcGxhcXVlLXBhcnQtaXRlbScsIG51bGwsIHRydWUpO1xyXG4gICAgdGhpcy5wYXJ0NCA9IG5ldyBJbnB1dENsYXNzKHRoaXMuaW5wLmVudmlyb25tZW50LCB0aGlzLmlucC5sLCAnUGFydDQnLCBudWxsLCBJbnB1dFR5cGUuTnVtYmVyLCAncGxhcXVlLXBhcnQtNCBwbGFxdWUtcGFydC1pdGVtJywgbnVsbCwgdHJ1ZSwgMTAsIDk5KTtcclxuICAgIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlTSl7XHJcbiAgICAgIHRoaXMucGFydDEubWluTGVuZ3RoID0gMTAwO1xyXG4gICAgICB0aGlzLnBhcnQxLm1heExlbmd0aCA9IDk5OTtcclxuICAgICAgdGhpcy5wYXJ0MS5jbGFzcyArPSAnIHBsYXF1ZS1wYXJ0LW0nO1xyXG4gICAgICB0aGlzLnBhcnQyLmNsYXNzICs9ICcgcGxhcXVlLXBhcnQtbSc7XHJcbiAgICAgIHRoaXMucGFydDMubWluTGVuZ3RoID0gMTAwMDA7XHJcbiAgICAgIHRoaXMucGFydDMubWF4TGVuZ3RoID0gOTk5OTk7XHJcbiAgICAgIHRoaXMucGFydDMuY2xhc3MgKz0gJyBwbGFxdWUtcGFydC1tJztcclxuICAgICAgdGhpcy5wYXJ0NC5jbGFzcyArPSAnIHBsYXF1ZS1wYXJ0LW0nO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlRil7XHJcbiAgICAgIHRoaXMucGFydDEubWluTGVuZ3RoID0gMTAwO1xyXG4gICAgICB0aGlzLnBhcnQxLm1heExlbmd0aCA9IDk5OTk5OTk5OTtcclxuICAgICAgdGhpcy5wYXJ0MS5jbGFzcyArPSAnIHBsYXF1ZS1wYXJ0LWYnO1xyXG4gICAgICB0aGlzLnBhcnQyLmNsYXNzICs9ICcgcGxhcXVlLXBhcnQtZic7XHJcbiAgICAgIHRoaXMucGFydDMubWluTGVuZ3RoID0gMTtcclxuICAgICAgdGhpcy5wYXJ0My5tYXhMZW5ndGggPSAyMDtcclxuICAgICAgdGhpcy5wYXJ0My50eXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgIHRoaXMucGFydDMuY2xhc3MgKz0gJyBwbGFxdWUtcGFydC1mJztcclxuICAgICAgdGhpcy5wYXJ0NC5jbGFzcyArPSAnIHBsYXF1ZS1wYXJ0LWYnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlRyl7XHJcbiAgICAgIHRoaXMucGFydDEubWluTGVuZ3RoID0gMztcclxuICAgICAgdGhpcy5wYXJ0MS5tYXhMZW5ndGggPSAxNTtcclxuICAgICAgdGhpcy5wYXJ0MS50eXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgIHRoaXMucGFydDEuY2xhc3MgKz0gJyBwbGFxdWUtcGFydC1nJztcclxuICAgICAgdGhpcy5wYXJ0Mi5jbGFzcyArPSAnIHBsYXF1ZS1wYXJ0LWcnO1xyXG4gICAgICB0aGlzLnBhcnQzLmNsYXNzICs9ICcgcGxhcXVlLXBhcnQtZyc7XHJcbiAgICAgIHRoaXMucGFydDQuY2xhc3MgKz0gJyBwbGFxdWUtcGFydC1nJztcclxuICAgIH0gZWxzZXtcclxuICAgICAgdGhpcy5wYXJ0MS5taW5MZW5ndGggPSAxMDtcclxuICAgICAgdGhpcy5wYXJ0MS5tYXhMZW5ndGggPSA5OTtcclxuICAgICAgdGhpcy5wYXJ0My5taW5MZW5ndGggPSAxMDA7XHJcbiAgICAgIHRoaXMucGFydDMubWF4TGVuZ3RoID0gOTk5O1xyXG4gICAgfVxyXG4gICAgdGhpcy5wYXJ0MS5kaXNwbGF5TGFiZWwgPSB0aGlzLnBhcnQyLmRpc3BsYXlMYWJlbCA9IHRoaXMucGFydDMuZGlzcGxheUxhYmVsID0gdGhpcy5wYXJ0NC5kaXNwbGF5TGFiZWwgPSBmYWxzZTtcclxuICAgIHRoaXMucGFydDEucGxhY2Vob2xkZXIgPSB0aGlzLnBhcnQyLnBsYWNlaG9sZGVyID0gdGhpcy5wYXJ0My5wbGFjZWhvbGRlciA9IHRoaXMucGFydDQucGxhY2Vob2xkZXIgPSBudWxsO1xyXG4gICAgdGhpcy5wYXJ0MS5vbkNoYW5nZSA9ICh2KSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgICAgdGhpcy5pbnAudmFsdWUgPSBudWxsO1xyXG4gICAgICBpZiAodi5sZW5ndGggPT09IDIgJiYgdGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZSl7XHJcbiAgICAgICAgdGhpcy5wYXJ0Mi5mb2N1cygpO1xyXG4gICAgICAgIHRoaXMubG9hZE9wdGlvbnMoKTtcclxuICAgICAgfSBlbHNlIGlmICh2Lmxlbmd0aCA9PT0gMyAmJiB0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlTSl7XHJcbiAgICAgICAgdGhpcy5wYXJ0My5mb2N1cygpO1xyXG4gICAgICAgIHRoaXMubG9hZE9wdGlvbnMoKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMucGFydDIub25DaGFuZ2UgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgICAgdGhpcy5pbnAudmFsdWUgPSBudWxsO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnBhcnQzLmZvY3VzKCk7XHJcbiAgICAgICAgdGhpcy5sb2FkT3B0aW9ucygpO1xyXG4gICAgICB9LCAxMDApO1xyXG4gICAgfTtcclxuICAgIHRoaXMucGFydDMub25DaGFuZ2UgPSAodikgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlID0gbnVsbDtcclxuICAgICAgaWYgKHYubGVuZ3RoID09PSAzICYmIHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWUpe1xyXG4gICAgICAgIHRoaXMucGFydDQuZm9jdXMoKTtcclxuICAgICAgICB0aGlzLmxvYWRPcHRpb25zKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAodi5sZW5ndGggPT09IDUgJiYgdGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZU0pe1xyXG4gICAgICAgIHRoaXMubG9hZE9wdGlvbnMoKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMucGFydDQub25DaGFuZ2UgPSAodikgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlID0gbnVsbDtcclxuICAgICAgaWYgKHYubGVuZ3RoID09PSAyKXtcclxuICAgICAgICB0aGlzLmxvYWRPcHRpb25zKCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLnBhcnQxLm9uS2V5RG93biA9IHRoaXMucGFydDIub25LZXlEb3duID0gdGhpcy5wYXJ0My5vbktleURvd24gPSB0aGlzLnBhcnQ0Lm9uS2V5RG93biA9IChlKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvZGUgPSBlLmtleUNvZGUgfHwgZS53aGljaDtcclxuICAgICAgaWYgKGNvZGUgPT09IDM4IHx8IGNvZGUgPT09IDQwKXtcclxuICAgICAgICB0aGlzLm9uS2V5RG93bihlKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMucGFydDEub25Gb2N1c091dCA9IChlKSA9PiB7XHJcbiAgICAgIGlmICghJChlLnJlbGF0ZWRUYXJnZXQpLmNsb3Nlc3QoJy5mb3JtLWlucHV0LnBsYXF1ZS1zZWxlY3QnKS5oYXNDbGFzcygncGxhcXVlLXNlbGVjdCcpICYmICEkKGUucmFuZ2VQYXJlbnQpLmNsb3Nlc3QoJy5mb3JtLWlucHV0LnBsYXF1ZS1zZWxlY3QnKS5oYXNDbGFzcygncGxhcXVlLXNlbGVjdCcpKXtcclxuICAgICAgICBpZiAodGhpcy5vcGVuKXtcclxuICAgICAgICAgIHRoaXMuY2xvc2VPcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5wYXJ0Mi5vbkZvY3VzT3V0ID0gKGUpID0+IHtcclxuICAgICAgaWYgKCEkKGUucmVsYXRlZFRhcmdldCkuY2xvc2VzdCgnLmZvcm0taW5wdXQucGxhcXVlLXNlbGVjdCcpLmhhc0NsYXNzKCdwbGFxdWUtc2VsZWN0JykgJiYgISQoZS5yYW5nZVBhcmVudCkuY2xvc2VzdCgnLmZvcm0taW5wdXQucGxhcXVlLXNlbGVjdCcpLmhhc0NsYXNzKCdwbGFxdWUtc2VsZWN0Jykpe1xyXG4gICAgICAgIGlmICh0aGlzLm9wZW4pe1xyXG4gICAgICAgICAgdGhpcy5jbG9zZU9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLnBhcnQzLm9uRm9jdXNPdXQgPSAoZSkgPT4ge1xyXG4gICAgICBpZiAoISQoZS5yZWxhdGVkVGFyZ2V0KS5jbG9zZXN0KCcuZm9ybS1pbnB1dC5wbGFxdWUtc2VsZWN0JykuaGFzQ2xhc3MoJ3BsYXF1ZS1zZWxlY3QnKSAmJiAhJChlLnJhbmdlUGFyZW50KS5jbG9zZXN0KCcuZm9ybS1pbnB1dC5wbGFxdWUtc2VsZWN0JykuaGFzQ2xhc3MoJ3BsYXF1ZS1zZWxlY3QnKSl7XHJcbiAgICAgICAgaWYgKHRoaXMub3Blbil7XHJcbiAgICAgICAgICB0aGlzLmNsb3NlT3B0aW9ucygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMucGFydDQub25Gb2N1c091dCA9IChlKSA9PiB7XHJcbiAgICAgIGlmICghJChlLnJlbGF0ZWRUYXJnZXQpLmNsb3Nlc3QoJy5mb3JtLWlucHV0LnBsYXF1ZS1zZWxlY3QnKS5oYXNDbGFzcygncGxhcXVlLXNlbGVjdCcpICYmICEkKGUucmFuZ2VQYXJlbnQpLmNsb3Nlc3QoJy5mb3JtLWlucHV0LnBsYXF1ZS1zZWxlY3QnKS5oYXNDbGFzcygncGxhcXVlLXNlbGVjdCcpKXtcclxuICAgICAgICBpZiAodGhpcy5vcGVuKXtcclxuICAgICAgICAgIHRoaXMuY2xvc2VPcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH1cclxuICBsb2FkT3B0aW9ucygpOiB2b2lke1xyXG4gICAgY29uc3QgdiA9IHRoaXMuZ2V0U2VhcmNoKCkucmVwbGFjZSgvXl8rfF8rJC9nLCAnJyk7XHJcbiAgICBpZiAodil7XHJcbiAgICAgIHRoaXMuaW5wLmxvYWQodGhpcy5pbnAudXJsLnJlcGxhY2UoJ3t9JywgdikpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuaW5wLm9wdGlvbnMgPSBbXTtcclxuICAgIH1cclxuICB9XHJcbiAgb3Blbk9wdGlvbnMoZiA9IGZhbHNlKTogYm9vbGVhbntcclxuICAgIHRoaXMuc2V0UG9zaXRpb24oKTtcclxuICAgIHRoaXMuc2V0SG92ZXJDZW50ZXIoKTtcclxuICAgIHRoaXMub3BlbiA9IHRydWU7XHJcbiAgICB0aGlzLmZvY3VzSW5wdXQoZik7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbiAgZm9jdXNJbnB1dChmID0gZmFsc2UpOiB2b2lke1xyXG4gICAgaWYgKGYpe1xyXG4gICAgICB0aGlzLnBhcnQxLmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNsb3NlT3B0aW9ucygpOiBib29sZWFue1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnRvcCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmlucC5ob3ZlciA9IC0xO1xyXG4gICAgICBpZiAodGhpcy5pbnAudmFsdWUgPT09IG51bGwpe1xyXG4gICAgICAgIHRoaXMuaW5wLnNlYXJjaCA9ICcnO1xyXG4gICAgICAgIHRoaXMucGFydDEudmFsdWUgPSAnJztcclxuICAgICAgICB0aGlzLnBhcnQyLnZhbHVlID0gJyc7XHJcbiAgICAgICAgdGhpcy5wYXJ0My52YWx1ZSA9ICcnO1xyXG4gICAgICAgIHRoaXMucGFydDQudmFsdWUgPSAnJztcclxuICAgICAgICB0aGlzLmlucC5vcHRpb25zID0gW107XHJcbiAgICAgIH1cclxuICAgIH0sIDEpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gIHNldFBvc2l0aW9uKCk6IHZvaWR7XHJcbiAgICBjb25zdCByZWN0ID0gdGhpcy5pbnB1dERpdi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3Qgb2Zmc2V0T2ZCb3R0b20gPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSByZWN0LmJvdHRvbTtcclxuICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuaW5wdXRPcHRpb25zRGl2Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgdGhpcy50b3AgPSBvZmZzZXRPZkJvdHRvbSA8IGhlaWdodDtcclxuICB9XHJcbiAgb25LZXlEb3duKGUpOiB2b2lke1xyXG4gICAgY29uc3QgY29kZSA9IGUua2V5Q29kZSB8fCBlLndoaWNoO1xyXG4gICAgaWYgKGNvZGUgPT09IDkpIHtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLmNJKGUuc2hpZnRLZXkgPyAnU2hpZnRUYWInIDogJ1RhYicpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoY29kZSA9PT0gMTMpe1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGlmICh0aGlzLm9wZW4pe1xyXG4gICAgICAgIGNvbnN0IGggPSB0aGlzLmdldFNlbGVjdGVkKCk7XHJcbiAgICAgICAgaWYgKCFoKXtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZWxlY3RPcHRpb24oaC52YWx1ZSk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuY0koJ1RhYicpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChjb2RlID09PSA0MCl7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgaWYgKHRoaXMuaW5wLmhvdmVyICsgMSA+PSB0aGlzLmlucC5pbmRleCl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaW5wLmhvdmVyID0gdGhpcy5nZXRIb3ZlcigpO1xyXG4gICAgICB0aGlzLnNldEhvdmVyQ2VudGVyKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChjb2RlID09PSAzOCl7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgaWYgKHRoaXMuaW5wLmhvdmVyIDw9IDApe1xyXG4gICAgICAgIHRoaXMuaW5wLmhvdmVyID0gMDtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pbnAuaG92ZXIgPSB0aGlzLmdldEhvdmVyKC0xKTtcclxuICAgICAgdGhpcy5zZXRIb3ZlckNlbnRlcigpO1xyXG4gICAgfVxyXG4gIH1cclxuICB0b2dnbGVPcHRpb24oKTogdm9pZHtcclxuICAgIHRoaXMub3Blbk9wdGlvbnMoKTtcclxuICB9XHJcbiAgc2VsZWN0T3B0aW9uKHYsIGlzRWRpdCA9IGZhbHNlKTogdm9pZHtcclxuICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgIGNvbnN0IHZhID0gdGhpcy5nZXRWYWx1ZSh2KTtcclxuICAgIHRoaXMuaW5wLnZhbHVlID0gdjtcclxuICAgIHRoaXMuaW5wLmhvdmVyID0gdmEgPyB2YS5pbmRleCA6IC0xO1xyXG4gICAgdGhpcy5pbnAuc2VhcmNoID0gdmEgPyB2YS5zZWFyY2ggOiAnJztcclxuICAgIHRoaXMuY1NlYXJjaCA9IHRoaXMuaW5wLnNlYXJjaDtcclxuICAgIGlmICh0aGlzLmlucC5vbkNoYW5nZSl7XHJcbiAgICAgIHRoaXMuaW5wLm9uQ2hhbmdlKHRoaXMuaW5wKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlucC5yZWwpe1xyXG4gICAgICB0aGlzLmlucC5yZWwudmFsdWUgPSBudWxsO1xyXG4gICAgICB0aGlzLmlucC5yZWwuaG92ZXIgPSAtMTtcclxuICAgICAgdGhpcy5pbnAucmVsLmluZGV4ID0gMDtcclxuICAgICAgdGhpcy5pbnAucmVsLnNlYXJjaCA9ICcnO1xyXG4gICAgICB0aGlzLmlucC5yZWwub3B0aW9ucyA9IFtdO1xyXG4gICAgICB0aGlzLmlucC5yZWwudXJsID0gdGhpcy5pbnAucmVsVXJsLnJlcGxhY2UoJ3t9JywgdGhpcy5pbnAudmFsdWUpO1xyXG4gICAgICBpZiAodGhpcy5pbnAucmVsLnR5cGUgIT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGUpIHtcclxuICAgICAgICB0aGlzLmlucC5yZWwubG9hZCgpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmlucC5yZWwudXJsICs9ICdfe30nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBwID0gdmEgPyB2YS5vcHRpb24uUGxhcXVlLnNwbGl0KCdfJykgOiBudWxsO1xyXG4gICAgaWYgKHAgJiYgcC5sZW5ndGggPT09IDQpIHtcclxuICAgICAgdGhpcy5wYXJ0MS52YWx1ZSA9IHAgPyBwWzBdIDogJyc7XHJcbiAgICAgIHRoaXMucGFydDIudmFsdWUgPSBwID8gcFsxXSA6ICcnO1xyXG4gICAgICB0aGlzLnBhcnQzLnZhbHVlID0gcCA/IHBbMl0gOiAnJztcclxuICAgICAgdGhpcy5wYXJ0NC52YWx1ZSA9IHAgPyBwWzNdIDogJyc7XHJcbiAgICB9IGVsc2UgaWYgKHAgJiYgcC5sZW5ndGggPT09IDIpIHtcclxuICAgICAgdGhpcy5wYXJ0MS52YWx1ZSA9IHAgPyBwWzBdIDogJyc7XHJcbiAgICAgIHRoaXMucGFydDMudmFsdWUgPSBwID8gcFsxXSA6ICcnO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc0VkaXQpe1xyXG4gICAgICB0aGlzLmNJKCdUYWInKTtcclxuICAgIH1cclxuICB9XHJcbiAgY0koaTogc3RyaW5nKTogdm9pZHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNoYW5nZUluZGV4LmVtaXQoaSk7XHJcbiAgICB9LCAxMCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5jbG9zZU9wdGlvbnMoKTtcclxuICAgIH0sIDIwKTtcclxuICB9XHJcbiAgc2V0SG92ZXJDZW50ZXIoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgaG92ZXI6IGFueSA9ICQodGhpcy5pbnB1dE9wdGlvbnNEaXYubmF0aXZlRWxlbWVudCkuZmluZCgnLm9wdGlvbi5ob3ZlcicpO1xyXG4gICAgICBjb25zdCBpdGVtczogYW55ID0gJCh0aGlzLmlucHV0T3B0aW9uc0Rpdi5uYXRpdmVFbGVtZW50KS5maW5kKCcuaXRlbXMnKTtcclxuICAgICAgaWYgKGhvdmVyLmxlbmd0aCA9PT0gMCl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGl0ZW1zLnNjcm9sbFRvcCA9IGl0ZW1zLnNjcm9sbFRvcCAtIGl0ZW1zLm9mZnNldC50b3AgKyBob3Zlci5vZmZzZXQudG9wIC0gaG92ZXIuaGVpZ2h0KCk7XHJcbiAgICB9LCAxKTtcclxuICB9XHJcbiAgZ2V0U2VsZWN0ZWQobzogT3B0aW9uQ2xhc3NbXSA9IHRoaXMuaW5wLm9wdGlvbnMpOiBhbnl7XHJcbiAgICBjb25zdCBoID0gby5maW5kKHggPT4geC5pbmRleCA9PT0gdGhpcy5pbnAuaG92ZXIpO1xyXG4gICAgaWYgKGgpe1xyXG4gICAgICByZXR1cm4gaDtcclxuICAgIH1cclxuICAgIGZvciAoY29uc3QgaSBvZiBvKXtcclxuICAgICAgY29uc3QgaGkgPSB0aGlzLmdldFNlbGVjdGVkKGkub3B0aW9ucyk7XHJcbiAgICAgIGlmIChoaSl7XHJcbiAgICAgICAgcmV0dXJuIGhpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldEhvdmVyKGkgPSAxLCBvOiBPcHRpb25DbGFzc1tdID0gdGhpcy5pbnAub3B0aW9ucywgaCA9IHRoaXMuaW5wLmhvdmVyKTogbnVtYmVye1xyXG4gICAgY29uc3QgaG8gPSBvLmZpbmQoeCA9PiB4LmluZGV4ID09PSBoICsgaSk7XHJcbiAgICBpZiAoaG8pe1xyXG4gICAgICBpZiAoaG8uc2hvdyl7XHJcbiAgICAgICAgcmV0dXJuIGhvLmluZGV4O1xyXG4gICAgICB9ZWxzZSB7XHJcbiAgICAgICAgaCA9IGggKyBpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBmb3IgKGNvbnN0IGl0IG9mIG8pe1xyXG4gICAgICBjb25zdCBoaSA9IHRoaXMuZ2V0SG92ZXIoaSwgaXQub3B0aW9ucywgaCk7XHJcbiAgICAgIGlmIChoaSl7XHJcbiAgICAgICAgcmV0dXJuIGhpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcbiAgZ2V0VmFsdWUodiwgbzogT3B0aW9uQ2xhc3NbXSA9IHRoaXMuaW5wLm9wdGlvbnMpOiBPcHRpb25DbGFzc3tcclxuICAgIGNvbnN0IGggPSBvLmZpbmQoeCA9PiB4LnZhbHVlID09PSB2KTtcclxuICAgIGlmIChoKXtcclxuICAgICAgcmV0dXJuIGg7XHJcbiAgICB9XHJcbiAgICBmb3IgKGNvbnN0IGkgb2Ygbyl7XHJcbiAgICAgIGNvbnN0IGhpID0gdGhpcy5nZXRWYWx1ZSh2LCBpLm9wdGlvbnMpO1xyXG4gICAgICBpZiAoaGkpe1xyXG4gICAgICAgIHJldHVybiBoaTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBwbGFxdWVDaGFuZ2VGb2N1cyhwLCBhKTogdm9pZHtcclxuICAgIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlKXtcclxuICAgICAgaWYgKHAgPT09ICdQYXJ0MScpe1xyXG4gICAgICAgIGlmIChhID09PSAnVGFiJyB8fCBhID09PSAnRW50ZXInKXtcclxuICAgICAgICAgIGlmICh0aGlzLnBhcnQyLmRhdGEoKSAhPSBudWxsKXtcclxuICAgICAgICAgICAgdGhpcy5wYXJ0My5mb2N1cygpO1xyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMucGFydDIuZm9jdXMoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKGEgPT09ICdTaGlmdFRhYicgfHwgYSA9PT0gJ1NoaWZ0RW50ZXInKXtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdCgnU2hpZnRUYWInKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAocCA9PT0gJ1BhcnQyJyl7XHJcbiAgICAgICAgaWYgKGEgPT09ICdUYWInIHx8IGEgPT09ICdFbnRlcicpe1xyXG4gICAgICAgICAgdGhpcy5wYXJ0My5mb2N1cygpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoYSA9PT0gJ1NoaWZ0VGFiJyB8fCBhID09PSAnU2hpZnRFbnRlcicpe1xyXG4gICAgICAgICAgdGhpcy5wYXJ0MS5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChwID09PSAnUGFydDMnKXtcclxuICAgICAgICBpZiAoYSA9PT0gJ1RhYicgfHwgYSA9PT0gJ0VudGVyJyl7XHJcbiAgICAgICAgICB0aGlzLnBhcnQ0LmZvY3VzKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChhID09PSAnU2hpZnRUYWInIHx8IGEgPT09ICdTaGlmdEVudGVyJyl7XHJcbiAgICAgICAgICBpZiAodGhpcy5wYXJ0Mi5kYXRhKCkgIT0gbnVsbCl7XHJcbiAgICAgICAgICAgIHRoaXMucGFydDEuZm9jdXMoKTtcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLnBhcnQyLmZvY3VzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHAgPT09ICdQYXJ0NCcpe1xyXG4gICAgICAgIGlmIChhID09PSAnVGFiJyB8fCBhID09PSAnRW50ZXInKXtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdCgnVGFiJyk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChhID09PSAnU2hpZnRUYWInIHx8IGEgPT09ICdTaGlmdEVudGVyJyl7XHJcbiAgICAgICAgICB0aGlzLnBhcnQzLmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWVNIHx8IHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWVGKXtcclxuICAgICAgaWYgKHAgPT09ICdQYXJ0MScpe1xyXG4gICAgICAgIGlmIChhID09PSAnVGFiJyB8fCBhID09PSAnRW50ZXInKXtcclxuICAgICAgICAgIHRoaXMucGFydDMuZm9jdXMoKTtcclxuICAgICAgICAgIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlRil7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZE9wdGlvbnMoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKGEgPT09ICdTaGlmdFRhYicgfHwgYSA9PT0gJ1NoaWZ0RW50ZXInKXtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdCgnU2hpZnRUYWInKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAocCA9PT0gJ1BhcnQzJyl7XHJcbiAgICAgICAgaWYgKGEgPT09ICdUYWInIHx8IGEgPT09ICdFbnRlcicpe1xyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KCdUYWInKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGEgPT09ICdTaGlmdFRhYicgfHwgYSA9PT0gJ1NoaWZ0RW50ZXInKXtcclxuICAgICAgICAgIHRoaXMucGFydDEuZm9jdXMoKTtcclxuICAgICAgICAgIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlRil7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZE9wdGlvbnMoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZUcpe1xyXG4gICAgICBpZiAocCA9PT0gJ1BhcnQxJyl7XHJcbiAgICAgICAgaWYgKGEgPT09ICdUYWInIHx8IGEgPT09ICdFbnRlcicpe1xyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KCdUYWInKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGEgPT09ICdTaGlmdFRhYicgfHwgYSA9PT0gJ1NoaWZ0RW50ZXInKXtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdCgnU2hpZnRUYWInKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZ2V0U2VhcmNoKCk6IHN0cmluZ3tcclxuICAgIHJldHVybiB0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlID9cclxuICAgICAgYCR7dGhpcy5wYXJ0MS52YWx1ZSA/IHRoaXMucGFydDEudmFsdWUgKyAnXycgOiAnJ30ke3RoaXMucGFydDIudmFsdWUgPyB0aGlzLnBhcnQyLnZhbHVlICsgJ18nIDogJyd9JHt0aGlzLnBhcnQzLnZhbHVlID8gdGhpcy5wYXJ0My52YWx1ZSArICdfJyA6ICcnfSR7dGhpcy5wYXJ0NC52YWx1ZSA/IHRoaXMucGFydDQudmFsdWUgOiAnJ31gIDpcclxuICAgICAgYCR7dGhpcy5wYXJ0MS52YWx1ZSA/IHRoaXMucGFydDEudmFsdWUgKyAnXycgOiAnJ30ke3RoaXMucGFydDMudmFsdWUgPyB0aGlzLnBhcnQzLnZhbHVlICsgJ18nIDogJyd9YDtcclxuICB9XHJcbn1cclxuIl19
|
|
472
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5wbGFxdWUuc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9qZWN0cy9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9mb3JtL3BsYXF1ZS9zZWxlY3QvZm9ybS5wbGFxdWUuc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUMsVUFBVSxFQUFjLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQU9yRSxNQUFNLE9BQU8seUJBQXlCO0lBTHRDO1FBT0UsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBR3pDLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFDYixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsUUFBRyxHQUFHLEtBQUssQ0FBQztJQXdhZCxDQUFDO0lBbmFDLElBQUksSUFBSSxLQUF1QixPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFLbEQsUUFBUTtRQUNOLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUN4QixDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFD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QUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDekcsQ0FBQzs7O1lBbmJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyx3dURBQWtEOzthQUVuRDs7OzBCQUVFLE1BQU07a0JBRU4sS0FBSzt1QkFVTCxTQUFTLFNBQUMsVUFBVTt3QkFDcEIsU0FBUyxTQUFDLFdBQVc7OEJBQ3JCLFNBQVMsU0FBQyxpQkFBaUI7eUJBQzNCLFNBQVMsU0FBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyAkIGZyb20gJ2pxdWVyeSc7XHJcbmltcG9ydCB7SW5wdXRDbGFzcywgT3B0aW9uQ2xhc3N9IGZyb20gJy4uLy4uLy4uLy4uL2NsYXNzZXMvZm9ybS5jbGFzcyc7XHJcbmltcG9ydCB7SW5wdXRFcnJvciwgSW5wdXRUeXBlfSBmcm9tICcuLi8uLi8uLi8uLi9jbGFzc2VzL2VudW0uY2xhc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZm9ybS1wbGFxdWUtc2VsZWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS5wbGFxdWUuc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtLnBsYXF1ZS5zZWxlY3QuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtUGxhcXVlU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIEBPdXRwdXQoKVxyXG4gIGNoYW5nZUluZGV4ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQElucHV0KClcclxuICBpbnA6IElucHV0Q2xhc3M7XHJcbiAgY1NlYXJjaCA9ICcnO1xyXG4gIG9wZW4gPSBmYWxzZTtcclxuICB0b3AgPSBmYWxzZTtcclxuICBwYXJ0MTogSW5wdXRDbGFzcztcclxuICBwYXJ0MjogSW5wdXRDbGFzcztcclxuICBwYXJ0MzogSW5wdXRDbGFzcztcclxuICBwYXJ0NDogSW5wdXRDbGFzcztcclxuICBnZXQgdHlwZSgpOiB0eXBlb2YgSW5wdXRUeXBlIHsgcmV0dXJuIElucHV0VHlwZTsgfVxyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0RGl2JykgaW5wdXREaXY6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRCYXNlJykgaW5wdXRCYXNlOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0T3B0aW9uc0RpdicpIGlucHV0T3B0aW9uc0RpdjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdpbnB1dExhYmVsJykgaW5wdXRMYWJlbDogRWxlbWVudFJlZjtcclxuICBuZ09uSW5pdCgpOiB2b2lke1xyXG4gICAgdGhpcy5pbnAuc2V0VmFsdWUgPSAodikgPT4ge1xyXG4gICAgICB0aGlzLmlucC52YWx1ZSA9IHY7XHJcbiAgICAgIHRoaXMuaW5wLm9wdGlvbnMgPSBbXTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5zZXRTZWFyY2ggPSAocykgPT4ge1xyXG4gICAgICBjb25zdCBwID0gcyA/IHMuc3BsaXQoJ18nKSA6IG51bGw7XHJcbiAgICAgIGlmIChwICYmIHAubGVuZ3RoID09PSA0KSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBhcnQxLnZhbHVlID0gcFswXTtcclxuICAgICAgICAgIHRoaXMucGFydDIudmFsdWUgPSBwWzFdO1xyXG4gICAgICAgICAgdGhpcy5wYXJ0My52YWx1ZSA9IHBbMl07XHJcbiAgICAgICAgICB0aGlzLnBhcnQ0LnZhbHVlID0gcFszXTtcclxuICAgICAgICB9LCAxMDApO1xyXG4gICAgICB9IGVsc2UgaWYgKHAgJiYgcC5sZW5ndGggPT09IDIpIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMucGFydDEudmFsdWUgPSBwWzBdO1xyXG4gICAgICAgICAgdGhpcy5wYXJ0My52YWx1ZSA9IHBbMV07XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgICAgfWVsc2Uge1xyXG4gICAgICAgIHRoaXMucGFydDEudmFsdWUgPSAnJztcclxuICAgICAgICB0aGlzLnBhcnQyLnZhbHVlID0gJyc7XHJcbiAgICAgICAgdGhpcy5wYXJ0My52YWx1ZSA9ICcnO1xyXG4gICAgICAgIHRoaXMucGFydDQudmFsdWUgPSAnJztcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmZvY3VzID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLm9wZW5PcHRpb25zKHRydWUpO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmlzVmFsaWQgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgICAgaWYgKHRoaXMuaW5wLnJlcXVpcmVkICYmICF0aGlzLmlucC52YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5SZXF1aXJlZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuY2xlYXIgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgICAgdGhpcy5pbnAudmFsdWUgPSB0aGlzLmlucC5kZWZhdWx0O1xyXG4gICAgICB0aGlzLmlucC5zZWFyY2ggPSAnJztcclxuICAgICAgdGhpcy5wYXJ0MS52YWx1ZSA9ICcnO1xyXG4gICAgICB0aGlzLnBhcnQyLnZhbHVlID0gJyc7XHJcbiAgICAgIHRoaXMucGFydDMudmFsdWUgPSAnJztcclxuICAgICAgdGhpcy5wYXJ0NC52YWx1ZSA9ICcnO1xyXG4gICAgICBpZiAodGhpcy5pbnAucmVsICE9IG51bGwpe1xyXG4gICAgICAgIHRoaXMuaW5wLnJlbC5vcHRpb25zID0gW107XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5kYXRhID0gKCkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5pbnAudmFsdWU7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5wYXJ0MSA9IG5ldyBJbnB1dENsYXNzKHRoaXMuaW5wLmVudmlyb25tZW50LCB0aGlzLmlucC5sLCAnUGFydDEnLCBudWxsLCBJbnB1dFR5cGUuTnVtYmVyLCAncGxhcXVlLXBhcnQtMSBwbGFxdWUtcGFydC1pdGVtJywgbnVsbCwgdHJ1ZSk7XHJcbiAgICB0aGlzLnBhcnQyID0gbmV3IElucHV0Q2xhc3ModGhpcy5pbnAuZW52aXJvbm1lbnQsIHRoaXMuaW5wLmwsICdQYXJ0MicsIG51bGwsIElucHV0VHlwZS5UZXh0LCAncGxhcXVlLXBhcnQtMiBwbGFxdWUtcGFydC1pdGVtJywgbnVsbCwgdHJ1ZSwgMSwgMSk7XHJcbiAgICB0aGlzLnBhcnQzID0gbmV3IElucHV0Q2xhc3ModGhpcy5pbnAuZW52aXJvbm1lbnQsIHRoaXMuaW5wLmwsICdQYXJ0MycsIG51bGwsIElucHV0VHlwZS5OdW1iZXIsICdwbGFxdWUtcGFydC0zIHBsYXF1ZS1wYXJ0LWl0ZW0nLCBudWxsLCB0cnVlKTtcclxuICAgIHRoaXMucGFydDQgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmlucC5lbnZpcm9ubWVudCwgdGhpcy5pbnAubCwgJ1BhcnQ0JywgbnVsbCwgSW5wdXRUeXBlLk51bWJlciwgJ3BsYXF1ZS1wYXJ0LTQgcGxhcXVlLXBhcnQtaXRlbScsIG51bGwsIHRydWUsIDEwLCA5OSk7XHJcbiAgICBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZU0pe1xyXG4gICAgICB0aGlzLnBhcnQxLm1pbkxlbmd0aCA9IDEwMDtcclxuICAgICAgdGhpcy5wYXJ0MS5tYXhMZW5ndGggPSA5OTk7XHJcbiAgICAgIHRoaXMucGFydDEuY2xhc3MgKz0gJyBwbGFxdWUtcGFydC1tJztcclxuICAgICAgdGhpcy5wYXJ0Mi5jbGFzcyArPSAnIHBsYXF1ZS1wYXJ0LW0nO1xyXG4gICAgICB0aGlzLnBhcnQzLm1pbkxlbmd0aCA9IDEwMDAwO1xyXG4gICAgICB0aGlzLnBhcnQzLm1heExlbmd0aCA9IDk5OTk5O1xyXG4gICAgICB0aGlzLnBhcnQzLmNsYXNzICs9ICcgcGxhcXVlLXBhcnQtbSc7XHJcbiAgICAgIHRoaXMucGFydDQuY2xhc3MgKz0gJyBwbGFxdWUtcGFydC1tJztcclxuICAgIH0gZWxzZSBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZUYpe1xyXG4gICAgICB0aGlzLnBhcnQxLm1pbkxlbmd0aCA9IDEwMDtcclxuICAgICAgdGhpcy5wYXJ0MS5tYXhMZW5ndGggPSA5OTk5OTk5OTk7XHJcbiAgICAgIHRoaXMucGFydDEuY2xhc3MgKz0gJyBwbGFxdWUtcGFydC1mJztcclxuICAgICAgdGhpcy5wYXJ0Mi5jbGFzcyArPSAnIHBsYXF1ZS1wYXJ0LWYnO1xyXG4gICAgICB0aGlzLnBhcnQzLm1pbkxlbmd0aCA9IDE7XHJcbiAgICAgIHRoaXMucGFydDMubWF4TGVuZ3RoID0gMjA7XHJcbiAgICAgIHRoaXMucGFydDMudHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICB0aGlzLnBhcnQzLmNsYXNzICs9ICcgcGxhcXVlLXBhcnQtZic7XHJcbiAgICAgIHRoaXMucGFydDQuY2xhc3MgKz0gJyBwbGFxdWUtcGFydC1mJztcclxuICAgIH0gZWxzZSBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZUcpe1xyXG4gICAgICB0aGlzLnBhcnQxLm1pbkxlbmd0aCA9IDM7XHJcbiAgICAgIHRoaXMucGFydDEubWF4TGVuZ3RoID0gMTU7XHJcbiAgICAgIHRoaXMucGFydDEudHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICB0aGlzLnBhcnQxLmNsYXNzICs9ICcgcGxhcXVlLXBhcnQtZyc7XHJcbiAgICAgIHRoaXMucGFydDIuY2xhc3MgKz0gJyBwbGFxdWUtcGFydC1nJztcclxuICAgICAgdGhpcy5wYXJ0My5jbGFzcyArPSAnIHBsYXF1ZS1wYXJ0LWcnO1xyXG4gICAgICB0aGlzLnBhcnQ0LmNsYXNzICs9ICcgcGxhcXVlLXBhcnQtZyc7XHJcbiAgICB9IGVsc2V7XHJcbiAgICAgIHRoaXMucGFydDEubWluTGVuZ3RoID0gMTA7XHJcbiAgICAgIHRoaXMucGFydDEubWF4TGVuZ3RoID0gOTk7XHJcbiAgICAgIHRoaXMucGFydDMubWluTGVuZ3RoID0gMTAwO1xyXG4gICAgICB0aGlzLnBhcnQzLm1heExlbmd0aCA9IDk5OTtcclxuICAgIH1cclxuICAgIHRoaXMucGFydDEuZGlzcGxheUxhYmVsID0gdGhpcy5wYXJ0Mi5kaXNwbGF5TGFiZWwgPSB0aGlzLnBhcnQzLmRpc3BsYXlMYWJlbCA9IHRoaXMucGFydDQuZGlzcGxheUxhYmVsID0gZmFsc2U7XHJcbiAgICB0aGlzLnBhcnQxLnBsYWNlaG9sZGVyID0gdGhpcy5wYXJ0Mi5wbGFjZWhvbGRlciA9IHRoaXMucGFydDMucGxhY2Vob2xkZXIgPSB0aGlzLnBhcnQ0LnBsYWNlaG9sZGVyID0gbnVsbDtcclxuICAgIHRoaXMucGFydDEub25DaGFuZ2UgPSAodikgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlID0gbnVsbDtcclxuICAgICAgaWYgKHYubGVuZ3RoID09PSAyICYmIHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWUpe1xyXG4gICAgICAgIHRoaXMucGFydDIuZm9jdXModHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5sb2FkT3B0aW9ucygpO1xyXG4gICAgICB9IGVsc2UgaWYgKHYubGVuZ3RoID09PSAzICYmIHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWVNKXtcclxuICAgICAgICB0aGlzLnBhcnQzLmZvY3VzKHRydWUpO1xyXG4gICAgICAgIHRoaXMubG9hZE9wdGlvbnMoKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMucGFydDIub25DaGFuZ2UgPSAodikgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlID0gbnVsbDtcclxuICAgICAgaWYgKHYubGVuZ3RoID09PSAxKXtcclxuICAgICAgICB0aGlzLnBhcnQzLmZvY3VzKHRydWUpO1xyXG4gICAgICAgIHRoaXMubG9hZE9wdGlvbnMoKTtcclxuICAgICAgfSBlbHNlIGlmICh2Lmxlbmd0aCA9PT0gMCl7XHJcbiAgICAgICAgdGhpcy5wYXJ0MS5mb2N1cyh0cnVlKTtcclxuICAgICAgICB0aGlzLmxvYWRPcHRpb25zKCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLnBhcnQzLm9uQ2hhbmdlID0gKHYpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICB0aGlzLmlucC52YWx1ZSA9IG51bGw7XHJcbiAgICAgIGlmICh2Lmxlbmd0aCA9PT0gMyAmJiB0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlKXtcclxuICAgICAgICB0aGlzLnBhcnQ0LmZvY3VzKHRydWUpO1xyXG4gICAgICAgIHRoaXMubG9hZE9wdGlvbnMoKTtcclxuICAgICAgfSBlbHNlIGlmICh2Lmxlbmd0aCA9PT0gMCAmJiB0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlKXtcclxuICAgICAgICB0aGlzLnBhcnQyLmZvY3VzKHRydWUpO1xyXG4gICAgICAgIHRoaXMubG9hZE9wdGlvbnMoKTtcclxuICAgICAgfSBlbHNlIGlmICh2Lmxlbmd0aCA9PT0gNSAmJiB0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlTSl7XHJcbiAgICAgICAgdGhpcy5sb2FkT3B0aW9ucygpO1xyXG4gICAgICB9IGVsc2UgaWYgKHYubGVuZ3RoID09PSAwICYmIHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWVNKXtcclxuICAgICAgICB0aGlzLnBhcnQxLmZvY3VzKHRydWUpO1xyXG4gICAgICAgIHRoaXMubG9hZE9wdGlvbnMoKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMucGFydDQub25DaGFuZ2UgPSAodikgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlID0gbnVsbDtcclxuICAgICAgaWYgKHYubGVuZ3RoID09PSAyKXtcclxuICAgICAgICB0aGlzLmxvYWRPcHRpb25zKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAodi5sZW5ndGggPT09IDApe1xyXG4gICAgICAgIHRoaXMucGFydDMuZm9jdXModHJ1ZSk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLnBhcnQxLm9uS2V5RG93biA9IHRoaXMucGFydDIub25LZXlEb3duID0gdGhpcy5wYXJ0My5vbktleURvd24gPSB0aGlzLnBhcnQ0Lm9uS2V5RG93biA9IChlKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvZGUgPSBlLmtleUNvZGUgfHwgZS53aGljaDtcclxuICAgICAgaWYgKGNvZGUgPT09IDM4IHx8IGNvZGUgPT09IDQwKXtcclxuICAgICAgICB0aGlzLm9uS2V5RG93bihlKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMucGFydDEub25Gb2N1c091dCA9IChlKSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCQoZS5yZWxhdGVkVGFyZ2V0KSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCQoZS5yYW5nZVBhcmVudCkpO1xyXG4gICAgICBpZiAoISQoZS5yZWxhdGVkVGFyZ2V0KS5jbG9zZXN0KCcuZm9ybS1pbnB1dC5wbGFxdWUtc2VsZWN0JykuaGFzQ2xhc3MoJ3BsYXF1ZS1zZWxlY3QnKSAmJiAhJChlLnJhbmdlUGFyZW50KS5jbG9zZXN0KCcuZm9ybS1pbnB1dC5wbGFxdWUtc2VsZWN0JykuaGFzQ2xhc3MoJ3BsYXF1ZS1zZWxlY3QnKSl7XHJcbiAgICAgICAgaWYgKHRoaXMub3Blbil7XHJcbiAgICAgICAgICB0aGlzLmNsb3NlT3B0aW9ucygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMucGFydDIub25Gb2N1c091dCA9IChlKSA9PiB7XHJcbiAgICAgIGlmICghJChlLnJlbGF0ZWRUYXJnZXQpLmNsb3Nlc3QoJy5mb3JtLWlucHV0LnBsYXF1ZS1zZWxlY3QnKS5oYXNDbGFzcygncGxhcXVlLXNlbGVjdCcpICYmICEkKGUucmFuZ2VQYXJlbnQpLmNsb3Nlc3QoJy5mb3JtLWlucHV0LnBsYXF1ZS1zZWxlY3QnKS5oYXNDbGFzcygncGxhcXVlLXNlbGVjdCcpKXtcclxuICAgICAgICBpZiAodGhpcy5vcGVuKXtcclxuICAgICAgICAgIHRoaXMuY2xvc2VPcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5wYXJ0My5vbkZvY3VzT3V0ID0gKGUpID0+IHtcclxuICAgICAgaWYgKCEkKGUucmVsYXRlZFRhcmdldCkuY2xvc2VzdCgnLmZvcm0taW5wdXQucGxhcXVlLXNlbGVjdCcpLmhhc0NsYXNzKCdwbGFxdWUtc2VsZWN0JykgJiYgISQoZS5yYW5nZVBhcmVudCkuY2xvc2VzdCgnLmZvcm0taW5wdXQucGxhcXVlLXNlbGVjdCcpLmhhc0NsYXNzKCdwbGFxdWUtc2VsZWN0Jykpe1xyXG4gICAgICAgIGlmICh0aGlzLm9wZW4pe1xyXG4gICAgICAgICAgdGhpcy5jbG9zZU9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLnBhcnQ0Lm9uRm9jdXNPdXQgPSAoZSkgPT4ge1xyXG4gICAgICBpZiAoISQoZS5yZWxhdGVkVGFyZ2V0KS5jbG9zZXN0KCcuZm9ybS1pbnB1dC5wbGFxdWUtc2VsZWN0JykuaGFzQ2xhc3MoJ3BsYXF1ZS1zZWxlY3QnKSAmJiAhJChlLnJhbmdlUGFyZW50KS5jbG9zZXN0KCcuZm9ybS1pbnB1dC5wbGFxdWUtc2VsZWN0JykuaGFzQ2xhc3MoJ3BsYXF1ZS1zZWxlY3QnKSl7XHJcbiAgICAgICAgaWYgKHRoaXMub3Blbil7XHJcbiAgICAgICAgICB0aGlzLmNsb3NlT3B0aW9ucygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcbiAgbG9hZE9wdGlvbnMoKTogdm9pZHtcclxuICAgIGNvbnN0IHYgPSB0aGlzLmdldFNlYXJjaCgpLnJlcGxhY2UoL15fK3xfKyQvZywgJycpO1xyXG4gICAgaWYgKHYpe1xyXG4gICAgICB0aGlzLmlucC5sb2FkKHRoaXMuaW5wLnVybC5yZXBsYWNlKCd7fScsIHYpKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmlucC5vcHRpb25zID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9wZW5PcHRpb25zKGYgPSBmYWxzZSk6IGJvb2xlYW57XHJcbiAgICB0aGlzLnNldFBvc2l0aW9uKCk7XHJcbiAgICB0aGlzLnNldEhvdmVyQ2VudGVyKCk7XHJcbiAgICB0aGlzLm9wZW4gPSB0cnVlO1xyXG4gICAgdGhpcy5mb2N1c0lucHV0KGYpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gIGZvY3VzSW5wdXQoZiA9IGZhbHNlKTogdm9pZHtcclxuICAgIGlmIChmKXtcclxuICAgICAgdGhpcy5wYXJ0MS5mb2N1cyh0cnVlKTtcclxuICAgIH1cclxuICB9XHJcbiAgY2xvc2VPcHRpb25zKCk6IGJvb2xlYW57XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudG9wID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaW5wLmhvdmVyID0gLTE7XHJcbiAgICAgIGlmICh0aGlzLmlucC52YWx1ZSA9PT0gbnVsbCl7XHJcbiAgICAgICAgdGhpcy5pbnAuc2VhcmNoID0gJyc7XHJcbiAgICAgICAgdGhpcy5wYXJ0MS52YWx1ZSA9ICcnO1xyXG4gICAgICAgIHRoaXMucGFydDIudmFsdWUgPSAnJztcclxuICAgICAgICB0aGlzLnBhcnQzLnZhbHVlID0gJyc7XHJcbiAgICAgICAgdGhpcy5wYXJ0NC52YWx1ZSA9ICcnO1xyXG4gICAgICAgIHRoaXMuaW5wLm9wdGlvbnMgPSBbXTtcclxuICAgICAgfVxyXG4gICAgfSwgMSk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbiAgc2V0UG9zaXRpb24oKTogdm9pZHtcclxuICAgIGNvbnN0IHJlY3QgPSB0aGlzLmlucHV0RGl2Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBjb25zdCBvZmZzZXRPZkJvdHRvbSA9IHdpbmRvdy5pbm5lckhlaWdodCAtIHJlY3QuYm90dG9tO1xyXG4gICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5pbnB1dE9wdGlvbnNEaXYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICB0aGlzLnRvcCA9IG9mZnNldE9mQm90dG9tIDwgaGVpZ2h0O1xyXG4gIH1cclxuICBvbktleURvd24oZSk6IHZvaWR7XHJcbiAgICBjb25zdCBjb2RlID0gZS5rZXlDb2RlIHx8IGUud2hpY2g7XHJcbiAgICBpZiAoY29kZSA9PT0gOSkge1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMuY0koZS5zaGlmdEtleSA/ICdTaGlmdFRhYicgOiAnVGFiJyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChjb2RlID09PSAxMyl7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgaWYgKHRoaXMub3Blbil7XHJcbiAgICAgICAgY29uc3QgaCA9IHRoaXMuZ2V0U2VsZWN0ZWQoKTtcclxuICAgICAgICBpZiAoIWgpe1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbihoLnZhbHVlKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5jSSgnVGFiJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGNvZGUgPT09IDQwKXtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBpZiAodGhpcy5pbnAuaG92ZXIgKyAxID49IHRoaXMuaW5wLmluZGV4KXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pbnAuaG92ZXIgPSB0aGlzLmdldEhvdmVyKCk7XHJcbiAgICAgIHRoaXMuc2V0SG92ZXJDZW50ZXIoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGNvZGUgPT09IDM4KXtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBpZiAodGhpcy5pbnAuaG92ZXIgPD0gMCl7XHJcbiAgICAgICAgdGhpcy5pbnAuaG92ZXIgPSAwO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlucC5ob3ZlciA9IHRoaXMuZ2V0SG92ZXIoLTEpO1xyXG4gICAgICB0aGlzLnNldEhvdmVyQ2VudGVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHRvZ2dsZU9wdGlvbigpOiB2b2lke1xyXG4gICAgdGhpcy5vcGVuT3B0aW9ucygpO1xyXG4gIH1cclxuICBzZWxlY3RPcHRpb24odiwgaXNFZGl0ID0gZmFsc2UpOiB2b2lke1xyXG4gICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgY29uc3QgdmEgPSB0aGlzLmdldFZhbHVlKHYpO1xyXG4gICAgdGhpcy5pbnAudmFsdWUgPSB2O1xyXG4gICAgdGhpcy5pbnAuaG92ZXIgPSB2YSA/IHZhLmluZGV4IDogLTE7XHJcbiAgICB0aGlzLmlucC5zZWFyY2ggPSB2YSA/IHZhLnNlYXJjaCA6ICcnO1xyXG4gICAgdGhpcy5jU2VhcmNoID0gdGhpcy5pbnAuc2VhcmNoO1xyXG4gICAgaWYgKHRoaXMuaW5wLm9uQ2hhbmdlKXtcclxuICAgICAgdGhpcy5pbnAub25DaGFuZ2UodGhpcy5pbnApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaW5wLnJlbCl7XHJcbiAgICAgIHRoaXMuaW5wLnJlbC52YWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuaW5wLnJlbC5ob3ZlciA9IC0xO1xyXG4gICAgICB0aGlzLmlucC5yZWwuaW5kZXggPSAwO1xyXG4gICAgICB0aGlzLmlucC5yZWwuc2VhcmNoID0gJyc7XHJcbiAgICAgIHRoaXMuaW5wLnJlbC5vcHRpb25zID0gW107XHJcbiAgICAgIHRoaXMuaW5wLnJlbC51cmwgPSB0aGlzLmlucC5yZWxVcmwucmVwbGFjZSgne30nLCB0aGlzLmlucC52YWx1ZSk7XHJcbiAgICAgIGlmICh0aGlzLmlucC5yZWwudHlwZSAhPT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZSkge1xyXG4gICAgICAgIHRoaXMuaW5wLnJlbC5sb2FkKCk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuaW5wLnJlbC51cmwgKz0gJ197fSc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IHAgPSB2YSA/IHZhLm9wdGlvbi5QbGFxdWUuc3BsaXQoJ18nKSA6IG51bGw7XHJcbiAgICBpZiAocCAmJiBwLmxlbmd0aCA9PT0gNCkge1xyXG4gICAgICB0aGlzLnBhcnQxLnZhbHVlID0gcCA/IHBbMF0gOiAnJztcclxuICAgICAgdGhpcy5wYXJ0Mi52YWx1ZSA9IHAgPyBwWzFdIDogJyc7XHJcbiAgICAgIHRoaXMucGFydDMudmFsdWUgPSBwID8gcFsyXSA6ICcnO1xyXG4gICAgICB0aGlzLnBhcnQ0LnZhbHVlID0gcCA/IHBbM10gOiAnJztcclxuICAgIH0gZWxzZSBpZiAocCAmJiBwLmxlbmd0aCA9PT0gMikge1xyXG4gICAgICB0aGlzLnBhcnQxLnZhbHVlID0gcCA/IHBbMF0gOiAnJztcclxuICAgICAgdGhpcy5wYXJ0My52YWx1ZSA9IHAgPyBwWzFdIDogJyc7XHJcbiAgICB9XHJcbiAgICBpZiAoIWlzRWRpdCl7XHJcbiAgICAgIHRoaXMuY0koJ1RhYicpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjSShpOiBzdHJpbmcpOiB2b2lke1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdChpKTtcclxuICAgIH0sIDEwKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNsb3NlT3B0aW9ucygpO1xyXG4gICAgfSwgMjApO1xyXG4gIH1cclxuICBzZXRIb3ZlckNlbnRlcigpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBob3ZlcjogYW55ID0gJCh0aGlzLmlucHV0T3B0aW9uc0Rpdi5uYXRpdmVFbGVtZW50KS5maW5kKCcub3B0aW9uLmhvdmVyJyk7XHJcbiAgICAgIGNvbnN0IGl0ZW1zOiBhbnkgPSAkKHRoaXMuaW5wdXRPcHRpb25zRGl2Lm5hdGl2ZUVsZW1lbnQpLmZpbmQoJy5pdGVtcycpO1xyXG4gICAgICBpZiAoaG92ZXIubGVuZ3RoID09PSAwKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaXRlbXMuc2Nyb2xsVG9wID0gaXRlbXMuc2Nyb2xsVG9wIC0gaXRlbXMub2Zmc2V0LnRvcCArIGhvdmVyLm9mZnNldC50b3AgLSBob3Zlci5oZWlnaHQoKTtcclxuICAgIH0sIDEpO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZChvOiBPcHRpb25DbGFzc1tdID0gdGhpcy5pbnAub3B0aW9ucyk6IGFueXtcclxuICAgIGNvbnN0IGggPSBvLmZpbmQoeCA9PiB4LmluZGV4ID09PSB0aGlzLmlucC5ob3Zlcik7XHJcbiAgICBpZiAoaCl7XHJcbiAgICAgIHJldHVybiBoO1xyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCBpIG9mIG8pe1xyXG4gICAgICBjb25zdCBoaSA9IHRoaXMuZ2V0U2VsZWN0ZWQoaS5vcHRpb25zKTtcclxuICAgICAgaWYgKGhpKXtcclxuICAgICAgICByZXR1cm4gaGk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZ2V0SG92ZXIoaSA9IDEsIG86IE9wdGlvbkNsYXNzW10gPSB0aGlzLmlucC5vcHRpb25zLCBoID0gdGhpcy5pbnAuaG92ZXIpOiBudW1iZXJ7XHJcbiAgICBjb25zdCBobyA9IG8uZmluZCh4ID0+IHguaW5kZXggPT09IGggKyBpKTtcclxuICAgIGlmIChobyl7XHJcbiAgICAgIGlmIChoby5zaG93KXtcclxuICAgICAgICByZXR1cm4gaG8uaW5kZXg7XHJcbiAgICAgIH1lbHNlIHtcclxuICAgICAgICBoID0gaCArIGk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGZvciAoY29uc3QgaXQgb2Ygbyl7XHJcbiAgICAgIGNvbnN0IGhpID0gdGhpcy5nZXRIb3ZlcihpLCBpdC5vcHRpb25zLCBoKTtcclxuICAgICAgaWYgKGhpKXtcclxuICAgICAgICByZXR1cm4gaGk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuICBnZXRWYWx1ZSh2LCBvOiBPcHRpb25DbGFzc1tdID0gdGhpcy5pbnAub3B0aW9ucyk6IE9wdGlvbkNsYXNze1xyXG4gICAgY29uc3QgaCA9IG8uZmluZCh4ID0+IHgudmFsdWUgPT09IHYpO1xyXG4gICAgaWYgKGgpe1xyXG4gICAgICByZXR1cm4gaDtcclxuICAgIH1cclxuICAgIGZvciAoY29uc3QgaSBvZiBvKXtcclxuICAgICAgY29uc3QgaGkgPSB0aGlzLmdldFZhbHVlKHYsIGkub3B0aW9ucyk7XHJcbiAgICAgIGlmIChoaSl7XHJcbiAgICAgICAgcmV0dXJuIGhpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHBsYXF1ZUNoYW5nZUZvY3VzKHAsIGEpOiB2b2lke1xyXG4gICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWUpe1xyXG4gICAgICBpZiAocCA9PT0gJ1BhcnQxJyl7XHJcbiAgICAgICAgaWYgKGEgPT09ICdUYWInIHx8IGEgPT09ICdFbnRlcicpe1xyXG4gICAgICAgICAgdGhpcy5wYXJ0Mi5mb2N1cyh0cnVlKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGEgPT09ICdTaGlmdFRhYicgfHwgYSA9PT0gJ1NoaWZ0RW50ZXInKXtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdCgnU2hpZnRUYWInKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAocCA9PT0gJ1BhcnQyJyl7XHJcbiAgICAgICAgaWYgKGEgPT09ICdUYWInIHx8IGEgPT09ICdFbnRlcicpe1xyXG4gICAgICAgICAgdGhpcy5wYXJ0My5mb2N1cyh0cnVlKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGEgPT09ICdTaGlmdFRhYicgfHwgYSA9PT0gJ1NoaWZ0RW50ZXInKXtcclxuICAgICAgICAgIHRoaXMucGFydDEuZm9jdXModHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHAgPT09ICdQYXJ0Mycpe1xyXG4gICAgICAgIGlmIChhID09PSAnVGFiJyB8fCBhID09PSAnRW50ZXInKXtcclxuICAgICAgICAgIHRoaXMucGFydDQuZm9jdXModHJ1ZSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChhID09PSAnU2hpZnRUYWInIHx8IGEgPT09ICdTaGlmdEVudGVyJyl7XHJcbiAgICAgICAgICB0aGlzLnBhcnQyLmZvY3VzKHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChwID09PSAnUGFydDQnKXtcclxuICAgICAgICBpZiAoYSA9PT0gJ1RhYicgfHwgYSA9PT0gJ0VudGVyJyl7XHJcbiAgICAgICAgICB0aGlzLmNoYW5nZUluZGV4LmVtaXQoJ1RhYicpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoYSA9PT0gJ1NoaWZ0VGFiJyB8fCBhID09PSAnU2hpZnRFbnRlcicpe1xyXG4gICAgICAgICAgdGhpcy5wYXJ0My5mb2N1cyh0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZU0gfHwgdGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZUYpe1xyXG4gICAgICBpZiAocCA9PT0gJ1BhcnQxJyl7XHJcbiAgICAgICAgaWYgKGEgPT09ICdUYWInIHx8IGEgPT09ICdFbnRlcicpe1xyXG4gICAgICAgICAgdGhpcy5wYXJ0My5mb2N1cyh0cnVlKTtcclxuICAgICAgICAgIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlRil7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZE9wdGlvbnMoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKGEgPT09ICdTaGlmdFRhYicgfHwgYSA9PT0gJ1NoaWZ0RW50ZXInKXtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdCgnU2hpZnRUYWInKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAocCA9PT0gJ1BhcnQzJyl7XHJcbiAgICAgICAgaWYgKGEgPT09ICdUYWInIHx8IGEgPT09ICdFbnRlcicpe1xyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KCdUYWInKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGEgPT09ICdTaGlmdFRhYicgfHwgYSA9PT0gJ1NoaWZ0RW50ZXInKXtcclxuICAgICAgICAgIHRoaXMucGFydDEuZm9jdXModHJ1ZSk7XHJcbiAgICAgICAgICBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZUYpe1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRPcHRpb25zKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWVHKXtcclxuICAgICAgaWYgKHAgPT09ICdQYXJ0MScpe1xyXG4gICAgICAgIGlmIChhID09PSAnVGFiJyB8fCBhID09PSAnRW50ZXInKXtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdCgnVGFiJyk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChhID09PSAnU2hpZnRUYWInIHx8IGEgPT09ICdTaGlmdEVudGVyJyl7XHJcbiAgICAgICAgICB0aGlzLmNoYW5nZUluZGV4LmVtaXQoJ1NoaWZ0VGFiJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldFNlYXJjaCgpOiBzdHJpbmd7XHJcbiAgICByZXR1cm4gdGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZSA/XHJcbiAgICAgIGAke3RoaXMucGFydDEudmFsdWUgPyB0aGlzLnBhcnQxLnZhbHVlICsgJ18nIDogJyd9JHt0aGlzLnBhcnQyLnZhbHVlID8gdGhpcy5wYXJ0Mi52YWx1ZSArICdfJyA6ICcnfSR7dGhpcy5wYXJ0My52YWx1ZSA/IHRoaXMucGFydDMudmFsdWUgKyAnXycgOiAnJ30ke3RoaXMucGFydDQudmFsdWUgPyB0aGlzLnBhcnQ0LnZhbHVlIDogJyd9YCA6XHJcbiAgICAgIGAke3RoaXMucGFydDEudmFsdWUgPyB0aGlzLnBhcnQxLnZhbHVlICsgJ18nIDogJyd9JHt0aGlzLnBhcnQzLnZhbHVlID8gdGhpcy5wYXJ0My52YWx1ZSArICdfJyA6ICcnfWA7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|