@ohioepa/oepa-ui-lib 1.2.11 → 1.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/oepa-user-account/oepa-user-account.service.mjs +15 -22
- package/esm2022/lib/pin-modal/pin-modal.component.mjs +6 -3
- package/esm2022/lib/table/table.component.mjs +14 -4
- package/fesm2022/ohioepa-oepa-ui-lib.mjs +32 -26
- package/fesm2022/ohioepa-oepa-ui-lib.mjs.map +1 -1
- package/lib/oepa-user-account/oepa-user-account.service.d.ts +5 -6
- package/lib/pin-modal/pin-modal.component.d.ts +2 -1
- package/ohioepa-oepa-ui-lib-1.2.13.tgz +0 -0
- package/package.json +1 -1
- package/ohioepa-oepa-ui-lib-1.2.11.tgz +0 -0
|
@@ -18,6 +18,7 @@ export class OepaUserAccountService {
|
|
|
18
18
|
personID = '';
|
|
19
19
|
sessionID = '';
|
|
20
20
|
webappsRootURL = '';
|
|
21
|
+
ebizVersion = '';
|
|
21
22
|
logoutPath = '';
|
|
22
23
|
idleTimerRunning = false;
|
|
23
24
|
idleTime = 0;
|
|
@@ -40,7 +41,6 @@ export class OepaUserAccountService {
|
|
|
40
41
|
return this.http.get(this.hostUrl + this.accountsUrl + '/' + userid);
|
|
41
42
|
}
|
|
42
43
|
retrieveAccountByOHID(ohid, app) {
|
|
43
|
-
console.log('retrieve account for: ' + ohid);
|
|
44
44
|
const url = this.hostUrl + this.accountsUrl + '/ohid/' + ohid;
|
|
45
45
|
return this.http.get(url, { params: { 'app': app } }).pipe(map((userAccount) => {
|
|
46
46
|
this.userAccount$.next(userAccount);
|
|
@@ -48,31 +48,27 @@ export class OepaUserAccountService {
|
|
|
48
48
|
}));
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
|
-
* @deprecated Should not use session user ID for Amplify apps
|
|
52
51
|
* Retrieve the user account for the currently logged in user.
|
|
53
52
|
* @returns Observable<OepaUserAccount>
|
|
54
53
|
*/
|
|
55
|
-
retrieveAccountForCurrentUser() {
|
|
54
|
+
retrieveAccountForCurrentUser(app) {
|
|
56
55
|
return this.http.get(this.hostUrl + '/api/v1/userAccounts/login').pipe(map((account) => {
|
|
57
56
|
if (!account) {
|
|
58
57
|
if (this.personID && this.sessionID) {
|
|
59
|
-
this.retrieveAccountForInternalSession(this.personID, this.sessionID).subscribe({
|
|
58
|
+
this.retrieveAccountForInternalSession(this.personID, this.sessionID, app).subscribe({
|
|
60
59
|
next: internalAccount => {
|
|
61
60
|
if (internalAccount) {
|
|
62
61
|
this.account = internalAccount;
|
|
63
62
|
}
|
|
64
63
|
else {
|
|
65
|
-
this.logMessageOnServer('retrieveAccountForCurrentUser - no account, redirecting to logout');
|
|
66
64
|
this.redirectToLogout();
|
|
67
65
|
}
|
|
68
66
|
}, error: err => {
|
|
69
|
-
this.logMessageOnServer('Failed retrieving internal account: ' + err);
|
|
70
67
|
this.redirectToLogout();
|
|
71
68
|
}
|
|
72
69
|
});
|
|
73
70
|
}
|
|
74
71
|
else {
|
|
75
|
-
this.logMessageOnServer('retrieveAccountForCurrentUser - no account, redirecting to logout');
|
|
76
72
|
this.redirectToLogout();
|
|
77
73
|
}
|
|
78
74
|
}
|
|
@@ -97,19 +93,16 @@ export class OepaUserAccountService {
|
|
|
97
93
|
}
|
|
98
94
|
/**
|
|
99
95
|
* Retrieve the user account for the currently logged in user.
|
|
100
|
-
* @deprecated should retrieve account by OHID instead
|
|
101
96
|
* @param sessionID person ID for internal user
|
|
102
97
|
* @returns Observable<OepaUserAccount>
|
|
103
98
|
*/
|
|
104
|
-
retrieveAccountForInternalSession(personID, sessionID) {
|
|
99
|
+
retrieveAccountForInternalSession(personID, sessionID, app) {
|
|
105
100
|
this.account = {};
|
|
106
|
-
const url = this.hostUrl + '/
|
|
107
|
-
|
|
108
|
-
return this.http.get(url).pipe(map((account) => {
|
|
101
|
+
const url = this.hostUrl + this.accountsUrl + '/internal/personID/' + personID + '/sessionID/' + sessionID;
|
|
102
|
+
return this.http.get(url, { params: { 'app': app } }).pipe(map((account) => {
|
|
109
103
|
this.account = account;
|
|
110
104
|
this.personID = personID;
|
|
111
105
|
this.sessionID = sessionID;
|
|
112
|
-
console.log('retrieveAccountForInternalSession: ' + this.account?.loginName || '<unknown>');
|
|
113
106
|
return account;
|
|
114
107
|
}));
|
|
115
108
|
}
|
|
@@ -184,13 +177,13 @@ export class OepaUserAccountService {
|
|
|
184
177
|
* The methods below currently apply only to eBiz.
|
|
185
178
|
* ===========================================================================================================================
|
|
186
179
|
*/
|
|
187
|
-
getWebappsRootURL() {
|
|
180
|
+
getWebappsRootURL(app) {
|
|
188
181
|
if (this.webappsRootURL) {
|
|
189
182
|
return of(this.webappsRootURL);
|
|
190
183
|
}
|
|
191
184
|
else {
|
|
192
185
|
const url = this.hostUrl + '/api/v1/gateway/gatewayConfig';
|
|
193
|
-
return this.http.get(url).pipe(map((gatewayConfig) => {
|
|
186
|
+
return this.http.get(url, { params: { 'app': app } }).pipe(map((gatewayConfig) => {
|
|
194
187
|
if (gatewayConfig) {
|
|
195
188
|
this.webappsRootURL = gatewayConfig.webappsRootURL;
|
|
196
189
|
}
|
|
@@ -198,17 +191,17 @@ export class OepaUserAccountService {
|
|
|
198
191
|
}));
|
|
199
192
|
}
|
|
200
193
|
}
|
|
201
|
-
getEBizVersion() {
|
|
202
|
-
if (this.
|
|
203
|
-
return of(this.
|
|
194
|
+
getEBizVersion(app) {
|
|
195
|
+
if (this.ebizVersion) {
|
|
196
|
+
return of(this.ebizVersion);
|
|
204
197
|
}
|
|
205
198
|
else {
|
|
206
199
|
const url = this.hostUrl + '/api/v1/gateway/gatewayConfig';
|
|
207
|
-
return this.http.get(url).pipe(map((gatewayConfig) => {
|
|
200
|
+
return this.http.get(url, { params: { 'app': app } }).pipe(map((gatewayConfig) => {
|
|
208
201
|
if (gatewayConfig) {
|
|
209
|
-
this.
|
|
202
|
+
this.ebizVersion = gatewayConfig.versionNumber;
|
|
210
203
|
}
|
|
211
|
-
return this.
|
|
204
|
+
return this.ebizVersion;
|
|
212
205
|
}));
|
|
213
206
|
}
|
|
214
207
|
}
|
|
@@ -338,4 +331,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
338
331
|
type: Inject,
|
|
339
332
|
args: ['ebizRootURL']
|
|
340
333
|
}] }] });
|
|
341
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2VwYS11c2VyLWFjY291bnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvb2VwYS11c2VyLWFjY291bnQvb2VwYS11c2VyLWFjY291bnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFLMUI7O0dBRUc7QUFFSCxNQUFNLE9BQU8sc0JBQXNCO0lBa0JiO0lBQWlEO0lBakI3RCxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ2xCLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQztJQUN0QyxlQUFlLEdBQUcsa0JBQWtCLENBQUM7SUFDckMsY0FBYyxHQUFHLGlCQUFpQixDQUFDO0lBQ25DLE9BQU8sQ0FBbUI7SUFDMUIsUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUN0QixTQUFTLEdBQVcsRUFBRSxDQUFDO0lBQ3ZCLGNBQWMsR0FBVyxFQUFFLENBQUM7SUFDNUIsVUFBVSxHQUFXLEVBQUUsQ0FBQztJQUN4QixnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDekIsUUFBUSxHQUFVLENBQUMsQ0FBQztJQUNwQixhQUFhLEdBQUcsQ0FBQyxFQUFFLEdBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyx5Q0FBeUM7SUFDbEUsV0FBVyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7SUFDcEMsU0FBUyxDQUFNO0lBQ2hCLFlBQVksR0FBNkIsSUFBSSxPQUFPLEVBQW1CLENBQUM7SUFDdkUsU0FBUyxHQUFXLEVBQUUsQ0FBQztJQUUvQixZQUFvQixJQUFnQixFQUFp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Q0QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLENBQUM7UUFDSCxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRU0sY0FBYztRQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxrQkFBa0IsQ0FBQyxPQUFnQjtRQUN4QyxNQUFNLGVBQWUsR0FBUTtZQUMzQixRQUFRLEVBQUUsT0FBTztTQUNsQixDQUFBO1FBQ0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxtQ0FBbUMsQ0FBQztRQUMvRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUNuRCxDQUFDO3dHQXhWUSxzQkFBc0IsNENBa0JhLGFBQWE7NEdBbEJoRCxzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVU7OzBCQW1COEIsTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHsgT2VwYVVzZXJBY2NvdW50LCBQcm9ncmFtUHJpdmlsZWdlLCBQcm9ncmFtUHJpdmlsZWdlUmVxdWVzdCwgRGVsZWdhdGlvbiwgT0VQQVJvbGUsIE9lcGFQcml2aWxlZ2UgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWNvbW1vbi1saWInO1xuXG4vKipcbiAqIE9lcGFVc2VyQWNjb3VudFNlcnZpY2UgLSBBIGNvbGxlY3Rpb24gb2YgbWV0aG9kcyBmb3IgYWNjZXNzaW5nIGFuZCBtYW5pcHVsYXRpbmcgdXNlciBhY2NvdW50cy5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9lcGFVc2VyQWNjb3VudFNlcnZpY2Uge1xuICBwcml2YXRlIGhvc3RVcmwgPSAnL2ViaXonO1xuICBwcml2YXRlIGFjY291bnRzVXJsID0gJy9hcGkvdjEvdXNlci1hY2NvdW50cyc7XG4gIHByaXZhdGUgZWJpekFjY291bnRzVXJsID0gJy9hcGkvdjEvYWNjb3VudHMnO1xuICBwcml2YXRlIGViaXpTZXNzaW9uVXJsID0gJy9hcGkvdjEvc2Vzc2lvbic7XG4gIHByaXZhdGUgYWNjb3VudCE6IE9lcGFVc2VyQWNjb3VudDtcbiAgcHJpdmF0ZSBwZXJzb25JRDogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgc2Vzc2lvbklEOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSB3ZWJhcHBzUm9vdFVSTDogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgbG9nb3V0UGF0aDogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgaWRsZVRpbWVyUnVubmluZyA9IGZhbHNlO1xuICBwcml2YXRlIGlkbGVUaW1lOm51bWJlciA9IDA7XG4gIHByaXZhdGUgaWRsZVRocmVzaG9sZCA9ICgyOSo2MCk7IC8vIDI5IG1pbnV0ZSB0aW1lb3V0IHRocmVzaG9sZCBieSBkZWZhdWx0XG4gIHByaXZhdGUgaWRsZVN1YmplY3QgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG4gIHByaXZhdGUgdGltZW91dElEOiBhbnk7XG4gIHB1YmxpYyB1c2VyQWNjb3VudCQ6IFN1YmplY3Q8T2VwYVVzZXJBY2NvdW50PiA9IG5ldyBTdWJqZWN0PE9lcGFVc2VyQWNjb3VudD4oKTtcbiAgcHJpdmF0ZSBhdXRoVG9rZW46IHN0cmluZyA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgQEluamVjdCgnZWJpelJvb3RVUkwnKSBwcml2YXRlIGViaXpSb290VVJMOiBzdHJpbmcpIHtcbiAgICB0aGlzLmhvc3RVcmwgPSB0aGlzLmViaXpSb290VVJMICsgdGhpcy5ob3N0VXJsO1xuICAgIHRoaXMubG9nb3V0UGF0aCA9ICcvanNwL2xvZ291dC5qc3AnO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIHRoZSBVc2VyIEFjY291bnQgZm9yIHRoZSB1c2VyIHVzZXJpZC5cbiAgICogQHBhcmFtIHVzZXJpZFxuICAgKi9cbiAgcHVibGljIHJldHJpZXZlQWNjb3VudEZvclVzZXIodXNlcmlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE9lcGFVc2VyQWNjb3VudD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE9lcGFVc2VyQWNjb3VudD4odGhpcy5ob3N0VXJsICsgdGhpcy5hY2NvdW50c1VybCArICcvJyArIHVzZXJpZCk7XG4gIH1cblxuICBwdWJsaWMgcmV0cmlldmVBY2NvdW50QnlPSElEKG9oaWQ6IHN0cmluZywgYXBwOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE9lcGFVc2VyQWNjb3VudD4ge1xuICAgIGNvbnNvbGUubG9nKCdyZXRyaWV2ZSBhY2NvdW50IGZvcjogJyArIG9oaWQpO1xuICAgIGNvbnN0IHVybCA9IHRoaXMuaG9zdFVybCArIHRoaXMuYWNjb3VudHNVcmwgKyAnL29oaWQvJyArIG9oaWQgO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE9lcGFVc2VyQWNjb3VudD4odXJsLCB7IHBhcmFtczogeyAnYXBwJzogYXBwIH0gfSkucGlwZShcbiAgICAgIG1hcCgodXNlckFjY291bnQ6IE9lcGFVc2VyQWNjb3VudCkgPT4ge1xuICAgICAgICB0aGlzLnVzZXJBY2NvdW50JC5uZXh0KHVzZXJBY2NvdW50KTtcbiAgICAgICAgcmV0dXJuIHVzZXJBY2NvdW50O1xuICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFNob3VsZCBub3QgdXNlIHNlc3Npb24gdXNlciBJRCBmb3IgQW1wbGlmeSBhcHBzXG4gICAqIFJldHJpZXZlIHRoZSB1c2VyIGFjY291bnQgZm9yIHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXIuXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8T2VwYVVzZXJBY2NvdW50PlxuICAgKi9cbiAgcHVibGljIHJldHJpZXZlQWNjb3VudEZvckN1cnJlbnRVc2VyKCk6IE9ic2VydmFibGU8T2VwYVVzZXJBY2NvdW50PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8T2VwYVVzZXJBY2NvdW50Pih0aGlzLmhvc3RVcmwgKyAnL2FwaS92MS91c2VyQWNjb3VudHMvbG9naW4nKS5waXBlKG1hcCgoYWNjb3VudDogT2VwYVVzZXJBY2NvdW50KSA9PiB7XG4gICAgICBpZiAoIWFjY291bnQpIHtcbiAgICAgICAgaWYgKHRoaXMucGVyc29uSUQgJiYgdGhpcy5zZXNzaW9uSUQpIHtcbiAgICAgICAgICB0aGlzLnJldHJpZXZlQWNjb3VudEZvckludGVybmFsU2Vzc2lvbih0aGlzLnBlcnNvbklELCB0aGlzLnNlc3Npb25JRCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IGludGVybmFsQWNjb3VudCA9PiB7XG4gICAgICAgICAgICBpZiAoaW50ZXJuYWxBY2NvdW50KSB7XG4gICAgICAgICAgICAgIHRoaXMuYWNjb3VudCA9IGludGVybmFsQWNjb3VudFxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5sb2dNZXNzYWdlT25TZXJ2ZXIoJ3JldHJpZXZlQWNjb3VudEZvckN1cnJlbnRVc2VyIC0gbm8gYWNjb3VudCwgcmVkaXJlY3RpbmcgdG8gbG9nb3V0Jyk7XG4gICAgICAgICAgICAgIHRoaXMucmVkaXJlY3RUb0xvZ291dCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2dNZXNzYWdlT25TZXJ2ZXIoJ0ZhaWxlZCByZXRyaWV2aW5nIGludGVybmFsIGFjY291bnQ6ICcgKyBlcnIpO1xuICAgICAgICAgICAgdGhpcy5yZWRpcmVjdFRvTG9nb3V0KCk7XG4gICAgICAgICAgfX0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubG9nTWVzc2FnZU9uU2VydmVyKCdyZXRyaWV2ZUFjY291bnRGb3JDdXJyZW50VXNlciAtIG5vIGFjY291bnQsIHJlZGlyZWN0aW5nIHRvIGxvZ291dCcpO1xuICAgICAgICAgIHRoaXMucmVkaXJlY3RUb0xvZ291dCgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFjY291bnQgPSBhY2NvdW50O1xuICAgICAgICBjb25zb2xlLmxvZygncmV0cmlldmVBY2NvdW50Rm9yQ3VycmVudFVzZXI6ICcgKyB0aGlzLmFjY291bnQ/LmxvZ2luTmFtZSB8fCAnPHVua25vd24+Jyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5hY2NvdW50O1xuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWRpcmVjdCB0byBsb2dvdXQgc2NyZWVuIGlmIHVzZXIgaXMgbm90IGZvdW5kXG4gICAqL1xuICBwdWJsaWMgcmVkaXJlY3RUb0xvZ291dChtc2cgPzogc3RyaW5nKSB7XG4gICAgbGV0IGxvZ291dFVybCA9IHRoaXMubG9nb3V0UGF0aDtcbiAgICBpZiAodGhpcy53ZWJhcHBzUm9vdFVSTCkge1xuICAgICAgbG9nb3V0VXJsID0gdGhpcy53ZWJhcHBzUm9vdFVSTCArICh0aGlzLmxvZ291dFBhdGggfHwgJycpO1xuICAgIH1cbiAgICBhbGVydChtc2cgfHwgJ0Nvbm5lY3Rpb24gbG9zdC4gWW91IHdpbGwgYmUgcmVkaXJlY3RlZCB0byB0aGUgbG9naW4gcGFnZS4nKTtcbiAgICBjb25zb2xlLmxvZygncmVkaXJlY3RpbmcgdG8gbG9nb3V0VXJsOicgKyBsb2dvdXRVcmwpO1xuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gbG9nb3V0VXJsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIHRoZSB1c2VyIGFjY291bnQgZm9yIHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXIuXG4gICAqIEBkZXByZWNhdGVkIHNob3VsZCByZXRyaWV2ZSBhY2NvdW50IGJ5IE9ISUQgaW5zdGVhZFxuICAgKiBAcGFyYW0gc2Vzc2lvbklEIHBlcnNvbiBJRCBmb3IgaW50ZXJuYWwgdXNlclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPE9lcGFVc2VyQWNjb3VudD5cbiAgICovXG4gIHB1YmxpYyByZXRyaWV2ZUFjY291bnRGb3JJbnRlcm5hbFNlc3Npb24ocGVyc29uSUQ6IHN0cmluZywgc2Vzc2lvbklEOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE9lcGFVc2VyQWNjb3VudD4ge1xuICAgIHRoaXMuYWNjb3VudCA9IHt9O1xuICAgIGNvbnN0IHVybCA9IHRoaXMuaG9zdFVybCArICcvYXBpL3YxL3VzZXJBY2NvdW50cy9pbnRlcm5hbC9wZXJzb25JRC8nICsgcGVyc29uSUQgKyAnL3Nlc3Npb25JRC8nICsgc2Vzc2lvbklEO1xuICAgIGNvbnNvbGUubG9nKCdyZXRyaWV2ZUFjY291bnRGb3JJbnRlcm5hbFNlc3Npb246ICcgKyB1cmwpO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE9lcGFVc2VyQWNjb3VudD4odXJsKS5waXBlKG1hcCgoYWNjb3VudDogT2VwYVVzZXJBY2NvdW50KSA9PiB7XG4gICAgICB0aGlzLmFjY291bnQgPSBhY2NvdW50O1xuICAgICAgdGhpcy5wZXJzb25JRCA9IHBlcnNvbklEO1xuICAgICAgdGhpcy5zZXNzaW9uSUQgPSBzZXNzaW9uSUQ7XG4gICAgICBjb25zb2xlLmxvZygncmV0cmlldmVBY2NvdW50Rm9ySW50ZXJuYWxTZXNzaW9uOiAnICsgdGhpcy5hY2NvdW50Py5sb2dpbk5hbWUgfHwgJzx1bmtub3duPicpO1xuICAgICAgcmV0dXJuIGFjY291bnQ7XG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZSB3aGV0aGVyIGFjY291bnQgaGFzIHRoZSByb2xlIHJvbGVOYW1lLlxuICAgKiBAcGFyYW0gYWNjb3VudFxuICAgKiBAcGFyYW0gcm9sZU5hbWVcbiAgICovXG4gIHB1YmxpYyBhY2NvdW50SGFzUm9sZShhY2NvdW50OiBPZXBhVXNlckFjY291bnQsIHJvbGVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBsZXQgaGFzUm9sZSA9IGZhbHNlO1xuICAgIGNvbnN0IHJvbGVMaXN0ID0gdGhpcy5nZXRSb2xlTGlzdChhY2NvdW50KTtcbiAgICBpZiAocm9sZUxpc3QgJiYgcm9sZUxpc3QubGVuZ3RoKSB7XG4gICAgICBoYXNSb2xlID0gKHJvbGVMaXN0LmluZGV4T2Yocm9sZU5hbWUpID4gLTEpO1xuICAgIH1cbiAgICByZXR1cm4gaGFzUm9sZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Um9sZUxpc3QoYWNjb3VudDogT2VwYVVzZXJBY2NvdW50KTogQXJyYXk8c3RyaW5nPiB7XG4gICAgY29uc3Qgcm9sZUxpc3Q6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgICBpZiAoYWNjb3VudC5yb2xlTGlzdCAmJiBhY2NvdW50LnJvbGVMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgIGFjY291bnQucm9sZUxpc3QuZm9yRWFjaCgocm9sZTogT0VQQVJvbGUpID0+IHtcbiAgICAgICAgcm9sZUxpc3QucHVzaChyb2xlLm5hbWUgfHwgJycpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByb2xlTGlzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmUgd2hldGhlciBhY2NvdW50IGhhcyB0aGUgcHJpdmlsZWdlIHByaXZpbGVnZVR5cGUuXG4gICAqIEBwYXJhbSBhY2NvdW50XG4gICAqIEBwYXJhbSBwcml2aWxlZ2VUeXBlXG4gICAqL1xuICBwdWJsaWMgYWNjb3VudEhhc1ByaXZpbGVnZShhY2NvdW50OiBPZXBhVXNlckFjY291bnQsIHByaXZpbGVnZVR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGxldCBoYXNQcml2aWxlZ2UgPSBmYWxzZTtcbiAgICBjb25zdCBwcml2aWxlZ2VMaXN0ID0gdGhpcy5nZXRQcml2aWxlZ2VMaXN0KGFjY291bnQpO1xuICAgIGlmIChwcml2aWxlZ2VMaXN0ICYmIHByaXZpbGVnZUxpc3QubGVuZ3RoKSB7XG4gICAgICBoYXNQcml2aWxlZ2UgPSAocHJpdmlsZWdlTGlzdC5pbmRleE9mKHByaXZpbGVnZVR5cGUpID4gLTEpO1xuICAgIH1cbiAgICByZXR1cm4gaGFzUHJpdmlsZWdlO1xuICB9XG5cbiAgcHVibGljIGdldFByaXZpbGVnZUxpc3QoYWNjb3VudDogT2VwYVVzZXJBY2NvdW50KTogQXJyYXk8c3RyaW5nPiB7XG4gICAgY29uc3QgcHJpdmlsZWdlTGlzdDogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgIGlmIChhY2NvdW50LnJvbGVMaXN0ICYmIGFjY291bnQucm9sZUxpc3QubGVuZ3RoID4gMCkge1xuICAgICAgYWNjb3VudC5yb2xlTGlzdC5mb3JFYWNoKChyb2xlOiBPRVBBUm9sZSkgPT4ge1xuICAgICAgICBpZiAocm9sZS5wcml2aWxlZ2VMaXN0ICYmIHJvbGUucHJpdmlsZWdlTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcm9sZS5wcml2aWxlZ2VMaXN0LmZvckVhY2goKHByaXZpbGVnZTogT2VwYVByaXZpbGVnZSkgPT4ge1xuICAgICAgICAgICAgcHJpdmlsZWdlTGlzdC5wdXNoKHByaXZpbGVnZS50eXBlIHx8ICcnKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBwcml2aWxlZ2VMaXN0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIHRoZSB1c2VyQWNjb3VudCBvZiB0aGUgY3VycmVudCB1c2VyLiBUaGUgcmV0cmlldmVBY2NvdW50Rm9yQ3VycmVudFVzZXIgbWV0aG9kXG4gICAqIG11c3QgYmUgaW52b2tlZCBwcmlvciB0byBpbnZva2luZyB0aGlzIG1ldGhvZC5cbiAgICovXG4gIHB1YmxpYyBnZXRDdXJyZW50VXNlckFjY291bnQoKTogT2VwYVVzZXJBY2NvdW50IHtcbiAgICByZXR1cm4gdGhpcy5hY2NvdW50O1xuICB9XG5cbiAgcHVibGljIHNldEN1cnJlbnRVc2VyQWNjb3VudChhY2NvdW50OiBPZXBhVXNlckFjY291bnQpIHtcbiAgICB0aGlzLmFjY291bnQgPSBhY2NvdW50O1xuICAgIHRoaXMudXNlckFjY291bnQkLm5leHQodGhpcy5hY2NvdW50KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBdXRoVG9rZW4oKSA6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aFRva2VuO1xuICB9XG5cbiAgcHVibGljIHNldEF1dGhUb2tlbih0b2tlbjogc3RyaW5nKSB7XG4gICAgdGhpcy5hdXRoVG9rZW4gPSB0b2tlbjtcbiAgfVxuIFxuICAvKipcbiAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAqIEVCSVogTUVUSE9EUzpcbiAgICogVGhlIG1ldGhvZHMgYmVsb3cgY3VycmVudGx5IGFwcGx5IG9ubHkgdG8gZUJpei5cbiAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAqL1xuXG4gIHB1YmxpYyBnZXRXZWJhcHBzUm9vdFVSTCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIGlmICh0aGlzLndlYmFwcHNSb290VVJMKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy53ZWJhcHBzUm9vdFVSTCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHVybCA9IHRoaXMuaG9zdFVybCArICcvYXBpL3YxL2dhdGV3YXkvZ2F0ZXdheUNvbmZpZyc7XG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KHVybCkucGlwZShtYXAoKGdhdGV3YXlDb25maWc6YW55KSA9PiB7XG4gICAgICAgIGlmIChnYXRld2F5Q29uZmlnKSB7XG4gICAgICAgICAgdGhpcy53ZWJhcHBzUm9vdFVSTCA9IGdhdGV3YXlDb25maWcud2ViYXBwc1Jvb3RVUkw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMud2ViYXBwc1Jvb3RVUkw7XG4gICAgICB9KSk7XG4gICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRFQml6VmVyc2lvbigpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgaWYgKHRoaXMud2ViYXBwc1Jvb3RVUkwpIHtcbiAgICAgICAgcmV0dXJuIG9mKHRoaXMud2ViYXBwc1Jvb3RVUkwpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5ob3N0VXJsICsgJy9hcGkvdjEvZ2F0ZXdheS9nYXRld2F5Q29uZmlnJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55Pih1cmwpLnBpcGUobWFwKChnYXRld2F5Q29uZmlnOmFueSkgPT4ge1xuICAgICAgICAgIGlmIChnYXRld2F5Q29uZmlnKSB7XG4gICAgICAgICAgICB0aGlzLndlYmFwcHNSb290VVJMID0gZ2F0ZXdheUNvbmZpZy52ZXJzaW9uTnVtYmVyO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpcy53ZWJhcHBzUm9vdFVSTDtcbiAgICAgICAgfSkpO1xuICAgICAgfVxuICAgICAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYXJyYXkgb2YgUHJvZ3JhbVByaXZpbGVnZXMgbWF0Y2hpbmcgcHJvZ3JhbVByaXZpbGVnZVJlcXVlc3QuXG4gICAqIEBwYXJhbSBwcm9ncmFtUHJpdmlsZWdlUmVxdWVzdFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEFycmF5PFByb2dyYW1Qcml2aWxlZ2U+PlxuICAgKi9cbiAgcHVibGljIHNlYXJjaFByaXZpbGVnZXMocHJvZ3JhbVByaXZpbGVnZVJlcXVlc3Q6IFByb2dyYW1Qcml2aWxlZ2VSZXF1ZXN0LCBhbHRVc2VySUQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFycmF5PFByb2dyYW1Qcml2aWxlZ2U+PiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5ob3N0VXJsICsgdGhpcy5lYml6QWNjb3VudHNVcmwgKyAnL3Byb2dyYW1Qcml2aWxlZ2VzL3NlYXJjaCcgKyAoYWx0VXNlcklEID8gJz91c2VyaWQ9JyArIGFsdFVzZXJJRCA6ICcnKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXJyYXk8UHJvZ3JhbVByaXZpbGVnZT4+KHVybCwgcHJvZ3JhbVByaXZpbGVnZVJlcXVlc3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBQcm9ncmFtUHJpdmlsZWdlIGJhc2VkIG9uIGNvbnRlbnRzIG9mIFByb2dyYW1Qcml2aWxlZ2VSZXF1ZXN0LlxuICAgKiBAcGFyYW0gcHJvZ3JhbVByaXZpbGVnZVJlcXVlc3RcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxQcm9ncmFtUHJpdmlsZWdlP1xuICAgKi9cbiAgcHVibGljIGNyZWF0ZVByb2dyYW1Qcml2aWxlZ2UocHJvZ3JhbVByaXZpbGVnZVJlcXVlc3Q6IFByb2dyYW1Qcml2aWxlZ2VSZXF1ZXN0LCBhbHRVc2VySUQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFByb2dyYW1Qcml2aWxlZ2U+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UHJvZ3JhbVByaXZpbGVnZT4odGhpcy5ob3N0VXJsICsgdGhpcy5lYml6QWNjb3VudHNVcmwgKyAnL3Byb2dyYW1Qcml2aWxlZ2VzJysgKGFsdFVzZXJJRCA/ICc/dXNlcmlkPScgKyBhbHRVc2VySUQgOiAnJyksIFxuICAgIHByb2dyYW1Qcml2aWxlZ2VSZXF1ZXN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgdGhlIFByb2dyYW1Qcml2aWxlZ2UgaWRlbnRpZmllZCBieSBwcm9ncmFtUHJpdmlsZWdlSUQuXG4gICAqIEBwYXJhbSBwcm9ncmFtUHJpdmlsZWdlSURcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx2b2lkPlxuICAgKi9cbiAgcHVibGljIGRlbGV0ZVByb2dyYW1Qcml2aWxlZ2UocHJvZ3JhbVByaXZpbGVnZUlEOiBzdHJpbmcsIGFsdFVzZXJJRD86IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUodGhpcy5ob3N0VXJsICsgdGhpcy5lYml6QWNjb3VudHNVcmwgKyAnL3Byb2dyYW1Qcml2aWxlZ2VzLycgKyBwcm9ncmFtUHJpdmlsZWdlSUQgKyAoYWx0VXNlcklEID8gJz91c2VyaWQ9JyArIGFsdFVzZXJJRCA6ICcnKSwgXG4gICAgeyByZXNwb25zZVR5cGU6ICd0ZXh0JyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxlZ2F0ZSBhIHByb2dyYW0gcHJpdmlsZWdlIGJhc2VkIG9uIGluZm9ybWF0aW9uIGluIGRlbGVnYXRpb24uXG4gICAqIEBwYXJhbSBkZWxlZ2F0aW9uXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8dm9pZD5cbiAgICovXG4gIHB1YmxpYyBkZWxlZ2F0ZVByb2dyYW1Qcml2aWxlZ2UoZGVsZWdhdGlvbjogRGVsZWdhdGlvbiwgYWx0VXNlcklEPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5ob3N0VXJsICsgdGhpcy5lYml6QWNjb3VudHNVcmwgKyAnL3Byb2dyYW1Qcml2aWxlZ2VzL2RlbGVnYXRpb24nICsgKGFsdFVzZXJJRCA/ICc/dXNlcmlkPScgKyBhbHRVc2VySUQgOiAnJyksXG4gICAgZGVsZWdhdGlvbiwgeyByZXNwb25zZVR5cGU6ICd0ZXh0JyB9KTtcbiAgfVxuXG4gLyoqXG4gICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgKiBIZWxwZXIgTUVUSE9EUzpcbiAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAqL1xuXG4gICAvKipcbiAgICAqIFNldCB0aGUgdXNlciBhY2NvdW50IHRvIGJlIHVzZWQgZm9yIFwibGl2ZSByZWxvYWQgbW9kZVwiXG4gICAgKiBAcGFyYW0gdXNlckFjY291bnQgXG4gICAgKi9cbiAgICBwdWJsaWMgc2V0TGl2ZVJlbG9hZFVzZXIodXNlckFjY291bnQ6IE9lcGFVc2VyQWNjb3VudCk6IE9ic2VydmFibGU8T2VwYVVzZXJBY2NvdW50PiB7XG4gICAgICB0aGlzLmFjY291bnQgPSB1c2VyQWNjb3VudDtcbiAgICAgIGNvbnNvbGUubG9nKCdzZXRMaXZlUmVsb2FkVXNlcjogJyArIHRoaXMuYWNjb3VudD8ubG9naW5OYW1lIHx8ICc8dW5rbm93bj4nKTtcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxPZXBhVXNlckFjY291bnQ+KHRoaXMuaG9zdFVybCArIHRoaXMuZWJpekFjY291bnRzVXJsICsgJy9saXZlUmVsb2FkJywgdXNlckFjY291bnQpO1xuICAgIH1cblxuICAgLyoqXG4gICAgKiBTdG9yZXMgdGhlIGdpdmVuIHVzZXIgaW4gdGhlIGVCaXogc2Vzc2lvbi5cbiAgICAqIEBwYXJhbSBhY2NvdW50VXNlcklEIFxuICAgICovXG4gICBwdWJsaWMgc3RvcmVVc2VySW5TZXNzaW9uKGFjY291bnRVc2VySUQ6IHN0cmluZyk6IE9ic2VydmFibGU8T2VwYVVzZXJBY2NvdW50PiB7XG4gICAgIGxldCBhY2N0ID0ge30gYXMgT2VwYVVzZXJBY2NvdW50O1xuICAgICBhY2N0LmFjY291bnRJRCA9IGFjY291bnRVc2VySUQ7XG4gICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxPZXBhVXNlckFjY291bnQ+KHRoaXMuaG9zdFVybCArIHRoaXMuZWJpelNlc3Npb25VcmwgKyAnL3N0b3JlVXNlci8nICsgYWNjb3VudFVzZXJJRCwgbnVsbCk7XG4gICB9XG5cbiAgICAvKipcbiAgICAgKiBTZWUgaWYgdGhlIGN1cnJlbnQgdXNlciBzaG91bGQgYmUgYWxsb3dlZCB0byBzZWUgXCJkZW1vXCIgY2FwYWJpbGl0aWVzXG4gICAgICovXG4gICAgcHVibGljIGRlbW9DYXBhYmlsaXRpZXNBbGxvd2VkKCk6IGJvb2xlYW4ge1xuICAgICAgbGV0IGRlbW9BbGxvd2VkID0gZmFsc2U7XG4gICAgICBpZiAodGhpcy5hY2NvdW50ICYmIHRoaXMuYWNjb3VudC5yb2xlTGlzdCkge1xuICAgICAgICB0aGlzLmFjY291bnQucm9sZUxpc3QuZm9yRWFjaChyb2xlID0+IHtcbiAgICAgICAgICBpZiAocm9sZS5uYW1lID09PSAnQWxsb3dEZW1vJykge1xuICAgICAgICAgICAgZGVtb0FsbG93ZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZGVtb0FsbG93ZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXJ0SWRsZVRpbWVyKHRocmVzaG9sZD86IG51bWJlcikge1xuICAgICAgaWYgKHRoaXMudGltZW91dElEKSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRJRCk7XG4gICAgICB9XG4gICAgICB0aGlzLmlkbGVUaHJlc2hvbGQgPSB0aHJlc2hvbGQgfHwgdGhpcy5pZGxlVGhyZXNob2xkO1xuICAgICAgaWYgKCF0aGlzLmlkbGVUaW1lclJ1bm5pbmcpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1RoZSBpZGxlIHRpbWVvdXQgc3RhcnRlZCB3aXRoIHRocmVzaG9sZDogJyArIHRoaXMuaWRsZVRocmVzaG9sZCk7XG4gICAgICAgIHRoaXMuaWRsZVRpbWVyUnVubmluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuY2hlY2tUaW1lb3V0KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0SWRsZVRpbWUoKSB7XG4gICAgICBjb25zb2xlLmxvZygnaWRsZSB0aW1lciByZXNldCcpO1xuICAgICAgdGhpcy5pZGxlVGltZSA9IDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja1RpbWVvdXQoKSB7XG4gICAgICB0aGlzLnRpbWVvdXRJRCA9IHNldFRpbWVvdXQoKCk9PiB7XG4gICAgICAgIHRoaXMuaWRsZVRpbWUgKz0gNjA7XG4gICAgICAgIGNvbnNvbGUubG9nKCdpZGxlIHRpbWUgPSAnICsgdGhpcy5pZGxlVGltZSArIFwiLCB0aHJlc2hvbGQgPSBcIiArIHRoaXMuaWRsZVRocmVzaG9sZCk7XG4gICAgICAgIGlmICh0aGlzLmlkbGVUaW1lID49IHRoaXMuaWRsZVRocmVzaG9sZCkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdmaXJpbmcgbmV4dCBpZGxlU3ViamVjdC4uLicpO1xuICAgICAgICAgIHRoaXMuaWRsZVRpbWVyUnVubmluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuaWRsZVN1YmplY3QubmV4dCh0aGlzLmlkbGVUaW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodGhpcy50aW1lb3V0SUQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRJRCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuY2hlY2tUaW1lb3V0KCk7XG4gICAgICAgIH1cbiAgICAgIH0sIDYwMDAwKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SWRsZVRpbWVvdXQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgIHJldHVybiB0aGlzLmlkbGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBcbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBXZSBwcm9iYWJseSBkb24ndCB3YW50IHRvIHN1cHBvcnQgdGhpcyBnb2luZyBmb3J3YXJkXG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKiBAcmV0dXJucyBcbiAgICAgKi9cbiAgICBwdWJsaWMgbG9nTWVzc2FnZU9uU2VydmVyKG1lc3NhZ2U/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgY29uc3QgbWVzc2FnZVJlc3BvbnNlOiBhbnkgPSB7XG4gICAgICAgIHJlc3BvbnNlOiBtZXNzYWdlXG4gICAgICB9XG4gICAgICBjb25zdCB1cmwgPSB0aGlzLmhvc3RVcmwgKyAnL2FwaS92MS91c2VyQWNjb3VudHMvbG9ncy9tZXNzYWdlJztcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwgbWVzc2FnZVJlc3BvbnNlKTtcbiAgICB9XG59XG4iXX0=
|
|
334
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2VwYS11c2VyLWFjY291bnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvb2VwYS11c2VyLWFjY291bnQvb2VwYS11c2VyLWFjY291bnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFLMUI7O0dBRUc7QUFFSCxNQUFNLE9BQU8sc0JBQXNCO0lBbUJiO0lBQWlEO0lBbEI3RCxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ2xCLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQztJQUN0QyxlQUFlLEdBQUcsa0JBQWtCLENBQUM7SUFDckMsY0FBYyxHQUFHLGlCQUFpQixDQUFDO0lBQ25DLE9BQU8sQ0FBbUI7SUFDMUIsUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUN0QixTQUFTLEdBQVcsRUFBRSxDQUFDO0lBQ3ZCLGNBQWMsR0FBVyxFQUFFLENBQUM7SUFDNUIsV0FBVyxHQUFXLEVBQUUsQ0FBQztJQUN6QixVQUFVLEdBQVcsRUFBRSxDQUFDO0lBQ3hCLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUN6QixRQUFRLEdBQVUsQ0FBQyxDQUFDO0lBQ3BCLGFBQWEsR0FBRyxDQUFDLEVBQUUsR0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHlDQUF5QztJQUNsRSxXQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztJQUNwQyxTQUFTLENBQU07SUFDaEIsWUFBWSxHQUE2QixJQUFJLE9BQU8sRUFBbUIsQ0FBQztJQUN2RSxTQUFTLEdBQVcsRUFBRSxD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QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxrQkFBa0IsQ0FBQyxPQUFnQjtRQUN4QyxNQUFNLGVBQWUsR0FBUTtZQUMzQixRQUFRLEVBQUUsT0FBTztTQUNsQixDQUFBO1FBQ0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxtQ0FBbUMsQ0FBQztRQUMvRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUNuRCxDQUFDO3dHQWpWUSxzQkFBc0IsNENBbUJhLGFBQWE7NEdBbkJoRCxzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVU7OzBCQW9COEIsTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHsgT2VwYVVzZXJBY2NvdW50LCBQcm9ncmFtUHJpdmlsZWdlLCBQcm9ncmFtUHJpdmlsZWdlUmVxdWVzdCwgRGVsZWdhdGlvbiwgT0VQQVJvbGUsIE9lcGFQcml2aWxlZ2UgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWNvbW1vbi1saWInO1xuXG4vKipcbiAqIE9lcGFVc2VyQWNjb3VudFNlcnZpY2UgLSBBIGNvbGxlY3Rpb24gb2YgbWV0aG9kcyBmb3IgYWNjZXNzaW5nIGFuZCBtYW5pcHVsYXRpbmcgdXNlciBhY2NvdW50cy5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9lcGFVc2VyQWNjb3VudFNlcnZpY2Uge1xuICBwcml2YXRlIGhvc3RVcmwgPSAnL2ViaXonO1xuICBwcml2YXRlIGFjY291bnRzVXJsID0gJy9hcGkvdjEvdXNlci1hY2NvdW50cyc7XG4gIHByaXZhdGUgZWJpekFjY291bnRzVXJsID0gJy9hcGkvdjEvYWNjb3VudHMnO1xuICBwcml2YXRlIGViaXpTZXNzaW9uVXJsID0gJy9hcGkvdjEvc2Vzc2lvbic7XG4gIHByaXZhdGUgYWNjb3VudCE6IE9lcGFVc2VyQWNjb3VudDtcbiAgcHJpdmF0ZSBwZXJzb25JRDogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgc2Vzc2lvbklEOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSB3ZWJhcHBzUm9vdFVSTDogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgZWJpelZlcnNpb246IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIGxvZ291dFBhdGg6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIGlkbGVUaW1lclJ1bm5pbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBpZGxlVGltZTpudW1iZXIgPSAwO1xuICBwcml2YXRlIGlkbGVUaHJlc2hvbGQgPSAoMjkqNjApOyAvLyAyOSBtaW51dGUgdGltZW91dCB0aHJlc2hvbGQgYnkgZGVmYXVsdFxuICBwcml2YXRlIGlkbGVTdWJqZWN0ID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuICBwcml2YXRlIHRpbWVvdXRJRDogYW55O1xuICBwdWJsaWMgdXNlckFjY291bnQkOiBTdWJqZWN0PE9lcGFVc2VyQWNjb3VudD4gPSBuZXcgU3ViamVjdDxPZXBhVXNlckFjY291bnQ+KCk7XG4gIHByaXZhdGUgYXV0aFRva2VuOiBzdHJpbmcgPSAnJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIEBJbmplY3QoJ2ViaXpSb290VVJMJykgcHJpdmF0ZSBlYml6Um9vdFVSTDogc3RyaW5nKSB7XG4gICAgdGhpcy5ob3N0VXJsID0gdGhpcy5lYml6Um9vdFVSTCArIHRoaXMuaG9zdFVybDtcbiAgICB0aGlzLmxvZ291dFBhdGggPSAnL2pzcC9sb2dvdXQuanNwJztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0aGUgVXNlciBBY2NvdW50IGZvciB0aGUgdXNlciB1c2VyaWQuXG4gICAqIEBwYXJhbSB1c2VyaWRcbiAgICovXG4gIHB1YmxpYyByZXRyaWV2ZUFjY291bnRGb3JVc2VyKHVzZXJpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxPZXBhVXNlckFjY291bnQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxPZXBhVXNlckFjY291bnQ+KHRoaXMuaG9zdFVybCArIHRoaXMuYWNjb3VudHNVcmwgKyAnLycgKyB1c2VyaWQpO1xuICB9XG5cbiAgcHVibGljIHJldHJpZXZlQWNjb3VudEJ5T0hJRChvaGlkOiBzdHJpbmcsIGFwcDogc3RyaW5nKTogT2JzZXJ2YWJsZTxPZXBhVXNlckFjY291bnQ+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmhvc3RVcmwgKyB0aGlzLmFjY291bnRzVXJsICsgJy9vaGlkLycgKyBvaGlkIDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxPZXBhVXNlckFjY291bnQ+KHVybCwgeyBwYXJhbXM6IHsgJ2FwcCc6IGFwcCB9IH0pLnBpcGUoXG4gICAgICBtYXAoKHVzZXJBY2NvdW50OiBPZXBhVXNlckFjY291bnQpID0+IHtcbiAgICAgICAgdGhpcy51c2VyQWNjb3VudCQubmV4dCh1c2VyQWNjb3VudCk7XG4gICAgICAgIHJldHVybiB1c2VyQWNjb3VudDtcbiAgICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0aGUgdXNlciBhY2NvdW50IGZvciB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyLlxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPE9lcGFVc2VyQWNjb3VudD5cbiAgICovXG4gIHB1YmxpYyByZXRyaWV2ZUFjY291bnRGb3JDdXJyZW50VXNlcihhcHA6IHN0cmluZyk6IE9ic2VydmFibGU8T2VwYVVzZXJBY2NvdW50PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8T2VwYVVzZXJBY2NvdW50Pih0aGlzLmhvc3RVcmwgKyAnL2FwaS92MS91c2VyQWNjb3VudHMvbG9naW4nKS5waXBlKG1hcCgoYWNjb3VudDogT2VwYVVzZXJBY2NvdW50KSA9PiB7XG4gICAgICBpZiAoIWFjY291bnQpIHtcbiAgICAgICAgaWYgKHRoaXMucGVyc29uSUQgJiYgdGhpcy5zZXNzaW9uSUQpIHtcbiAgICAgICAgICB0aGlzLnJldHJpZXZlQWNjb3VudEZvckludGVybmFsU2Vzc2lvbih0aGlzLnBlcnNvbklELCB0aGlzLnNlc3Npb25JRCwgYXBwKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogaW50ZXJuYWxBY2NvdW50ID0+IHtcbiAgICAgICAgICAgIGlmIChpbnRlcm5hbEFjY291bnQpIHtcbiAgICAgICAgICAgICAgdGhpcy5hY2NvdW50ID0gaW50ZXJuYWxBY2NvdW50XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLnJlZGlyZWN0VG9Mb2dvdXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LCBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVkaXJlY3RUb0xvZ291dCgpO1xuICAgICAgICAgIH19KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJlZGlyZWN0VG9Mb2dvdXQoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hY2NvdW50ID0gYWNjb3VudDtcbiAgICAgICAgY29uc29sZS5sb2coJ3JldHJpZXZlQWNjb3VudEZvckN1cnJlbnRVc2VyOiAnICsgdGhpcy5hY2NvdW50Py5sb2dpbk5hbWUgfHwgJzx1bmtub3duPicpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuYWNjb3VudDtcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogUmVkaXJlY3QgdG8gbG9nb3V0IHNjcmVlbiBpZiB1c2VyIGlzIG5vdCBmb3VuZFxuICAgKi9cbiAgcHVibGljIHJlZGlyZWN0VG9Mb2dvdXQobXNnID86IHN0cmluZykge1xuICAgIGxldCBsb2dvdXRVcmwgPSB0aGlzLmxvZ291dFBhdGg7XG4gICAgaWYgKHRoaXMud2ViYXBwc1Jvb3RVUkwpIHtcbiAgICAgIGxvZ291dFVybCA9IHRoaXMud2ViYXBwc1Jvb3RVUkwgKyAodGhpcy5sb2dvdXRQYXRoIHx8ICcnKTtcbiAgICB9XG4gICAgYWxlcnQobXNnIHx8ICdDb25uZWN0aW9uIGxvc3QuIFlvdSB3aWxsIGJlIHJlZGlyZWN0ZWQgdG8gdGhlIGxvZ2luIHBhZ2UuJyk7XG4gICAgY29uc29sZS5sb2coJ3JlZGlyZWN0aW5nIHRvIGxvZ291dFVybDonICsgbG9nb3V0VXJsKTtcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGxvZ291dFVybDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0aGUgdXNlciBhY2NvdW50IGZvciB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyLlxuICAgKiBAcGFyYW0gc2Vzc2lvbklEIHBlcnNvbiBJRCBmb3IgaW50ZXJuYWwgdXNlclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPE9lcGFVc2VyQWNjb3VudD5cbiAgICovXG4gIHB1YmxpYyByZXRyaWV2ZUFjY291bnRGb3JJbnRlcm5hbFNlc3Npb24ocGVyc29uSUQ6IHN0cmluZywgc2Vzc2lvbklEOiBzdHJpbmcsIGFwcDogc3RyaW5nKTogT2JzZXJ2YWJsZTxPZXBhVXNlckFjY291bnQ+IHtcbiAgICB0aGlzLmFjY291bnQgPSB7fTtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmhvc3RVcmwgKyB0aGlzLmFjY291bnRzVXJsICsgJy9pbnRlcm5hbC9wZXJzb25JRC8nICsgcGVyc29uSUQgKyAnL3Nlc3Npb25JRC8nICsgc2Vzc2lvbklEO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE9lcGFVc2VyQWNjb3VudD4odXJsLCB7IHBhcmFtczogeyAnYXBwJzogYXBwIH0gfSkucGlwZShtYXAoKGFjY291bnQ6IE9lcGFVc2VyQWNjb3VudCkgPT4ge1xuICAgICAgdGhpcy5hY2NvdW50ID0gYWNjb3VudDtcbiAgICAgIHRoaXMucGVyc29uSUQgPSBwZXJzb25JRDtcbiAgICAgIHRoaXMuc2Vzc2lvbklEID0gc2Vzc2lvbklEO1xuICAgICAgcmV0dXJuIGFjY291bnQ7XG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZSB3aGV0aGVyIGFjY291bnQgaGFzIHRoZSByb2xlIHJvbGVOYW1lLlxuICAgKiBAcGFyYW0gYWNjb3VudFxuICAgKiBAcGFyYW0gcm9sZU5hbWVcbiAgICovXG4gIHB1YmxpYyBhY2NvdW50SGFzUm9sZShhY2NvdW50OiBPZXBhVXNlckFjY291bnQsIHJvbGVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBsZXQgaGFzUm9sZSA9IGZhbHNlO1xuICAgIGNvbnN0IHJvbGVMaXN0ID0gdGhpcy5nZXRSb2xlTGlzdChhY2NvdW50KTtcbiAgICBpZiAocm9sZUxpc3QgJiYgcm9sZUxpc3QubGVuZ3RoKSB7XG4gICAgICBoYXNSb2xlID0gKHJvbGVMaXN0LmluZGV4T2Yocm9sZU5hbWUpID4gLTEpO1xuICAgIH1cbiAgICByZXR1cm4gaGFzUm9sZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Um9sZUxpc3QoYWNjb3VudDogT2VwYVVzZXJBY2NvdW50KTogQXJyYXk8c3RyaW5nPiB7XG4gICAgY29uc3Qgcm9sZUxpc3Q6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgICBpZiAoYWNjb3VudC5yb2xlTGlzdCAmJiBhY2NvdW50LnJvbGVMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgIGFjY291bnQucm9sZUxpc3QuZm9yRWFjaCgocm9sZTogT0VQQVJvbGUpID0+IHtcbiAgICAgICAgcm9sZUxpc3QucHVzaChyb2xlLm5hbWUgfHwgJycpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByb2xlTGlzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmUgd2hldGhlciBhY2NvdW50IGhhcyB0aGUgcHJpdmlsZWdlIHByaXZpbGVnZVR5cGUuXG4gICAqIEBwYXJhbSBhY2NvdW50XG4gICAqIEBwYXJhbSBwcml2aWxlZ2VUeXBlXG4gICAqL1xuICBwdWJsaWMgYWNjb3VudEhhc1ByaXZpbGVnZShhY2NvdW50OiBPZXBhVXNlckFjY291bnQsIHByaXZpbGVnZVR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGxldCBoYXNQcml2aWxlZ2UgPSBmYWxzZTtcbiAgICBjb25zdCBwcml2aWxlZ2VMaXN0ID0gdGhpcy5nZXRQcml2aWxlZ2VMaXN0KGFjY291bnQpO1xuICAgIGlmIChwcml2aWxlZ2VMaXN0ICYmIHByaXZpbGVnZUxpc3QubGVuZ3RoKSB7XG4gICAgICBoYXNQcml2aWxlZ2UgPSAocHJpdmlsZWdlTGlzdC5pbmRleE9mKHByaXZpbGVnZVR5cGUpID4gLTEpO1xuICAgIH1cbiAgICByZXR1cm4gaGFzUHJpdmlsZWdlO1xuICB9XG5cbiAgcHVibGljIGdldFByaXZpbGVnZUxpc3QoYWNjb3VudDogT2VwYVVzZXJBY2NvdW50KTogQXJyYXk8c3RyaW5nPiB7XG4gICAgY29uc3QgcHJpdmlsZWdlTGlzdDogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgIGlmIChhY2NvdW50LnJvbGVMaXN0ICYmIGFjY291bnQucm9sZUxpc3QubGVuZ3RoID4gMCkge1xuICAgICAgYWNjb3VudC5yb2xlTGlzdC5mb3JFYWNoKChyb2xlOiBPRVBBUm9sZSkgPT4ge1xuICAgICAgICBpZiAocm9sZS5wcml2aWxlZ2VMaXN0ICYmIHJvbGUucHJpdmlsZWdlTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcm9sZS5wcml2aWxlZ2VMaXN0LmZvckVhY2goKHByaXZpbGVnZTogT2VwYVByaXZpbGVnZSkgPT4ge1xuICAgICAgICAgICAgcHJpdmlsZWdlTGlzdC5wdXNoKHByaXZpbGVnZS50eXBlIHx8ICcnKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBwcml2aWxlZ2VMaXN0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIHRoZSB1c2VyQWNjb3VudCBvZiB0aGUgY3VycmVudCB1c2VyLiBUaGUgcmV0cmlldmVBY2NvdW50Rm9yQ3VycmVudFVzZXIgbWV0aG9kXG4gICAqIG11c3QgYmUgaW52b2tlZCBwcmlvciB0byBpbnZva2luZyB0aGlzIG1ldGhvZC5cbiAgICovXG4gIHB1YmxpYyBnZXRDdXJyZW50VXNlckFjY291bnQoKTogT2VwYVVzZXJBY2NvdW50IHtcbiAgICByZXR1cm4gdGhpcy5hY2NvdW50O1xuICB9XG5cbiAgcHVibGljIHNldEN1cnJlbnRVc2VyQWNjb3VudChhY2NvdW50OiBPZXBhVXNlckFjY291bnQpIHtcbiAgICB0aGlzLmFjY291bnQgPSBhY2NvdW50O1xuICAgIHRoaXMudXNlckFjY291bnQkLm5leHQodGhpcy5hY2NvdW50KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBdXRoVG9rZW4oKSA6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aFRva2VuO1xuICB9XG5cbiAgcHVibGljIHNldEF1dGhUb2tlbih0b2tlbjogc3RyaW5nKSB7XG4gICAgdGhpcy5hdXRoVG9rZW4gPSB0b2tlbjtcbiAgfVxuIFxuICAvKipcbiAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAqIEVCSVogTUVUSE9EUzpcbiAgICogVGhlIG1ldGhvZHMgYmVsb3cgY3VycmVudGx5IGFwcGx5IG9ubHkgdG8gZUJpei5cbiAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAqL1xuXG4gIHB1YmxpYyBnZXRXZWJhcHBzUm9vdFVSTChhcHA6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgaWYgKHRoaXMud2ViYXBwc1Jvb3RVUkwpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLndlYmFwcHNSb290VVJMKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdXJsID0gdGhpcy5ob3N0VXJsICsgJy9hcGkvdjEvZ2F0ZXdheS9nYXRld2F5Q29uZmlnJztcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4odXJsLCB7IHBhcmFtczogeyAnYXBwJzogYXBwIH0gfSkucGlwZShtYXAoKGdhdGV3YXlDb25maWc6YW55KSA9PiB7XG4gICAgICAgIGlmIChnYXRld2F5Q29uZmlnKSB7XG4gICAgICAgICAgdGhpcy53ZWJhcHBzUm9vdFVSTCA9IGdhdGV3YXlDb25maWcud2ViYXBwc1Jvb3RVUkw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMud2ViYXBwc1Jvb3RVUkw7XG4gICAgICB9KSk7XG4gICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRFQml6VmVyc2lvbihhcHA6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICBpZiAodGhpcy5lYml6VmVyc2lvbikge1xuICAgICAgICByZXR1cm4gb2YodGhpcy5lYml6VmVyc2lvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmhvc3RVcmwgKyAnL2FwaS92MS9nYXRld2F5L2dhdGV3YXlDb25maWcnO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KHVybCwgeyBwYXJhbXM6IHsgJ2FwcCc6IGFwcCB9IH0pLnBpcGUobWFwKChnYXRld2F5Q29uZmlnOmFueSkgPT4ge1xuICAgICAgICAgIGlmIChnYXRld2F5Q29uZmlnKSB7XG4gICAgICAgICAgICB0aGlzLmViaXpWZXJzaW9uID0gZ2F0ZXdheUNvbmZpZy52ZXJzaW9uTnVtYmVyO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpcy5lYml6VmVyc2lvbjtcbiAgICAgICAgfSkpO1xuICAgICAgfVxuICAgICAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYXJyYXkgb2YgUHJvZ3JhbVByaXZpbGVnZXMgbWF0Y2hpbmcgcHJvZ3JhbVByaXZpbGVnZVJlcXVlc3QuXG4gICAqIEBwYXJhbSBwcm9ncmFtUHJpdmlsZWdlUmVxdWVzdFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEFycmF5PFByb2dyYW1Qcml2aWxlZ2U+PlxuICAgKi9cbiAgcHVibGljIHNlYXJjaFByaXZpbGVnZXMocHJvZ3JhbVByaXZpbGVnZVJlcXVlc3Q6IFByb2dyYW1Qcml2aWxlZ2VSZXF1ZXN0LCBhbHRVc2VySUQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFycmF5PFByb2dyYW1Qcml2aWxlZ2U+PiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5ob3N0VXJsICsgdGhpcy5lYml6QWNjb3VudHNVcmwgKyAnL3Byb2dyYW1Qcml2aWxlZ2VzL3NlYXJjaCcgKyAoYWx0VXNlcklEID8gJz91c2VyaWQ9JyArIGFsdFVzZXJJRCA6ICcnKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXJyYXk8UHJvZ3JhbVByaXZpbGVnZT4+KHVybCwgcHJvZ3JhbVByaXZpbGVnZVJlcXVlc3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBQcm9ncmFtUHJpdmlsZWdlIGJhc2VkIG9uIGNvbnRlbnRzIG9mIFByb2dyYW1Qcml2aWxlZ2VSZXF1ZXN0LlxuICAgKiBAcGFyYW0gcHJvZ3JhbVByaXZpbGVnZVJlcXVlc3RcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxQcm9ncmFtUHJpdmlsZWdlP1xuICAgKi9cbiAgcHVibGljIGNyZWF0ZVByb2dyYW1Qcml2aWxlZ2UocHJvZ3JhbVByaXZpbGVnZVJlcXVlc3Q6IFByb2dyYW1Qcml2aWxlZ2VSZXF1ZXN0LCBhbHRVc2VySUQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFByb2dyYW1Qcml2aWxlZ2U+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UHJvZ3JhbVByaXZpbGVnZT4odGhpcy5ob3N0VXJsICsgdGhpcy5lYml6QWNjb3VudHNVcmwgKyAnL3Byb2dyYW1Qcml2aWxlZ2VzJysgKGFsdFVzZXJJRCA/ICc/dXNlcmlkPScgKyBhbHRVc2VySUQgOiAnJyksIFxuICAgIHByb2dyYW1Qcml2aWxlZ2VSZXF1ZXN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgdGhlIFByb2dyYW1Qcml2aWxlZ2UgaWRlbnRpZmllZCBieSBwcm9ncmFtUHJpdmlsZWdlSUQuXG4gICAqIEBwYXJhbSBwcm9ncmFtUHJpdmlsZWdlSURcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx2b2lkPlxuICAgKi9cbiAgcHVibGljIGRlbGV0ZVByb2dyYW1Qcml2aWxlZ2UocHJvZ3JhbVByaXZpbGVnZUlEOiBzdHJpbmcsIGFsdFVzZXJJRD86IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUodGhpcy5ob3N0VXJsICsgdGhpcy5lYml6QWNjb3VudHNVcmwgKyAnL3Byb2dyYW1Qcml2aWxlZ2VzLycgKyBwcm9ncmFtUHJpdmlsZWdlSUQgKyAoYWx0VXNlcklEID8gJz91c2VyaWQ9JyArIGFsdFVzZXJJRCA6ICcnKSwgXG4gICAgeyByZXNwb25zZVR5cGU6ICd0ZXh0JyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxlZ2F0ZSBhIHByb2dyYW0gcHJpdmlsZWdlIGJhc2VkIG9uIGluZm9ybWF0aW9uIGluIGRlbGVnYXRpb24uXG4gICAqIEBwYXJhbSBkZWxlZ2F0aW9uXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8dm9pZD5cbiAgICovXG4gIHB1YmxpYyBkZWxlZ2F0ZVByb2dyYW1Qcml2aWxlZ2UoZGVsZWdhdGlvbjogRGVsZWdhdGlvbiwgYWx0VXNlcklEPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5ob3N0VXJsICsgdGhpcy5lYml6QWNjb3VudHNVcmwgKyAnL3Byb2dyYW1Qcml2aWxlZ2VzL2RlbGVnYXRpb24nICsgKGFsdFVzZXJJRCA/ICc/dXNlcmlkPScgKyBhbHRVc2VySUQgOiAnJyksXG4gICAgZGVsZWdhdGlvbiwgeyByZXNwb25zZVR5cGU6ICd0ZXh0JyB9KTtcbiAgfVxuXG4gLyoqXG4gICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgKiBIZWxwZXIgTUVUSE9EUzpcbiAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAqL1xuXG4gICAvKipcbiAgICAqIFNldCB0aGUgdXNlciBhY2NvdW50IHRvIGJlIHVzZWQgZm9yIFwibGl2ZSByZWxvYWQgbW9kZVwiXG4gICAgKiBAcGFyYW0gdXNlckFjY291bnQgXG4gICAgKi9cbiAgICBwdWJsaWMgc2V0TGl2ZVJlbG9hZFVzZXIodXNlckFjY291bnQ6IE9lcGFVc2VyQWNjb3VudCk6IE9ic2VydmFibGU8T2VwYVVzZXJBY2NvdW50PiB7XG4gICAgICB0aGlzLmFjY291bnQgPSB1c2VyQWNjb3VudDtcbiAgICAgIGNvbnNvbGUubG9nKCdzZXRMaXZlUmVsb2FkVXNlcjogJyArIHRoaXMuYWNjb3VudD8ubG9naW5OYW1lIHx8ICc8dW5rbm93bj4nKTtcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxPZXBhVXNlckFjY291bnQ+KHRoaXMuaG9zdFVybCArIHRoaXMuZWJpekFjY291bnRzVXJsICsgJy9saXZlUmVsb2FkJywgdXNlckFjY291bnQpO1xuICAgIH1cblxuICAgLyoqXG4gICAgKiBTdG9yZXMgdGhlIGdpdmVuIHVzZXIgaW4gdGhlIGVCaXogc2Vzc2lvbi5cbiAgICAqIEBwYXJhbSBhY2NvdW50VXNlcklEIFxuICAgICovXG4gICBwdWJsaWMgc3RvcmVVc2VySW5TZXNzaW9uKGFjY291bnRVc2VySUQ6IHN0cmluZyk6IE9ic2VydmFibGU8T2VwYVVzZXJBY2NvdW50PiB7XG4gICAgIGxldCBhY2N0ID0ge30gYXMgT2VwYVVzZXJBY2NvdW50O1xuICAgICBhY2N0LmFjY291bnRJRCA9IGFjY291bnRVc2VySUQ7XG4gICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxPZXBhVXNlckFjY291bnQ+KHRoaXMuaG9zdFVybCArIHRoaXMuZWJpelNlc3Npb25VcmwgKyAnL3N0b3JlVXNlci8nICsgYWNjb3VudFVzZXJJRCwgbnVsbCk7XG4gICB9XG5cbiAgICAvKipcbiAgICAgKiBTZWUgaWYgdGhlIGN1cnJlbnQgdXNlciBzaG91bGQgYmUgYWxsb3dlZCB0byBzZWUgXCJkZW1vXCIgY2FwYWJpbGl0aWVzXG4gICAgICovXG4gICAgcHVibGljIGRlbW9DYXBhYmlsaXRpZXNBbGxvd2VkKCk6IGJvb2xlYW4ge1xuICAgICAgbGV0IGRlbW9BbGxvd2VkID0gZmFsc2U7XG4gICAgICBpZiAodGhpcy5hY2NvdW50ICYmIHRoaXMuYWNjb3VudC5yb2xlTGlzdCkge1xuICAgICAgICB0aGlzLmFjY291bnQucm9sZUxpc3QuZm9yRWFjaChyb2xlID0+IHtcbiAgICAgICAgICBpZiAocm9sZS5uYW1lID09PSAnQWxsb3dEZW1vJykge1xuICAgICAgICAgICAgZGVtb0FsbG93ZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZGVtb0FsbG93ZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXJ0SWRsZVRpbWVyKHRocmVzaG9sZD86IG51bWJlcikge1xuICAgICAgaWYgKHRoaXMudGltZW91dElEKSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRJRCk7XG4gICAgICB9XG4gICAgICB0aGlzLmlkbGVUaHJlc2hvbGQgPSB0aHJlc2hvbGQgfHwgdGhpcy5pZGxlVGhyZXNob2xkO1xuICAgICAgaWYgKCF0aGlzLmlkbGVUaW1lclJ1bm5pbmcpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1RoZSBpZGxlIHRpbWVvdXQgc3RhcnRlZCB3aXRoIHRocmVzaG9sZDogJyArIHRoaXMuaWRsZVRocmVzaG9sZCk7XG4gICAgICAgIHRoaXMuaWRsZVRpbWVyUnVubmluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuY2hlY2tUaW1lb3V0KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0SWRsZVRpbWUoKSB7XG4gICAgICBjb25zb2xlLmxvZygnaWRsZSB0aW1lciByZXNldCcpO1xuICAgICAgdGhpcy5pZGxlVGltZSA9IDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja1RpbWVvdXQoKSB7XG4gICAgICB0aGlzLnRpbWVvdXRJRCA9IHNldFRpbWVvdXQoKCk9PiB7XG4gICAgICAgIHRoaXMuaWRsZVRpbWUgKz0gNjA7XG4gICAgICAgIGNvbnNvbGUubG9nKCdpZGxlIHRpbWUgPSAnICsgdGhpcy5pZGxlVGltZSArIFwiLCB0aHJlc2hvbGQgPSBcIiArIHRoaXMuaWRsZVRocmVzaG9sZCk7XG4gICAgICAgIGlmICh0aGlzLmlkbGVUaW1lID49IHRoaXMuaWRsZVRocmVzaG9sZCkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdmaXJpbmcgbmV4dCBpZGxlU3ViamVjdC4uLicpO1xuICAgICAgICAgIHRoaXMuaWRsZVRpbWVyUnVubmluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuaWRsZVN1YmplY3QubmV4dCh0aGlzLmlkbGVUaW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodGhpcy50aW1lb3V0SUQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRJRCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuY2hlY2tUaW1lb3V0KCk7XG4gICAgICAgIH1cbiAgICAgIH0sIDYwMDAwKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SWRsZVRpbWVvdXQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgIHJldHVybiB0aGlzLmlkbGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBcbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBXZSBwcm9iYWJseSBkb24ndCB3YW50IHRvIHN1cHBvcnQgdGhpcyBnb2luZyBmb3J3YXJkXG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKiBAcmV0dXJucyBcbiAgICAgKi9cbiAgICBwdWJsaWMgbG9nTWVzc2FnZU9uU2VydmVyKG1lc3NhZ2U/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgY29uc3QgbWVzc2FnZVJlc3BvbnNlOiBhbnkgPSB7XG4gICAgICAgIHJlc3BvbnNlOiBtZXNzYWdlXG4gICAgICB9XG4gICAgICBjb25zdCB1cmwgPSB0aGlzLmhvc3RVcmwgKyAnL2FwaS92MS91c2VyQWNjb3VudHMvbG9ncy9tZXNzYWdlJztcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwgbWVzc2FnZVJlc3BvbnNlKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -21,6 +21,7 @@ export class PinModalComponent {
|
|
|
21
21
|
}
|
|
22
22
|
submitCallback;
|
|
23
23
|
submittingComponent;
|
|
24
|
+
app = '';
|
|
24
25
|
close = new EventEmitter();
|
|
25
26
|
imageRoot = '/AngularWebApp/assets/images';
|
|
26
27
|
oepaSubmissionForm;
|
|
@@ -51,7 +52,7 @@ export class PinModalComponent {
|
|
|
51
52
|
}
|
|
52
53
|
retrievePin() {
|
|
53
54
|
this.errorMessage = '';
|
|
54
|
-
this.userAccountService.retrieveAccountForCurrentUser().subscribe(account => {
|
|
55
|
+
this.userAccountService.retrieveAccountForCurrentUser(this.app).subscribe(account => {
|
|
55
56
|
if (account) {
|
|
56
57
|
this.userAccount = account;
|
|
57
58
|
this.currentUserID = account.loginName;
|
|
@@ -169,7 +170,7 @@ export class PinModalComponent {
|
|
|
169
170
|
});
|
|
170
171
|
}
|
|
171
172
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PinModalComponent, deps: [{ token: i1.OepaUserAccountService }, { token: i2.FormBuilder }, { token: i3.OepaPinService }, { token: i4.BsModalRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
172
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PinModalComponent, selector: "oepa-pin-modal", inputs: { attestationID: "attestationID", submitCallback: "submitCallback", submittingComponent: "submittingComponent" }, outputs: { close: "close" }, ngImport: i0, template: "<form [formGroup]=\"oepaSubmissionForm\">\n <div class=\"modal-body\">\n\n <div [hidden]=\"noPin\">\n <div class=\"card-header\">\n <div class=\"row\" *ngIf=\"pinAttestation.text\">\n <div class=\"col-md-12\">\n <div class=\"well\" [innerHTML]=\"pinAttestation.text\"></div>\n </div>\n </div>\n </div>\n <br>\n <div class=\"card-header\" *ngIf=\"serviceAttestation\">\n <div class=\"row\" *ngIf=\"serviceAttestation.text\">\n <div class=\"col-md-12\">\n <div class=\"well\" [innerHTML]=\"serviceAttestation.text\">\"</div>\n </div>\n </div>\n </div>\n </div>\n <br>\n\n <div class=\"row\" *ngIf=\"loadingAttestations\">\n <div class=\"col-md-12\">\n <div class=\"alert alert-info\">\n <span class=\"spinner-border text-primary\" role=\"status\"></span> Loading PIN information...\n </div>\n </div>\n </div>\n\n <div [hidden]=\"loadingAttestations || noPin\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label style=\"padding: 5px;\"><b>Security Question:</b></label>\n <label>{{securityQuestion.question}}</label>\n <div>\n <input [ngClass]=\"{'is-invalid':showValidation && !oepaSubmissionForm.controls['securityAnswer'].valid}\"\n formControlName=\"securityAnswer\" type=\"password\" class=\"form-control\" name=\"securityAnswer\" placeholder=\"Answer\" required>\n <small class=\"invalid-feedback\" *ngIf=\"showValidation && !oepaSubmissionForm.controls['securityAnswer'].valid\">Answer to security question is required</small>\n </div>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label><b>PIN: </b></label>\n <div>\n <input [ngClass]=\"{'is-invalid':showValidation && !oepaSubmissionForm.controls['securityPIN'].valid}\"\n formControlName=\"securityPIN\" type=\"password\" class=\"form-control\" name=\"securityPIN\" placeholder=\"PIN\" required>\n <small class=\"invalid-feedback\" *ngIf=\"showValidation && !oepaSubmissionForm.controls['securityPIN'].valid\">A valid PIN is required</small>\n </div>\n </div>\n </div>\n </div>\n </div>\n \n <div >\n <div class=\"row\">\n <div class=\"col-md-12\">\n <!-- toggle hasPin message -->\n <div *ngIf=\"noPin\">\n <b>Attention:</b> Before you can submit, you first must activate your PIN. Cancel this submission, save the application/report and go back to the main eBusiness Home Page. \n Select <b>MY Account- Request New PIN</b> to get started. <br>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"row\" *ngIf=\"errorMessage\">\n <div class=\"col-md-12\">\n <div class=\"alert alert-danger\" role=\"alert\">{{ errorMessage }}</div>\n </div>\n </div>\n\n </div>\n\n\n <div class=\"modal-footer\">\n <span *ngIf=\"submitInProgress === true\" id=\"wait\"><span class=\"spinner-border text-primary\" role=\"status\"></span>Please wait... </span>\n <button class=\"btn btn-primary mr-1\" (click)=\"submit()\" [disabled]=\"submitInProgress || !oepaSubmissionForm.valid\">Submit</button>\n <button class=\"btn btn-primary mr-1\" (click)=\"cancel()\" [disabled]=\"submitInProgress\">Cancel</button>\n </div>\n\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
|
|
173
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PinModalComponent, selector: "oepa-pin-modal", inputs: { attestationID: "attestationID", submitCallback: "submitCallback", submittingComponent: "submittingComponent", app: "app" }, outputs: { close: "close" }, ngImport: i0, template: "<form [formGroup]=\"oepaSubmissionForm\">\n <div class=\"modal-body\">\n\n <div [hidden]=\"noPin\">\n <div class=\"card-header\">\n <div class=\"row\" *ngIf=\"pinAttestation.text\">\n <div class=\"col-md-12\">\n <div class=\"well\" [innerHTML]=\"pinAttestation.text\"></div>\n </div>\n </div>\n </div>\n <br>\n <div class=\"card-header\" *ngIf=\"serviceAttestation\">\n <div class=\"row\" *ngIf=\"serviceAttestation.text\">\n <div class=\"col-md-12\">\n <div class=\"well\" [innerHTML]=\"serviceAttestation.text\">\"</div>\n </div>\n </div>\n </div>\n </div>\n <br>\n\n <div class=\"row\" *ngIf=\"loadingAttestations\">\n <div class=\"col-md-12\">\n <div class=\"alert alert-info\">\n <span class=\"spinner-border text-primary\" role=\"status\"></span> Loading PIN information...\n </div>\n </div>\n </div>\n\n <div [hidden]=\"loadingAttestations || noPin\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label style=\"padding: 5px;\"><b>Security Question:</b></label>\n <label>{{securityQuestion.question}}</label>\n <div>\n <input [ngClass]=\"{'is-invalid':showValidation && !oepaSubmissionForm.controls['securityAnswer'].valid}\"\n formControlName=\"securityAnswer\" type=\"password\" class=\"form-control\" name=\"securityAnswer\" placeholder=\"Answer\" required>\n <small class=\"invalid-feedback\" *ngIf=\"showValidation && !oepaSubmissionForm.controls['securityAnswer'].valid\">Answer to security question is required</small>\n </div>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label><b>PIN: </b></label>\n <div>\n <input [ngClass]=\"{'is-invalid':showValidation && !oepaSubmissionForm.controls['securityPIN'].valid}\"\n formControlName=\"securityPIN\" type=\"password\" class=\"form-control\" name=\"securityPIN\" placeholder=\"PIN\" required>\n <small class=\"invalid-feedback\" *ngIf=\"showValidation && !oepaSubmissionForm.controls['securityPIN'].valid\">A valid PIN is required</small>\n </div>\n </div>\n </div>\n </div>\n </div>\n \n <div >\n <div class=\"row\">\n <div class=\"col-md-12\">\n <!-- toggle hasPin message -->\n <div *ngIf=\"noPin\">\n <b>Attention:</b> Before you can submit, you first must activate your PIN. Cancel this submission, save the application/report and go back to the main eBusiness Home Page. \n Select <b>MY Account- Request New PIN</b> to get started. <br>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"row\" *ngIf=\"errorMessage\">\n <div class=\"col-md-12\">\n <div class=\"alert alert-danger\" role=\"alert\">{{ errorMessage }}</div>\n </div>\n </div>\n\n </div>\n\n\n <div class=\"modal-footer\">\n <span *ngIf=\"submitInProgress === true\" id=\"wait\"><span class=\"spinner-border text-primary\" role=\"status\"></span>Please wait... </span>\n <button class=\"btn btn-primary mr-1\" (click)=\"submit()\" [disabled]=\"submitInProgress || !oepaSubmissionForm.valid\">Submit</button>\n <button class=\"btn btn-primary mr-1\" (click)=\"cancel()\" [disabled]=\"submitInProgress\">Cancel</button>\n </div>\n\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
|
|
173
174
|
}
|
|
174
175
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PinModalComponent, decorators: [{
|
|
175
176
|
type: Component,
|
|
@@ -180,7 +181,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
180
181
|
type: Input
|
|
181
182
|
}], submittingComponent: [{
|
|
182
183
|
type: Input
|
|
184
|
+
}], app: [{
|
|
185
|
+
type: Input
|
|
183
186
|
}], close: [{
|
|
184
187
|
type: Output
|
|
185
188
|
}] } });
|
|
186
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvcGluLW1vZGFsL3Bpbi1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3Bpbi1tb2RhbC9waW4tbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBZ0JwRSxNQUFNLE9BQU8saUJBQWlCO0lBcUNSO0lBQW9EO0lBQXlCO0lBQW1DO0lBcEM1SCxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBRTVCLElBQ0ksYUFBYSxDQUFDLEVBQVU7UUFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFDRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVRLGNBQWMsQ0FBeUI7SUFDdEMsbUJBQW1CLENBQU07SUFFekIsS0FBSyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO0lBRXhELFNBQVMsR0FBRyw4QkFBOEIsQ0FBQztJQUUzQyxrQkFBa0IsQ0FBYTtJQUMvQixjQUFjLEdBQW9CLEVBQUUsQ0FBQztJQUNyQyxrQkFBa0IsR0FBb0IsRUFBRSxDQUFDO0lBQ3pDLGdCQUFnQixHQUF5QixFQUFFLFFBQVEsRUFBRyxFQUFFLEVBQUUsQ0FBQztJQUMzRCxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ2QsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUN4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QyxZQUFZLEdBQUcsNENBQTRDO29CQUNoRSxrSUFBa0ksQ0FBQztZQUNySSxDQUFDO1FBQ0gsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMvRSxDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7d0dBL0tVLGlCQUFpQjs0RkFBakIsaUJBQWlCLDZNQ2pCOUIsNmpIQXFGTzs7NEZEcEVNLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxnQkFBZ0I7MktBUXRCLGFBQWE7c0JBRGhCLEtBQUs7Z0JBU0csY0FBYztzQkFBdEIsS0FBSztnQkFDSSxtQkFBbUI7c0JBQTVCLEtBQUs7Z0JBRUksS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuXG5pbXBvcnQgeyBPZXBhVXNlckFjY291bnQgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWNvbW1vbi1saWInO1xuaW1wb3J0IHsgT2VwYUF0dGVzdGF0aW9uIH0gZnJvbSAnLi9vZXBhLWF0dGVzdGF0aW9uJztcbmltcG9ydCB7IE9lcGFTZWN1cml0eVF1ZXN0aW9uIH0gZnJvbSAnLi9vZXBhLXNlY3VyaXR5LXF1ZXN0aW9uJztcbmltcG9ydCB7IE9lcGFQaW5TZXJ2aWNlIH0gZnJvbSAnLi9vZXBhLXBpbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9lcGFVc2VyQWNjb3VudFNlcnZpY2UgfSBmcm9tICcuLi9vZXBhLXVzZXItYWNjb3VudC9vZXBhLXVzZXItYWNjb3VudC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2VwYS1waW4tbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGluLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGluLW1vZGFsLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQaW5Nb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgX2F0dGVzdGF0aW9uSUQgPSAnJztcblxuICBASW5wdXQoKVxuICBzZXQgYXR0ZXN0YXRpb25JRChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5fYXR0ZXN0YXRpb25JRCA9IGlkO1xuICAgIHRoaXMucmV0cmlldmVBdHRlc3RhdGlvbnMoaWQpO1xuICB9XG4gIGdldCBhdHRlc3RhdGlvbklEKCkge1xuICAgIHJldHVybiB0aGlzLl9hdHRlc3RhdGlvbklEO1xuICB9XG5cbiAgQElucHV0KCkgc3VibWl0Q2FsbGJhY2shOiAoKSA9PiBPYnNlcnZhYmxlPGFueT47XG4gIEBJbnB1dCgpICBzdWJtaXR0aW5nQ29tcG9uZW50OiBhbnk7XG5cbiAgQE91dHB1dCgpIGNsb3NlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHVibGljIGltYWdlUm9vdCA9ICcvQW5ndWxhcldlYkFwcC9hc3NldHMvaW1hZ2VzJztcblxuICBwdWJsaWMgb2VwYVN1Ym1pc3Npb25Gb3JtITogRm9ybUdyb3VwO1xuICBwdWJsaWMgcGluQXR0ZXN0YXRpb246IE9lcGFBdHRlc3RhdGlvbiA9IHt9O1xuICBwdWJsaWMgc2VydmljZUF0dGVzdGF0aW9uOiBPZXBhQXR0ZXN0YXRpb24gPSB7fTtcbiAgcHVibGljIHNlY3VyaXR5UXVlc3Rpb246IE9lcGFTZWN1cml0eVF1ZXN0aW9uID0geyBxdWVzdGlvbjogICcnIH07XG4gIHB1YmxpYyBub1BpbiA9IGZhbHNlO1xuICBwdWJsaWMgbG9hZGluZ1F1ZXN0aW9uID0gZmFsc2U7XG4gIHB1YmxpYyBzdWJtaXRJblByb2dyZXNzID0gZmFsc2U7XG4gIHB1YmxpYyBzdWJtaXREaXNhYmxlZCA9IGZhbHNlO1xuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnJztcbiAgcHVibGljIHNob3dWYWxpZGF0aW9uID0gZmFsc2U7XG4gIHB1YmxpYyBsb2FkaW5nQXR0ZXN0YXRpb25zID0gZmFsc2U7XG5cbiAgcHVibGljIGN1cnJlbnRVc2VySUQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9ICcnO1xuICBwdWJsaWMgdXNlckFjY291bnQ6IE9lcGFVc2VyQWNjb3VudCB8IHVuZGVmaW5lZDtcbiAgLy8gcHVibGljIHBhcmVudFVSTDogc3RyaW5nID0gdW5kZWZpbmVkO1xuICAvLyBwdWJsaWMgcGFyZW50U2Vzc2lvbklEOiBzdHJpbmcgPSB1bmRlZmluZWQ7XG5cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHVzZXJBY2NvdW50U2VydmljZTogT2VwYVVzZXJBY2NvdW50U2VydmljZSwgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgcGluU2VydmljZTogT2VwYVBpblNlcnZpY2UsIHB1YmxpYyBic01vZGFsUmVmOiBCc01vZGFsUmVmKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJldHJpZXZlTmV3U2VjdXJpdHlRdWVzdGlvbigpO1xuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgIHRoaXMucmV0cmlldmVQaW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgcmV0cmlldmVQaW4oKSB7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnJztcbiAgICB0aGlzLnVzZXJBY2NvdW50U2VydmljZS5yZXRyaWV2ZUFjY291bnRGb3JDdXJyZW50VXNlcigpLnN1YnNjcmliZShhY2NvdW50ID0+IHtcbiAgICAgIGlmIChhY2NvdW50KSB7XG4gICAgICAgIHRoaXMudXNlckFjY291bnQgPSBhY2NvdW50O1xuICAgICAgICB0aGlzLmN1cnJlbnRVc2VySUQgPSBhY2NvdW50LmxvZ2luTmFtZTtcbiAgICAgICAgdGhpcy5ub1BpbiA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRVc2VySUQpIHtcbiAgICAgICAgICB0aGlzLnBpblNlcnZpY2UucmV0cmlldmVQaW4odGhpcy5jdXJyZW50VXNlcklEKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICBpZiAocmVzdWx0LnN0YXR1cyA9PSAnQUNUSVZFJykge1xuICAgICAgICAgICAgICAgIHRoaXMubm9QaW4gPSBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBcbiAgICAgICAgICB9LCBlcnJvcjogKGVycikgPT4geyAgXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdDb3VsZCBub3QgcmV0cmlldmUgcGluOicgKyBKU09OLnN0cmluZ2lmeShlcnIpKTtcbiAgICAgICAgICB9fSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnTm8gY3VycmVudCB1c2VyJztcbiAgICAgICAgfVxuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZygnTm8gYWNjb3VudCBmb3VuZCcpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIH1cblxuICBwdWJsaWMgc3VibWl0KCkge1xuICAgIHRoaXMuc3VibWl0SW5Qcm9ncmVzcyA9IHRydWU7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnJztcbiAgICB0aGlzLnNob3dWYWxpZGF0aW9uID0gZmFsc2U7XG5cbiAgICAvLyBjb25zb2xlLmxvZygnaXMgZm9ybSB2YWxpZD8gJyArIHRoaXMub2VwYVN1Ym1pc3Npb25Gb3JtLnZhbGlkKTtcbiAgICBjb25zdCBzZWN1cml0eUFuc3dlciA9IHRoaXMub2VwYVN1Ym1pc3Npb25Gb3JtLmdldCgnc2VjdXJpdHlBbnN3ZXInKT8udmFsdWU7XG4gICAgY29uc3Qgc2VjdXJpdHlQSU4gPSB0aGlzLm9lcGFTdWJtaXNzaW9uRm9ybS5nZXQoJ3NlY3VyaXR5UElOJyk/LnZhbHVlO1xuXG4gICAgLy8gY29uc29sZS5sb2coJ3NlY3VyaXR5QW5zd2VyID0gJyArIHNlY3VyaXR5QW5zd2VyICsgJywgY29ycmVjdCBhbnN3ZXIgaXMgJyArIHRoaXMuc2VjdXJpdHlRdWVzdGlvbi5hbnN3ZXIpO1xuICAgIGlmIChzZWN1cml0eUFuc3dlciAmJiB0aGlzLnNlY3VyaXR5UXVlc3Rpb24uYW5zd2VyICYmIHRoaXMuc2VjdXJpdHlRdWVzdGlvbi5hbnN3ZXIudG9VcHBlckNhc2UoKSA9PT0gc2VjdXJpdHlBbnN3ZXIudG9VcHBlckNhc2UoKSkge1xuICAgICAgdGhpcy5waW5TZXJ2aWNlLnZhbGlkYXRlKHsgcGluOiBzZWN1cml0eVBJTiB9KS5zdWJzY3JpYmUoKGlzUElOVmFsaWQ6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgaWYgKGlzUElOVmFsaWQpIHtcbiAgICAgICAgICB0aGlzLmludm9rZVN1Ym1pdENhbGxiYWNrKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZXRyaWV2ZU5ld1NlY3VyaXR5UXVlc3Rpb24oKTtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdUaGUgUElOIGVudGVyZWQgd2FzIGluY29ycmVjdC4gUGxlYXNlIHRyeSBhZ2Fpbi4nO1xuICAgICAgICAgIHRoaXMuc3VibWl0SW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9LCAoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0NvdWxkIG5vdCB2YWxpZGF0ZSBQSU46JyArIEpTT04uc3RyaW5naWZ5KGVycikpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1RoZSBhbnN3ZXIgdG8gdGhlIHNlY3VyaXR5IHF1ZXN0aW9uIGlzIGluY29ycmVjdC4gUGxlYXNlIHRyeSBhZ2Fpbi4nO1xuICAgICAgdGhpcy5zdWJtaXRJblByb2dyZXNzID0gZmFsc2U7XG4gICAgICB0aGlzLnNob3dWYWxpZGF0aW9uID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2FuY2VsKCkge1xuICAgIHRoaXMuYnNNb2RhbFJlZi5oaWRlKCk7XG4gICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZvcm0oKSB7XG4gICAgdGhpcy5vZXBhU3VibWlzc2lvbkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHNlY3VyaXR5QW5zd2VyOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWQgXSxcbiAgICAgIHNlY3VyaXR5UElOOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWQgXSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW52b2tlU3VibWl0Q2FsbGJhY2soKSB7XG4gICAgaWYgKHRoaXMuc3VibWl0dGluZ0NvbXBvbmVudCAmJiB0aGlzLnN1Ym1pdENhbGxiYWNrICYmIHRoaXMuc3VibWl0Q2FsbGJhY2sgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgdGhpcy5zdWJtaXRDYWxsYmFjay5jYWxsKHRoaXMuc3VibWl0dGluZ0NvbXBvbmVudCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgdGhpcy5zdWJtaXRJblByb2dyZXNzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYnNNb2RhbFJlZi5oaWRlKCk7XG4gICAgICB9LCAoZXJyKSA9PiB7XG4gICAgICAgIHRoaXMuc3VibWl0SW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwcm9jZXNzaW5nIHN1Ym1pc3Npb246ICcgKyBKU09OLnN0cmluZ2lmeShlcnIpKTtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnU3VibWlzc2lvbiBmYWlsZWQ6ICcgKyBlcnI7IFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3VibWl0SW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnTm8gc3VibWl0IGNhbGxiYWNrIGRlZmluZWQnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmV0cmlldmVBdHRlc3RhdGlvbnMoYXR0ZXN0YXRpb25JZDogc3RyaW5nKSB7XG4gICAgLy8gY29uc29sZS5sb2coJ3JldHJpZXZlQXR0ZXN0YXRpb25zOiAnICsgYXR0ZXN0YXRpb25JZCk7XG5cbiAgICB0aGlzLmxvYWRpbmdBdHRlc3RhdGlvbnMgPSB0cnVlO1xuXG4gICAgaWYgKGF0dGVzdGF0aW9uSWQgJiYgYXR0ZXN0YXRpb25JZC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnBpblNlcnZpY2UucmV0cmlldmVBdHRlc3RhdGlvbignUElOJykuc3Vic2NyaWJlKChhdHRlc3RhdGlvbjogT2VwYUF0dGVzdGF0aW9uKSA9PiB7XG4gICAgICAgIHRoaXMucGluQXR0ZXN0YXRpb24gPSBhdHRlc3RhdGlvbjtcbiAgICAgIH0sIChlcnIpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignQ291bGQgbm90IHJldHJpZXZlIFBJTiBhdHRlc3RhdGlvbjogJyArIEpTT04uc3RyaW5naWZ5KGVycikpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnBpblNlcnZpY2UucmV0cmlldmVBdHRlc3RhdGlvbkJ5SUQoYXR0ZXN0YXRpb25JZCkuc3Vic2NyaWJlKChhdHRlc3RhdGlvbjogT2VwYUF0dGVzdGF0aW9uKSA9PiB7XG4gICAgICAgIHRoaXMuc2VydmljZUF0dGVzdGF0aW9uID0gYXR0ZXN0YXRpb247XG5cbiAgICAgICAgdGhpcy5sb2FkaW5nQXR0ZXN0YXRpb25zID0gZmFsc2U7XG5cbiAgICAgIH0sIChlcnIpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignQ291bGQgbm90IHJldHJpZXZlIGF0dGVzdGF0aW9uIGZvciBzZXJ2aWNlOiBcIicgKyBhdHRlc3RhdGlvbklkICsgJ1wiIDonICsgSlNPTi5zdHJpbmdpZnkoZXJyKSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignRVJST1I6IEF0dGVtcHQgdG8gcmV0cmlldmUgaW52YWxpZCBhdHRlc3RhdGlvbklkOiAnICsgYXR0ZXN0YXRpb25JZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXRyaWV2ZU5ld1NlY3VyaXR5UXVlc3Rpb24oKSB7XG5cbiAgICB0aGlzLmxvYWRpbmdRdWVzdGlvbiA9IHRydWU7XG5cbiAgICB0aGlzLnBpblNlcnZpY2UucmV0cmlldmVTZWN1cml0eVF1ZXN0aW9uKCkuc3Vic2NyaWJlKChxdWVzdGlvbjogT2VwYVNlY3VyaXR5UXVlc3Rpb24pID0+IHtcbiAgICAgIHRoaXMuc2VjdXJpdHlRdWVzdGlvbiA9IHF1ZXN0aW9uO1xuICAgICAgaWYgKHRoaXMuc2VjdXJpdHlRdWVzdGlvbiA9PT0gbnVsbCkge1xuICAgICAgICAgdGhpcy5zZWN1cml0eVF1ZXN0aW9uID0geyBxdWVzdGlvbklEOicnLCBxdWVzdGlvbjonJywgYW5zd2VyOicnICB9O1xuICAgICAgfVxuICAgICAgdGhpcy5sb2FkaW5nUXVlc3Rpb24gPSBmYWxzZTtcblxuICAgICAgaWYgKCF0aGlzLnNlY3VyaXR5UXVlc3Rpb24pIHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnVGhlcmUgaXMgbm8gUElOIGVuYWJsZWQgZm9yIHlvdXIgYWNjb3VudC4gJyArIFxuICAgICAgICAnVG8gY29udGludWUsIHlvdSBtdXN0IGZpcnN0IHJlcXVlc3QgYSBQSU4gYnkgc2VsZWN0aW5nIHRoZSBcIlJlcXVlc3QgTmV3IFBJTlwiIG9wdGlvbiBmcm9tIHRoZSBlQnVzaW5lc3MgQ2VudGVyIFwiTXkgQWNjb3VudFwiIG1lbnUuJztcbiAgICAgIH1cbiAgICB9LCAoZXJyKSA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDb3VsZCBub3QgcmV0cmlldmUgc2VjdXJpdHkgcXVlc3Rpb246JyArIEpTT04uc3RyaW5naWZ5KGVycikpO1xuICAgIH0pO1xuXG4gIH1cblxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJvZXBhU3VibWlzc2lvbkZvcm1cIj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cblxuICAgIDxkaXYgW2hpZGRlbl09XCJub1BpblwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwicGluQXR0ZXN0YXRpb24udGV4dFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndlbGxcIiBbaW5uZXJIVE1MXT1cInBpbkF0dGVzdGF0aW9uLnRleHRcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGJyPlxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCIgKm5nSWY9XCJzZXJ2aWNlQXR0ZXN0YXRpb25cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJzZXJ2aWNlQXR0ZXN0YXRpb24udGV4dFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndlbGxcIiBbaW5uZXJIVE1MXT1cInNlcnZpY2VBdHRlc3RhdGlvbi50ZXh0XCI+XCI8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxicj5cblxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cImxvYWRpbmdBdHRlc3RhdGlvbnNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWluZm9cIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNwaW5uZXItYm9yZGVyIHRleHQtcHJpbWFyeVwiIHJvbGU9XCJzdGF0dXNcIj48L3NwYW4+IExvYWRpbmcgUElOIGluZm9ybWF0aW9uLi4uXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IFtoaWRkZW5dPVwibG9hZGluZ0F0dGVzdGF0aW9ucyB8fCBub1BpblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbCBzdHlsZT1cInBhZGRpbmc6IDVweDtcIj48Yj5TZWN1cml0eSBRdWVzdGlvbjo8L2I+PC9sYWJlbD5cbiAgICAgICAgICAgIDxsYWJlbD57e3NlY3VyaXR5UXVlc3Rpb24ucXVlc3Rpb259fTwvbGFiZWw+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8aW5wdXQgIFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCc6c2hvd1ZhbGlkYXRpb24gJiYgIW9lcGFTdWJtaXNzaW9uRm9ybS5jb250cm9sc1snc2VjdXJpdHlBbnN3ZXInXS52YWxpZH1cIlxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlY3VyaXR5QW5zd2VyXCIgdHlwZT1cInBhc3N3b3JkXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBuYW1lPVwic2VjdXJpdHlBbnN3ZXJcIiBwbGFjZWhvbGRlcj1cIkFuc3dlclwiIHJlcXVpcmVkPlxuICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJzaG93VmFsaWRhdGlvbiAmJiAhb2VwYVN1Ym1pc3Npb25Gb3JtLmNvbnRyb2xzWydzZWN1cml0eUFuc3dlciddLnZhbGlkXCI+QW5zd2VyIHRvIHNlY3VyaXR5IHF1ZXN0aW9uIGlzIHJlcXVpcmVkPC9zbWFsbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD48Yj5QSU46IDwvYj48L2xhYmVsPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPGlucHV0IFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCc6c2hvd1ZhbGlkYXRpb24gJiYgIW9lcGFTdWJtaXNzaW9uRm9ybS5jb250cm9sc1snc2VjdXJpdHlQSU4nXS52YWxpZH1cIlxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlY3VyaXR5UElOXCIgdHlwZT1cInBhc3N3b3JkXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBuYW1lPVwic2VjdXJpdHlQSU5cIiBwbGFjZWhvbGRlcj1cIlBJTlwiIHJlcXVpcmVkPlxuICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJzaG93VmFsaWRhdGlvbiAmJiAhb2VwYVN1Ym1pc3Npb25Gb3JtLmNvbnRyb2xzWydzZWN1cml0eVBJTiddLnZhbGlkXCI+QSB2YWxpZCBQSU4gaXMgcmVxdWlyZWQ8L3NtYWxsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgXG4gICAgPGRpdiA+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICA8IS0tIHRvZ2dsZSBoYXNQaW4gbWVzc2FnZSAtLT5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwibm9QaW5cIj5cbiAgICAgICAgICAgIDxiPkF0dGVudGlvbjo8L2I+IEJlZm9yZSB5b3UgY2FuIHN1Ym1pdCwgeW91IGZpcnN0IG11c3QgYWN0aXZhdGUgeW91ciBQSU4uIENhbmNlbCB0aGlzIHN1Ym1pc3Npb24sIHNhdmUgdGhlIGFwcGxpY2F0aW9uL3JlcG9ydCBhbmQgZ28gYmFjayB0byB0aGUgbWFpbiBlQnVzaW5lc3MgSG9tZSBQYWdlLiBcbiAgICAgICAgICAgIFNlbGVjdCA8Yj5NWSBBY2NvdW50LSBSZXF1ZXN0IE5ldyBQSU48L2I+IHRvIGdldCBzdGFydGVkLiA8YnI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWRhbmdlclwiIHJvbGU9XCJhbGVydFwiPnt7IGVycm9yTWVzc2FnZSB9fTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG5cblxuICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG4gICAgPHNwYW4gKm5nSWY9XCJzdWJtaXRJblByb2dyZXNzID09PSB0cnVlXCIgaWQ9XCJ3YWl0XCI+PHNwYW4gY2xhc3M9XCJzcGlubmVyLWJvcmRlciB0ZXh0LXByaW1hcnlcIiByb2xlPVwic3RhdHVzXCI+PC9zcGFuPlBsZWFzZSB3YWl0Li4uJm5ic3A7Jm5ic3A7PC9zcGFuPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXItMVwiIChjbGljayk9XCJzdWJtaXQoKVwiIFtkaXNhYmxlZF09XCJzdWJtaXRJblByb2dyZXNzIHx8ICFvZXBhU3VibWlzc2lvbkZvcm0udmFsaWRcIj5TdWJtaXQ8L2J1dHRvbj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1yLTFcIiAoY2xpY2spPVwiY2FuY2VsKClcIiBbZGlzYWJsZWRdPVwic3VibWl0SW5Qcm9ncmVzc1wiPkNhbmNlbDwvYnV0dG9uPlxuICA8L2Rpdj5cblxuPC9mb3JtPiJdfQ==
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvcGluLW1vZGFsL3Bpbi1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3Bpbi1tb2RhbC9waW4tbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBZ0JwRSxNQUFNLE9BQU8saUJBQWlCO0lBc0NSO0lBQW9EO0lBQXlCO0lBQW1DO0lBckM1SCxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBRTVCLElBQ0ksYUFBYSxDQUFDLEVBQVU7UUFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFDRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVRLGNBQWMsQ0FBeUI7SUFDdEMsbUJBQW1CLENBQU07SUFDMUIsR0FBRyxHQUFXLEVBQUUsQ0FBQztJQUVoQixLQUFLLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7SUFFeEQsU0FBUyxHQUFHLDhCQUE4QixDQUFDO0lBRTNDLGtCQUFrQixDQUFhO0lBQy9CLGNBQWMsR0FBb0IsRUFBRSxDQUFDO0lBQ3JDLGtCQUFrQixHQUFvQixFQUFFLENBQUM7SUFDekMsZ0JBQWdCLEdBQXlCLEVBQUUsUUFBUSxFQUFHLEVBQUUsRUFBRSxDQUFDO0lBQzNELEtBQUssR0FBRyxLQUFLLENBQUM7SUFD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QUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsWUFBWSxHQUFHLDRDQUE0QztvQkFDaEUsa0lBQWtJLENBQUM7WUFDckksQ0FBQztRQUNILENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ1QsT0FBTyxDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDL0UsQ0FBQyxDQUFDLENBQUM7SUFFTCxDQUFDO3dHQWhMVSxpQkFBaUI7NEZBQWpCLGlCQUFpQix5TkNqQjlCLDZqSEFxRk87OzRGRHBFTSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsZ0JBQWdCOzJLQVF0QixhQUFhO3NCQURoQixLQUFLO2dCQVNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksbUJBQW1CO3NCQUE1QixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFFSSxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBCc01vZGFsUmVmIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5cbmltcG9ydCB7IE9lcGFVc2VyQWNjb3VudCB9IGZyb20gJ0BvaGlvZXBhL29lcGEtY29tbW9uLWxpYic7XG5pbXBvcnQgeyBPZXBhQXR0ZXN0YXRpb24gfSBmcm9tICcuL29lcGEtYXR0ZXN0YXRpb24nO1xuaW1wb3J0IHsgT2VwYVNlY3VyaXR5UXVlc3Rpb24gfSBmcm9tICcuL29lcGEtc2VjdXJpdHktcXVlc3Rpb24nO1xuaW1wb3J0IHsgT2VwYVBpblNlcnZpY2UgfSBmcm9tICcuL29lcGEtcGluLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2VwYVVzZXJBY2NvdW50U2VydmljZSB9IGZyb20gJy4uL29lcGEtdXNlci1hY2NvdW50L29lcGEtdXNlci1hY2NvdW50LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZXBhLXBpbi1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9waW4tbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9waW4tbW9kYWwuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBpbk1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBfYXR0ZXN0YXRpb25JRCA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBhdHRlc3RhdGlvbklEKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hdHRlc3RhdGlvbklEID0gaWQ7XG4gICAgdGhpcy5yZXRyaWV2ZUF0dGVzdGF0aW9ucyhpZCk7XG4gIH1cbiAgZ2V0IGF0dGVzdGF0aW9uSUQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2F0dGVzdGF0aW9uSUQ7XG4gIH1cblxuICBASW5wdXQoKSBzdWJtaXRDYWxsYmFjayE6ICgpID0+IE9ic2VydmFibGU8YW55PjtcbiAgQElucHV0KCkgIHN1Ym1pdHRpbmdDb21wb25lbnQ6IGFueTtcbiAgQElucHV0KCkgYXBwOiBzdHJpbmcgPSAnJztcblxuICBAT3V0cHV0KCkgY2xvc2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwdWJsaWMgaW1hZ2VSb290ID0gJy9Bbmd1bGFyV2ViQXBwL2Fzc2V0cy9pbWFnZXMnO1xuXG4gIHB1YmxpYyBvZXBhU3VibWlzc2lvbkZvcm0hOiBGb3JtR3JvdXA7XG4gIHB1YmxpYyBwaW5BdHRlc3RhdGlvbjogT2VwYUF0dGVzdGF0aW9uID0ge307XG4gIHB1YmxpYyBzZXJ2aWNlQXR0ZXN0YXRpb246IE9lcGFBdHRlc3RhdGlvbiA9IHt9O1xuICBwdWJsaWMgc2VjdXJpdHlRdWVzdGlvbjogT2VwYVNlY3VyaXR5UXVlc3Rpb24gPSB7IHF1ZXN0aW9uOiAgJycgfTtcbiAgcHVibGljIG5vUGluID0gZmFsc2U7XG4gIHB1YmxpYyBsb2FkaW5nUXVlc3Rpb24gPSBmYWxzZTtcbiAgcHVibGljIHN1Ym1pdEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgcHVibGljIHN1Ym1pdERpc2FibGVkID0gZmFsc2U7XG4gIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuICBwdWJsaWMgc2hvd1ZhbGlkYXRpb24gPSBmYWxzZTtcbiAgcHVibGljIGxvYWRpbmdBdHRlc3RhdGlvbnMgPSBmYWxzZTtcblxuICBwdWJsaWMgY3VycmVudFVzZXJJRDogc3RyaW5nIHwgdW5kZWZpbmVkID0gJyc7XG4gIHB1YmxpYyB1c2VyQWNjb3VudDogT2VwYVVzZXJBY2NvdW50IHwgdW5kZWZpbmVkO1xuICAvLyBwdWJsaWMgcGFyZW50VVJMOiBzdHJpbmcgPSB1bmRlZmluZWQ7XG4gIC8vIHB1YmxpYyBwYXJlbnRTZXNzaW9uSUQ6IHN0cmluZyA9IHVuZGVmaW5lZDtcblxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdXNlckFjY291bnRTZXJ2aWNlOiBPZXBhVXNlckFjY291bnRTZXJ2aWNlLCBwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBwaW5TZXJ2aWNlOiBPZXBhUGluU2VydmljZSwgcHVibGljIGJzTW9kYWxSZWY6IEJzTW9kYWxSZWYpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmV0cmlldmVOZXdTZWN1cml0eVF1ZXN0aW9uKCk7XG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gICAgdGhpcy5yZXRyaWV2ZVBpbigpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXRyaWV2ZVBpbigpIHtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICcnO1xuICAgIHRoaXMudXNlckFjY291bnRTZXJ2aWNlLnJldHJpZXZlQWNjb3VudEZvckN1cnJlbnRVc2VyKHRoaXMuYXBwKS5zdWJzY3JpYmUoYWNjb3VudCA9PiB7XG4gICAgICBpZiAoYWNjb3VudCkge1xuICAgICAgICB0aGlzLnVzZXJBY2NvdW50ID0gYWNjb3VudDtcbiAgICAgICAgdGhpcy5jdXJyZW50VXNlcklEID0gYWNjb3VudC5sb2dpbk5hbWU7XG4gICAgICAgIHRoaXMubm9QaW4gPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50VXNlcklEKSB7XG4gICAgICAgICAgdGhpcy5waW5TZXJ2aWNlLnJldHJpZXZlUGluKHRoaXMuY3VycmVudFVzZXJJRCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT0gJ0FDVElWRScpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5vUGluID0gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gXG4gICAgICAgICAgfSwgZXJyb3I6IChlcnIpID0+IHsgIFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcignQ291bGQgbm90IHJldHJpZXZlIHBpbjonICsgSlNPTi5zdHJpbmdpZnkoZXJyKSk7XG4gICAgICAgICAgfX0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ05vIGN1cnJlbnQgdXNlcic7XG4gICAgICAgIH1cblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5sb2coJ05vIGFjY291bnQgZm91bmQnKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICB9XG5cbiAgcHVibGljIHN1Ym1pdCgpIHtcbiAgICB0aGlzLnN1Ym1pdEluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XG4gICAgdGhpcy5zaG93VmFsaWRhdGlvbiA9IGZhbHNlO1xuXG4gICAgLy8gY29uc29sZS5sb2coJ2lzIGZvcm0gdmFsaWQ/ICcgKyB0aGlzLm9lcGFTdWJtaXNzaW9uRm9ybS52YWxpZCk7XG4gICAgY29uc3Qgc2VjdXJpdHlBbnN3ZXIgPSB0aGlzLm9lcGFTdWJtaXNzaW9uRm9ybS5nZXQoJ3NlY3VyaXR5QW5zd2VyJyk/LnZhbHVlO1xuICAgIGNvbnN0IHNlY3VyaXR5UElOID0gdGhpcy5vZXBhU3VibWlzc2lvbkZvcm0uZ2V0KCdzZWN1cml0eVBJTicpPy52YWx1ZTtcblxuICAgIC8vIGNvbnNvbGUubG9nKCdzZWN1cml0eUFuc3dlciA9ICcgKyBzZWN1cml0eUFuc3dlciArICcsIGNvcnJlY3QgYW5zd2VyIGlzICcgKyB0aGlzLnNlY3VyaXR5UXVlc3Rpb24uYW5zd2VyKTtcbiAgICBpZiAoc2VjdXJpdHlBbnN3ZXIgJiYgdGhpcy5zZWN1cml0eVF1ZXN0aW9uLmFuc3dlciAmJiB0aGlzLnNlY3VyaXR5UXVlc3Rpb24uYW5zd2VyLnRvVXBwZXJDYXNlKCkgPT09IHNlY3VyaXR5QW5zd2VyLnRvVXBwZXJDYXNlKCkpIHtcbiAgICAgIHRoaXMucGluU2VydmljZS52YWxpZGF0ZSh7IHBpbjogc2VjdXJpdHlQSU4gfSkuc3Vic2NyaWJlKChpc1BJTlZhbGlkOiBib29sZWFuKSA9PiB7XG4gICAgICAgIGlmIChpc1BJTlZhbGlkKSB7XG4gICAgICAgICAgdGhpcy5pbnZva2VTdWJtaXRDYWxsYmFjaygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucmV0cmlldmVOZXdTZWN1cml0eVF1ZXN0aW9uKCk7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnVGhlIFBJTiBlbnRlcmVkIHdhcyBpbmNvcnJlY3QuIFBsZWFzZSB0cnkgYWdhaW4uJztcbiAgICAgICAgICB0aGlzLnN1Ym1pdEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSwgKGVycikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdDb3VsZCBub3QgdmFsaWRhdGUgUElOOicgKyBKU09OLnN0cmluZ2lmeShlcnIpKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdUaGUgYW5zd2VyIHRvIHRoZSBzZWN1cml0eSBxdWVzdGlvbiBpcyBpbmNvcnJlY3QuIFBsZWFzZSB0cnkgYWdhaW4uJztcbiAgICAgIHRoaXMuc3VibWl0SW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgdGhpcy5zaG93VmFsaWRhdGlvbiA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNhbmNlbCgpIHtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKCkge1xuICAgIHRoaXMub2VwYVN1Ym1pc3Npb25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBzZWN1cml0eUFuc3dlcjogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkIF0sXG4gICAgICBzZWN1cml0eVBJTjogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkIF0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGludm9rZVN1Ym1pdENhbGxiYWNrKCkge1xuICAgIGlmICh0aGlzLnN1Ym1pdHRpbmdDb21wb25lbnQgJiYgdGhpcy5zdWJtaXRDYWxsYmFjayAmJiB0aGlzLnN1Ym1pdENhbGxiYWNrIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgIHRoaXMuc3VibWl0Q2FsbGJhY2suY2FsbCh0aGlzLnN1Ym1pdHRpbmdDb21wb25lbnQpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgIHRoaXMuc3VibWl0SW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICAgICAgfSwgKGVycikgPT4ge1xuICAgICAgICB0aGlzLnN1Ym1pdEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcHJvY2Vzc2luZyBzdWJtaXNzaW9uOiAnICsgSlNPTi5zdHJpbmdpZnkoZXJyKSk7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1N1Ym1pc3Npb24gZmFpbGVkOiAnICsgZXJyOyBcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN1Ym1pdEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ05vIHN1Ym1pdCBjYWxsYmFjayBkZWZpbmVkJztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJldHJpZXZlQXR0ZXN0YXRpb25zKGF0dGVzdGF0aW9uSWQ6IHN0cmluZykge1xuICAgIC8vIGNvbnNvbGUubG9nKCdyZXRyaWV2ZUF0dGVzdGF0aW9uczogJyArIGF0dGVzdGF0aW9uSWQpO1xuXG4gICAgdGhpcy5sb2FkaW5nQXR0ZXN0YXRpb25zID0gdHJ1ZTtcblxuICAgIGlmIChhdHRlc3RhdGlvbklkICYmIGF0dGVzdGF0aW9uSWQubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5waW5TZXJ2aWNlLnJldHJpZXZlQXR0ZXN0YXRpb24oJ1BJTicpLnN1YnNjcmliZSgoYXR0ZXN0YXRpb246IE9lcGFBdHRlc3RhdGlvbikgPT4ge1xuICAgICAgICB0aGlzLnBpbkF0dGVzdGF0aW9uID0gYXR0ZXN0YXRpb247XG4gICAgICB9LCAoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0NvdWxkIG5vdCByZXRyaWV2ZSBQSU4gYXR0ZXN0YXRpb246ICcgKyBKU09OLnN0cmluZ2lmeShlcnIpKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5waW5TZXJ2aWNlLnJldHJpZXZlQXR0ZXN0YXRpb25CeUlEKGF0dGVzdGF0aW9uSWQpLnN1YnNjcmliZSgoYXR0ZXN0YXRpb246IE9lcGFBdHRlc3RhdGlvbikgPT4ge1xuICAgICAgICB0aGlzLnNlcnZpY2VBdHRlc3RhdGlvbiA9IGF0dGVzdGF0aW9uO1xuXG4gICAgICAgIHRoaXMubG9hZGluZ0F0dGVzdGF0aW9ucyA9IGZhbHNlO1xuXG4gICAgICB9LCAoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0NvdWxkIG5vdCByZXRyaWV2ZSBhdHRlc3RhdGlvbiBmb3Igc2VydmljZTogXCInICsgYXR0ZXN0YXRpb25JZCArICdcIiA6JyArIEpTT04uc3RyaW5naWZ5KGVycikpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0VSUk9SOiBBdHRlbXB0IHRvIHJldHJpZXZlIGludmFsaWQgYXR0ZXN0YXRpb25JZDogJyArIGF0dGVzdGF0aW9uSWQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmV0cmlldmVOZXdTZWN1cml0eVF1ZXN0aW9uKCkge1xuXG4gICAgdGhpcy5sb2FkaW5nUXVlc3Rpb24gPSB0cnVlO1xuXG4gICAgdGhpcy5waW5TZXJ2aWNlLnJldHJpZXZlU2VjdXJpdHlRdWVzdGlvbigpLnN1YnNjcmliZSgocXVlc3Rpb246IE9lcGFTZWN1cml0eVF1ZXN0aW9uKSA9PiB7XG4gICAgICB0aGlzLnNlY3VyaXR5UXVlc3Rpb24gPSBxdWVzdGlvbjtcbiAgICAgIGlmICh0aGlzLnNlY3VyaXR5UXVlc3Rpb24gPT09IG51bGwpIHtcbiAgICAgICAgIHRoaXMuc2VjdXJpdHlRdWVzdGlvbiA9IHsgcXVlc3Rpb25JRDonJywgcXVlc3Rpb246JycsIGFuc3dlcjonJyAgfTtcbiAgICAgIH1cbiAgICAgIHRoaXMubG9hZGluZ1F1ZXN0aW9uID0gZmFsc2U7XG5cbiAgICAgIGlmICghdGhpcy5zZWN1cml0eVF1ZXN0aW9uKSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1RoZXJlIGlzIG5vIFBJTiBlbmFibGVkIGZvciB5b3VyIGFjY291bnQuICcgKyBcbiAgICAgICAgJ1RvIGNvbnRpbnVlLCB5b3UgbXVzdCBmaXJzdCByZXF1ZXN0IGEgUElOIGJ5IHNlbGVjdGluZyB0aGUgXCJSZXF1ZXN0IE5ldyBQSU5cIiBvcHRpb24gZnJvbSB0aGUgZUJ1c2luZXNzIENlbnRlciBcIk15IEFjY291bnRcIiBtZW51Lic7XG4gICAgICB9XG4gICAgfSwgKGVycikgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcignQ291bGQgbm90IHJldHJpZXZlIHNlY3VyaXR5IHF1ZXN0aW9uOicgKyBKU09OLnN0cmluZ2lmeShlcnIpKTtcbiAgICB9KTtcblxuICB9XG5cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwib2VwYVN1Ym1pc3Npb25Gb3JtXCI+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG5cbiAgICA8ZGl2IFtoaWRkZW5dPVwibm9QaW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cInBpbkF0dGVzdGF0aW9uLnRleHRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWxsXCIgW2lubmVySFRNTF09XCJwaW5BdHRlc3RhdGlvbi50ZXh0XCI+PC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxicj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiICpuZ0lmPVwic2VydmljZUF0dGVzdGF0aW9uXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwic2VydmljZUF0dGVzdGF0aW9uLnRleHRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWxsXCIgW2lubmVySFRNTF09XCJzZXJ2aWNlQXR0ZXN0YXRpb24udGV4dFwiPlwiPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8YnI+XG5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJsb2FkaW5nQXR0ZXN0YXRpb25zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzcGlubmVyLWJvcmRlciB0ZXh0LXByaW1hcnlcIiByb2xlPVwic3RhdHVzXCI+PC9zcGFuPiBMb2FkaW5nIFBJTiBpbmZvcm1hdGlvbi4uLlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBbaGlkZGVuXT1cImxvYWRpbmdBdHRlc3RhdGlvbnMgfHwgbm9QaW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWwgc3R5bGU9XCJwYWRkaW5nOiA1cHg7XCI+PGI+U2VjdXJpdHkgUXVlc3Rpb246PC9iPjwvbGFiZWw+XG4gICAgICAgICAgICA8bGFiZWw+e3tzZWN1cml0eVF1ZXN0aW9uLnF1ZXN0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPGlucHV0ICBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOnNob3dWYWxpZGF0aW9uICYmICFvZXBhU3VibWlzc2lvbkZvcm0uY29udHJvbHNbJ3NlY3VyaXR5QW5zd2VyJ10udmFsaWR9XCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWN1cml0eUFuc3dlclwiIHR5cGU9XCJwYXNzd29yZFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgbmFtZT1cInNlY3VyaXR5QW5zd2VyXCIgcGxhY2Vob2xkZXI9XCJBbnN3ZXJcIiByZXF1aXJlZD5cbiAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwic2hvd1ZhbGlkYXRpb24gJiYgIW9lcGFTdWJtaXNzaW9uRm9ybS5jb250cm9sc1snc2VjdXJpdHlBbnN3ZXInXS52YWxpZFwiPkFuc3dlciB0byBzZWN1cml0eSBxdWVzdGlvbiBpcyByZXF1aXJlZDwvc21hbGw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+PGI+UElOOiA8L2I+PC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxpbnB1dCBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOnNob3dWYWxpZGF0aW9uICYmICFvZXBhU3VibWlzc2lvbkZvcm0uY29udHJvbHNbJ3NlY3VyaXR5UElOJ10udmFsaWR9XCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWN1cml0eVBJTlwiIHR5cGU9XCJwYXNzd29yZFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgbmFtZT1cInNlY3VyaXR5UElOXCIgcGxhY2Vob2xkZXI9XCJQSU5cIiByZXF1aXJlZD5cbiAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwic2hvd1ZhbGlkYXRpb24gJiYgIW9lcGFTdWJtaXNzaW9uRm9ybS5jb250cm9sc1snc2VjdXJpdHlQSU4nXS52YWxpZFwiPkEgdmFsaWQgUElOIGlzIHJlcXVpcmVkPC9zbWFsbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIFxuICAgIDxkaXYgPlxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgPCEtLSB0b2dnbGUgaGFzUGluIG1lc3NhZ2UgLS0+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIm5vUGluXCI+XG4gICAgICAgICAgICA8Yj5BdHRlbnRpb246PC9iPiBCZWZvcmUgeW91IGNhbiBzdWJtaXQsIHlvdSBmaXJzdCBtdXN0IGFjdGl2YXRlIHlvdXIgUElOLiBDYW5jZWwgdGhpcyBzdWJtaXNzaW9uLCBzYXZlIHRoZSBhcHBsaWNhdGlvbi9yZXBvcnQgYW5kIGdvIGJhY2sgdG8gdGhlIG1haW4gZUJ1c2luZXNzIEhvbWUgUGFnZS4gXG4gICAgICAgICAgICBTZWxlY3QgPGI+TVkgQWNjb3VudC0gUmVxdWVzdCBOZXcgUElOPC9iPiB0byBnZXQgc3RhcnRlZC4gPGJyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiZXJyb3JNZXNzYWdlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXJcIiByb2xlPVwiYWxlcnRcIj57eyBlcnJvck1lc3NhZ2UgfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuXG5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgIDxzcGFuICpuZ0lmPVwic3VibWl0SW5Qcm9ncmVzcyA9PT0gdHJ1ZVwiIGlkPVwid2FpdFwiPjxzcGFuIGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgdGV4dC1wcmltYXJ5XCIgcm9sZT1cInN0YXR1c1wiPjwvc3Bhbj5QbGVhc2Ugd2FpdC4uLiZuYnNwOyZuYnNwOzwvc3Bhbj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1yLTFcIiAoY2xpY2spPVwic3VibWl0KClcIiBbZGlzYWJsZWRdPVwic3VibWl0SW5Qcm9ncmVzcyB8fCAhb2VwYVN1Ym1pc3Npb25Gb3JtLnZhbGlkXCI+U3VibWl0PC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtci0xXCIgKGNsaWNrKT1cImNhbmNlbCgpXCIgW2Rpc2FibGVkXT1cInN1Ym1pdEluUHJvZ3Jlc3NcIj5DYW5jZWw8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbjwvZm9ybT4iXX0=
|