@ohioepa/oepa-ui-lib 1.2.12 → 1.2.14
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 +12 -18
- package/esm2022/lib/pin-modal/pin-modal.component.mjs +6 -3
- package/esm2022/lib/util/oepa-http-interceptor.mjs +8 -1
- package/fesm2022/ohioepa-oepa-ui-lib.mjs +23 -19
- 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/lib/util/oepa-http-interceptor.d.ts +1 -0
- package/ohioepa-oepa-ui-lib-1.2.14.tgz +0 -0
- package/package.json +1 -1
|
@@ -26,6 +26,7 @@ export class OepaUserAccountService {
|
|
|
26
26
|
idleSubject = new Subject();
|
|
27
27
|
timeoutID;
|
|
28
28
|
userAccount$ = new Subject();
|
|
29
|
+
sessionID$ = new Subject(); // session ID is used for "backdoor" processing of internal (webapps) accounts
|
|
29
30
|
authToken = '';
|
|
30
31
|
constructor(http, ebizRootURL) {
|
|
31
32
|
this.http = http;
|
|
@@ -41,7 +42,6 @@ export class OepaUserAccountService {
|
|
|
41
42
|
return this.http.get(this.hostUrl + this.accountsUrl + '/' + userid);
|
|
42
43
|
}
|
|
43
44
|
retrieveAccountByOHID(ohid, app) {
|
|
44
|
-
console.log('retrieve account for: ' + ohid);
|
|
45
45
|
const url = this.hostUrl + this.accountsUrl + '/ohid/' + ohid;
|
|
46
46
|
return this.http.get(url, { params: { 'app': app } }).pipe(map((userAccount) => {
|
|
47
47
|
this.userAccount$.next(userAccount);
|
|
@@ -49,31 +49,27 @@ export class OepaUserAccountService {
|
|
|
49
49
|
}));
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
52
|
-
* @deprecated Should not use session user ID for Amplify apps
|
|
53
52
|
* Retrieve the user account for the currently logged in user.
|
|
54
53
|
* @returns Observable<OepaUserAccount>
|
|
55
54
|
*/
|
|
56
|
-
retrieveAccountForCurrentUser() {
|
|
55
|
+
retrieveAccountForCurrentUser(app) {
|
|
57
56
|
return this.http.get(this.hostUrl + '/api/v1/userAccounts/login').pipe(map((account) => {
|
|
58
57
|
if (!account) {
|
|
59
58
|
if (this.personID && this.sessionID) {
|
|
60
|
-
this.retrieveAccountForInternalSession(this.personID, this.sessionID).subscribe({
|
|
59
|
+
this.retrieveAccountForInternalSession(this.personID, this.sessionID, app).subscribe({
|
|
61
60
|
next: internalAccount => {
|
|
62
61
|
if (internalAccount) {
|
|
63
62
|
this.account = internalAccount;
|
|
64
63
|
}
|
|
65
64
|
else {
|
|
66
|
-
this.logMessageOnServer('retrieveAccountForCurrentUser - no account, redirecting to logout');
|
|
67
65
|
this.redirectToLogout();
|
|
68
66
|
}
|
|
69
67
|
}, error: err => {
|
|
70
|
-
this.logMessageOnServer('Failed retrieving internal account: ' + err);
|
|
71
68
|
this.redirectToLogout();
|
|
72
69
|
}
|
|
73
70
|
});
|
|
74
71
|
}
|
|
75
72
|
else {
|
|
76
|
-
this.logMessageOnServer('retrieveAccountForCurrentUser - no account, redirecting to logout');
|
|
77
73
|
this.redirectToLogout();
|
|
78
74
|
}
|
|
79
75
|
}
|
|
@@ -98,19 +94,17 @@ export class OepaUserAccountService {
|
|
|
98
94
|
}
|
|
99
95
|
/**
|
|
100
96
|
* Retrieve the user account for the currently logged in user.
|
|
101
|
-
* @deprecated should retrieve account by OHID instead
|
|
102
97
|
* @param sessionID person ID for internal user
|
|
103
98
|
* @returns Observable<OepaUserAccount>
|
|
104
99
|
*/
|
|
105
|
-
retrieveAccountForInternalSession(personID, sessionID) {
|
|
100
|
+
retrieveAccountForInternalSession(personID, sessionID, app) {
|
|
106
101
|
this.account = {};
|
|
107
|
-
const url = this.hostUrl + '/
|
|
108
|
-
|
|
109
|
-
return this.http.get(url).pipe(map((account) => {
|
|
102
|
+
const url = this.hostUrl + this.accountsUrl + '/internal/personID/' + personID + '/sessionID/' + sessionID;
|
|
103
|
+
return this.http.get(url, { params: { 'app': app } }).pipe(map((account) => {
|
|
110
104
|
this.account = account;
|
|
111
105
|
this.personID = personID;
|
|
112
106
|
this.sessionID = sessionID;
|
|
113
|
-
|
|
107
|
+
this.sessionID$.next(sessionID);
|
|
114
108
|
return account;
|
|
115
109
|
}));
|
|
116
110
|
}
|
|
@@ -185,13 +179,13 @@ export class OepaUserAccountService {
|
|
|
185
179
|
* The methods below currently apply only to eBiz.
|
|
186
180
|
* ===========================================================================================================================
|
|
187
181
|
*/
|
|
188
|
-
getWebappsRootURL() {
|
|
182
|
+
getWebappsRootURL(app) {
|
|
189
183
|
if (this.webappsRootURL) {
|
|
190
184
|
return of(this.webappsRootURL);
|
|
191
185
|
}
|
|
192
186
|
else {
|
|
193
187
|
const url = this.hostUrl + '/api/v1/gateway/gatewayConfig';
|
|
194
|
-
return this.http.get(url).pipe(map((gatewayConfig) => {
|
|
188
|
+
return this.http.get(url, { params: { 'app': app } }).pipe(map((gatewayConfig) => {
|
|
195
189
|
if (gatewayConfig) {
|
|
196
190
|
this.webappsRootURL = gatewayConfig.webappsRootURL;
|
|
197
191
|
}
|
|
@@ -199,13 +193,13 @@ export class OepaUserAccountService {
|
|
|
199
193
|
}));
|
|
200
194
|
}
|
|
201
195
|
}
|
|
202
|
-
getEBizVersion() {
|
|
196
|
+
getEBizVersion(app) {
|
|
203
197
|
if (this.ebizVersion) {
|
|
204
198
|
return of(this.ebizVersion);
|
|
205
199
|
}
|
|
206
200
|
else {
|
|
207
201
|
const url = this.hostUrl + '/api/v1/gateway/gatewayConfig';
|
|
208
|
-
return this.http.get(url).pipe(map((gatewayConfig) => {
|
|
202
|
+
return this.http.get(url, { params: { 'app': app } }).pipe(map((gatewayConfig) => {
|
|
209
203
|
if (gatewayConfig) {
|
|
210
204
|
this.ebizVersion = gatewayConfig.versionNumber;
|
|
211
205
|
}
|
|
@@ -339,4 +333,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
339
333
|
type: Inject,
|
|
340
334
|
args: ['ebizRootURL']
|
|
341
335
|
}] }] });
|
|
342
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2VwYS11c2VyLWFjY291bnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvb2VwYS11c2VyLWFjY291bnQvb2VwYS11c2VyLWFjY291bnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFLMUI7O0dBRUc7QUFFSCxNQUFNLE9BQU8sc0JBQXNCO0lBbUJiO0lBQWlEO0lBbEI3RCxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ2xCLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQztJQUN0QyxlQUFlLEdBQUcsa0JBQWtCLENBQUM7SUFDckMsY0FBYyxHQUFHLGlCQUFpQixDQUFDO0lBQ25DLE9BQU8sQ0FBbUI7SUFDMUIsUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUN0QixTQUFTLEdBQVcsRUFBRSxDQUFDO0lBQ3ZCLGNBQWMsR0FBVyxFQUFFLENBQUM7SUFDNUIsV0FBVyxHQUFXLEVBQUUsQ0FBQztJQUN6QixVQUFVLEdBQVcsRUFBRSxDQUFDO0lBQ3hCLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUN6QixRQUFRLEdBQVUsQ0FBQyxDQUFDO0lBQ3BCLGFBQWEsR0FBRyxDQUFDLEVBQUUsR0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHlDQUF5QztJQUNsRSxXQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztJQUNwQyxTQUFTLENBQU07SUFDaEIsWUFBWSxHQUE2QixJQUFJLE9BQU8sRUFBbUIsQ0FBQztJQUN2RSxTQUFTLEdBQVcsRUFBRSxD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LENBQUMsQ0FBQztnQkFDL0IsQ0FBQztnQkFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsQ0FBQztRQUNILENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNaLENBQUM7SUFFTSxjQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGtCQUFrQixDQUFDLE9BQWdCO1FBQ3hDLE1BQU0sZUFBZSxHQUFRO1lBQzNCLFFBQVEsRUFBRSxPQUFPO1NBQ2xCLENBQUE7UUFDRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLG1DQUFtQyxDQUFDO1FBQy9ELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7d0dBelZRLHNCQUFzQiw0Q0FtQmEsYUFBYTs0R0FuQmhELHNCQUFzQjs7NEZBQXRCLHNCQUFzQjtrQkFEbEMsVUFBVTs7MEJBb0I4QixNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5pbXBvcnQgeyBPZXBhVXNlckFjY291bnQsIFByb2dyYW1Qcml2aWxlZ2UsIFByb2dyYW1Qcml2aWxlZ2VSZXF1ZXN0LCBEZWxlZ2F0aW9uLCBPRVBBUm9sZSwgT2VwYVByaXZpbGVnZSB9IGZyb20gJ0BvaGlvZXBhL29lcGEtY29tbW9uLWxpYic7XG5cbi8qKlxuICogT2VwYVVzZXJBY2NvdW50U2VydmljZSAtIEEgY29sbGVjdGlvbiBvZiBtZXRob2RzIGZvciBhY2Nlc3NpbmcgYW5kIG1hbmlwdWxhdGluZyB1c2VyIGFjY291bnRzLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT2VwYVVzZXJBY2NvdW50U2VydmljZSB7XG4gIHByaXZhdGUgaG9zdFVybCA9ICcvZWJpeic7XG4gIHByaXZhdGUgYWNjb3VudHNVcmwgPSAnL2FwaS92MS91c2VyLWFjY291bnRzJztcbiAgcHJpdmF0ZSBlYml6QWNjb3VudHNVcmwgPSAnL2FwaS92MS9hY2NvdW50cyc7XG4gIHByaXZhdGUgZWJpelNlc3Npb25VcmwgPSAnL2FwaS92MS9zZXNzaW9uJztcbiAgcHJpdmF0ZSBhY2NvdW50ITogT2VwYVVzZXJBY2NvdW50O1xuICBwcml2YXRlIHBlcnNvbklEOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBzZXNzaW9uSUQ6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIHdlYmFwcHNSb290VVJMOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBlYml6VmVyc2lvbjogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgbG9nb3V0UGF0aDogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgaWRsZVRpbWVyUnVubmluZyA9IGZhbHNlO1xuICBwcml2YXRlIGlkbGVUaW1lOm51bWJlciA9IDA7XG4gIHByaXZhdGUgaWRsZVRocmVzaG9sZCA9ICgyOSo2MCk7IC8vIDI5IG1pbnV0ZSB0aW1lb3V0IHRocmVzaG9sZCBieSBkZWZhdWx0XG4gIHByaXZhdGUgaWRsZVN1YmplY3QgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG4gIHByaXZhdGUgdGltZW91dElEOiBhbnk7XG4gIHB1YmxpYyB1c2VyQWNjb3VudCQ6IFN1YmplY3Q8T2VwYVVzZXJBY2NvdW50PiA9IG5ldyBTdWJqZWN0PE9lcGFVc2VyQWNjb3VudD4oKTtcbiAgcHJpdmF0ZSBhdXRoVG9rZW46IHN0cmluZyA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgQEluamVjdCgnZWJpelJvb3RVUkwnKSBwcml2YXRlIGViaXpSb290VVJMOiBzdHJpbmcpIHtcbiAgICB0aGlzLmhvc3RVcmwgPSB0aGlzLmViaXpSb290VVJMICsgdGhpcy5ob3N0VXJsO1xuICAgIHRoaXMubG9nb3V0UGF0aCA9ICcvanNwL2xvZ291dC5qc3AnO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIHRoZSBVc2VyIEFjY291bnQgZm9yIHRoZSB1c2VyIHVzZXJpZC5cbiAgICogQHBhcmFtIHVzZXJpZFxuICAgKi9cbiAgcHVibGljIHJldHJpZXZlQWNjb3VudEZvclVzZXIodXNlcmlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE9lcGFVc2VyQWNjb3VudD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE9lcGFVc2VyQWNjb3VudD4odGhpcy5ob3N0VXJsICsgdGhpcy5hY2NvdW50c1VybCArICcvJyArIHVzZXJpZCk7XG4gIH1cblxuICBwdWJsaWMgcmV0cmlldmVBY2NvdW50QnlPSElEKG9oaWQ6IHN0cmluZywgYXBwOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE9lcGFVc2VyQWNjb3VudD4ge1xuICAgIGNvbnNvbGUubG9nKCdyZXRyaWV2ZSBhY2NvdW50IGZvcjogJyArIG9oaWQpO1xuICAgIGNvbnN0IHVybCA9IHRoaXMuaG9zdFVybCArIHRoaXMuYWNjb3VudHNVcmwgKyAnL29oaWQvJyArIG9oaWQgO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE9lcGFVc2VyQWNjb3VudD4odXJsLCB7IHBhcmFtczogeyAnYXBwJzogYXBwIH0gfSkucGlwZShcbiAgICAgIG1hcCgodXNlckFjY291bnQ6IE9lcGFVc2VyQWNjb3VudCkgPT4ge1xuICAgICAgICB0aGlzLnVzZXJBY2NvdW50JC5uZXh0KHVzZXJBY2NvdW50KTtcbiAgICAgICAgcmV0dXJuIHVzZXJBY2NvdW50O1xuICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFNob3VsZCBub3QgdXNlIHNlc3Npb24gdXNlciBJRCBmb3IgQW1wbGlmeSBhcHBzXG4gICAqIFJldHJpZXZlIHRoZSB1c2VyIGFjY291bnQgZm9yIHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXIuXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8T2VwYVVzZXJBY2NvdW50PlxuICAgKi9cbiAgcHVibGljIHJldHJpZXZlQWNjb3VudEZvckN1cnJlbnRVc2VyKCk6IE9ic2VydmFibGU8T2VwYVVzZXJBY2NvdW50PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8T2VwYVVzZXJBY2NvdW50Pih0aGlzLmhvc3RVcmwgKyAnL2FwaS92MS91c2VyQWNjb3VudHMvbG9naW4nKS5waXBlKG1hcCgoYWNjb3VudDogT2VwYVVzZXJBY2NvdW50KSA9PiB7XG4gICAgICBpZiAoIWFjY291bnQpIHtcbiAgICAgICAgaWYgKHRoaXMucGVyc29uSUQgJiYgdGhpcy5zZXNzaW9uSUQpIHtcbiAgICAgICAgICB0aGlzLnJldHJpZXZlQWNjb3VudEZvckludGVybmFsU2Vzc2lvbih0aGlzLnBlcnNvbklELCB0aGlzLnNlc3Npb25JRCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IGludGVybmFsQWNjb3VudCA9PiB7XG4gICAgICAgICAgICBpZiAoaW50ZXJuYWxBY2NvdW50KSB7XG4gICAgICAgICAgICAgIHRoaXMuYWNjb3VudCA9IGludGVybmFsQWNjb3VudFxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5sb2dNZXNzYWdlT25TZXJ2ZXIoJ3JldHJpZXZlQWNjb3VudEZvckN1cnJlbnRVc2VyIC0gbm8gYWNjb3VudCwgcmVkaXJlY3RpbmcgdG8gbG9nb3V0Jyk7XG4gICAgICAgICAgICAgIHRoaXMucmVkaXJlY3RUb0xvZ291dCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2dNZXNzYWdlT25TZXJ2ZXIoJ0ZhaWxlZCByZXRyaWV2aW5nIGludGVybmFsIGFjY291bnQ6ICcgKyBlcnIpO1xuICAgICAgICAgICAgdGhpcy5yZWRpcmVjdFRvTG9nb3V0KCk7XG4gICAgICAgICAgfX0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubG9nTWVzc2FnZU9uU2VydmVyKCdyZXRyaWV2ZUFjY291bnRGb3JDdXJyZW50VXNlciAtIG5vIGFjY291bnQsIHJlZGlyZWN0aW5nIHRvIGxvZ291dCcpO1xuICAgICAgICAgIHRoaXMucmVkaXJlY3RUb0xvZ291dCgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFjY291bnQgPSBhY2NvdW50O1xuICAgICAgICBjb25zb2xlLmxvZygncmV0cmlldmVBY2NvdW50Rm9yQ3VycmVudFVzZXI6ICcgKyB0aGlzLmFjY291bnQ/LmxvZ2luTmFtZSB8fCAnPHVua25vd24+Jyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5hY2NvdW50O1xuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWRpcmVjdCB0byBsb2dvdXQgc2NyZWVuIGlmIHVzZXIgaXMgbm90IGZvdW5kXG4gICAqL1xuICBwdWJsaWMgcmVkaXJlY3RUb0xvZ291dChtc2cgPzogc3RyaW5nKSB7XG4gICAgbGV0IGxvZ291dFVybCA9IHRoaXMubG9nb3V0UGF0aDtcbiAgICBpZiAodGhpcy53ZWJhcHBzUm9vdFVSTCkge1xuICAgICAgbG9nb3V0VXJsID0gdGhpcy53ZWJhcHBzUm9vdFVSTCArICh0aGlzLmxvZ291dFBhdGggfHwgJycpO1xuICAgIH1cbiAgICBhbGVydChtc2cgfHwgJ0Nvbm5lY3Rpb24gbG9zdC4gWW91IHdpbGwgYmUgcmVkaXJlY3RlZCB0byB0aGUgbG9naW4gcGFnZS4nKTtcbiAgICBjb25zb2xlLmxvZygncmVkaXJlY3RpbmcgdG8gbG9nb3V0VXJsOicgKyBsb2dvdXRVcmwpO1xuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gbG9nb3V0VXJsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIHRoZSB1c2VyIGFjY291bnQgZm9yIHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXIuXG4gICAqIEBkZXByZWNhdGVkIHNob3VsZCByZXRyaWV2ZSBhY2NvdW50IGJ5IE9ISUQgaW5zdGVhZFxuICAgKiBAcGFyYW0gc2Vzc2lvbklEIHBlcnNvbiBJRCBmb3IgaW50ZXJuYWwgdXNlclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPE9lcGFVc2VyQWNjb3VudD5cbiAgICovXG4gIHB1YmxpYyByZXRyaWV2ZUFjY291bnRGb3JJbnRlcm5hbFNlc3Npb24ocGVyc29uSUQ6IHN0cmluZywgc2Vzc2lvbklEOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE9lcGFVc2VyQWNjb3VudD4ge1xuICAgIHRoaXMuYWNjb3VudCA9IHt9O1xuICAgIGNvbnN0IHVybCA9IHRoaXMuaG9zdFVybCArICcvYXBpL3YxL3VzZXJBY2NvdW50cy9pbnRlcm5hbC9wZXJzb25JRC8nICsgcGVyc29uSUQgKyAnL3Nlc3Npb25JRC8nICsgc2Vzc2lvbklEO1xuICAgIGNvbnNvbGUubG9nKCdyZXRyaWV2ZUFjY291bnRGb3JJbnRlcm5hbFNlc3Npb246ICcgKyB1cmwpO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE9lcGFVc2VyQWNjb3VudD4odXJsKS5waXBlKG1hcCgoYWNjb3VudDogT2VwYVVzZXJBY2NvdW50KSA9PiB7XG4gICAgICB0aGlzLmFjY291bnQgPSBhY2NvdW50O1xuICAgICAgdGhpcy5wZXJzb25JRCA9IHBlcnNvbklEO1xuICAgICAgdGhpcy5zZXNzaW9uSUQgPSBzZXNzaW9uSUQ7XG4gICAgICBjb25zb2xlLmxvZygncmV0cmlldmVBY2NvdW50Rm9ySW50ZXJuYWxTZXNzaW9uOiAnICsgdGhpcy5hY2NvdW50Py5sb2dpbk5hbWUgfHwgJzx1bmtub3duPicpO1xuICAgICAgcmV0dXJuIGFjY291bnQ7XG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZSB3aGV0aGVyIGFjY291bnQgaGFzIHRoZSByb2xlIHJvbGVOYW1lLlxuICAgKiBAcGFyYW0gYWNjb3VudFxuICAgKiBAcGFyYW0gcm9sZU5hbWVcbiAgICovXG4gIHB1YmxpYyBhY2NvdW50SGFzUm9sZShhY2NvdW50OiBPZXBhVXNlckFjY291bnQsIHJvbGVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBsZXQgaGFzUm9sZSA9IGZhbHNlO1xuICAgIGNvbnN0IHJvbGVMaXN0ID0gdGhpcy5nZXRSb2xlTGlzdChhY2NvdW50KTtcbiAgICBpZiAocm9sZUxpc3QgJiYgcm9sZUxpc3QubGVuZ3RoKSB7XG4gICAgICBoYXNSb2xlID0gKHJvbGVMaXN0LmluZGV4T2Yocm9sZU5hbWUpID4gLTEpO1xuICAgIH1cbiAgICByZXR1cm4gaGFzUm9sZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Um9sZUxpc3QoYWNjb3VudDogT2VwYVVzZXJBY2NvdW50KTogQXJyYXk8c3RyaW5nPiB7XG4gICAgY29uc3Qgcm9sZUxpc3Q6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgICBpZiAoYWNjb3VudC5yb2xlTGlzdCAmJiBhY2NvdW50LnJvbGVMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgIGFjY291bnQucm9sZUxpc3QuZm9yRWFjaCgocm9sZTogT0VQQVJvbGUpID0+IHtcbiAgICAgICAgcm9sZUxpc3QucHVzaChyb2xlLm5hbWUgfHwgJycpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByb2xlTGlzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmUgd2hldGhlciBhY2NvdW50IGhhcyB0aGUgcHJpdmlsZWdlIHByaXZpbGVnZVR5cGUuXG4gICAqIEBwYXJhbSBhY2NvdW50XG4gICAqIEBwYXJhbSBwcml2aWxlZ2VUeXBlXG4gICAqL1xuICBwdWJsaWMgYWNjb3VudEhhc1ByaXZpbGVnZShhY2NvdW50OiBPZXBhVXNlckFjY291bnQsIHByaXZpbGVnZVR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGxldCBoYXNQcml2aWxlZ2UgPSBmYWxzZTtcbiAgICBjb25zdCBwcml2aWxlZ2VMaXN0ID0gdGhpcy5nZXRQcml2aWxlZ2VMaXN0KGFjY291bnQpO1xuICAgIGlmIChwcml2aWxlZ2VMaXN0ICYmIHByaXZpbGVnZUxpc3QubGVuZ3RoKSB7XG4gICAgICBoYXNQcml2aWxlZ2UgPSAocHJpdmlsZWdlTGlzdC5pbmRleE9mKHByaXZpbGVnZVR5cGUpID4gLTEpO1xuICAgIH1cbiAgICByZXR1cm4gaGFzUHJpdmlsZWdlO1xuICB9XG5cbiAgcHVibGljIGdldFByaXZpbGVnZUxpc3QoYWNjb3VudDogT2VwYVVzZXJBY2NvdW50KTogQXJyYXk8c3RyaW5nPiB7XG4gICAgY29uc3QgcHJpdmlsZWdlTGlzdDogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgIGlmIChhY2NvdW50LnJvbGVMaXN0ICYmIGFjY291bnQucm9sZUxpc3QubGVuZ3RoID4gMCkge1xuICAgICAgYWNjb3VudC5yb2xlTGlzdC5mb3JFYWNoKChyb2xlOiBPRVBBUm9sZSkgPT4ge1xuICAgICAgICBpZiAocm9sZS5wcml2aWxlZ2VMaXN0ICYmIHJvbGUucHJpdmlsZWdlTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcm9sZS5wcml2aWxlZ2VMaXN0LmZvckVhY2goKHByaXZpbGVnZTogT2VwYVByaXZpbGVnZSkgPT4ge1xuICAgICAgICAgICAgcHJpdmlsZWdlTGlzdC5wdXNoKHByaXZpbGVnZS50eXBlIHx8ICcnKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBwcml2aWxlZ2VMaXN0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIHRoZSB1c2VyQWNjb3VudCBvZiB0aGUgY3VycmVudCB1c2VyLiBUaGUgcmV0cmlldmVBY2NvdW50Rm9yQ3VycmVudFVzZXIgbWV0aG9kXG4gICAqIG11c3QgYmUgaW52b2tlZCBwcmlvciB0byBpbnZva2luZyB0aGlzIG1ldGhvZC5cbiAgICovXG4gIHB1YmxpYyBnZXRDdXJyZW50VXNlckFjY291bnQoKTogT2VwYVVzZXJBY2NvdW50IHtcbiAgICByZXR1cm4gdGhpcy5hY2NvdW50O1xuICB9XG5cbiAgcHVibGljIHNldEN1cnJlbnRVc2VyQWNjb3VudChhY2NvdW50OiBPZXBhVXNlckFjY291bnQpIHtcbiAgICB0aGlzLmFjY291bnQgPSBhY2NvdW50O1xuICAgIHRoaXMudXNlckFjY291bnQkLm5leHQodGhpcy5hY2NvdW50KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBdXRoVG9rZW4oKSA6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aFRva2VuO1xuICB9XG5cbiAgcHVibGljIHNldEF1dGhUb2tlbih0b2tlbjogc3RyaW5nKSB7XG4gICAgdGhpcy5hdXRoVG9rZW4gPSB0b2tlbjtcbiAgfVxuIFxuICAvKipcbiAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAqIEVCSVogTUVUSE9EUzpcbiAgICogVGhlIG1ldGhvZHMgYmVsb3cgY3VycmVudGx5IGFwcGx5IG9ubHkgdG8gZUJpei5cbiAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAqL1xuXG4gIHB1YmxpYyBnZXRXZWJhcHBzUm9vdFVSTCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIGlmICh0aGlzLndlYmFwcHNSb290VVJMKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy53ZWJhcHBzUm9vdFVSTCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHVybCA9IHRoaXMuaG9zdFVybCArICcvYXBpL3YxL2dhdGV3YXkvZ2F0ZXdheUNvbmZpZyc7XG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KHVybCkucGlwZShtYXAoKGdhdGV3YXlDb25maWc6YW55KSA9PiB7XG4gICAgICAgIGlmIChnYXRld2F5Q29uZmlnKSB7XG4gICAgICAgICAgdGhpcy53ZWJhcHBzUm9vdFVSTCA9IGdhdGV3YXlDb25maWcud2ViYXBwc1Jvb3RVUkw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMud2ViYXBwc1Jvb3RVUkw7XG4gICAgICB9KSk7XG4gICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRFQml6VmVyc2lvbigpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgaWYgKHRoaXMuZWJpelZlcnNpb24pIHtcbiAgICAgICAgcmV0dXJuIG9mKHRoaXMuZWJpelZlcnNpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5ob3N0VXJsICsgJy9hcGkvdjEvZ2F0ZXdheS9nYXRld2F5Q29uZmlnJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55Pih1cmwpLnBpcGUobWFwKChnYXRld2F5Q29uZmlnOmFueSkgPT4ge1xuICAgICAgICAgIGlmIChnYXRld2F5Q29uZmlnKSB7XG4gICAgICAgICAgICB0aGlzLmViaXpWZXJzaW9uID0gZ2F0ZXdheUNvbmZpZy52ZXJzaW9uTnVtYmVyO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpcy5lYml6VmVyc2lvbjtcbiAgICAgICAgfSkpO1xuICAgICAgfVxuICAgICAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYXJyYXkgb2YgUHJvZ3JhbVByaXZpbGVnZXMgbWF0Y2hpbmcgcHJvZ3JhbVByaXZpbGVnZVJlcXVlc3QuXG4gICAqIEBwYXJhbSBwcm9ncmFtUHJpdmlsZWdlUmVxdWVzdFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEFycmF5PFByb2dyYW1Qcml2aWxlZ2U+PlxuICAgKi9cbiAgcHVibGljIHNlYXJjaFByaXZpbGVnZXMocHJvZ3JhbVByaXZpbGVnZVJlcXVlc3Q6IFByb2dyYW1Qcml2aWxlZ2VSZXF1ZXN0LCBhbHRVc2VySUQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFycmF5PFByb2dyYW1Qcml2aWxlZ2U+PiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5ob3N0VXJsICsgdGhpcy5lYml6QWNjb3VudHNVcmwgKyAnL3Byb2dyYW1Qcml2aWxlZ2VzL3NlYXJjaCcgKyAoYWx0VXNlcklEID8gJz91c2VyaWQ9JyArIGFsdFVzZXJJRCA6ICcnKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXJyYXk8UHJvZ3JhbVByaXZpbGVnZT4+KHVybCwgcHJvZ3JhbVByaXZpbGVnZVJlcXVlc3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBQcm9ncmFtUHJpdmlsZWdlIGJhc2VkIG9uIGNvbnRlbnRzIG9mIFByb2dyYW1Qcml2aWxlZ2VSZXF1ZXN0LlxuICAgKiBAcGFyYW0gcHJvZ3JhbVByaXZpbGVnZVJlcXVlc3RcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxQcm9ncmFtUHJpdmlsZWdlP1xuICAgKi9cbiAgcHVibGljIGNyZWF0ZVByb2dyYW1Qcml2aWxlZ2UocHJvZ3JhbVByaXZpbGVnZVJlcXVlc3Q6IFByb2dyYW1Qcml2aWxlZ2VSZXF1ZXN0LCBhbHRVc2VySUQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFByb2dyYW1Qcml2aWxlZ2U+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UHJvZ3JhbVByaXZpbGVnZT4odGhpcy5ob3N0VXJsICsgdGhpcy5lYml6QWNjb3VudHNVcmwgKyAnL3Byb2dyYW1Qcml2aWxlZ2VzJysgKGFsdFVzZXJJRCA/ICc/dXNlcmlkPScgKyBhbHRVc2VySUQgOiAnJyksIFxuICAgIHByb2dyYW1Qcml2aWxlZ2VSZXF1ZXN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgdGhlIFByb2dyYW1Qcml2aWxlZ2UgaWRlbnRpZmllZCBieSBwcm9ncmFtUHJpdmlsZWdlSUQuXG4gICAqIEBwYXJhbSBwcm9ncmFtUHJpdmlsZWdlSURcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx2b2lkPlxuICAgKi9cbiAgcHVibGljIGRlbGV0ZVByb2dyYW1Qcml2aWxlZ2UocHJvZ3JhbVByaXZpbGVnZUlEOiBzdHJpbmcsIGFsdFVzZXJJRD86IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUodGhpcy5ob3N0VXJsICsgdGhpcy5lYml6QWNjb3VudHNVcmwgKyAnL3Byb2dyYW1Qcml2aWxlZ2VzLycgKyBwcm9ncmFtUHJpdmlsZWdlSUQgKyAoYWx0VXNlcklEID8gJz91c2VyaWQ9JyArIGFsdFVzZXJJRCA6ICcnKSwgXG4gICAgeyByZXNwb25zZVR5cGU6ICd0ZXh0JyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxlZ2F0ZSBhIHByb2dyYW0gcHJpdmlsZWdlIGJhc2VkIG9uIGluZm9ybWF0aW9uIGluIGRlbGVnYXRpb24uXG4gICAqIEBwYXJhbSBkZWxlZ2F0aW9uXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8dm9pZD5cbiAgICovXG4gIHB1YmxpYyBkZWxlZ2F0ZVByb2dyYW1Qcml2aWxlZ2UoZGVsZWdhdGlvbjogRGVsZWdhdGlvbiwgYWx0VXNlcklEPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5ob3N0VXJsICsgdGhpcy5lYml6QWNjb3VudHNVcmwgKyAnL3Byb2dyYW1Qcml2aWxlZ2VzL2RlbGVnYXRpb24nICsgKGFsdFVzZXJJRCA/ICc/dXNlcmlkPScgKyBhbHRVc2VySUQgOiAnJyksXG4gICAgZGVsZWdhdGlvbiwgeyByZXNwb25zZVR5cGU6ICd0ZXh0JyB9KTtcbiAgfVxuXG4gLyoqXG4gICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgKiBIZWxwZXIgTUVUSE9EUzpcbiAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAqL1xuXG4gICAvKipcbiAgICAqIFNldCB0aGUgdXNlciBhY2NvdW50IHRvIGJlIHVzZWQgZm9yIFwibGl2ZSByZWxvYWQgbW9kZVwiXG4gICAgKiBAcGFyYW0gdXNlckFjY291bnQgXG4gICAgKi9cbiAgICBwdWJsaWMgc2V0TGl2ZVJlbG9hZFVzZXIodXNlckFjY291bnQ6IE9lcGFVc2VyQWNjb3VudCk6IE9ic2VydmFibGU8T2VwYVVzZXJBY2NvdW50PiB7XG4gICAgICB0aGlzLmFjY291bnQgPSB1c2VyQWNjb3VudDtcbiAgICAgIGNvbnNvbGUubG9nKCdzZXRMaXZlUmVsb2FkVXNlcjogJyArIHRoaXMuYWNjb3VudD8ubG9naW5OYW1lIHx8ICc8dW5rbm93bj4nKTtcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxPZXBhVXNlckFjY291bnQ+KHRoaXMuaG9zdFVybCArIHRoaXMuZWJpekFjY291bnRzVXJsICsgJy9saXZlUmVsb2FkJywgdXNlckFjY291bnQpO1xuICAgIH1cblxuICAgLyoqXG4gICAgKiBTdG9yZXMgdGhlIGdpdmVuIHVzZXIgaW4gdGhlIGVCaXogc2Vzc2lvbi5cbiAgICAqIEBwYXJhbSBhY2NvdW50VXNlcklEIFxuICAgICovXG4gICBwdWJsaWMgc3RvcmVVc2VySW5TZXNzaW9uKGFjY291bnRVc2VySUQ6IHN0cmluZyk6IE9ic2VydmFibGU8T2VwYVVzZXJBY2NvdW50PiB7XG4gICAgIGxldCBhY2N0ID0ge30gYXMgT2VwYVVzZXJBY2NvdW50O1xuICAgICBhY2N0LmFjY291bnRJRCA9IGFjY291bnRVc2VySUQ7XG4gICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxPZXBhVXNlckFjY291bnQ+KHRoaXMuaG9zdFVybCArIHRoaXMuZWJpelNlc3Npb25VcmwgKyAnL3N0b3JlVXNlci8nICsgYWNjb3VudFVzZXJJRCwgbnVsbCk7XG4gICB9XG5cbiAgICAvKipcbiAgICAgKiBTZWUgaWYgdGhlIGN1cnJlbnQgdXNlciBzaG91bGQgYmUgYWxsb3dlZCB0byBzZWUgXCJkZW1vXCIgY2FwYWJpbGl0aWVzXG4gICAgICovXG4gICAgcHVibGljIGRlbW9DYXBhYmlsaXRpZXNBbGxvd2VkKCk6IGJvb2xlYW4ge1xuICAgICAgbGV0IGRlbW9BbGxvd2VkID0gZmFsc2U7XG4gICAgICBpZiAodGhpcy5hY2NvdW50ICYmIHRoaXMuYWNjb3VudC5yb2xlTGlzdCkge1xuICAgICAgICB0aGlzLmFjY291bnQucm9sZUxpc3QuZm9yRWFjaChyb2xlID0+IHtcbiAgICAgICAgICBpZiAocm9sZS5uYW1lID09PSAnQWxsb3dEZW1vJykge1xuICAgICAgICAgICAgZGVtb0FsbG93ZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZGVtb0FsbG93ZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXJ0SWRsZVRpbWVyKHRocmVzaG9sZD86IG51bWJlcikge1xuICAgICAgaWYgKHRoaXMudGltZW91dElEKSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRJRCk7XG4gICAgICB9XG4gICAgICB0aGlzLmlkbGVUaHJlc2hvbGQgPSB0aHJlc2hvbGQgfHwgdGhpcy5pZGxlVGhyZXNob2xkO1xuICAgICAgaWYgKCF0aGlzLmlkbGVUaW1lclJ1bm5pbmcpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1RoZSBpZGxlIHRpbWVvdXQgc3RhcnRlZCB3aXRoIHRocmVzaG9sZDogJyArIHRoaXMuaWRsZVRocmVzaG9sZCk7XG4gICAgICAgIHRoaXMuaWRsZVRpbWVyUnVubmluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuY2hlY2tUaW1lb3V0KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0SWRsZVRpbWUoKSB7XG4gICAgICBjb25zb2xlLmxvZygnaWRsZSB0aW1lciByZXNldCcpO1xuICAgICAgdGhpcy5pZGxlVGltZSA9IDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja1RpbWVvdXQoKSB7XG4gICAgICB0aGlzLnRpbWVvdXRJRCA9IHNldFRpbWVvdXQoKCk9PiB7XG4gICAgICAgIHRoaXMuaWRsZVRpbWUgKz0gNjA7XG4gICAgICAgIGNvbnNvbGUubG9nKCdpZGxlIHRpbWUgPSAnICsgdGhpcy5pZGxlVGltZSArIFwiLCB0aHJlc2hvbGQgPSBcIiArIHRoaXMuaWRsZVRocmVzaG9sZCk7XG4gICAgICAgIGlmICh0aGlzLmlkbGVUaW1lID49IHRoaXMuaWRsZVRocmVzaG9sZCkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdmaXJpbmcgbmV4dCBpZGxlU3ViamVjdC4uLicpO1xuICAgICAgICAgIHRoaXMuaWRsZVRpbWVyUnVubmluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuaWRsZVN1YmplY3QubmV4dCh0aGlzLmlkbGVUaW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodGhpcy50aW1lb3V0SUQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRJRCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuY2hlY2tUaW1lb3V0KCk7XG4gICAgICAgIH1cbiAgICAgIH0sIDYwMDAwKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SWRsZVRpbWVvdXQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgIHJldHVybiB0aGlzLmlkbGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBcbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBXZSBwcm9iYWJseSBkb24ndCB3YW50IHRvIHN1cHBvcnQgdGhpcyBnb2luZyBmb3J3YXJkXG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKiBAcmV0dXJucyBcbiAgICAgKi9cbiAgICBwdWJsaWMgbG9nTWVzc2FnZU9uU2VydmVyKG1lc3NhZ2U/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgY29uc3QgbWVzc2FnZVJlc3BvbnNlOiBhbnkgPSB7XG4gICAgICAgIHJlc3BvbnNlOiBtZXNzYWdlXG4gICAgICB9XG4gICAgICBjb25zdCB1cmwgPSB0aGlzLmhvc3RVcmwgKyAnL2FwaS92MS91c2VyQWNjb3VudHMvbG9ncy9tZXNzYWdlJztcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwgbWVzc2FnZVJlc3BvbnNlKTtcbiAgICB9XG59XG4iXX0=
|
|
336
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2VwYS11c2VyLWFjY291bnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvb2VwYS11c2VyLWFjY291bnQvb2VwYS11c2VyLWFjY291bnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFLMUI7O0dBRUc7QUFFSCxNQUFNLE9BQU8sc0JBQXNCO0lBb0JiO0lBQWlEO0lBbkI3RCxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ2xCLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQztJQUN0QyxlQUFlLEdBQUcsa0JBQWtCLENBQUM7SUFDckMsY0FBYyxHQUFHLGlCQUFpQixDQUFDO0lBQ25DLE9BQU8sQ0FBbUI7SUFDMUIsUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUN0QixTQUFTLEdBQVcsRUFBRSxDQUFDO0lBQ3ZCLGNBQWMsR0FBVyxFQUFFLENBQUM7SUFDNUIsV0FBVyxHQUFXLEVBQUUsQ0FBQztJQUN6QixVQUFVLEdBQVcsRUFBRSxDQUFDO0lBQ3hCLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUN6QixRQUFRLEdBQVUsQ0FBQyxDQUFDO0lBQ3BCLGFBQWEsR0FBRyxDQUFDLEVBQUUsR0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHlDQUF5QztJQUNsRSxXQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztJQUNwQyxTQUFTLENBQU07SUFDaEIsWUFBWSxHQUE2QixJQUFJLE9BQU8sRUFBbUIsQ0FBQztJQUN4RSxVQUFVLEdBQW9CLElBQUks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QUFDO2dCQUNELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixDQUFDO1FBQ0gsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ1osQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksa0JBQWtCLENBQUMsT0FBZ0I7UUFDeEMsTUFBTSxlQUFlLEdBQVE7WUFDM0IsUUFBUSxFQUFFLE9BQU87U0FDbEIsQ0FBQTtRQUNELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsbUNBQW1DLENBQUM7UUFDL0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDbkQsQ0FBQzt3R0FuVlEsc0JBQXNCLDRDQW9CYSxhQUFhOzRHQXBCaEQsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVOzswQkFxQjhCLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmltcG9ydCB7IE9lcGFVc2VyQWNjb3VudCwgUHJvZ3JhbVByaXZpbGVnZSwgUHJvZ3JhbVByaXZpbGVnZVJlcXVlc3QsIERlbGVnYXRpb24sIE9FUEFSb2xlLCBPZXBhUHJpdmlsZWdlIH0gZnJvbSAnQG9oaW9lcGEvb2VwYS1jb21tb24tbGliJztcblxuLyoqXG4gKiBPZXBhVXNlckFjY291bnRTZXJ2aWNlIC0gQSBjb2xsZWN0aW9uIG9mIG1ldGhvZHMgZm9yIGFjY2Vzc2luZyBhbmQgbWFuaXB1bGF0aW5nIHVzZXIgYWNjb3VudHMuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPZXBhVXNlckFjY291bnRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBob3N0VXJsID0gJy9lYml6JztcbiAgcHJpdmF0ZSBhY2NvdW50c1VybCA9ICcvYXBpL3YxL3VzZXItYWNjb3VudHMnO1xuICBwcml2YXRlIGViaXpBY2NvdW50c1VybCA9ICcvYXBpL3YxL2FjY291bnRzJztcbiAgcHJpdmF0ZSBlYml6U2Vzc2lvblVybCA9ICcvYXBpL3YxL3Nlc3Npb24nO1xuICBwcml2YXRlIGFjY291bnQhOiBPZXBhVXNlckFjY291bnQ7XG4gIHByaXZhdGUgcGVyc29uSUQ6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIHNlc3Npb25JRDogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgd2ViYXBwc1Jvb3RVUkw6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIGViaXpWZXJzaW9uOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBsb2dvdXRQYXRoOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBpZGxlVGltZXJSdW5uaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgaWRsZVRpbWU6bnVtYmVyID0gMDtcbiAgcHJpdmF0ZSBpZGxlVGhyZXNob2xkID0gKDI5KjYwKTsgLy8gMjkgbWludXRlIHRpbWVvdXQgdGhyZXNob2xkIGJ5IGRlZmF1bHRcbiAgcHJpdmF0ZSBpZGxlU3ViamVjdCA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcbiAgcHJpdmF0ZSB0aW1lb3V0SUQ6IGFueTtcbiAgcHVibGljIHVzZXJBY2NvdW50JDogU3ViamVjdDxPZXBhVXNlckFjY291bnQ+ID0gbmV3IFN1YmplY3Q8T2VwYVVzZXJBY2NvdW50PigpO1xuICBwdWJsaWMgc2Vzc2lvbklEJDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpOyAvLyBzZXNzaW9uIElEIGlzIHVzZWQgZm9yIFwiYmFja2Rvb3JcIiBwcm9jZXNzaW5nIG9mIGludGVybmFsICh3ZWJhcHBzKSBhY2NvdW50c1xuICBwcml2YXRlIGF1dGhUb2tlbjogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBASW5qZWN0KCdlYml6Um9vdFVSTCcpIHByaXZhdGUgZWJpelJvb3RVUkw6IHN0cmluZykge1xuICAgIHRoaXMuaG9zdFVybCA9IHRoaXMuZWJpelJvb3RVUkwgKyB0aGlzLmhvc3RVcmw7XG4gICAgdGhpcy5sb2dvdXRQYXRoID0gJy9qc3AvbG9nb3V0LmpzcCc7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgdGhlIFVzZXIgQWNjb3VudCBmb3IgdGhlIHVzZXIgdXNlcmlkLlxuICAgKiBAcGFyYW0gdXNlcmlkXG4gICAqL1xuICBwdWJsaWMgcmV0cmlldmVBY2NvdW50Rm9yVXNlcih1c2VyaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8T2VwYVVzZXJBY2NvdW50PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8T2VwYVVzZXJBY2NvdW50Pih0aGlzLmhvc3RVcmwgKyB0aGlzLmFjY291bnRzVXJsICsgJy8nICsgdXNlcmlkKTtcbiAgfVxuXG4gIHB1YmxpYyByZXRyaWV2ZUFjY291bnRCeU9ISUQob2hpZDogc3RyaW5nLCBhcHA6IHN0cmluZyk6IE9ic2VydmFibGU8T2VwYVVzZXJBY2NvdW50PiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5ob3N0VXJsICsgdGhpcy5hY2NvdW50c1VybCArICcvb2hpZC8nICsgb2hpZCA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8T2VwYVVzZXJBY2NvdW50Pih1cmwsIHsgcGFyYW1zOiB7ICdhcHAnOiBhcHAgfSB9KS5waXBlKFxuICAgICAgbWFwKCh1c2VyQWNjb3VudDogT2VwYVVzZXJBY2NvdW50KSA9PiB7XG4gICAgICAgIHRoaXMudXNlckFjY291bnQkLm5leHQodXNlckFjY291bnQpO1xuICAgICAgICByZXR1cm4gdXNlckFjY291bnQ7XG4gICAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgdGhlIHVzZXIgYWNjb3VudCBmb3IgdGhlIGN1cnJlbnRseSBsb2dnZWQgaW4gdXNlci5cbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxPZXBhVXNlckFjY291bnQ+XG4gICAqL1xuICBwdWJsaWMgcmV0cmlldmVBY2NvdW50Rm9yQ3VycmVudFVzZXIoYXBwOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE9lcGFVc2VyQWNjb3VudD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE9lcGFVc2VyQWNjb3VudD4odGhpcy5ob3N0VXJsICsgJy9hcGkvdjEvdXNlckFjY291bnRzL2xvZ2luJykucGlwZShtYXAoKGFjY291bnQ6IE9lcGFVc2VyQWNjb3VudCkgPT4ge1xuICAgICAgaWYgKCFhY2NvdW50KSB7XG4gICAgICAgIGlmICh0aGlzLnBlcnNvbklEICYmIHRoaXMuc2Vzc2lvbklEKSB7XG4gICAgICAgICAgdGhpcy5yZXRyaWV2ZUFjY291bnRGb3JJbnRlcm5hbFNlc3Npb24odGhpcy5wZXJzb25JRCwgdGhpcy5zZXNzaW9uSUQsIGFwcCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IGludGVybmFsQWNjb3VudCA9PiB7XG4gICAgICAgICAgICBpZiAoaW50ZXJuYWxBY2NvdW50KSB7XG4gICAgICAgICAgICAgIHRoaXMuYWNjb3VudCA9IGludGVybmFsQWNjb3VudFxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5yZWRpcmVjdFRvTG9nb3V0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSwgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlZGlyZWN0VG9Mb2dvdXQoKTtcbiAgICAgICAgICB9fSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZWRpcmVjdFRvTG9nb3V0KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWNjb3VudCA9IGFjY291bnQ7XG4gICAgICAgIGNvbnNvbGUubG9nKCdyZXRyaWV2ZUFjY291bnRGb3JDdXJyZW50VXNlcjogJyArIHRoaXMuYWNjb3VudD8ubG9naW5OYW1lIHx8ICc8dW5rbm93bj4nKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmFjY291bnQ7XG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZGlyZWN0IHRvIGxvZ291dCBzY3JlZW4gaWYgdXNlciBpcyBub3QgZm91bmRcbiAgICovXG4gIHB1YmxpYyByZWRpcmVjdFRvTG9nb3V0KG1zZyA/OiBzdHJpbmcpIHtcbiAgICBsZXQgbG9nb3V0VXJsID0gdGhpcy5sb2dvdXRQYXRoO1xuICAgIGlmICh0aGlzLndlYmFwcHNSb290VVJMKSB7XG4gICAgICBsb2dvdXRVcmwgPSB0aGlzLndlYmFwcHNSb290VVJMICsgKHRoaXMubG9nb3V0UGF0aCB8fCAnJyk7XG4gICAgfVxuICAgIGFsZXJ0KG1zZyB8fCAnQ29ubmVjdGlvbiBsb3N0LiBZb3Ugd2lsbCBiZSByZWRpcmVjdGVkIHRvIHRoZSBsb2dpbiBwYWdlLicpO1xuICAgIGNvbnNvbGUubG9nKCdyZWRpcmVjdGluZyB0byBsb2dvdXRVcmw6JyArIGxvZ291dFVybCk7XG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBsb2dvdXRVcmw7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgdGhlIHVzZXIgYWNjb3VudCBmb3IgdGhlIGN1cnJlbnRseSBsb2dnZWQgaW4gdXNlci5cbiAgICogQHBhcmFtIHNlc3Npb25JRCBwZXJzb24gSUQgZm9yIGludGVybmFsIHVzZXJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxPZXBhVXNlckFjY291bnQ+XG4gICAqL1xuICBwdWJsaWMgcmV0cmlldmVBY2NvdW50Rm9ySW50ZXJuYWxTZXNzaW9uKHBlcnNvbklEOiBzdHJpbmcsIHNlc3Npb25JRDogc3RyaW5nLCBhcHA6IHN0cmluZyk6IE9ic2VydmFibGU8T2VwYVVzZXJBY2NvdW50PiB7XG4gICAgdGhpcy5hY2NvdW50ID0ge307XG4gICAgY29uc3QgdXJsID0gdGhpcy5ob3N0VXJsICsgdGhpcy5hY2NvdW50c1VybCArICcvaW50ZXJuYWwvcGVyc29uSUQvJyArIHBlcnNvbklEICsgJy9zZXNzaW9uSUQvJyArIHNlc3Npb25JRDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxPZXBhVXNlckFjY291bnQ+KHVybCwgeyBwYXJhbXM6IHsgJ2FwcCc6IGFwcCB9IH0pLnBpcGUobWFwKChhY2NvdW50OiBPZXBhVXNlckFjY291bnQpID0+IHtcbiAgICAgIHRoaXMuYWNjb3VudCA9IGFjY291bnQ7XG4gICAgICB0aGlzLnBlcnNvbklEID0gcGVyc29uSUQ7XG4gICAgICB0aGlzLnNlc3Npb25JRCA9IHNlc3Npb25JRDtcbiAgICAgIHRoaXMuc2Vzc2lvbklEJC5uZXh0KHNlc3Npb25JRCk7XG4gICAgICByZXR1cm4gYWNjb3VudDtcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lIHdoZXRoZXIgYWNjb3VudCBoYXMgdGhlIHJvbGUgcm9sZU5hbWUuXG4gICAqIEBwYXJhbSBhY2NvdW50XG4gICAqIEBwYXJhbSByb2xlTmFtZVxuICAgKi9cbiAgcHVibGljIGFjY291bnRIYXNSb2xlKGFjY291bnQ6IE9lcGFVc2VyQWNjb3VudCwgcm9sZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGxldCBoYXNSb2xlID0gZmFsc2U7XG4gICAgY29uc3Qgcm9sZUxpc3QgPSB0aGlzLmdldFJvbGVMaXN0KGFjY291bnQpO1xuICAgIGlmIChyb2xlTGlzdCAmJiByb2xlTGlzdC5sZW5ndGgpIHtcbiAgICAgIGhhc1JvbGUgPSAocm9sZUxpc3QuaW5kZXhPZihyb2xlTmFtZSkgPiAtMSk7XG4gICAgfVxuICAgIHJldHVybiBoYXNSb2xlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSb2xlTGlzdChhY2NvdW50OiBPZXBhVXNlckFjY291bnQpOiBBcnJheTxzdHJpbmc+IHtcbiAgICBjb25zdCByb2xlTGlzdDogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgIGlmIChhY2NvdW50LnJvbGVMaXN0ICYmIGFjY291bnQucm9sZUxpc3QubGVuZ3RoID4gMCkge1xuICAgICAgYWNjb3VudC5yb2xlTGlzdC5mb3JFYWNoKChyb2xlOiBPRVBBUm9sZSkgPT4ge1xuICAgICAgICByb2xlTGlzdC5wdXNoKHJvbGUubmFtZSB8fCAnJyk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJvbGVMaXN0O1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZSB3aGV0aGVyIGFjY291bnQgaGFzIHRoZSBwcml2aWxlZ2UgcHJpdmlsZWdlVHlwZS5cbiAgICogQHBhcmFtIGFjY291bnRcbiAgICogQHBhcmFtIHByaXZpbGVnZVR5cGVcbiAgICovXG4gIHB1YmxpYyBhY2NvdW50SGFzUHJpdmlsZWdlKGFjY291bnQ6IE9lcGFVc2VyQWNjb3VudCwgcHJpdmlsZWdlVHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgbGV0IGhhc1ByaXZpbGVnZSA9IGZhbHNlO1xuICAgIGNvbnN0IHByaXZpbGVnZUxpc3QgPSB0aGlzLmdldFByaXZpbGVnZUxpc3QoYWNjb3VudCk7XG4gICAgaWYgKHByaXZpbGVnZUxpc3QgJiYgcHJpdmlsZWdlTGlzdC5sZW5ndGgpIHtcbiAgICAgIGhhc1ByaXZpbGVnZSA9IChwcml2aWxlZ2VMaXN0LmluZGV4T2YocHJpdmlsZWdlVHlwZSkgPiAtMSk7XG4gICAgfVxuICAgIHJldHVybiBoYXNQcml2aWxlZ2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0UHJpdmlsZWdlTGlzdChhY2NvdW50OiBPZXBhVXNlckFjY291bnQpOiBBcnJheTxzdHJpbmc+IHtcbiAgICBjb25zdCBwcml2aWxlZ2VMaXN0OiBBcnJheTxzdHJpbmc+ID0gW107XG4gICAgaWYgKGFjY291bnQucm9sZUxpc3QgJiYgYWNjb3VudC5yb2xlTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICBhY2NvdW50LnJvbGVMaXN0LmZvckVhY2goKHJvbGU6IE9FUEFSb2xlKSA9PiB7XG4gICAgICAgIGlmIChyb2xlLnByaXZpbGVnZUxpc3QgJiYgcm9sZS5wcml2aWxlZ2VMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICByb2xlLnByaXZpbGVnZUxpc3QuZm9yRWFjaCgocHJpdmlsZWdlOiBPZXBhUHJpdmlsZWdlKSA9PiB7XG4gICAgICAgICAgICBwcml2aWxlZ2VMaXN0LnB1c2gocHJpdmlsZWdlLnR5cGUgfHwgJycpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHByaXZpbGVnZUxpc3Q7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgdGhlIHVzZXJBY2NvdW50IG9mIHRoZSBjdXJyZW50IHVzZXIuIFRoZSByZXRyaWV2ZUFjY291bnRGb3JDdXJyZW50VXNlciBtZXRob2RcbiAgICogbXVzdCBiZSBpbnZva2VkIHByaW9yIHRvIGludm9raW5nIHRoaXMgbWV0aG9kLlxuICAgKi9cbiAgcHVibGljIGdldEN1cnJlbnRVc2VyQWNjb3VudCgpOiBPZXBhVXNlckFjY291bnQge1xuICAgIHJldHVybiB0aGlzLmFjY291bnQ7XG4gIH1cblxuICBwdWJsaWMgc2V0Q3VycmVudFVzZXJBY2NvdW50KGFjY291bnQ6IE9lcGFVc2VyQWNjb3VudCkge1xuICAgIHRoaXMuYWNjb3VudCA9IGFjY291bnQ7XG4gICAgdGhpcy51c2VyQWNjb3VudCQubmV4dCh0aGlzLmFjY291bnQpO1xuICB9XG5cbiAgcHVibGljIGdldEF1dGhUb2tlbigpIDogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5hdXRoVG9rZW47XG4gIH1cblxuICBwdWJsaWMgc2V0QXV0aFRva2VuKHRva2VuOiBzdHJpbmcpIHtcbiAgICB0aGlzLmF1dGhUb2tlbiA9IHRva2VuO1xuICB9XG4gXG4gIC8qKlxuICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICogRUJJWiBNRVRIT0RTOlxuICAgKiBUaGUgbWV0aG9kcyBiZWxvdyBjdXJyZW50bHkgYXBwbHkgb25seSB0byBlQml6LlxuICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICovXG5cbiAgcHVibGljIGdldFdlYmFwcHNSb290VVJMKGFwcDogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBpZiAodGhpcy53ZWJhcHBzUm9vdFVSTCkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMud2ViYXBwc1Jvb3RVUkwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB1cmwgPSB0aGlzLmhvc3RVcmwgKyAnL2FwaS92MS9nYXRld2F5L2dhdGV3YXlDb25maWcnO1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55Pih1cmwsIHsgcGFyYW1zOiB7ICdhcHAnOiBhcHAgfSB9KS5waXBlKG1hcCgoZ2F0ZXdheUNvbmZpZzphbnkpID0+IHtcbiAgICAgICAgaWYgKGdhdGV3YXlDb25maWcpIHtcbiAgICAgICAgICB0aGlzLndlYmFwcHNSb290VVJMID0gZ2F0ZXdheUNvbmZpZy53ZWJhcHBzUm9vdFVSTDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy53ZWJhcHBzUm9vdFVSTDtcbiAgICAgIH0pKTtcbiAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldEVCaXpWZXJzaW9uKGFwcDogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgIGlmICh0aGlzLmViaXpWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybiBvZih0aGlzLmViaXpWZXJzaW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuaG9zdFVybCArICcvYXBpL3YxL2dhdGV3YXkvZ2F0ZXdheUNvbmZpZyc7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4odXJsLCB7IHBhcmFtczogeyAnYXBwJzogYXBwIH0gfSkucGlwZShtYXAoKGdhdGV3YXlDb25maWc6YW55KSA9PiB7XG4gICAgICAgICAgaWYgKGdhdGV3YXlDb25maWcpIHtcbiAgICAgICAgICAgIHRoaXMuZWJpelZlcnNpb24gPSBnYXRld2F5Q29uZmlnLnZlcnNpb25OdW1iZXI7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0aGlzLmViaXpWZXJzaW9uO1xuICAgICAgICB9KSk7XG4gICAgICB9XG4gICAgICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhcnJheSBvZiBQcm9ncmFtUHJpdmlsZWdlcyBtYXRjaGluZyBwcm9ncmFtUHJpdmlsZWdlUmVxdWVzdC5cbiAgICogQHBhcmFtIHByb2dyYW1Qcml2aWxlZ2VSZXF1ZXN0XG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8QXJyYXk8UHJvZ3JhbVByaXZpbGVnZT4+XG4gICAqL1xuICBwdWJsaWMgc2VhcmNoUHJpdmlsZWdlcyhwcm9ncmFtUHJpdmlsZWdlUmVxdWVzdDogUHJvZ3JhbVByaXZpbGVnZVJlcXVlc3QsIGFsdFVzZXJJRD86IHN0cmluZyk6IE9ic2VydmFibGU8QXJyYXk8UHJvZ3JhbVByaXZpbGVnZT4+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmhvc3RVcmwgKyB0aGlzLmViaXpBY2NvdW50c1VybCArICcvcHJvZ3JhbVByaXZpbGVnZXMvc2VhcmNoJyArIChhbHRVc2VySUQgPyAnP3VzZXJpZD0nICsgYWx0VXNlcklEIDogJycpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcnJheTxQcm9ncmFtUHJpdmlsZWdlPj4odXJsLCBwcm9ncmFtUHJpdmlsZWdlUmVxdWVzdCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IFByb2dyYW1Qcml2aWxlZ2UgYmFzZWQgb24gY29udGVudHMgb2YgUHJvZ3JhbVByaXZpbGVnZVJlcXVlc3QuXG4gICAqIEBwYXJhbSBwcm9ncmFtUHJpdmlsZWdlUmVxdWVzdFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPFByb2dyYW1Qcml2aWxlZ2U/XG4gICAqL1xuICBwdWJsaWMgY3JlYXRlUHJvZ3JhbVByaXZpbGVnZShwcm9ncmFtUHJpdmlsZWdlUmVxdWVzdDogUHJvZ3JhbVByaXZpbGVnZVJlcXVlc3QsIGFsdFVzZXJJRD86IHN0cmluZyk6IE9ic2VydmFibGU8UHJvZ3JhbVByaXZpbGVnZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxQcm9ncmFtUHJpdmlsZWdlPih0aGlzLmhvc3RVcmwgKyB0aGlzLmViaXpBY2NvdW50c1VybCArICcvcHJvZ3JhbVByaXZpbGVnZXMnKyAoYWx0VXNlcklEID8gJz91c2VyaWQ9JyArIGFsdFVzZXJJRCA6ICcnKSwgXG4gICAgcHJvZ3JhbVByaXZpbGVnZVJlcXVlc3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSB0aGUgUHJvZ3JhbVByaXZpbGVnZSBpZGVudGlmaWVkIGJ5IHByb2dyYW1Qcml2aWxlZ2VJRC5cbiAgICogQHBhcmFtIHByb2dyYW1Qcml2aWxlZ2VJRFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHZvaWQ+XG4gICAqL1xuICBwdWJsaWMgZGVsZXRlUHJvZ3JhbVByaXZpbGVnZShwcm9ncmFtUHJpdmlsZWdlSUQ6IHN0cmluZywgYWx0VXNlcklEPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZSh0aGlzLmhvc3RVcmwgKyB0aGlzLmViaXpBY2NvdW50c1VybCArICcvcHJvZ3JhbVByaXZpbGVnZXMvJyArIHByb2dyYW1Qcml2aWxlZ2VJRCArIChhbHRVc2VySUQgPyAnP3VzZXJpZD0nICsgYWx0VXNlcklEIDogJycpLCBcbiAgICB7IHJlc3BvbnNlVHlwZTogJ3RleHQnIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGVnYXRlIGEgcHJvZ3JhbSBwcml2aWxlZ2UgYmFzZWQgb24gaW5mb3JtYXRpb24gaW4gZGVsZWdhdGlvbi5cbiAgICogQHBhcmFtIGRlbGVnYXRpb25cbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx2b2lkPlxuICAgKi9cbiAgcHVibGljIGRlbGVnYXRlUHJvZ3JhbVByaXZpbGVnZShkZWxlZ2F0aW9uOiBEZWxlZ2F0aW9uLCBhbHRVc2VySUQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmhvc3RVcmwgKyB0aGlzLmViaXpBY2NvdW50c1VybCArICcvcHJvZ3JhbVByaXZpbGVnZXMvZGVsZWdhdGlvbicgKyAoYWx0VXNlcklEID8gJz91c2VyaWQ9JyArIGFsdFVzZXJJRCA6ICcnKSxcbiAgICBkZWxlZ2F0aW9uLCB7IHJlc3BvbnNlVHlwZTogJ3RleHQnIH0pO1xuICB9XG5cbiAvKipcbiAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAqIEhlbHBlciBNRVRIT0RTOlxuICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICovXG5cbiAgIC8qKlxuICAgICogU2V0IHRoZSB1c2VyIGFjY291bnQgdG8gYmUgdXNlZCBmb3IgXCJsaXZlIHJlbG9hZCBtb2RlXCJcbiAgICAqIEBwYXJhbSB1c2VyQWNjb3VudCBcbiAgICAqL1xuICAgIHB1YmxpYyBzZXRMaXZlUmVsb2FkVXNlcih1c2VyQWNjb3VudDogT2VwYVVzZXJBY2NvdW50KTogT2JzZXJ2YWJsZTxPZXBhVXNlckFjY291bnQ+IHtcbiAgICAgIHRoaXMuYWNjb3VudCA9IHVzZXJBY2NvdW50O1xuICAgICAgY29uc29sZS5sb2coJ3NldExpdmVSZWxvYWRVc2VyOiAnICsgdGhpcy5hY2NvdW50Py5sb2dpbk5hbWUgfHwgJzx1bmtub3duPicpO1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PE9lcGFVc2VyQWNjb3VudD4odGhpcy5ob3N0VXJsICsgdGhpcy5lYml6QWNjb3VudHNVcmwgKyAnL2xpdmVSZWxvYWQnLCB1c2VyQWNjb3VudCk7XG4gICAgfVxuXG4gICAvKipcbiAgICAqIFN0b3JlcyB0aGUgZ2l2ZW4gdXNlciBpbiB0aGUgZUJpeiBzZXNzaW9uLlxuICAgICogQHBhcmFtIGFjY291bnRVc2VySUQgXG4gICAgKi9cbiAgIHB1YmxpYyBzdG9yZVVzZXJJblNlc3Npb24oYWNjb3VudFVzZXJJRDogc3RyaW5nKTogT2JzZXJ2YWJsZTxPZXBhVXNlckFjY291bnQ+IHtcbiAgICAgbGV0IGFjY3QgPSB7fSBhcyBPZXBhVXNlckFjY291bnQ7XG4gICAgIGFjY3QuYWNjb3VudElEID0gYWNjb3VudFVzZXJJRDtcbiAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PE9lcGFVc2VyQWNjb3VudD4odGhpcy5ob3N0VXJsICsgdGhpcy5lYml6U2Vzc2lvblVybCArICcvc3RvcmVVc2VyLycgKyBhY2NvdW50VXNlcklELCBudWxsKTtcbiAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlZSBpZiB0aGUgY3VycmVudCB1c2VyIHNob3VsZCBiZSBhbGxvd2VkIHRvIHNlZSBcImRlbW9cIiBjYXBhYmlsaXRpZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgZGVtb0NhcGFiaWxpdGllc0FsbG93ZWQoKTogYm9vbGVhbiB7XG4gICAgICBsZXQgZGVtb0FsbG93ZWQgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLmFjY291bnQgJiYgdGhpcy5hY2NvdW50LnJvbGVMaXN0KSB7XG4gICAgICAgIHRoaXMuYWNjb3VudC5yb2xlTGlzdC5mb3JFYWNoKHJvbGUgPT4ge1xuICAgICAgICAgIGlmIChyb2xlLm5hbWUgPT09ICdBbGxvd0RlbW8nKSB7XG4gICAgICAgICAgICBkZW1vQWxsb3dlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkZW1vQWxsb3dlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhcnRJZGxlVGltZXIodGhyZXNob2xkPzogbnVtYmVyKSB7XG4gICAgICBpZiAodGhpcy50aW1lb3V0SUQpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dElEKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaWRsZVRocmVzaG9sZCA9IHRocmVzaG9sZCB8fCB0aGlzLmlkbGVUaHJlc2hvbGQ7XG4gICAgICBpZiAoIXRoaXMuaWRsZVRpbWVyUnVubmluZykge1xuICAgICAgICBjb25zb2xlLmxvZygnVGhlIGlkbGUgdGltZW91dCBzdGFydGVkIHdpdGggdGhyZXNob2xkOiAnICsgdGhpcy5pZGxlVGhyZXNob2xkKTtcbiAgICAgICAgdGhpcy5pZGxlVGltZXJSdW5uaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jaGVja1RpbWVvdXQoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzZXRJZGxlVGltZSgpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdpZGxlIHRpbWVyIHJlc2V0Jyk7XG4gICAgICB0aGlzLmlkbGVUaW1lID0gMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrVGltZW91dCgpIHtcbiAgICAgIHRoaXMudGltZW91dElEID0gc2V0VGltZW91dCgoKT0+IHtcbiAgICAgICAgdGhpcy5pZGxlVGltZSArPSA2MDtcbiAgICAgICAgY29uc29sZS5sb2coJ2lkbGUgdGltZSA9ICcgKyB0aGlzLmlkbGVUaW1lICsgXCIsIHRocmVzaG9sZCA9IFwiICsgdGhpcy5pZGxlVGhyZXNob2xkKTtcbiAgICAgICAgaWYgKHRoaXMuaWRsZVRpbWUgPj0gdGhpcy5pZGxlVGhyZXNob2xkKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ2ZpcmluZyBuZXh0IGlkbGVTdWJqZWN0Li4uJyk7XG4gICAgICAgICAgdGhpcy5pZGxlVGltZXJSdW5uaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5pZGxlU3ViamVjdC5uZXh0KHRoaXMuaWRsZVRpbWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0aGlzLnRpbWVvdXRJRCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dElEKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5jaGVja1RpbWVvdXQoKTtcbiAgICAgICAgfVxuICAgICAgfSwgNjAwMDApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJZGxlVGltZW91dCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgICAgcmV0dXJuIHRoaXMuaWRsZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIFxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFdlIHByb2JhYmx5IGRvbid0IHdhbnQgdG8gc3VwcG9ydCB0aGlzIGdvaW5nIGZvcndhcmRcbiAgICAgKiBAcGFyYW0gbWVzc2FnZVxuICAgICAqIEByZXR1cm5zIFxuICAgICAqL1xuICAgIHB1YmxpYyBsb2dNZXNzYWdlT25TZXJ2ZXIobWVzc2FnZT86IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICBjb25zdCBtZXNzYWdlUmVzcG9uc2U6IGFueSA9IHtcbiAgICAgICAgcmVzcG9uc2U6IG1lc3NhZ2VcbiAgICAgIH1cbiAgICAgIGNvbnN0IHVybCA9IHRoaXMuaG9zdFVybCArICcvYXBpL3YxL3VzZXJBY2NvdW50cy9sb2dzL21lc3NhZ2UnO1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odXJsLCBtZXNzYWdlUmVzcG9uc2UpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -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=
|
|
@@ -7,6 +7,7 @@ export class OepaHttpInterceptor {
|
|
|
7
7
|
userAccountService;
|
|
8
8
|
defaultTimeout = 5 * 60 * 1000;
|
|
9
9
|
userID = '';
|
|
10
|
+
sessionID = '';
|
|
10
11
|
constructor(userAccountService) {
|
|
11
12
|
this.userAccountService = userAccountService;
|
|
12
13
|
this.userAccountService.userAccount$.subscribe(account => {
|
|
@@ -14,6 +15,9 @@ export class OepaHttpInterceptor {
|
|
|
14
15
|
this.userID = account.loginName || '';
|
|
15
16
|
}
|
|
16
17
|
});
|
|
18
|
+
this.userAccountService.sessionID$.subscribe(sessionID => {
|
|
19
|
+
this.sessionID = sessionID;
|
|
20
|
+
});
|
|
17
21
|
}
|
|
18
22
|
/**
|
|
19
23
|
* Add a timestamp as a query parameter to all http requests
|
|
@@ -29,6 +33,9 @@ export class OepaHttpInterceptor {
|
|
|
29
33
|
if (this.userID) {
|
|
30
34
|
params['userid'] = this.userID;
|
|
31
35
|
}
|
|
36
|
+
if (this.sessionID) {
|
|
37
|
+
params['sessionid'] = this.sessionID;
|
|
38
|
+
}
|
|
32
39
|
let changedReq = undefined;
|
|
33
40
|
if (authToken) {
|
|
34
41
|
changedReq = req.clone({
|
|
@@ -82,4 +89,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
82
89
|
providedIn: 'root'
|
|
83
90
|
}]
|
|
84
91
|
}], ctorParameters: () => [{ type: i1.OepaUserAccountService }] });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2VwYS1odHRwLWludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2VwYS11aS1saWIvc3JjL2xpYi91dGlsL29lcGEtaHR0cC1pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBT3JELE1BQU0sT0FBTyxtQkFBbUI7SUFLUjtJQUpYLGNBQWMsR0FBRyxDQUFDLEdBQUMsRUFBRSxHQUFDLElBQUksQ0FBQztJQUM1QixNQUFNLEdBQVcsRUFBRSxDQUFDO0lBQ3BCLFNBQVMsR0FBVyxFQUFFLENBQUM7SUFFL0IsWUFBb0Isa0JBQTBDO1FBQTFDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBd0I7UUFDMUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDckQsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDVixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO1lBQzFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3JELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUM5QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDeEMsTUFBTSxTQUFTLEdBQUcs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TUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QyxHQUFHLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzNELENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7d0dBL0VRLG1CQUFtQjs0R0FBbkIsbUJBQW1CLGNBRmhCLE1BQU07OzRGQUVULG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0aW1lb3V0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdCwgSHR0cEhhbmRsZXIsIEh0dHBFdmVudCwgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPZXBhVXNlckFjY291bnRTZXJ2aWNlIH0gZnJvbSAnLi4vb2VwYS11c2VyLWFjY291bnQvb2VwYS11c2VyLWFjY291bnQuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbiAgfSlcbmV4cG9ydCBjbGFzcyBPZXBhSHR0cEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgICByZWFkb25seSBkZWZhdWx0VGltZW91dCA9IDUqNjAqMTAwMDtcbiAgICBwcml2YXRlIHVzZXJJRDogc3RyaW5nID0gJyc7XG4gICAgcHJpdmF0ZSBzZXNzaW9uSUQ6IHN0cmluZyA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB1c2VyQWNjb3VudFNlcnZpY2U6IE9lcGFVc2VyQWNjb3VudFNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy51c2VyQWNjb3VudFNlcnZpY2UudXNlckFjY291bnQkLnN1YnNjcmliZShhY2NvdW50ID0+IHtcbiAgICAgICAgICAgIGlmIChhY2NvdW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VySUQgPSBhY2NvdW50LmxvZ2luTmFtZSB8fCAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudXNlckFjY291bnRTZXJ2aWNlLnNlc3Npb25JRCQuc3Vic2NyaWJlKHNlc3Npb25JRCA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlc3Npb25JRCA9IHNlc3Npb25JRDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIGEgdGltZXN0YW1wIGFzIGEgcXVlcnkgcGFyYW1ldGVyIHRvIGFsbCBodHRwIHJlcXVlc3RzXG4gICAgICogQHBhcmFtIHJlcVxuICAgICAqIEBwYXJhbSBuZXh0XG4gICAgICovXG4gICAgaW50ZXJjZXB0KHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XG4gICAgICAgIHRoaXMudXNlckFjY291bnRTZXJ2aWNlLnJlc2V0SWRsZVRpbWUoKTtcbiAgICAgICAgY29uc3QgYXV0aFRva2VuID0gdGhpcy51c2VyQWNjb3VudFNlcnZpY2UuZ2V0QXV0aFRva2VuKCk7XG4gICAgICAgIGNvbnN0IHBhcmFtczogYW55ID0ge1xuICAgICAgICAgICAgb2VwYXRzOiBuZXcgRGF0ZSgpLmdldFRpbWUoKS50b1N0cmluZygpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudXNlcklEKSB7XG4gICAgICAgICAgICBwYXJhbXNbJ3VzZXJpZCddID0gdGhpcy51c2VySUQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc2Vzc2lvbklEKSB7XG4gICAgICAgICAgICBwYXJhbXNbJ3Nlc3Npb25pZCddID0gdGhpcy5zZXNzaW9uSUQ7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGNoYW5nZWRSZXE6IGFueSA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGF1dGhUb2tlbikge1xuICAgICAgICAgICAgY2hhbmdlZFJlcSA9IHJlcS5jbG9uZSh7XG4gICAgICAgICAgICAgICAgc2V0SGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YXV0aFRva2VufWBcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldFBhcmFtczogcGFyYW1zXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNoYW5nZWRSZXEgPSByZXEuY2xvbmUoe1xuICAgICAgICAgICAgICAgIHNldFBhcmFtczogcGFyYW1zXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0aW1lb3V0VmFsdWUgPSByZXEuaGVhZGVycy5nZXQoJ3RpbWVvdXQnKSB8fCB0aGlzLmRlZmF1bHRUaW1lb3V0O1xuICAgICAgICBjb25zdCB0aW1lb3V0VmFsdWVOdW1lcmljID0gTnVtYmVyKHRpbWVvdXRWYWx1ZSk7XG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShjaGFuZ2VkUmVxKS5waXBlKFxuICAgICAgICAgICAgdGltZW91dCh0aW1lb3V0VmFsdWVOdW1lcmljKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBtc2cgPSBlcnJvci5oZWFkZXJzID8gZXJyb3IuaGVhZGVycy5nZXQoJ09FUEFfRVJST1InKSA6ICcnO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdtc2cgZnJvbSBoZWFkZXIgPSAnICsgbXNnKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnRVJST1I6IFsnICsgcmVxLnVybCArICddOiAnICsgSlNPTi5zdHJpbmdpZnkoZXJyb3IpKTtcbiAgICAgICAgICAgICAgICBtc2cgPSBtc2cgfHwgZXJyb3IuZXJyb3IubWVzc2FnZSB8fCBlcnJvci5lcnJvci5lcnJvck1lc3NhZ2UgfHwgJ1NlcnZlciBlcnJvci4nO1xuICAgICAgICAgICAgICAgIGlmIChtc2cpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1zZy5pbmRleE9mKCdVc2VyIGFjY291bnQgaXMgcmVxdWlyZWQnKSA+IC0xXG4gICAgICAgICAgICAgICAgICAgICAgICB8fCBtc2cudG9VcHBlckNhc2UoKS5pbmRleE9mKCdVU0VSSUQgSVMgTUlTU0lORycpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KG1zZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJBY2NvdW50U2VydmljZS5yZWRpcmVjdFRvTG9nb3V0KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbXNnID0gdGhpcy5zaG9ydGVuRXJyb3JNZXNzYWdlKG1zZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG1zZyk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3J0ZW4gZXJyb3IgbWVzc2FnZSBpbiB0aGUgZXZlbnQgb2YgYSBKU09OIHBhcnNlIGVycm9yXG4gICAgICovXG4gICAgcHJpdmF0ZSBzaG9ydGVuRXJyb3JNZXNzYWdlKG1zZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgSlNPTlBhcnNlTXNnID0gJ0pTT04gcGFyc2UgZXJyb3I6JztcbiAgICAgICAgY29uc3QgSlNPTlBhcnNlSWR4ID0gbXNnLmluZGV4T2YoSlNPTlBhcnNlTXNnKTtcbiAgICAgICAgaWYgKEpTT05QYXJzZUlkeCA+IC0xKSB7XG4gICAgICAgICAgICBjb25zdCBzZW1pY29sb25JZHggPSBtc2cuaW5kZXhPZignOycpO1xuICAgICAgICAgICAgbXNnID0gbXNnLnN1YnN0cmluZyhKU09OUGFyc2VNc2cubGVuZ3RoLCBzZW1pY29sb25JZHgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtc2c7XG4gICAgfVxufVxuIl19
|