New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@mybiogen/auth-openid

Package Overview
Dependencies
Maintainers
12
Versions
58
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mybiogen/auth-openid - npm Package Compare versions

Comparing version 1.4.0 to 1.4.1

2

lib/index.d.ts

@@ -1,2 +0,2 @@

export { default as JanrainJS } from './JanrainJS';
export { default as JanrainJS, JanrainUserInfo } from './JanrainJS';
export { default as OktaJS } from './OktaJS';

@@ -3,0 +3,0 @@ export { default } from './OAuthClient';

@@ -20,2 +20,2 @@ "use strict";

__exportStar(require("./types"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEseUNBQW1EO0FBQTFDLHNHQUFBLE9BQU8sT0FBYTtBQUM3QixtQ0FBNkM7QUFBcEMsZ0dBQUEsT0FBTyxPQUFVO0FBQzFCLDZDQUF3QztBQUEvQixzR0FBQSxPQUFPLE9BQUE7QUFDaEIsMENBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBKYW5yYWluSlMgfSBmcm9tICcuL0phbnJhaW5KUyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE9rdGFKUyB9IGZyb20gJy4vT2t0YUpTJztcbmV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tICcuL09BdXRoQ2xpZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnOyJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEseUNBQW9FO0FBQTNELHNHQUFBLE9BQU8sT0FBYTtBQUM3QixtQ0FBNkM7QUFBcEMsZ0dBQUEsT0FBTyxPQUFVO0FBQzFCLDZDQUF3QztBQUEvQixzR0FBQSxPQUFPLE9BQUE7QUFDaEIsMENBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBKYW5yYWluSlMsIEphbnJhaW5Vc2VySW5mbyB9IGZyb20gJy4vSmFucmFpbkpTJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgT2t0YUpTIH0gZnJvbSAnLi9Pa3RhSlMnO1xuZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gJy4vT0F1dGhDbGllbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7Il19

@@ -6,6 +6,3 @@ import OpenIDClient from './OAuthClient';

};
export default class JanrainJS<Claims extends object> extends OpenIDClient<JanrainUserInfo, Claims, {
user: JanrainUserInfo;
claims?: Claims;
}> {
export default class JanrainJS<Claims extends object> extends OpenIDClient<Claims, JanrainUserInfo> {
constructor(clientId: string, configUrl: string, redirectURI: string, logoutRedirectURI: string, scopes?: string[], claims?: Array<keyof Claims>);

@@ -12,0 +9,0 @@ protected loadUserInfo(userJSON: any, claims?: Claims): {

@@ -25,2 +25,2 @@ "use strict";

exports.default = JanrainJS;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSmFucmFpbkpTLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0phbnJhaW5KUy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdFQUF5QztBQU96QyxNQUFxQixTQUFpQyxTQUFRLHFCQUFpRjtJQUM3SSxZQUFZLFFBQWdCLEVBQUUsU0FBaUIsRUFBRSxXQUFtQixFQUFFLGlCQUF5QixFQUFFLFNBQW1CLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsRUFBRSxTQUE4QixFQUFFO1FBQ2xMLEtBQUssQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFHUyxZQUFZLENBQUMsUUFBYSxFQUFFLE1BQWU7UUFDbkQsT0FBTztZQUNMLElBQUksRUFBRTtnQkFDSixFQUFFLEVBQUUsUUFBUSxDQUFDLEdBQUc7Z0JBQ2hCLGFBQWEsRUFBRSxRQUFRLENBQUMsY0FBYztnQkFDdEMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLO2dCQUNyQixJQUFJLEVBQUUsUUFBUSxDQUFDLFVBQVU7Z0JBQ3pCLFFBQVEsRUFBRSxRQUFRLENBQUMsV0FBVzthQUMvQjtZQUNELE1BQU07U0FDUCxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBbEJELDRCQWtCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBPcGVuSURDbGllbnQgZnJvbSAnLi9PQXV0aENsaWVudCc7XG5pbXBvcnQgeyBPQXV0aFVzZXJJbmZvIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIEphbnJhaW5Vc2VySW5mbyA9IE9BdXRoVXNlckluZm8gJiB7XG4gIGVtYWlsVmVyaWZpZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEphbnJhaW5KUzxDbGFpbXMgZXh0ZW5kcyBvYmplY3Q+IGV4dGVuZHMgT3BlbklEQ2xpZW50PEphbnJhaW5Vc2VySW5mbywgQ2xhaW1zLCB7IHVzZXI6IEphbnJhaW5Vc2VySW5mbywgY2xhaW1zPzogQ2xhaW1zIH0+IHtcbiAgY29uc3RydWN0b3IoY2xpZW50SWQ6IHN0cmluZywgY29uZmlnVXJsOiBzdHJpbmcsIHJlZGlyZWN0VVJJOiBzdHJpbmcsIGxvZ291dFJlZGlyZWN0VVJJOiBzdHJpbmcsIHNjb3Blczogc3RyaW5nW10gPSBbJ29wZW5pZCcsICdlbWFpbCcsICdwcm9maWxlJ10sIGNsYWltczogQXJyYXk8a2V5b2YgQ2xhaW1zPiA9IFtdKSB7XG4gICAgc3VwZXIoY2xpZW50SWQsIGNvbmZpZ1VybCwgcmVkaXJlY3RVUkksICdqYW5yYWluX3Rva2VuJywgbG9nb3V0UmVkaXJlY3RVUkksIHNjb3BlcywgY2xhaW1zKTtcbiAgfVxuXG4gIC8vIGh0dHBzOi8vaWRlbnRpdHlkb2NzLmFrYW1haS5jb20vaG9tZS9qYW5yYWluLWVudGl0eS1hcGlcbiAgcHJvdGVjdGVkIGxvYWRVc2VySW5mbyh1c2VySlNPTjogYW55LCBjbGFpbXM/OiBDbGFpbXMpOiB7IHVzZXI6IEphbnJhaW5Vc2VySW5mbywgY2xhaW1zPzogQ2xhaW1zIH0ge1xuICAgIHJldHVybiB7XG4gICAgICB1c2VyOiB7XG4gICAgICAgIGlkOiB1c2VySlNPTi5zdWIsXG4gICAgICAgIGVtYWlsVmVyaWZpZWQ6IHVzZXJKU09OLmVtYWlsX3ZlcmlmaWVkLFxuICAgICAgICBlbWFpbDogdXNlckpTT04uZW1haWwsXG4gICAgICAgIG5hbWU6IHVzZXJKU09OLmdpdmVuX25hbWUsXG4gICAgICAgIGxhc3ROYW1lOiB1c2VySlNPTi5mYW1pbHlfbmFtZSxcbiAgICAgIH0sXG4gICAgICBjbGFpbXMsXG4gICAgfTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSmFucmFpbkpTLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0phbnJhaW5KUy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdFQUF5QztBQU96QyxNQUFxQixTQUFpQyxTQUFRLHFCQUFxQztJQUNqRyxZQUFZLFFBQWdCLEVBQUUsU0FBaUIsRUFBRSxXQUFtQixFQUFFLGlCQUF5QixFQUFFLFNBQW1CLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsRUFBRSxTQUE4QixFQUFFO1FBQ2xMLEtBQUssQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFHUyxZQUFZLENBQUMsUUFBYSxFQUFFLE1BQWU7UUFDbkQsT0FBTztZQUNMLElBQUksRUFBRTtnQkFDSixFQUFFLEVBQUUsUUFBUSxDQUFDLEdBQUc7Z0JBQ2hCLGFBQWEsRUFBRSxRQUFRLENBQUMsY0FBYztnQkFDdEMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLO2dCQUNyQixJQUFJLEVBQUUsUUFBUSxDQUFDLFVBQVU7Z0JBQ3pCLFFBQVEsRUFBRSxRQUFRLENBQUMsV0FBVzthQUMvQjtZQUNELE1BQU07U0FDUCxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBbEJELDRCQWtCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBPcGVuSURDbGllbnQgZnJvbSAnLi9PQXV0aENsaWVudCc7XG5pbXBvcnQgeyBPQXV0aFVzZXJJbmZvIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIEphbnJhaW5Vc2VySW5mbyA9IE9BdXRoVXNlckluZm8gJiB7XG4gIGVtYWlsVmVyaWZpZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEphbnJhaW5KUzxDbGFpbXMgZXh0ZW5kcyBvYmplY3Q+IGV4dGVuZHMgT3BlbklEQ2xpZW50PENsYWltcywgSmFucmFpblVzZXJJbmZvPiB7XG4gIGNvbnN0cnVjdG9yKGNsaWVudElkOiBzdHJpbmcsIGNvbmZpZ1VybDogc3RyaW5nLCByZWRpcmVjdFVSSTogc3RyaW5nLCBsb2dvdXRSZWRpcmVjdFVSSTogc3RyaW5nLCBzY29wZXM6IHN0cmluZ1tdID0gWydvcGVuaWQnLCAnZW1haWwnLCAncHJvZmlsZSddLCBjbGFpbXM6IEFycmF5PGtleW9mIENsYWltcz4gPSBbXSkge1xuICAgIHN1cGVyKGNsaWVudElkLCBjb25maWdVcmwsIHJlZGlyZWN0VVJJLCAnamFucmFpbl90b2tlbicsIGxvZ291dFJlZGlyZWN0VVJJLCBzY29wZXMsIGNsYWltcyk7XG4gIH1cblxuICAvLyBodHRwczovL2lkZW50aXR5ZG9jcy5ha2FtYWkuY29tL2hvbWUvamFucmFpbi1lbnRpdHktYXBpXG4gIHByb3RlY3RlZCBsb2FkVXNlckluZm8odXNlckpTT046IGFueSwgY2xhaW1zPzogQ2xhaW1zKTogeyB1c2VyOiBKYW5yYWluVXNlckluZm8sIGNsYWltcz86IENsYWltcyB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgdXNlcjoge1xuICAgICAgICBpZDogdXNlckpTT04uc3ViLFxuICAgICAgICBlbWFpbFZlcmlmaWVkOiB1c2VySlNPTi5lbWFpbF92ZXJpZmllZCxcbiAgICAgICAgZW1haWw6IHVzZXJKU09OLmVtYWlsLFxuICAgICAgICBuYW1lOiB1c2VySlNPTi5naXZlbl9uYW1lLFxuICAgICAgICBsYXN0TmFtZTogdXNlckpTT04uZmFtaWx5X25hbWUsXG4gICAgICB9LFxuICAgICAgY2xhaW1zLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
import { OAuthUserInfo, Token, WatchAuthCallback, Init } from './types';
export default abstract class OpenIDClient<UserInfo extends OAuthUserInfo, Claims extends {}, UserData extends {
export default abstract class OpenIDClient<Claims extends {} = {}, UserInfo extends OAuthUserInfo = OAuthUserInfo, UserData extends {
user: UserInfo;
claims?: Claims;
} = {
user: UserInfo;
claims?: Claims;
}> {

@@ -20,3 +23,3 @@ clientId: string;

storageKey: string;
listeners: Array<WatchAuthCallback<Claims>>;
listeners: Array<WatchAuthCallback<UserInfo, Claims>>;
refreshTokenInterval?: number;

@@ -32,3 +35,3 @@ comesFromLogin: boolean;

private keepRefreshingToken;
watchAuth: (cb: WatchAuthCallback<Claims>) => Promise<void>;
watchAuth: (cb: WatchAuthCallback<UserInfo, Claims>) => Promise<void>;
private fetchConfig;

@@ -46,4 +49,4 @@ private setConfig;

} | undefined>;
logout: () => Promise<void>;
logout: (endSessionURI?: string | undefined) => Promise<void>;
}
//# sourceMappingURL=OAuthClient.d.ts.map

@@ -210,14 +210,19 @@ "use strict";

};
this.logout = async () => {
this.logout = async (endSessionURI) => {
var _a;
utils_1.Storage.remove(`${this.storageKey}.token`);
utils_1.Storage.remove(`${this.storageKey}.user`);
const params = {
'id_token_hint': (_a = this.token) === null || _a === void 0 ? void 0 : _a.idToken,
'post_logout_redirect_uri': this.logoutRedirectURI,
};
if (this.endSessionEndpoint) {
const url = `${this.endSessionEndpoint}?${query_string_1.default.stringify(params)}`;
window.location.replace(url);
if (endSessionURI) {
window.location.replace(endSessionURI);
}
else {
const params = {
'id_token_hint': (_a = this.token) === null || _a === void 0 ? void 0 : _a.idToken,
'post_logout_redirect_uri': this.logoutRedirectURI,
};
if (this.endSessionEndpoint) {
const url = `${this.endSessionEndpoint}?${query_string_1.default.stringify(params)}`;
window.location.replace(url);
}
}
};

@@ -308,2 +313,2 @@ if (!clientId) {

exports.default = OpenIDClient;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT0F1dGhDbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvT0F1dGhDbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRUFBdUM7QUFDdkMsK0JBQW9DO0FBQ3BDLG1DQUEwRztBQVcxRyxNQUE4QixZQUFZO0lBdUN4QyxZQUFZLFFBQWdCLEVBQUUsU0FBaUIsRUFBRSxXQUFtQixFQUFFLFVBQWtCLEVBQUUsaUJBQXlCLEVBQUUsU0FBbUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxTQUE4QixFQUFFO1FBVnBMLGNBQVMsR0FBcUMsRUFBRSxDQUFDO1FBOEh6Qyx3QkFBbUIsR0FBRyxHQUFTLEVBQUU7O1lBQ3ZDLElBQUksUUFBQyxJQUFJLENBQUMsS0FBSywwQ0FBRSxZQUFZLENBQUEsRUFBRTtnQkFDN0IsT0FBTyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO2dCQUN0QyxPQUFPO2FBQ1I7WUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtnQkFDekQsTUFBTSx3QkFBd0IsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxFQUFFO29CQUN4RCxJQUFJO3dCQUNGLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO3FCQUMzQjtvQkFBQyxPQUFPLEtBQUssRUFBRTt3QkFDZCxhQUFhLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7d0JBQ3pDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztxQkFDZjtnQkFDSCxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyx3QkFBd0IsQ0FBQyxDQUFDO2FBQzlEO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsY0FBUyxHQUFHLEtB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QUcsSUFBSSxDQUFDLFVBQVUsUUFBUSxDQUFDLENBQUM7WUFDM0MsZUFBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLE9BQU8sQ0FBQyxDQUFDO1NBQzNDO1FBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFBO0lBQ25CLENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDNUIsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNuRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FnUUY7QUF6WkQsK0JBeVpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHF1ZXJ5U3RyaW5nIGZyb20gJ3F1ZXJ5LXN0cmluZyc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IGVuY29kZUJvZHksIGdlbmVyYXRlQ29kZVZlcmlmaWVyLCBnZW5lcmF0ZVBrY2VDaGFsbGVuZ2UsIFN0b3JhZ2UsIGNoZWNrQ2FsbGJhY2sgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7XG4gIE9BdXRoVXNlckluZm8sXG4gIFRva2VuLFxuICBXYXRjaEF1dGhDYWxsYmFjayxcbiAgSW5pdCxcbiAgQ29uZmlnRW5kcG9pbnQsXG4gIEF1dGhlbnRpY2F0ZUFyZ3MsXG4gIENsYWltUGFyYW0sXG59IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBhYnN0cmFjdCBjbGFzcyBPcGVuSURDbGllbnQ8VXNlckluZm8gZXh0ZW5kcyBPQXV0aFVzZXJJbmZvLCBDbGFpbXMgZXh0ZW5kcyB7fSwgVXNlckRhdGEgZXh0ZW5kcyB7IHVzZXI6IFVzZXJJbmZvLCBjbGFpbXM/OiBDbGFpbXMgfT4ge1xuICBjbGllbnRJZDogc3RyaW5nO1xuXG4gIGNvbmZpZ1VybDogc3RyaW5nO1xuXG4gIHNjb3Blczogc3RyaW5nW107XG5cbiAgY2xhaW1zOiBBcnJheTxrZXlvZiBDbGFpbXM+O1xuXG4gIHJlZGlyZWN0VVJJOiBzdHJpbmc7XG5cbiAgbG9nb3V0UmVkaXJlY3RVUkk6IHN0cmluZztcblxuICBhdXRob3JpemF0aW9uRW5kcG9pbnQ/OiBzdHJpbmc7XG5cbiAgdG9rZW5FbmRwb2ludD86IHN0cmluZztcblxuICB1c2VySW5mb0VuZHBvaW50Pzogc3RyaW5nO1xuXG4gIHJldm9jYXRpb25FbmRwb2ludD86IHN0cmluZztcblxuICBlbmRTZXNzaW9uRW5kcG9pbnQ/OiBzdHJpbmc7XG5cbiAgdG9rZW4/OiBUb2tlbjtcblxuICB1c2VyPzogVXNlckRhdGE7XG5cbiAgc3RvcmFnZUtleTogc3RyaW5nO1xuXG4gIGxpc3RlbmVyczogQXJyYXk8V2F0Y2hBdXRoQ2FsbGJhY2s8Q2xhaW1zPj4gPSBbXTtcblxuICByZWZyZXNoVG9rZW5JbnRlcnZhbD86IG51bWJlcjtcblxuICBjb21lc0Zyb21Mb2dpbjogYm9vbGVhbjtcblxuICByZWRpcmVjdFRvPzogc3RyaW5nO1xuXG4gIGhhc0JlZW5Jbml0aWFsaXplZDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihjbGllbnRJZDogc3RyaW5nLCBjb25maWdVcmw6IHN0cmluZywgcmVkaXJlY3RVUkk6IHN0cmluZywgc3RvcmFnZUtleTogc3RyaW5nLCBsb2dvdXRSZWRpcmVjdFVSSTogc3RyaW5nLCBzY29wZXM6IHN0cmluZ1tdID0gWydvcGVuaWQnXSwgY2xhaW1zOiBBcnJheTxrZXlvZiBDbGFpbXM+ID0gW10pIHtcbiAgICBpZiAoIWNsaWVudElkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NsaWVudElkIGlzIG5vdCBwcm92aWRlZC4nKVxuICAgIH1cbiAgICB0aGlzLmNsaWVudElkID0gY2xpZW50SWQ7XG5cbiAgICBpZiAoIWNvbmZpZ1VybCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjb25maWdVcmwgaXMgbm90IHByb3ZpZGVkLicpXG4gICAgfVxuICAgIHRoaXMuY29uZmlnVXJsID0gY29uZmlnVXJsO1xuXG4gICAgaWYgKCFyZWRpcmVjdFVSSSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdyZWRpcmVjdFVyaSBpcyBub3QgcHJvdmlkZWQuJylcbiAgICB9XG4gICAgdGhpcy5yZWRpcmVjdFVSSSA9IHJlZGlyZWN0VVJJO1xuXG4gICAgaWYgKCFsb2dvdXRSZWRpcmVjdFVSSSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdsb2dvdXRSZWRpcmVjdFVSSSBpcyBub3QgcHJvdmlkZWQuJylcbiAgICB9XG4gICAgdGhpcy5sb2dvdXRSZWRpcmVjdFVSSSA9IGxvZ291dFJlZGlyZWN0VVJJO1xuXG4gICAgaWYgKCFzdG9yYWdlS2V5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3N0b3JhZ2VLZXkgaXMgbm90IHByb3ZpZGVkLicpXG4gICAgfVxuICAgIHRoaXMuc3RvcmFnZUtleSA9IHN0b3JhZ2VLZXk7XG5cbiAgICB0aGlzLmNvbWVzRnJvbUxvZ2luID0gZmFsc2U7XG4gICAgdGhpcy5yZWRpcmVjdFRvID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuaGFzQmVlbkluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgdGhpcy5zY29wZXMgPSBzY29wZXM7XG4gICAgdGhpcy5jbGFpbXMgPSBjbGFpbXM7XG4gICAgdGhpcy51c2VyID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyBTdG9yYWdlLmdldChgJHtzdG9yYWdlS2V5fS51c2VyYCkgOiBudWxsO1xuICAgIHRoaXMudG9rZW4gPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IFN0b3JhZ2UuZ2V0KGAke3N0b3JhZ2VLZXl9LnRva2VuYCkgOiBudWxsO1xuICB9XG5cbiAgYXN5bmMgaW5pdCgpOiBQcm9taXNlPEluaXQgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAodGhpcy5oYXNCZWVuSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IFtjYWxsYmFja1N0YXRlLCBzdG9yYWdlT2F1dGhdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgY2hlY2tDYWxsYmFjayh3aW5kb3cubG9jYXRpb24uaHJlZiksXG4gICAgICBTdG9yYWdlLmdldChgJHt0aGlzLnN0b3JhZ2VLZXl9LnRva2VuYCksXG4gICAgXSk7XG5cbiAgICAvLyBXYWl0IHVudGlsIGNvbmZpZ3VyYXRpb24gaGFzIGZpbmlzaGVkLlxuICAgIGF3YWl0IHRoaXMuc2V0Q29uZmlnKCk7XG5cbiAgICAvLyBSZXR1cm4gZWFybHlcbiAgICBpZiAoIWNhbGxiYWNrU3RhdGUgJiYgIXN0b3JhZ2VPYXV0aCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICB0aGlzLmhhc0JlZW5Jbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICBpZiAoY2FsbGJhY2tTdGF0ZSkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0VG9rZW5PbkluaXQoY2FsbGJhY2tTdGF0ZSlcbiAgICB9XG5cbiAgICBpZiAoc3RvcmFnZU9hdXRoICYmICFzdG9yYWdlT2F1dGgubG9nb3V0KSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5yZWZyZXNoVG9rZW5PbkluaXQoc3RvcmFnZU9hdXRoKVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFRva2VuT25Jbml0KGNhbGxiYWNrU3RhdGUpOiBQcm9taXNlPFRva2VuIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3Qge1xuICAgICAgY29kZSwgXG4gICAgICBwa2NlQ29kZVZlcmlmaWVyLCBcbiAgICAgIGN1cnJlbnRTdGF0ZSwgXG4gICAgICByZWRpcmVjdFRvLFxuICAgICAgbmV3VXJsXG4gICAgfSA9IGNhbGxiYWNrU3RhdGU7XG5cbiAgICB0aGlzLnRva2VuID0gYXdhaXQgdGhpcy5nZXRUb2tlbihjb2RlLCBwa2NlQ29kZVZlcmlmaWVyLCBjdXJyZW50U3RhdGUpO1xuICAgIHRoaXMua2VlcFJlZnJlc2hpbmdUb2tlbigpO1xuXG4gICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKHdpbmRvdy5oaXN0b3J5LnN0YXRlLCBkb2N1bWVudC50aXRsZSwgbmV3VXJsKTtcblxuICAgIHRoaXMuY29tZXNGcm9tTG9naW4gPSB0cnVlO1xuICAgIHRoaXMucmVkaXJlY3RUbyA9IHJlZGlyZWN0VG87XG5cbiAgICByZXR1cm4gdGhpcy50b2tlblxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZWZyZXNoVG9rZW5PbkluaXQoc3RvcmFnZU9hdXRoOiBhbnkpOiBQcm9taXNlPFRva2VuIHwgdW5kZWZpbmVkPiB7XG4gICAgdGhpcy50b2tlbiA9IHN0b3JhZ2VPYXV0aDtcbiAgICB0aGlzLmNvbWVzRnJvbUxvZ2luID0gZmFsc2U7XG5cbiAgICBpZiAoIXRoaXMudG9rZW4/LnJlZnJlc2hUb2tlbikge1xuICAgICAgLy8gVE9ETyBAYWxsIGhhbmRsZSBjYXNlIHdpdGhvdXQgcmVmcmVzaCB0b2tlblxuICAgICAgLy8gVGhpcyBzaG91bGQgdGVzdCBpZiB0aGUgY3VycmVudCB0b2tlbiBpcyBzdGlsbCB2YWxpZFxuICAgICAgLy8gb3Igd2Ugc2hvdWxkIGNoYW5nZSB0aGUgQVBJIGNhbGxzIHRvIGdldCB0aGUgcmVmcmVzaCB0b2tlbi5cbiAgICAgIGNvbnNvbGUud2FybihcIm1pc3NpbmcgcmVmcmVzaCB0b2tlbi5cIilcbiAgICAgIHJldHVybiB0aGlzLnRva2VuXG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMucmVmcmVzaFRva2VuKCk7XG4gICAgICB0aGlzLmtlZXBSZWZyZXNoaW5nVG9rZW4oKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMudG9rZW4gPSB1bmRlZmluZWQ7XG4gICAgICBTdG9yYWdlLnJlbW92ZShgJHt0aGlzLnN0b3JhZ2VLZXl9LnRva2VuYCk7XG4gICAgICBTdG9yYWdlLnJlbW92ZShgJHt0aGlzLnN0b3JhZ2VLZXl9LnVzZXJgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy50b2tlblxuICB9XG5cbiAgcHJpdmF0ZSBjYWxsTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuZXJzLmZvckVhY2goKGNiKSA9PiB7XG4gICAgICBjYih0aGlzLnRva2VuICYmIHRoaXMudXNlciwgdGhpcy5jb21lc0Zyb21Mb2dpbiwgdGhpcy5yZWRpcmVjdFRvKVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBrZWVwUmVmcmVzaGluZ1Rva2VuID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmICghdGhpcy50b2tlbj8ucmVmcmVzaFRva2VuKSB7XG4gICAgICBjb25zb2xlLndhcm4oXCJtaXNzaW5nIHJlZnJlc2ggdG9rZW4uXCIpXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudXNlciAmJiB0aGlzLnRva2VuICYmICF0aGlzLnJlZnJlc2hUb2tlbkludGVydmFsKSB7XG4gICAgICBjb25zdCBTQUZFVFlfR0FQX1JFRlJFU0hfVE9LRU4gPSA2MDAwMDsgLy8gMSBtaW5cbiAgICAgIHRoaXMucmVmcmVzaFRva2VuSW50ZXJ2YWwgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoYXN5bmMgKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHRoaXMucmVmcmVzaFRva2VuKCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnJlZnJlc2hUb2tlbkludGVydmFsKTtcbiAgICAgICAgICB0aGlzLmxvZ291dCgpO1xuICAgICAgICB9XG4gICAgICB9LCAodGhpcy50b2tlbi5leHBpcmVzSW4gKiAxMDAwKSAtIFNBRkVUWV9HQVBfUkVGUkVTSF9UT0tFTik7XG4gICAgfVxuICB9O1xuXG4gIHdhdGNoQXV0aCA9IGFzeW5jIChjYjogV2F0Y2hBdXRoQ2FsbGJhY2s8Q2xhaW1zPik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIHRoaXMubGlzdGVuZXJzLnB1c2goY2IpO1xuXG4gICAgYXdhaXQgdGhpcy5pbml0KCk7XG5cbiAgICBpZiAodGhpcy50b2tlbikge1xuICAgICAgYXdhaXQgdGhpcy5nZXRVc2VySW5mbygpO1xuICAgIH1cblxuICAgIHRoaXMuY2FsbExpc3RlbmVycygpO1xuICB9O1xuXG4gIHByaXZhdGUgZmV0Y2hDb25maWcgPSBhc3luYyAoKTogUHJvbWlzZTxDb25maWdFbmRwb2ludCB8IHVuZGVmaW5lZD4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHRoaXMuY29uZmlnVXJsKTtcbiAgICAgIC8vIFRPRE86IEVycm9yLCBmZXRjaCBvbmx5IHRocm93cyBvbiBjb25uZWN0aW9uIGVycm9yLCBlbHNlIHdlIGdldCAhZmV0Y2gub2tcbiAgICAgIHJldHVybiByZXNwb25zZS5qc29uKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgc2V0Q29uZmlnID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHRoaXMuZmV0Y2hDb25maWcoKTtcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICB0aGlzLmF1dGhvcml6YXRpb25FbmRwb2ludCA9IGNvbmZpZy5hdXRob3JpemF0aW9uX2VuZHBvaW50O1xuICAgICAgdGhpcy50b2tlbkVuZHBvaW50ID0gY29uZmlnLnRva2VuX2VuZHBvaW50O1xuICAgICAgdGhpcy51c2VySW5mb0VuZHBvaW50ID0gY29uZmlnLnVzZXJpbmZvX2VuZHBvaW50O1xuICAgICAgdGhpcy5yZXZvY2F0aW9uRW5kcG9pbnQgPSBjb25maWcucmV2b2NhdGlvbl9lbmRwb2ludDtcbiAgICAgIHRoaXMuZW5kU2Vzc2lvbkVuZHBvaW50ID0gY29uZmlnLmVuZF9zZXNzaW9uX2VuZHBvaW50O1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIGdldFRva2VuID0gYXN5bmMgKGNvZGU6IHN0cmluZywgb3JpZ2luYWxDb2RlVmVyaWZpZXI6IHN0cmluZywgY3VycmVudFN0YXRlOiBzdHJpbmcpOiBQcm9taXNlPFRva2VuIHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgaWYgKCF0aGlzLnRva2VuRW5kcG9pbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGluaXRpYWxpemVkLiBUb2tlbiBlbmRwb2ludCBub3QgcHJlc2VudCcpO1xuICAgIH1cblxuICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICBncmFudF90eXBlOiAnYXV0aG9yaXphdGlvbl9jb2RlJyxcbiAgICAgIGNvZGUsXG4gICAgICBjbGllbnRfaWQ6IGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLmNsaWVudElkKSxcbiAgICAgIHJlZGlyZWN0X3VyaTogdGhpcy5yZWRpcmVjdFVSSSxcbiAgICAgIGNvZGVfdmVyaWZpZXI6IG9yaWdpbmFsQ29kZVZlcmlmaWVyLFxuICAgIH07XG5cbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IG5ldyBIZWFkZXJzKHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAgICAgfSksXG4gICAgICBib2R5OiBlbmNvZGVCb2R5KGJvZHkpLFxuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh0aGlzLnRva2VuRW5kcG9pbnQsIGNvbmZpZyk7XG5cbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgLy8gVE9ETzogRXJyb3IsIGRlYWwgd2l0aCBmYWlsdXJlIGNhc2VzXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGF1dGhUb2tlbiA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcblxuICAgICAgdGhpcy50b2tlbiA9IHtcbiAgICAgICAgYWNjZXNzVG9rZW46IGF1dGhUb2tlbi5hY2Nlc3NfdG9rZW4sXG4gICAgICAgIHJlZnJlc2hUb2tlbjogYXV0aFRva2VuLnJlZnJlc2hfdG9rZW4sXG4gICAgICAgIGV4cGlyZXNJbjogYXV0aFRva2VuLmV4cGlyZXNfaW4sXG4gICAgICAgIHRva2VuVHlwZTogYXV0aFRva2VuLnRva2VuX3R5cGUsXG4gICAgICAgIHNjb3BlOiBhdXRoVG9rZW4uc2NvcGUsXG4gICAgICAgIGlkVG9rZW46IGF1dGhUb2tlbi5pZF90b2tlbixcbiAgICAgIH07XG5cbiAgICAgIFN0b3JhZ2Uuc2V0KGAke3RoaXMuc3RvcmFnZUtleX0udG9rZW5gLCB0aGlzLnRva2VuKTtcbiAgICAgIC8vIGNsZWFuIHVwIGxvY2FsIHN0b3JhZ2UgZnJvbSBQS0NFIGRldGFpbHNcbiAgICAgIFN0b3JhZ2UucmVtb3ZlKGN1cnJlbnRTdGF0ZSk7XG4gICAgICAvLyBjbGVhbiB1cCBxdWVyeSBwYXJhbXMgZnJvbSBPQXV0aCByZWRpcmVjdGlvblxuICAgICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKHt9LCBkb2N1bWVudC50aXRsZSwgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKTtcblxuICAgICAgcmV0dXJuIHRoaXMudG9rZW47XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXJyb3IgZ2V0dGluZyB0b2tlbicpO1xuICAgIH1cbiAgfTtcblxuICByZWZyZXNoVG9rZW4gPSBhc3luYyAoKTogUHJvbWlzZTxJbml0IHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgaWYgKCF0aGlzLnRva2VuIHx8ICF0aGlzLnRva2VuRW5kcG9pbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHJlZnJlc2ggdG9rZW4gd2l0aG91dCB0b2tlbiBvciBlbmRwb2ludCcpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy50b2tlbi5yZWZyZXNoVG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHJlZnJlc2ggdG9rZW4gd2l0aG91dCByZWZyZXNoIHRva2VuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgYm9keSA9IHtcbiAgICAgIGdyYW50X3R5cGU6ICdyZWZyZXNoX3Rva2VuJyxcbiAgICAgIHJlZnJlc2hfdG9rZW46IHRoaXMudG9rZW4ucmVmcmVzaFRva2VuLFxuICAgICAgcmVkaXJlY3RfdXJpOiB0aGlzLnJlZGlyZWN0VVJJLFxuICAgICAgY2xpZW50X2lkOiBlbmNvZGVVUklDb21wb25lbnQodGhpcy5jbGllbnRJZCksXG4gICAgfTtcblxuICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczogbmV3IEhlYWRlcnMoe1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsXG4gICAgICB9KSxcbiAgICAgIGJvZHk6IGVuY29kZUJvZHkoYm9keSksXG4gICAgfTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godGhpcy50b2tlbkVuZHBvaW50LCBjb25maWcpO1xuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUb2tlbiBub3QgcmVmcmVzaGVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdG9rZW4gPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG5cbiAgICB0aGlzLnRva2VuID0ge1xuICAgICAgYWNjZXNzVG9rZW46IHRva2VuLmFjY2Vzc190b2tlbixcbiAgICAgIHJlZnJlc2hUb2tlbjogdG9rZW4ucmVmcmVzaF90b2tlbixcbiAgICAgIGV4cGlyZXNJbjogdG9rZW4uZXhwaXJlc19pbixcbiAgICAgIHRva2VuVHlwZTogdG9rZW4udG9rZW5fdHlwZSxcbiAgICAgIHNjb3BlOiB0b2tlbi5zY29wZSxcbiAgICAgIGlkVG9rZW46IHRva2VuLmlkX3Rva2VuLFxuICAgIH07XG5cbiAgICBTdG9yYWdlLnNldChgJHt0aGlzLnN0b3JhZ2VLZXl9LnRva2VuYCwgdGhpcy50b2tlbik7XG5cbiAgICAvLyBUT0RPIEBhbGwgY2FsbCBsaXN0ZW5lcnMgaWYgc29tZXRoaW5nIGNoYW5nZWRcblxuICAgIC8vICg/KSBXZSBkb24ndCByZXR1cm4gdGhlIHRva2VuIGRpcmVjdGx5XG4gICAgcmV0dXJuIHsgYWNjZXNzVG9rZW46IHRoaXMudG9rZW4uYWNjZXNzVG9rZW4sIGV4cGlyZXNJbjogdGhpcy50b2tlbi5leHBpcmVzSW4gfVxuICB9O1xuXG4gIHByaXZhdGUgYXV0aGVudGljYXRlID0gKGFyZ3M6IEF1dGhlbnRpY2F0ZUFyZ3MpOiB2b2lkID0+IHtcbiAgICBjb25zdCB7IGZvcmNlZFJlZGlyZWN0VG8sIGlzU2lnbnVwIH0gPSBhcmdzO1xuICAgIGNvbnN0IG9yaWdpbmFsQ29kZVZlcmlmaWVyID0gZ2VuZXJhdGVDb2RlVmVyaWZpZXIoOTYpO1xuICAgIGNvbnN0IGNvZGVWZXJpZmllciA9IGdlbmVyYXRlUGtjZUNoYWxsZW5nZShvcmlnaW5hbENvZGVWZXJpZmllcik7XG4gICAgY29uc3QgeyBwYXRobmFtZSwgc2VhcmNoIH0gPSB3aW5kb3cubG9jYXRpb247XG4gICAgY29uc3QgeyBvcmlnaW4gfSA9IHF1ZXJ5U3RyaW5nLnBhcnNlKHNlYXJjaCk7XG4gICAgY29uc3QgcmVkaXJlY3RUbyA9IGZvcmNlZFJlZGlyZWN0VG8gPyBmb3JjZWRSZWRpcmVjdFRvIDogb3JpZ2luID8gZGVjb2RlVVJJQ29tcG9uZW50KG9yaWdpbiArIFwiXCIpIDogcGF0aG5hbWUgKyBzZWFyY2g7XG4gICAgY29uc3Qgc3RhdGUgPSB1dWlkdjQoKTtcbiAgICBsZXQgY2xhaW1QYXJhbTtcbiAgXG4gICAgaWYgKHRoaXMuY2xhaW1zLmxlbmd0aCkge1xuICAgICAgY29uc3QgY2xhaW1NYXAgPSB0aGlzLmNsYWltcy5yZWR1Y2U8Q2xhaW1QYXJhbT4oKGN1cnIsIGNsYWltKSA9PiAoeyAuLi5jdXJyLCBbY2xhaW1dOiBudWxsIH0pLCB7fSk7XG4gICAgICBjbGFpbVBhcmFtID0gdGhpcy5jbGFpbXMubGVuZ3RoXG4gICAgICAgID8ge1xuICAgICAgICAgICAgdXNlcmluZm86IGNsYWltTWFwLFxuICAgICAgICAgICAgaWRfdG9rZW46IGNsYWltTWFwLFxuICAgICAgICAgIH1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgY2xpZW50X2lkOiBlbmNvZGVVUklDb21wb25lbnQodGhpcy5jbGllbnRJZCksXG4gICAgICByZWRpcmVjdF91cmk6IHRoaXMucmVkaXJlY3RVUkksXG4gICAgICBzY29wZTogdGhpcy5zY29wZXMuam9pbignICcpLFxuICAgICAgcmVzcG9uc2VfdHlwZTogJ2NvZGUnLFxuICAgICAgcmVzcG9uc2VfbW9kZTogJ3F1ZXJ5JyxcbiAgICAgIHN0YXRlOiBlbmNvZGVVUklDb21wb25lbnQoc3RhdGUpLFxuICAgICAgY29kZV9jaGFsbGVuZ2U6IGVuY29kZVVSSShjb2RlVmVyaWZpZXIpLFxuICAgICAgY29kZV9jaGFsbGVuZ2VfbWV0aG9kOiAnUzI1NicsXG4gICAgICAuLi4oaXNTaWdudXAgPyB7XG4gICAgICAgIHByb21wdDogJ2NyZWF0ZSdcbiAgICAgIH0gOiB7fSksXG4gICAgICBjbGFpbXM6IGNsYWltUGFyYW0gJiYgSlNPTi5zdHJpbmdpZnkoY2xhaW1QYXJhbSksXG4gICAgfTtcblxuICAgIFN0b3JhZ2Uuc2V0KHN0YXRlLCB7XG4gICAgICBjb2RlVmVyaWZpZXIsXG4gICAgICBvcmlnaW5hbENvZGVWZXJpZmllcixcbiAgICAgIHJlZGlyZWN0VG8sXG4gICAgfSk7XG5cbiAgICBjb25zdCBsb2dpblF1ZXJ5ID0gcXVlcnlTdHJpbmcuc3RyaW5naWZ5KHBhcmFtcyk7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5hdXRob3JpemF0aW9uRW5kcG9pbnR9PyR7bG9naW5RdWVyeX1gO1xuICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKHVybCk7XG4gIH1cblxuICBsb2dpbiA9IChmb3JjZWRSZWRpcmVjdFRvPzogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgdGhpcy5hdXRoZW50aWNhdGUoeyBmb3JjZWRSZWRpcmVjdFRvIH0pO1xuICB9O1xuXG4gIHNpZ251cCA9IChmb3JjZWRSZWRpcmVjdFRvPzogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgdGhpcy5hdXRoZW50aWNhdGUoeyBmb3JjZWRSZWRpcmVjdFRvLCBpc1NpZ251cDogdHJ1ZSB9KTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgbG9hZFVzZXJJbmZvKHVzZXJKU09OOiBhbnksIGNsYWltcz86IENsYWltcyk6IFVzZXJEYXRhO1xuXG4gIGdldFVzZXJJbmZvID0gYXN5bmMgKCk6IFByb21pc2U8eyB1c2VyOiBVc2VySW5mbywgY2xhaW1zPzogQ2xhaW1zIH0gfCB1bmRlZmluZWQ+ID0+IHtcbiAgICBpZiAoIXRoaXMudXNlckluZm9FbmRwb2ludCB8fCAhdGhpcy50b2tlbikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHRoaXMudXNlckluZm9FbmRwb2ludCwge1xuICAgICAgICBoZWFkZXJzOiBuZXcgSGVhZGVycyh7XG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMudG9rZW4uYWNjZXNzVG9rZW59YCxcbiAgICAgICAgfSksXG4gICAgICB9KTtcbiAgXG4gICAgICBjb25zdCB1c2VySW5mbyA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgIGNvbnN0IGNsYWltcyA9IHRoaXMuY2xhaW1zLmxlbmd0aFxuICAgICAgICA/IHRoaXMuY2xhaW1zLnJlZHVjZTxDbGFpbXM+KChjdXJyLCBjbGFpbSkgPT4gKHtcbiAgICAgICAgICAuLi5jdXJyLFxuICAgICAgICAgIFtjbGFpbV06IHVzZXJJbmZvW2NsYWltXSxcbiAgICAgICAgfSksIHt9IGFzIENsYWltcylcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnVzZXIgPSB0aGlzLmxvYWRVc2VySW5mbyh1c2VySW5mbywgY2xhaW1zKTtcblxuICAgICAgU3RvcmFnZS5zZXQoYCR7dGhpcy5zdG9yYWdlS2V5fS51c2VyYCwgdGhpcy51c2VyKTtcblxuICAgICAgcmV0dXJuIHRoaXMudXNlcjtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKCdFcnJvciBnZXR0aW5nIHVzZXIgaW5mbywgbG9nZ2luZyBvdXQuLi4nKTtcbiAgICAgIGNvbnNvbGUud2FybihlcnJvcik7XG4gICAgICBhd2FpdCB0aGlzLmxvZ291dCgpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG5cbiAgbG9nb3V0ID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIFN0b3JhZ2UucmVtb3ZlKGAke3RoaXMuc3RvcmFnZUtleX0udG9rZW5gKTtcbiAgICBTdG9yYWdlLnJlbW92ZShgJHt0aGlzLnN0b3JhZ2VLZXl9LnVzZXJgKTtcblxuICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICdpZF90b2tlbl9oaW50JzogdGhpcy50b2tlbj8uaWRUb2tlbixcbiAgICAgICdwb3N0X2xvZ291dF9yZWRpcmVjdF91cmknOiB0aGlzLmxvZ291dFJlZGlyZWN0VVJJLFxuICAgIH07XG4gICAgaWYgKHRoaXMuZW5kU2Vzc2lvbkVuZHBvaW50KSB7XG4gICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmVuZFNlc3Npb25FbmRwb2ludH0/JHtxdWVyeVN0cmluZy5zdHJpbmdpZnkocGFyYW1zKX1gO1xuICAgICAgd2luZG93LmxvY2F0aW9uLnJlcGxhY2UodXJsKTsgIFxuICAgIH1cbiAgfTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT0F1dGhDbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvT0F1dGhDbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRUFBdUM7QUFDdkMsK0JBQW9DO0FBQ3BDLG1DQUEwRztBQVcxRyxNQUE4QixZQUFZO0lBdUN4QyxZQUFZLFFBQWdCLEVBQUUsU0FBaUIsRUFBRSxXQUFtQixFQUFFLFVBQWtCLEVBQUUsaUJBQXlCLEVBQUUsU0FBbUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxTQUE4QixFQUFFO1FBVnBMLGNBQVMsR0FBK0MsRUFBRSxDQUFDO1FBOEhuRCx3QkFBbUIsR0FBRyxHQUFTLEVBQUU7O1lBQ3ZDLElBQUksUUFBQyxJQUFJLENBQUMsS0FBSywwQ0FBRSxZQUFZLENBQUEsRUFBRTtnQkFDN0IsT0FBTyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO2dCQUN0QyxPQUFPO2FBQ1I7WUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtnQkFDekQsTUFBTSx3QkFBd0IsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxFQUFFO29CQUN4RCxJQUFJO3dCQUNGLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO3FCQUMzQjtvQkFBQyxPQUFPLEtBQUssRUFBRTt3QkFDZCxhQUFhLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7d0JBQ3pDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztxQkFDZjtnQkFDSCxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyx3QkFBd0IsQ0FBQyxDQUFDO2FBQzlEO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsY0FBUyxHQUFHLEtBQUssRUFBRSxFQUF1QyxFQUFpQixFQUFFO1lBQzNFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRXhCLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBRWxCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDZCxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUMxQjtZQUVELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDLENBQUM7UUFFTSxnQkFBVyxHQUFHLEtBQUssSUFBeUMsRUFBRTtZQUNwRSxJQUFJO2dCQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFFN0MsT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDeEI7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxPQUFPLFNBQVMsQ0FBQzthQUNsQjtRQUNILENBQUMsQ0FBQztRQUVNLGNBQVMsR0FBRyxLQUFLLElBQW1CLEVBQUU7WUFDNUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDeEMsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDO2dCQUMzQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDO2dCQUNqRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDO2dCQUNyRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDO2FBQ3ZEO1FBQ0gsQ0FBQyxDQUFDO1FBRU0sYUFBUSxHQUFHLEtBQUssRUFBRSxJQUFZLEVBQUUsb0JBQTRCLEVBQUUsWUFBb0IsRUFBOEIsRUFBRTtZQUN4SCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO2FBQ2hFO1lBRUQsTUFBTSxJQUFJLEdBQUc7Z0JBQ1gsVUFBVSxFQUFFLG9CQUFvQjtnQkFDaEMsSUFBSTtnQkFDSixTQUFTLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztnQkFDNUMsWUFBWSxFQUFFLElBQUksQ0FBQyxXQUFXO2dCQUM5QixhQUFhLEVBQUUsb0JBQW9CO2FBQ3BDLENBQUM7WUFFRixNQUFNLE1BQU0sR0FBRztnQkFDYixNQUFNLEVBQUUsTUFBTTtnQkFDZCxPQUFPLEVBQUUsSUFBSSxPQUFPLENBQUM7b0JBQ25CLGNBQWMsRUFBRSxtQ0FBbUM7aUJBQ3BELENBQUM7Z0JBQ0YsSUFBSSxFQUFFLGtCQUFVLENBQUMsSUFBSSxDQUFDO2FBQ3ZCLENBQUM7WUFFRixJQUFJO2dCQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBRXpELElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFO29CQUVoQixPQUFPLFNBQVMsQ0FBQztpQkFDbEI7Z0JBRUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBRXhDLElBQUksQ0FBQyxLQUFLLEdBQUc7b0JBQ1gsV0FBVyxFQUFFLFNBQVMsQ0FBQyxZQUFZO29CQUNuQyxZQUFZLEVBQUUsU0FBUyxDQUFDLGFBQWE7b0JBQ3JDLFNBQVMsRUFBRSxTQUFTLENBQUMsVUFBVTtvQkFDL0IsU0FBUyxFQUFFLFNBQVMsQ0FBQyxVQUFVO29CQUMvQixLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUs7b0JBQ3RCLE9BQU8sRUFBRSxTQUFTLENBQUMsUUFBUTtpQkFDNUIsQ0FBQztnQkFFRixlQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFcEQsZUFBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFFN0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFFMUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQ25CO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO2FBQ3hDO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsaUJBQVksR0FBRyxLQUFLLElBQStCLEVBQUU7WUFDbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7YUFDbkU7WUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUU7Z0JBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQzthQUMvRDtZQUVELE1BQU0sSUFBSSxHQUFHO2dCQUNYLFVBQVUsRUFBRSxlQUFlO2dCQUMzQixhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZO2dCQUN0QyxZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQzlCLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQzdDLENBQUM7WUFFRixNQUFNLE1BQU0sR0FBRztnQkFDYixNQUFNLEVBQUUsTUFBTTtnQkFDZCxPQUFPLEVBQUUsSUFBSSxPQUFPLENBQUM7b0JBQ25CLGNBQWMsRUFBRSxtQ0FBbUM7aUJBQ3BELENBQUM7Z0JBQ0YsSUFBSSxFQUFFLGtCQUFVLENBQUMsSUFBSSxDQUFDO2FBQ3ZCLENBQUM7WUFFRixNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBRXpELElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFO2dCQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7YUFDeEM7WUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUVwQyxJQUFJLENBQUMsS0FBSyxHQUFHO2dCQUNYLFdBQVcsRUFBRSxLQUFLLENBQUMsWUFBWTtnQkFDL0IsWUFBWSxFQUFFLEtBQUssQ0FBQyxhQUFhO2dCQUNqQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFVBQVU7Z0JBQzNCLFNBQVMsRUFBRSxLQUFLLENBQUMsVUFBVTtnQkFDM0IsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO2dCQUNsQixPQUFPLEVBQUUsS0FBSyxDQUFDLFFBQVE7YUFDeEIsQ0FBQztZQUVGLGVBQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBS3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUE7UUFDakYsQ0FBQyxDQUFDO1FBRU0saUJBQVksR0FBRyxDQUFDLElBQXNCLEVBQVEsRUFBRTtZQUN0RCxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDO1lBQzVDLE1BQU0sb0JBQW9CLEdBQUcsNEJBQW9CLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdEQsTUFBTSxZQUFZLEdBQUcsNkJBQXFCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNqRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDN0MsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLHNCQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdDLE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7WUFDdEgsTUFBTSxLQUFLLEdBQUcsU0FBTSxFQUFFLENBQUM7WUFDdkIsSUFBSSxVQUFVLENBQUM7WUFFZixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO2dCQUN0QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBYSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ25HLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07b0JBQzdCLENBQUMsQ0FBQzt3QkFDRSxRQUFRLEVBQUUsUUFBUTt3QkFDbEIsUUFBUSxFQUFFLFFBQVE7cUJBQ25CO29CQUNILENBQUMsQ0FBQyxTQUFTLENBQUM7YUFDZjtZQUVELE1BQU0sTUFBTSxHQUFHO2dCQUNiLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUM1QyxZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQzlCLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQzVCLGFBQWEsRUFBRSxNQUFNO2dCQUNyQixhQUFhLEVBQUUsT0FBTztnQkFDdEIsS0FBSyxFQUFFLGtCQUFrQixDQUFDLEtBQUssQ0FBQztnQkFDaEMsY0FBYyxFQUFFLFNBQVMsQ0FBQyxZQUFZLENBQUM7Z0JBQ3ZDLHFCQUFxQixFQUFFLE1BQU07Z0JBQzdCLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO29CQUNiLE1BQU0sRUFBRSxRQUFRO2lCQUNqQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ1AsTUFBTSxFQUFFLFVBQVUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQzthQUNqRCxDQUFDO1lBRUYsZUFBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUU7Z0JBQ2pCLFlBQVk7Z0JBQ1osb0JBQW9CO2dCQUNwQixVQUFVO2FBQ1gsQ0FBQyxDQUFDO1lBRUgsTUFBTSxVQUFVLEdBQUcsc0JBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakQsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMscUJBQXFCLElBQUksVUFBVSxFQUFFLENBQUM7WUFDMUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFBO1FBRUQsVUFBSyxHQUFHLENBQUMsZ0JBQXlCLEVBQVEsRUFBRTtZQUMxQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQztRQUVGLFdBQU0sR0FBRyxDQUFDLGdCQUF5QixFQUFRLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQztRQUlGLGdCQUFXLEdBQUcsS0FBSyxJQUE4RCxFQUFFO1lBQ2pGLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUN6QyxPQUFPLFNBQVMsQ0FBQTthQUNqQjtZQUVELElBQUk7Z0JBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO29CQUNsRCxPQUFPLEVBQUUsSUFBSSxPQUFPLENBQUM7d0JBQ25CLGFBQWEsRUFBRSxVQUFVLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFO3FCQUNsRCxDQUFDO2lCQUNILENBQUMsQ0FBQztnQkFFSCxNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO29CQUMvQixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO3dCQUM3QyxHQUFHLElBQUk7d0JBQ1AsQ0FBQyxLQUFLLENBQUMsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDO3FCQUN6QixDQUFDLEVBQUUsRUFBWSxDQUFDO29CQUNqQixDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBRWhELGVBQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUVsRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDbEI7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLHlDQUF5QyxDQUFDLENBQUM7Z0JBQ3hELE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BCLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNwQixPQUFPLFNBQVMsQ0FBQzthQUNsQjtRQUNILENBQUMsQ0FBQztRQUVGLFdBQU0sR0FBRyxLQUFLLEVBQUUsYUFBc0IsRUFBaUIsRUFBRTs7WUFDdkQsZUFBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLFFBQVEsQ0FBQyxDQUFDO1lBQzNDLGVBQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxPQUFPLENBQUMsQ0FBQztZQUUxQyxJQUFJLGFBQWEsRUFBRTtnQkFFakIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDeEM7aUJBQU07Z0JBRUwsTUFBTSxNQUFNLEdBQUc7b0JBQ2IsZUFBZSxRQUFFLElBQUksQ0FBQyxLQUFLLDBDQUFFLE9BQU87b0JBQ3BDLDBCQUEwQixFQUFFLElBQUksQ0FBQyxpQkFBaUI7aUJBQ25ELENBQUM7Z0JBQ0YsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7b0JBQzNCLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixJQUFJLHNCQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7b0JBQzFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUM5QjthQUNGO1FBRUgsQ0FBQyxDQUFDO1FBdlhBLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUE7U0FDN0M7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUV6QixJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO1NBQzlDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFFM0IsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUE7U0FDaEQ7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUUvQixJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFBO1NBQ3REO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBRTNDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUE7U0FDL0M7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUU3QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUM1QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxlQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3JGLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxlQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3pGLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNSLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzNCLE9BQU07U0FDUDtRQUVELE1BQU0sQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQ3RELHFCQUFhLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDbkMsZUFBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLFFBQVEsQ0FBQztTQUN4QyxDQUFDLENBQUM7UUFHSCxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUd2QixJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25DLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUUvQixJQUFJLGFBQWEsRUFBRTtZQUNqQixPQUFPLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQTtTQUNoRDtRQUVELElBQUksWUFBWSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRTtZQUN4QyxPQUFPLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFBO1NBQ25EO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVPLEtBQUssQ0FBQyxjQUFjLENBQUMsYUFBYTtRQUN4QyxNQUFNLEVBQ0osSUFBSSxFQUNKLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDUCxHQUFHLGFBQWEsQ0FBQztRQUVsQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFM0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUxRSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUU3QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUE7SUFDbkIsQ0FBQztJQUVPLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxZQUFpQjs7UUFDaEQsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUM7UUFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFFNUIsSUFBSSxRQUFDLElBQUksQ0FBQyxLQUFLLDBDQUFFLFlBQVksQ0FBQSxFQUFFO1lBSTdCLE9BQU8sQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQTtZQUN0QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUE7U0FDbEI7UUFFRCxJQUFJO1lBQ0YsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDNUI7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1lBQ3ZCLGVBQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxRQUFRLENBQUMsQ0FBQztZQUMzQyxlQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsT0FBTyxDQUFDLENBQUM7U0FDM0M7UUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUE7SUFDbkIsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUM1QixFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ25FLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQXVRRjtBQWhhRCwrQkFnYUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcXVlcnlTdHJpbmcgZnJvbSAncXVlcnktc3RyaW5nJztcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgZW5jb2RlQm9keSwgZ2VuZXJhdGVDb2RlVmVyaWZpZXIsIGdlbmVyYXRlUGtjZUNoYWxsZW5nZSwgU3RvcmFnZSwgY2hlY2tDYWxsYmFjayB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHtcbiAgT0F1dGhVc2VySW5mbyxcbiAgVG9rZW4sXG4gIFdhdGNoQXV0aENhbGxiYWNrLFxuICBJbml0LFxuICBDb25maWdFbmRwb2ludCxcbiAgQXV0aGVudGljYXRlQXJncyxcbiAgQ2xhaW1QYXJhbSxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGFic3RyYWN0IGNsYXNzIE9wZW5JRENsaWVudDxDbGFpbXMgZXh0ZW5kcyB7fSA9IHt9LCBVc2VySW5mbyBleHRlbmRzIE9BdXRoVXNlckluZm8gPSBPQXV0aFVzZXJJbmZvLCBVc2VyRGF0YSBleHRlbmRzIHsgdXNlcjogVXNlckluZm8sIGNsYWltcz86IENsYWltcyB9ID0geyB1c2VyOiBVc2VySW5mbywgY2xhaW1zPzogQ2xhaW1zIH0+IHtcbiAgY2xpZW50SWQ6IHN0cmluZztcblxuICBjb25maWdVcmw6IHN0cmluZztcblxuICBzY29wZXM6IHN0cmluZ1tdO1xuXG4gIGNsYWltczogQXJyYXk8a2V5b2YgQ2xhaW1zPjtcblxuICByZWRpcmVjdFVSSTogc3RyaW5nO1xuXG4gIGxvZ291dFJlZGlyZWN0VVJJOiBzdHJpbmc7XG5cbiAgYXV0aG9yaXphdGlvbkVuZHBvaW50Pzogc3RyaW5nO1xuXG4gIHRva2VuRW5kcG9pbnQ/OiBzdHJpbmc7XG5cbiAgdXNlckluZm9FbmRwb2ludD86IHN0cmluZztcblxuICByZXZvY2F0aW9uRW5kcG9pbnQ/OiBzdHJpbmc7XG5cbiAgZW5kU2Vzc2lvbkVuZHBvaW50Pzogc3RyaW5nO1xuXG4gIHRva2VuPzogVG9rZW47XG5cbiAgdXNlcj86IFVzZXJEYXRhO1xuXG4gIHN0b3JhZ2VLZXk6IHN0cmluZztcblxuICBsaXN0ZW5lcnM6IEFycmF5PFdhdGNoQXV0aENhbGxiYWNrPFVzZXJJbmZvLCBDbGFpbXM+PiA9IFtdO1xuXG4gIHJlZnJlc2hUb2tlbkludGVydmFsPzogbnVtYmVyO1xuXG4gIGNvbWVzRnJvbUxvZ2luOiBib29sZWFuO1xuXG4gIHJlZGlyZWN0VG8/OiBzdHJpbmc7XG5cbiAgaGFzQmVlbkluaXRpYWxpemVkOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKGNsaWVudElkOiBzdHJpbmcsIGNvbmZpZ1VybDogc3RyaW5nLCByZWRpcmVjdFVSSTogc3RyaW5nLCBzdG9yYWdlS2V5OiBzdHJpbmcsIGxvZ291dFJlZGlyZWN0VVJJOiBzdHJpbmcsIHNjb3Blczogc3RyaW5nW10gPSBbJ29wZW5pZCddLCBjbGFpbXM6IEFycmF5PGtleW9mIENsYWltcz4gPSBbXSkge1xuICAgIGlmICghY2xpZW50SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY2xpZW50SWQgaXMgbm90IHByb3ZpZGVkLicpXG4gICAgfVxuICAgIHRoaXMuY2xpZW50SWQgPSBjbGllbnRJZDtcblxuICAgIGlmICghY29uZmlnVXJsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NvbmZpZ1VybCBpcyBub3QgcHJvdmlkZWQuJylcbiAgICB9XG4gICAgdGhpcy5jb25maWdVcmwgPSBjb25maWdVcmw7XG5cbiAgICBpZiAoIXJlZGlyZWN0VVJJKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlZGlyZWN0VXJpIGlzIG5vdCBwcm92aWRlZC4nKVxuICAgIH1cbiAgICB0aGlzLnJlZGlyZWN0VVJJID0gcmVkaXJlY3RVUkk7XG5cbiAgICBpZiAoIWxvZ291dFJlZGlyZWN0VVJJKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2xvZ291dFJlZGlyZWN0VVJJIGlzIG5vdCBwcm92aWRlZC4nKVxuICAgIH1cbiAgICB0aGlzLmxvZ291dFJlZGlyZWN0VVJJID0gbG9nb3V0UmVkaXJlY3RVUkk7XG5cbiAgICBpZiAoIXN0b3JhZ2VLZXkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignc3RvcmFnZUtleSBpcyBub3QgcHJvdmlkZWQuJylcbiAgICB9XG4gICAgdGhpcy5zdG9yYWdlS2V5ID0gc3RvcmFnZUtleTtcblxuICAgIHRoaXMuY29tZXNGcm9tTG9naW4gPSBmYWxzZTtcbiAgICB0aGlzLnJlZGlyZWN0VG8gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5oYXNCZWVuSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICB0aGlzLnNjb3BlcyA9IHNjb3BlcztcbiAgICB0aGlzLmNsYWltcyA9IGNsYWltcztcbiAgICB0aGlzLnVzZXIgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IFN0b3JhZ2UuZ2V0KGAke3N0b3JhZ2VLZXl9LnVzZXJgKSA6IG51bGw7XG4gICAgdGhpcy50b2tlbiA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gU3RvcmFnZS5nZXQoYCR7c3RvcmFnZUtleX0udG9rZW5gKSA6IG51bGw7XG4gIH1cblxuICBhc3luYyBpbml0KCk6IFByb21pc2U8SW5pdCB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICh0aGlzLmhhc0JlZW5Jbml0aWFsaXplZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgW2NhbGxiYWNrU3RhdGUsIHN0b3JhZ2VPYXV0aF0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICBjaGVja0NhbGxiYWNrKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxcbiAgICAgIFN0b3JhZ2UuZ2V0KGAke3RoaXMuc3RvcmFnZUtleX0udG9rZW5gKSxcbiAgICBdKTtcblxuICAgIC8vIFdhaXQgdW50aWwgY29uZmlndXJhdGlvbiBoYXMgZmluaXNoZWQuXG4gICAgYXdhaXQgdGhpcy5zZXRDb25maWcoKTtcblxuICAgIC8vIFJldHVybiBlYXJseVxuICAgIGlmICghY2FsbGJhY2tTdGF0ZSAmJiAhc3RvcmFnZU9hdXRoKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHRoaXMuaGFzQmVlbkluaXRpYWxpemVkID0gdHJ1ZTtcblxuICAgIGlmIChjYWxsYmFja1N0YXRlKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXRUb2tlbk9uSW5pdChjYWxsYmFja1N0YXRlKVxuICAgIH1cblxuICAgIGlmIChzdG9yYWdlT2F1dGggJiYgIXN0b3JhZ2VPYXV0aC5sb2dvdXQpIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnJlZnJlc2hUb2tlbk9uSW5pdChzdG9yYWdlT2F1dGgpXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0VG9rZW5PbkluaXQoY2FsbGJhY2tTdGF0ZSk6IFByb21pc2U8VG9rZW4gfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCB7XG4gICAgICBjb2RlLCBcbiAgICAgIHBrY2VDb2RlVmVyaWZpZXIsIFxuICAgICAgY3VycmVudFN0YXRlLCBcbiAgICAgIHJlZGlyZWN0VG8sXG4gICAgICBuZXdVcmxcbiAgICB9ID0gY2FsbGJhY2tTdGF0ZTtcblxuICAgIHRoaXMudG9rZW4gPSBhd2FpdCB0aGlzLmdldFRva2VuKGNvZGUsIHBrY2VDb2RlVmVyaWZpZXIsIGN1cnJlbnRTdGF0ZSk7XG4gICAgdGhpcy5rZWVwUmVmcmVzaGluZ1Rva2VuKCk7XG5cbiAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUod2luZG93Lmhpc3Rvcnkuc3RhdGUsIGRvY3VtZW50LnRpdGxlLCBuZXdVcmwpO1xuXG4gICAgdGhpcy5jb21lc0Zyb21Mb2dpbiA9IHRydWU7XG4gICAgdGhpcy5yZWRpcmVjdFRvID0gcmVkaXJlY3RUbztcblxuICAgIHJldHVybiB0aGlzLnRva2VuXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlZnJlc2hUb2tlbk9uSW5pdChzdG9yYWdlT2F1dGg6IGFueSk6IFByb21pc2U8VG9rZW4gfCB1bmRlZmluZWQ+IHtcbiAgICB0aGlzLnRva2VuID0gc3RvcmFnZU9hdXRoO1xuICAgIHRoaXMuY29tZXNGcm9tTG9naW4gPSBmYWxzZTtcblxuICAgIGlmICghdGhpcy50b2tlbj8ucmVmcmVzaFRva2VuKSB7XG4gICAgICAvLyBUT0RPIEBhbGwgaGFuZGxlIGNhc2Ugd2l0aG91dCByZWZyZXNoIHRva2VuXG4gICAgICAvLyBUaGlzIHNob3VsZCB0ZXN0IGlmIHRoZSBjdXJyZW50IHRva2VuIGlzIHN0aWxsIHZhbGlkXG4gICAgICAvLyBvciB3ZSBzaG91bGQgY2hhbmdlIHRoZSBBUEkgY2FsbHMgdG8gZ2V0IHRoZSByZWZyZXNoIHRva2VuLlxuICAgICAgY29uc29sZS53YXJuKFwibWlzc2luZyByZWZyZXNoIHRva2VuLlwiKVxuICAgICAgcmV0dXJuIHRoaXMudG9rZW5cbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5yZWZyZXNoVG9rZW4oKTtcbiAgICAgIHRoaXMua2VlcFJlZnJlc2hpbmdUb2tlbigpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy50b2tlbiA9IHVuZGVmaW5lZDtcbiAgICAgIFN0b3JhZ2UucmVtb3ZlKGAke3RoaXMuc3RvcmFnZUtleX0udG9rZW5gKTtcbiAgICAgIFN0b3JhZ2UucmVtb3ZlKGAke3RoaXMuc3RvcmFnZUtleX0udXNlcmApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRva2VuXG4gIH1cblxuICBwcml2YXRlIGNhbGxMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5lcnMuZm9yRWFjaCgoY2IpID0+IHtcbiAgICAgIGNiKHRoaXMudG9rZW4gJiYgdGhpcy51c2VyLCB0aGlzLmNvbWVzRnJvbUxvZ2luLCB0aGlzLnJlZGlyZWN0VG8pXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGtlZXBSZWZyZXNoaW5nVG9rZW4gPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKCF0aGlzLnRva2VuPy5yZWZyZXNoVG9rZW4pIHtcbiAgICAgIGNvbnNvbGUud2FybihcIm1pc3NpbmcgcmVmcmVzaCB0b2tlbi5cIilcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy51c2VyICYmIHRoaXMudG9rZW4gJiYgIXRoaXMucmVmcmVzaFRva2VuSW50ZXJ2YWwpIHtcbiAgICAgIGNvbnN0IFNBRkVUWV9HQVBfUkVGUkVTSF9UT0tFTiA9IDYwMDAwOyAvLyAxIG1pblxuICAgICAgdGhpcy5yZWZyZXNoVG9rZW5JbnRlcnZhbCA9IHdpbmRvdy5zZXRJbnRlcnZhbChhc3luYyAoKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5yZWZyZXNoVG9rZW4oKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMucmVmcmVzaFRva2VuSW50ZXJ2YWwpO1xuICAgICAgICAgIHRoaXMubG9nb3V0KCk7XG4gICAgICAgIH1cbiAgICAgIH0sICh0aGlzLnRva2VuLmV4cGlyZXNJbiAqIDEwMDApIC0gU0FGRVRZX0dBUF9SRUZSRVNIX1RPS0VOKTtcbiAgICB9XG4gIH07XG5cbiAgd2F0Y2hBdXRoID0gYXN5bmMgKGNiOiBXYXRjaEF1dGhDYWxsYmFjazxVc2VySW5mbywgQ2xhaW1zPik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIHRoaXMubGlzdGVuZXJzLnB1c2goY2IpO1xuXG4gICAgYXdhaXQgdGhpcy5pbml0KCk7XG5cbiAgICBpZiAodGhpcy50b2tlbikge1xuICAgICAgYXdhaXQgdGhpcy5nZXRVc2VySW5mbygpO1xuICAgIH1cblxuICAgIHRoaXMuY2FsbExpc3RlbmVycygpO1xuICB9O1xuXG4gIHByaXZhdGUgZmV0Y2hDb25maWcgPSBhc3luYyAoKTogUHJvbWlzZTxDb25maWdFbmRwb2ludCB8IHVuZGVmaW5lZD4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHRoaXMuY29uZmlnVXJsKTtcbiAgICAgIC8vIFRPRE86IEVycm9yLCBmZXRjaCBvbmx5IHRocm93cyBvbiBjb25uZWN0aW9uIGVycm9yLCBlbHNlIHdlIGdldCAhZmV0Y2gub2tcbiAgICAgIHJldHVybiByZXNwb25zZS5qc29uKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgc2V0Q29uZmlnID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHRoaXMuZmV0Y2hDb25maWcoKTtcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICB0aGlzLmF1dGhvcml6YXRpb25FbmRwb2ludCA9IGNvbmZpZy5hdXRob3JpemF0aW9uX2VuZHBvaW50O1xuICAgICAgdGhpcy50b2tlbkVuZHBvaW50ID0gY29uZmlnLnRva2VuX2VuZHBvaW50O1xuICAgICAgdGhpcy51c2VySW5mb0VuZHBvaW50ID0gY29uZmlnLnVzZXJpbmZvX2VuZHBvaW50O1xuICAgICAgdGhpcy5yZXZvY2F0aW9uRW5kcG9pbnQgPSBjb25maWcucmV2b2NhdGlvbl9lbmRwb2ludDtcbiAgICAgIHRoaXMuZW5kU2Vzc2lvbkVuZHBvaW50ID0gY29uZmlnLmVuZF9zZXNzaW9uX2VuZHBvaW50O1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIGdldFRva2VuID0gYXN5bmMgKGNvZGU6IHN0cmluZywgb3JpZ2luYWxDb2RlVmVyaWZpZXI6IHN0cmluZywgY3VycmVudFN0YXRlOiBzdHJpbmcpOiBQcm9taXNlPFRva2VuIHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgaWYgKCF0aGlzLnRva2VuRW5kcG9pbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGluaXRpYWxpemVkLiBUb2tlbiBlbmRwb2ludCBub3QgcHJlc2VudCcpO1xuICAgIH1cblxuICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICBncmFudF90eXBlOiAnYXV0aG9yaXphdGlvbl9jb2RlJyxcbiAgICAgIGNvZGUsXG4gICAgICBjbGllbnRfaWQ6IGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLmNsaWVudElkKSxcbiAgICAgIHJlZGlyZWN0X3VyaTogdGhpcy5yZWRpcmVjdFVSSSxcbiAgICAgIGNvZGVfdmVyaWZpZXI6IG9yaWdpbmFsQ29kZVZlcmlmaWVyLFxuICAgIH07XG5cbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IG5ldyBIZWFkZXJzKHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAgICAgfSksXG4gICAgICBib2R5OiBlbmNvZGVCb2R5KGJvZHkpLFxuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh0aGlzLnRva2VuRW5kcG9pbnQsIGNvbmZpZyk7XG5cbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgLy8gVE9ETzogRXJyb3IsIGRlYWwgd2l0aCBmYWlsdXJlIGNhc2VzXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGF1dGhUb2tlbiA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcblxuICAgICAgdGhpcy50b2tlbiA9IHtcbiAgICAgICAgYWNjZXNzVG9rZW46IGF1dGhUb2tlbi5hY2Nlc3NfdG9rZW4sXG4gICAgICAgIHJlZnJlc2hUb2tlbjogYXV0aFRva2VuLnJlZnJlc2hfdG9rZW4sXG4gICAgICAgIGV4cGlyZXNJbjogYXV0aFRva2VuLmV4cGlyZXNfaW4sXG4gICAgICAgIHRva2VuVHlwZTogYXV0aFRva2VuLnRva2VuX3R5cGUsXG4gICAgICAgIHNjb3BlOiBhdXRoVG9rZW4uc2NvcGUsXG4gICAgICAgIGlkVG9rZW46IGF1dGhUb2tlbi5pZF90b2tlbixcbiAgICAgIH07XG5cbiAgICAgIFN0b3JhZ2Uuc2V0KGAke3RoaXMuc3RvcmFnZUtleX0udG9rZW5gLCB0aGlzLnRva2VuKTtcbiAgICAgIC8vIGNsZWFuIHVwIGxvY2FsIHN0b3JhZ2UgZnJvbSBQS0NFIGRldGFpbHNcbiAgICAgIFN0b3JhZ2UucmVtb3ZlKGN1cnJlbnRTdGF0ZSk7XG4gICAgICAvLyBjbGVhbiB1cCBxdWVyeSBwYXJhbXMgZnJvbSBPQXV0aCByZWRpcmVjdGlvblxuICAgICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKHt9LCBkb2N1bWVudC50aXRsZSwgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKTtcblxuICAgICAgcmV0dXJuIHRoaXMudG9rZW47XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXJyb3IgZ2V0dGluZyB0b2tlbicpO1xuICAgIH1cbiAgfTtcblxuICByZWZyZXNoVG9rZW4gPSBhc3luYyAoKTogUHJvbWlzZTxJbml0IHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgaWYgKCF0aGlzLnRva2VuIHx8ICF0aGlzLnRva2VuRW5kcG9pbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHJlZnJlc2ggdG9rZW4gd2l0aG91dCB0b2tlbiBvciBlbmRwb2ludCcpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy50b2tlbi5yZWZyZXNoVG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHJlZnJlc2ggdG9rZW4gd2l0aG91dCByZWZyZXNoIHRva2VuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgYm9keSA9IHtcbiAgICAgIGdyYW50X3R5cGU6ICdyZWZyZXNoX3Rva2VuJyxcbiAgICAgIHJlZnJlc2hfdG9rZW46IHRoaXMudG9rZW4ucmVmcmVzaFRva2VuLFxuICAgICAgcmVkaXJlY3RfdXJpOiB0aGlzLnJlZGlyZWN0VVJJLFxuICAgICAgY2xpZW50X2lkOiBlbmNvZGVVUklDb21wb25lbnQodGhpcy5jbGllbnRJZCksXG4gICAgfTtcblxuICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczogbmV3IEhlYWRlcnMoe1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsXG4gICAgICB9KSxcbiAgICAgIGJvZHk6IGVuY29kZUJvZHkoYm9keSksXG4gICAgfTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godGhpcy50b2tlbkVuZHBvaW50LCBjb25maWcpO1xuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUb2tlbiBub3QgcmVmcmVzaGVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdG9rZW4gPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG5cbiAgICB0aGlzLnRva2VuID0ge1xuICAgICAgYWNjZXNzVG9rZW46IHRva2VuLmFjY2Vzc190b2tlbixcbiAgICAgIHJlZnJlc2hUb2tlbjogdG9rZW4ucmVmcmVzaF90b2tlbixcbiAgICAgIGV4cGlyZXNJbjogdG9rZW4uZXhwaXJlc19pbixcbiAgICAgIHRva2VuVHlwZTogdG9rZW4udG9rZW5fdHlwZSxcbiAgICAgIHNjb3BlOiB0b2tlbi5zY29wZSxcbiAgICAgIGlkVG9rZW46IHRva2VuLmlkX3Rva2VuLFxuICAgIH07XG5cbiAgICBTdG9yYWdlLnNldChgJHt0aGlzLnN0b3JhZ2VLZXl9LnRva2VuYCwgdGhpcy50b2tlbik7XG5cbiAgICAvLyBUT0RPIEBhbGwgY2FsbCBsaXN0ZW5lcnMgaWYgc29tZXRoaW5nIGNoYW5nZWRcblxuICAgIC8vICg/KSBXZSBkb24ndCByZXR1cm4gdGhlIHRva2VuIGRpcmVjdGx5XG4gICAgcmV0dXJuIHsgYWNjZXNzVG9rZW46IHRoaXMudG9rZW4uYWNjZXNzVG9rZW4sIGV4cGlyZXNJbjogdGhpcy50b2tlbi5leHBpcmVzSW4gfVxuICB9O1xuXG4gIHByaXZhdGUgYXV0aGVudGljYXRlID0gKGFyZ3M6IEF1dGhlbnRpY2F0ZUFyZ3MpOiB2b2lkID0+IHtcbiAgICBjb25zdCB7IGZvcmNlZFJlZGlyZWN0VG8sIGlzU2lnbnVwIH0gPSBhcmdzO1xuICAgIGNvbnN0IG9yaWdpbmFsQ29kZVZlcmlmaWVyID0gZ2VuZXJhdGVDb2RlVmVyaWZpZXIoOTYpO1xuICAgIGNvbnN0IGNvZGVWZXJpZmllciA9IGdlbmVyYXRlUGtjZUNoYWxsZW5nZShvcmlnaW5hbENvZGVWZXJpZmllcik7XG4gICAgY29uc3QgeyBwYXRobmFtZSwgc2VhcmNoIH0gPSB3aW5kb3cubG9jYXRpb247XG4gICAgY29uc3QgeyBvcmlnaW4gfSA9IHF1ZXJ5U3RyaW5nLnBhcnNlKHNlYXJjaCk7XG4gICAgY29uc3QgcmVkaXJlY3RUbyA9IGZvcmNlZFJlZGlyZWN0VG8gPyBmb3JjZWRSZWRpcmVjdFRvIDogb3JpZ2luID8gZGVjb2RlVVJJQ29tcG9uZW50KG9yaWdpbiArIFwiXCIpIDogcGF0aG5hbWUgKyBzZWFyY2g7XG4gICAgY29uc3Qgc3RhdGUgPSB1dWlkdjQoKTtcbiAgICBsZXQgY2xhaW1QYXJhbTtcbiAgXG4gICAgaWYgKHRoaXMuY2xhaW1zLmxlbmd0aCkge1xuICAgICAgY29uc3QgY2xhaW1NYXAgPSB0aGlzLmNsYWltcy5yZWR1Y2U8Q2xhaW1QYXJhbT4oKGN1cnIsIGNsYWltKSA9PiAoeyAuLi5jdXJyLCBbY2xhaW1dOiBudWxsIH0pLCB7fSk7XG4gICAgICBjbGFpbVBhcmFtID0gdGhpcy5jbGFpbXMubGVuZ3RoXG4gICAgICAgID8ge1xuICAgICAgICAgICAgdXNlcmluZm86IGNsYWltTWFwLFxuICAgICAgICAgICAgaWRfdG9rZW46IGNsYWltTWFwLFxuICAgICAgICAgIH1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgY2xpZW50X2lkOiBlbmNvZGVVUklDb21wb25lbnQodGhpcy5jbGllbnRJZCksXG4gICAgICByZWRpcmVjdF91cmk6IHRoaXMucmVkaXJlY3RVUkksXG4gICAgICBzY29wZTogdGhpcy5zY29wZXMuam9pbignICcpLFxuICAgICAgcmVzcG9uc2VfdHlwZTogJ2NvZGUnLFxuICAgICAgcmVzcG9uc2VfbW9kZTogJ3F1ZXJ5JyxcbiAgICAgIHN0YXRlOiBlbmNvZGVVUklDb21wb25lbnQoc3RhdGUpLFxuICAgICAgY29kZV9jaGFsbGVuZ2U6IGVuY29kZVVSSShjb2RlVmVyaWZpZXIpLFxuICAgICAgY29kZV9jaGFsbGVuZ2VfbWV0aG9kOiAnUzI1NicsXG4gICAgICAuLi4oaXNTaWdudXAgPyB7XG4gICAgICAgIHByb21wdDogJ2NyZWF0ZSdcbiAgICAgIH0gOiB7fSksXG4gICAgICBjbGFpbXM6IGNsYWltUGFyYW0gJiYgSlNPTi5zdHJpbmdpZnkoY2xhaW1QYXJhbSksXG4gICAgfTtcblxuICAgIFN0b3JhZ2Uuc2V0KHN0YXRlLCB7XG4gICAgICBjb2RlVmVyaWZpZXIsXG4gICAgICBvcmlnaW5hbENvZGVWZXJpZmllcixcbiAgICAgIHJlZGlyZWN0VG8sXG4gICAgfSk7XG5cbiAgICBjb25zdCBsb2dpblF1ZXJ5ID0gcXVlcnlTdHJpbmcuc3RyaW5naWZ5KHBhcmFtcyk7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5hdXRob3JpemF0aW9uRW5kcG9pbnR9PyR7bG9naW5RdWVyeX1gO1xuICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKHVybCk7XG4gIH1cblxuICBsb2dpbiA9IChmb3JjZWRSZWRpcmVjdFRvPzogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgdGhpcy5hdXRoZW50aWNhdGUoeyBmb3JjZWRSZWRpcmVjdFRvIH0pO1xuICB9O1xuXG4gIHNpZ251cCA9IChmb3JjZWRSZWRpcmVjdFRvPzogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgdGhpcy5hdXRoZW50aWNhdGUoeyBmb3JjZWRSZWRpcmVjdFRvLCBpc1NpZ251cDogdHJ1ZSB9KTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgbG9hZFVzZXJJbmZvKHVzZXJKU09OOiBhbnksIGNsYWltcz86IENsYWltcyk6IFVzZXJEYXRhO1xuXG4gIGdldFVzZXJJbmZvID0gYXN5bmMgKCk6IFByb21pc2U8eyB1c2VyOiBVc2VySW5mbywgY2xhaW1zPzogQ2xhaW1zIH0gfCB1bmRlZmluZWQ+ID0+IHtcbiAgICBpZiAoIXRoaXMudXNlckluZm9FbmRwb2ludCB8fCAhdGhpcy50b2tlbikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHRoaXMudXNlckluZm9FbmRwb2ludCwge1xuICAgICAgICBoZWFkZXJzOiBuZXcgSGVhZGVycyh7XG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMudG9rZW4uYWNjZXNzVG9rZW59YCxcbiAgICAgICAgfSksXG4gICAgICB9KTtcbiAgXG4gICAgICBjb25zdCB1c2VySW5mbyA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgIGNvbnN0IGNsYWltcyA9IHRoaXMuY2xhaW1zLmxlbmd0aFxuICAgICAgICA/IHRoaXMuY2xhaW1zLnJlZHVjZTxDbGFpbXM+KChjdXJyLCBjbGFpbSkgPT4gKHtcbiAgICAgICAgICAuLi5jdXJyLFxuICAgICAgICAgIFtjbGFpbV06IHVzZXJJbmZvW2NsYWltXSxcbiAgICAgICAgfSksIHt9IGFzIENsYWltcylcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnVzZXIgPSB0aGlzLmxvYWRVc2VySW5mbyh1c2VySW5mbywgY2xhaW1zKTtcblxuICAgICAgU3RvcmFnZS5zZXQoYCR7dGhpcy5zdG9yYWdlS2V5fS51c2VyYCwgdGhpcy51c2VyKTtcblxuICAgICAgcmV0dXJuIHRoaXMudXNlcjtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKCdFcnJvciBnZXR0aW5nIHVzZXIgaW5mbywgbG9nZ2luZyBvdXQuLi4nKTtcbiAgICAgIGNvbnNvbGUud2FybihlcnJvcik7XG4gICAgICBhd2FpdCB0aGlzLmxvZ291dCgpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG5cbiAgbG9nb3V0ID0gYXN5bmMgKGVuZFNlc3Npb25VUkk/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBTdG9yYWdlLnJlbW92ZShgJHt0aGlzLnN0b3JhZ2VLZXl9LnRva2VuYCk7XG4gICAgU3RvcmFnZS5yZW1vdmUoYCR7dGhpcy5zdG9yYWdlS2V5fS51c2VyYCk7XG5cbiAgICBpZiAoZW5kU2Vzc2lvblVSSSkge1xuICAgICAgLy8gSmFucmFpbkpTXG4gICAgICB3aW5kb3cubG9jYXRpb24ucmVwbGFjZShlbmRTZXNzaW9uVVJJKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gT2t0YUpTXG4gICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgICdpZF90b2tlbl9oaW50JzogdGhpcy50b2tlbj8uaWRUb2tlbixcbiAgICAgICAgJ3Bvc3RfbG9nb3V0X3JlZGlyZWN0X3VyaSc6IHRoaXMubG9nb3V0UmVkaXJlY3RVUkksXG4gICAgICB9O1xuICAgICAgaWYgKHRoaXMuZW5kU2Vzc2lvbkVuZHBvaW50KSB7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuZW5kU2Vzc2lvbkVuZHBvaW50fT8ke3F1ZXJ5U3RyaW5nLnN0cmluZ2lmeShwYXJhbXMpfWA7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKHVybCk7ICBcbiAgICAgIH1cbiAgICB9XG5cbiAgfTtcbn1cbiJdfQ==
import OpenIDClient from './OAuthClient';
import { OAuthUserInfo } from './types';
export declare type OktaUserInfo = OAuthUserInfo;
export default class OktaJS<Claims extends object> extends OpenIDClient<OktaUserInfo, Claims, {
user: OktaUserInfo;
claims?: Claims;
}> {
export default class OktaJS<Claims extends {}> extends OpenIDClient<Claims> {
constructor(clientId: string, configUrl: string, redirectURI: string, logoutRedirectURI: string, scopes?: string[], claims?: Array<keyof Claims>);
protected loadUserInfo(userJSON: any, claims: Claims): {
user: OktaUserInfo;
user: OAuthUserInfo;
claims?: Claims;

@@ -12,0 +8,0 @@ };

@@ -24,2 +24,2 @@ "use strict";

exports.default = OktaJS;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT2t0YUpTLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL09rdGFKUy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdFQUF5QztBQUt6QyxNQUFxQixNQUE4QixTQUFRLHFCQUEyRTtJQUNwSSxZQUFZLFFBQWdCLEVBQUUsU0FBaUIsRUFBRSxXQUFtQixFQUFFLGlCQUF5QixFQUFFLFNBQW1CLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsRUFBRSxTQUE4QixFQUFFO1FBQ2xMLEtBQUssQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFHUyxZQUFZLENBQUMsUUFBYSxFQUFFLE1BQWM7UUFDbEQsT0FBTztZQUNMLElBQUksRUFBRTtnQkFDSixFQUFFLEVBQUUsUUFBUSxDQUFDLEdBQUc7Z0JBQ2hCLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztnQkFDckIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxVQUFVO2dCQUN6QixRQUFRLEVBQUUsUUFBUSxDQUFDLFdBQVc7YUFDL0I7WUFDRCxNQUFNO1NBQ1AsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWpCRCx5QkFpQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgT3BlbklEQ2xpZW50IGZyb20gJy4vT0F1dGhDbGllbnQnO1xuaW1wb3J0IHsgT0F1dGhVc2VySW5mbyB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBPa3RhVXNlckluZm8gPSBPQXV0aFVzZXJJbmZvXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE9rdGFKUzxDbGFpbXMgZXh0ZW5kcyBvYmplY3Q+IGV4dGVuZHMgT3BlbklEQ2xpZW50PE9rdGFVc2VySW5mbywgQ2xhaW1zLCB7IHVzZXI6IE9rdGFVc2VySW5mbywgY2xhaW1zPzogQ2xhaW1zIH0+IHtcbiAgY29uc3RydWN0b3IoY2xpZW50SWQ6IHN0cmluZywgY29uZmlnVXJsOiBzdHJpbmcsIHJlZGlyZWN0VVJJOiBzdHJpbmcsIGxvZ291dFJlZGlyZWN0VVJJOiBzdHJpbmcsIHNjb3Blczogc3RyaW5nW10gPSBbJ29wZW5pZCcsICdlbWFpbCcsICdwcm9maWxlJ10sIGNsYWltczogQXJyYXk8a2V5b2YgQ2xhaW1zPiA9IFtdKSB7XG4gICAgc3VwZXIoY2xpZW50SWQsIGNvbmZpZ1VybCwgcmVkaXJlY3RVUkksICdva3RhX3Rva2VuJywgbG9nb3V0UmVkaXJlY3RVUkksIHNjb3BlcywgY2xhaW1zKTtcbiAgfVxuXG4gIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm9rdGEuY29tL2RvY3MvcmVmZXJlbmNlL2FwaS9vaWRjLyN1c2VyaW5mb1xuICBwcm90ZWN0ZWQgbG9hZFVzZXJJbmZvKHVzZXJKU09OOiBhbnksIGNsYWltczogQ2xhaW1zKTogeyB1c2VyOiBPa3RhVXNlckluZm8sIGNsYWltcz86IENsYWltcyB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgdXNlcjoge1xuICAgICAgICBpZDogdXNlckpTT04uc3ViLFxuICAgICAgICBlbWFpbDogdXNlckpTT04uZW1haWwsXG4gICAgICAgIG5hbWU6IHVzZXJKU09OLmdpdmVuX25hbWUsXG4gICAgICAgIGxhc3ROYW1lOiB1c2VySlNPTi5mYW1pbHlfbmFtZSxcbiAgICAgIH0sXG4gICAgICBjbGFpbXMsXG4gICAgfTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT2t0YUpTLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL09rdGFKUy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdFQUF5QztBQUd6QyxNQUFxQixNQUEwQixTQUFRLHFCQUFvQjtJQUN6RSxZQUFZLFFBQWdCLEVBQUUsU0FBaUIsRUFBRSxXQUFtQixFQUFFLGlCQUF5QixFQUFFLFNBQW1CLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsRUFBRSxTQUE4QixFQUFFO1FBQ2xMLEtBQUssQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFHUyxZQUFZLENBQUMsUUFBYSxFQUFFLE1BQWM7UUFDbEQsT0FBTztZQUNMLElBQUksRUFBRTtnQkFDSixFQUFFLEVBQUUsUUFBUSxDQUFDLEdBQUc7Z0JBQ2hCLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztnQkFDckIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxVQUFVO2dCQUN6QixRQUFRLEVBQUUsUUFBUSxDQUFDLFdBQVc7YUFDL0I7WUFDRCxNQUFNO1NBQ1AsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWpCRCx5QkFpQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgT3BlbklEQ2xpZW50IGZyb20gJy4vT0F1dGhDbGllbnQnO1xuaW1wb3J0IHsgT0F1dGhVc2VySW5mbyB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBPa3RhSlM8Q2xhaW1zIGV4dGVuZHMge30+IGV4dGVuZHMgT3BlbklEQ2xpZW50PENsYWltcz4ge1xuICBjb25zdHJ1Y3RvcihjbGllbnRJZDogc3RyaW5nLCBjb25maWdVcmw6IHN0cmluZywgcmVkaXJlY3RVUkk6IHN0cmluZywgbG9nb3V0UmVkaXJlY3RVUkk6IHN0cmluZywgc2NvcGVzOiBzdHJpbmdbXSA9IFsnb3BlbmlkJywgJ2VtYWlsJywgJ3Byb2ZpbGUnXSwgY2xhaW1zOiBBcnJheTxrZXlvZiBDbGFpbXM+ID0gW10pIHtcbiAgICBzdXBlcihjbGllbnRJZCwgY29uZmlnVXJsLCByZWRpcmVjdFVSSSwgJ29rdGFfdG9rZW4nLCBsb2dvdXRSZWRpcmVjdFVSSSwgc2NvcGVzLCBjbGFpbXMpO1xuICB9XG5cbiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIub2t0YS5jb20vZG9jcy9yZWZlcmVuY2UvYXBpL29pZGMvI3VzZXJpbmZvXG4gIHByb3RlY3RlZCBsb2FkVXNlckluZm8odXNlckpTT046IGFueSwgY2xhaW1zOiBDbGFpbXMpOiB7IHVzZXI6IE9BdXRoVXNlckluZm8sIGNsYWltcz86IENsYWltcyB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgdXNlcjoge1xuICAgICAgICBpZDogdXNlckpTT04uc3ViLFxuICAgICAgICBlbWFpbDogdXNlckpTT04uZW1haWwsXG4gICAgICAgIG5hbWU6IHVzZXJKU09OLmdpdmVuX25hbWUsXG4gICAgICAgIGxhc3ROYW1lOiB1c2VySlNPTi5mYW1pbHlfbmFtZSxcbiAgICAgIH0sXG4gICAgICBjbGFpbXMsXG4gICAgfTtcbiAgfVxufVxuIl19

@@ -15,7 +15,7 @@ export declare type Token = {

};
export declare type UserData<Claims> = {
user: OAuthUserInfo;
export declare type UserData<UserInfo extends OAuthUserInfo, Claims> = {
user: UserInfo;
claims?: Claims;
};
export declare type WatchAuthCallback<Claims> = (user: UserData<Claims> | undefined, comesFromLogin: boolean, redirectTo?: string) => void;
export declare type WatchAuthCallback<UserInfo extends OAuthUserInfo, Claims> = (user: UserData<UserInfo, Claims> | undefined, comesFromLogin: boolean, redirectTo?: string) => void;
export declare type Init = {

@@ -22,0 +22,0 @@ accessToken: string;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFJlZmVyZW5jZTogaHR0cHM6Ly9pZGVudGl0eWRvY3MuYWthbWFpLmNvbS9ob21lL2F1dGhvcml6YXRpb24tY29kZS1wa2NlLWZvci1tb2JpbGUtYXBwc1xuZXhwb3J0IHR5cGUgVG9rZW4gPSB7XG4gIC8vIFRva2VuIHVzZWQgZm9yIGNhbGxzLCBzaG9ydCBleHBpcmF0aW9uXG4gIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIC8vIFRva2VuIHVzZWQgdG8gcmV0cmlldmUgYSBuZXcgYWNjZXNzVG9rZW4sIGxvbmcgZXhwaXJhdGlvblxuICByZWZyZXNoVG9rZW46IHN0cmluZztcbiAgZXhwaXJlc0luOiBudW1iZXI7XG4gIHRva2VuVHlwZTogc3RyaW5nO1xuICAvLyBPSURDIHNjb3BlcyB0aGF0IHRoZSB0b2tlbiBoYXMgYWNjZXNzIHRvIHJldHJpZXZlXG4gIHNjb3BlOiBzdHJpbmc7XG4gIC8vIElkZW50aXR5IHRva2VuXG4gIGlkVG9rZW46IHN0cmluZ1xufTtcblxuZXhwb3J0IHR5cGUgT0F1dGhVc2VySW5mbyA9IHtcbiAgcmVhZG9ubHkgZW1haWw6IHN0cmluZztcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBsYXN0TmFtZTogc3RyaW5nO1xuICByZWFkb25seSBpZDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVXNlckRhdGE8Q2xhaW1zPiA9IHtcbiAgdXNlcjogT0F1dGhVc2VySW5mbztcbiAgY2xhaW1zPzogQ2xhaW1zO1xufVxuXG5leHBvcnQgdHlwZSBXYXRjaEF1dGhDYWxsYmFjazxDbGFpbXM+ID0gKHVzZXI6IFVzZXJEYXRhPENsYWltcz4gfCB1bmRlZmluZWQsIGNvbWVzRnJvbUxvZ2luOiBib29sZWFuLCByZWRpcmVjdFRvPzogc3RyaW5nKSA9PiB2b2lkO1xuXG5leHBvcnQgdHlwZSBJbml0ID0ge1xuICBhY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBleHBpcmVzSW46IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIENvbmZpZ0VuZHBvaW50ID0ge1xuICBhdXRob3JpemF0aW9uX2VuZHBvaW50OiBzdHJpbmc7XG4gIHRva2VuX2VuZHBvaW50OiBzdHJpbmc7XG4gIHVzZXJpbmZvX2VuZHBvaW50OiBzdHJpbmc7XG4gIHJldm9jYXRpb25fZW5kcG9pbnQ6IHN0cmluZztcbiAgZW5kX3Nlc3Npb25fZW5kcG9pbnQ6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEF1dGhlbnRpY2F0ZUFyZ3MgPSB7XG4gIGZvcmNlZFJlZGlyZWN0VG8/OiBzdHJpbmc7XG4gIGlzU2lnbnVwPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgQ2xhaW1QYXJhbSA9IHtcbiAgW2NsYWltOiBzdHJpbmddOiBudWxsLFxufTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFJlZmVyZW5jZTogaHR0cHM6Ly9pZGVudGl0eWRvY3MuYWthbWFpLmNvbS9ob21lL2F1dGhvcml6YXRpb24tY29kZS1wa2NlLWZvci1tb2JpbGUtYXBwc1xuZXhwb3J0IHR5cGUgVG9rZW4gPSB7XG4gIC8vIFRva2VuIHVzZWQgZm9yIGNhbGxzLCBzaG9ydCBleHBpcmF0aW9uXG4gIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIC8vIFRva2VuIHVzZWQgdG8gcmV0cmlldmUgYSBuZXcgYWNjZXNzVG9rZW4sIGxvbmcgZXhwaXJhdGlvblxuICByZWZyZXNoVG9rZW46IHN0cmluZztcbiAgZXhwaXJlc0luOiBudW1iZXI7XG4gIHRva2VuVHlwZTogc3RyaW5nO1xuICAvLyBPSURDIHNjb3BlcyB0aGF0IHRoZSB0b2tlbiBoYXMgYWNjZXNzIHRvIHJldHJpZXZlXG4gIHNjb3BlOiBzdHJpbmc7XG4gIC8vIElkZW50aXR5IHRva2VuXG4gIGlkVG9rZW46IHN0cmluZ1xufTtcblxuZXhwb3J0IHR5cGUgT0F1dGhVc2VySW5mbyA9IHtcbiAgcmVhZG9ubHkgZW1haWw6IHN0cmluZztcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBsYXN0TmFtZTogc3RyaW5nO1xuICByZWFkb25seSBpZDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVXNlckRhdGE8VXNlckluZm8gZXh0ZW5kcyBPQXV0aFVzZXJJbmZvLCBDbGFpbXM+ID0ge1xuICB1c2VyOiBVc2VySW5mbztcbiAgY2xhaW1zPzogQ2xhaW1zO1xufVxuXG5leHBvcnQgdHlwZSBXYXRjaEF1dGhDYWxsYmFjazxVc2VySW5mbyBleHRlbmRzIE9BdXRoVXNlckluZm8sIENsYWltcz4gPSAodXNlcjogVXNlckRhdGE8VXNlckluZm8sIENsYWltcz4gfCB1bmRlZmluZWQsIGNvbWVzRnJvbUxvZ2luOiBib29sZWFuLCByZWRpcmVjdFRvPzogc3RyaW5nKSA9PiB2b2lkO1xuXG5leHBvcnQgdHlwZSBJbml0ID0ge1xuICBhY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBleHBpcmVzSW46IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIENvbmZpZ0VuZHBvaW50ID0ge1xuICBhdXRob3JpemF0aW9uX2VuZHBvaW50OiBzdHJpbmc7XG4gIHRva2VuX2VuZHBvaW50OiBzdHJpbmc7XG4gIHVzZXJpbmZvX2VuZHBvaW50OiBzdHJpbmc7XG4gIHJldm9jYXRpb25fZW5kcG9pbnQ6IHN0cmluZztcbiAgZW5kX3Nlc3Npb25fZW5kcG9pbnQ6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEF1dGhlbnRpY2F0ZUFyZ3MgPSB7XG4gIGZvcmNlZFJlZGlyZWN0VG8/OiBzdHJpbmc7XG4gIGlzU2lnbnVwPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgQ2xhaW1QYXJhbSA9IHtcbiAgW2NsYWltOiBzdHJpbmddOiBudWxsLFxufTtcbiJdfQ==
{
"name": "@mybiogen/auth-openid",
"version": "1.4.0",
"version": "1.4.1",
"description": "Authorization for OpenID",

@@ -35,3 +35,3 @@ "license": "MIT",

},
"gitHead": "019444af66341a5ede7cb76856622d795e234070"
"gitHead": "511611418698d1873049535c7609f736852cae84"
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc