vcomply-workflow-engine 3.0.278 → 3.0.279
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/add-multiple-responsibility/add-multiple-responsibility.component.mjs +2 -2
- package/esm2020/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.mjs +310 -123
- package/esm2020/lib/add-multiple-risk/add-multiple-risk.component.mjs +128 -64
- package/esm2020/lib/log-an-issue/log-an-issue.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-container/frequency-container.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.mjs +26 -11
- package/esm2020/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-top/frequency-top.component.mjs +21 -8
- package/esm2020/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/frequency/frequency.service.mjs +5 -3
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.mjs +113 -23
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.mjs +60 -21
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.mjs +53 -43
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.mjs +64 -25
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.mjs +63 -20
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.mjs +65 -23
- package/esm2020/lib/workflow-compliance/workflow-compliance.component.mjs +2 -2
- package/esm2020/lib/workflow-policy/workflow-policy.component.mjs +2 -2
- package/esm2020/lib/workflow-risk/workflow-risk.component.mjs +365 -131
- package/fesm2015/vcomply-workflow-engine.mjs +1304 -537
- package/fesm2015/vcomply-workflow-engine.mjs.map +1 -1
- package/fesm2020/vcomply-workflow-engine.mjs +1320 -541
- package/fesm2020/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.d.ts +1 -1
- package/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Injectable, Optional } from '@angular/core';
|
|
2
2
|
import { HttpHeaders } from '@angular/common/http';
|
|
3
3
|
import { retry } from 'rxjs/operators';
|
|
4
|
-
import
|
|
4
|
+
import moment from 'moment/moment';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@angular/common/http";
|
|
7
7
|
import * as i2 from "../../workflow-services/auth.service";
|
|
@@ -555,7 +555,9 @@ export class FrequencyService {
|
|
|
555
555
|
}
|
|
556
556
|
getResponsibilitiesCount(payload) {
|
|
557
557
|
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
558
|
-
return this.http
|
|
558
|
+
return this.http
|
|
559
|
+
.post(this.env.responsibilityPost + 'manage_responsibilities_reports_count', payload, { headers })
|
|
560
|
+
.pipe(retry(1));
|
|
559
561
|
}
|
|
560
562
|
}
|
|
561
563
|
FrequencyService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FrequencyService, deps: [{ token: i1.HttpClient }, { token: i2.AuthService }, { token: i3.Configurations, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -568,4 +570,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
568
570
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.AuthService }, { type: i3.Configurations, decorators: [{
|
|
569
571
|
type: Optional
|
|
570
572
|
}] }]; } });
|
|
571
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS9mcmVxdWVuY3kuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsT0FBTyxFQUFtQixLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4RCxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQzs7Ozs7QUFLakMsTUFBTSxPQUFPLGdCQUFnQjtJQXFFM0IsWUFDVSxJQUFnQixFQUNoQixXQUF3QixFQUNwQixNQUF1QjtRQUYzQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBdEUzQixlQUFVLEdBQWtCO1lBQ2pDLFNBQVM7WUFDVCxVQUFVO1lBQ1YsT0FBTztZQUNQLE9BQU87WUFDUCxLQUFLO1lBQ0wsTUFBTTtZQUNOLE1BQU07WUFDTixRQUFRO1lBQ1IsV0FBVztZQUNYLFNBQVM7WUFDVCxVQUFVO1lBQ1YsVUFBVTtTQUNYLENBQUM7UUFFSyxZQUFPLEdBQWtCO1lBQzlCLFFBQVE7WUFDUixTQUFTO1lBQ1QsV0FBVztZQUNYLFVBQVU7WUFDVixRQUFRO1lBQ1IsVUFBVTtZQUNWLFFBQVE7U0FDVCxDQUFDLENBQUMsZ0JBQWdCO1FBRVosbUJBQWMsR0FBa0I7WUFDckMsK0JBQStCO1lBQy9CLGlDQUFpQztZQUNqQyxrQ0FBa0M7U0FDbkMsQ0FBQztRQUVLLGVBQVUsR0FBRztZQUNsQixNQUFNLEVBQUUsYUFBYTtZQUNyQixlQUFlLEVBQUUsS0FBSztTQUN2QixDQUFDO1FBRUssa0JBQWEsR0FB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QUFrQixHQUFHLGlDQUFpQyxFQUMvRCxPQUFPLEVBQ1AsRUFBRSxPQUFPLEVBQUUsQ0FDWjthQUNBLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsd0JBQXdCLENBQUMsT0FBWTtRQUNuQyxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7UUFDekYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixHQUFHLHVDQUF1QyxFQUFFLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pJLENBQUM7OzZHQTNrQlUsZ0JBQWdCO2lIQUFoQixnQkFBZ0IsY0FGZixNQUFNOzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQXlFSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCByZXRyeSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnMgfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9ucyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5U2VydmljZSB7XHJcbiAgcHVibGljIG1vbnRoQXJyYXk6IEFycmF5PHN0cmluZz4gPSBbXHJcbiAgICAnSmFudWFyeScsXHJcbiAgICAnRmVicnVhcnknLFxyXG4gICAgJ01hcmNoJyxcclxuICAgICdBcHJpbCcsXHJcbiAgICAnTWF5JyxcclxuICAgICdKdW5lJyxcclxuICAgICdKdWx5JyxcclxuICAgICdBdWd1c3QnLFxyXG4gICAgJ1NlcHRlbWJlcicsXHJcbiAgICAnT2N0b2JlcicsXHJcbiAgICAnTm92ZW1iZXInLFxyXG4gICAgJ0RlY2VtYmVyJyxcclxuICBdO1xyXG5cclxuICBwdWJsaWMgZGF5TmFtZTogQXJyYXk8c3RyaW5nPiA9IFtcclxuICAgICdNb25kYXknLFxyXG4gICAgJ1R1ZXNkYXknLFxyXG4gICAgJ1dlZG5lc2RheScsXHJcbiAgICAnVGh1cnNkYXknLFxyXG4gICAgJ0ZyaWRheScsXHJcbiAgICAnU2F0dXJkYXknLFxyXG4gICAgJ1N1bmRheScsXHJcbiAgXTsgLy8gZnVsbCBkYXkgbmFtZVxyXG5cclxuICBwdWJsaWMgcXVhcnRlcmx5TW9udGg6IEFycmF5PHN0cmluZz4gPSBbXHJcbiAgICAnSmFudWFyeSwgQXByaWwsIEp1bHksIE9jdG9iZXInLFxyXG4gICAgJ0ZlYnJ1YXJ5LCBNYXksIEF1Z3VzdCwgTm92ZW1iZXInLFxyXG4gICAgJ01hcmNoLCBKdW5lLCBTZXB0ZW1iZXIsIERlY2VtYmVyJyxcclxuICBdO1xyXG5cclxuICBwdWJsaWMgZGF0ZUNvbmZpZyA9IHtcclxuICAgIGZvcm1hdDogJ0REIE1NTSBZWVlZJyxcclxuICAgIHNob3dHb1RvQ3VycmVudDogZmFsc2UsXHJcbiAgfTtcclxuXHJcbiAgcHVibGljIGZyZXF1ZW5jeUluZm8gPSB7XHJcbiAgICBwbGFjZWhvbGRlcjogJycsXHJcbiAgICBwYXR0ZXJuOiAnJyxcclxuICAgIGNhc2U6ICcnLFxyXG4gICAgZmFpbGVkQWZ0ZXI6IDAsXHJcbiAgICB3aW5kb3c6IDAsXHJcbiAgICB0aW1lSW4xMmhyOiAnJyxcclxuICAgIHRpbWVJbjI0SHI6ICcnLFxyXG4gICAgbGlmZWN5Y2xlRGV0YWlsczogJzAwMDAtMDAtMDB+fjAnLFxyXG4gICAgc3RhcnRGcm9tOiBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKSxcclxuICAgIHJlcG9ydElkOiAwLFxyXG4gICAgZmFpbGVkX3RpbWVfdXRjOiBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKSxcclxuICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXM6IDAsXHJcbiAgICBkYXRlT2ZNb2RpZmllZDogMCxcclxuICAgIHN0YXJ0RGF0ZTogJycsXHJcbiAgfTtcclxuXHJcbiAgcHVibGljIGZyZXF1ZW5jeURldGFpbHM6IG9iamVjdCA9IHtcclxuICAgIHBhdHRlcm46ICcnLFxyXG4gICAgbm90aWZpY2F0aW9uUGVuZGluZzogMCxcclxuICAgIGRhdGVPZk1vZGlmaWVkOiAwLFxyXG4gICAgZGVhY3RpdmF0aW9uVmFsdWU6IDAsXHJcbiAgICBzZWxlY3RlZFJlcG9ydDogMCxcclxuICAgIGxpZmVjeWNsZTogJzAwMDAtMDAtMDB+fjAnLFxyXG4gICAgc3RhcnREYXRlOiBNYXRoLmZsb29yKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCksXHJcbiAgICBzdGFydE9uVGhlRGF5OiBNYXRoLmZsb29yKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCksXHJcbiAgICB3aW5kb3c6IDAsXHJcbiAgICBmYWlsZWQ6IDAsXHJcbiAgICB0aW1lOiAnMTE6NTkgcG0nLFxyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgZW52ITogYW55O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBjb25maWc/OiBDb25maWd1cmF0aW9uc1xyXG4gICkge1xyXG4gICAgaWYgKGNvbmZpZykge1xyXG4gICAgICB0aGlzLmVudiA9IGNvbmZpZy5lbnZDb25maWc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0aW1lRnJvbTEyaFRvMjRoKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgY29uc3QgdGltZV9hcnIgPSB2YWx1ZS5zcGxpdCgnICcpO1xyXG4gICAgICBjb25zdCBtZXJpZGlhbiA9IHRpbWVfYXJyWzFdO1xyXG4gICAgICBjb25zdCBocl9taW4gPSB0aW1lX2FyclswXS5zcGxpdCgnOicpLm1hcChOdW1iZXIpO1xyXG4gICAgICBjb25zdCBociA9IGhyX21pblswXTtcclxuICAgICAgY29uc3QgbWluID0gaHJfbWluWzFdO1xyXG5cclxuICAgICAgbGV0IHJldHVybl90aW1lID0gJyc7XHJcblxyXG4gICAgICBpZiAobWVyaWRpYW4/LnRvTG93ZXJDYXNlKCkgPT0gJ3BtJykge1xyXG4gICAgICAgIGlmIChociA9PSAxMikge1xyXG4gICAgICAgICAgcmV0dXJuX3RpbWUgPSAxMiArICc6JyArIG1pbiArICc6MDAnO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaHIgPCAxMikge1xyXG4gICAgICAgICAgcmV0dXJuX3RpbWUgPSAraHIgKyAxMiArICc6JyArIG1pbiArICc6MDAnO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoaHIgPT0gMTIpIHtcclxuICAgICAgICAgIHJldHVybl90aW1lID0gJzAwOicgKyBtaW4gKyAnOjAwJztcclxuICAgICAgICB9IGVsc2UgaWYgKGhyIDwgMTIpIHtcclxuICAgICAgICAgIHJldHVybl90aW1lID0gaHIgKyAnOicgKyBtaW4gKyAnOjAwJztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiByZXR1cm5fdGltZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0aW1lSW4xMih2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodmFsdWUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGxldCBocjtcclxuICAgICAgbGV0IG1pbjtcclxuICAgICAgbGV0IG1lcmlkaWFuO1xyXG4gICAgICBpZiAodmFsdWUuc3BsaXQoJzonKVswXSA+PSAxMikge1xyXG4gICAgICAgIGhyID0gdmFsdWUuc3BsaXQoJzonKVswXSA9PT0gJzEyJyA/IDEyIDogdmFsdWUuc3BsaXQoJzonKVswXSAtIDEyO1xyXG4gICAgICAgIG1pbiA9IHZhbHVlLnNwbGl0KCc6JylbMV07XHJcbiAgICAgICAgaWYgKG1pbi5sZW5ndGggPCAyKSB7XHJcbiAgICAgICAgICBtaW4gPSAnMCcgKyBtaW47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1lcmlkaWFuID0gJ3BtJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBociA9IHZhbHVlLnNwbGl0KCc6JylbMF0gPT0gJzAwJyA/IDEyIDogdmFsdWUuc3BsaXQoJzonKVswXTtcclxuICAgICAgICBtaW4gPSB2YWx1ZS5zcGxpdCgnOicpWzFdO1xyXG4gICAgICAgIGlmIChtaW4ubGVuZ3RoIDwgMikge1xyXG4gICAgICAgICAgbWluID0gJzAnICsgbWluO1xyXG4gICAgICAgIH1cclxuICAgICAgICBtZXJpZGlhbiA9ICdhbSc7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGhyICsgJzonICsgbWluICsgJyAnICsgbWVyaWRpYW47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnJhbWV3b3JrU3RhcnREYXRlKHJvdzogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZygncm93Li4uLicsIHJvdyk7XHJcbiAgICBsZXQgY2FsY3VsYXRlZERheTogbnVtYmVyID0gMDtcclxuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKHBhcnNlSW50KHJvdy5zdGFydF9kYXRlKSAqIDEwMDApLmdldERheSgpO1xyXG4gICAgY29uc3QgZ2V0RGF0ZSA9IG5ldyBEYXRlKHBhcnNlSW50KHJvdy5zdGFydF9kYXRlKSAqIDEwMDApLmdldERhdGUoKTtcclxuICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKS5nZXREYXkoKTtcclxuICAgIGNvbnN0IHN0YXJ0TW9udGggPSBuZXcgRGF0ZShwYXJzZUludChyb3cuc3RhcnRfZGF0ZSkgKiAxMDAwKS5nZXRNb250aCgpO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgcGFyc2VJbnQocm93LnN0YXJ0X2RhdGUpIDwgRGF0ZS5ub3coKSAvIDEwMDAgJiZcclxuICAgICAgKHJvdy5mcmVxdWVuY3lfdGVtcGxhdGUgPT09ICdldmVyeSB3ZWVrJyB8fFxyXG4gICAgICAgIHJvdy5mcmVxdWVuY3lfdGVtcGxhdGUgPT09ICdldmVyeSAyIHdlZWtzJyB8fFxyXG4gICAgICAgIHJvdy5mcmVxdWVuY3lfdGVtcGxhdGUgPT09ICdldmVyeSAzIHdlZWtzJylcclxuICAgICkge1xyXG4gICAgICBsZXQgZGF5c1RvQmVBZGRlZCA9IDA7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNzsgaSsrKSB7XHJcbiAgICAgICAgaWYgKChjdXJyZW50RGF0ZSArIGkpICUgNyA9PT0gc3RhcnREYXRlKSB7XHJcbiAgICAgICAgICBkYXlzVG9CZUFkZGVkID0gaTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBjb25zdCB0aW1lc3RhbXBUb0JlQWRkZWQgPSBkYXlzVG9CZUFkZGVkICogMjQgKiA2MCAqIDYwICogMTAwMDtcclxuICAgICAgY2FsY3VsYXRlZERheSA9IG5ldyBEYXRlKFxyXG4gICAgICAgIG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgdGltZXN0YW1wVG9CZUFkZGVkXHJcbiAgICAgICkuZ2V0VGltZSgpO1xyXG4gICAgICBjb25zb2xlLmxvZygnY2FsY3VsYXRlZERheSAxJywgY2FsY3VsYXRlZERheSk7XHJcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWxpbmUtbGVuZ3RoXHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICBwYXJzZUludChyb3cuc3RhcnRfZGF0ZSkgPCBEYXRlLm5vdygpIC8gMTAwMCAmJlxyXG4gICAgICAhKFxyXG4gICAgICAgIHJvdy5mcmVxdWVuY3lfdGVtcGxhdGUgPT09ICdldmVyeSB3ZWVrJyB8fFxyXG4gICAgICAgIHJvdy5mcmVxdWVuY3lfdGVtcGxhdGUgPT09ICdldmVyeSAyIHdlZWtzJyB8fFxyXG4gICAgICAgIHJvdy5mcmVxdWVuY3lfdGVtcGxhdGUgPT09ICdldmVyeSAzIHdlZWtzJ1xyXG4gICAgICApICYmXHJcbiAgICAgIHJvdy5mcmVxdWVuY3lfdGVtcGxhdGUgIT09ICdldmVyeSBkYXknXHJcbiAgICApIHtcclxuICAgICAgY29uc3QgbW9tZW50VW5peCA9IG1vbWVudChcclxuICAgICAgICBnZXREYXRlICtcclxuICAgICAgICAgICctJyArXHJcbiAgICAgICAgICAobmV3IERhdGUoKS5nZXRNb250aCgpICsgMSkgK1xyXG4gICAgICAgICAgJy0nICtcclxuICAgICAgICAgIG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSArXHJcbiAgICAgICAgICAnIDAwOjAwJyxcclxuICAgICAgICAnREQtTU0tWVlZWSBISDptbSdcclxuICAgICAgKS51bml4KCk7XHJcbiAgICAgIGNhbGN1bGF0ZWREYXkgPSBtb21lbnRVbml4ICogMTAwMDtcclxuICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgJ2dldERhdGUnLFxyXG4gICAgICAgIGdldERhdGUsXHJcbiAgICAgICAgbmV3IERhdGUoKS5nZXRNb250aCgpICsgMiArICctJyArIG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSxcclxuICAgICAgICBtb21lbnRVbml4XHJcbiAgICAgICk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdjYWxjdWxhdGVkRGF5IDInLCBjYWxjdWxhdGVkRGF5KTtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIHJvdy5mcmVxdWVuY3lfdGVtcGxhdGUgPT09ICdldmVyeSBkYXknICYmXHJcbiAgICAgIHBhcnNlSW50KHJvdy5zdGFydF9kYXRlKSA8IERhdGUubm93KCkgLyAxMDAwXHJcbiAgICApIHtcclxuICAgICAgY2FsY3VsYXRlZERheSA9IERhdGUubm93KCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdjYWxjdWxhdGVkRGF5IDMnLCBjYWxjdWxhdGVkRGF5KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNhbGN1bGF0ZWREYXkgPSBwYXJzZUludChyb3cuc3RhcnRfZGF0ZSkgKiAxMDAwO1xyXG4gICAgICBjb25zb2xlLmxvZygnY2FsY3VsYXRlZERheSA0JywgY2FsY3VsYXRlZERheSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY2FsY3VsYXRlZERheSAvIDEwMDA7XHJcbiAgfVxyXG5cclxuICBmcmFtZXdvcmtGcmVxdWVuY3koZnJlcXVlbmN5OiBhbnksIHN0YXJ0X2RhdGU6IGFueSkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc29sZS5sb2coJ2ZyZXF1ZW5jeScsIGZyZXF1ZW5jeSwgc3RhcnRfZGF0ZSk7XHJcbiAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKHN0YXJ0X2RhdGUgKiAxMDAwKTtcclxuICAgICAgY29uc29sZS5sb2coJ3N0cmF0IGRhdGUnLCBzdGFydF9kYXRlLCBzdGFydERhdGUpO1xyXG4gICAgICBjb25zdCBmaXJzdEhhbGZNb250aCA9IFsnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnXTtcclxuICAgICAgY29uc3Qgc2Vjb25kSGFsZk1vbnRoID0gWyc3JywgJzgnLCAnOScsICcxMCcsICcxMScsICcxMiddO1xyXG4gICAgICBjb25zdCBnZXREYXlEYXRhID0gc3RhcnREYXRlLmdldERheSgpID09PSAwID8gNyA6IHN0YXJ0RGF0ZS5nZXREYXkoKTtcclxuICAgICAgY29uc3QgbW9udGggPSBzdGFydERhdGUuZ2V0TW9udGgoKTtcclxuICAgICAgbGV0IHF1YXJ0ZXJQYXR0ZXJuID0gJ34xLDQsNywxMH4wJztcclxuICAgICAgc3dpdGNoIChtb250aCkge1xyXG4gICAgICAgIGNhc2UgMDpcclxuICAgICAgICBjYXNlIDM6XHJcbiAgICAgICAgY2FzZSA2OlxyXG4gICAgICAgIGNhc2UgOTpcclxuICAgICAgICAgIHF1YXJ0ZXJQYXR0ZXJuID0gJ34xLDQsNywxMH4wJztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMTpcclxuICAgICAgICBjYXNlIDQ6XHJcbiAgICAgICAgY2FzZSA3OlxyXG4gICAgICAgIGNhc2UgMTA6XHJcbiAgICAgICAgICBxdWFydGVyUGF0dGVybiA9ICd+Miw1LDgsMTF+MCc7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIDI6XHJcbiAgICAgICAgY2FzZSA1OlxyXG4gICAgICAgIGNhc2UgODpcclxuICAgICAgICBjYXNlIDExOlxyXG4gICAgICAgICAgcXVhcnRlclBhdHRlcm4gPSAnfjMsNiw5LDEyfjAnO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgLy8gXTtcclxuICAgICAgbGV0IGZyZXF1ZW5jeV9wYXR0ZXJuO1xyXG5cclxuICAgICAgZnJlcXVlbmN5ID0gZnJlcXVlbmN5LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIGxldCBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMDtcclxuICAgICAgLy8gQCA9PiBkYXkgKDEgdG8gNylcclxuICAgICAgLy8gIyA9PiBtb250aCAoMSB0byAxMilcclxuICAgICAgLy8gPyA9PiBtb250aCAlIDIgPT0gMCA/IFwiMiw0LDYsOCwxMCwxMlwiIDogXCIxLDMsNSw3LDksMTFcIlxyXG5cclxuICAgICAgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IHdlZWsnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnMn4nICsgZ2V0RGF5RGF0YSArICd+MH4xJztcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTA7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnb25lIHRpbWUnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPVxyXG4gICAgICAgICAgJzB+JyArXHJcbiAgICAgICAgICBzdGFydERhdGUuZ2V0RnVsbFllYXIoKSArXHJcbiAgICAgICAgICAnficgK1xyXG4gICAgICAgICAgKHN0YXJ0RGF0ZS5nZXRNb250aCgpICsgMSkgK1xyXG4gICAgICAgICAgJ34nICtcclxuICAgICAgICAgIHN0YXJ0RGF0ZS5nZXREYXRlKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnZXZlcnkgZGF5Jykge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID0gJzF+MH4wfjEnO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxNTtcclxuICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3kgPT09ICdldmVyeSBhbHRlcm5hdGUgZGF5Jykge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID0gJzF+MH4wfjInO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxNTtcclxuICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3kgPT09ICdldmVyeSAxMCBkYXlzJykge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID0gJzF+MH4wfjEwJztcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTU7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnZXZlcnkgMiB3ZWVrcycpIHtcclxuICAgICAgICBmcmVxdWVuY3lfcGF0dGVybiA9ICcyficgKyBnZXREYXlEYXRhICsgJ34wfjInO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxMDtcclxuICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3kgPT09ICdldmVyeSBmb3J0bmlnaHQnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnMX4nICsgZ2V0RGF5RGF0YSArICd+MH4xNCc7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDE1O1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IDMgd2Vla3MnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnMn4nICsgZ2V0RGF5RGF0YSArICd+MH4zJztcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTA7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnZXZlcnkgbW9udGgnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPVxyXG4gICAgICAgICAgJzN+JyArIHN0YXJ0RGF0ZS5nZXREYXRlKCkgKyAnfjEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyfjAnO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxMDtcclxuICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3kgPT09ICdldmVyeSA0NSBkYXlzJykge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID0gJzF+MH4wfjQ1JztcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTU7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnZXZlcnkgYWx0ZXJuYXRlIG1vbnRoJykge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID1cclxuICAgICAgICAgICczficgK1xyXG4gICAgICAgICAgc3RhcnREYXRlLmdldERhdGUoKSArXHJcbiAgICAgICAgICAnficgK1xyXG4gICAgICAgICAgKChzdGFydERhdGUuZ2V0TW9udGgoKSArIDEpICUgMiA9PSAwXHJcbiAgICAgICAgICAgID8gJzIsNCw2LDgsMTAsMTInXHJcbiAgICAgICAgICAgIDogJzEsMyw1LDcsOSwxMScpICtcclxuICAgICAgICAgICd+MCc7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDEwO1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IHF1YXJ0ZXInKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnN34nICsgc3RhcnREYXRlLmdldERhdGUoKSArIHF1YXJ0ZXJQYXR0ZXJuO1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IDEyMCBkYXlzJykge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID0gJzF+MH4wfjEyMCc7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnaGFsZiB5ZWFybHknKSB7XHJcbiAgICAgICAgY29uc3QgaW5kZXgxID0gZmlyc3RIYWxmTW9udGguaW5kZXhPZihcclxuICAgICAgICAgIChzdGFydERhdGUuZ2V0TW9udGgoKSArIDEpLnRvU3RyaW5nKClcclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IGluZGV4MiA9IHNlY29uZEhhbGZNb250aC5pbmRleE9mKFxyXG4gICAgICAgICAgKHN0YXJ0RGF0ZS5nZXRNb250aCgpICsgMSkudG9TdHJpbmcoKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgcGF0dGVybiA9XHJcbiAgICAgICAgICBpbmRleDEgPiAtMVxyXG4gICAgICAgICAgICA/ICd+JyArXHJcbiAgICAgICAgICAgICAgZmlyc3RIYWxmTW9udGhbaW5kZXgxXSArXHJcbiAgICAgICAgICAgICAgJywnICtcclxuICAgICAgICAgICAgICBzZWNvbmRIYWxmTW9udGhbaW5kZXgxXSArXHJcbiAgICAgICAgICAgICAgJ34wJ1xyXG4gICAgICAgICAgICA6ICd+JyArXHJcbiAgICAgICAgICAgICAgZmlyc3RIYWxmTW9udGhbaW5kZXgyXSArXHJcbiAgICAgICAgICAgICAgJywnICtcclxuICAgICAgICAgICAgICBzZWNvbmRIYWxmTW9udGhbaW5kZXgyXSArXHJcbiAgICAgICAgICAgICAgJ34wJztcclxuICAgICAgICBmcmVxdWVuY3lfcGF0dGVybiA9ICczficgKyBzdGFydERhdGUuZ2V0RGF0ZSgpICsgcGF0dGVybjtcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTA7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAneWVhcmx5Jykge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID1cclxuICAgICAgICAgICc0ficgKyBzdGFydERhdGUuZ2V0RGF0ZSgpICsgJ34nICsgKHN0YXJ0RGF0ZS5nZXRNb250aCgpICsgMSkgKyAnfjEnO1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IDIgeWVhcnMnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPVxyXG4gICAgICAgICAgJzR+JyArIHN0YXJ0RGF0ZS5nZXREYXRlKCkgKyAnficgKyAoc3RhcnREYXRlLmdldE1vbnRoKCkgKyAxKSArICd+Mic7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnZXZlcnkgMyB5ZWFycycpIHtcclxuICAgICAgICBmcmVxdWVuY3lfcGF0dGVybiA9XHJcbiAgICAgICAgICAnNH4nICsgc3RhcnREYXRlLmdldERhdGUoKSArICd+JyArIChzdGFydERhdGUuZ2V0TW9udGgoKSArIDEpICsgJ34zJztcclxuICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3kgPT09ICdldmVyeSA0IHllYXJzJykge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID1cclxuICAgICAgICAgICc0ficgKyBzdGFydERhdGUuZ2V0RGF0ZSgpICsgJ34nICsgKHN0YXJ0RGF0ZS5nZXRNb250aCgpICsgMSkgKyAnfjQnO1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IDUgeWVhcnMnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPVxyXG4gICAgICAgICAgJzR+JyArIHN0YXJ0RGF0ZS5nZXREYXRlKCkgKyAnficgKyAoc3RhcnREYXRlLmdldE1vbnRoKCkgKyAxKSArICd+NSc7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnZXZlcnkgMTAgeWVhcnMnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPVxyXG4gICAgICAgICAgJzR+JyArIHN0YXJ0RGF0ZS5nZXREYXRlKCkgKyAnficgKyAoc3RhcnREYXRlLmdldE1vbnRoKCkgKyAxKSArICd+MTAnO1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ3RvIGJlIGRlY2lkZWQgbGF0ZXInKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmcmVxdWVuY3lfcGF0dGVybiA9ICcnO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIHRoaXMuZWRpdERhdGEuZnJlcXVlbmN5X2RldGFpbHMgPSBmcmVxdWVuY3lfcGF0dGVybjtcclxuXHJcbiAgICAgIHJldHVybiB7IGZyZXF1ZW5jeV9wYXR0ZXJuLCBjb250aW51b3VzX2ZhaWxlZF9kYXlzIH07XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2hvcnRIYW5kX2ZyZXFDYWwoZnJlcXVlbmN5OiBhbnksIGRheTogYW55LCBtb250aDogYW55LCB5ZWFyPzogYW55KSB7XHJcbiAgICBjb25zdCBtb250aE5hbWVzID0gW1xyXG4gICAgICB7IHZhbHVlOiAxLCBtb250aDogJ0phbicgfSxcclxuICAgICAgeyB2YWx1ZTogMiwgbW9udGg6ICdGZWInIH0sXHJcbiAgICAgIHsgdmFsdWU6IDMsIG1vbnRoOiAnTWFyJyB9LFxyXG4gICAgICB7IHZhbHVlOiA0LCBtb250aDogJ0FwcicgfSxcclxuICAgICAgeyB2YWx1ZTogNSwgbW9udGg6ICdNYXknIH0sXHJcbiAgICAgIHsgdmFsdWU6IDYsIG1vbnRoOiAnSnVuJyB9LFxyXG4gICAgICB7IHZhbHVlOiA3LCBtb250aDogJ0p1bCcgfSxcclxuICAgICAgeyB2YWx1ZTogOCwgbW9udGg6ICdBdWcnIH0sXHJcbiAgICAgIHsgdmFsdWU6IDksIG1vbnRoOiAnU2VwJyB9LFxyXG4gICAgICB7IHZhbHVlOiAxMCwgbW9udGg6ICdPY3QnIH0sXHJcbiAgICAgIHsgdmFsdWU6IDExLCBtb250aDogJ05vdicgfSxcclxuICAgICAgeyB2YWx1ZTogMTIsIG1vbnRoOiAnRGVjJyB9LFxyXG4gICAgXTtcclxuICAgIGxldCBmcmVxdWVuY3lfZGV0YWlscztcclxuICAgIGxldCBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMDtcclxuICAgIGNvbnN0IGRhdGVfdmFsdWUgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICAgIGRhdGVfdmFsdWUuc2V0TW9udGgoXHJcbiAgICAgIHR5cGVvZiBtb250aCAhPT0gJ251bWJlcidcclxuICAgICAgICA/IG1vbnRoTmFtZXMuZmlsdGVyKCh4KSA9PiB4Lm1vbnRoID09PSBtb250aD8uc3Vic3RyaW5nKDAsIDMpKVswXVxyXG4gICAgICAgICAgICA/LnZhbHVlIC0gMVxyXG4gICAgICAgIDogbW9udGhcclxuICAgICk7XHJcbiAgICBpZiAoIXllYXIpIHtcclxuICAgICAgZGF0ZV92YWx1ZS5zZXRGdWxsWWVhcigyMCArIG1vbnRoLnNwbGl0KFwiJ1wiKVsxXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkYXRlX3ZhbHVlLnNldEZ1bGxZZWFyKHllYXIpO1xyXG4gICAgfVxyXG4gICAgZGF0ZV92YWx1ZS5zZXREYXRlKGRheSk7XHJcbiAgICBsZXQgcXVhcnRlclBhdHRlcm4gPSAnfjEsNCw3LDEwfjAnO1xyXG4gICAgY29uc3QgZmlyc3RIYWxmTW9udGggPSBbJzEnLCAnMicsICczJywgJzQnLCAnNScsICc2J107XHJcbiAgICBjb25zdCBzZWNvbmRIYWxmTW9udGggPSBbJzcnLCAnOCcsICc5JywgJzEwJywgJzExJywgJzEyJ107XHJcbiAgICBmcmVxdWVuY3kgPSBmcmVxdWVuY3kudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICBzd2l0Y2ggKGRhdGVfdmFsdWUuZ2V0TW9udGgoKSkge1xyXG4gICAgICBjYXNlIDA6XHJcbiAgICAgIGNhc2UgMzpcclxuICAgICAgY2FzZSA2OlxyXG4gICAgICBjYXNlIDk6XHJcbiAgICAgICAgcXVhcnRlclBhdHRlcm4gPSAnfjEsNCw3LDEwfjAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDE6XHJcbiAgICAgIGNhc2UgNDpcclxuICAgICAgY2FzZSA3OlxyXG4gICAgICBjYXNlIDEwOlxyXG4gICAgICAgIHF1YXJ0ZXJQYXR0ZXJuID0gJ34yLDUsOCwxMX4wJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAyOlxyXG4gICAgICBjYXNlIDU6XHJcbiAgICAgIGNhc2UgODpcclxuICAgICAgY2FzZSAxMTpcclxuICAgICAgICBxdWFydGVyUGF0dGVybiA9ICd+Myw2LDksMTJ+MCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICBjb25zdCBnZXREYXkgPSBkYXRlX3ZhbHVlLmdldERheSgpID09PSAwID8gNyA6IGRhdGVfdmFsdWUuZ2V0RGF5KCk7XHJcbiAgICBzd2l0Y2ggKGZyZXF1ZW5jeSkge1xyXG4gICAgICBjYXNlICdldmVyeSB3ZWVrJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICcyficgKyBnZXREYXkgKyAnfjB+MSc7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDEwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdvbmUgdGltZSc6XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPVxyXG4gICAgICAgICAgJzB+JyArXHJcbiAgICAgICAgICAnJyArXHJcbiAgICAgICAgICBkYXRlX3ZhbHVlLmdldEZ1bGxZZWFyKCkgK1xyXG4gICAgICAgICAgJ34nICtcclxuICAgICAgICAgIChkYXRlX3ZhbHVlLmdldE1vbnRoKCkgKyAxKSArXHJcbiAgICAgICAgICAnficgK1xyXG4gICAgICAgICAgZGF0ZV92YWx1ZS5nZXREYXRlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2V2ZXJ5IGRheSc6XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnMX4wfjB+MSc7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDE1O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdldmVyeSBhbHRlcm5hdGUgZGF5JzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICcxfjB+MH4yJztcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2V2ZXJ5IDEwIGRheXMnOlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzF+MH4wfjEwJztcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2V2ZXJ5IDIgd2Vla3MnOlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzJ+JyArIGdldERheSArICd+MH4yJztcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2V2ZXJ5IGZvcnRuaWdodCc6XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnMX4nICsgZ2V0RGF5ICsgJ34wfjE0JztcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2V2ZXJ5IDMgd2Vla3MnOlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzJ+JyArIGdldERheSArICd+MH4zJztcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2V2ZXJ5IG1vbnRoJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9XHJcbiAgICAgICAgICAnM34nICsgZGF0ZV92YWx1ZS5nZXREYXRlKCkgKyAnfjEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyfjAnO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxMDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZXZlcnkgNDUgZGF5cyc6XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnMX4wfjB+NDUnO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxNTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZXZlcnkgYWx0ZXJuYXRlIG1vbnRoJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9XHJcbiAgICAgICAgICAnM34nICtcclxuICAgICAgICAgIGRhdGVfdmFsdWUuZ2V0RGF0ZSgpICtcclxuICAgICAgICAgICd+JyArXHJcbiAgICAgICAgICAoKGRhdGVfdmFsdWUuZ2V0TW9udGgoKSArIDEpICUgMiA9PT0gMFxyXG4gICAgICAgICAgICA/ICcyLDQsNiw4LDEwLDEyJ1xyXG4gICAgICAgICAgICA6ICcxLDMsNSw3LDksMTEnKSArXHJcbiAgICAgICAgICAnfjAnO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxMDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZXZlcnkgcXVhcnRlcic6XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnN34nICsgZGF0ZV92YWx1ZS5nZXREYXRlKCkgKyBxdWFydGVyUGF0dGVybjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZXZlcnkgMTIwIGRheXMnOlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzF+MH4wfjEyMCc7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDE1O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdoYWxmIHllYXJseSc6XHJcbiAgICAgICAgY29uc3QgaW5kZXgxID0gZmlyc3RIYWxmTW9udGguaW5kZXhPZihcclxuICAgICAgICAgIChkYXRlX3ZhbHVlLmdldE1vbnRoKCkgKyAxKS50b1N0cmluZygpXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBpbmRleDIgPSBzZWNvbmRIYWxmTW9udGguaW5kZXhPZihcclxuICAgICAgICAgIChkYXRlX3ZhbHVlLmdldE1vbnRoKCkgKyAxKS50b1N0cmluZygpXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBwYXR0ZXJuID1cclxuICAgICAgICAgIGluZGV4MSA+IC0xXHJcbiAgICAgICAgICAgID8gJ34nICtcclxuICAgICAgICAgICAgICBmaXJzdEhhbGZNb250aFtpbmRleDFdICtcclxuICAgICAgICAgICAgICAnLCcgK1xyXG4gICAgICAgICAgICAgIHNlY29uZEhhbGZNb250aFtpbmRleDFdICtcclxuICAgICAgICAgICAgICAnfjAnXHJcbiAgICAgICAgICAgIDogJ34nICtcclxuICAgICAgICAgICAgICBmaXJzdEhhbGZNb250aFtpbmRleDJdICtcclxuICAgICAgICAgICAgICAnLCcgK1xyXG4gICAgICAgICAgICAgIHNlY29uZEhhbGZNb250aFtpbmRleDJdICtcclxuICAgICAgICAgICAgICAnfjAnO1xyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzN+JyArIGRhdGVfdmFsdWUuZ2V0RGF0ZSgpICsgcGF0dGVybjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnYW5udWFsJzpcclxuICAgICAgY2FzZSAneWVhcmx5JzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9XHJcbiAgICAgICAgICAnNH4nICtcclxuICAgICAgICAgIGRhdGVfdmFsdWUuZ2V0RGF0ZSgpICtcclxuICAgICAgICAgICd+JyArXHJcbiAgICAgICAgICAoZGF0ZV92YWx1ZS5nZXRNb250aCgpICsgMSkgK1xyXG4gICAgICAgICAgJ34xJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZXZlcnkgMiB5ZWFycyc6XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPVxyXG4gICAgICAgICAgJzR+JyArXHJcbiAgICAgICAgICBkYXRlX3ZhbHVlLmdldERhdGUoKSArXHJcbiAgICAgICAgICAnficgK1xyXG4gICAgICAgICAgKGRhdGVfdmFsdWUuZ2V0TW9udGgoKSArIDEpICtcclxuICAgICAgICAgICd+Mic7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2V2ZXJ5IDMgeWVhcnMnOlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID1cclxuICAgICAgICAgICc0ficgK1xyXG4gICAgICAgICAgZGF0ZV92YWx1ZS5nZXREYXRlKCkgK1xyXG4gICAgICAgICAgJ34nICtcclxuICAgICAgICAgIChkYXRlX3ZhbHVlLmdldE1vbnRoKCkgKyAxKSArXHJcbiAgICAgICAgICAnfjMnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdldmVyeSA0IHllYXJzJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9XHJcbiAgICAgICAgICAnNH4nICtcclxuICAgICAgICAgIGRhdGVfdmFsdWUuZ2V0RGF0ZSgpICtcclxuICAgICAgICAgICd+JyArXHJcbiAgICAgICAgICAoZGF0ZV92YWx1ZS5nZXRNb250aCgpICsgMSkgK1xyXG4gICAgICAgICAgJ340JztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZXZlcnkgNSB5ZWFycyc6XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPVxyXG4gICAgICAgICAgJzR+JyArXHJcbiAgICAgICAgICBkYXRlX3ZhbHVlLmdldERhdGUoKSArXHJcbiAgICAgICAgICAnficgK1xyXG4gICAgICAgICAgKGRhdGVfdmFsdWUuZ2V0TW9udGgoKSArIDEpICtcclxuICAgICAgICAgICd+NSc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2V2ZXJ5IDEwIHllYXJzJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9XHJcbiAgICAgICAgICAnNH4nICtcclxuICAgICAgICAgIGRhdGVfdmFsdWUuZ2V0RGF0ZSgpICtcclxuICAgICAgICAgICd+JyArXHJcbiAgICAgICAgICAoZGF0ZV92YWx1ZS5nZXRNb250aCgpICsgMSkgK1xyXG4gICAgICAgICAgJ34xMCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ29uZ29pbmcnOlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzEwfjB+MH4wJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndG8gYmUgZGVjaWRlZCBsYXRlcic6XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnNX4wfjB+MCc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBwYXR0ZXJuOiBmcmVxdWVuY3lfZGV0YWlscyxcclxuICAgICAgY29udGludW91c19mYWlsZWRfZGF5czogY29udGludW91c19mYWlsZWRfZGF5cyxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXRPbkNvbXBsZXRpb25PZlJlc3BvbnNpYmlsaXR5KCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnlbXT4odGhpcy5lbnYuY29tcGxpYW5jZUdldCArICdyZXBvcnRzL29uQ29tcGxldGlvbk9mUmVwb3J0cycsIHtcclxuICAgICAgICBoZWFkZXJzLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VUaW1lWm9uZShkYXRlOiBhbnkpIHtcclxuICAgIGlmICh0eXBlb2YgZGF0ZSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgZGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaW52RGF0ZSA9IG5ldyBEYXRlKFxyXG4gICAgICBkYXRlLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHtcclxuICAgICAgICB0aW1lWm9uZTogdGhpcy5hdXRoU2VydmljZT8udXNlckRldGFpbHM/LnRpbWV6b25lLFxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICAgIHJldHVybiBpbnZEYXRlO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmVzcG9uc2liaWxpdHlMaXN0KHBheWxvYWQ6IGFueSkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihcclxuICAgICAgICB0aGlzLmVudi5yZXNwb25zaWJpbGl0eVBvc3QgKyAnbWFuYWdlX3Jlc3BvbnNpYmlsaXRpZXNfcmVwb3J0cycsXHJcbiAgICAgICAgcGF5bG9hZCxcclxuICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHJldHJ5KDEpKTtcclxuICB9XHJcblxyXG4gIGdldFJlc3BvbnNpYmlsaXRpZXNDb3VudChwYXlsb2FkOiBhbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih0aGlzLmVudi5yZXNwb25zaWJpbGl0eVBvc3QgKyAnbWFuYWdlX3Jlc3BvbnNpYmlsaXRpZXNfcmVwb3J0c19jb3VudCcsIHBheWxvYWQsIHsgaGVhZGVycyB9KS5waXBlKHJldHJ5KDEpKTtcclxuICB9XHJcbn1cclxuIl19
|
|
573
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS9mcmVxdWVuY3kuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsT0FBTyxFQUFtQixLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4RCxPQUFPLE1BQU0sTUFBTSxlQUFlLENBQUM7Ozs7O0FBS25DLE1BQU0sT0FBTyxnQkFBZ0I7SUFxRTNCLFlBQ1UsSUFBZ0IsRUFDaEIsV0FBd0IsRUFDcEIsTUFBdUI7UUFGM0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQXRFM0IsZUFBVSxHQUFrQjtZQUNqQyxTQUFTO1lBQ1QsVUFBVTtZQUNWLE9BQU87WUFDUCxPQUFPO1lBQ1AsS0FBSztZQUNMLE1BQU07WUFDTixNQUFNO1lBQ04sUUFBUTtZQUNSLFdBQVc7WUFDWCxTQUFTO1lBQ1QsVUFBVTtZQUNWLFVBQVU7U0FDWCxDQUFDO1FBRUssWUFBTyxHQUFrQjtZQUM5QixRQUFRO1lBQ1IsU0FBUztZQUNULFdBQVc7WUFDWCxVQUFVO1lBQ1YsUUFBUTtZQUNSLFVBQVU7WUFDVixRQUFRO1NBQ1QsQ0FBQyxDQUFDLGdCQUFnQjtRQUVaLG1CQUFjLEdBQWtCO1lBQ3JDLCtCQUErQjtZQUMvQixpQ0FBaUM7WUFDakMsa0NBQWtDO1NBQ25DLENBQUM7UUFFSyxlQUFVLEdBQUc7WUFDbEIsTUFBTSxFQUFFLGFBQWE7WUFDckIsZUFBZSxFQUFFLEtBQUs7U0FDdkIsQ0FBQztRQUVLLGtCQUFhLEdBQUc7WUFD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R0FBRyxpQ0FBaUMsRUFDL0QsT0FBTyxFQUNQLEVBQUUsT0FBTyxFQUFFLENBQ1o7YUFDQSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELHdCQUF3QixDQUFDLE9BQVk7UUFDbkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQ25DLE9BQU8sRUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQ3pDLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsSUFBSSxDQUNILElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEdBQUcsdUNBQXVDLEVBQ3JFLE9BQU8sRUFDUCxFQUFFLE9BQU8sRUFBRSxDQUNaO2FBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7OzZHQXBsQlUsZ0JBQWdCO2lIQUFoQixnQkFBZ0IsY0FGZixNQUFNOzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQXlFSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCByZXRyeSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnMgfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9ucyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQvbW9tZW50JztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGcmVxdWVuY3lTZXJ2aWNlIHtcclxuICBwdWJsaWMgbW9udGhBcnJheTogQXJyYXk8c3RyaW5nPiA9IFtcclxuICAgICdKYW51YXJ5JyxcclxuICAgICdGZWJydWFyeScsXHJcbiAgICAnTWFyY2gnLFxyXG4gICAgJ0FwcmlsJyxcclxuICAgICdNYXknLFxyXG4gICAgJ0p1bmUnLFxyXG4gICAgJ0p1bHknLFxyXG4gICAgJ0F1Z3VzdCcsXHJcbiAgICAnU2VwdGVtYmVyJyxcclxuICAgICdPY3RvYmVyJyxcclxuICAgICdOb3ZlbWJlcicsXHJcbiAgICAnRGVjZW1iZXInLFxyXG4gIF07XHJcblxyXG4gIHB1YmxpYyBkYXlOYW1lOiBBcnJheTxzdHJpbmc+ID0gW1xyXG4gICAgJ01vbmRheScsXHJcbiAgICAnVHVlc2RheScsXHJcbiAgICAnV2VkbmVzZGF5JyxcclxuICAgICdUaHVyc2RheScsXHJcbiAgICAnRnJpZGF5JyxcclxuICAgICdTYXR1cmRheScsXHJcbiAgICAnU3VuZGF5JyxcclxuICBdOyAvLyBmdWxsIGRheSBuYW1lXHJcblxyXG4gIHB1YmxpYyBxdWFydGVybHlNb250aDogQXJyYXk8c3RyaW5nPiA9IFtcclxuICAgICdKYW51YXJ5LCBBcHJpbCwgSnVseSwgT2N0b2JlcicsXHJcbiAgICAnRmVicnVhcnksIE1heSwgQXVndXN0LCBOb3ZlbWJlcicsXHJcbiAgICAnTWFyY2gsIEp1bmUsIFNlcHRlbWJlciwgRGVjZW1iZXInLFxyXG4gIF07XHJcblxyXG4gIHB1YmxpYyBkYXRlQ29uZmlnID0ge1xyXG4gICAgZm9ybWF0OiAnREQgTU1NIFlZWVknLFxyXG4gICAgc2hvd0dvVG9DdXJyZW50OiBmYWxzZSxcclxuICB9O1xyXG5cclxuICBwdWJsaWMgZnJlcXVlbmN5SW5mbyA9IHtcclxuICAgIHBsYWNlaG9sZGVyOiAnJyxcclxuICAgIHBhdHRlcm46ICcnLFxyXG4gICAgY2FzZTogJycsXHJcbiAgICBmYWlsZWRBZnRlcjogMCxcclxuICAgIHdpbmRvdzogMCxcclxuICAgIHRpbWVJbjEyaHI6ICcnLFxyXG4gICAgdGltZUluMjRIcjogJycsXHJcbiAgICBsaWZlY3ljbGVEZXRhaWxzOiAnMDAwMC0wMC0wMH5+MCcsXHJcbiAgICBzdGFydEZyb206IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApLFxyXG4gICAgcmVwb3J0SWQ6IDAsXHJcbiAgICBmYWlsZWRfdGltZV91dGM6IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApLFxyXG4gICAgY29udGludW91c19mYWlsZWRfZGF5czogMCxcclxuICAgIGRhdGVPZk1vZGlmaWVkOiAwLFxyXG4gICAgc3RhcnREYXRlOiAnJyxcclxuICB9O1xyXG5cclxuICBwdWJsaWMgZnJlcXVlbmN5RGV0YWlsczogb2JqZWN0ID0ge1xyXG4gICAgcGF0dGVybjogJycsXHJcbiAgICBub3RpZmljYXRpb25QZW5kaW5nOiAwLFxyXG4gICAgZGF0ZU9mTW9kaWZpZWQ6IDAsXHJcbiAgICBkZWFjdGl2YXRpb25WYWx1ZTogMCxcclxuICAgIHNlbGVjdGVkUmVwb3J0OiAwLFxyXG4gICAgbGlmZWN5Y2xlOiAnMDAwMC0wMC0wMH5+MCcsXHJcbiAgICBzdGFydERhdGU6IE1hdGguZmxvb3IobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwKSxcclxuICAgIHN0YXJ0T25UaGVEYXk6IE1hdGguZmxvb3IobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwKSxcclxuICAgIHdpbmRvdzogMCxcclxuICAgIGZhaWxlZDogMCxcclxuICAgIHRpbWU6ICcxMTo1OSBwbScsXHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBlbnYhOiBhbnk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIGNvbmZpZz86IENvbmZpZ3VyYXRpb25zXHJcbiAgKSB7XHJcbiAgICBpZiAoY29uZmlnKSB7XHJcbiAgICAgIHRoaXMuZW52ID0gY29uZmlnLmVudkNvbmZpZztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRpbWVGcm9tMTJoVG8yNGgodmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBjb25zdCB0aW1lX2FyciA9IHZhbHVlLnNwbGl0KCcgJyk7XHJcbiAgICAgIGNvbnN0IG1lcmlkaWFuID0gdGltZV9hcnJbMV07XHJcbiAgICAgIGNvbnN0IGhyX21pbiA9IHRpbWVfYXJyWzBdLnNwbGl0KCc6JykubWFwKE51bWJlcik7XHJcbiAgICAgIGNvbnN0IGhyID0gaHJfbWluWzBdO1xyXG4gICAgICBjb25zdCBtaW4gPSBocl9taW5bMV07XHJcblxyXG4gICAgICBsZXQgcmV0dXJuX3RpbWUgPSAnJztcclxuXHJcbiAgICAgIGlmIChtZXJpZGlhbj8udG9Mb3dlckNhc2UoKSA9PSAncG0nKSB7XHJcbiAgICAgICAgaWYgKGhyID09IDEyKSB7XHJcbiAgICAgICAgICByZXR1cm5fdGltZSA9IDEyICsgJzonICsgbWluICsgJzowMCc7XHJcbiAgICAgICAgfSBlbHNlIGlmIChociA8IDEyKSB7XHJcbiAgICAgICAgICByZXR1cm5fdGltZSA9ICtociArIDEyICsgJzonICsgbWluICsgJzowMCc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChociA9PSAxMikge1xyXG4gICAgICAgICAgcmV0dXJuX3RpbWUgPSAnMDA6JyArIG1pbiArICc6MDAnO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaHIgPCAxMikge1xyXG4gICAgICAgICAgcmV0dXJuX3RpbWUgPSBociArICc6JyArIG1pbiArICc6MDAnO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHJldHVybl90aW1lO1xyXG4gICAgfSBlbHNlIHtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRpbWVJbjEyKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgbGV0IGhyO1xyXG4gICAgICBsZXQgbWluO1xyXG4gICAgICBsZXQgbWVyaWRpYW47XHJcbiAgICAgIGlmICh2YWx1ZS5zcGxpdCgnOicpWzBdID49IDEyKSB7XHJcbiAgICAgICAgaHIgPSB2YWx1ZS5zcGxpdCgnOicpWzBdID09PSAnMTInID8gMTIgOiB2YWx1ZS5zcGxpdCgnOicpWzBdIC0gMTI7XHJcbiAgICAgICAgbWluID0gdmFsdWUuc3BsaXQoJzonKVsxXTtcclxuICAgICAgICBpZiAobWluLmxlbmd0aCA8IDIpIHtcclxuICAgICAgICAgIG1pbiA9ICcwJyArIG1pbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbWVyaWRpYW4gPSAncG0nO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGhyID0gdmFsdWUuc3BsaXQoJzonKVswXSA9PSAnMDAnID8gMTIgOiB2YWx1ZS5zcGxpdCgnOicpWzBdO1xyXG4gICAgICAgIG1pbiA9IHZhbHVlLnNwbGl0KCc6JylbMV07XHJcbiAgICAgICAgaWYgKG1pbi5sZW5ndGggPCAyKSB7XHJcbiAgICAgICAgICBtaW4gPSAnMCcgKyBtaW47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1lcmlkaWFuID0gJ2FtJztcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gaHIgKyAnOicgKyBtaW4gKyAnICcgKyBtZXJpZGlhbjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmcmFtZXdvcmtTdGFydERhdGUocm93OiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCdyb3cuLi4uJywgcm93KTtcclxuICAgIGxldCBjYWxjdWxhdGVkRGF5OiBudW1iZXIgPSAwO1xyXG4gICAgY29uc3Qgc3RhcnREYXRlID0gbmV3IERhdGUocGFyc2VJbnQocm93LnN0YXJ0X2RhdGUpICogMTAwMCkuZ2V0RGF5KCk7XHJcbiAgICBjb25zdCBnZXREYXRlID0gbmV3IERhdGUocGFyc2VJbnQocm93LnN0YXJ0X2RhdGUpICogMTAwMCkuZ2V0RGF0ZSgpO1xyXG4gICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpLmdldERheSgpO1xyXG4gICAgY29uc3Qgc3RhcnRNb250aCA9IG5ldyBEYXRlKHBhcnNlSW50KHJvdy5zdGFydF9kYXRlKSAqIDEwMDApLmdldE1vbnRoKCk7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICBwYXJzZUludChyb3cuc3RhcnRfZGF0ZSkgPCBEYXRlLm5vdygpIC8gMTAwMCAmJlxyXG4gICAgICAocm93LmZyZXF1ZW5jeV90ZW1wbGF0ZSA9PT0gJ2V2ZXJ5IHdlZWsnIHx8XHJcbiAgICAgICAgcm93LmZyZXF1ZW5jeV90ZW1wbGF0ZSA9PT0gJ2V2ZXJ5IDIgd2Vla3MnIHx8XHJcbiAgICAgICAgcm93LmZyZXF1ZW5jeV90ZW1wbGF0ZSA9PT0gJ2V2ZXJ5IDMgd2Vla3MnKVxyXG4gICAgKSB7XHJcbiAgICAgIGxldCBkYXlzVG9CZUFkZGVkID0gMDtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA3OyBpKyspIHtcclxuICAgICAgICBpZiAoKGN1cnJlbnREYXRlICsgaSkgJSA3ID09PSBzdGFydERhdGUpIHtcclxuICAgICAgICAgIGRheXNUb0JlQWRkZWQgPSBpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHRpbWVzdGFtcFRvQmVBZGRlZCA9IGRheXNUb0JlQWRkZWQgKiAyNCAqIDYwICogNjAgKiAxMDAwO1xyXG4gICAgICBjYWxjdWxhdGVkRGF5ID0gbmV3IERhdGUoXHJcbiAgICAgICAgbmV3IERhdGUoKS5nZXRUaW1lKCkgKyB0aW1lc3RhbXBUb0JlQWRkZWRcclxuICAgICAgKS5nZXRUaW1lKCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdjYWxjdWxhdGVkRGF5IDEnLCBjYWxjdWxhdGVkRGF5KTtcclxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIHBhcnNlSW50KHJvdy5zdGFydF9kYXRlKSA8IERhdGUubm93KCkgLyAxMDAwICYmXHJcbiAgICAgICEoXHJcbiAgICAgICAgcm93LmZyZXF1ZW5jeV90ZW1wbGF0ZSA9PT0gJ2V2ZXJ5IHdlZWsnIHx8XHJcbiAgICAgICAgcm93LmZyZXF1ZW5jeV90ZW1wbGF0ZSA9PT0gJ2V2ZXJ5IDIgd2Vla3MnIHx8XHJcbiAgICAgICAgcm93LmZyZXF1ZW5jeV90ZW1wbGF0ZSA9PT0gJ2V2ZXJ5IDMgd2Vla3MnXHJcbiAgICAgICkgJiZcclxuICAgICAgcm93LmZyZXF1ZW5jeV90ZW1wbGF0ZSAhPT0gJ2V2ZXJ5IGRheSdcclxuICAgICkge1xyXG4gICAgICBjb25zdCBtb21lbnRVbml4ID0gbW9tZW50KFxyXG4gICAgICAgIGdldERhdGUgK1xyXG4gICAgICAgICAgJy0nICtcclxuICAgICAgICAgIChuZXcgRGF0ZSgpLmdldE1vbnRoKCkgKyAxKSArXHJcbiAgICAgICAgICAnLScgK1xyXG4gICAgICAgICAgbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpICtcclxuICAgICAgICAgICcgMDA6MDAnLFxyXG4gICAgICAgICdERC1NTS1ZWVlZIEhIOm1tJ1xyXG4gICAgICApLnVuaXgoKTtcclxuICAgICAgY2FsY3VsYXRlZERheSA9IG1vbWVudFVuaXggKiAxMDAwO1xyXG4gICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAnZ2V0RGF0ZScsXHJcbiAgICAgICAgZ2V0RGF0ZSxcclxuICAgICAgICBuZXcgRGF0ZSgpLmdldE1vbnRoKCkgKyAyICsgJy0nICsgbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICAgIG1vbWVudFVuaXhcclxuICAgICAgKTtcclxuICAgICAgY29uc29sZS5sb2coJ2NhbGN1bGF0ZWREYXkgMicsIGNhbGN1bGF0ZWREYXkpO1xyXG4gICAgfSBlbHNlIGlmIChcclxuICAgICAgcm93LmZyZXF1ZW5jeV90ZW1wbGF0ZSA9PT0gJ2V2ZXJ5IGRheScgJiZcclxuICAgICAgcGFyc2VJbnQocm93LnN0YXJ0X2RhdGUpIDwgRGF0ZS5ub3coKSAvIDEwMDBcclxuICAgICkge1xyXG4gICAgICBjYWxjdWxhdGVkRGF5ID0gRGF0ZS5ub3coKTtcclxuICAgICAgY29uc29sZS5sb2coJ2NhbGN1bGF0ZWREYXkgMycsIGNhbGN1bGF0ZWREYXkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY2FsY3VsYXRlZERheSA9IHBhcnNlSW50KHJvdy5zdGFydF9kYXRlKSAqIDEwMDA7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdjYWxjdWxhdGVkRGF5IDQnLCBjYWxjdWxhdGVkRGF5KTtcclxuICAgIH1cclxuICAgIHJldHVybiBjYWxjdWxhdGVkRGF5IC8gMTAwMDtcclxuICB9XHJcblxyXG4gIGZyYW1ld29ya0ZyZXF1ZW5jeShmcmVxdWVuY3k6IGFueSwgc3RhcnRfZGF0ZTogYW55KSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zb2xlLmxvZygnZnJlcXVlbmN5JywgZnJlcXVlbmN5LCBzdGFydF9kYXRlKTtcclxuICAgICAgY29uc3Qgc3RhcnREYXRlID0gbmV3IERhdGUoc3RhcnRfZGF0ZSAqIDEwMDApO1xyXG4gICAgICBjb25zb2xlLmxvZygnc3RyYXQgZGF0ZScsIHN0YXJ0X2RhdGUsIHN0YXJ0RGF0ZSk7XHJcbiAgICAgIGNvbnN0IGZpcnN0SGFsZk1vbnRoID0gWycxJywgJzInLCAnMycsICc0JywgJzUnLCAnNiddO1xyXG4gICAgICBjb25zdCBzZWNvbmRIYWxmTW9udGggPSBbJzcnLCAnOCcsICc5JywgJzEwJywgJzExJywgJzEyJ107XHJcbiAgICAgIGNvbnN0IGdldERheURhdGEgPSBzdGFydERhdGUuZ2V0RGF5KCkgPT09IDAgPyA3IDogc3RhcnREYXRlLmdldERheSgpO1xyXG4gICAgICBjb25zdCBtb250aCA9IHN0YXJ0RGF0ZS5nZXRNb250aCgpO1xyXG4gICAgICBsZXQgcXVhcnRlclBhdHRlcm4gPSAnfjEsNCw3LDEwfjAnO1xyXG4gICAgICBzd2l0Y2ggKG1vbnRoKSB7XHJcbiAgICAgICAgY2FzZSAwOlxyXG4gICAgICAgIGNhc2UgMzpcclxuICAgICAgICBjYXNlIDY6XHJcbiAgICAgICAgY2FzZSA5OlxyXG4gICAgICAgICAgcXVhcnRlclBhdHRlcm4gPSAnfjEsNCw3LDEwfjAnO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAxOlxyXG4gICAgICAgIGNhc2UgNDpcclxuICAgICAgICBjYXNlIDc6XHJcbiAgICAgICAgY2FzZSAxMDpcclxuICAgICAgICAgIHF1YXJ0ZXJQYXR0ZXJuID0gJ34yLDUsOCwxMX4wJztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMjpcclxuICAgICAgICBjYXNlIDU6XHJcbiAgICAgICAgY2FzZSA4OlxyXG4gICAgICAgIGNhc2UgMTE6XHJcbiAgICAgICAgICBxdWFydGVyUGF0dGVybiA9ICd+Myw2LDksMTJ+MCc7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICAvLyBdO1xyXG4gICAgICBsZXQgZnJlcXVlbmN5X3BhdHRlcm47XHJcblxyXG4gICAgICBmcmVxdWVuY3kgPSBmcmVxdWVuY3kudG9Mb3dlckNhc2UoKTtcclxuICAgICAgbGV0IGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAwO1xyXG4gICAgICAvLyBAID0+IGRheSAoMSB0byA3KVxyXG4gICAgICAvLyAjID0+IG1vbnRoICgxIHRvIDEyKVxyXG4gICAgICAvLyA/ID0+IG1vbnRoICUgMiA9PSAwID8gXCIyLDQsNiw4LDEwLDEyXCIgOiBcIjEsMyw1LDcsOSwxMVwiXHJcblxyXG4gICAgICBpZiAoZnJlcXVlbmN5ID09PSAnZXZlcnkgd2VlaycpIHtcclxuICAgICAgICBmcmVxdWVuY3lfcGF0dGVybiA9ICcyficgKyBnZXREYXlEYXRhICsgJ34wfjEnO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxMDtcclxuICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3kgPT09ICdvbmUgdGltZScpIHtcclxuICAgICAgICBmcmVxdWVuY3lfcGF0dGVybiA9XHJcbiAgICAgICAgICAnMH4nICtcclxuICAgICAgICAgIHN0YXJ0RGF0ZS5nZXRGdWxsWWVhcigpICtcclxuICAgICAgICAgICd+JyArXHJcbiAgICAgICAgICAoc3RhcnREYXRlLmdldE1vbnRoKCkgKyAxKSArXHJcbiAgICAgICAgICAnficgK1xyXG4gICAgICAgICAgc3RhcnREYXRlLmdldERhdGUoKTtcclxuICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3kgPT09ICdldmVyeSBkYXknKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnMX4wfjB+MSc7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDE1O1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IGFsdGVybmF0ZSBkYXknKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnMX4wfjB+Mic7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDE1O1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IDEwIGRheXMnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnMX4wfjB+MTAnO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxNTtcclxuICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3kgPT09ICdldmVyeSAyIHdlZWtzJykge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID0gJzJ+JyArIGdldERheURhdGEgKyAnfjB+Mic7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDEwO1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IGZvcnRuaWdodCcpIHtcclxuICAgICAgICBmcmVxdWVuY3lfcGF0dGVybiA9ICcxficgKyBnZXREYXlEYXRhICsgJ34wfjE0JztcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTU7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnZXZlcnkgMyB3ZWVrcycpIHtcclxuICAgICAgICBmcmVxdWVuY3lfcGF0dGVybiA9ICcyficgKyBnZXREYXlEYXRhICsgJ34wfjMnO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxMDtcclxuICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3kgPT09ICdldmVyeSBtb250aCcpIHtcclxuICAgICAgICBmcmVxdWVuY3lfcGF0dGVybiA9XHJcbiAgICAgICAgICAnM34nICsgc3RhcnREYXRlLmdldERhdGUoKSArICd+MSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTJ+MCc7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDEwO1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IDQ1IGRheXMnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnMX4wfjB+NDUnO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxNTtcclxuICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3kgPT09ICdldmVyeSBhbHRlcm5hdGUgbW9udGgnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPVxyXG4gICAgICAgICAgJzN+JyArXHJcbiAgICAgICAgICBzdGFydERhdGUuZ2V0RGF0ZSgpICtcclxuICAgICAgICAgICd+JyArXHJcbiAgICAgICAgICAoKHN0YXJ0RGF0ZS5nZXRNb250aCgpICsgMSkgJSAyID09IDBcclxuICAgICAgICAgICAgPyAnMiw0LDYsOCwxMCwxMidcclxuICAgICAgICAgICAgOiAnMSwzLDUsNyw5LDExJykgK1xyXG4gICAgICAgICAgJ34wJztcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTA7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnZXZlcnkgcXVhcnRlcicpIHtcclxuICAgICAgICBmcmVxdWVuY3lfcGF0dGVybiA9ICc3ficgKyBzdGFydERhdGUuZ2V0RGF0ZSgpICsgcXVhcnRlclBhdHRlcm47XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnZXZlcnkgMTIwIGRheXMnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnMX4wfjB+MTIwJztcclxuICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3kgPT09ICdoYWxmIHllYXJseScpIHtcclxuICAgICAgICBjb25zdCBpbmRleDEgPSBmaXJzdEhhbGZNb250aC5pbmRleE9mKFxyXG4gICAgICAgICAgKHN0YXJ0RGF0ZS5nZXRNb250aCgpICsgMSkudG9TdHJpbmcoKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgaW5kZXgyID0gc2Vjb25kSGFsZk1vbnRoLmluZGV4T2YoXHJcbiAgICAgICAgICAoc3RhcnREYXRlLmdldE1vbnRoKCkgKyAxKS50b1N0cmluZygpXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBwYXR0ZXJuID1cclxuICAgICAgICAgIGluZGV4MSA+IC0xXHJcbiAgICAgICAgICAgID8gJ34nICtcclxuICAgICAgICAgICAgICBmaXJzdEhhbGZNb250aFtpbmRleDFdICtcclxuICAgICAgICAgICAgICAnLCcgK1xyXG4gICAgICAgICAgICAgIHNlY29uZEhhbGZNb250aFtpbmRleDFdICtcclxuICAgICAgICAgICAgICAnfjAnXHJcbiAgICAgICAgICAgIDogJ34nICtcclxuICAgICAgICAgICAgICBmaXJzdEhhbGZNb250aFtpbmRleDJdICtcclxuICAgICAgICAgICAgICAnLCcgK1xyXG4gICAgICAgICAgICAgIHNlY29uZEhhbGZNb250aFtpbmRleDJdICtcclxuICAgICAgICAgICAgICAnfjAnO1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID0gJzN+JyArIHN0YXJ0RGF0ZS5nZXREYXRlKCkgKyBwYXR0ZXJuO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxMDtcclxuICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3kgPT09ICd5ZWFybHknKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPVxyXG4gICAgICAgICAgJzR+JyArIHN0YXJ0RGF0ZS5nZXREYXRlKCkgKyAnficgKyAoc3RhcnREYXRlLmdldE1vbnRoKCkgKyAxKSArICd+MSc7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnZXZlcnkgMiB5ZWFycycpIHtcclxuICAgICAgICBmcmVxdWVuY3lfcGF0dGVybiA9XHJcbiAgICAgICAgICAnNH4nICsgc3RhcnREYXRlLmdldERhdGUoKSArICd+JyArIChzdGFydERhdGUuZ2V0TW9udGgoKSArIDEpICsgJ34yJztcclxuICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3kgPT09ICdldmVyeSAzIHllYXJzJykge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID1cclxuICAgICAgICAgICc0ficgKyBzdGFydERhdGUuZ2V0RGF0ZSgpICsgJ34nICsgKHN0YXJ0RGF0ZS5nZXRNb250aCgpICsgMSkgKyAnfjMnO1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IDQgeWVhcnMnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPVxyXG4gICAgICAgICAgJzR+JyArIHN0YXJ0RGF0ZS5nZXREYXRlKCkgKyAnficgKyAoc3RhcnREYXRlLmdldE1vbnRoKCkgKyAxKSArICd+NCc7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnZXZlcnkgNSB5ZWFycycpIHtcclxuICAgICAgICBmcmVxdWVuY3lfcGF0dGVybiA9XHJcbiAgICAgICAgICAnNH4nICsgc3RhcnREYXRlLmdldERhdGUoKSArICd+JyArIChzdGFydERhdGUuZ2V0TW9udGgoKSArIDEpICsgJ341JztcclxuICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3kgPT09ICdldmVyeSAxMCB5ZWFycycpIHtcclxuICAgICAgICBmcmVxdWVuY3lfcGF0dGVybiA9XHJcbiAgICAgICAgICAnNH4nICsgc3RhcnREYXRlLmdldERhdGUoKSArICd+JyArIChzdGFydERhdGUuZ2V0TW9udGgoKSArIDEpICsgJ34xMCc7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAndG8gYmUgZGVjaWRlZCBsYXRlcicpIHtcclxuICAgICAgICBmcmVxdWVuY3lfcGF0dGVybiA9ICcnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID0gJyc7XHJcbiAgICAgIH1cclxuICAgICAgLy8gdGhpcy5lZGl0RGF0YS5mcmVxdWVuY3lfZGV0YWlscyA9IGZyZXF1ZW5jeV9wYXR0ZXJuO1xyXG5cclxuICAgICAgcmV0dXJuIHsgZnJlcXVlbmN5X3BhdHRlcm4sIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgfTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgY29uc29sZS5sb2coZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzaG9ydEhhbmRfZnJlcUNhbChmcmVxdWVuY3k6IGFueSwgZGF5OiBhbnksIG1vbnRoOiBhbnksIHllYXI/OiBhbnkpIHtcclxuICAgIGNvbnN0IG1vbnRoTmFtZXMgPSBbXHJcbiAgICAgIHsgdmFsdWU6IDEsIG1vbnRoOiAnSmFuJyB9LFxyXG4gICAgICB7IHZhbHVlOiAyLCBtb250aDogJ0ZlYicgfSxcclxuICAgICAgeyB2YWx1ZTogMywgbW9udGg6ICdNYXInIH0sXHJcbiAgICAgIHsgdmFsdWU6IDQsIG1vbnRoOiAnQXByJyB9LFxyXG4gICAgICB7IHZhbHVlOiA1LCBtb250aDogJ01heScgfSxcclxuICAgICAgeyB2YWx1ZTogNiwgbW9udGg6ICdKdW4nIH0sXHJcbiAgICAgIHsgdmFsdWU6IDcsIG1vbnRoOiAnSnVsJyB9LFxyXG4gICAgICB7IHZhbHVlOiA4LCBtb250aDogJ0F1ZycgfSxcclxuICAgICAgeyB2YWx1ZTogOSwgbW9udGg6ICdTZXAnIH0sXHJcbiAgICAgIHsgdmFsdWU6IDEwLCBtb250aDogJ09jdCcgfSxcclxuICAgICAgeyB2YWx1ZTogMTEsIG1vbnRoOiAnTm92JyB9LFxyXG4gICAgICB7IHZhbHVlOiAxMiwgbW9udGg6ICdEZWMnIH0sXHJcbiAgICBdO1xyXG4gICAgbGV0IGZyZXF1ZW5jeV9kZXRhaWxzO1xyXG4gICAgbGV0IGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAwO1xyXG4gICAgY29uc3QgZGF0ZV92YWx1ZSA9IG5ldyBEYXRlKCk7XHJcblxyXG4gICAgZGF0ZV92YWx1ZS5zZXRNb250aChcclxuICAgICAgdHlwZW9mIG1vbnRoICE9PSAnbnVtYmVyJ1xyXG4gICAgICAgID8gbW9udGhOYW1lcy5maWx0ZXIoKHgpID0+IHgubW9udGggPT09IG1vbnRoPy5zdWJzdHJpbmcoMCwgMykpWzBdXHJcbiAgICAgICAgICAgID8udmFsdWUgLSAxXHJcbiAgICAgICAgOiBtb250aFxyXG4gICAgKTtcclxuICAgIGlmICgheWVhcikge1xyXG4gICAgICBkYXRlX3ZhbHVlLnNldEZ1bGxZZWFyKDIwICsgbW9udGguc3BsaXQoXCInXCIpWzFdKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRhdGVfdmFsdWUuc2V0RnVsbFllYXIoeWVhcik7XHJcbiAgICB9XHJcbiAgICBkYXRlX3ZhbHVlLnNldERhdGUoZGF5KTtcclxuICAgIGxldCBxdWFydGVyUGF0dGVybiA9ICd+MSw0LDcsMTB+MCc7XHJcbiAgICBjb25zdCBmaXJzdEhhbGZNb250aCA9IFsnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnXTtcclxuICAgIGNvbnN0IHNlY29uZEhhbGZNb250aCA9IFsnNycsICc4JywgJzknLCAnMTAnLCAnMTEnLCAnMTInXTtcclxuICAgIGZyZXF1ZW5jeSA9IGZyZXF1ZW5jeS50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAgIHN3aXRjaCAoZGF0ZV92YWx1ZS5nZXRNb250aCgpKSB7XHJcbiAgICAgIGNhc2UgMDpcclxuICAgICAgY2FzZSAzOlxyXG4gICAgICBjYXNlIDY6XHJcbiAgICAgIGNhc2UgOTpcclxuICAgICAgICBxdWFydGVyUGF0dGVybiA9ICd+MSw0LDcsMTB+MCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgMTpcclxuICAgICAgY2FzZSA0OlxyXG4gICAgICBjYXNlIDc6XHJcbiAgICAgIGNhc2UgMTA6XHJcbiAgICAgICAgcXVhcnRlclBhdHRlcm4gPSAnfjIsNSw4LDExfjAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDI6XHJcbiAgICAgIGNhc2UgNTpcclxuICAgICAgY2FzZSA4OlxyXG4gICAgICBjYXNlIDExOlxyXG4gICAgICAgIHF1YXJ0ZXJQYXR0ZXJuID0gJ34zLDYsOSwxMn4wJztcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIGNvbnN0IGdldERheSA9IGRhdGVfdmFsdWUuZ2V0RGF5KCkgPT09IDAgPyA3IDogZGF0ZV92YWx1ZS5nZXREYXkoKTtcclxuICAgIHN3aXRjaCAoZnJlcXVlbmN5KSB7XHJcbiAgICAgIGNhc2UgJ2V2ZXJ5IHdlZWsnOlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzJ+JyArIGdldERheSArICd+MH4xJztcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ29uZSB0aW1lJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9XHJcbiAgICAgICAgICAnMH4nICtcclxuICAgICAgICAgICcnICtcclxuICAgICAgICAgIGRhdGVfdmFsdWUuZ2V0RnVsbFllYXIoKSArXHJcbiAgICAgICAgICAnficgK1xyXG4gICAgICAgICAgKGRhdGVfdmFsdWUuZ2V0TW9udGgoKSArIDEpICtcclxuICAgICAgICAgICd+JyArXHJcbiAgICAgICAgICBkYXRlX3ZhbHVlLmdldERhdGUoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZXZlcnkgZGF5JzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICcxfjB+MH4xJztcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2V2ZXJ5IGFsdGVybmF0ZSBkYXknOlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzF+MH4wfjInO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxNTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZXZlcnkgMTAgZGF5cyc6XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnMX4wfjB+MTAnO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxNTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZXZlcnkgMiB3ZWVrcyc6XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnMn4nICsgZ2V0RGF5ICsgJ34wfjInO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxMDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZXZlcnkgZm9ydG5pZ2h0JzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICcxficgKyBnZXREYXkgKyAnfjB+MTQnO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxNTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZXZlcnkgMyB3ZWVrcyc6XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnMn4nICsgZ2V0RGF5ICsgJ34wfjMnO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxMDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZXZlcnkgbW9udGgnOlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID1cclxuICAgICAgICAgICczficgKyBkYXRlX3ZhbHVlLmdldERhdGUoKSArICd+MSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTJ+MCc7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDEwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdldmVyeSA0NSBkYXlzJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICcxfjB+MH40NSc7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDE1O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdldmVyeSBhbHRlcm5hdGUgbW9udGgnOlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID1cclxuICAgICAgICAgICczficgK1xyXG4gICAgICAgICAgZGF0ZV92YWx1ZS5nZXREYXRlKCkgK1xyXG4gICAgICAgICAgJ34nICtcclxuICAgICAgICAgICgoZGF0ZV92YWx1ZS5nZXRNb250aCgpICsgMSkgJSAyID09PSAwXHJcbiAgICAgICAgICAgID8gJzIsNCw2LDgsMTAsMTInXHJcbiAgICAgICAgICAgIDogJzEsMyw1LDcsOSwxMScpICtcclxuICAgICAgICAgICd+MCc7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDEwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdldmVyeSBxdWFydGVyJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICc3ficgKyBkYXRlX3ZhbHVlLmdldERhdGUoKSArIHF1YXJ0ZXJQYXR0ZXJuO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdldmVyeSAxMjAgZGF5cyc6XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnMX4wfjB+MTIwJztcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2hhbGYgeWVhcmx5JzpcclxuICAgICAgICBjb25zdCBpbmRleDEgPSBmaXJzdEhhbGZNb250aC5pbmRleE9mKFxyXG4gICAgICAgICAgKGRhdGVfdmFsdWUuZ2V0TW9udGgoKSArIDEpLnRvU3RyaW5nKClcclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IGluZGV4MiA9IHNlY29uZEhhbGZNb250aC5pbmRleE9mKFxyXG4gICAgICAgICAgKGRhdGVfdmFsdWUuZ2V0TW9udGgoKSArIDEpLnRvU3RyaW5nKClcclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IHBhdHRlcm4gPVxyXG4gICAgICAgICAgaW5kZXgxID4gLTFcclxuICAgICAgICAgICAgPyAnficgK1xyXG4gICAgICAgICAgICAgIGZpcnN0SGFsZk1vbnRoW2luZGV4MV0gK1xyXG4gICAgICAgICAgICAgICcsJyArXHJcbiAgICAgICAgICAgICAgc2Vjb25kSGFsZk1vbnRoW2luZGV4MV0gK1xyXG4gICAgICAgICAgICAgICd+MCdcclxuICAgICAgICAgICAgOiAnficgK1xyXG4gICAgICAgICAgICAgIGZpcnN0SGFsZk1vbnRoW2luZGV4Ml0gK1xyXG4gICAgICAgICAgICAgICcsJyArXHJcbiAgICAgICAgICAgICAgc2Vjb25kSGFsZk1vbnRoW2luZGV4Ml0gK1xyXG4gICAgICAgICAgICAgICd+MCc7XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnM34nICsgZGF0ZV92YWx1ZS5nZXREYXRlKCkgKyBwYXR0ZXJuO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdhbm51YWwnOlxyXG4gICAgICBjYXNlICd5ZWFybHknOlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID1cclxuICAgICAgICAgICc0ficgK1xyXG4gICAgICAgICAgZGF0ZV92YWx1ZS5nZXREYXRlKCkgK1xyXG4gICAgICAgICAgJ34nICtcclxuICAgICAgICAgIChkYXRlX3ZhbHVlLmdldE1vbnRoKCkgKyAxKSArXHJcbiAgICAgICAgICAnfjEnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdldmVyeSAyIHllYXJzJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9XHJcbiAgICAgICAgICAnNH4nICtcclxuICAgICAgICAgIGRhdGVfdmFsdWUuZ2V0RGF0ZSgpICtcclxuICAgICAgICAgICd+JyArXHJcbiAgICAgICAgICAoZGF0ZV92YWx1ZS5nZXRNb250aCgpICsgMSkgK1xyXG4gICAgICAgICAgJ34yJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZXZlcnkgMyB5ZWFycyc6XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPVxyXG4gICAgICAgICAgJzR+JyArXHJcbiAgICAgICAgICBkYXRlX3ZhbHVlLmdldERhdGUoKSArXHJcbiAgICAgICAgICAnficgK1xyXG4gICAgICAgICAgKGRhdGVfdmFsdWUuZ2V0TW9udGgoKSArIDEpICtcclxuICAgICAgICAgICd+Myc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2V2ZXJ5IDQgeWVhcnMnOlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID1cclxuICAgICAgICAgICc0ficgK1xyXG4gICAgICAgICAgZGF0ZV92YWx1ZS5nZXREYXRlKCkgK1xyXG4gICAgICAgICAgJ34nICtcclxuICAgICAgICAgIChkYXRlX3ZhbHVlLmdldE1vbnRoKCkgKyAxKSArXHJcbiAgICAgICAgICAnfjQnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdldmVyeSA1IHllYXJzJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9XHJcbiAgICAgICAgICAnNH4nICtcclxuICAgICAgICAgIGRhdGVfdmFsdWUuZ2V0RGF0ZSgpICtcclxuICAgICAgICAgICd+JyArXHJcbiAgICAgICAgICAoZGF0ZV92YWx1ZS5nZXRNb250aCgpICsgMSkgK1xyXG4gICAgICAgICAgJ341JztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZXZlcnkgMTAgeWVhcnMnOlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID1cclxuICAgICAgICAgICc0ficgK1xyXG4gICAgICAgICAgZGF0ZV92YWx1ZS5nZXREYXRlKCkgK1xyXG4gICAgICAgICAgJ34nICtcclxuICAgICAgICAgIChkYXRlX3ZhbHVlLmdldE1vbnRoKCkgKyAxKSArXHJcbiAgICAgICAgICAnfjEwJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnb25nb2luZyc6XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnMTB+MH4wfjAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd0byBiZSBkZWNpZGVkIGxhdGVyJzpcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICc1fjB+MH4wJztcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgIHBhdHRlcm46IGZyZXF1ZW5jeV9kZXRhaWxzLFxyXG4gICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzOiBjb250aW51b3VzX2ZhaWxlZF9kYXlzLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdldE9uQ29tcGxldGlvbk9mUmVzcG9uc2liaWxpdHkoKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5jb21wbGlhbmNlR2V0ICsgJ3JlcG9ydHMvb25Db21wbGV0aW9uT2ZSZXBvcnRzJywge1xyXG4gICAgICAgIGhlYWRlcnMsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVRpbWVab25lKGRhdGU6IGFueSkge1xyXG4gICAgaWYgKHR5cGVvZiBkYXRlID09PSAnbnVtYmVyJykge1xyXG4gICAgICBkYXRlID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBpbnZEYXRlID0gbmV3IERhdGUoXHJcbiAgICAgIGRhdGUudG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJywge1xyXG4gICAgICAgIHRpbWVab25lOiB0aGlzLmF1dGhTZXJ2aWNlPy51c2VyRGV0YWlscz8udGltZXpvbmUsXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIGludkRhdGU7XHJcbiAgfVxyXG5cclxuICBnZXRSZXNwb25zaWJpbGl0eUxpc3QocGF5bG9hZDogYW55KSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KFxyXG4gICAgICAgIHRoaXMuZW52LnJlc3BvbnNpYmlsaXR5UG9zdCArICdtYW5hZ2VfcmVzcG9uc2liaWxpdGllc19yZXBvcnRzJyxcclxuICAgICAgICBwYXlsb2FkLFxyXG4gICAgICAgIHsgaGVhZGVycyB9XHJcbiAgICAgIClcclxuICAgICAgLnBpcGUocmV0cnkoMSkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmVzcG9uc2liaWxpdGllc0NvdW50KHBheWxvYWQ6IGFueSkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihcclxuICAgICAgICB0aGlzLmVudi5yZXNwb25zaWJpbGl0eVBvc3QgKyAnbWFuYWdlX3Jlc3BvbnNpYmlsaXRpZXNfcmVwb3J0c19jb3VudCcsXHJcbiAgICAgICAgcGF5bG9hZCxcclxuICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHJldHJ5KDEpKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import
|
|
2
|
+
import moment from 'moment/moment';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "../../frequency/frequency.service";
|
|
5
5
|
import * as i2 from "../frequency-dialog-top/frequency-dialog-top.component";
|
|
@@ -29,8 +29,9 @@ export class FrequencyDialogAnnualComponent {
|
|
|
29
29
|
ngOnInit() {
|
|
30
30
|
this.monthList = this.frequencyService.monthArray;
|
|
31
31
|
this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);
|
|
32
|
-
this.shortMonth = this.frequencyService.monthArray.map(month => month.substring(0, 3));
|
|
33
|
-
if (this.frequencyData?.pattern != '' &&
|
|
32
|
+
this.shortMonth = this.frequencyService.monthArray.map((month) => month.substring(0, 3));
|
|
33
|
+
if (this.frequencyData?.pattern != '' &&
|
|
34
|
+
parseInt(this.frequencyData?.pattern.split('~')[0]) === 4) {
|
|
34
35
|
this.populateFrequency();
|
|
35
36
|
}
|
|
36
37
|
this.getAnnualFrequency();
|
|
@@ -48,7 +49,8 @@ export class FrequencyDialogAnnualComponent {
|
|
|
48
49
|
// }
|
|
49
50
|
this.yearlyLifecycleOccurance = Number(patternInfo[1]);
|
|
50
51
|
this.yearlyLifeCycleStart = new Date(this.frequencyData?.startDate * 1000);
|
|
51
|
-
this.startDate =
|
|
52
|
+
this.startDate =
|
|
53
|
+
this.frequencyData?.startFrom ?? this.frequencyData?.startDate;
|
|
52
54
|
this.yearlyFailed = this.frequencyData?.failed;
|
|
53
55
|
// if( lifecycleInfo[0] !== '0000-00-00') {
|
|
54
56
|
// const dateSelected = moment(lifecycleInfo[0] + ' 11:59 pm', 'DD-MMMM-YYYY HH:mm a').unix()
|
|
@@ -97,9 +99,12 @@ export class FrequencyDialogAnnualComponent {
|
|
|
97
99
|
else {
|
|
98
100
|
this.startDate = Math.floor(event.startFrom);
|
|
99
101
|
}
|
|
100
|
-
let endByDate = Math.floor(this.frequencyService.changeTimeZone(new Date())?.getTime() / 1000 +
|
|
102
|
+
let endByDate = Math.floor(this.frequencyService.changeTimeZone(new Date())?.getTime() / 1000 +
|
|
103
|
+
86400000);
|
|
101
104
|
if (event.type === 0) {
|
|
102
|
-
endByDate = event.endsBy
|
|
105
|
+
endByDate = event.endsBy
|
|
106
|
+
? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix()
|
|
107
|
+
: endByDate;
|
|
103
108
|
}
|
|
104
109
|
this.frequencyInfo.failed_time_utc = endByDate;
|
|
105
110
|
this.getAnnualFrequency();
|
|
@@ -116,7 +121,14 @@ export class FrequencyDialogAnnualComponent {
|
|
|
116
121
|
// frequency pattern and details info
|
|
117
122
|
getAnnualFrequency() {
|
|
118
123
|
this.frequencyInfo.placeholder = this.getFrequencyPlaceholder(Number(this.yearlyInput));
|
|
119
|
-
this.frequencyInfo.pattern =
|
|
124
|
+
this.frequencyInfo.pattern =
|
|
125
|
+
4 +
|
|
126
|
+
'~' +
|
|
127
|
+
this.yearlyDay +
|
|
128
|
+
'~' +
|
|
129
|
+
(this.yearlySelected + 1) +
|
|
130
|
+
'~' +
|
|
131
|
+
this.yearlyInput;
|
|
120
132
|
this.frequencyInfo.case = 'yearly';
|
|
121
133
|
this.frequencyInfo.failedAfter = this.yearlyFailed;
|
|
122
134
|
this.frequencyInfo.window = this.yearlyWindow;
|
|
@@ -125,7 +137,7 @@ export class FrequencyDialogAnnualComponent {
|
|
|
125
137
|
this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;
|
|
126
138
|
this.frequencyInfo.startFrom = this.startDate;
|
|
127
139
|
this.frequencyInfo.reportId = 0;
|
|
128
|
-
console.log(
|
|
140
|
+
console.log(' this.frequencyInfo ==>', this.frequencyInfo);
|
|
129
141
|
this.frequencyDetails.emit(this.frequencyInfo);
|
|
130
142
|
}
|
|
131
143
|
getFrequencyPlaceholder(yearlyInput) {
|
|
@@ -142,25 +154,57 @@ export class FrequencyDialogAnnualComponent {
|
|
|
142
154
|
getPlaceholderForSt2() {
|
|
143
155
|
let placeholder = '';
|
|
144
156
|
if (this.yearlyDay === 1) {
|
|
145
|
-
placeholder =
|
|
157
|
+
placeholder =
|
|
158
|
+
'1st of every ' +
|
|
159
|
+
this.shortMonth[this.yearlySelected] +
|
|
160
|
+
' by ' +
|
|
161
|
+
this.yearlyInterval;
|
|
146
162
|
}
|
|
147
163
|
if (this.yearlyDay === 2) {
|
|
148
|
-
placeholder =
|
|
164
|
+
placeholder =
|
|
165
|
+
'2nd of every ' +
|
|
166
|
+
this.shortMonth[this.yearlySelected] +
|
|
167
|
+
' by ' +
|
|
168
|
+
this.yearlyInterval;
|
|
149
169
|
}
|
|
150
170
|
if (this.yearlyDay === 3) {
|
|
151
|
-
placeholder =
|
|
171
|
+
placeholder =
|
|
172
|
+
'3rd of every ' +
|
|
173
|
+
this.shortMonth[this.yearlySelected] +
|
|
174
|
+
' by ' +
|
|
175
|
+
this.yearlyInterval;
|
|
152
176
|
}
|
|
153
177
|
if (this.yearlyDay > 3) {
|
|
154
|
-
placeholder =
|
|
178
|
+
placeholder =
|
|
179
|
+
this.yearlyDay +
|
|
180
|
+
'th of every ' +
|
|
181
|
+
this.shortMonth[this.yearlySelected] +
|
|
182
|
+
' by ' +
|
|
183
|
+
this.yearlyInterval;
|
|
155
184
|
}
|
|
156
185
|
if (this.yearlyDay === 31 || this.yearlyDay === 21) {
|
|
157
|
-
placeholder =
|
|
186
|
+
placeholder =
|
|
187
|
+
this.yearlyDay +
|
|
188
|
+
'st of every ' +
|
|
189
|
+
this.shortMonth[this.yearlySelected] +
|
|
190
|
+
' by ' +
|
|
191
|
+
this.yearlyInterval;
|
|
158
192
|
}
|
|
159
193
|
if (this.yearlyDay === 22) {
|
|
160
|
-
placeholder =
|
|
194
|
+
placeholder =
|
|
195
|
+
this.yearlyDay +
|
|
196
|
+
'nd of every ' +
|
|
197
|
+
this.shortMonth[this.yearlySelected] +
|
|
198
|
+
' by ' +
|
|
199
|
+
this.yearlyInterval;
|
|
161
200
|
}
|
|
162
201
|
if (this.yearlyDay === 23) {
|
|
163
|
-
placeholder =
|
|
202
|
+
placeholder =
|
|
203
|
+
this.yearlyDay +
|
|
204
|
+
'rd of every ' +
|
|
205
|
+
this.shortMonth[this.yearlySelected] +
|
|
206
|
+
' by ' +
|
|
207
|
+
this.yearlyInterval;
|
|
164
208
|
}
|
|
165
209
|
return placeholder;
|
|
166
210
|
}
|
|
@@ -168,25 +212,71 @@ export class FrequencyDialogAnnualComponent {
|
|
|
168
212
|
getPlaceholderForGt1() {
|
|
169
213
|
let placeholder = '';
|
|
170
214
|
if (this.yearlyDay === 1) {
|
|
171
|
-
placeholder =
|
|
215
|
+
placeholder =
|
|
216
|
+
'1st of ' +
|
|
217
|
+
this.shortMonth[this.yearlySelected] +
|
|
218
|
+
', Interval: every ' +
|
|
219
|
+
this.yearlyInput +
|
|
220
|
+
' years by ' +
|
|
221
|
+
this.yearlyInterval;
|
|
172
222
|
}
|
|
173
223
|
if (this.yearlyDay === 2) {
|
|
174
|
-
placeholder =
|
|
224
|
+
placeholder =
|
|
225
|
+
'2nd of ' +
|
|
226
|
+
this.shortMonth[this.yearlySelected] +
|
|
227
|
+
', Interval: every ' +
|
|
228
|
+
this.yearlyInput +
|
|
229
|
+
' years by ' +
|
|
230
|
+
this.yearlyInterval;
|
|
175
231
|
}
|
|
176
232
|
if (this.yearlyDay === 3) {
|
|
177
|
-
placeholder =
|
|
233
|
+
placeholder =
|
|
234
|
+
'3rd of ' +
|
|
235
|
+
this.shortMonth[this.yearlySelected] +
|
|
236
|
+
', Interval: every ' +
|
|
237
|
+
this.yearlyInput +
|
|
238
|
+
' years by ' +
|
|
239
|
+
this.yearlyInterval;
|
|
178
240
|
}
|
|
179
241
|
if (this.yearlyDay > 3) {
|
|
180
|
-
placeholder =
|
|
242
|
+
placeholder =
|
|
243
|
+
this.yearlyDay +
|
|
244
|
+
'th of ' +
|
|
245
|
+
this.shortMonth[this.yearlySelected] +
|
|
246
|
+
', Interval: every ' +
|
|
247
|
+
this.yearlyInput +
|
|
248
|
+
' years by ' +
|
|
249
|
+
this.yearlyInterval;
|
|
181
250
|
}
|
|
182
251
|
if (this.yearlyDay === 31 || this.yearlyDay === 21) {
|
|
183
|
-
placeholder =
|
|
252
|
+
placeholder =
|
|
253
|
+
this.yearlyDay +
|
|
254
|
+
'st of ' +
|
|
255
|
+
this.shortMonth[this.yearlySelected] +
|
|
256
|
+
', Interval: every ' +
|
|
257
|
+
this.yearlyInput +
|
|
258
|
+
' years by ' +
|
|
259
|
+
this.yearlyInterval;
|
|
184
260
|
}
|
|
185
261
|
if (this.yearlyDay === 22) {
|
|
186
|
-
placeholder =
|
|
262
|
+
placeholder =
|
|
263
|
+
this.yearlyDay +
|
|
264
|
+
'nd of ' +
|
|
265
|
+
this.shortMonth[this.yearlySelected] +
|
|
266
|
+
', Interval: every ' +
|
|
267
|
+
this.yearlyInput +
|
|
268
|
+
' years by ' +
|
|
269
|
+
this.yearlyInterval;
|
|
187
270
|
}
|
|
188
271
|
if (this.yearlyDay === 23) {
|
|
189
|
-
placeholder =
|
|
272
|
+
placeholder =
|
|
273
|
+
this.yearlyDay +
|
|
274
|
+
'rd of ' +
|
|
275
|
+
this.shortMonth[this.yearlySelected] +
|
|
276
|
+
', Interval: every ' +
|
|
277
|
+
this.yearlyInput +
|
|
278
|
+
' years by ' +
|
|
279
|
+
this.yearlyInterval;
|
|
190
280
|
}
|
|
191
281
|
return placeholder;
|
|
192
282
|
}
|
|
@@ -205,4 +295,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
205
295
|
}], frequencyDetails: [{
|
|
206
296
|
type: Output
|
|
207
297
|
}] } });
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWRpYWxvZy1hbm51YWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3ktZGlhbG9nL2ZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsL2ZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZnJlcXVlbmN5LWRpYWxvZy9mcmVxdWVuY3ktZGlhbG9nLWFubnVhbC9mcmVxdWVuY3ktZGlhbG9nLWFubnVhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7Ozs7QUFRakMsTUFBTSxPQUFPLDhCQUE4QjtJQTJCekMsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUF6QnRELGNBQVMsR0FBZSxFQUFFLENBQUM7UUFFM0IsbUJBQWMsR0FBVyxVQUFVLENBQUM7UUFDcEMsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFDeEIsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFDekIsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFDMUIsY0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3hFLHlCQUFvQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxD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QUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLG9CQUFvQixHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDL0o7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUVyQixDQUFDOzsySEE3TVUsOEJBQThCOytHQUE5Qiw4QkFBOEIsd01DVDNDLHVqRUEyQ007MkZEbENPLDhCQUE4QjtrQkFMMUMsU0FBUzsrQkFDRSw2QkFBNkI7dUdBdUI5QixhQUFhO3NCQUFyQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IEZyZXF1ZW5jeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9mcmVxdWVuY3kvZnJlcXVlbmN5LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZnJlcXVlbmN5LWRpYWxvZy1hbm51YWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mcmVxdWVuY3ktZGlhbG9nLWFubnVhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZnJlcXVlbmN5LWRpYWxvZy1hbm51YWwuY29tcG9uZW50Lmxlc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5RGlhbG9nQW5udWFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgbW9udGhMaXN0OiBBcnJheTxhbnk+ID0gW107XHJcblxyXG4gIHllYXJseUludGVydmFsOiBzdHJpbmcgPSAnMTE6MDAgcG0nO1xyXG4gIHllYXJseUlucHV0OiBudW1iZXIgPSAxO1xyXG4gIHllYXJseUZhaWxlZDogbnVtYmVyID0gNTtcclxuICB5ZWFybHlXaW5kb3c6IG51bWJlciA9IDMwO1xyXG4gIHllYXJseURheSA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS5jaGFuZ2VUaW1lWm9uZShuZXcgRGF0ZSgpKT8uZ2V0RGF0ZSgpO1xyXG4gIHllYXJseUxpZmVDeWNsZVN0YXJ0ID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpO1xyXG4gIHllYXJseUxpZmVDeWNsZUVuZFRpbWUgPSBuZXcgRGF0ZSh0aGlzLnllYXJseUxpZmVDeWNsZVN0YXJ0LmdldFRpbWUoKSArIDg2NDAwMDAwKTtcclxuICB5ZWFybHlMaWZlY3ljbGVPY2N1cmFuY2U6IG51bWJlciA9IDEwO1xyXG4gIHllYXJseVNlbGV0ZWRMaWZlY3ljbGVUeXBlOiBudW1iZXIgPSAyO1xyXG4gIHllYXJseVNlbGVjdGVkID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpPy5nZXRNb250aCgpO1xyXG4gIGxpZmVjeWNsZURldGFpbHM6IGFueSA9ICcwMDAwLTAwLTAwfn4wJztcclxuICBwcmV2aW91c1N0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xyXG4gIGZyZXF1ZW5jeUluZm86IGFueTtcclxuICBzaG9ydE1vbnRoOkFycmF5PHN0cmluZz4gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgZnJlcXVlbmN5RGF0YTogYW55O1xyXG4gIEBJbnB1dCgpIG1vZGU6IGFueT0nJztcclxuXHJcbiAgQElucHV0KCkgc3RhcnREYXRlID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XHJcblxyXG4gIEBPdXRwdXQoKSBmcmVxdWVuY3lEZXRhaWxzID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZyZXF1ZW5jeVNlcnZpY2U6IEZyZXF1ZW5jeVNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubW9udGhMaXN0ID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLm1vbnRoQXJyYXk7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8gPSBPYmplY3QuYXNzaWduKHRoaXMuZnJlcXVlbmN5U2VydmljZS5mcmVxdWVuY3lJbmZvKTtcclxuICAgIHRoaXMuc2hvcnRNb250aCA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS5tb250aEFycmF5Lm1hcChtb250aCA9PiBtb250aC5zdWJzdHJpbmcoMCwgMykpO1xyXG4gICAgaWYodGhpcy5mcmVxdWVuY3lEYXRhPy5wYXR0ZXJuICE9ICcnICYmIHBhcnNlSW50KHRoaXMuZnJlcXVlbmN5RGF0YT8ucGF0dGVybi5zcGxpdCgnficpWzBdKSA9PT0gNCkge1xyXG4gICAgICB0aGlzLnBvcHVsYXRlRnJlcXVlbmN5KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldEFubnVhbEZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgcG9wdWxhdGVGcmVxdWVuY3koKSB7XHJcbiAgICBjb25zdCBwYXR0ZXJuSW5mbyA9IHRoaXMuZnJlcXVlbmN5RGF0YT8ucGF0dGVybi5zcGxpdCgnficpLm1hcChOdW1iZXIpO1xyXG4gICAgdGhpcy55ZWFybHlTZWxlY3RlZCA9IHBhdHRlcm5JbmZvWzJdIC0gMTtcclxuICAgIC8vIGNvbnN0IGxpZmVjeWNsZUluZm8gPSB0aGlzLmZyZXF1ZW5jeURhdGE/LmxpZmVjeWNsZS5zcGxpdCgnfn4nKTtcclxuICAgIHRoaXMueWVhcmx5SW50ZXJ2YWwgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LmZhaWxlZFRpbWU7XHJcbiAgICB0aGlzLnllYXJseVdpbmRvdyA9IHRoaXMuZnJlcXVlbmN5RGF0YT8ud2luZG93O1xyXG4gICAgdGhpcy55ZWFybHlJbnB1dCA9IHBhdHRlcm5JbmZvWzNdO1xyXG4gICAgdGhpcy55ZWFybHlEYXkgPSBwYXR0ZXJuSW5mb1sxXVxyXG4gICAgLy8gaWYoTnVtYmVyKGxpZmVjeWNsZUluZm9bMV0pID4gMCkge1xyXG4gICAgLy8gICB0aGlzLnllYXJseUxpZmVjeWNsZU9jY3VyYW5jZSA9IE51bWJlcihsaWZlY3ljbGVJbmZvWzFdKTtcclxuICAgIC8vIH1cclxuICAgIHRoaXMueWVhcmx5TGlmZWN5Y2xlT2NjdXJhbmNlID0gTnVtYmVyKHBhdHRlcm5JbmZvWzFdKTtcclxuICAgIHRoaXMueWVhcmx5TGlmZUN5Y2xlU3RhcnQgPSBuZXcgRGF0ZSh0aGlzLmZyZXF1ZW5jeURhdGE/LnN0YXJ0RGF0ZSAqIDEwMDApXHJcbiAgICB0aGlzLnN0YXJ0RGF0ZSA9IHRoaXMuZnJlcXVlbmN5RGF0YT8uc3RhcnRGcm9tID8/IHRoaXMuZnJlcXVlbmN5RGF0YT8uc3RhcnREYXRlXHJcbiAgICB0aGlzLnllYXJseUZhaWxlZCA9IHRoaXMuZnJlcXVlbmN5RGF0YT8uZmFpbGVkO1xyXG4gICAgLy8gaWYoIGxpZmVjeWNsZUluZm9bMF0gIT09ICcwMDAwLTAwLTAwJykge1xyXG4gICAgLy8gICBjb25zdCBkYXRlU2VsZWN0ZWQgPSBtb21lbnQobGlmZWN5Y2xlSW5mb1swXSArICcgMTE6NTkgcG0nLCAnREQtTU1NTS1ZWVlZIEhIOm1tIGEnKS51bml4KClcclxuICAgIC8vICAgdGhpcy55ZWFybHlMaWZlQ3ljbGVFbmRUaW1lID0gbmV3IERhdGUoZGF0ZVNlbGVjdGVkICogMTAwMCk7XHJcbiAgICAvLyB9XHJcbiAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LmxpZmVjeWNsZTtcclxuICAgIC8vIGlmKCB0aGlzLmZyZXF1ZW5jeURhdGE/LmxpZmVjeWNsZSA9PSAnMDAwMC0wMC0wMH5+MCcpIHtcclxuICAgIC8vICAgdGhpcy55ZWFybHlTZWxldGVkTGlmZWN5Y2xlVHlwZSA9IDI7XHJcbiAgICAvLyB9IGVsc2UgaWYobGlmZWN5Y2xlSW5mb1swXSAhPT0gJzAwMDAtMDAtMDAnKSB7XHJcbiAgICAvLyAgIHRoaXMueWVhcmx5U2VsZXRlZExpZmVjeWNsZVR5cGUgPSAwO1xyXG4gICAgLy8gfSBlbHNlIHtcclxuICAgIC8vICAgdGhpcy55ZWFybHlTZWxldGVkTGlmZWN5Y2xlVHlwZSA9IDE7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBvblRpbWVDaGFuZ2VkKGV2ZW50OnN0cmluZykge1xyXG4gICAgdGhpcy55ZWFybHlJbnRlcnZhbCA9IGV2ZW50O1xyXG4gICAgdGhpcy5nZXRBbm51YWxGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIGRhdGVDaGFuZ2UoZXZlbnQ6IG51bWJlcikge1xyXG4gICAgdGhpcy55ZWFybHlEYXkgPSBldmVudDtcclxuICAgIHRoaXMuZ2V0QW5udWFsRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICB2YWx1ZUNoYW5nZWRGaXJzdChldmVudDogYW55KSB7XHJcbiAgIHRoaXMueWVhcmx5SW5wdXQgPSBldmVudC52YWx1ZTtcclxuICAgdGhpcy5nZXRBbm51YWxGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkTW9udGgoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy55ZWFybHlTZWxlY3RlZCA9IHBhcnNlSW50KGV2ZW50LnRhcmdldC52YWx1ZSk7XHJcbiAgICB0aGlzLmdldEFubnVhbEZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgbGlmZWN5Y2xlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuXHJcbiAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcclxuICAgICAgY2FzZSAwOlxyXG4gICAgICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9IGV2ZW50LmVuZHNCeSArICd+fjAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDE6XHJcbiAgICAgICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gJzAwMDAtMDAtMDB+ficgKyBldmVudC5lbmRhZnRlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAyOlxyXG4gICAgICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9ICcwMDAwLTAwLTAwfn4wJztcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIGlmIChldmVudC5zdGFydEZyb20udG9TdHJpbmcoKS5sZW5ndGggPiAxMCkge1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoZXZlbnQuc3RhcnRGcm9tIC8gMTAwMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoZXZlbnQuc3RhcnRGcm9tKTtcclxuICAgIH1cclxuICAgIGxldCBlbmRCeURhdGUgPSBNYXRoLmZsb29yKHRoaXMuZnJlcXVlbmN5U2VydmljZS5jaGFuZ2VUaW1lWm9uZShuZXcgRGF0ZSgpKT8uZ2V0VGltZSgpIC8gMTAwMCArIDg2NDAwMDAwKTtcclxuICAgIGlmIChldmVudC50eXBlID09PSAwKSB7XHJcbiAgICAgIGVuZEJ5RGF0ZSA9IGV2ZW50LmVuZHNCeSA/IG1vbWVudChldmVudC5lbmRzQnkgKyAnIDAwOjAwOjAwJywgJ0RELU1NTS1ZWVlZIEhIOm1tOnNzJykudW5peCgpIDogZW5kQnlEYXRlO1xyXG4gICAgICBcclxuICAgIH1cclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRfdGltZV91dGMgPSBlbmRCeURhdGU7XHJcbiAgICB0aGlzLmdldEFubnVhbEZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgb25WYWx1ZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdjb21wbGV0ZWQnKSB7XHJcbiAgICAgICAgICB0aGlzLnllYXJseVdpbmRvdyA9IGV2ZW50LnZhbHVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnllYXJseUZhaWxlZCA9IGV2ZW50LnZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmdldEFubnVhbEZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vIGZyZXF1ZW5jeSBwYXR0ZXJuIGFuZCBkZXRhaWxzIGluZm9cclxuICBnZXRBbm51YWxGcmVxdWVuY3koKSB7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucGxhY2Vob2xkZXIgPSAgdGhpcy5nZXRGcmVxdWVuY3lQbGFjZWhvbGRlcihOdW1iZXIodGhpcy55ZWFybHlJbnB1dCkpO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnBhdHRlcm4gPSA0ICsgJ34nICsgdGhpcy55ZWFybHlEYXkgKyAnficgKyAodGhpcy55ZWFybHlTZWxlY3RlZCArIDEpICsgJ34nICsgdGhpcy55ZWFybHlJbnB1dDtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5jYXNlID0gJ3llYXJseSc7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uZmFpbGVkQWZ0ZXIgPSB0aGlzLnllYXJseUZhaWxlZDtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby53aW5kb3cgPSB0aGlzLnllYXJseVdpbmRvdztcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby50aW1lSW4xMmhyID0gdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby50aW1lSW4yNEhyID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLnRpbWVGcm9tMTJoVG8yNGgodGhpcy55ZWFybHlJbnRlcnZhbCk7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ubGlmZWN5Y2xlRGV0YWlscyA9IHRoaXMubGlmZWN5Y2xlRGV0YWlscztcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5zdGFydEZyb20gPSB0aGlzLnN0YXJ0RGF0ZTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5yZXBvcnRJZCA9IDA7XHJcbiAgICBjb25zb2xlLmxvZyhcIiB0aGlzLmZyZXF1ZW5jeUluZm8gPT0+XCIsICB0aGlzLmZyZXF1ZW5jeUluZm8pO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lEZXRhaWxzLmVtaXQodGhpcy5mcmVxdWVuY3lJbmZvKTtcclxuICB9XHJcblxyXG4gIGdldEZyZXF1ZW5jeVBsYWNlaG9sZGVyKHllYXJseUlucHV0OiBhbnkpIHsgXHJcbiAgICBsZXQgcGxhY2Vob2xkZXIgPSAnJztcclxuICAgIGlmKHllYXJseUlucHV0ID09PSAxKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID0gIHRoaXMuZ2V0UGxhY2Vob2xkZXJGb3JTdDIoKTsgXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBwbGFjZWhvbGRlciA9ICB0aGlzLmdldFBsYWNlaG9sZGVyRm9yR3QxKClcclxuICAgIH1cclxuICAgIHJldHVybiBwbGFjZWhvbGRlcjtcclxuICB9XHJcblxyXG4gIC8vIGlmIHllYXJseUlucHV0IGlzIHNtYWxsZXIgdGhhbiAyIHRoZW4gdGhpcyBmdW5jdGlvbiB3aWxsIGNhbGxlZFxyXG4gIGdldFBsYWNlaG9sZGVyRm9yU3QyKCkge1xyXG4gICAgbGV0IHBsYWNlaG9sZGVyID0gJyc7XHJcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDEpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPSAnMXN0IG9mIGV2ZXJ5ICcgKyB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gKyAnIGJ5ICcgKyB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAyKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID0gJzJuZCBvZiBldmVyeSAnICsgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICsgJyBieSAnICsgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMykge1xyXG4gICAgICBwbGFjZWhvbGRlciA9ICczcmQgb2YgZXZlcnkgJyArIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArICcgYnkgJyArIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPiAzKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID0gdGhpcy55ZWFybHlEYXkgKyAndGggb2YgZXZlcnkgJyArIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArICcgYnkgJyArIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDMxIHx8IHRoaXMueWVhcmx5RGF5ID09PSAyMSkge1xyXG4gICAgICBwbGFjZWhvbGRlciA9IHRoaXMueWVhcmx5RGF5ICsgJ3N0IG9mIGV2ZXJ5ICcgKyB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gKyAnIGJ5ICcgKyB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAyMikge1xyXG4gICAgICBwbGFjZWhvbGRlciA9IHRoaXMueWVhcmx5RGF5ICsgJ25kIG9mIGV2ZXJ5ICcgKyB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gKyAnIGJ5ICcgKyB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAyMykge1xyXG4gICAgICBwbGFjZWhvbGRlciA9IHRoaXMueWVhcmx5RGF5ICsgJ3JkIG9mIGV2ZXJ5ICcgKyB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gKyAnIGJ5ICcgKyB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBsYWNlaG9sZGVyO1xyXG4gIH1cclxuXHJcbiAgLy8gaWYgeWVhcmx5SW5wdXQgaXMgZ3JlYXRlciB0aGFuIDEgdGhlbiB0aGlzIGZ1bmN0aW9uIHdpbGwgY2FsbGVkXHJcbiAgZ2V0UGxhY2Vob2xkZXJGb3JHdDEoKSB7XHJcbiAgICBsZXQgcGxhY2Vob2xkZXIgPSAnJztcclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMSkge1xyXG4gICAgICBwbGFjZWhvbGRlciA9ICcxc3Qgb2YgJyArIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArICcsIEludGVydmFsOiBldmVyeSAnICsgdGhpcy55ZWFybHlJbnB1dCArICcgeWVhcnMgYnkgJyArIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDIpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPSAnMm5kIG9mICcgKyB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gKyAnLCBJbnRlcnZhbDogZXZlcnkgJyArIHRoaXMueWVhcmx5SW5wdXQgKyAnIHllYXJzIGJ5ICcgKyB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAzKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID0gJzNyZCBvZiAnICsgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICsgJywgSW50ZXJ2YWw6IGV2ZXJ5ICcgKyB0aGlzLnllYXJseUlucHV0ICsgJyB5ZWFycyBieSAnICsgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA+IDMpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPSB0aGlzLnllYXJseURheSArICd0aCBvZiAnICsgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICsgJywgSW50ZXJ2YWw6IGV2ZXJ5ICcgKyB0aGlzLnllYXJseUlucHV0ICsgJyB5ZWFycyBieSAnICsgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMzEgfHwgdGhpcy55ZWFybHlEYXkgPT09IDIxKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID0gdGhpcy55ZWFybHlEYXkgKyAnc3Qgb2YgJyArIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArICcsIEludGVydmFsOiBldmVyeSAnICsgdGhpcy55ZWFybHlJbnB1dCArICcgeWVhcnMgYnkgJyArIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDIyKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID0gdGhpcy55ZWFybHlEYXkgKyAnbmQgb2YgJyArIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArICcsIEludGVydmFsOiBldmVyeSAnICsgdGhpcy55ZWFybHlJbnB1dCArICcgeWVhcnMgYnkgJyArIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDIzKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID0gdGhpcy55ZWFybHlEYXkgKyAncmQgb2YgJyArIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArICcsIEludGVydmFsOiBldmVyeSAnICsgdGhpcy55ZWFybHlJbnB1dCArICcgeWVhcnMgYnkgJyArIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGxhY2Vob2xkZXI7XHJcbiAgICBcclxuICB9XHJcbn1cclxuIiwiPCEtLSA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1hbm51YWxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+UkVBU1NFU1NNRU5UIEZSRVFVRU5DWTo8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWFubnVhbC1pdGVtIHZ4LW1iLTVcIj5cclxuICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctdG9wPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctdG9wPlxyXG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1yYWRpby1saXN0PjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctcmFkaW8tbGlzdD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5SRUFTU0VTU01FTlQgRU1BSUwgTk9USUZJQ0FUSU9OOjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsLWl0ZW0gdngtbWItNVwiPlxyXG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1kdWUtZGF0ZT48L2FwcC1mcmVxdWVuY3ktZGlhbG9nLWR1ZS1kYXRlPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiAtLT5cclxuXHJcblxyXG48ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1hbm51YWxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+UkVBU1NFU1NNRU5UIEZSRVFVRU5DWTo8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWFubnVhbC1pdGVtIHZ4LW1iLTVcIj5cclxuICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctdG9wXHJcbiAgICAgICAgICAgIFtpZF09XCI1XCJcclxuICAgICAgICAgICAgW2lucHV0VGltZV09XCJ5ZWFybHlJbnRlcnZhbFwiXHJcbiAgICAgICAgICAgIFtvY2N1cnJlbmNlRmlyc3RdPVwieWVhcmx5SW5wdXRcIlxyXG4gICAgICAgICAgICBbeWVhcmx5RGF5XT1cInllYXJseURheVwiXHJcbiAgICAgICAgICAgIFtmcmVxdWVuY3lUeXBlXT1cIjJcIlxyXG4gICAgICAgICAgICAodGltZUNoYW5nZWQpPVwib25UaW1lQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlZEZpcnN0KT1cInZhbHVlQ2hhbmdlZEZpcnN0KCRldmVudClcIlxyXG4gICAgICAgICAgICAoeWVhcmx5RGF0ZUNoYW5nZWQpPVwiZGF0ZUNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9hcHAtZnJlcXVlbmN5LWRpYWxvZy10b3A+XHJcbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLXJhZGlvLWxpc3RcclxuICAgICAgICAgICAgW3JhZGlvTGlzdF09XCJtb250aExpc3RcIiBcclxuICAgICAgICAgICAgW3NlbGVjdGVkSW5kZXhdPVwieWVhcmx5U2VsZWN0ZWRcIiBcclxuICAgICAgICAgICAgKHNlbGVjdGVkUmFkaW8pPVwic2VsZWN0ZWRNb250aCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgW25hbWVdPVwiJ2FubnVhbCdcIj5cclxuICAgICAgICA8L2FwcC1mcmVxdWVuY3ktZGlhbG9nLXJhZGlvLWxpc3Q+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+UkVBU1NFU1NNRU5UIEVNQUlMIE5PVElGSUNBVElPTjo8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWFubnVhbC1pdGVtIHZ4LW1iLTVcIj5cclxuICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctZHVlLWRhdGVcclxuICAgICAgICAgICAgW3BhZ2VOYW1lXT1cIid5ZWFybHknXCJcclxuICAgICAgICAgICAgW21vZGVdPVwibW9kZVwiXHJcbiAgICAgICAgICAgIFtpZF09XCI1XCJcclxuICAgICAgICAgICAgW2NvbXBsZXRlZFZhbHVlXT1cInllYXJseVdpbmRvd1wiXHJcbiAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICA8L2FwcC1mcmVxdWVuY3ktZGlhbG9nLWR1ZS1kYXRlPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
298
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWRpYWxvZy1hbm51YWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3ktZGlhbG9nL2ZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsL2ZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZnJlcXVlbmN5LWRpYWxvZy9mcmVxdWVuY3ktZGlhbG9nLWFubnVhbC9mcmVxdWVuY3ktZGlhbG9nLWFubnVhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBUW5DLE1BQU0sT0FBTyw4QkFBOEI7SUEyQnpDLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBMUJ0RCxjQUFTLEdBQWUsRUFBRSxDQUFDO1FBRTNCLG1CQUFjLEdBQVcsVUFBVSxDQUFDO1FBQ3BDLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBQ3hCLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBQ3pCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLGNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN4RSx5QkFBb0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztR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QkFDWixJQUFJLENBQUMsY0FBYyxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEVBQUUsRUFBRTtZQUN6QixXQUFXO2dCQUNULElBQUksQ0FBQyxTQUFTO29CQUNkLFFBQVE7b0JBQ1IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO29CQUNwQyxvQkFBb0I7b0JBQ3BCLElBQUksQ0FBQyxXQUFXO29CQUNoQixZQUFZO29CQUNaLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDdkI7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDOzsySEE1U1UsOEJBQThCOytHQUE5Qiw4QkFBOEIsd01DVDNDLHVqRUEyQ007MkZEbENPLDhCQUE4QjtrQkFMMUMsU0FBUzsrQkFDRSw2QkFBNkI7dUdBd0I5QixhQUFhO3NCQUFyQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQvbW9tZW50JztcclxuaW1wb3J0IHsgRnJlcXVlbmN5U2VydmljZSB9IGZyb20gJy4uLy4uL2ZyZXF1ZW5jeS9mcmVxdWVuY3kuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mcmVxdWVuY3ktZGlhbG9nLWFubnVhbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mcmVxdWVuY3ktZGlhbG9nLWFubnVhbC5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5RGlhbG9nQW5udWFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBtb250aExpc3Q6IEFycmF5PGFueT4gPSBbXTtcclxuXHJcbiAgeWVhcmx5SW50ZXJ2YWw6IHN0cmluZyA9ICcxMTowMCBwbSc7XHJcbiAgeWVhcmx5SW5wdXQ6IG51bWJlciA9IDE7XHJcbiAgeWVhcmx5RmFpbGVkOiBudW1iZXIgPSA1O1xyXG4gIHllYXJseVdpbmRvdzogbnVtYmVyID0gMzA7XHJcbiAgeWVhcmx5RGF5ID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpPy5nZXREYXRlKCk7XHJcbiAgeWVhcmx5TGlmZUN5Y2xlU3RhcnQgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKSk7XHJcbiAgeWVhcmx5TGlmZUN5Y2xlRW5kVGltZSA9IG5ldyBEYXRlKFxyXG4gICAgdGhpcy55ZWFybHlMaWZlQ3ljbGVTdGFydC5nZXRUaW1lKCkgKyA4NjQwMDAwMFxyXG4gICk7XHJcbiAgeWVhcmx5TGlmZWN5Y2xlT2NjdXJhbmNlOiBudW1iZXIgPSAxMDtcclxuICB5ZWFybHlTZWxldGVkTGlmZWN5Y2xlVHlwZTogbnVtYmVyID0gMjtcclxuICB5ZWFybHlTZWxlY3RlZCA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS5jaGFuZ2VUaW1lWm9uZShuZXcgRGF0ZSgpKT8uZ2V0TW9udGgoKTtcclxuICBsaWZlY3ljbGVEZXRhaWxzOiBhbnkgPSAnMDAwMC0wMC0wMH5+MCc7XHJcbiAgcHJldmlvdXNTdGFydERhdGUgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcclxuICBmcmVxdWVuY3lJbmZvOiBhbnk7XHJcbiAgc2hvcnRNb250aDogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBmcmVxdWVuY3lEYXRhOiBhbnk7XHJcbiAgQElucHV0KCkgbW9kZTogYW55ID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIHN0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xyXG5cclxuICBAT3V0cHV0KCkgZnJlcXVlbmN5RGV0YWlscyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZyZXF1ZW5jeVNlcnZpY2U6IEZyZXF1ZW5jeVNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5tb250aExpc3QgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UubW9udGhBcnJheTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mbyA9IE9iamVjdC5hc3NpZ24odGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmZyZXF1ZW5jeUluZm8pO1xyXG4gICAgdGhpcy5zaG9ydE1vbnRoID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLm1vbnRoQXJyYXkubWFwKChtb250aCkgPT5cclxuICAgICAgbW9udGguc3Vic3RyaW5nKDAsIDMpXHJcbiAgICApO1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmZyZXF1ZW5jeURhdGE/LnBhdHRlcm4gIT0gJycgJiZcclxuICAgICAgcGFyc2VJbnQodGhpcy5mcmVxdWVuY3lEYXRhPy5wYXR0ZXJuLnNwbGl0KCd+JylbMF0pID09PSA0XHJcbiAgICApIHtcclxuICAgICAgdGhpcy5wb3B1bGF0ZUZyZXF1ZW5jeSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRBbm51YWxGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIHBvcHVsYXRlRnJlcXVlbmN5KCkge1xyXG4gICAgY29uc3QgcGF0dGVybkluZm8gPSB0aGlzLmZyZXF1ZW5jeURhdGE/LnBhdHRlcm4uc3BsaXQoJ34nKS5tYXAoTnVtYmVyKTtcclxuICAgIHRoaXMueWVhcmx5U2VsZWN0ZWQgPSBwYXR0ZXJuSW5mb1syXSAtIDE7XHJcbiAgICAvLyBjb25zdCBsaWZlY3ljbGVJbmZvID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5saWZlY3ljbGUuc3BsaXQoJ35+Jyk7XHJcbiAgICB0aGlzLnllYXJseUludGVydmFsID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5mYWlsZWRUaW1lO1xyXG4gICAgdGhpcy55ZWFybHlXaW5kb3cgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LndpbmRvdztcclxuICAgIHRoaXMueWVhcmx5SW5wdXQgPSBwYXR0ZXJuSW5mb1szXTtcclxuICAgIHRoaXMueWVhcmx5RGF5ID0gcGF0dGVybkluZm9bMV07XHJcbiAgICAvLyBpZihOdW1iZXIobGlmZWN5Y2xlSW5mb1sxXSkgPiAwKSB7XHJcbiAgICAvLyAgIHRoaXMueWVhcmx5TGlmZWN5Y2xlT2NjdXJhbmNlID0gTnVtYmVyKGxpZmVjeWNsZUluZm9bMV0pO1xyXG4gICAgLy8gfVxyXG4gICAgdGhpcy55ZWFybHlMaWZlY3ljbGVPY2N1cmFuY2UgPSBOdW1iZXIocGF0dGVybkluZm9bMV0pO1xyXG4gICAgdGhpcy55ZWFybHlMaWZlQ3ljbGVTdGFydCA9IG5ldyBEYXRlKHRoaXMuZnJlcXVlbmN5RGF0YT8uc3RhcnREYXRlICogMTAwMCk7XHJcbiAgICB0aGlzLnN0YXJ0RGF0ZSA9XHJcbiAgICAgIHRoaXMuZnJlcXVlbmN5RGF0YT8uc3RhcnRGcm9tID8/IHRoaXMuZnJlcXVlbmN5RGF0YT8uc3RhcnREYXRlO1xyXG4gICAgdGhpcy55ZWFybHlGYWlsZWQgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LmZhaWxlZDtcclxuICAgIC8vIGlmKCBsaWZlY3ljbGVJbmZvWzBdICE9PSAnMDAwMC0wMC0wMCcpIHtcclxuICAgIC8vICAgY29uc3QgZGF0ZVNlbGVjdGVkID0gbW9tZW50KGxpZmVjeWNsZUluZm9bMF0gKyAnIDExOjU5IHBtJywgJ0RELU1NTU0tWVlZWSBISDptbSBhJykudW5peCgpXHJcbiAgICAvLyAgIHRoaXMueWVhcmx5TGlmZUN5Y2xlRW5kVGltZSA9IG5ldyBEYXRlKGRhdGVTZWxlY3RlZCAqIDEwMDApO1xyXG4gICAgLy8gfVxyXG4gICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5saWZlY3ljbGU7XHJcbiAgICAvLyBpZiggdGhpcy5mcmVxdWVuY3lEYXRhPy5saWZlY3ljbGUgPT0gJzAwMDAtMDAtMDB+fjAnKSB7XHJcbiAgICAvLyAgIHRoaXMueWVhcmx5U2VsZXRlZExpZmVjeWNsZVR5cGUgPSAyO1xyXG4gICAgLy8gfSBlbHNlIGlmKGxpZmVjeWNsZUluZm9bMF0gIT09ICcwMDAwLTAwLTAwJykge1xyXG4gICAgLy8gICB0aGlzLnllYXJseVNlbGV0ZWRMaWZlY3ljbGVUeXBlID0gMDtcclxuICAgIC8vIH0gZWxzZSB7XHJcbiAgICAvLyAgIHRoaXMueWVhcmx5U2VsZXRlZExpZmVjeWNsZVR5cGUgPSAxO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgb25UaW1lQ2hhbmdlZChldmVudDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnllYXJseUludGVydmFsID0gZXZlbnQ7XHJcbiAgICB0aGlzLmdldEFubnVhbEZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgZGF0ZUNoYW5nZShldmVudDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnllYXJseURheSA9IGV2ZW50O1xyXG4gICAgdGhpcy5nZXRBbm51YWxGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIHZhbHVlQ2hhbmdlZEZpcnN0KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMueWVhcmx5SW5wdXQgPSBldmVudC52YWx1ZTtcclxuICAgIHRoaXMuZ2V0QW5udWFsRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZE1vbnRoKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMueWVhcmx5U2VsZWN0ZWQgPSBwYXJzZUludChldmVudC50YXJnZXQudmFsdWUpO1xyXG4gICAgdGhpcy5nZXRBbm51YWxGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIGxpZmVjeWNsZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcclxuICAgICAgY2FzZSAwOlxyXG4gICAgICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9IGV2ZW50LmVuZHNCeSArICd+fjAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDE6XHJcbiAgICAgICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gJzAwMDAtMDAtMDB+ficgKyBldmVudC5lbmRhZnRlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAyOlxyXG4gICAgICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9ICcwMDAwLTAwLTAwfn4wJztcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIGlmIChldmVudC5zdGFydEZyb20udG9TdHJpbmcoKS5sZW5ndGggPiAxMCkge1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoZXZlbnQuc3RhcnRGcm9tIC8gMTAwMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoZXZlbnQuc3RhcnRGcm9tKTtcclxuICAgIH1cclxuICAgIGxldCBlbmRCeURhdGUgPSBNYXRoLmZsb29yKFxyXG4gICAgICB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKSk/LmdldFRpbWUoKSAvIDEwMDAgK1xyXG4gICAgICAgIDg2NDAwMDAwXHJcbiAgICApO1xyXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09IDApIHtcclxuICAgICAgZW5kQnlEYXRlID0gZXZlbnQuZW5kc0J5XHJcbiAgICAgICAgPyBtb21lbnQoZXZlbnQuZW5kc0J5ICsgJyAwMDowMDowMCcsICdERC1NTU0tWVlZWSBISDptbTpzcycpLnVuaXgoKVxyXG4gICAgICAgIDogZW5kQnlEYXRlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmZhaWxlZF90aW1lX3V0YyA9IGVuZEJ5RGF0ZTtcclxuICAgIHRoaXMuZ2V0QW5udWFsRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBvblZhbHVlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudC50eXBlID09PSAnY29tcGxldGVkJykge1xyXG4gICAgICB0aGlzLnllYXJseVdpbmRvdyA9IGV2ZW50LnZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy55ZWFybHlGYWlsZWQgPSBldmVudC52YWx1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0QW5udWFsRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICAvLyBmcmVxdWVuY3kgcGF0dGVybiBhbmQgZGV0YWlscyBpbmZvXHJcbiAgZ2V0QW5udWFsRnJlcXVlbmN5KCkge1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnBsYWNlaG9sZGVyID0gdGhpcy5nZXRGcmVxdWVuY3lQbGFjZWhvbGRlcihcclxuICAgICAgTnVtYmVyKHRoaXMueWVhcmx5SW5wdXQpXHJcbiAgICApO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnBhdHRlcm4gPVxyXG4gICAgICA0ICtcclxuICAgICAgJ34nICtcclxuICAgICAgdGhpcy55ZWFybHlEYXkgK1xyXG4gICAgICAnficgK1xyXG4gICAgICAodGhpcy55ZWFybHlTZWxlY3RlZCArIDEpICtcclxuICAgICAgJ34nICtcclxuICAgICAgdGhpcy55ZWFybHlJbnB1dDtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5jYXNlID0gJ3llYXJseSc7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uZmFpbGVkQWZ0ZXIgPSB0aGlzLnllYXJseUZhaWxlZDtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby53aW5kb3cgPSB0aGlzLnllYXJseVdpbmRvdztcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby50aW1lSW4xMmhyID0gdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby50aW1lSW4yNEhyID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLnRpbWVGcm9tMTJoVG8yNGgoXHJcbiAgICAgIHRoaXMueWVhcmx5SW50ZXJ2YWxcclxuICAgICk7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ubGlmZWN5Y2xlRGV0YWlscyA9IHRoaXMubGlmZWN5Y2xlRGV0YWlscztcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5zdGFydEZyb20gPSB0aGlzLnN0YXJ0RGF0ZTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5yZXBvcnRJZCA9IDA7XHJcbiAgICBjb25zb2xlLmxvZygnIHRoaXMuZnJlcXVlbmN5SW5mbyA9PT4nLCB0aGlzLmZyZXF1ZW5jeUluZm8pO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lEZXRhaWxzLmVtaXQodGhpcy5mcmVxdWVuY3lJbmZvKTtcclxuICB9XHJcblxyXG4gIGdldEZyZXF1ZW5jeVBsYWNlaG9sZGVyKHllYXJseUlucHV0OiBhbnkpIHtcclxuICAgIGxldCBwbGFjZWhvbGRlciA9ICcnO1xyXG4gICAgaWYgKHllYXJseUlucHV0ID09PSAxKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID0gdGhpcy5nZXRQbGFjZWhvbGRlckZvclN0MigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPSB0aGlzLmdldFBsYWNlaG9sZGVyRm9yR3QxKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG5cclxuICAvLyBpZiB5ZWFybHlJbnB1dCBpcyBzbWFsbGVyIHRoYW4gMiB0aGVuIHRoaXMgZnVuY3Rpb24gd2lsbCBjYWxsZWRcclxuICBnZXRQbGFjZWhvbGRlckZvclN0MigpIHtcclxuICAgIGxldCBwbGFjZWhvbGRlciA9ICcnO1xyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAxKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICAnMXN0IG9mIGV2ZXJ5ICcgK1xyXG4gICAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArXHJcbiAgICAgICAgJyBieSAnICtcclxuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAyKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICAnMm5kIG9mIGV2ZXJ5ICcgK1xyXG4gICAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArXHJcbiAgICAgICAgJyBieSAnICtcclxuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAzKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICAnM3JkIG9mIGV2ZXJ5ICcgK1xyXG4gICAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArXHJcbiAgICAgICAgJyBieSAnICtcclxuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID4gMykge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgdGhpcy55ZWFybHlEYXkgK1xyXG4gICAgICAgICd0aCBvZiBldmVyeSAnICtcclxuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xyXG4gICAgICAgICcgYnkgJyArXHJcbiAgICAgICAgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMzEgfHwgdGhpcy55ZWFybHlEYXkgPT09IDIxKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICB0aGlzLnllYXJseURheSArXHJcbiAgICAgICAgJ3N0IG9mIGV2ZXJ5ICcgK1xyXG4gICAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArXHJcbiAgICAgICAgJyBieSAnICtcclxuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAyMikge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgdGhpcy55ZWFybHlEYXkgK1xyXG4gICAgICAgICduZCBvZiBldmVyeSAnICtcclxuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xyXG4gICAgICAgICcgYnkgJyArXHJcbiAgICAgICAgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMjMpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPVxyXG4gICAgICAgIHRoaXMueWVhcmx5RGF5ICtcclxuICAgICAgICAncmQgb2YgZXZlcnkgJyArXHJcbiAgICAgICAgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICtcclxuICAgICAgICAnIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG5cclxuICAvLyBpZiB5ZWFybHlJbnB1dCBpcyBncmVhdGVyIHRoYW4gMSB0aGVuIHRoaXMgZnVuY3Rpb24gd2lsbCBjYWxsZWRcclxuICBnZXRQbGFjZWhvbGRlckZvckd0MSgpIHtcclxuICAgIGxldCBwbGFjZWhvbGRlciA9ICcnO1xyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAxKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICAnMXN0IG9mICcgK1xyXG4gICAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArXHJcbiAgICAgICAgJywgSW50ZXJ2YWw6IGV2ZXJ5ICcgK1xyXG4gICAgICAgIHRoaXMueWVhcmx5SW5wdXQgK1xyXG4gICAgICAgICcgeWVhcnMgYnkgJyArXHJcbiAgICAgICAgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMikge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgJzJuZCBvZiAnICtcclxuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xyXG4gICAgICAgICcsIEludGVydmFsOiBldmVyeSAnICtcclxuICAgICAgICB0aGlzLnllYXJseUlucHV0ICtcclxuICAgICAgICAnIHllYXJzIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDMpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPVxyXG4gICAgICAgICczcmQgb2YgJyArXHJcbiAgICAgICAgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICtcclxuICAgICAgICAnLCBJbnRlcnZhbDogZXZlcnkgJyArXHJcbiAgICAgICAgdGhpcy55ZWFybHlJbnB1dCArXHJcbiAgICAgICAgJyB5ZWFycyBieSAnICtcclxuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID4gMykge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgdGhpcy55ZWFybHlEYXkgK1xyXG4gICAgICAgICd0aCBvZiAnICtcclxuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xyXG4gICAgICAgICcsIEludGVydmFsOiBldmVyeSAnICtcclxuICAgICAgICB0aGlzLnllYXJseUlucHV0ICtcclxuICAgICAgICAnIHllYXJzIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDMxIHx8IHRoaXMueWVhcmx5RGF5ID09PSAyMSkge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgdGhpcy55ZWFybHlEYXkgK1xyXG4gICAgICAgICdzdCBvZiAnICtcclxuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xyXG4gICAgICAgICcsIEludGVydmFsOiBldmVyeSAnICtcclxuICAgICAgICB0aGlzLnllYXJseUlucHV0ICtcclxuICAgICAgICAnIHllYXJzIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDIyKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICB0aGlzLnllYXJseURheSArXHJcbiAgICAgICAgJ25kIG9mICcgK1xyXG4gICAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArXHJcbiAgICAgICAgJywgSW50ZXJ2YWw6IGV2ZXJ5ICcgK1xyXG4gICAgICAgIHRoaXMueWVhcmx5SW5wdXQgK1xyXG4gICAgICAgICcgeWVhcnMgYnkgJyArXHJcbiAgICAgICAgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMjMpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPVxyXG4gICAgICAgIHRoaXMueWVhcmx5RGF5ICtcclxuICAgICAgICAncmQgb2YgJyArXHJcbiAgICAgICAgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICtcclxuICAgICAgICAnLCBJbnRlcnZhbDogZXZlcnkgJyArXHJcbiAgICAgICAgdGhpcy55ZWFybHlJbnB1dCArXHJcbiAgICAgICAgJyB5ZWFycyBieSAnICtcclxuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBsYWNlaG9sZGVyO1xyXG4gIH1cclxufVxyXG4iLCI8IS0tIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWFubnVhbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5SRUFTU0VTU01FTlQgRlJFUVVFTkNZOjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsLWl0ZW0gdngtbWItNVwiPlxyXG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy10b3A+PC9hcHAtZnJlcXVlbmN5LWRpYWxvZy10b3A+XHJcbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLXJhZGlvLWxpc3Q+PC9hcHAtZnJlcXVlbmN5LWRpYWxvZy1yYWRpby1saXN0PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbWItMVwiPlJFQVNTRVNTTUVOVCBFTUFJTCBOT1RJRklDQVRJT046PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1hbm51YWwtaXRlbSB2eC1tYi01XCI+XHJcbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLWR1ZS1kYXRlPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctZHVlLWRhdGU+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+IC0tPlxyXG5cclxuXHJcbjxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWFubnVhbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5SRUFTU0VTU01FTlQgRlJFUVVFTkNZOjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsLWl0ZW0gdngtbWItNVwiPlxyXG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy10b3BcclxuICAgICAgICAgICAgW2lkXT1cIjVcIlxyXG4gICAgICAgICAgICBbaW5wdXRUaW1lXT1cInllYXJseUludGVydmFsXCJcclxuICAgICAgICAgICAgW29jY3VycmVuY2VGaXJzdF09XCJ5ZWFybHlJbnB1dFwiXHJcbiAgICAgICAgICAgIFt5ZWFybHlEYXldPVwieWVhcmx5RGF5XCJcclxuICAgICAgICAgICAgW2ZyZXF1ZW5jeVR5cGVdPVwiMlwiXHJcbiAgICAgICAgICAgICh0aW1lQ2hhbmdlZCk9XCJvblRpbWVDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAodmFsdWVDaGFuZ2VkRmlyc3QpPVwidmFsdWVDaGFuZ2VkRmlyc3QoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICh5ZWFybHlEYXRlQ2hhbmdlZCk9XCJkYXRlQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICA8L2FwcC1mcmVxdWVuY3ktZGlhbG9nLXRvcD5cclxuICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctcmFkaW8tbGlzdFxyXG4gICAgICAgICAgICBbcmFkaW9MaXN0XT1cIm1vbnRoTGlzdFwiIFxyXG4gICAgICAgICAgICBbc2VsZWN0ZWRJbmRleF09XCJ5ZWFybHlTZWxlY3RlZFwiIFxyXG4gICAgICAgICAgICAoc2VsZWN0ZWRSYWRpbyk9XCJzZWxlY3RlZE1vbnRoKCRldmVudClcIlxyXG4gICAgICAgICAgICBbbmFtZV09XCInYW5udWFsJ1wiPlxyXG4gICAgICAgIDwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctcmFkaW8tbGlzdD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5SRUFTU0VTU01FTlQgRU1BSUwgTk9USUZJQ0FUSU9OOjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsLWl0ZW0gdngtbWItNVwiPlxyXG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1kdWUtZGF0ZVxyXG4gICAgICAgICAgICBbcGFnZU5hbWVdPVwiJ3llYXJseSdcIlxyXG4gICAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgICAgICAgICAgW2lkXT1cIjVcIlxyXG4gICAgICAgICAgICBbY29tcGxldGVkVmFsdWVdPVwieWVhcmx5V2luZG93XCJcclxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctZHVlLWRhdGU+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|