@dev-tcloud/tcloud-ui 2.4.11 → 2.4.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.component.mjs +23 -3
- package/esm2022/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.mjs +2 -1
- package/fesm2022/dev-tcloud-tcloud-ui.mjs +23 -2
- package/fesm2022/dev-tcloud-tcloud-ui.mjs.map +1 -1
- package/lib/_modules/tcloud-ui-accordion/tcloud-ui-accordion.component.d.ts +1 -1
- package/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.d.ts +3 -1
- package/lib/_modules/tcloud-ui-modal/tcloud-ui-modal.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -313,8 +313,22 @@ export class TCloudUiFiltersComponent {
|
|
|
313
313
|
let item_value = this.collectionFind(this.data[i], filter_item.searchIn);
|
|
314
314
|
if (item_value) {
|
|
315
315
|
item_value = this.normalize(item_value);
|
|
316
|
-
if (
|
|
317
|
-
|
|
316
|
+
if (typeof filter_item.notIn === 'boolean' && filter_item.notIn) {
|
|
317
|
+
if ((item_value === filter_item.searchText)) {
|
|
318
|
+
this.setDataIndex(i, false);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
else {
|
|
322
|
+
if (filter_item.type === TCFiltersType.select) {
|
|
323
|
+
if (!(item_value === filter_item.searchText)) {
|
|
324
|
+
this.setDataIndex(i, false);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
else {
|
|
328
|
+
if (!(item_value.includes(filter_item.searchText) || item_value === filter_item.searchText)) {
|
|
329
|
+
this.setDataIndex(i, false);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
318
332
|
}
|
|
319
333
|
}
|
|
320
334
|
else {
|
|
@@ -348,6 +362,9 @@ export class TCloudUiFiltersComponent {
|
|
|
348
362
|
case TCCondition.equal:
|
|
349
363
|
is_accept = (Number(dt_target) === Number(dt_current));
|
|
350
364
|
break;
|
|
365
|
+
case TCCondition.notEqual:
|
|
366
|
+
is_accept = (Number(dt_target) != Number(dt_current));
|
|
367
|
+
break;
|
|
351
368
|
default: is_accept = (Number(dt_target) == Number(dt_current));
|
|
352
369
|
}
|
|
353
370
|
}
|
|
@@ -382,6 +399,9 @@ export class TCloudUiFiltersComponent {
|
|
|
382
399
|
case TCCondition.equal:
|
|
383
400
|
is_accept = (Number(filter_item.searchText) === Number(item_value));
|
|
384
401
|
break;
|
|
402
|
+
case TCCondition.notEqual:
|
|
403
|
+
is_accept = (Number(filter_item.searchText) != Number(item_value));
|
|
404
|
+
break;
|
|
385
405
|
default: is_accept = (Number(filter_item.searchText) == Number(item_value));
|
|
386
406
|
}
|
|
387
407
|
}
|
|
@@ -488,4 +508,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
488
508
|
}], onSubmit: [{
|
|
489
509
|
type: Output
|
|
490
510
|
}] } });
|
|
491
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWZpbHRlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWZpbHRlcnMvdGNsb3VkLXVpLWZpbHRlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWZpbHRlcnMvdGNsb3VkLXVpLWZpbHRlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwSCxPQUFPLEVBQUUsV0FBVyxFQUFpQixhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7OztBQU9oRixNQUFNLE9BQU8sd0JBQXdCO0lBYW5DLElBQWEsSUFBSSxDQUFDLElBQVM7UUFDekIsaURBQWlEO0lBQ25ELENBQUM7SUFDRCxJQUFJLElBQUksS0FBUyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBR3JDLElBQWEsT0FBTyxDQUFDLE9BQVk7UUFDL0IsMEJBQTBCO0lBQzVCLENBQUM7SUFDRCxJQUFJLE9BQU8sS0FBUyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBRzNDLElBQWEsVUFBVSxDQUFDLENBQVM7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBQ0QsSUFBSSxVQUFVLEtBQVcsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQXVCbkQsWUFDVSxRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBcEQ1QixnQkFBVyxHQUFHLEVBQVMsQ0FBQztRQUl4QixXQUFNLEdBQWEsRUFBRSxDQUFDO1FBRXRCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBZ0J0QixnQkFBVyxHQUFXLFNBQVMsQ0FBQztRQVEvQixtQkFBYyxHQUFXLGdCQUFnQixDQUFDO1FBQzFDLHNCQUFpQixHQUFZLElBQUksQ0FBQyxDQUFDLDJFQUEyRTtRQUM5RyxvQkFBZSxHQUFZLEtBQUssQ0FBQyxDQUFDLG1GQUFtRjtRQUNySCw4QkFBeUIsR0FBWSxJQUFJLENBQUMsQ0FBQyxvRkFBb0Y7UUFDL0gsaUJBQVksR0FBWSxJQUFJLENBQUM7UUFDN0Isb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFFaEMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDakMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDbkMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDbkMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFN0MscUJBQWdCLEdBQVcsRUFBRSxDQUFDO1FBQzlCLG9CQUFlLEdBQVcsRUFBRSxDQUFDO1FBRXJCLHdCQUFtQixHQUFZLEtBQUssQ0FBQztRQUU3QyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLHFCQUFnQixHQUFXLENBQUMsQ0FBQztRQUM3QixtQkFBYyxHQUFXLEVBQUUsQ0FBQyxDQUFDLFVBQVU7UUEwTHZDLFVBQUssR0FBWSxJQUFJLENBQUM7UUFDdEIsb0JBQWUsR0FBUSxTQUFTLENBQUM7SUF2TDdCLENBQUM7SUFFTCxRQUFRO1FBQ04sVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUM3QyxLQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO29CQUM1QyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFO3dCQUN6QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLGdCQUFnQixFQUFFOzRCQUM3QyxJQUFJO2dDQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLElBQUksSUFBSSxDQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBRSxDQUFDOzZCQUNyRTs0QkFBQyxPQUFPLEtBQUssRUFBRSxHQUFFO3lCQUNuQjs2QkFBSTs0QkFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQzt5QkFDcEQ7d0JBQ0QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztxQkFDakM7aUJBQ0Y7YUFDRjtZQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDOUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzdDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7WUFDMUIsS0FBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztnQkFDNUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxPQUFPLEVBQUU7b0JBQ2xDLEtBQUssR0FBRyxJQUFJLENBQUM7b0JBQ2IsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDbkUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQzdELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztpQkFDckQ7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUU7b0JBQ2pDLElBQUksR0FBRyxJQUFJLENBQUM7b0JBQ1osSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDbkUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztpQkFDcEQ7YUFDRjtTQUNGO1FBQ0QsT0FBTyxDQUFFLEtBQUssSUFBSSxJQUFJLENBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDMUMsQ0FBQztJQUVELGFBQWEsQ0FBQyxDQUFTO1FBQ3JCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN6QixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFRCxVQUFVLENBQUMsQ0FBUztRQUNsQixJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMzQixHQUFHLEdBQUcsSUFBSSxDQUFDO1NBQ1o7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFHRCxXQUFXLENBQUMsT0FBc0I7UUFFaEMsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzlCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUM7WUFDMUMsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRTtnQkFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ2I7U0FDRjtRQUVELElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNqQyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDO1lBQ2hELElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxPQUFPLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNiO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sSUFBSTtRQUNWLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUM3QyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFxQixFQUFFLEVBQUU7b0JBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUNoQyxDQUFDLENBQUMsQ0FBQzthQUNKO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDL0I7WUFFRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUNsRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDckI7U0FDRjtJQUNILENBQUM7SUFFTyxTQUFTLENBQUMsSUFBUztRQUN6QixJQUFJLElBQUksQ0FBQyx5QkFBeUIsRUFBRTtZQUNsQyxNQUFNLENBQUMsR0FBRyxDQUFFLENBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBRSxDQUFDLElBQUksRUFBRSxDQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEcsT0FBTyxDQUFDLENBQUM7U0FDVjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM3QyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDYjtRQUNELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNuQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQXFCLEVBQUUsQ0FBUyxFQUFFLEVBQUU7Z0JBRXJELElBQUksTUFBTSxDQUFDLEtBQUssRUFBRTtvQkFBRSxPQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUFFO2dCQUMvQyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUU7b0JBQUUsT0FBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztpQkFBRTtnQkFDM0QsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFO29CQUFFLE9BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7aUJBQUU7Z0JBRTNELElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO29CQUN0RyxPQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3BCO2dCQUNELElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7b0JBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFO3dCQUN0QixNQUFNLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztxQkFDM0I7aUJBQ0Y7WUFFSCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFHTyxjQUFjLENBQUMsR0FBUSxFQUFFLElBQVM7UUFDeEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxJQUFJLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDbEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekMsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXpCLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUMxQyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BFLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDNUQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQzFFO2FBQ0Y7WUFHRCxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3RCLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN2QyxPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbEMsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDbkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQ3ZDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDakUsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO3dCQUN4QixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO3FCQUN0QjtpQkFDRjtnQkFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO29CQUN4QixPQUFPLFNBQVMsQ0FBQztpQkFDbEI7Z0JBQ0QsT0FBTyxPQUFPLENBQUM7YUFDaEI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUMxQyxPQUFPLFNBQVMsQ0FBQztpQkFDbEI7Z0JBQ0QsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFO29CQUN6QixPQUFPLFNBQVMsQ0FBQztpQkFDbEI7YUFDRjtTQUNGO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQVFELGFBQWEsQ0FBRSxVQUFlO1FBRTVCLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBRTdDLElBQUksS0FBSyxHQUFHLEVBQVMsQ0FBQztZQUN0QixLQUFLLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztZQUU1QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUU5QyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssT0FBTyxFQUFFO29CQUMzRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQU0sQ0FBQztvQkFDbkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFNLENBQUM7b0JBQ3hELEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQU0sQ0FBQztvQkFDakUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO2lCQUN2QztnQkFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssTUFBTSxFQUFFO29CQUMxRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUssQ0FBQztvQkFDbEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFLLENBQUM7b0JBQ3ZELEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUssQ0FBQztvQkFDL0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO2lCQUN2QzthQUNGO1lBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ2pCO1NBRUY7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUVyQixDQUFDO0lBRUQsbUJBQW1CLENBQUMsVUFBa0I7UUFDcEMsSUFBSTtZQUNGLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUMsT0FBTyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDaEM7UUFBQyxPQUFPLEtBQUssRUFBRSxHQUFFO1FBQ2xCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFtQixFQUFFLEtBQVc7UUFJdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUM7UUFFakMsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRW5CLElBQUksS0FBSyxLQUFLLE1BQU0sSUFBSSxPQUFPLEVBQUU7WUFDL0IsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMxQjtRQUVELElBQUksT0FBTyxLQUFLLEtBQUssU0FBUyxJQUFJLE9BQU8sRUFBRTtZQUN6QyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ2hCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFCO1FBRUQsSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDLElBQUksT0FBTyxFQUFFO1lBQ3RFLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDaEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUI7UUFFRCxJQUFJLEtBQUssRUFBRSxjQUFjLElBQUssT0FBTyxFQUFFO1lBQ3JDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDaEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLEVBQUUsVUFBVSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFCO1FBRUQsSUFBRyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssSUFBSSxPQUFPLEVBQUU7WUFDbEMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMxQjtRQUVELElBQUcsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEtBQUssRUFBRSxJQUFJLE9BQU8sRUFBRTtZQUN6QyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ2hCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFCO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQzVDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDaEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBRSxJQUFJLENBQUMsS0FBSyxDQUFFLEVBQUUsQ0FBQztZQUM5RCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMxQjtRQUVELElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBRSxFQUFFO1lBQ3hFLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUI7UUFJRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDdEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztTQUNsQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxFQUFPO1FBQ2hCLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM3QixNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUIsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM1QixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEMsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUdELFlBQVk7UUFDVixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBRTNDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRTNCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzlDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRXBDLElBQUksV0FBVyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxLQUFLLFFBQVEsSUFBSSxXQUFXLENBQUMsVUFBVSxLQUFLLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxNQUFNLElBQUksV0FBVyxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsSUFBSSxFQUFFO29CQUVuTSxXQUFXLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUNoRSxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUN6RSxJQUFJLFVBQVUsRUFBRTt3QkFDZCxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQzt3QkFDeEMsSUFBSSxDQUFDLENBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksVUFBVSxLQUFLLFdBQVcsQ0FBQyxVQUFVLENBQUUsRUFBRTs0QkFDN0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7eUJBQzdCO3FCQUNGO3lCQUFJO3dCQUNILElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO3FCQUM3QjtpQkFDRjtnQkFHRCxJQUFJLFdBQVcsQ0FBQyxVQUFVLElBQUksV0FBVyxDQUFDLFVBQVUsWUFBWSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLFFBQVEsRUFBRTtvQkFFaEssSUFBSSxVQUFVLEdBQVEsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFFOUUsSUFBSTt3QkFBRSxVQUFVLEdBQUcsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7cUJBQUU7b0JBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRTtvQkFDM0QsSUFBSSxVQUFVLElBQUssVUFBVSxZQUFZLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBRSxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRTt3QkFDOUUsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO3dCQUV0QixNQUFNLFNBQVMsR0FBSyxDQUFFLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDZCQUE2Qjt3QkFDckgsTUFBTSxVQUFVLEdBQUksQ0FBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQzt3QkFDM0UsSUFBSSxXQUFXLENBQUMsU0FBUyxFQUFFOzRCQUN6QixRQUFRLFdBQVcsQ0FBQyxTQUFTLEVBQUU7Z0NBQzdCLEtBQUssV0FBVyxDQUFDLEVBQUU7b0NBQUssU0FBUyxHQUFHLENBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBRSxDQUFDO29DQUFFLE1BQU07Z0NBQ3hGLEtBQUssV0FBVyxDQUFDLEVBQUU7b0NBQUssU0FBUyxHQUFHLENBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBRSxDQUFDO29DQUFFLE1BQU07Z0NBQ3hGLEtBQUssV0FBVyxDQUFDLEdBQUc7b0NBQUksU0FBUyxHQUFHLENBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBRSxDQUFDO29DQUFFLE1BQU07Z0NBQ3hGLEtBQUssV0FBVyxDQUFDLEdBQUc7b0NBQUksU0FBUyxHQUFHLENBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBRSxDQUFDO29DQUFFLE1BQU07Z0NBQ3hGLEtBQUssV0FBVyxDQUFDLEtBQUs7b0NBQUUsU0FBUyxHQUFHLENBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBRSxDQUFDO29DQUFFLE1BQU07Z0NBQ3pGLE9BQU8sQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUUsQ0FBQzs2QkFDbEU7eUJBQ0Y7NkJBQUk7NEJBQ0gsU0FBUyxHQUFHLENBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsS0FBSyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUUsQ0FBQzt5QkFDdkU7d0JBQ0QsSUFBSSxDQUFDLFNBQVMsRUFBRTs0QkFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQzt5QkFDN0I7cUJBQ0Y7aUJBQ0Y7Z0JBSUQsSUFBSSxXQUFXLENBQUMsVUFBVSxJQUFJLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBRSxXQUFXLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxNQUFNLElBQUksV0FBVyxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsSUFBSSxDQUFFLEVBQUU7b0JBRTVLLFdBQVcsQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDeEQsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFFekUsSUFBSSxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxRQUFRLEVBQUU7d0JBQzFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7d0JBQ2hDLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQzt3QkFDdEIsSUFBSSxXQUFXLENBQUMsU0FBUyxFQUFFOzRCQUV6QixRQUFRLFdBQVcsQ0FBQyxTQUFTLEVBQUU7Z0NBQzdCLEtBQUssV0FBVyxDQUFDLEVBQUU7b0NBQUssU0FBUyxHQUFHLENBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsR0FBSSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUUsQ0FBQztvQ0FBRSxNQUFNO2dDQUNyRyxLQUFLLFdBQVcsQ0FBQyxFQUFFO29DQUFLLFNBQVMsR0FBRyxDQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEdBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFFLENBQUM7b0NBQUUsTUFBTTtnQ0FDckcsS0FBSyxXQUFXLENBQUMsR0FBRztvQ0FBSSxTQUFTLEdBQUcsQ0FBRSxNQUFNLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBRSxDQUFDO29DQUFDLE1BQU07Z0NBQ3BHLEtBQUssV0FBVyxDQUFDLEdBQUc7b0NBQUksU0FBUyxHQUFHLENBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUUsQ0FBQztvQ0FBRSxNQUFNO2dDQUNyRyxLQUFLLFdBQVcsQ0FBQyxLQUFLO29DQUFFLFNBQVMsR0FBRyxDQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEtBQUssTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFFLENBQUM7b0NBQUMsTUFBTTtnQ0FDckcsT0FBTyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUUsQ0FBQzs2QkFDL0U7eUJBQ0Y7NkJBQUk7NEJBQ0gsU0FBUyxHQUFHLENBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsS0FBSyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUUsQ0FBQzt5QkFDdkU7d0JBQ0QsSUFBSSxDQUFDLFNBQVMsRUFBRTs0QkFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQzt5QkFDN0I7cUJBQ0Y7aUJBQ0Y7Z0JBR0QsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxLQUFLLFNBQVMsSUFBSSxXQUFXLENBQUMsVUFBVSxLQUFLLElBQUksRUFBRTtvQkFFcEYsSUFBSSxVQUFVLEdBQVEsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFFOUUsSUFBSSxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO3dCQUN6QyxJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUM7d0JBQ3BCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7NEJBQzlDLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDM0IsSUFBSSxJQUFJLEtBQUssV0FBVyxDQUFDLFVBQVUsRUFBRTtnQ0FDbkMsV0FBVyxFQUFFLENBQUM7NkJBQ2Y7eUJBQ0Y7d0JBQ0QsSUFBSSxXQUFXLEtBQUssQ0FBQyxFQUFFOzRCQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQzt5QkFDN0I7cUJBQ0Y7eUJBQUk7d0JBQ0gsSUFBSSxDQUFDLENBQUUsVUFBVSxLQUFLLFdBQVcsQ0FBQyxVQUFVLENBQUUsRUFBRTs0QkFDOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7eUJBQzdCO3FCQUNGO2lCQUNGO2FBRUY7U0FFRixDQUFDLFVBQVU7UUFFWixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFFbEIsQ0FBQztJQUVPLFFBQVE7UUFHZCxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFFdkIsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDOUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsS0FBSyxFQUFFLEVBQUU7Z0JBQ25FLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQUMsTUFBTTthQUN6QjtTQUNGO1FBRUQsSUFBSSxTQUFTLEVBQUU7WUFDYixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUMzQyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEVBQUU7b0JBQ2pFLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDbEM7YUFDRjtZQUVELElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDO1lBQ3RDLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWEsRUFBRSxLQUFjO1FBQ3hDLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsa0JBQWtCLENBQUMsR0FBRyxLQUFLLENBQUM7U0FDOUM7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQVM7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN0RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3RDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUM7YUFDcEM7U0FDRjtRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7K0dBaGdCVSx3QkFBd0I7bUdBQXhCLHdCQUF3Qiwya0JDVnJDLHlwVEF5Skc7OzRGRC9JVSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsbUJBQW1COytGQVFGLFdBQVc7c0JBQXJDLFNBQVM7dUJBQUMsYUFBYTtnQkFTWCxJQUFJO3NCQUFoQixLQUFLO2dCQU1PLE9BQU87c0JBQW5CLEtBQUs7Z0JBTU8sVUFBVTtzQkFBdEIsS0FBSztnQkFPRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRDQ29uZGl0aW9uLCBUQ0RhdGFGaWx0ZXJzLCBUQ0ZpbHRlcnNUeXBlIH0gZnJvbSAnLi90Y2xvdWQtdWktZmlsdGVycyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RjbG91ZC11aS1maWx0ZXJzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGNsb3VkLXVpLWZpbHRlcnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RjbG91ZC11aS1maWx0ZXJzLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpRmlsdGVyc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuXHJcbiAgZGF0ZXBpY2tlcnMgPSBbXSBhcyBhbnk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ19mb3JtdWxhcmlvJykgIF9mb3JtdWxhcmlvOiBOZ0Zvcm0gfCB1bmRlZmluZWQ7XHJcblxyXG4gIGlucHV0czogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgc2hvd19maWx0ZXJzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHNlYXJjaF9kYXRhOiBhbnkgfCB1bmRlZmluZWQ7XHJcblxyXG4gIHByaXZhdGUgX2RhdGE6IGFueSB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBzZXQgZGF0YShkYXRhOiBhbnkpe1xyXG4gICAgLy8gdGhpcy5fZGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xyXG4gIH1cclxuICBnZXQgZGF0YSgpOiBhbnl7IHJldHVybiB0aGlzLl9kYXRhOyB9XHJcblxyXG4gIHByaXZhdGUgX2ZpbHRlcnM6IFRDRGF0YUZpbHRlcnMgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgc2V0IGZpbHRlcnMoZmlsdGVyczogYW55KXtcclxuICAgIC8vdGhpcy5fZmlsdGVycyA9IGZpbHRlcnM7XHJcbiAgfVxyXG4gIGdldCBmaWx0ZXJzKCk6IGFueXsgcmV0dXJuIHRoaXMuX2ZpbHRlcnM7IH1cclxuXHJcbiAgcHJpdmF0ZSBfc3VibWl0VGV4dDogc3RyaW5nID0gJ0ZpbHRyYXInO1xyXG4gIEBJbnB1dCgpIHNldCBzdWJtaXRUZXh0KHY6IHN0cmluZyl7IFxyXG4gICAgaWYoIHYgJiYgdiAhPT0gdGhpcy5fc3VibWl0VGV4dCApe1xyXG4gICAgICB0aGlzLl9zdWJtaXRUZXh0ID0gdjtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IHN1Ym1pdFRleHQoKTpzdHJpbmd7IHJldHVybiB0aGlzLl9zdWJtaXRUZXh0OyB9XHJcblxyXG4gIEBJbnB1dCgpIGJ0blN1Ym1pdENsYXNzOiBzdHJpbmcgPSAndGMtYnRuLXByaW1hcnknO1xyXG4gIEBJbnB1dCgpIHVzZU9uQ2hhbmdlU3VibWl0OiBib29sZWFuID0gdHJ1ZTsgLy8gdXNlT25DaGFuZ2VTdWJtaXQgLSBTdWJtaXQgYXV0b21hdGljbyBxdWFuZG8gZm9yIGFsdGVyYWRvIHF1YW5xdWVyIGlucHV0XHJcbiAgQElucHV0KCkgdXNlQnV0dG9uU3VibWl0OiBib29sZWFuID0gZmFsc2U7IC8vIHVzZUJ1dHRvblN1Ym1pdCAtIEV4aWJlIHVtIGJvdMOjbyBkZSBzdWJtaXQgZSBuw6NvIGV4ZWN1dGEgYSBidXNjYSBhdXRvbWF0aWNhbWVudGVcclxuICBASW5wdXQoKSB1c2VOb3JtYWxpemVDYXNlU2Vuc2l0aXZlOiBib29sZWFuID0gdHJ1ZTsgLy8gdXNlTm9ybWFsaXplQ2FzZVNlbnNpdGl2ZSAtIE7Do28gdmFsaWRhIGNhaXhhIGFsdGEgb3UgYmFpeGEgZSBjYXJhY3RlcmVzIGVzcGVjaWFpc1xyXG4gIEBJbnB1dCgpIHVzZVJhbmdlRGF0ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgdXNlRmlsdGVyQWNjZXB0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSByZXN1bHQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgb25GaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgb25TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgZGVzY3JpcHRpb25TdGFydDogc3RyaW5nID0gJyc7XHJcbiAgZGVzY3JpcHRpb25TdG9wOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgcHJpdmF0ZSBmaXJzdF9hY3RpdmVfZmlsdGVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHN0YXJ0X3N0b3A6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzdGFydF9zdG9wX3dpZHRoOiBudW1iZXIgPSAwO1xyXG4gIHN0YXJ0X3N0b3BfdW5kOiBzdHJpbmcgPSAnJzsgLy8gcHggb3UgJVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGF0ZXBpcGU6IERhdGVQaXBlXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYoIHRoaXMuZmlsdGVycyAmJiAodGhpcy5maWx0ZXJzKS5sZW5ndGggPiAwICl7XHJcbiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8ICh0aGlzLmZpbHRlcnMpLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgIGlmKCB0aGlzLmZpbHRlcnNbaV0udmFsdWUgKXtcclxuICAgICAgICAgICAgaWYoIHRoaXMuZmlsdGVyc1tpXS50eXBlID09PSAnZGF0ZXRpbWUtbG9jYWwnICl7XHJcbiAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyc1tpXS5zZWFyY2hUZXh0ID0gbmV3IERhdGUoIGAke3RoaXMuZmlsdGVyc1tpXS52YWx1ZX1gICk7XHJcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHt9XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlsdGVyc1tpXS5zZWFyY2hUZXh0ID0gdGhpcy5maWx0ZXJzW2ldLnZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZmlyc3RfYWN0aXZlX2ZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSAgICAgIFxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RhcnRfc3RvcCA9ICh0aGlzLnVzZVJhbmdlRGF0ZSkgPyB0aGlzLmlzX3N0YXJ0X3N0b3BfZGF0ZXRpbWUoKSA6IGZhbHNlO1xyXG4gICAgICB0aGlzLnRvU3VibWl0KCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGlzX3N0YXJ0X3N0b3BfZGF0ZXRpbWUoKXtcclxuICAgIGxldCBzdGFydCA9IGZhbHNlO1xyXG4gICAgbGV0IHN0b3AgPSBmYWxzZTtcclxuICAgIGlmKCB0aGlzLmZpbHRlcnMgJiYgKHRoaXMuZmlsdGVycykubGVuZ3RoID4gMCApe1xyXG4gICAgICB0aGlzLnN0YXJ0X3N0b3Bfd2lkdGggPSAwO1xyXG4gICAgICBmb3IobGV0IGkgPSAwOyBpIDwgKHRoaXMuZmlsdGVycykubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgIGlmKCB0aGlzLmZpbHRlcnNbaV0uaWQgPT09ICdzdGFydCcgKXtcclxuICAgICAgICAgIHN0YXJ0ID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuc3RhcnRfc3RvcF93aWR0aCArPSB0aGlzLmdldFZhbHVlV2lkdGgodGhpcy5maWx0ZXJzW2ldLndpZHRoKTtcclxuICAgICAgICAgIHRoaXMuc3RhcnRfc3RvcF91bmQgPSB0aGlzLmdldFVuaWRhZGUodGhpcy5maWx0ZXJzW2ldLndpZHRoKTtcclxuICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb25TdGFydCA9IHRoaXMuZmlsdGVyc1tpXS5kZXNjcmlwdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoIHRoaXMuZmlsdGVyc1tpXS5pZCA9PT0gJ3N0b3AnICl7XHJcbiAgICAgICAgICBzdG9wID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuc3RhcnRfc3RvcF93aWR0aCArPSB0aGlzLmdldFZhbHVlV2lkdGgodGhpcy5maWx0ZXJzW2ldLndpZHRoKTtcclxuICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb25TdG9wID0gdGhpcy5maWx0ZXJzW2ldLmRlc2NyaXB0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICggc3RhcnQgJiYgc3RvcCApID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsdWVXaWR0aCh2OiBzdHJpbmcpOm51bWJlciB7XHJcbiAgICBsZXQgdW5kID0gdGhpcy5nZXRVbmlkYWRlKHYpO1xyXG4gICAgdiA9ICh2KS5yZXBsYWNlKHVuZCwgJycpO1xyXG4gICAgcmV0dXJuICsodik7XHJcbiAgfVxyXG5cclxuICBnZXRVbmlkYWRlKHY6IHN0cmluZyk6c3RyaW5nIHtcclxuICAgIGxldCB1bmQgPSAnJSc7XHJcbiAgICBpZiggdiAmJiAodikuaW5jbHVkZXMoJ3B4JykgKXtcclxuICAgICAgdW5kID0gJ3B4JztcclxuICAgIH1cclxuICAgIHJldHVybiB1bmQ7XHJcbiAgfVxyXG4gXHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHsgIFxyXG4gICAgXHJcbiAgICBpZiggY2hhbmdlcyAmJiBjaGFuZ2VzWydkYXRhJ10gKXtcclxuICAgICAgY29uc3QgZGF0YSA9IGNoYW5nZXNbJ2RhdGEnXS5jdXJyZW50VmFsdWU7XHJcbiAgICAgIGlmKCB0aGlzLl9kYXRhICE9PSBkYXRhICl7XHJcbiAgICAgICAgdGhpcy5fZGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoX2RhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcclxuICAgICAgICB0aGlzLmluaXQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmKCBjaGFuZ2VzICYmIGNoYW5nZXNbJ2ZpbHRlcnMnXSApe1xyXG4gICAgICBjb25zdCBmaWx0ZXJzID0gY2hhbmdlc1snZmlsdGVycyddLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgaWYoIHRoaXMuX2ZpbHRlcnMgIT09IGZpbHRlcnMgKXtcclxuICAgICAgICB0aGlzLl9maWx0ZXJzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShmaWx0ZXJzKSk7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdCgpe1xyXG4gICAgaWYoIHRoaXMuZGF0YSAmJiB0aGlzLmZpbHRlcnMgKXtcclxuICAgICAgdGhpcy5zaG93X2ZpbHRlcnMgPSB0cnVlO1xyXG4gICAgICBpZiggdGhpcy5maWx0ZXJzICYmICh0aGlzLmZpbHRlcnMpLmxlbmd0aCA+IDAgKXtcclxuICAgICAgICAodGhpcy5maWx0ZXJzKS5mb3JFYWNoKChmaWx0ZXI6IFRDRGF0YUZpbHRlcnMpID0+IHsgICAgICAgICAgICBcclxuICAgICAgICAgIHRoaXMuc2VhcmNoSW4oZmlsdGVyLCAnc3luYycpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IFxyXG4gICAgICBpZiggIXRoaXMudXNlT25DaGFuZ2VTdWJtaXQgKXtcclxuICAgICAgICB0aGlzLnJlc3VsdF9hY2NlcHQodGhpcy5kYXRhKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYoIHRoaXMudXNlT25DaGFuZ2VTdWJtaXQgfHwgdGhpcy51c2VCdXR0b25TdWJtaXQgKXtcclxuICAgICAgICB0aGlzLnN0YXJ0X2ZpbHRlcigpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG5vcm1hbGl6ZSh0ZXh0OiBhbnkpOiBzdHJpbmd7XHJcbiAgICBpZiggdGhpcy51c2VOb3JtYWxpemVDYXNlU2Vuc2l0aXZlICl7XHJcbiAgICAgIGNvbnN0IHYgPSAoICggKGAke3RleHR9YCkubm9ybWFsaXplKCdORkQnKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCBcIlwiKSApLnRyaW0oKSApLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIHJldHVybiB2O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRleHQ7XHJcbiAgfVxyXG5cclxuICB0b1N1Ym1pdCgpe1xyXG4gICAgaWYoIHRoaXMuZmlsdGVycyAmJiAodGhpcy5maWx0ZXJzKS5sZW5ndGggPiAwICl7XHJcbiAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5lbWl0U3VibWl0RmlsdGVycygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlbWl0U3VibWl0RmlsdGVycygpe1xyXG4gICAgbGV0IGZpbHRlcnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZmlsdGVycykpO1xyXG4gICAgaWYoIGZpbHRlcnMgJiYgKGZpbHRlcnMpLmxlbmd0aCA+IDAgKXtcclxuICAgICAgKGZpbHRlcnMpLmZvckVhY2goKGZpbHRlcjogVENEYXRhRmlsdGVycywgaTogbnVtYmVyKSA9PiB7XHJcblxyXG4gICAgICAgIGlmKCBmaWx0ZXIud2lkdGggKXsgZGVsZXRlKGZpbHRlcnNbaV0ud2lkdGgpOyB9XHJcbiAgICAgICAgaWYoIGZpbHRlci5wbGFjZWhvbGRlciApeyBkZWxldGUoZmlsdGVyc1tpXS5wbGFjZWhvbGRlcik7IH1cclxuICAgICAgICBpZiggZmlsdGVyLmRlc2NyaXB0aW9uICl7IGRlbGV0ZShmaWx0ZXJzW2ldLmRlc2NyaXB0aW9uKTsgfVxyXG5cclxuICAgICAgICBpZiggKCFmaWx0ZXIuc2VhcmNoVGV4dCB8fCBmaWx0ZXIuc2VhcmNoVGV4dCAmJiBmaWx0ZXIuc2VhcmNoVGV4dCA9PT0gJycpICYmIGZpbHRlci50eXBlICE9PSBcImJvb2xlYW5cIiApe1xyXG4gICAgICAgICAgZGVsZXRlKGZpbHRlcnNbaV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiggZmlsdGVyLnR5cGUgPT09IFwiYm9vbGVhblwiICl7XHJcbiAgICAgICAgICBpZiggIWZpbHRlci5zZWFyY2hUZXh0ICl7XHJcbiAgICAgICAgICAgIGZpbHRlci5zZWFyY2hUZXh0ID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICB9KTtcclxuICAgIH0gICBcclxuICAgIFxyXG4gICAgdGhpcy5vblN1Ym1pdC5lbWl0KHRoaXMuZmlsdGVycyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBjb2xsZWN0aW9uRmluZChvYmo6IGFueSwgcGF0aDogYW55KTogYW55IHtcclxuICAgIGNvbnN0IHBhdGhBcnJheSA9IHBhdGguc3BsaXQoXCIuXCIpO1xyXG4gICAgbGV0IGN1cnJlbnQgPSBvYmo7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGhBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBrZXkgPSBwYXRoQXJyYXlbaV07XHJcblxyXG4gICAgICBpZiAoa2V5LmluY2x1ZGVzKCdbJykgJiYga2V5LmluY2x1ZGVzKCddJykpIHtcclxuICAgICAgICBjb25zdCBuZXh0S2V5cyA9IHBhdGhBcnJheS5zbGljZShpICsgMSk7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSBrZXkuc3Vic3RyaW5nKGtleS5pbmRleE9mKCdbJykgKyAxLCBrZXkuaW5kZXhPZignXScpKTtcclxuICAgICAgICBjb25zdCBhcnJheUtleSA9IGtleS5zdWJzdHJpbmcoMCwga2V5LmluZGV4T2YoJ1snKSk7XHJcbiAgICAgICAgaWYoIGN1cnJlbnQgJiYgY3VycmVudFthcnJheUtleV0gJiYgY3VycmVudFthcnJheUtleV1baW5kZXhdICl7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uRmluZChjdXJyZW50W2FycmF5S2V5XVtpbmRleF0sIG5leHRLZXlzLmpvaW4oXCIuXCIpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgICBpZiAoa2V5LmluY2x1ZGVzKFwiW11cIikpIHtcclxuICAgICAgICBjb25zdCBhcnJheUtleSA9IGtleS5yZXBsYWNlKFwiW11cIiwgXCJcIik7XHJcbiAgICAgICAgY3VycmVudCA9IGN1cnJlbnRbYXJyYXlLZXldIHx8IFtdO1xyXG4gICAgICAgIGNvbnN0IG5leHRLZXlzID0gcGF0aEFycmF5LnNsaWNlKGkgKyAxKTtcclxuICAgICAgICBjb25zdCByZXN1bHRzID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBjdXJyZW50Lmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5jb2xsZWN0aW9uRmluZChjdXJyZW50W2pdLCBuZXh0S2V5cy5qb2luKFwiLlwiKSk7XHJcbiAgICAgICAgICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHJlc3VsdCk7IFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocmVzdWx0cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHRzO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmKCAhY3VycmVudCB8fCAoY3VycmVudCAmJiAhY3VycmVudFtrZXldKSApe1xyXG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgY3VycmVudCA9IGN1cnJlbnRba2V5XTtcclxuICAgICAgICBpZiAoY3VycmVudCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGN1cnJlbnQ7XHJcbiAgfVxyXG4gICAgXHJcbiAgZmlyc3Q6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHN0YXJ0X2ZpbHRlcl9mYzogYW55ID0gdW5kZWZpbmVkO1xyXG5cclxuICBzdGFydF92YWx1ZTogYW55IHwgdW5kZWZpbmVkO1xyXG4gIHN0b3BfdmFsdWU6IGFueSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgc2VhcmNoSW5SYW5nZSggcmFuZ2VfZGF0ZTogYW55KXtcclxuICAgIFxyXG4gICAgaWYoIHRoaXMuZmlsdGVycyAmJiAodGhpcy5maWx0ZXJzKS5sZW5ndGggPiAwICl7XHJcblxyXG4gICAgICBsZXQgZXZlbnQgPSB7fSBhcyBhbnk7IFxyXG4gICAgICBldmVudC5kYXRlcGlja2VydGltZSA9IHRydWU7XHJcblxyXG4gICAgICBmb3IoIGxldCBpID0gMDsgaSA8ICh0aGlzLmZpbHRlcnMpLmxlbmd0aDsgaSsrICl7XHJcblxyXG4gICAgICAgIGlmKCB0aGlzLmZpbHRlcnNbaV0gJiYgdGhpcy5maWx0ZXJzW2ldLmlkICYmIHRoaXMuZmlsdGVyc1tpXS5pZCA9PT0gJ3N0YXJ0JyApe1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJzW2ldLnZhbHVlID0gcmFuZ2VfZGF0ZT8ucmVzdWx0Py5zdGFydCE7XHJcbiAgICAgICAgICB0aGlzLmZpbHRlcnNbaV0uc2VhcmNoVGV4dCA9IHJhbmdlX2RhdGU/LnJlc3VsdD8uc3RhcnQhO1xyXG4gICAgICAgICAgZXZlbnQuaW5uZXJWYWx1ZSA9IHRoaXMuc3RhcnRfdmFsdWUgPSByYW5nZV9kYXRlPy5yZXN1bHQ/LnN0YXJ0ITtcclxuICAgICAgICAgIHRoaXMuc2VhcmNoSW4odGhpcy5maWx0ZXJzW2ldLCBldmVudCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiggdGhpcy5maWx0ZXJzW2ldICYmIHRoaXMuZmlsdGVyc1tpXS5pZCAmJiB0aGlzLmZpbHRlcnNbaV0uaWQgPT09ICdzdG9wJyApe1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJzW2ldLnZhbHVlID0gcmFuZ2VfZGF0ZT8ucmVzdWx0Py5zdG9wITtcclxuICAgICAgICAgIHRoaXMuZmlsdGVyc1tpXS5zZWFyY2hUZXh0ID0gcmFuZ2VfZGF0ZT8ucmVzdWx0Py5zdG9wITtcclxuICAgICAgICAgIGV2ZW50LmlubmVyVmFsdWUgPSB0aGlzLnN0b3BfdmFsdWUgPSByYW5nZV9kYXRlPy5yZXN1bHQ/LnN0b3AhO1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hJbih0aGlzLmZpbHRlcnNbaV0sIGV2ZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYoIHRoaXMuZmlyc3QgfHwgdGhpcy51c2VPbkNoYW5nZVN1Ym1pdCApe1xyXG4gICAgICAgIHRoaXMudG9TdWJtaXQoKTtcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgIH1cclxuICAgIHRoaXMuZmlyc3QgPSBmYWxzZTtcclxuXHJcbiAgfVxyXG5cclxuICBjb252ZXJ0RGF0YVRvTnVtYmVyKGRhdGFTdHJpbmc6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBbZGlhLCBtZXMsIGFub10gPSBkYXRhU3RyaW5nLnNwbGl0KCcvJyk7XHJcbiAgICAgIHJldHVybiArKGAke2Fub30ke21lc30ke2RpYX1gKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7fVxyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG5cclxuICBzZWFyY2hJbihpdGVtOiBUQ0RhdGFGaWx0ZXJzLCBldmVudD86IGFueSl7XHJcblxyXG4gICAgXHJcblxyXG4gICAgdGhpcy5zdGFydF9maWx0ZXJfZmMgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgbGV0IGlzVmFsaWQgPSB0cnVlO1xyXG5cclxuICAgIGlmKCBldmVudCA9PT0gJ3N5bmMnICYmIGlzVmFsaWQgKXtcclxuICAgICAgaXNWYWxpZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIHR5cGVvZiBldmVudCA9PT0gJ2Jvb2xlYW4nICYmIGlzVmFsaWQgKXtcclxuICAgICAgaXNWYWxpZCA9IGZhbHNlO1xyXG4gICAgICBpdGVtLnNlYXJjaFRleHQgPSBldmVudDtcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCAoZXZlbnQgPT09IHVuZGVmaW5lZCB8fCBldmVudCA9PT0gbnVsbCB8fCBldmVudCA9PT0gJycpICYmIGlzVmFsaWQgKXtcclxuICAgICAgaXNWYWxpZCA9IGZhbHNlO1xyXG4gICAgICBpdGVtLnNlYXJjaFRleHQgPSAnJztcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBldmVudD8uZGF0ZXBpY2tlcnRpbWUgICYmIGlzVmFsaWQgKXtcclxuICAgICAgaXNWYWxpZCA9IGZhbHNlO1xyXG4gICAgICBpdGVtLnNlYXJjaFRleHQgPSBldmVudD8uaW5uZXJWYWx1ZTsgICAgICBcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKGV2ZW50Py50YXJnZXQ/LnZhbHVlICYmIGlzVmFsaWQgKXtcclxuICAgICAgaXNWYWxpZCA9IGZhbHNlO1xyXG4gICAgICBpdGVtLnNlYXJjaFRleHQgPSB0aGlzLm5vcm1hbGl6ZShldmVudC50YXJnZXQudmFsdWUpO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoZXZlbnQ/LnRhcmdldD8udmFsdWUgPT09ICcnICYmIGlzVmFsaWQgKXtcclxuICAgICAgaXNWYWxpZCA9IGZhbHNlO1xyXG4gICAgICBpdGVtLnNlYXJjaFRleHQgPSAnJztcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpdGVtLnR5cGUgPT09ICdkYXRlLWxvY2FsJyAmJiBpdGVtLnZhbHVlICl7XHJcbiAgICAgIGlzVmFsaWQgPSBmYWxzZTtcclxuICAgICAgaXRlbS5zZWFyY2hUZXh0ID0gYCR7dGhpcy5jb252ZXJ0RGF0YVRvTnVtYmVyKCBpdGVtLnZhbHVlICl9YDtcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBldmVudCAmJiBldmVudC5yZXN1bHQgJiYgKCBldmVudC5yZXN1bHQuc3RhcnQgfHwgZXZlbnQucmVzdWx0LnN0b3AgKSApe1xyXG4gICAgICBpc1ZhbGlkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBcclxuICAgIFxyXG4gICAgaWYoIHRoaXMudXNlT25DaGFuZ2VTdWJtaXQgfHwgdGhpcy5maXJzdF9hY3RpdmVfZmlsdGVyICl7ICAgICAgXHJcbiAgICAgIHRoaXMuc3RhcnRfZmlsdGVyX2ZjID0gdGhpcy5zdGFydF9maWx0ZXIoKTtcclxuICAgICAgdGhpcy5maXJzdF9hY3RpdmVfZmlsdGVyID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoICF0aGlzLnVzZUJ1dHRvblN1Ym1pdCApe1xyXG4gICAgICB0aGlzLmVtaXRTdWJtaXRGaWx0ZXJzKCk7XHJcbiAgICB9IFxyXG4gIH1cclxuXHJcbiAgZ2V0RGF0ZVVUQyhkdDogYW55KXtcclxuICAgIGNvbnN0IGFubyA9IGR0LmdldEZ1bGxZZWFyKCk7XHJcbiAgICBjb25zdCBtZXMgPSBkdC5nZXRNb250aCgpO1xyXG4gICAgY29uc3QgZGlhID0gZHQuZ2V0RGF0ZSgpO1xyXG4gICAgY29uc3QgaG9yYXMgPSBkdC5nZXRIb3VycygpO1xyXG4gICAgY29uc3QgbWludXRvcyA9IGR0LmdldE1pbnV0ZXMoKTtcclxuICAgIGNvbnN0IHNlZ3VuZG9zID0gZHQuZ2V0U2Vjb25kcygpO1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKGFubywgbWVzLCBkaWEsIGhvcmFzLCBtaW51dG9zLCBzZWd1bmRvcykpO1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgc3RhcnRfZmlsdGVyKCl7XHJcbiAgICBmb3IoIGxldCBpID0gMDsgaSA8ICh0aGlzLmRhdGEpLmxlbmd0aDsgaSsrICl7XHJcblxyXG4gICAgICB0aGlzLnNldERhdGFJbmRleChpLCB0cnVlKTtcclxuXHJcbiAgICAgIGZvciggbGV0IGogPSAwOyBqIDwgKHRoaXMuZmlsdGVycykubGVuZ3RoOyBqKysgKXsgICAgICAgIFxyXG4gICAgICAgIGNvbnN0IGZpbHRlcl9pdGVtID0gdGhpcy5maWx0ZXJzW2pdOyAgIFxyXG5cclxuICAgICAgICBpZiggZmlsdGVyX2l0ZW0uc2VhcmNoVGV4dCAmJiB0eXBlb2YgKGZpbHRlcl9pdGVtLnNlYXJjaFRleHQpID09PSAnc3RyaW5nJyAmJiBmaWx0ZXJfaXRlbS5zZWFyY2hUZXh0ICE9PSAnJyAmJiBmaWx0ZXJfaXRlbS50eXBlICE9PSBUQ0ZpbHRlcnNUeXBlLm51bWJlciAmJiBmaWx0ZXJfaXRlbS50eXBlICE9PSBUQ0ZpbHRlcnNUeXBlLmRhdGUgKXtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgZmlsdGVyX2l0ZW0uc2VhcmNoVGV4dCA9IHRoaXMubm9ybWFsaXplKGZpbHRlcl9pdGVtLnNlYXJjaFRleHQpOyAgICAgICAgXHJcbiAgICAgICAgICBsZXQgaXRlbV92YWx1ZSA9IHRoaXMuY29sbGVjdGlvbkZpbmQodGhpcy5kYXRhW2ldLCBmaWx0ZXJfaXRlbS5zZWFyY2hJbik7XHJcbiAgICAgICAgICBpZiggaXRlbV92YWx1ZSApe1xyXG4gICAgICAgICAgICBpdGVtX3ZhbHVlID0gdGhpcy5ub3JtYWxpemUoaXRlbV92YWx1ZSk7ICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGlmKCAhKCBpdGVtX3ZhbHVlLmluY2x1ZGVzKGZpbHRlcl9pdGVtLnNlYXJjaFRleHQpIHx8IGl0ZW1fdmFsdWUgPT09IGZpbHRlcl9pdGVtLnNlYXJjaFRleHQgKSApe1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0RGF0YUluZGV4KGksIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0RGF0YUluZGV4KGksIGZhbHNlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IFxyXG4gICAgICAgIFxyXG5cclxuICAgICAgICBpZiggZmlsdGVyX2l0ZW0uc2VhcmNoVGV4dCAmJiBmaWx0ZXJfaXRlbS5zZWFyY2hUZXh0IGluc3RhbmNlb2YgRGF0ZSAmJiAhaXNOYU4oIGZpbHRlcl9pdGVtLnNlYXJjaFRleHQudmFsdWVPZigpKSAmJiBmaWx0ZXJfaXRlbS50eXBlID09PSBUQ0ZpbHRlcnNUeXBlLmRhdGV0aW1lICl7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGxldCBpdGVtX3ZhbHVlOiBhbnkgPSB0aGlzLmNvbGxlY3Rpb25GaW5kKHRoaXMuZGF0YVtpXSwgZmlsdGVyX2l0ZW0uc2VhcmNoSW4pO1xyXG5cclxuICAgICAgICAgIHRyeSB7IGl0ZW1fdmFsdWUgPSBuZXcgRGF0ZShpdGVtX3ZhbHVlKTsgfSBjYXRjaCAoZXJyb3IpIHt9XHJcbiAgICAgICAgICBpZiggaXRlbV92YWx1ZSAmJiAgaXRlbV92YWx1ZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKCBpdGVtX3ZhbHVlLnZhbHVlT2YoKSkgKXtcclxuICAgICAgICAgICAgbGV0IGlzX2FjY2VwdCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgZHRfdGFyZ2V0ICAgPSAoIChmaWx0ZXJfaXRlbS5zZWFyY2hUZXh0KS5nZXRUaW1lKCkgKS50b1N0cmluZygpLnN1YnN0cmluZygwLCAxMCk7IC8qICsgKDMgKiA2MCAqIDYwICogMTAwMCk7ICovXHJcbiAgICAgICAgICAgIGNvbnN0IGR0X2N1cnJlbnQgID0gKCAoaXRlbV92YWx1ZSkuZ2V0VGltZSgpICkudG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwgMTApO1xyXG4gICAgICAgICAgICBpZiggZmlsdGVyX2l0ZW0uY29uZGl0aW9uICl7XHJcbiAgICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJfaXRlbS5jb25kaXRpb24pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgVENDb25kaXRpb24uZ3Q6ICAgIGlzX2FjY2VwdCA9ICggTnVtYmVyKGR0X3RhcmdldCkgPiAgTnVtYmVyKGR0X2N1cnJlbnQpICk7ICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgVENDb25kaXRpb24ubHQ6ICAgIGlzX2FjY2VwdCA9ICggTnVtYmVyKGR0X3RhcmdldCkgPCAgTnVtYmVyKGR0X2N1cnJlbnQpICk7ICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgVENDb25kaXRpb24uZ3RlOiAgIGlzX2FjY2VwdCA9ICggTnVtYmVyKGR0X3RhcmdldCkgPD0gTnVtYmVyKGR0X2N1cnJlbnQpICk7ICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgVENDb25kaXRpb24ubHRlOiAgIGlzX2FjY2VwdCA9ICggTnVtYmVyKGR0X3RhcmdldCkgPj0gTnVtYmVyKGR0X2N1cnJlbnQpICk7ICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgVENDb25kaXRpb24uZXF1YWw6IGlzX2FjY2VwdCA9ICggTnVtYmVyKGR0X3RhcmdldCkgPT09IE51bWJlcihkdF9jdXJyZW50KSApOyAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBpc19hY2NlcHQgPSAoIE51bWJlcihkdF90YXJnZXQpID09IE51bWJlcihkdF9jdXJyZW50KSApO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgaXNfYWNjZXB0ID0gKCBOdW1iZXIoZmlsdGVyX2l0ZW0uc2VhcmNoVGV4dCkgPT09IE51bWJlcihpdGVtX3ZhbHVlKSApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKCAhaXNfYWNjZXB0ICl7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXREYXRhSW5kZXgoaSwgZmFsc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBcclxuXHJcbiAgICAgICAgaWYoIGZpbHRlcl9pdGVtLnNlYXJjaFRleHQgJiYgdHlwZW9mIE51bWJlcihmaWx0ZXJfaXRlbS5zZWFyY2hUZXh0KSA9PT0gJ251bWJlcicgJiYgKCBmaWx0ZXJfaXRlbS50eXBlID09PSBUQ0ZpbHRlcnNUeXBlLm51bWJlciB8fCBmaWx0ZXJfaXRlbS50eXBlID09PSBUQ0ZpbHRlcnNUeXBlLmRhdGUgKSApe1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBmaWx0ZXJfaXRlbS5zZWFyY2hUZXh0ID0gTnVtYmVyKGZpbHRlcl9pdGVtLnNlYXJjaFRleHQpO1xyXG4gICAgICAgICAgbGV0IGl0ZW1fdmFsdWUgPSB0aGlzLmNvbGxlY3Rpb25GaW5kKHRoaXMuZGF0YVtpXSwgZmlsdGVyX2l0ZW0uc2VhcmNoSW4pO1xyXG5cclxuICAgICAgICAgIGlmKCB0eXBlb2YgTnVtYmVyKGl0ZW1fdmFsdWUpID09PSAnbnVtYmVyJyApeyAgIFxyXG4gICAgICAgICAgICBpdGVtX3ZhbHVlID0gTnVtYmVyKGl0ZW1fdmFsdWUpOyAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBsZXQgaXNfYWNjZXB0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmKCBmaWx0ZXJfaXRlbS5jb25kaXRpb24gKXtcclxuXHJcbiAgICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJfaXRlbS5jb25kaXRpb24pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgVENDb25kaXRpb24uZ3Q6ICAgIGlzX2FjY2VwdCA9ICggTnVtYmVyKGZpbHRlcl9pdGVtLnNlYXJjaFRleHQpID4gIE51bWJlcihpdGVtX3ZhbHVlKSApOyAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFRDQ29uZGl0aW9uLmx0OiAgICBpc19hY2NlcHQgPSAoIE51bWJlcihmaWx0ZXJfaXRlbS5zZWFyY2hUZXh0KSA8ICBOdW1iZXIoaXRlbV92YWx1ZSkgKTsgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBUQ0NvbmRpdGlvbi5ndGU6ICAgaXNfYWNjZXB0ID0gKCBOdW1iZXIoZmlsdGVyX2l0ZW0uc2VhcmNoVGV4dCkgPD0gTnVtYmVyKGl0ZW1fdmFsdWUpICk7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBUQ0NvbmRpdGlvbi5sdGU6ICAgaXNfYWNjZXB0ID0gKCBOdW1iZXIoZmlsdGVyX2l0ZW0uc2VhcmNoVGV4dCkgPj0gTnVtYmVyKGl0ZW1fdmFsdWUpICk7ICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgVENDb25kaXRpb24uZXF1YWw6IGlzX2FjY2VwdCA9ICggTnVtYmVyKGZpbHRlcl9pdGVtLnNlYXJjaFRleHQpID09PSBOdW1iZXIoaXRlbV92YWx1ZSkgKTsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBpc19hY2NlcHQgPSAoIE51bWJlcihmaWx0ZXJfaXRlbS5zZWFyY2hUZXh0KSA9PSBOdW1iZXIoaXRlbV92YWx1ZSkgKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgIGlzX2FjY2VwdCA9ICggTnVtYmVyKGZpbHRlcl9pdGVtLnNlYXJjaFRleHQpID09PSBOdW1iZXIoaXRlbV92YWx1ZSkgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiggIWlzX2FjY2VwdCApe1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0RGF0YUluZGV4KGksIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBcclxuICAgICAgICBpZiggdHlwZW9mIChmaWx0ZXJfaXRlbS5zZWFyY2hUZXh0KSA9PT0gJ2Jvb2xlYW4nICYmIGZpbHRlcl9pdGVtLnNlYXJjaFRleHQgPT09IHRydWUgKXtcclxuXHJcbiAgICAgICAgICBsZXQgaXRlbV92YWx1ZTogYW55ID0gdGhpcy5jb2xsZWN0aW9uRmluZCh0aGlzLmRhdGFbaV0sIGZpbHRlcl9pdGVtLnNlYXJjaEluKTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgaWYoIGl0ZW1fdmFsdWUgJiYgKGl0ZW1fdmFsdWUpLmxlbmd0aCA+IDAgKXsgIFxyXG4gICAgICAgICAgICBsZXQgcXRkX2lzX3RydWUgPSAwOyAgICAgICAgICBcclxuICAgICAgICAgICAgZm9yKCBsZXQgaSA9IDA7IGkgPCAoKGl0ZW1fdmFsdWUpLmxlbmd0aCk7IGkrKyApe1xyXG4gICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtX3ZhbHVlW2ldO1xyXG4gICAgICAgICAgICAgIGlmKCBpdGVtID09PSBmaWx0ZXJfaXRlbS5zZWFyY2hUZXh0ICl7XHJcbiAgICAgICAgICAgICAgICBxdGRfaXNfdHJ1ZSsrO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiggcXRkX2lzX3RydWUgPT09IDAgKXtcclxuICAgICAgICAgICAgICB0aGlzLnNldERhdGFJbmRleChpLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICBpZiggISggaXRlbV92YWx1ZSA9PT0gZmlsdGVyX2l0ZW0uc2VhcmNoVGV4dCApICl7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXREYXRhSW5kZXgoaSwgZmFsc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9ICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIH1cclxuXHJcbiAgICB9IC8vIGVuZCBmb3JcclxuICAgIFxyXG4gICAgdGhpcy50b1Jlc3VsdCgpO1xyXG4gICAgICBcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdG9SZXN1bHQoKXtcclxuXHJcblxyXG4gICAgY29uc3Qgc2VhcmNoX2RhdGEgPSBbXTtcclxuXHJcbiAgICBsZXQgaXNfZmlsdGVyID0gZmFsc2U7XHJcbiAgICBmb3IoIGxldCBpID0gMDsgaSA8ICh0aGlzLmZpbHRlcnMpLmxlbmd0aDsgaSsrICl7XHJcbiAgICAgIGlmKCB0aGlzLmZpbHRlcnNbaV0uc2VhcmNoVGV4dCAmJiB0aGlzLmZpbHRlcnNbaV0uc2VhcmNoVGV4dCAhPT0gJycgKXtcclxuICAgICAgICBpc19maWx0ZXIgPSB0cnVlOyBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc19maWx0ZXIgKXtcclxuICAgICAgZm9yKCBsZXQgaSA9IDA7IGkgPCAodGhpcy5kYXRhKS5sZW5ndGg7IGkrKyApe1xyXG4gICAgICAgIGlmKCB0aGlzLmRhdGEgJiYgdGhpcy5kYXRhW2ldICYmIHRoaXMuZGF0YVtpXVsndGNfZmlsdGVyX2FjY2VwdCddICl7XHJcbiAgICAgICAgICAoc2VhcmNoX2RhdGEpLnB1c2godGhpcy5kYXRhW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMucmVzdWx0X2FjY2VwdChzZWFyY2hfZGF0YSk7XHJcbiAgICAgIHRoaXMub25GaWx0ZXIuZW1pdCh7Li4udGhpcy5maWx0ZXJzfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJlc3VsdF9hY2NlcHQodGhpcy5kYXRhKTtcclxuICAgIHRoaXMub25GaWx0ZXIuZW1pdCh7Li4udGhpcy5maWx0ZXJzfSk7XHJcbiAgfVxyXG5cclxuICBzZXREYXRhSW5kZXgoaW5kZXg6IG51bWJlciwgdmFsdWU6IGJvb2xlYW4gKXtcclxuICAgIGlmKCB0aGlzLmRhdGEgJiYgdGhpcy5kYXRhW2luZGV4XSApe1xyXG4gICAgICB0aGlzLmRhdGFbaW5kZXhdWyd0Y19maWx0ZXJfYWNjZXB0J10gPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc3VsdF9hY2NlcHQoZGF0YTogYW55KXtcclxuICAgIGlmKCAhdGhpcy51c2VGaWx0ZXJBY2NlcHQgJiYgZGF0YSAmJiAoZGF0YSkubGVuZ3RoID4gMCApe1xyXG4gICAgICBmb3IoIGxldCBpID0gMDsgaSA8IChkYXRhKS5sZW5ndGg7IGkrKyApe1xyXG4gICAgICAgIGRlbGV0ZSBkYXRhW2ldWyd0Y19maWx0ZXJfYWNjZXB0J107XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMucmVzdWx0LmVtaXQoZGF0YSk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwic2hvd19maWx0ZXJzXCIgY2xhc3M9XCJ0Y2xvdWQtdWktZmlsdGVycyBhcmVhLWZpbHRlclwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmaWx0ZXJzOyBsZXQgaSA9IGluZGV4XCI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXRlbS50eXBlIHx8IChpdGVtLnR5cGUgJiYgaXRlbS50eXBlICE9PSAnYm9vbGVhbicpXCI+XHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS50eXBlID09PSAnZGF0ZS1sb2NhbCdcIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm94LWZpbHRlci1pbnB1dCB0eXBlLXt7aXRlbS50eXBlfX0gYm94LXR5cGUte3tpdGVtLnR5cGV9fVwiIFtzdHlsZV09XCIoaXRlbS53aWR0aCAhPT0gJycpID8gJ3dpZHRoOicraXRlbS53aWR0aCA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tZGVzY3JpcHRpb24gdGMtdGl0bGUtZWxsaXBzaXMgYm94LXR5cGUte3tpdGVtLnR5cGV9fVwiIHRpdGxlPVwie3sgaXRlbS5kZXNjcmlwdGlvbiB9fVwiPjxpIFtjbGFzcy50by1hY3RpdmVdPVwiKGl0ZW0udmFsdWUgIT09IHVuZGVmaW5lZCAmJiBpdGVtLnZhbHVlICE9PSBudWxsICYmIGl0ZW0udmFsdWUgIT09ICcnKVwiIGNsYXNzPVwiZmFzIGZhLWZpbHRlciBpY29uLWZpbHRlclwiPjwvaT4mbmJzcDt7eyBpdGVtLmRlc2NyaXB0aW9uIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJveC10eXBlLXt7aXRlbS50eXBlfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRjbG91ZC11aS1kYXRlcGlja2VyIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgI19pbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImlucHV0X3t7aSsxfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVJbnB1dF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWFyY2hJbihpdGVtLCBfaW5wdXQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGNsb3VkLXVpLWRhdGVwaWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4tY2xlYXItZmlsdGVyLXRleHRcIiBbY2xhc3MudG8taGlkZV09XCIhKGl0ZW0udmFsdWUgIT09IHVuZGVmaW5lZCAmJiBpdGVtLnZhbHVlICE9PSBudWxsICYmIGl0ZW0udmFsdWUgIT09ICcnKVwiIChjbGljayk9XCJzZWFyY2hJbihpdGVtLCBudWxsKTsgaXRlbS5zZWFyY2hUZXh0ID0gdW5kZWZpbmVkOyBpdGVtLnZhbHVlID0gJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnR5cGUgIT09ICdkYXRlLWxvY2FsJ1wiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ2RhdGV0aW1lLWxvY2FsJ1wiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGl0ZW0uaWQgPT09ICdzdGFydCcgfHwgaXRlbS5pZCA9PT0gJ3N0b3AnKSAmJiB1c2VSYW5nZURhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBQRVJJT0QgUkFOR0UgREFURSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uaWQgPT09ICdzdGFydCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3gtZmlsdGVyLWlucHV0IHR5cGUte3tpdGVtLnR5cGV9fSBib3gtdHlwZS17e2l0ZW0udHlwZX19XCIgW3N0eWxlXT1cIihpdGVtLndpZHRoICE9PSAnJykgPyAnd2lkdGg6JytzdGFydF9zdG9wX3dpZHRoKycnK3N0YXJ0X3N0b3BfdW5kIDogJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1kZXNjcmlwdGlvbiB0Yy10aXRsZS1lbGxpcHNpcyBib3gtdHlwZS17e2l0ZW0udHlwZX19XCIgdGl0bGU9XCJ7eyBpdGVtLmRlc2NyaXB0aW9uIH19XCI+PGkgW2NsYXNzLnRvLWFjdGl2ZV09XCIoX3JhbmdlX2RhdGUgJiYgX3JhbmdlX2RhdGUucmVzdWx0ICYmIF9yYW5nZV9kYXRlLnJlc3VsdC5zdGFydCAmJiBfcmFuZ2VfZGF0ZS5yZXN1bHQuc3RvcCApXCIgY2xhc3M9XCJmYXMgZmEtZmlsdGVyIGljb24tZmlsdGVyXCI+PC9pPiZuYnNwOzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyYW5nZS1kYXRlICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI19yYW5nZV9kYXRlIG5nTW9kZWwgbmFtZT1cImlucHV0X3t7aSsxfX1cIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RlZmF1bHRWYWx1ZVBlcmlvZFN0YXJ0U3RvcF09XCJpdGVtLmRlZmF1bHRWYWx1ZVBlcmlvZFN0YXJ0U3RvcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZXNjcmlwdGlvblN0YXJ0XT1cImRlc2NyaXB0aW9uU3RhcnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVzY3JpcHRpb25TdG9wXT1cImRlc2NyaXB0aW9uU3RvcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25DaGFuZ2UpPVwic2VhcmNoSW5SYW5nZShfcmFuZ2VfZGF0ZSk7IHNlYXJjaEluKGl0ZW0sIF9yYW5nZV9kYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmFuZ2UtZGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj4gICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0ICpuZ0lmPVwiaXRlbS5pZCA9PT0gJ3N0YXJ0J1wiICNfaW5wdXQgbmFtZT1cImlucHV0X3t7aSsxfX1cIiB0eXBlPVwiaGlkZGVuXCIgWyhuZ01vZGVsKV09XCJzdGFydF92YWx1ZVwiPiAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cIml0ZW0uaWQgPT09ICdzdG9wJ1wiICNfaW5wdXQgbmFtZT1cImlucHV0X3t7aSsxfX1cIiB0eXBlPVwiaGlkZGVuXCIgWyhuZ01vZGVsKV09XCJzdG9wX3ZhbHVlXCI+ICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXRlbS5pZCB8fCAhdXNlUmFuZ2VEYXRlXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm94LWZpbHRlci1pbnB1dCB0eXBlLXt7aXRlbS50eXBlfX0gYm94LXR5cGUte3tpdGVtLnR5cGV9fVwiIFtzdHlsZV09XCIoaXRlbS53aWR0aCAhPT0gJycpID8gJ3dpZHRoOicraXRlbS53aWR0aCA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1kZXNjcmlwdGlvbiB0Yy10aXRsZS1lbGxpcHNpcyBib3gtdHlwZS17e2l0ZW0udHlwZX19XCIgdGl0bGU9XCJ7eyBpdGVtLmRlc2NyaXB0aW9uIH19XCI+PGkgW2NsYXNzLnRvLWFjdGl2ZV09XCIoaXRlbS52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIGl0ZW0udmFsdWUgIT09IG51bGwgJiYgaXRlbS52YWx1ZSAhPT0gJycpXCIgY2xhc3M9XCJmYXMgZmEtZmlsdGVyIGljb24tZmlsdGVyXCI+PC9pPiZuYnNwO3t7IGl0ZW0uZGVzY3JpcHRpb24gfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3gtdHlwZS17e2l0ZW0udHlwZX19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNfaW5wdXQgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaXRlbS52YWx1ZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiaW5wdXRfe3tpKzF9fVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdXNlT3B0aW9uc0RhdGVUaW1lXT1cIihpdGVtICYmIGl0ZW0udXNlT3B0aW9uc0RhdGVUaW1lKSA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChldmVudENoYW5nZSk9XCJzZWFyY2hJbihpdGVtLCBfaW5wdXQpXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWNsZWFyLWZpbHRlci10ZXh0XCIgW2NsYXNzLnRvLWhpZGVdPVwiIShpdGVtLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgaXRlbS52YWx1ZSAhPT0gbnVsbCAmJiBpdGVtLnZhbHVlICE9PSAnJylcIiAoY2xpY2spPVwic2VhcmNoSW4oaXRlbSwgbnVsbCk7IGl0ZW0uc2VhcmNoVGV4dCA9IHVuZGVmaW5lZDsgaXRlbS52YWx1ZSA9ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS50eXBlICE9PSAnc2VsZWN0JyAmJiBpdGVtLnR5cGUgIT09ICdkYXRldGltZS1sb2NhbCcgJiYgaXRlbS50eXBlICE9PSAnZGF0ZS1sb2NhbCdcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3gtZmlsdGVyLWlucHV0IHR5cGUte3tpdGVtLnR5cGV9fSBib3gtdHlwZS17e2l0ZW0udHlwZX19XCIgW3N0eWxlXT1cIihpdGVtLndpZHRoICE9PSAnJykgPyAnd2lkdGg6JytpdGVtLndpZHRoIDogJydcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tZGVzY3JpcHRpb24gdGMtdGl0bGUtZWxsaXBzaXMgYm94LXR5cGUte3tpdGVtLnR5cGV9fVwiIHRpdGxlPVwie3sgaXRlbS5kZXNjcmlwdGlvbiB9fVwiPjxpIFtjbGFzcy50by1hY3RpdmVdPVwiX2lucHV0LnZhbHVlICE9PSAnJ1wiIGNsYXNzPVwiZmFzIGZhLWZpbHRlciBpY29uLWZpbHRlclwiPjwvaT4mbmJzcDt7eyBpdGVtLmRlc2NyaXB0aW9uIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJveC10eXBlLXt7aXRlbS50eXBlfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgI19pbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgKGl0ZW0ucGxhY2Vob2xkZXIgIT09ICcnKSA/IGl0ZW0ucGxhY2Vob2xkZXIgOiAnJyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiaW5wdXRfe3tpKzF9fVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInt7IChpdGVtLnR5cGUgPT09ICdudW1iZXInKSA/ICd0ZXh0JyA6IGl0ZW0udHlwZSB9fVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0Yy1mb3JtLWNvbnRyb2xcIiAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleXVwKT1cInNlYXJjaEluKGl0ZW0sICRldmVudClcIj4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWNsZWFyLWZpbHRlci10ZXh0XCIgW2NsYXNzLnRvLWhpZGVdPVwiX2lucHV0LnZhbHVlID09PSAnJ1wiIChjbGljayk9XCJzZWFyY2hJbihpdGVtLCBudWxsKTsgX2lucHV0LnZhbHVlID0gJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdzZWxlY3QnICYmIGl0ZW0uZGF0YSAmJiAoaXRlbS5kYXRhKS5sZW5ndGggPiAwXCIgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJveC1maWx0ZXItaW5wdXQgdHlwZS17e2l0ZW0udHlwZX19IGJveC10eXBlLXt7aXRlbS50eXBlfX1cIiBbc3R5bGVdPVwiKGl0ZW0ud2lkdGggIT09ICcnKSA/ICd3aWR0aDonK2l0ZW0ud2lkdGggOiAnJ1wiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1kZXNjcmlwdGlvbiB0Yy10aXRsZS1lbGxpcHNpcyBib3gtdHlwZS17e2l0ZW0udHlwZX19XCIgdGl0bGU9XCJ7eyBpdGVtLmRlc2NyaXB0aW9uIH19XCI+PGkgW2NsYXNzLnRvLWFjdGl2ZV09XCJfaW5wdXQudmFsdWUgIT09ICcnXCIgY2xhc3M9XCJmYXMgZmEtZmlsdGVyIGljb24tZmlsdGVyXCI+PC9pPiZuYnNwO3t7IGl0ZW0uZGVzY3JpcHRpb24gfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm94LXR5cGUte3tpdGVtLnR5cGV9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgI19pbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJpbnB1dF97e2krMX19XCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRjLWZvcm0tY29udHJvbFwiICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNlYXJjaEluKGl0ZW0sICRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwiXCI+PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB2IG9mIGl0ZW0uZGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cInYudmFsdWVcIj57eyB2LmRlc2NyaXB0aW9uIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udHlwZSAmJiBpdGVtLnR5cGUgPT09ICdib29sZWFuJ1wiPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJveC1maWx0ZXItaW5wdXRcIiBbc3R5bGVdPVwiKGl0ZW0ud2lkdGggIT09ICcnKSA/ICd3aWR0aDonK2l0ZW0ud2lkdGggOiAnJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tZGVzY3JpcHRpb24gdGMtdGl0bGUtZWxsaXBzaXNcIiB0aXRsZT1cInt7IGl0ZW0uZGVzY3JpcHRpb24gfX1cIiB0aXRsZT1cInt7IGl0ZW0uZGVzY3JpcHRpb24gfX1cIj48aSBbY2xhc3MudG8tYWN0aXZlXT1cIl9pbnB1dC5jaGVja2VkID09PSB0cnVlXCIgY2xhc3M9XCJmYXMgZmEtZmlsdGVyIGljb24tZmlsdGVyXCI+PC9pPiZuYnNwO3t7IGl0ZW0uZGVzY3JpcHRpb24gfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmVhLWlucHV0LWNoZWNrYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRjLWZvcm0tY29udHJvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnBsYWNlaG9sZGVyIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI19pbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgKGl0ZW0ucGxhY2Vob2xkZXIgIT09ICcnKSA/IGl0ZW0ucGxhY2Vob2xkZXIgOiAnJyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImlucHV0X3t7aSsxfX1cIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNlYXJjaEluKGl0ZW0sIF9pbnB1dC5jaGVja2VkKVwiPiAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1yaWdodCBtYi0xIG1yLTFcIiAqbmdJZj1cInVzZUJ1dHRvblN1Ym1pdFwiPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwidGMtYnRuIHt7IGJ0blN1Ym1pdENsYXNzIH19XCIgKGNsaWNrKT1cInRvU3VibWl0KClcIiA+e3sgc3VibWl0VGV4dCB9fTwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuXHJcbjwhLS0gPHByZT57eyBpbnB1dHMgfCBqc29uIH19PC9wcmU+IC0tPlxyXG48IS0tIDxwcmU+IHt7IGRhdGEgfCBqc29uIH19IDwvcHJlPiAtLT5cclxuXHJcbjwhLS0gPHA+RklMVEVSUzwvcD48cHJlPiB7eyBmaWx0ZXJzIHwganNvbiB9fTwvcHJlPiAtLT5cclxuXHJcbjwhLS1cclxuICAgIDxwcmU+c3RhcnRfc3RvcDoge3sgc3RhcnRfc3RvcCB9fTwvcHJlPlxyXG4gICAgPHByZT5zdGFydF9zdG9wX3dpZHRoOiB7eyBzdGFydF9zdG9wX3dpZHRoIH19PC9wcmU+XHJcbiAgICA8cHJlPnN0YXJ0X3N0b3BfdW5kOiB7eyBzdGFydF9zdG9wX3VuZCB9fTwvcHJlPlxyXG4tLT4iXX0=
|
|
511
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWZpbHRlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWZpbHRlcnMvdGNsb3VkLXVpLWZpbHRlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWZpbHRlcnMvdGNsb3VkLXVpLWZpbHRlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwSCxPQUFPLEVBQUUsV0FBVyxFQUFpQixhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7OztBQU9oRixNQUFNLE9BQU8sd0JBQXdCO0lBYW5DLElBQWEsSUFBSSxDQUFDLElBQVM7UUFDekIsaURBQWlEO0lBQ25ELENBQUM7SUFDRCxJQUFJLElBQUksS0FBUyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBR3JDLElBQWEsT0FBTyxDQUFDLE9BQVk7UUFDL0IsMEJBQTBCO0lBQzVCLENBQUM7SUFDRCxJQUFJLE9BQU8sS0FBUyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBRzNDLElBQWEsVUFBVSxDQUFDLENBQVM7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBQ0QsSUFBSSxVQUFVLEtBQVcsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQXVCbkQsWUFDVSxRQUFrQjtRQUFsQixh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Q0FBQyxDQUFDO0lBQ3pCLENBQUM7K0dBamhCVSx3QkFBd0I7bUdBQXhCLHdCQUF3Qiwya0JDVnJDLHlwVEF5Skc7OzRGRC9JVSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsbUJBQW1COytGQVFGLFdBQVc7c0JBQXJDLFNBQVM7dUJBQUMsYUFBYTtnQkFTWCxJQUFJO3NCQUFoQixLQUFLO2dCQU1PLE9BQU87c0JBQW5CLEtBQUs7Z0JBTU8sVUFBVTtzQkFBdEIsS0FBSztnQkFPRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRDQ29uZGl0aW9uLCBUQ0RhdGFGaWx0ZXJzLCBUQ0ZpbHRlcnNUeXBlIH0gZnJvbSAnLi90Y2xvdWQtdWktZmlsdGVycyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RjbG91ZC11aS1maWx0ZXJzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGNsb3VkLXVpLWZpbHRlcnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RjbG91ZC11aS1maWx0ZXJzLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpRmlsdGVyc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuXHJcbiAgZGF0ZXBpY2tlcnMgPSBbXSBhcyBhbnk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ19mb3JtdWxhcmlvJykgIF9mb3JtdWxhcmlvOiBOZ0Zvcm0gfCB1bmRlZmluZWQ7XHJcblxyXG4gIGlucHV0czogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgc2hvd19maWx0ZXJzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHNlYXJjaF9kYXRhOiBhbnkgfCB1bmRlZmluZWQ7XHJcblxyXG4gIHByaXZhdGUgX2RhdGE6IGFueSB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBzZXQgZGF0YShkYXRhOiBhbnkpe1xyXG4gICAgLy8gdGhpcy5fZGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xyXG4gIH1cclxuICBnZXQgZGF0YSgpOiBhbnl7IHJldHVybiB0aGlzLl9kYXRhOyB9XHJcblxyXG4gIHByaXZhdGUgX2ZpbHRlcnM6IFRDRGF0YUZpbHRlcnMgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgc2V0IGZpbHRlcnMoZmlsdGVyczogYW55KXtcclxuICAgIC8vdGhpcy5fZmlsdGVycyA9IGZpbHRlcnM7XHJcbiAgfVxyXG4gIGdldCBmaWx0ZXJzKCk6IGFueXsgcmV0dXJuIHRoaXMuX2ZpbHRlcnM7IH1cclxuXHJcbiAgcHJpdmF0ZSBfc3VibWl0VGV4dDogc3RyaW5nID0gJ0ZpbHRyYXInO1xyXG4gIEBJbnB1dCgpIHNldCBzdWJtaXRUZXh0KHY6IHN0cmluZyl7IFxyXG4gICAgaWYoIHYgJiYgdiAhPT0gdGhpcy5fc3VibWl0VGV4dCApe1xyXG4gICAgICB0aGlzLl9zdWJtaXRUZXh0ID0gdjtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IHN1Ym1pdFRleHQoKTpzdHJpbmd7IHJldHVybiB0aGlzLl9zdWJtaXRUZXh0OyB9XHJcblxyXG4gIEBJbnB1dCgpIGJ0blN1Ym1pdENsYXNzOiBzdHJpbmcgPSAndGMtYnRuLXByaW1hcnknO1xyXG4gIEBJbnB1dCgpIHVzZU9uQ2hhbmdlU3VibWl0OiBib29sZWFuID0gdHJ1ZTsgLy8gdXNlT25DaGFuZ2VTdWJtaXQgLSBTdWJtaXQgYXV0b21hdGljbyBxdWFuZG8gZm9yIGFsdGVyYWRvIHF1YW5xdWVyIGlucHV0XHJcbiAgQElucHV0KCkgdXNlQnV0dG9uU3VibWl0OiBib29sZWFuID0gZmFsc2U7IC8vIHVzZUJ1dHRvblN1Ym1pdCAtIEV4aWJlIHVtIGJvdMOjbyBkZSBzdWJtaXQgZSBuw6NvIGV4ZWN1dGEgYSBidXNjYSBhdXRvbWF0aWNhbWVudGVcclxuICBASW5wdXQoKSB1c2VOb3JtYWxpemVDYXNlU2Vuc2l0aXZlOiBib29sZWFuID0gdHJ1ZTsgLy8gdXNlTm9ybWFsaXplQ2FzZVNlbnNpdGl2ZSAtIE7Do28gdmFsaWRhIGNhaXhhIGFsdGEgb3UgYmFpeGEgZSBjYXJhY3RlcmVzIGVzcGVjaWFpc1xyXG4gIEBJbnB1dCgpIHVzZVJhbmdlRGF0ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgdXNlRmlsdGVyQWNjZXB0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSByZXN1bHQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgb25GaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgb25TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgZGVzY3JpcHRpb25TdGFydDogc3RyaW5nID0gJyc7XHJcbiAgZGVzY3JpcHRpb25TdG9wOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgcHJpdmF0ZSBmaXJzdF9hY3RpdmVfZmlsdGVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHN0YXJ0X3N0b3A6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzdGFydF9zdG9wX3dpZHRoOiBudW1iZXIgPSAwO1xyXG4gIHN0YXJ0X3N0b3BfdW5kOiBzdHJpbmcgPSAnJzsgLy8gcHggb3UgJVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGF0ZXBpcGU6IERhdGVQaXBlXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYoIHRoaXMuZmlsdGVycyAmJiAodGhpcy5maWx0ZXJzKS5sZW5ndGggPiAwICl7XHJcbiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8ICh0aGlzLmZpbHRlcnMpLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgIGlmKCB0aGlzLmZpbHRlcnNbaV0udmFsdWUgKXtcclxuICAgICAgICAgICAgaWYoIHRoaXMuZmlsdGVyc1tpXS50eXBlID09PSAnZGF0ZXRpbWUtbG9jYWwnICl7XHJcbiAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyc1tpXS5zZWFyY2hUZXh0ID0gbmV3IERhdGUoIGAke3RoaXMuZmlsdGVyc1tpXS52YWx1ZX1gICk7XHJcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHt9XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlsdGVyc1tpXS5zZWFyY2hUZXh0ID0gdGhpcy5maWx0ZXJzW2ldLnZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZmlyc3RfYWN0aXZlX2ZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSAgICAgIFxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RhcnRfc3RvcCA9ICh0aGlzLnVzZVJhbmdlRGF0ZSkgPyB0aGlzLmlzX3N0YXJ0X3N0b3BfZGF0ZXRpbWUoKSA6IGZhbHNlO1xyXG4gICAgICB0aGlzLnRvU3VibWl0KCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGlzX3N0YXJ0X3N0b3BfZGF0ZXRpbWUoKXtcclxuICAgIGxldCBzdGFydCA9IGZhbHNlO1xyXG4gICAgbGV0IHN0b3AgPSBmYWxzZTtcclxuICAgIGlmKCB0aGlzLmZpbHRlcnMgJiYgKHRoaXMuZmlsdGVycykubGVuZ3RoID4gMCApe1xyXG4gICAgICB0aGlzLnN0YXJ0X3N0b3Bfd2lkdGggPSAwO1xyXG4gICAgICBmb3IobGV0IGkgPSAwOyBpIDwgKHRoaXMuZmlsdGVycykubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgIGlmKCB0aGlzLmZpbHRlcnNbaV0uaWQgPT09ICdzdGFydCcgKXtcclxuICAgICAgICAgIHN0YXJ0ID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuc3RhcnRfc3RvcF93aWR0aCArPSB0aGlzLmdldFZhbHVlV2lkdGgodGhpcy5maWx0ZXJzW2ldLndpZHRoKTtcclxuICAgICAgICAgIHRoaXMuc3RhcnRfc3RvcF91bmQgPSB0aGlzLmdldFVuaWRhZGUodGhpcy5maWx0ZXJzW2ldLndpZHRoKTtcclxuICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb25TdGFydCA9IHRoaXMuZmlsdGVyc1tpXS5kZXNjcmlwdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoIHRoaXMuZmlsdGVyc1tpXS5pZCA9PT0gJ3N0b3AnICl7XHJcbiAgICAgICAgICBzdG9wID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuc3RhcnRfc3RvcF93aWR0aCArPSB0aGlzLmdldFZhbHVlV2lkdGgodGhpcy5maWx0ZXJzW2ldLndpZHRoKTtcclxuICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb25TdG9wID0gdGhpcy5maWx0ZXJzW2ldLmRlc2NyaXB0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICggc3RhcnQgJiYgc3RvcCApID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsdWVXaWR0aCh2OiBzdHJpbmcpOm51bWJlciB7XHJcbiAgICBsZXQgdW5kID0gdGhpcy5nZXRVbmlkYWRlKHYpO1xyXG4gICAgdiA9ICh2KS5yZXBsYWNlKHVuZCwgJycpO1xyXG4gICAgcmV0dXJuICsodik7XHJcbiAgfVxyXG5cclxuICBnZXRVbmlkYWRlKHY6IHN0cmluZyk6c3RyaW5nIHtcclxuICAgIGxldCB1bmQgPSAnJSc7XHJcbiAgICBpZiggdiAmJiAodikuaW5jbHVkZXMoJ3B4JykgKXtcclxuICAgICAgdW5kID0gJ3B4JztcclxuICAgIH1cclxuICAgIHJldHVybiB1bmQ7XHJcbiAgfVxyXG4gXHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHsgIFxyXG4gICAgXHJcbiAgICBpZiggY2hhbmdlcyAmJiBjaGFuZ2VzWydkYXRhJ10gKXtcclxuICAgICAgY29uc3QgZGF0YSA9IGNoYW5nZXNbJ2RhdGEnXS5jdXJyZW50VmFsdWU7XHJcbiAgICAgIGlmKCB0aGlzLl9kYXRhICE9PSBkYXRhICl7XHJcbiAgICAgICAgdGhpcy5fZGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoX2RhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcclxuICAgICAgICB0aGlzLmluaXQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmKCBjaGFuZ2VzICYmIGNoYW5nZXNbJ2ZpbHRlcnMnXSApe1xyXG4gICAgICBjb25zdCBmaWx0ZXJzID0gY2hhbmdlc1snZmlsdGVycyddLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgaWYoIHRoaXMuX2ZpbHRlcnMgIT09IGZpbHRlcnMgKXtcclxuICAgICAgICB0aGlzLl9maWx0ZXJzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShmaWx0ZXJzKSk7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdCgpe1xyXG4gICAgaWYoIHRoaXMuZGF0YSAmJiB0aGlzLmZpbHRlcnMgKXtcclxuICAgICAgdGhpcy5zaG93X2ZpbHRlcnMgPSB0cnVlO1xyXG4gICAgICBpZiggdGhpcy5maWx0ZXJzICYmICh0aGlzLmZpbHRlcnMpLmxlbmd0aCA+IDAgKXtcclxuICAgICAgICAodGhpcy5maWx0ZXJzKS5mb3JFYWNoKChmaWx0ZXI6IFRDRGF0YUZpbHRlcnMpID0+IHsgICAgICAgICAgICBcclxuICAgICAgICAgIHRoaXMuc2VhcmNoSW4oZmlsdGVyLCAnc3luYycpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IFxyXG4gICAgICBpZiggIXRoaXMudXNlT25DaGFuZ2VTdWJtaXQgKXtcclxuICAgICAgICB0aGlzLnJlc3VsdF9hY2NlcHQodGhpcy5kYXRhKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYoIHRoaXMudXNlT25DaGFuZ2VTdWJtaXQgfHwgdGhpcy51c2VCdXR0b25TdWJtaXQgKXtcclxuICAgICAgICB0aGlzLnN0YXJ0X2ZpbHRlcigpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG5vcm1hbGl6ZSh0ZXh0OiBhbnkpOiBzdHJpbmd7XHJcbiAgICBpZiggdGhpcy51c2VOb3JtYWxpemVDYXNlU2Vuc2l0aXZlICl7XHJcbiAgICAgIGNvbnN0IHYgPSAoICggKGAke3RleHR9YCkubm9ybWFsaXplKCdORkQnKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCBcIlwiKSApLnRyaW0oKSApLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIHJldHVybiB2O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRleHQ7XHJcbiAgfVxyXG5cclxuICB0b1N1Ym1pdCgpe1xyXG4gICAgaWYoIHRoaXMuZmlsdGVycyAmJiAodGhpcy5maWx0ZXJzKS5sZW5ndGggPiAwICl7XHJcbiAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5lbWl0U3VibWl0RmlsdGVycygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlbWl0U3VibWl0RmlsdGVycygpe1xyXG4gICAgbGV0IGZpbHRlcnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZmlsdGVycykpO1xyXG4gICAgaWYoIGZpbHRlcnMgJiYgKGZpbHRlcnMpLmxlbmd0aCA+IDAgKXtcclxuICAgICAgKGZpbHRlcnMpLmZvckVhY2goKGZpbHRlcjogVENEYXRhRmlsdGVycywgaTogbnVtYmVyKSA9PiB7XHJcblxyXG4gICAgICAgIGlmKCBmaWx0ZXIud2lkdGggKXsgZGVsZXRlKGZpbHRlcnNbaV0ud2lkdGgpOyB9XHJcbiAgICAgICAgaWYoIGZpbHRlci5wbGFjZWhvbGRlciApeyBkZWxldGUoZmlsdGVyc1tpXS5wbGFjZWhvbGRlcik7IH1cclxuICAgICAgICBpZiggZmlsdGVyLmRlc2NyaXB0aW9uICl7IGRlbGV0ZShmaWx0ZXJzW2ldLmRlc2NyaXB0aW9uKTsgfVxyXG5cclxuICAgICAgICBpZiggKCFmaWx0ZXIuc2VhcmNoVGV4dCB8fCBmaWx0ZXIuc2VhcmNoVGV4dCAmJiBmaWx0ZXIuc2VhcmNoVGV4dCA9PT0gJycpICYmIGZpbHRlci50eXBlICE9PSBcImJvb2xlYW5cIiApe1xyXG4gICAgICAgICAgZGVsZXRlKGZpbHRlcnNbaV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiggZmlsdGVyLnR5cGUgPT09IFwiYm9vbGVhblwiICl7XHJcbiAgICAgICAgICBpZiggIWZpbHRlci5zZWFyY2hUZXh0ICl7XHJcbiAgICAgICAgICAgIGZpbHRlci5zZWFyY2hUZXh0ID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICB9KTtcclxuICAgIH0gICBcclxuICAgIFxyXG4gICAgdGhpcy5vblN1Ym1pdC5lbWl0KHRoaXMuZmlsdGVycyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBjb2xsZWN0aW9uRmluZChvYmo6IGFueSwgcGF0aDogYW55KTogYW55IHtcclxuICAgIGNvbnN0IHBhdGhBcnJheSA9IHBhdGguc3BsaXQoXCIuXCIpO1xyXG4gICAgbGV0IGN1cnJlbnQgPSBvYmo7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGhBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBrZXkgPSBwYXRoQXJyYXlbaV07XHJcblxyXG4gICAgICBpZiAoa2V5LmluY2x1ZGVzKCdbJykgJiYga2V5LmluY2x1ZGVzKCddJykpIHtcclxuICAgICAgICBjb25zdCBuZXh0S2V5cyA9IHBhdGhBcnJheS5zbGljZShpICsgMSk7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSBrZXkuc3Vic3RyaW5nKGtleS5pbmRleE9mKCdbJykgKyAxLCBrZXkuaW5kZXhPZignXScpKTtcclxuICAgICAgICBjb25zdCBhcnJheUtleSA9IGtleS5zdWJzdHJpbmcoMCwga2V5LmluZGV4T2YoJ1snKSk7XHJcbiAgICAgICAgaWYoIGN1cnJlbnQgJiYgY3VycmVudFthcnJheUtleV0gJiYgY3VycmVudFthcnJheUtleV1baW5kZXhdICl7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uRmluZChjdXJyZW50W2FycmF5S2V5XVtpbmRleF0sIG5leHRLZXlzLmpvaW4oXCIuXCIpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgICBpZiAoa2V5LmluY2x1ZGVzKFwiW11cIikpIHtcclxuICAgICAgICBjb25zdCBhcnJheUtleSA9IGtleS5yZXBsYWNlKFwiW11cIiwgXCJcIik7XHJcbiAgICAgICAgY3VycmVudCA9IGN1cnJlbnRbYXJyYXlLZXldIHx8IFtdO1xyXG4gICAgICAgIGNvbnN0IG5leHRLZXlzID0gcGF0aEFycmF5LnNsaWNlKGkgKyAxKTtcclxuICAgICAgICBjb25zdCByZXN1bHRzID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBjdXJyZW50Lmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5jb2xsZWN0aW9uRmluZChjdXJyZW50W2pdLCBuZXh0S2V5cy5qb2luKFwiLlwiKSk7XHJcbiAgICAgICAgICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHJlc3VsdCk7IFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocmVzdWx0cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHRzO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmKCAhY3VycmVudCB8fCAoY3VycmVudCAmJiAhY3VycmVudFtrZXldKSApe1xyXG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgY3VycmVudCA9IGN1cnJlbnRba2V5XTtcclxuICAgICAgICBpZiAoY3VycmVudCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGN1cnJlbnQ7XHJcbiAgfVxyXG4gICAgXHJcbiAgZmlyc3Q6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHN0YXJ0X2ZpbHRlcl9mYzogYW55ID0gdW5kZWZpbmVkO1xyXG5cclxuICBzdGFydF92YWx1ZTogYW55IHwgdW5kZWZpbmVkO1xyXG4gIHN0b3BfdmFsdWU6IGFueSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgc2VhcmNoSW5SYW5nZSggcmFuZ2VfZGF0ZTogYW55KXtcclxuICAgIFxyXG4gICAgaWYoIHRoaXMuZmlsdGVycyAmJiAodGhpcy5maWx0ZXJzKS5sZW5ndGggPiAwICl7XHJcblxyXG4gICAgICBsZXQgZXZlbnQgPSB7fSBhcyBhbnk7IFxyXG4gICAgICBldmVudC5kYXRlcGlja2VydGltZSA9IHRydWU7XHJcblxyXG4gICAgICBmb3IoIGxldCBpID0gMDsgaSA8ICh0aGlzLmZpbHRlcnMpLmxlbmd0aDsgaSsrICl7XHJcblxyXG4gICAgICAgIGlmKCB0aGlzLmZpbHRlcnNbaV0gJiYgdGhpcy5maWx0ZXJzW2ldLmlkICYmIHRoaXMuZmlsdGVyc1tpXS5pZCA9PT0gJ3N0YXJ0JyApe1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJzW2ldLnZhbHVlID0gcmFuZ2VfZGF0ZT8ucmVzdWx0Py5zdGFydCE7XHJcbiAgICAgICAgICB0aGlzLmZpbHRlcnNbaV0uc2VhcmNoVGV4dCA9IHJhbmdlX2RhdGU/LnJlc3VsdD8uc3RhcnQhO1xyXG4gICAgICAgICAgZXZlbnQuaW5uZXJWYWx1ZSA9IHRoaXMuc3RhcnRfdmFsdWUgPSByYW5nZV9kYXRlPy5yZXN1bHQ/LnN0YXJ0ITtcclxuICAgICAgICAgIHRoaXMuc2VhcmNoSW4odGhpcy5maWx0ZXJzW2ldLCBldmVudCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiggdGhpcy5maWx0ZXJzW2ldICYmIHRoaXMuZmlsdGVyc1tpXS5pZCAmJiB0aGlzLmZpbHRlcnNbaV0uaWQgPT09ICdzdG9wJyApe1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJzW2ldLnZhbHVlID0gcmFuZ2VfZGF0ZT8ucmVzdWx0Py5zdG9wITtcclxuICAgICAgICAgIHRoaXMuZmlsdGVyc1tpXS5zZWFyY2hUZXh0ID0gcmFuZ2VfZGF0ZT8ucmVzdWx0Py5zdG9wITtcclxuICAgICAgICAgIGV2ZW50LmlubmVyVmFsdWUgPSB0aGlzLnN0b3BfdmFsdWUgPSByYW5nZV9kYXRlPy5yZXN1bHQ/LnN0b3AhO1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hJbih0aGlzLmZpbHRlcnNbaV0sIGV2ZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYoIHRoaXMuZmlyc3QgfHwgdGhpcy51c2VPbkNoYW5nZVN1Ym1pdCApe1xyXG4gICAgICAgIHRoaXMudG9TdWJtaXQoKTtcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgIH1cclxuICAgIHRoaXMuZmlyc3QgPSBmYWxzZTtcclxuXHJcbiAgfVxyXG5cclxuICBjb252ZXJ0RGF0YVRvTnVtYmVyKGRhdGFTdHJpbmc6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBbZGlhLCBtZXMsIGFub10gPSBkYXRhU3RyaW5nLnNwbGl0KCcvJyk7XHJcbiAgICAgIHJldHVybiArKGAke2Fub30ke21lc30ke2RpYX1gKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7fVxyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG5cclxuICBzZWFyY2hJbihpdGVtOiBUQ0RhdGFGaWx0ZXJzLCBldmVudD86IGFueSl7XHJcblxyXG4gICAgXHJcblxyXG4gICAgdGhpcy5zdGFydF9maWx0ZXJfZmMgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgbGV0IGlzVmFsaWQgPSB0cnVlO1xyXG5cclxuICAgIGlmKCBldmVudCA9PT0gJ3N5bmMnICYmIGlzVmFsaWQgKXtcclxuICAgICAgaXNWYWxpZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIHR5cGVvZiBldmVudCA9PT0gJ2Jvb2xlYW4nICYmIGlzVmFsaWQgKXtcclxuICAgICAgaXNWYWxpZCA9IGZhbHNlO1xyXG4gICAgICBpdGVtLnNlYXJjaFRleHQgPSBldmVudDtcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCAoZXZlbnQgPT09IHVuZGVmaW5lZCB8fCBldmVudCA9PT0gbnVsbCB8fCBldmVudCA9PT0gJycpICYmIGlzVmFsaWQgKXtcclxuICAgICAgaXNWYWxpZCA9IGZhbHNlO1xyXG4gICAgICBpdGVtLnNlYXJjaFRleHQgPSAnJztcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBldmVudD8uZGF0ZXBpY2tlcnRpbWUgICYmIGlzVmFsaWQgKXtcclxuICAgICAgaXNWYWxpZCA9IGZhbHNlO1xyXG4gICAgICBpdGVtLnNlYXJjaFRleHQgPSBldmVudD8uaW5uZXJWYWx1ZTsgICAgICBcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKGV2ZW50Py50YXJnZXQ/LnZhbHVlICYmIGlzVmFsaWQgKXtcclxuICAgICAgaXNWYWxpZCA9IGZhbHNlO1xyXG4gICAgICBpdGVtLnNlYXJjaFRleHQgPSB0aGlzLm5vcm1hbGl6ZShldmVudC50YXJnZXQudmFsdWUpO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoZXZlbnQ/LnRhcmdldD8udmFsdWUgPT09ICcnICYmIGlzVmFsaWQgKXtcclxuICAgICAgaXNWYWxpZCA9IGZhbHNlO1xyXG4gICAgICBpdGVtLnNlYXJjaFRleHQgPSAnJztcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpdGVtLnR5cGUgPT09ICdkYXRlLWxvY2FsJyAmJiBpdGVtLnZhbHVlICl7XHJcbiAgICAgIGlzVmFsaWQgPSBmYWxzZTtcclxuICAgICAgaXRlbS5zZWFyY2hUZXh0ID0gYCR7dGhpcy5jb252ZXJ0RGF0YVRvTnVtYmVyKCBpdGVtLnZhbHVlICl9YDtcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBldmVudCAmJiBldmVudC5yZXN1bHQgJiYgKCBldmVudC5yZXN1bHQuc3RhcnQgfHwgZXZlbnQucmVzdWx0LnN0b3AgKSApe1xyXG4gICAgICBpc1ZhbGlkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBcclxuICAgIFxyXG4gICAgaWYoIHRoaXMudXNlT25DaGFuZ2VTdWJtaXQgfHwgdGhpcy5maXJzdF9hY3RpdmVfZmlsdGVyICl7ICAgICAgXHJcbiAgICAgIHRoaXMuc3RhcnRfZmlsdGVyX2ZjID0gdGhpcy5zdGFydF9maWx0ZXIoKTtcclxuICAgICAgdGhpcy5maXJzdF9hY3RpdmVfZmlsdGVyID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoICF0aGlzLnVzZUJ1dHRvblN1Ym1pdCApe1xyXG4gICAgICB0aGlzLmVtaXRTdWJtaXRGaWx0ZXJzKCk7XHJcbiAgICB9IFxyXG4gIH1cclxuXHJcbiAgZ2V0RGF0ZVVUQyhkdDogYW55KXtcclxuICAgIGNvbnN0IGFubyA9IGR0LmdldEZ1bGxZZWFyKCk7XHJcbiAgICBjb25zdCBtZXMgPSBkdC5nZXRNb250aCgpO1xyXG4gICAgY29uc3QgZGlhID0gZHQuZ2V0RGF0ZSgpO1xyXG4gICAgY29uc3QgaG9yYXMgPSBkdC5nZXRIb3VycygpO1xyXG4gICAgY29uc3QgbWludXRvcyA9IGR0LmdldE1pbnV0ZXMoKTtcclxuICAgIGNvbnN0IHNlZ3VuZG9zID0gZHQuZ2V0U2Vjb25kcygpO1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKGFubywgbWVzLCBkaWEsIGhvcmFzLCBtaW51dG9zLCBzZWd1bmRvcykpO1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgc3RhcnRfZmlsdGVyKCl7XHJcbiAgICBmb3IoIGxldCBpID0gMDsgaSA8ICh0aGlzLmRhdGEpLmxlbmd0aDsgaSsrICl7XHJcblxyXG4gICAgICB0aGlzLnNldERhdGFJbmRleChpLCB0cnVlKTtcclxuXHJcbiAgICAgIGZvciggbGV0IGogPSAwOyBqIDwgKHRoaXMuZmlsdGVycykubGVuZ3RoOyBqKysgKXsgICAgICAgIFxyXG4gICAgICAgIGNvbnN0IGZpbHRlcl9pdGVtID0gdGhpcy5maWx0ZXJzW2pdOyAgIFxyXG5cclxuICAgICAgICBpZiggZmlsdGVyX2l0ZW0uc2VhcmNoVGV4dCAmJiB0eXBlb2YgKGZpbHRlcl9pdGVtLnNlYXJjaFRleHQpID09PSAnc3RyaW5nJyAmJiBmaWx0ZXJfaXRlbS5zZWFyY2hUZXh0ICE9PSAnJyAmJiBmaWx0ZXJfaXRlbS50eXBlICE9PSBUQ0ZpbHRlcnNUeXBlLm51bWJlciAmJiBmaWx0ZXJfaXRlbS50eXBlICE9PSBUQ0ZpbHRlcnNUeXBlLmRhdGUgKXtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgZmlsdGVyX2l0ZW0uc2VhcmNoVGV4dCA9IHRoaXMubm9ybWFsaXplKGZpbHRlcl9pdGVtLnNlYXJjaFRleHQpOyAgICAgICAgXHJcbiAgICAgICAgICBsZXQgaXRlbV92YWx1ZSA9IHRoaXMuY29sbGVjdGlvbkZpbmQodGhpcy5kYXRhW2ldLCBmaWx0ZXJfaXRlbS5zZWFyY2hJbik7XHJcbiAgICAgICAgICBpZiggaXRlbV92YWx1ZSApe1xyXG4gICAgICAgICAgICBpdGVtX3ZhbHVlID0gdGhpcy5ub3JtYWxpemUoaXRlbV92YWx1ZSk7ICAgXHJcblxyXG4gICAgICAgICAgICBpZiggdHlwZW9mIGZpbHRlcl9pdGVtLm5vdEluID09PSAnYm9vbGVhbicgJiYgZmlsdGVyX2l0ZW0ubm90SW4gKXtcclxuICAgICAgICAgICAgICBpZiggKCBpdGVtX3ZhbHVlID09PSBmaWx0ZXJfaXRlbS5zZWFyY2hUZXh0ICkgKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RGF0YUluZGV4KGksIGZhbHNlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG5cclxuICAgICAgICAgICAgICBpZiggZmlsdGVyX2l0ZW0udHlwZSA9PT0gVENGaWx0ZXJzVHlwZS5zZWxlY3QgKXtcclxuICAgICAgICAgICAgICAgIGlmKCAhKCBpdGVtX3ZhbHVlID09PSBmaWx0ZXJfaXRlbS5zZWFyY2hUZXh0ICkgKXtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZXREYXRhSW5kZXgoaSwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgaWYoICEoIGl0ZW1fdmFsdWUuaW5jbHVkZXMoZmlsdGVyX2l0ZW0uc2VhcmNoVGV4dCkgfHwgaXRlbV92YWx1ZSA9PT0gZmlsdGVyX2l0ZW0uc2VhcmNoVGV4dCApICl7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2V0RGF0YUluZGV4KGksIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5zZXREYXRhSW5kZXgoaSwgZmFsc2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gXHJcbiAgICAgICAgXHJcblxyXG4gICAgICAgIGlmKCBmaWx0ZXJfaXRlbS5zZWFyY2hUZXh0ICYmIGZpbHRlcl9pdGVtLnNlYXJjaFRleHQgaW5zdGFuY2VvZiBEYXRlICYmICFpc05hTiggZmlsdGVyX2l0ZW0uc2VhcmNoVGV4dC52YWx1ZU9mKCkpICYmIGZpbHRlcl9pdGVtLnR5cGUgPT09IFRDRmlsdGVyc1R5cGUuZGF0ZXRpbWUgKXtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgbGV0IGl0ZW1fdmFsdWU6IGFueSA9IHRoaXMuY29sbGVjdGlvbkZpbmQodGhpcy5kYXRhW2ldLCBmaWx0ZXJfaXRlbS5zZWFyY2hJbik7XHJcblxyXG4gICAgICAgICAgdHJ5IHsgaXRlbV92YWx1ZSA9IG5ldyBEYXRlKGl0ZW1fdmFsdWUpOyB9IGNhdGNoIChlcnJvcikge31cclxuICAgICAgICAgIGlmKCBpdGVtX3ZhbHVlICYmICBpdGVtX3ZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJiAhaXNOYU4oIGl0ZW1fdmFsdWUudmFsdWVPZigpKSApe1xyXG4gICAgICAgICAgICBsZXQgaXNfYWNjZXB0ID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBkdF90YXJnZXQgICA9ICggKGZpbHRlcl9pdGVtLnNlYXJjaFRleHQpLmdldFRpbWUoKSApLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDAsIDEwKTsgLyogKyAoMyAqIDYwICogNjAgKiAxMDAwKTsgKi9cclxuICAgICAgICAgICAgY29uc3QgZHRfY3VycmVudCAgPSAoIChpdGVtX3ZhbHVlKS5nZXRUaW1lKCkgKS50b1N0cmluZygpLnN1YnN0cmluZygwLCAxMCk7XHJcbiAgICAgICAgICAgIGlmKCBmaWx0ZXJfaXRlbS5jb25kaXRpb24gKXtcclxuICAgICAgICAgICAgICBzd2l0Y2ggKGZpbHRlcl9pdGVtLmNvbmRpdGlvbikge1xyXG4gICAgICAgICAgICAgICAgY2FzZSBUQ0NvbmRpdGlvbi5ndDogICAgaXNfYWNjZXB0ID0gKCBOdW1iZXIoZHRfdGFyZ2V0KSA+ICBOdW1iZXIoZHRfY3VycmVudCkgKTsgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBUQ0NvbmRpdGlvbi5sdDogICAgaXNfYWNjZXB0ID0gKCBOdW1iZXIoZHRfdGFyZ2V0KSA8ICBOdW1iZXIoZHRfY3VycmVudCkgKTsgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBUQ0NvbmRpdGlvbi5ndGU6ICAgaXNfYWNjZXB0ID0gKCBOdW1iZXIoZHRfdGFyZ2V0KSA8PSBOdW1iZXIoZHRfY3VycmVudCkgKTsgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBUQ0NvbmRpdGlvbi5sdGU6ICAgaXNfYWNjZXB0ID0gKCBOdW1iZXIoZHRfdGFyZ2V0KSA+PSBOdW1iZXIoZHRfY3VycmVudCkgKTsgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBUQ0NvbmRpdGlvbi5lcXVhbDogaXNfYWNjZXB0ID0gKCBOdW1iZXIoZHRfdGFyZ2V0KSA9PT0gTnVtYmVyKGR0X2N1cnJlbnQpICk7ICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgVENDb25kaXRpb24ubm90RXF1YWw6IGlzX2FjY2VwdCA9ICggTnVtYmVyKGR0X3RhcmdldCkgIT0gTnVtYmVyKGR0X2N1cnJlbnQpICk7ICBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGlzX2FjY2VwdCA9ICggTnVtYmVyKGR0X3RhcmdldCkgPT0gTnVtYmVyKGR0X2N1cnJlbnQpICk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICBpc19hY2NlcHQgPSAoIE51bWJlcihmaWx0ZXJfaXRlbS5zZWFyY2hUZXh0KSA9PT0gTnVtYmVyKGl0ZW1fdmFsdWUpICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoICFpc19hY2NlcHQgKXtcclxuICAgICAgICAgICAgICB0aGlzLnNldERhdGFJbmRleChpLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIFxyXG5cclxuICAgICAgICBpZiggZmlsdGVyX2l0ZW0uc2VhcmNoVGV4dCAmJiB0eXBlb2YgTnVtYmVyKGZpbHRlcl9pdGVtLnNlYXJjaFRleHQpID09PSAnbnVtYmVyJyAmJiAoIGZpbHRlcl9pdGVtLnR5cGUgPT09IFRDRmlsdGVyc1R5cGUubnVtYmVyIHx8IGZpbHRlcl9pdGVtLnR5cGUgPT09IFRDRmlsdGVyc1R5cGUuZGF0ZSApICl7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGZpbHRlcl9pdGVtLnNlYXJjaFRleHQgPSBOdW1iZXIoZmlsdGVyX2l0ZW0uc2VhcmNoVGV4dCk7XHJcbiAgICAgICAgICBsZXQgaXRlbV92YWx1ZSA9IHRoaXMuY29sbGVjdGlvbkZpbmQodGhpcy5kYXRhW2ldLCBmaWx0ZXJfaXRlbS5zZWFyY2hJbik7XHJcblxyXG4gICAgICAgICAgaWYoIHR5cGVvZiBOdW1iZXIoaXRlbV92YWx1ZSkgPT09ICdudW1iZXInICl7ICAgXHJcbiAgICAgICAgICAgIGl0ZW1fdmFsdWUgPSBOdW1iZXIoaXRlbV92YWx1ZSk7ICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGxldCBpc19hY2NlcHQgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYoIGZpbHRlcl9pdGVtLmNvbmRpdGlvbiApe1xyXG5cclxuICAgICAgICAgICAgICBzd2l0Y2ggKGZpbHRlcl9pdGVtLmNvbmRpdGlvbikge1xyXG4gICAgICAgICAgICAgICAgY2FzZSBUQ0NvbmRpdGlvbi5ndDogICAgaXNfYWNjZXB0ID0gKCBOdW1iZXIoZmlsdGVyX2l0ZW0uc2VhcmNoVGV4dCkgPiAgTnVtYmVyKGl0ZW1fdmFsdWUpICk7ICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgVENDb25kaXRpb24ubHQ6ICAgIGlzX2FjY2VwdCA9ICggTnVtYmVyKGZpbHRlcl9pdGVtLnNlYXJjaFRleHQpIDwgIE51bWJlcihpdGVtX3ZhbHVlKSApOyAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFRDQ29uZGl0aW9uLmd0ZTogICBpc19hY2NlcHQgPSAoIE51bWJlcihmaWx0ZXJfaXRlbS5zZWFyY2hUZXh0KSA8PSBOdW1iZXIoaXRlbV92YWx1ZSkgKTsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFRDQ29uZGl0aW9uLmx0ZTogICBpc19hY2NlcHQgPSAoIE51bWJlcihmaWx0ZXJfaXRlbS5zZWFyY2hUZXh0KSA+PSBOdW1iZXIoaXRlbV92YWx1ZSkgKTsgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBUQ0NvbmRpdGlvbi5lcXVhbDogaXNfYWNjZXB0ID0gKCBOdW1iZXIoZmlsdGVyX2l0ZW0uc2VhcmNoVGV4dCkgPT09IE51bWJlcihpdGVtX3ZhbHVlKSApOyBicmVhazsgXHJcbiAgICAgICAgICAgICAgICBjYXNlIFRDQ29uZGl0aW9uLm5vdEVxdWFsOiBpc19hY2NlcHQgPSAoIE51bWJlcihmaWx0ZXJfaXRlbS5zZWFyY2hUZXh0KSAhPSBOdW1iZXIoaXRlbV92YWx1ZSkgKTsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBpc19hY2NlcHQgPSAoIE51bWJlcihmaWx0ZXJfaXRlbS5zZWFyY2hUZXh0KSA9PSBOdW1iZXIoaXRlbV92YWx1ZSkgKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgIGlzX2FjY2VwdCA9ICggTnVtYmVyKGZpbHRlcl9pdGVtLnNlYXJjaFRleHQpID09PSBOdW1iZXIoaXRlbV92YWx1ZSkgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiggIWlzX2FjY2VwdCApe1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0RGF0YUluZGV4KGksIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBcclxuICAgICAgICBpZiggdHlwZW9mIChmaWx0ZXJfaXRlbS5zZWFyY2hUZXh0KSA9PT0gJ2Jvb2xlYW4nICYmIGZpbHRlcl9pdGVtLnNlYXJjaFRleHQgPT09IHRydWUgKXtcclxuXHJcbiAgICAgICAgICBsZXQgaXRlbV92YWx1ZTogYW55ID0gdGhpcy5jb2xsZWN0aW9uRmluZCh0aGlzLmRhdGFbaV0sIGZpbHRlcl9pdGVtLnNlYXJjaEluKTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgaWYoIGl0ZW1fdmFsdWUgJiYgKGl0ZW1fdmFsdWUpLmxlbmd0aCA+IDAgKXsgIFxyXG4gICAgICAgICAgICBsZXQgcXRkX2lzX3RydWUgPSAwOyAgICAgICAgICBcclxuICAgICAgICAgICAgZm9yKCBsZXQgaSA9IDA7IGkgPCAoKGl0ZW1fdmFsdWUpLmxlbmd0aCk7IGkrKyApe1xyXG4gICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtX3ZhbHVlW2ldO1xyXG4gICAgICAgICAgICAgIGlmKCBpdGVtID09PSBmaWx0ZXJfaXRlbS5zZWFyY2hUZXh0ICl7XHJcbiAgICAgICAgICAgICAgICBxdGRfaXNfdHJ1ZSsrO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiggcXRkX2lzX3RydWUgPT09IDAgKXtcclxuICAgICAgICAgICAgICB0aGlzLnNldERhdGFJbmRleChpLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICBpZiggISggaXRlbV92YWx1ZSA9PT0gZmlsdGVyX2l0ZW0uc2VhcmNoVGV4dCApICl7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXREYXRhSW5kZXgoaSwgZmFsc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9ICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIH1cclxuXHJcbiAgICB9IC8vIGVuZCBmb3JcclxuICAgIFxyXG4gICAgdGhpcy50b1Jlc3VsdCgpO1xyXG4gICAgICBcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdG9SZXN1bHQoKXtcclxuXHJcblxyXG4gICAgY29uc3Qgc2VhcmNoX2RhdGEgPSBbXTtcclxuXHJcbiAgICBsZXQgaXNfZmlsdGVyID0gZmFsc2U7XHJcbiAgICBmb3IoIGxldCBpID0gMDsgaSA8ICh0aGlzLmZpbHRlcnMpLmxlbmd0aDsgaSsrICl7XHJcbiAgICAgIGlmKCB0aGlzLmZpbHRlcnNbaV0uc2VhcmNoVGV4dCAmJiB0aGlzLmZpbHRlcnNbaV0uc2VhcmNoVGV4dCAhPT0gJycgKXtcclxuICAgICAgICBpc19maWx0ZXIgPSB0cnVlOyBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc19maWx0ZXIgKXtcclxuICAgICAgZm9yKCBsZXQgaSA9IDA7IGkgPCAodGhpcy5kYXRhKS5sZW5ndGg7IGkrKyApe1xyXG4gICAgICAgIGlmKCB0aGlzLmRhdGEgJiYgdGhpcy5kYXRhW2ldICYmIHRoaXMuZGF0YVtpXVsndGNfZmlsdGVyX2FjY2VwdCddICl7XHJcbiAgICAgICAgICAoc2VhcmNoX2RhdGEpLnB1c2godGhpcy5kYXRhW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMucmVzdWx0X2FjY2VwdChzZWFyY2hfZGF0YSk7XHJcbiAgICAgIHRoaXMub25GaWx0ZXIuZW1pdCh7Li4udGhpcy5maWx0ZXJzfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJlc3VsdF9hY2NlcHQodGhpcy5kYXRhKTtcclxuICAgIHRoaXMub25GaWx0ZXIuZW1pdCh7Li4udGhpcy5maWx0ZXJzfSk7XHJcbiAgfVxyXG5cclxuICBzZXREYXRhSW5kZXgoaW5kZXg6IG51bWJlciwgdmFsdWU6IGJvb2xlYW4gKXtcclxuICAgIGlmKCB0aGlzLmRhdGEgJiYgdGhpcy5kYXRhW2luZGV4XSApe1xyXG4gICAgICB0aGlzLmRhdGFbaW5kZXhdWyd0Y19maWx0ZXJfYWNjZXB0J10gPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc3VsdF9hY2NlcHQoZGF0YTogYW55KXtcclxuICAgIGlmKCAhdGhpcy51c2VGaWx0ZXJBY2NlcHQgJiYgZGF0YSAmJiAoZGF0YSkubGVuZ3RoID4gMCApe1xyXG4gICAgICBmb3IoIGxldCBpID0gMDsgaSA8IChkYXRhKS5sZW5ndGg7IGkrKyApe1xyXG4gICAgICAgIGRlbGV0ZSBkYXRhW2ldWyd0Y19maWx0ZXJfYWNjZXB0J107XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMucmVzdWx0LmVtaXQoZGF0YSk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwic2hvd19maWx0ZXJzXCIgY2xhc3M9XCJ0Y2xvdWQtdWktZmlsdGVycyBhcmVhLWZpbHRlclwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmaWx0ZXJzOyBsZXQgaSA9IGluZGV4XCI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXRlbS50eXBlIHx8IChpdGVtLnR5cGUgJiYgaXRlbS50eXBlICE9PSAnYm9vbGVhbicpXCI+XHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS50eXBlID09PSAnZGF0ZS1sb2NhbCdcIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm94LWZpbHRlci1pbnB1dCB0eXBlLXt7aXRlbS50eXBlfX0gYm94LXR5cGUte3tpdGVtLnR5cGV9fVwiIFtzdHlsZV09XCIoaXRlbS53aWR0aCAhPT0gJycpID8gJ3dpZHRoOicraXRlbS53aWR0aCA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tZGVzY3JpcHRpb24gdGMtdGl0bGUtZWxsaXBzaXMgYm94LXR5cGUte3tpdGVtLnR5cGV9fVwiIHRpdGxlPVwie3sgaXRlbS5kZXNjcmlwdGlvbiB9fVwiPjxpIFtjbGFzcy50by1hY3RpdmVdPVwiKGl0ZW0udmFsdWUgIT09IHVuZGVmaW5lZCAmJiBpdGVtLnZhbHVlICE9PSBudWxsICYmIGl0ZW0udmFsdWUgIT09ICcnKVwiIGNsYXNzPVwiZmFzIGZhLWZpbHRlciBpY29uLWZpbHRlclwiPjwvaT4mbmJzcDt7eyBpdGVtLmRlc2NyaXB0aW9uIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJveC10eXBlLXt7aXRlbS50eXBlfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRjbG91ZC11aS1kYXRlcGlja2VyIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgI19pbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImlucHV0X3t7aSsxfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVJbnB1dF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWFyY2hJbihpdGVtLCBfaW5wdXQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGNsb3VkLXVpLWRhdGVwaWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4tY2xlYXItZmlsdGVyLXRleHRcIiBbY2xhc3MudG8taGlkZV09XCIhKGl0ZW0udmFsdWUgIT09IHVuZGVmaW5lZCAmJiBpdGVtLnZhbHVlICE9PSBudWxsICYmIGl0ZW0udmFsdWUgIT09ICcnKVwiIChjbGljayk9XCJzZWFyY2hJbihpdGVtLCBudWxsKTsgaXRlbS5zZWFyY2hUZXh0ID0gdW5kZWZpbmVkOyBpdGVtLnZhbHVlID0gJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnR5cGUgIT09ICdkYXRlLWxvY2FsJ1wiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ2RhdGV0aW1lLWxvY2FsJ1wiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGl0ZW0uaWQgPT09ICdzdGFydCcgfHwgaXRlbS5pZCA9PT0gJ3N0b3AnKSAmJiB1c2VSYW5nZURhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBQRVJJT0QgUkFOR0UgREFURSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uaWQgPT09ICdzdGFydCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3gtZmlsdGVyLWlucHV0IHR5cGUte3tpdGVtLnR5cGV9fSBib3gtdHlwZS17e2l0ZW0udHlwZX19XCIgW3N0eWxlXT1cIihpdGVtLndpZHRoICE9PSAnJykgPyAnd2lkdGg6JytzdGFydF9zdG9wX3dpZHRoKycnK3N0YXJ0X3N0b3BfdW5kIDogJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1kZXNjcmlwdGlvbiB0Yy10aXRsZS1lbGxpcHNpcyBib3gtdHlwZS17e2l0ZW0udHlwZX19XCIgdGl0bGU9XCJ7eyBpdGVtLmRlc2NyaXB0aW9uIH19XCI+PGkgW2NsYXNzLnRvLWFjdGl2ZV09XCIoX3JhbmdlX2RhdGUgJiYgX3JhbmdlX2RhdGUucmVzdWx0ICYmIF9yYW5nZV9kYXRlLnJlc3VsdC5zdGFydCAmJiBfcmFuZ2VfZGF0ZS5yZXN1bHQuc3RvcCApXCIgY2xhc3M9XCJmYXMgZmEtZmlsdGVyIGljb24tZmlsdGVyXCI+PC9pPiZuYnNwOzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyYW5nZS1kYXRlICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI19yYW5nZV9kYXRlIG5nTW9kZWwgbmFtZT1cImlucHV0X3t7aSsxfX1cIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RlZmF1bHRWYWx1ZVBlcmlvZFN0YXJ0U3RvcF09XCJpdGVtLmRlZmF1bHRWYWx1ZVBlcmlvZFN0YXJ0U3RvcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZXNjcmlwdGlvblN0YXJ0XT1cImRlc2NyaXB0aW9uU3RhcnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVzY3JpcHRpb25TdG9wXT1cImRlc2NyaXB0aW9uU3RvcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25DaGFuZ2UpPVwic2VhcmNoSW5SYW5nZShfcmFuZ2VfZGF0ZSk7IHNlYXJjaEluKGl0ZW0sIF9yYW5nZV9kYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmFuZ2UtZGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj4gICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0ICpuZ0lmPVwiaXRlbS5pZCA9PT0gJ3N0YXJ0J1wiICNfaW5wdXQgbmFtZT1cImlucHV0X3t7aSsxfX1cIiB0eXBlPVwiaGlkZGVuXCIgWyhuZ01vZGVsKV09XCJzdGFydF92YWx1ZVwiPiAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cIml0ZW0uaWQgPT09ICdzdG9wJ1wiICNfaW5wdXQgbmFtZT1cImlucHV0X3t7aSsxfX1cIiB0eXBlPVwiaGlkZGVuXCIgWyhuZ01vZGVsKV09XCJzdG9wX3ZhbHVlXCI+ICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXRlbS5pZCB8fCAhdXNlUmFuZ2VEYXRlXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm94LWZpbHRlci1pbnB1dCB0eXBlLXt7aXRlbS50eXBlfX0gYm94LXR5cGUte3tpdGVtLnR5cGV9fVwiIFtzdHlsZV09XCIoaXRlbS53aWR0aCAhPT0gJycpID8gJ3dpZHRoOicraXRlbS53aWR0aCA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1kZXNjcmlwdGlvbiB0Yy10aXRsZS1lbGxpcHNpcyBib3gtdHlwZS17e2l0ZW0udHlwZX19XCIgdGl0bGU9XCJ7eyBpdGVtLmRlc2NyaXB0aW9uIH19XCI+PGkgW2NsYXNzLnRvLWFjdGl2ZV09XCIoaXRlbS52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIGl0ZW0udmFsdWUgIT09IG51bGwgJiYgaXRlbS52YWx1ZSAhPT0gJycpXCIgY2xhc3M9XCJmYXMgZmEtZmlsdGVyIGljb24tZmlsdGVyXCI+PC9pPiZuYnNwO3t7IGl0ZW0uZGVzY3JpcHRpb24gfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3gtdHlwZS17e2l0ZW0udHlwZX19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNfaW5wdXQgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaXRlbS52YWx1ZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiaW5wdXRfe3tpKzF9fVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdXNlT3B0aW9uc0RhdGVUaW1lXT1cIihpdGVtICYmIGl0ZW0udXNlT3B0aW9uc0RhdGVUaW1lKSA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChldmVudENoYW5nZSk9XCJzZWFyY2hJbihpdGVtLCBfaW5wdXQpXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWNsZWFyLWZpbHRlci10ZXh0XCIgW2NsYXNzLnRvLWhpZGVdPVwiIShpdGVtLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgaXRlbS52YWx1ZSAhPT0gbnVsbCAmJiBpdGVtLnZhbHVlICE9PSAnJylcIiAoY2xpY2spPVwic2VhcmNoSW4oaXRlbSwgbnVsbCk7IGl0ZW0uc2VhcmNoVGV4dCA9IHVuZGVmaW5lZDsgaXRlbS52YWx1ZSA9ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS50eXBlICE9PSAnc2VsZWN0JyAmJiBpdGVtLnR5cGUgIT09ICdkYXRldGltZS1sb2NhbCcgJiYgaXRlbS50eXBlICE9PSAnZGF0ZS1sb2NhbCdcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3gtZmlsdGVyLWlucHV0IHR5cGUte3tpdGVtLnR5cGV9fSBib3gtdHlwZS17e2l0ZW0udHlwZX19XCIgW3N0eWxlXT1cIihpdGVtLndpZHRoICE9PSAnJykgPyAnd2lkdGg6JytpdGVtLndpZHRoIDogJydcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tZGVzY3JpcHRpb24gdGMtdGl0bGUtZWxsaXBzaXMgYm94LXR5cGUte3tpdGVtLnR5cGV9fVwiIHRpdGxlPVwie3sgaXRlbS5kZXNjcmlwdGlvbiB9fVwiPjxpIFtjbGFzcy50by1hY3RpdmVdPVwiX2lucHV0LnZhbHVlICE9PSAnJ1wiIGNsYXNzPVwiZmFzIGZhLWZpbHRlciBpY29uLWZpbHRlclwiPjwvaT4mbmJzcDt7eyBpdGVtLmRlc2NyaXB0aW9uIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJveC10eXBlLXt7aXRlbS50eXBlfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgI19pbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgKGl0ZW0ucGxhY2Vob2xkZXIgIT09ICcnKSA/IGl0ZW0ucGxhY2Vob2xkZXIgOiAnJyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiaW5wdXRfe3tpKzF9fVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInt7IChpdGVtLnR5cGUgPT09ICdudW1iZXInKSA/ICd0ZXh0JyA6IGl0ZW0udHlwZSB9fVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0Yy1mb3JtLWNvbnRyb2xcIiAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleXVwKT1cInNlYXJjaEluKGl0ZW0sICRldmVudClcIj4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWNsZWFyLWZpbHRlci10ZXh0XCIgW2NsYXNzLnRvLWhpZGVdPVwiX2lucHV0LnZhbHVlID09PSAnJ1wiIChjbGljayk9XCJzZWFyY2hJbihpdGVtLCBudWxsKTsgX2lucHV0LnZhbHVlID0gJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdzZWxlY3QnICYmIGl0ZW0uZGF0YSAmJiAoaXRlbS5kYXRhKS5sZW5ndGggPiAwXCIgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJveC1maWx0ZXItaW5wdXQgdHlwZS17e2l0ZW0udHlwZX19IGJveC10eXBlLXt7aXRlbS50eXBlfX1cIiBbc3R5bGVdPVwiKGl0ZW0ud2lkdGggIT09ICcnKSA/ICd3aWR0aDonK2l0ZW0ud2lkdGggOiAnJ1wiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1kZXNjcmlwdGlvbiB0Yy10aXRsZS1lbGxpcHNpcyBib3gtdHlwZS17e2l0ZW0udHlwZX19XCIgdGl0bGU9XCJ7eyBpdGVtLmRlc2NyaXB0aW9uIH19XCI+PGkgW2NsYXNzLnRvLWFjdGl2ZV09XCJfaW5wdXQudmFsdWUgIT09ICcnXCIgY2xhc3M9XCJmYXMgZmEtZmlsdGVyIGljb24tZmlsdGVyXCI+PC9pPiZuYnNwO3t7IGl0ZW0uZGVzY3JpcHRpb24gfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm94LXR5cGUte3tpdGVtLnR5cGV9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgI19pbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJpbnB1dF97e2krMX19XCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRjLWZvcm0tY29udHJvbFwiICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNlYXJjaEluKGl0ZW0sICRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwiXCI+PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB2IG9mIGl0ZW0uZGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cInYudmFsdWVcIj57eyB2LmRlc2NyaXB0aW9uIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udHlwZSAmJiBpdGVtLnR5cGUgPT09ICdib29sZWFuJ1wiPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJveC1maWx0ZXItaW5wdXRcIiBbc3R5bGVdPVwiKGl0ZW0ud2lkdGggIT09ICcnKSA/ICd3aWR0aDonK2l0ZW0ud2lkdGggOiAnJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tZGVzY3JpcHRpb24gdGMtdGl0bGUtZWxsaXBzaXNcIiB0aXRsZT1cInt7IGl0ZW0uZGVzY3JpcHRpb24gfX1cIiB0aXRsZT1cInt7IGl0ZW0uZGVzY3JpcHRpb24gfX1cIj48aSBbY2xhc3MudG8tYWN0aXZlXT1cIl9pbnB1dC5jaGVja2VkID09PSB0cnVlXCIgY2xhc3M9XCJmYXMgZmEtZmlsdGVyIGljb24tZmlsdGVyXCI+PC9pPiZuYnNwO3t7IGl0ZW0uZGVzY3JpcHRpb24gfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmVhLWlucHV0LWNoZWNrYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRjLWZvcm0tY29udHJvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnBsYWNlaG9sZGVyIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI19pbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgKGl0ZW0ucGxhY2Vob2xkZXIgIT09ICcnKSA/IGl0ZW0ucGxhY2Vob2xkZXIgOiAnJyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImlucHV0X3t7aSsxfX1cIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNlYXJjaEluKGl0ZW0sIF9pbnB1dC5jaGVja2VkKVwiPiAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1yaWdodCBtYi0xIG1yLTFcIiAqbmdJZj1cInVzZUJ1dHRvblN1Ym1pdFwiPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwidGMtYnRuIHt7IGJ0blN1Ym1pdENsYXNzIH19XCIgKGNsaWNrKT1cInRvU3VibWl0KClcIiA+e3sgc3VibWl0VGV4dCB9fTwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuXHJcbjwhLS0gPHByZT57eyBpbnB1dHMgfCBqc29uIH19PC9wcmU+IC0tPlxyXG48IS0tIDxwcmU+IHt7IGRhdGEgfCBqc29uIH19IDwvcHJlPiAtLT5cclxuXHJcbjwhLS0gPHA+RklMVEVSUzwvcD48cHJlPiB7eyBmaWx0ZXJzIHwganNvbiB9fTwvcHJlPiAtLT5cclxuXHJcbjwhLS1cclxuICAgIDxwcmU+c3RhcnRfc3RvcDoge3sgc3RhcnRfc3RvcCB9fTwvcHJlPlxyXG4gICAgPHByZT5zdGFydF9zdG9wX3dpZHRoOiB7eyBzdGFydF9zdG9wX3dpZHRoIH19PC9wcmU+XHJcbiAgICA8cHJlPnN0YXJ0X3N0b3BfdW5kOiB7eyBzdGFydF9zdG9wX3VuZCB9fTwvcHJlPlxyXG4tLT4iXX0=
|
|
@@ -15,5 +15,6 @@ export var TCCondition;
|
|
|
15
15
|
TCCondition["lte"] = "lte";
|
|
16
16
|
TCCondition["lt"] = "lt";
|
|
17
17
|
TCCondition["gt"] = "gt";
|
|
18
|
+
TCCondition["notEqual"] = "notEqual";
|
|
18
19
|
})(TCCondition || (TCCondition = {}));
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWZpbHRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktZmlsdGVycy90Y2xvdWQtdWktZmlsdGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEyQkEsTUFBTSxDQUFOLElBQVksYUFRWDtBQVJELFdBQVksYUFBYTtJQUNyQiw4QkFBYSxDQUFBO0lBQ2Isa0NBQWlCLENBQUE7SUFDakIsa0NBQWlCLENBQUE7SUFDakIsb0NBQW1CLENBQUE7SUFDbkIsNENBQTJCLENBQUE7SUFDM0Isa0NBQWlCLENBQUE7SUFDakIsb0NBQW1CLENBQUE7QUFDdkIsQ0FBQyxFQVJXLGFBQWEsS0FBYixhQUFhLFFBUXhCO0FBRUQsTUFBTSxDQUFOLElBQVksV0FPWDtBQVBELFdBQVksV0FBVztJQUNuQiw4QkFBZSxDQUFBO0lBQ2YsMEJBQVcsQ0FBQTtJQUNYLDBCQUFXLENBQUE7SUFDWCx3QkFBUyxDQUFBO0lBQ1Qsd0JBQVMsQ0FBQTtJQUNULG9DQUFxQixDQUFBO0FBQ3pCLENBQUMsRUFQVyxXQUFXLEtBQVgsV0FBVyxRQU90QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVENEYXRhRmlsdGVyc3tcclxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7ICAgIFxyXG4gICAgc2VhcmNoSW46IHN0cmluZztcclxuICAgIG5vdEluPzogYm9vbGVhbjtcclxuICAgIHR5cGU/OiBUQ0ZpbHRlcnNUeXBlO1xyXG4gICAgbmFtZT86IHN0cmluZztcclxuICAgIGlkPzogc3RyaW5nO1xyXG5cclxuICAgIHNlYXJjaFRleHQ/OiBhbnk7XHJcbiAgICBhY2NlcHQ/OiBib29sZWFuO1xyXG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgICB3aWR0aD86IHN0cmluZztcclxuICAgIGRhdGE/OiBUQ0RhdGFPdGlvbnNbXTtcclxuICAgIGNvbmRpdGlvbj86IFRDQ29uZGl0aW9uO1xyXG4gICAgdmFsdWU/OiBhbnk7XHJcblxyXG4gICAgLy8gRm9yIGRhdGVwaWNrZXJcclxuICAgIGRlZmF1bHRWYWx1ZVBlcmlvZFN0YXJ0U3RvcD86IGFueTtcclxuICAgIFVUQz86IGJvb2xlYW47XHJcbiAgICB1c2VPcHRpb25zRGF0ZVRpbWU/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRDRGF0YU90aW9ucyB7XHJcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gICAgdmFsdWU6IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gVENGaWx0ZXJzVHlwZXtcclxuICAgIHRleHQgPSBcInRleHRcIixcclxuICAgIG51bWJlciA9IFwibnVtYmVyXCIsXHJcbiAgICBzZWxlY3QgPSBcInNlbGVjdFwiLFxyXG4gICAgYm9vbGVhbiA9IFwiYm9vbGVhblwiLFxyXG4gICAgZGF0ZXRpbWUgPSBcImRhdGV0aW1lLWxvY2FsXCIsXHJcbiAgICBoaWRkZW4gPSBcImhpZGRlblwiLFxyXG4gICAgZGF0ZSA9IFwiZGF0ZS1sb2NhbFwiLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBUQ0NvbmRpdGlvbntcclxuICAgIGVxdWFsID0gXCJlcXVhbFwiLFxyXG4gICAgZ3RlID0gXCJndGVcIixcclxuICAgIGx0ZSA9IFwibHRlXCIsXHJcbiAgICBsdCA9IFwibHRcIixcclxuICAgIGd0ID0gXCJndFwiLFxyXG4gICAgbm90RXF1YWwgPSBcIm5vdEVxdWFsXCJcclxufSJdfQ==
|
|
@@ -2785,6 +2785,7 @@ var TCCondition;
|
|
|
2785
2785
|
TCCondition["lte"] = "lte";
|
|
2786
2786
|
TCCondition["lt"] = "lt";
|
|
2787
2787
|
TCCondition["gt"] = "gt";
|
|
2788
|
+
TCCondition["notEqual"] = "notEqual";
|
|
2788
2789
|
})(TCCondition || (TCCondition = {}));
|
|
2789
2790
|
|
|
2790
2791
|
var translation = {
|
|
@@ -4049,8 +4050,22 @@ class TCloudUiFiltersComponent {
|
|
|
4049
4050
|
let item_value = this.collectionFind(this.data[i], filter_item.searchIn);
|
|
4050
4051
|
if (item_value) {
|
|
4051
4052
|
item_value = this.normalize(item_value);
|
|
4052
|
-
if (
|
|
4053
|
-
|
|
4053
|
+
if (typeof filter_item.notIn === 'boolean' && filter_item.notIn) {
|
|
4054
|
+
if ((item_value === filter_item.searchText)) {
|
|
4055
|
+
this.setDataIndex(i, false);
|
|
4056
|
+
}
|
|
4057
|
+
}
|
|
4058
|
+
else {
|
|
4059
|
+
if (filter_item.type === TCFiltersType.select) {
|
|
4060
|
+
if (!(item_value === filter_item.searchText)) {
|
|
4061
|
+
this.setDataIndex(i, false);
|
|
4062
|
+
}
|
|
4063
|
+
}
|
|
4064
|
+
else {
|
|
4065
|
+
if (!(item_value.includes(filter_item.searchText) || item_value === filter_item.searchText)) {
|
|
4066
|
+
this.setDataIndex(i, false);
|
|
4067
|
+
}
|
|
4068
|
+
}
|
|
4054
4069
|
}
|
|
4055
4070
|
}
|
|
4056
4071
|
else {
|
|
@@ -4084,6 +4099,9 @@ class TCloudUiFiltersComponent {
|
|
|
4084
4099
|
case TCCondition.equal:
|
|
4085
4100
|
is_accept = (Number(dt_target) === Number(dt_current));
|
|
4086
4101
|
break;
|
|
4102
|
+
case TCCondition.notEqual:
|
|
4103
|
+
is_accept = (Number(dt_target) != Number(dt_current));
|
|
4104
|
+
break;
|
|
4087
4105
|
default: is_accept = (Number(dt_target) == Number(dt_current));
|
|
4088
4106
|
}
|
|
4089
4107
|
}
|
|
@@ -4118,6 +4136,9 @@ class TCloudUiFiltersComponent {
|
|
|
4118
4136
|
case TCCondition.equal:
|
|
4119
4137
|
is_accept = (Number(filter_item.searchText) === Number(item_value));
|
|
4120
4138
|
break;
|
|
4139
|
+
case TCCondition.notEqual:
|
|
4140
|
+
is_accept = (Number(filter_item.searchText) != Number(item_value));
|
|
4141
|
+
break;
|
|
4121
4142
|
default: is_accept = (Number(filter_item.searchText) == Number(item_value));
|
|
4122
4143
|
}
|
|
4123
4144
|
}
|