@adlfe/campaign-management-library 2.10.6 → 2.11.3
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/adlfe-campaign-management-library.d.ts +12 -9
- package/adlfe-campaign-management-library.metadata.json +1 -1
- package/bundles/adlfe-campaign-management-library.umd.js +178 -110
- package/bundles/adlfe-campaign-management-library.umd.js.map +1 -1
- package/bundles/adlfe-campaign-management-library.umd.min.js +1 -1
- package/bundles/adlfe-campaign-management-library.umd.min.js.map +1 -1
- package/esm2015/adlfe-campaign-management-library.js +13 -10
- package/esm2015/environments/environment.js +3 -3
- package/esm2015/lib/campaign-management/models/general-information-wa-req.model.js +11 -2
- package/esm2015/lib/campaign-management/modules/campaign-index/component/filter-in-list-of-campaign/filter-in-list-of-campaign.component.js +1 -1
- package/esm2015/lib/campaign-management/modules/campaign-index/dialog/pending-approval-dialog-view/pending-approval-dialog-view.component.js +43 -43
- package/esm2015/lib/campaign-management/modules/new-campaign/components/general-information-wa/general-information-wa.component.js +54 -5
- package/esm2015/lib/campaign-management/modules/new-campaign/general-information/general-information.component.js +3 -3
- package/esm2015/lib/campaign-management/modules/new-campaign/new-campaign.component.js +49 -42
- package/esm2015/lib/campaign-management/modules/new-campaign/new-number-bases/new-number-bases.component.js +1 -2
- package/esm2015/lib/core/const/constants.const.js +6 -6
- package/esm2015/public-api.js +1 -6
- package/esm5/adlfe-campaign-management-library.js +13 -10
- package/esm5/environments/environment.js +3 -3
- package/esm5/lib/campaign-management/models/general-information-wa-req.model.js +11 -2
- package/esm5/lib/campaign-management/modules/campaign-index/component/filter-in-list-of-campaign/filter-in-list-of-campaign.component.js +1 -1
- package/esm5/lib/campaign-management/modules/campaign-index/dialog/pending-approval-dialog-view/pending-approval-dialog-view.component.js +42 -40
- package/esm5/lib/campaign-management/modules/new-campaign/components/general-information-wa/general-information-wa.component.js +58 -5
- package/esm5/lib/campaign-management/modules/new-campaign/general-information/general-information.component.js +3 -3
- package/esm5/lib/campaign-management/modules/new-campaign/new-campaign.component.js +49 -42
- package/esm5/lib/campaign-management/modules/new-campaign/new-number-bases/new-number-bases.component.js +1 -2
- package/esm5/lib/core/const/constants.const.js +6 -6
- package/esm5/public-api.js +1 -6
- package/fesm2015/adlfe-campaign-management-library.js +164 -100
- package/fesm2015/adlfe-campaign-management-library.js.map +1 -1
- package/fesm5/adlfe-campaign-management-library.js +167 -97
- package/fesm5/adlfe-campaign-management-library.js.map +1 -1
- package/lib/campaign-management/models/general-information-wa-req.model.d.ts +2 -0
- package/lib/campaign-management/modules/new-campaign/components/general-information-wa/general-information-wa.component.d.ts +7 -0
- package/package.json +1 -1
- package/public-api.d.ts +0 -5
- package/types.d.ts +1 -0
|
@@ -96,7 +96,7 @@ let NewCampaignComponent = class NewCampaignComponent {
|
|
|
96
96
|
const subs = this.apiAdapterService
|
|
97
97
|
.executeApiRequest([], `/campaign/${this.campaignID}`, 'GET')
|
|
98
98
|
.subscribe((resp) => {
|
|
99
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61;
|
|
99
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64;
|
|
100
100
|
if (!resp)
|
|
101
101
|
return;
|
|
102
102
|
const generalInformation = {
|
|
@@ -104,64 +104,66 @@ let NewCampaignComponent = class NewCampaignComponent {
|
|
|
104
104
|
medium: (_b = resp.data) === null || _b === void 0 ? void 0 : _b.platform,
|
|
105
105
|
channel: ['image', 'video', 'document'].includes((_c = resp.data) === null || _c === void 0 ? void 0 : _c.type)
|
|
106
106
|
? 'MEDIA'
|
|
107
|
-
: (
|
|
108
|
-
|
|
107
|
+
: ((_d = resp.data) === null || _d === void 0 ? void 0 : _d.isDirectSend) ? 'utility'
|
|
108
|
+
: (_f = (_e = resp.data) === null || _e === void 0 ? void 0 : _e.type) === null || _f === void 0 ? void 0 : _f.toUpperCase(),
|
|
109
|
+
media: (_h = (_g = resp.data) === null || _g === void 0 ? void 0 : _g.type) === null || _h === void 0 ? void 0 : _h.toUpperCase(),
|
|
110
|
+
isPrevTemplate: (_k = (_j = resp) === null || _j === void 0 ? void 0 : _j.data) === null || _k === void 0 ? void 0 : _k.isPrevTemplate,
|
|
109
111
|
from: {
|
|
110
|
-
id: (
|
|
111
|
-
name: (
|
|
112
|
-
platform: (
|
|
113
|
-
clientId: (
|
|
114
|
-
clientName: (
|
|
115
|
-
accountNo: (
|
|
116
|
-
wabaId: (
|
|
112
|
+
id: (_l = resp.data) === null || _l === void 0 ? void 0 : _l.accountId,
|
|
113
|
+
name: (_m = resp.data) === null || _m === void 0 ? void 0 : _m.accountName,
|
|
114
|
+
platform: (_o = resp.data) === null || _o === void 0 ? void 0 : _o.platform,
|
|
115
|
+
clientId: (_p = resp.data) === null || _p === void 0 ? void 0 : _p.clientId,
|
|
116
|
+
clientName: (_q = resp.data) === null || _q === void 0 ? void 0 : _q.clientName,
|
|
117
|
+
accountNo: (_r = resp.data) === null || _r === void 0 ? void 0 : _r.accountNo,
|
|
118
|
+
wabaId: (_t = (_s = resp.data) === null || _s === void 0 ? void 0 : _s.wabaId, (_t !== null && _t !== void 0 ? _t : '')),
|
|
117
119
|
},
|
|
118
|
-
text: (
|
|
119
|
-
targetURL: (
|
|
120
|
-
paramHeader: (
|
|
121
|
-
paramBody: (
|
|
122
|
-
paramButton: (
|
|
123
|
-
otpValue: (
|
|
120
|
+
text: (_v = (_u = resp.data) === null || _u === void 0 ? void 0 : _u.details) === null || _v === void 0 ? void 0 : _v.text,
|
|
121
|
+
targetURL: (_7 = (_3 = (_z = (_y = (_x = (_w = resp.data) === null || _w === void 0 ? void 0 : _w.details) === null || _x === void 0 ? void 0 : _x.image) === null || _y === void 0 ? void 0 : _y.url, (_z !== null && _z !== void 0 ? _z : (_2 = (_1 = (_0 = resp.data) === null || _0 === void 0 ? void 0 : _0.details) === null || _1 === void 0 ? void 0 : _1.document) === null || _2 === void 0 ? void 0 : _2.url)), (_3 !== null && _3 !== void 0 ? _3 : (_6 = (_5 = (_4 = resp.data) === null || _4 === void 0 ? void 0 : _4.details) === null || _5 === void 0 ? void 0 : _5.video) === null || _6 === void 0 ? void 0 : _6.url)), (_7 !== null && _7 !== void 0 ? _7 : (_10 = (_9 = (_8 = resp.data) === null || _8 === void 0 ? void 0 : _8.details) === null || _9 === void 0 ? void 0 : _9.template) === null || _10 === void 0 ? void 0 : _10.headerURL)),
|
|
122
|
+
paramHeader: (_13 = (_12 = (_11 = resp.data) === null || _11 === void 0 ? void 0 : _11.details) === null || _12 === void 0 ? void 0 : _12.template) === null || _13 === void 0 ? void 0 : _13.header,
|
|
123
|
+
paramBody: (_16 = (_15 = (_14 = resp.data) === null || _14 === void 0 ? void 0 : _14.details) === null || _15 === void 0 ? void 0 : _15.template) === null || _16 === void 0 ? void 0 : _16.data,
|
|
124
|
+
paramButton: (_19 = (_18 = (_17 = resp.data) === null || _17 === void 0 ? void 0 : _17.details) === null || _18 === void 0 ? void 0 : _18.template) === null || _19 === void 0 ? void 0 : _19.button,
|
|
125
|
+
otpValue: (_24 = [...(_23 = (_22 = (_21 = (_20 = resp.data) === null || _20 === void 0 ? void 0 : _20.details) === null || _21 === void 0 ? void 0 : _21.template) === null || _22 === void 0 ? void 0 : _22.data, (_23 !== null && _23 !== void 0 ? _23 : []))]) === null || _24 === void 0 ? void 0 : _24.pop(),
|
|
124
126
|
template: {
|
|
125
|
-
ID: (
|
|
126
|
-
name: (
|
|
127
|
-
lang: (
|
|
128
|
-
platform: (
|
|
129
|
-
headerURL: (
|
|
127
|
+
ID: (_27 = (_26 = (_25 = resp.data) === null || _25 === void 0 ? void 0 : _25.details) === null || _26 === void 0 ? void 0 : _26.template) === null || _27 === void 0 ? void 0 : _27.id,
|
|
128
|
+
name: (_30 = (_29 = (_28 = resp.data) === null || _28 === void 0 ? void 0 : _28.details) === null || _29 === void 0 ? void 0 : _29.template) === null || _30 === void 0 ? void 0 : _30.name,
|
|
129
|
+
lang: (_33 = (_32 = (_31 = resp.data) === null || _31 === void 0 ? void 0 : _31.details) === null || _32 === void 0 ? void 0 : _32.template) === null || _33 === void 0 ? void 0 : _33.lang,
|
|
130
|
+
platform: (_34 = resp.data) === null || _34 === void 0 ? void 0 : _34.platform,
|
|
131
|
+
headerURL: (_37 = (_36 = (_35 = resp.data) === null || _35 === void 0 ? void 0 : _35.details) === null || _36 === void 0 ? void 0 : _36.template) === null || _37 === void 0 ? void 0 : _37.headerURL,
|
|
130
132
|
header: {
|
|
131
|
-
examples: (
|
|
133
|
+
examples: (_40 = (_39 = (_38 = resp.data) === null || _38 === void 0 ? void 0 : _38.details) === null || _39 === void 0 ? void 0 : _39.template) === null || _40 === void 0 ? void 0 : _40.header,
|
|
132
134
|
},
|
|
133
135
|
body: {
|
|
134
|
-
examples: (
|
|
136
|
+
examples: (_43 = (_42 = (_41 = resp.data) === null || _41 === void 0 ? void 0 : _41.details) === null || _42 === void 0 ? void 0 : _42.template) === null || _43 === void 0 ? void 0 : _43.data,
|
|
135
137
|
},
|
|
136
|
-
buttons: (
|
|
137
|
-
ClientId: (
|
|
138
|
-
ClientName: (
|
|
138
|
+
buttons: (_46 = (_45 = (_44 = resp.data) === null || _44 === void 0 ? void 0 : _44.details) === null || _45 === void 0 ? void 0 : _45.template) === null || _46 === void 0 ? void 0 : _46.button,
|
|
139
|
+
ClientId: (_47 = resp.data) === null || _47 === void 0 ? void 0 : _47.clientId,
|
|
140
|
+
ClientName: (_48 = resp.data) === null || _48 === void 0 ? void 0 : _48.clientName,
|
|
139
141
|
},
|
|
140
|
-
isUpload: ((
|
|
141
|
-
fileId: (
|
|
142
|
+
isUpload: ((_49 = resp.data) === null || _49 === void 0 ? void 0 : _49.fileId) !== '',
|
|
143
|
+
fileId: (_50 = resp.data) === null || _50 === void 0 ? void 0 : _50.fileId,
|
|
142
144
|
};
|
|
143
145
|
localStorage.setItem('telin.campaign', JSON.stringify(Object.assign(Object.assign({}, this.getCampaignStorage), {
|
|
144
146
|
generalInformation: {
|
|
145
|
-
id: (
|
|
147
|
+
id: (_51 = resp.data) === null || _51 === void 0 ? void 0 : _51.id,
|
|
146
148
|
form: generalInformation,
|
|
147
149
|
},
|
|
148
|
-
failover: (
|
|
149
|
-
targetAudience: (
|
|
150
|
+
failover: (_52 = resp.data) === null || _52 === void 0 ? void 0 : _52.failover,
|
|
151
|
+
targetAudience: (_53 = resp.data) === null || _53 === void 0 ? void 0 : _53.targets,
|
|
150
152
|
targetAudienceFile: {
|
|
151
|
-
name: (
|
|
152
|
-
targetURL: (
|
|
153
|
+
name: (_54 = resp.data) === null || _54 === void 0 ? void 0 : _54.fileName,
|
|
154
|
+
targetURL: (_55 = resp.data) === null || _55 === void 0 ? void 0 : _55.targetURL,
|
|
153
155
|
},
|
|
154
156
|
scheduler: {
|
|
155
|
-
schedulerType: ((
|
|
157
|
+
schedulerType: ((_56 = resp.data) === null || _56 === void 0 ? void 0 : _56.scheduleType) === 'MULTI'
|
|
156
158
|
? 'ONE_TIME'
|
|
157
|
-
: (
|
|
158
|
-
startDate: (
|
|
159
|
-
startTime: (
|
|
160
|
-
isRepeat: ((
|
|
161
|
-
delivery: (
|
|
159
|
+
: (_57 = resp.data) === null || _57 === void 0 ? void 0 : _57.scheduleType,
|
|
160
|
+
startDate: (_59 = (_58 = resp.data) === null || _58 === void 0 ? void 0 : _58.startTime) === null || _59 === void 0 ? void 0 : _59.split(' ')[0],
|
|
161
|
+
startTime: (_61 = (_60 = resp.data) === null || _60 === void 0 ? void 0 : _60.startTime) === null || _61 === void 0 ? void 0 : _61.split(' ')[1],
|
|
162
|
+
isRepeat: ((_62 = resp.data) === null || _62 === void 0 ? void 0 : _62.scheduleType) === 'MULTI',
|
|
163
|
+
delivery: (_63 = resp.data) === null || _63 === void 0 ? void 0 : _63.repeat,
|
|
162
164
|
},
|
|
163
165
|
})));
|
|
164
|
-
this.isLine = ((
|
|
166
|
+
this.isLine = ((_64 = resp.data) === null || _64 === void 0 ? void 0 : _64.platform) === 'LINE';
|
|
165
167
|
this.isLoading = false;
|
|
166
168
|
this.initWizard();
|
|
167
169
|
}, () => {
|
|
@@ -233,10 +235,15 @@ let NewCampaignComponent = class NewCampaignComponent {
|
|
|
233
235
|
return;
|
|
234
236
|
}
|
|
235
237
|
const bodyReq = new GeneralInformationWAReqModel().clone(Object.assign({}, this.generalInformationData));
|
|
238
|
+
const payloadValue = bodyReq.convert();
|
|
239
|
+
if (payloadValue.template && this.generalInformationData.template) {
|
|
240
|
+
payloadValue.template.type =
|
|
241
|
+
payloadValue.template.type || this.generalInformationData.template.category;
|
|
242
|
+
}
|
|
236
243
|
const parameterList = [
|
|
237
244
|
{
|
|
238
245
|
name: 'data',
|
|
239
|
-
value:
|
|
246
|
+
value: payloadValue,
|
|
240
247
|
in: 'body',
|
|
241
248
|
type: 'object',
|
|
242
249
|
withoutKeyData: true,
|
|
@@ -435,4 +442,4 @@ NewCampaignComponent = __decorate([
|
|
|
435
442
|
})
|
|
436
443
|
], NewCampaignComponent);
|
|
437
444
|
export { NewCampaignComponent };
|
|
438
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWNhbXBhaWduLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhZGxmZS9jYW1wYWlnbi1tYW5hZ2VtZW50LWxpYnJhcnkvIiwic291cmNlcyI6WyJsaWIvY2FtcGFpZ24tbWFuYWdlbWVudC9tb2R1bGVzL25ldy1jYW1wYWlnbi9uZXctY2FtcGFpZ24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5GLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUcvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNsRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsNEJBQTRCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFPakcsSUFBYSxvQkFBb0IsR0FBakMsTUFBYSxvQkFBb0I7SUF3QjdCLFlBQ1ksTUFBaUIsRUFDakIsaUJBQTJDLEVBQzNDLE1BQXFCO1FBRnJCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUEwQjtRQUMzQyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBMUJ2QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFZLENBQUM7UUFHOUMsaUJBQVksR0FBRyxRQUFRLENBQUM7UUFDeEIsbUJBQWMsR0FBVyxDQUFDLENB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Q0FBQyxDQUFDO1FBQzNELENBQUMsRUFDRCxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQ2hDLENBQUM7UUFFTixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0NBQ0osQ0FBQTs7WUF6aUJ1QixTQUFTO1lBQ0Usd0JBQXdCO1lBQ25DLGFBQWE7O0FBMUJ2QjtJQUFULE1BQU0sRUFBRTt5REFBNEM7QUFENUMsb0JBQW9CO0lBTGhDLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxrQkFBa0I7UUFDNUIsMm9KQUE0Qzs7S0FFL0MsQ0FBQztHQUNXLG9CQUFvQixDQWtrQmhDO1NBbGtCWSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNlZ21lbnRlZE1lc3NhZ2UgfSBmcm9tICdzbXMtc2VnbWVudHMtY2FsY3VsYXRvcic7XHJcbmltcG9ydCB7IE1haW5BcmVhIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9lbnVtcyc7XHJcbmltcG9ydCB7IFBhcmFtZXRlciB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxzL3V0aWwvYXBpLWFkYXB0ZXItc2VydmljZS1tb2RlbHMnO1xyXG5pbXBvcnQgeyBBcHBSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxzL3V0aWwvYXBpLWR0by9yZXNwb25zZS1tb2RlbHMnO1xyXG5pbXBvcnQgeyBBcGlBZGFwdGVyU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZ2xvYmFsL2NvbmZpcm1hdGlvbi9jb25maXJtYXRpb24nO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RlbCB9IGZyb20gJy4uLy4uLy4uL2dsb2JhbC9jb25maXJtYXRpb24vc2hhcmVkL21vZGVsJztcclxuaW1wb3J0IHsgRmFpbG92ZXJSZXFNb2RlbCwgR2VuZXJhbEluZm9ybWF0aW9uV0FSZXFNb2RlbCwgU2NoZWR1bGVyUmVxTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi1uZXctY2FtcGFpZ24nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL25ldy1jYW1wYWlnbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9uZXctY2FtcGFpZ24uY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5ld0NhbXBhaWduQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQE91dHB1dCgpIGN1cnJlbnRWaWV3ID0gbmV3IEV2ZW50RW1pdHRlcjxNYWluQXJlYT4oKTtcclxuXHJcbiAgICBwdWJsaWMgY2FtcGFpZ25JRDogc3RyaW5nO1xyXG4gICAgcHVibGljIGN1cnJlbnRWaWV3cyA9IE1haW5BcmVhO1xyXG4gICAgcHVibGljIHBvc2l0aW9uV2l6YXJkOiBudW1iZXIgPSAxO1xyXG4gICAgcHVibGljIGRhdGFXaXphcmQ6IHN0cmluZ1tdO1xyXG4gICAgcHVibGljIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGlzU3VibWl0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaXNHZW5lcmFsSW5mb3JtYXRpb25WYWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGlzRmFpbG92ZXJNZWNoYW5pc21WYWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGlzTnVtYmVyQmFzZUluZm9ybWF0aW9uVmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBpc1NjaGVkdWxlckluZm9ybWF0aW9uVmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBpc0xpbmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBnZW5lcmFsSW5mb3JtYXRpb25EYXRhOiBhbnk7XHJcbiAgICBwdWJsaWMgZmFpbG92ZXJNZWNoYW5pc21EYXRhOiBhbnk7XHJcbiAgICBwdWJsaWMgdGFyZ2V0QXVkaWVuY2VEYXRhOiBzdHJpbmdbXTtcclxuICAgIHB1YmxpYyB0YXJnZXRBdWRpZW5jZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgdGFyZ2V0QXVkaWVuY2VGaWxlOiBhbnk7XHJcbiAgICBwdWJsaWMgc2NoZWR1bGVyRGF0YTogYW55O1xyXG5cclxuICAgIHByaXZhdGUgaXNVcGxvYWRUYXJnZXRBdWRpZW5jZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVyczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgICAgIHByaXZhdGUgYXBpQWRhcHRlclNlcnZpY2U6IEFwaUFkYXB0ZXJTZXJ2aWNlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZVxyXG4gICAgKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2FtcGFpZ25JRCA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZT8uc3BsaXQoJy8nKT8ucG9wKCk7XHJcblxyXG4gICAgICAgIHRoaXMuaW5pdFdpemFyZCgpO1xyXG4gICAgICAgIHRoaXMuZ2V0Q2FtcGFpZ25EZXRhaWxTZXJ2aWNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0V2l6YXJkKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5pc0xpbmUpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRhV2l6YXJkID0gW1xyXG4gICAgICAgICAgICAgICAgJ0dlbmVyYWwgSW5mb3JtYXRpb24nLFxyXG4gICAgICAgICAgICAgICAgJ0ZhaWxvdmVyIE1lY2hhbmlzbScsXHJcbiAgICAgICAgICAgICAgICAnVGFyZ2V0IEF1ZGllbmNlJyxcclxuICAgICAgICAgICAgICAgICdTY2hlZHVsZXInLFxyXG4gICAgICAgICAgICAgICAgJ1N1bW1hcnknLFxyXG4gICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmRhdGFXaXphcmQgPSBbJ0dlbmVyYWwgSW5mb3JtYXRpb24nLCAnVGFyZ2V0IEF1ZGllbmNlJywgJ1NjaGVkdWxlcicsICdTdW1tYXJ5J107XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRDYW1wYWlnbkRldGFpbFNlcnZpY2UoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuY2FtcGFpZ25JRD8ubGVuZ3RoIDwgMTApIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICBjb25zdCBzdWJzID0gdGhpcy5hcGlBZGFwdGVyU2VydmljZVxyXG4gICAgICAgICAgICAuZXhlY3V0ZUFwaVJlcXVlc3QoW10sIGAvY2FtcGFpZ24vJHt0aGlzLmNhbXBhaWduSUR9YCwgJ0dFVCcpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAocmVzcDogQXBwUmVzcG9uc2U8YW55PikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghcmVzcCkgcmV0dXJuO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBnZW5lcmFsSW5mb3JtYXRpb24gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbXBhaWduTmFtZTogcmVzcC5kYXRhPy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtZWRpdW06IHJlc3AuZGF0YT8ucGxhdGZvcm0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWw6IFsnaW1hZ2UnLCAndmlkZW8nLCAnZG9jdW1lbnQnXS5pbmNsdWRlcyhyZXNwLmRhdGE/LnR5cGUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdNRURJQSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcmVzcC5kYXRhPy50eXBlPy50b1VwcGVyQ2FzZSgpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtZWRpYTogcmVzcC5kYXRhPy50eXBlPy50b1VwcGVyQ2FzZSgpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmcm9tOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogcmVzcC5kYXRhPy5hY2NvdW50SWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiByZXNwLmRhdGE/LmFjY291bnROYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm06IHJlc3AuZGF0YT8ucGxhdGZvcm0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJZDogcmVzcC5kYXRhPy5jbGllbnRJZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudE5hbWU6IHJlc3AuZGF0YT8uY2xpZW50TmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRObzogcmVzcC5kYXRhPy5hY2NvdW50Tm8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YWJhSWQ6IHJlc3AuZGF0YT8ud2FiYUlkID8/ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiByZXNwLmRhdGE/LmRldGFpbHM/LnRleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFVSTDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3AuZGF0YT8uZGV0YWlscz8uaW1hZ2U/LnVybCA/P1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcC5kYXRhPy5kZXRhaWxzPy5kb2N1bWVudD8udXJsID8/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwLmRhdGE/LmRldGFpbHM/LnZpZGVvPy51cmwgPz9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3AuZGF0YT8uZGV0YWlscz8udGVtcGxhdGU/LmhlYWRlclVSTCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1IZWFkZXI6IHJlc3AuZGF0YT8uZGV0YWlscz8udGVtcGxhdGU/LmhlYWRlcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1Cb2R5OiByZXNwLmRhdGE/LmRldGFpbHM/LnRlbXBsYXRlPy5kYXRhLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbUJ1dHRvbjogcmVzcC5kYXRhPy5kZXRhaWxzPy50ZW1wbGF0ZT8uYnV0dG9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvdHBWYWx1ZTogWy4uLihyZXNwLmRhdGE/LmRldGFpbHM/LnRlbXBsYXRlPy5kYXRhID8/IFtdKV0/LnBvcCgpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgSUQ6IHJlc3AuZGF0YT8uZGV0YWlscz8udGVtcGxhdGU/LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogcmVzcC5kYXRhPy5kZXRhaWxzPy50ZW1wbGF0ZT8ubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbmc6IHJlc3AuZGF0YT8uZGV0YWlscz8udGVtcGxhdGU/LmxhbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF0Zm9ybTogcmVzcC5kYXRhPy5wbGF0Zm9ybSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlclVSTDogcmVzcC5kYXRhPy5kZXRhaWxzPy50ZW1wbGF0ZT8uaGVhZGVyVVJMLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhhbXBsZXM6IHJlc3AuZGF0YT8uZGV0YWlscz8udGVtcGxhdGU/LmhlYWRlcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhhbXBsZXM6IHJlc3AuZGF0YT8uZGV0YWlscz8udGVtcGxhdGU/LmRhdGEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uczogcmVzcC5kYXRhPy5kZXRhaWxzPy50ZW1wbGF0ZT8uYnV0dG9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50SWQ6IHJlc3AuZGF0YT8uY2xpZW50SWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGllbnROYW1lOiByZXNwLmRhdGE/LmNsaWVudE5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzVXBsb2FkOiByZXNwLmRhdGE/LmZpbGVJZCAhPT0gJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVJZDogcmVzcC5kYXRhPy5maWxlSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICd0ZWxpbi5jYW1wYWlnbicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ue1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYWxJbmZvcm1hdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogcmVzcC5kYXRhPy5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybTogZ2VuZXJhbEluZm9ybWF0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbG92ZXI6IHJlc3AuZGF0YT8uZmFpbG92ZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IHJlc3AuZGF0YT8udGFyZ2V0cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRBdWRpZW5jZUZpbGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogcmVzcC5kYXRhPy5maWxlTmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VVJMOiByZXNwLmRhdGE/LnRhcmdldFVSTCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVkdWxlcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlZHVsZXJUeXBlOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcC5kYXRhPy5zY2hlZHVsZVR5cGUgPT09ICdNVUxUSSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdPTkVfVElNRSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHJlc3AuZGF0YT8uc2NoZWR1bGVUeXBlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydERhdGU6IHJlc3AuZGF0YT8uc3RhcnRUaW1lPy5zcGxpdCgnICcpWzBdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IHJlc3AuZGF0YT8uc3RhcnRUaW1lPy5zcGxpdCgnICcpWzFdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1JlcGVhdDogcmVzcC5kYXRhPy5zY2hlZHVsZVR5cGUgPT09ICdNVUxUSScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGl2ZXJ5OiByZXNwLmRhdGE/LnJlcGVhdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTGluZSA9IHJlc3AuZGF0YT8ucGxhdGZvcm0gPT09ICdMSU5FJztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRXaXphcmQoKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVycy5wdXNoKHN1YnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZW5lcmFsSW5mb3JtYXRpb24oZm9ybTogeyBwYXJlbnQ6IEZvcm1Hcm91cDsgY2hpbGQ6IEZvcm1Hcm91cCB9KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0dlbmVyYWxJbmZvcm1hdGlvblZhbGlkID0gZm9ybS5wYXJlbnQudmFsaWQgJiYgZm9ybS5jaGlsZCAmJiBmb3JtLmNoaWxkPy52YWxpZDtcclxuICAgICAgICB0aGlzLmlzTGluZSA9IGZvcm0ucGFyZW50Py5nZXRSYXdWYWx1ZSgpPy5tZWRpdW0gPT09ICdMSU5FJztcclxuXHJcbiAgICAgICAgdGhpcy5pbml0V2l6YXJkKCk7XHJcblxyXG4gICAgICAgIGlmIChmb3JtLnBhcmVudCAmJiBmb3JtLmNoaWxkKVxyXG4gICAgICAgICAgICB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAuLi5mb3JtLnBhcmVudC5nZXRSYXdWYWx1ZSgpLFxyXG4gICAgICAgICAgICAgICAgLi4uZm9ybS5jaGlsZC5nZXRSYXdWYWx1ZSgpLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBmYWlsb3Zlck1lY2hhbmlzbShmb3JtOiBGb3JtR3JvdXApOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlzRmFpbG92ZXJNZWNoYW5pc21WYWxpZCA9IGZvcm0udmFsaWQ7XHJcbiAgICAgICAgdGhpcy5mYWlsb3Zlck1lY2hhbmlzbURhdGEgPSBmb3JtLmdldFJhd1ZhbHVlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHRhcmdldEF1ZGllbmNlKHRhcmdldDoge1xyXG4gICAgICAgIHRhcmdldEF1ZGllbmNlOiBzdHJpbmdbXTtcclxuICAgICAgICBudW1iZXJDb3VudDogbnVtYmVyO1xyXG4gICAgICAgIGlzVXBsb2FkOiBib29sZWFuO1xyXG4gICAgICAgIGZpbGU6IGFueTtcclxuICAgIH0pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlRmlsZSA9IHRhcmdldC5maWxlO1xyXG4gICAgICAgIHRoaXMudGFyZ2V0QXVkaWVuY2VEYXRhID0gdGFyZ2V0LnRhcmdldEF1ZGllbmNlO1xyXG4gICAgICAgIHRoaXMudGFyZ2V0QXVkaWVuY2VDb3VudCA9IHRhcmdldC5udW1iZXJDb3VudDtcclxuICAgICAgICB0aGlzLmlzVXBsb2FkVGFyZ2V0QXVkaWVuY2UgPSB0YXJnZXQuaXNVcGxvYWQ7XHJcbiAgICAgICAgdGhpcy5pc051bWJlckJhc2VJbmZvcm1hdGlvblZhbGlkID1cclxuICAgICAgICAgICAgKHRhcmdldC5pc1VwbG9hZCAmJiB0YXJnZXQuZmlsZT8ubmFtZSkgfHxcclxuICAgICAgICAgICAgKCF0YXJnZXQuaXNVcGxvYWQgJiYgdGFyZ2V0LnRhcmdldEF1ZGllbmNlLmxlbmd0aCA+IDApIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy5nZW5lcmFsSW5mb3JtYXRpb24/LmZvcm0/LmZpbGVJZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2NoZWR1bGVyKGZvcm06IEZvcm1Hcm91cCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVyRGF0YSA9IGZvcm0uZ2V0UmF3VmFsdWUoKTtcclxuICAgICAgICB0aGlzLmlzU2NoZWR1bGVySW5mb3JtYXRpb25WYWxpZCA9IGZvcm0udmFsaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uQ2xpY2tTYXZlQW5kTmV4dEJ1dHRvbigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlzU3VibWl0ID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgc3dpdGNoICh0aGlzLnBvc2l0aW9uV2l6YXJkKSB7XHJcbiAgICAgICAgICAgIGNhc2UgMTpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2F2ZUdlbmVyYWxJbmZvcm1hdGlvblNlcnZpY2UoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDI6XHJcbiAgICAgICAgICAgICAgICAhdGhpcy5pc0xpbmUgPyB0aGlzLnNhdmVGYWlsb3Zlck1lY2hhbmlzbVNlcnZpY2UoKSA6IHRoaXMuc2F2ZU51bWJlckJhc2VzU2VydmljZSgpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgMzpcclxuICAgICAgICAgICAgICAgICF0aGlzLmlzTGluZSA/IHRoaXMuc2F2ZU51bWJlckJhc2VzU2VydmljZSgpIDogdGhpcy5zYXZlU2NoZWR1bGVyU2VydmljZSgpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgNDpcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc0xpbmUpIHRoaXMuc2F2ZVNjaGVkdWxlclNlcnZpY2UoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgdGhpcy5pc1N1Ym1pdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldCBnZXRDYW1wYWlnblN0b3JhZ2UoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3RlbGluLmNhbXBhaWduJylcclxuICAgICAgICAgICAgPyBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0ZWxpbi5jYW1wYWlnbicpKVxyXG4gICAgICAgICAgICA6IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBnZXRCb2R5KCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgYm9keSA9XHJcbiAgICAgICAgICAgIHRoaXMuZ2VuZXJhbEluZm9ybWF0aW9uRGF0YT8udGV4dCB8fFxyXG4gICAgICAgICAgICB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkRhdGE/LnRlbXBsYXRlPy5ib2R5Py50ZXh0IHx8XHJcbiAgICAgICAgICAgIHRoaXMuZ2VuZXJhbEluZm9ybWF0aW9uRGF0YT8uYm9keT8udGV4dDtcclxuXHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgYm9keVxyXG4gICAgICAgICAgICAgICAgPy5zcGxpdCgvXFxcXG58XFxuLylcclxuICAgICAgICAgICAgICAgIC5qb2luKCc8YnIgLz4nKVxyXG4gICAgICAgICAgICAgICAgLnNwbGl0KC9cXFxcdHxcXHQvKVxyXG4gICAgICAgICAgICAgICAgLmpvaW4oJyAgICAnKSA/PyAnJ1xyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uQ2hlY2tUd2lsaW9Db3VudGVyVmFsaWQgPSAoKTogYm9vbGVhbiA9PiB7XHJcbiAgICAgICAgY29uc3QgdmFsdWVzR2VuZXJhbCA9IHRoaXMuZ2VuZXJhbEluZm9ybWF0aW9uRGF0YTtcclxuXHJcbiAgICAgICAgaWYgKHZhbHVlc0dlbmVyYWw/Lm1lZGl1bSAhPT0gJ1NNUycpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodmFsdWVzR2VuZXJhbD8uY2hhbm5lbCA9PT0gJ1RFWFQnKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlZ21lbnRlZE1lc3NhZ2UgPSBuZXcgU2VnbWVudGVkTWVzc2FnZSh0aGlzLmdldEJvZHkpO1xyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB7XHJcbiAgICAgICAgICAgICAgICBzZWdtZW50czogc2VnbWVudGVkTWVzc2FnZS5zZWdtZW50c0NvdW50LFxyXG4gICAgICAgICAgICAgICAgZW5jb2Rpbmc6IHNlZ21lbnRlZE1lc3NhZ2UuZW5jb2RpbmdOYW1lLFxyXG4gICAgICAgICAgICAgICAgY2hhcmFjdGVyczogc2VnbWVudGVkTWVzc2FnZS5udW1iZXJPZlVuaWNvZGVTY2FsYXJzLFxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgaWYgKHJlc3VsdC5zZWdtZW50cyA+IDEwKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCB2YWx1ZVJlc3VsdCA9IHRoaXMuZ2V0Qm9keTtcclxuICAgICAgICAgICAgQXJyYXkuZnJvbSh2YWx1ZXNHZW5lcmFsLnRlbXBsYXRlPy5ib2R5Py5leGFtcGxlcyB8fCBbXSkubWFwKChlbnRyeSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZXNHZW5lcmFsLnBhcmFtQm9keS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGxhY2Vob2xkZXIgPSBge3ske2VudHJ5fX19YDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlc0dlbmVyYWwucGFyYW1Cb2R5W2luZGV4XS5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlUmVzdWx0ID0gdmFsdWVSZXN1bHQuc3BsaXQocGxhY2Vob2xkZXIpLmpvaW4odmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHNlZ21lbnRlZE1lc3NhZ2UgPSBuZXcgU2VnbWVudGVkTWVzc2FnZSh2YWx1ZVJlc3VsdCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHtcclxuICAgICAgICAgICAgICAgIHNlZ21lbnRzOiBzZWdtZW50ZWRNZXNzYWdlLnNlZ21lbnRzQ291bnQsXHJcbiAgICAgICAgICAgICAgICBlbmNvZGluZzogc2VnbWVudGVkTWVzc2FnZS5lbmNvZGluZ05hbWUsXHJcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJzOiBzZWdtZW50ZWRNZXNzYWdlLm51bWJlck9mVW5pY29kZVNjYWxhcnMsXHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBpZiAocmVzdWx0LnNlZ21lbnRzID4gMTApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBwcml2YXRlIHNhdmVHZW5lcmFsSW5mb3JtYXRpb25TZXJ2aWNlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5vbkNoZWNrVHdpbGlvQ291bnRlclZhbGlkKCkpIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ1NlZ21lbnQgY2Fubm90IG1vcmUgdGhhbiAxMCcpO1xyXG4gICAgICAgICAgICB0aGlzLmlzU3VibWl0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGJvZHlSZXEgPSBuZXcgR2VuZXJhbEluZm9ybWF0aW9uV0FSZXFNb2RlbCgpLmNsb25lKHtcclxuICAgICAgICAgICAgLi4udGhpcy5nZW5lcmFsSW5mb3JtYXRpb25EYXRhLFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjb25zdCBwYXJhbWV0ZXJMaXN0OiBBcnJheTxQYXJhbWV0ZXI+ID0gW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnZGF0YScsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogYm9keVJlcS5jb252ZXJ0KCksXHJcbiAgICAgICAgICAgICAgICBpbjogJ2JvZHknLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXHJcbiAgICAgICAgICAgICAgICB3aXRob3V0S2V5RGF0YTogdHJ1ZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICBjb25zdCBzdWJzID0gdGhpcy5hcGlBZGFwdGVyU2VydmljZVxyXG4gICAgICAgICAgICAuZXhlY3V0ZUFwaVJlcXVlc3QoXHJcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJMaXN0LFxyXG4gICAgICAgICAgICAgICAgdGhpcy5nZW5lcmFsSW5mb3JtYXRpb25EYXRhLmlkXHJcbiAgICAgICAgICAgICAgICAgICAgPyBgL2NhbXBhaWduLyR7dGhpcy5nZW5lcmFsSW5mb3JtYXRpb25EYXRhLmlkfWBcclxuICAgICAgICAgICAgICAgICAgICA6ICcvY2FtcGFpZ24nLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5nZW5lcmFsSW5mb3JtYXRpb25EYXRhLmlkID8gJ1BVVCcgOiAnUE9TVCdcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcD8ubWVzc2FnZT8udG9Mb3dlckNhc2UoKSAhPT0gJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTdWJtaXQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICd0ZWxpbi5jYW1wYWlnbicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ue1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYWxJbmZvcm1hdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogcmVzcC5kYXRhLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtOiB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkRhdGEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1N1Ym1pdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb25XaXphcmQgKz0gMTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAoKSA9PiAodGhpcy5pc1N1Ym1pdCA9IGZhbHNlKVxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmliZXJzLnB1c2goc3Vicyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzYXZlRmFpbG92ZXJNZWNoYW5pc21TZXJ2aWNlKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGJvZHlSZXEgPSBuZXcgRmFpbG92ZXJSZXFNb2RlbCgpLmNsb25lKHtcclxuICAgICAgICAgICAgLi4udGhpcy5mYWlsb3Zlck1lY2hhbmlzbURhdGEsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHBhcmFtZXRlckxpc3Q6IEFycmF5PFBhcmFtZXRlcj4gPSBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIG5hbWU6ICdkYXRhJyxcclxuICAgICAgICAgICAgICAgIHZhbHVlOiBib2R5UmVxLmNvbnZlcnQoKSxcclxuICAgICAgICAgICAgICAgIGluOiAnYm9keScsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcclxuICAgICAgICAgICAgICAgIHdpdGhvdXRLZXlEYXRhOiB0cnVlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGNvbnN0IHN1YnMgPSB0aGlzLmFwaUFkYXB0ZXJTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5leGVjdXRlQXBpUmVxdWVzdChcclxuICAgICAgICAgICAgICAgIHBhcmFtZXRlckxpc3QsXHJcbiAgICAgICAgICAgICAgICBgL2NhbXBhaWduLyR7dGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LmdlbmVyYWxJbmZvcm1hdGlvbj8uaWR9L2ZhaWxvdmVyYCxcclxuICAgICAgICAgICAgICAgICdQT1NUJ1xyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwPy5tZXNzYWdlPy50b0xvd2VyQ2FzZSgpICE9PSAnc3VjY2VzcycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1N1Ym1pdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3RlbGluLmNhbXBhaWduJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5nZXRDYW1wYWlnblN0b3JhZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbG92ZXI6IHRoaXMuZmFpbG92ZXJNZWNoYW5pc21EYXRhLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU3VibWl0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbldpemFyZCArPSAxO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICgpID0+ICh0aGlzLmlzU3VibWl0ID0gZmFsc2UpXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlcnMucHVzaChzdWJzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNhdmVOdW1iZXJCYXNlc1NlcnZpY2UoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMudGFyZ2V0QXVkaWVuY2VEYXRhLmxlbmd0aCA9PT0gMCB8fCB0aGlzLmlzVXBsb2FkVGFyZ2V0QXVkaWVuY2UpIHtcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgICAgICAgICAgICAndGVsaW4uY2FtcGFpZ24nLFxyXG4gICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgIC4uLntcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IHRoaXMudGFyZ2V0QXVkaWVuY2VEYXRhLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRBdWRpZW5jZUNvdW50OiB0aGlzLnRhcmdldEF1ZGllbmNlQ291bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldEF1ZGllbmNlRmlsZTogdGhpcy50YXJnZXRBdWRpZW5jZUZpbGUsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmlzU3VibWl0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25XaXphcmQgKz0gMTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVyTGlzdDogQXJyYXk8UGFyYW1ldGVyPiA9IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogJ2RhdGEnLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IHtcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRzOiB0aGlzLnRhcmdldEF1ZGllbmNlRGF0YSxcclxuICAgICAgICAgICAgICAgICAgICBudW1iZXJDb3VudDogdGhpcy50YXJnZXRBdWRpZW5jZUNvdW50LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGluOiAnYm9keScsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcclxuICAgICAgICAgICAgICAgIHdpdGhvdXRLZXlEYXRhOiB0cnVlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGNvbnN0IHN1YnMgPSB0aGlzLmFwaUFkYXB0ZXJTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5leGVjdXRlQXBpUmVxdWVzdChcclxuICAgICAgICAgICAgICAgIHBhcmFtZXRlckxpc3QsXHJcbiAgICAgICAgICAgICAgICBgL2NhbXBhaWduLyR7dGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LmdlbmVyYWxJbmZvcm1hdGlvbj8uaWR9L3RhcmdldGNhdGVnb3J5YCxcclxuICAgICAgICAgICAgICAgICdQT1NUJ1xyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwPy5tZXNzYWdlPy50b0xvd2VyQ2FzZSgpICE9PSAnc3VjY2VzcycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1N1Ym1pdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3RlbGluLmNhbXBhaWduJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5nZXRDYW1wYWlnblN0b3JhZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IHRoaXMudGFyZ2V0QXVkaWVuY2VEYXRhLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldEF1ZGllbmNlQ291bnQ6IHRoaXMudGFyZ2V0QXVkaWVuY2VDb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRBdWRpZW5jZUZpbGU6IHRoaXMudGFyZ2V0QXVkaWVuY2VGaWxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU3VibWl0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbldpemFyZCArPSAxO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICgpID0+ICh0aGlzLmlzU3VibWl0ID0gZmFsc2UpXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlcnMucHVzaChzdWJzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNhdmVTY2hlZHVsZXJTZXJ2aWNlKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGJvZHlSZXEgPSBuZXcgU2NoZWR1bGVyUmVxTW9kZWwoKS5jbG9uZSh7XHJcbiAgICAgICAgICAgIC4uLnRoaXMuc2NoZWR1bGVyRGF0YSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVyTGlzdDogQXJyYXk8UGFyYW1ldGVyPiA9IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogJ2RhdGEnLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IGJvZHlSZXEuY29udmVydCgpLFxyXG4gICAgICAgICAgICAgICAgaW46ICdib2R5JyxcclxuICAgICAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxyXG4gICAgICAgICAgICAgICAgd2l0aG91dEtleURhdGE6IHRydWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgY29uc3Qgc3VicyA9IHRoaXMuYXBpQWRhcHRlclNlcnZpY2VcclxuICAgICAgICAgICAgLmV4ZWN1dGVBcGlSZXF1ZXN0KFxyXG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyTGlzdCxcclxuICAgICAgICAgICAgICAgIGAvY2FtcGFpZ24vJHt0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5pZH0vc2NoZWR1bGVgLFxyXG4gICAgICAgICAgICAgICAgJ1BPU1QnXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3A/Lm1lc3NhZ2U/LnRvTG93ZXJDYXNlKCkgIT09ICdzdWNjZXNzJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU3VibWl0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAndGVsaW4uY2FtcGFpZ24nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmdldENhbXBhaWduU3RvcmFnZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlZHVsZXI6IHRoaXMuc2NoZWR1bGVyRGF0YSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1N1Ym1pdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb25XaXphcmQgKz0gMTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAoKSA9PiAodGhpcy5pc1N1Ym1pdCA9IGZhbHNlKVxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmliZXJzLnB1c2goc3Vicyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uUHJldmlvdXMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5wb3NpdGlvbldpemFyZCAtPSAxO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjaGFuZ2VDdXJyZW50VmlldyhhcmVhOiBNYWluQXJlYSkge1xyXG4gICAgICAgIHRoaXMub3BlbkNvbmZpcm1hdGlvbkRpYWxvZyhhcmVhKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG9wZW5Db25maXJtYXRpb25EaWFsb2coYXJlYTogTWFpbkFyZWEpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBjb25maXJtYXRpb24gPSBuZXcgQ29uZmlybWF0aW9uTW9kZWwoKTtcclxuXHJcbiAgICAgICAgY29uZmlybWF0aW9uLnRpdGxlID0gJ0NhbmNlbCBBZGQgQnJvYWRjYXN0JztcclxuICAgICAgICBjb25maXJtYXRpb24uY29udGVudCA9IGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY2FuY2VsPGJyLz4gQWRkIEJyb2FkY2FzdD9gO1xyXG4gICAgICAgIGNvbmZpcm1hdGlvbi5idG5TdWJtaXRSZWQgPSAnWWVzJztcclxuICAgICAgICBjb25maXJtYXRpb24uYnRuQ2FuY2VsID0gJ05vJztcclxuXHJcbiAgICAgICAgY29uc3Qgc3VicyA9IHRoaXMuZGlhbG9nXHJcbiAgICAgICAgICAgIC5vcGVuKENvbmZpcm1hdGlvbkNvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdvdmVybGF5LWJhY2tkcm9wLWRpYWxvZycsXHJcbiAgICAgICAgICAgICAgICBkYXRhOiBjb25maXJtYXRpb24sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXNwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7fSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYC8ke3RoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy5nZW5lcmFsSW5mb3JtYXRpb24/LmlkfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICcvc2VjdXJlL2NhbXBhaWduJ1xyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFZpZXcuZW1pdChhcmVhKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlcnMucHVzaChzdWJzKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25TdWJtaXRGb3JBcHByb3ZhbCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBwYXJhbWV0ZXJMaXN0OiBBcnJheTxQYXJhbWV0ZXI+ID0gW107XHJcbiAgICAgICAgdGhpcy5pc1N1Ym1pdCA9IHRydWU7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy5uYW1lKVxyXG4gICAgICAgICAgICBwYXJhbWV0ZXJMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogJ2lzRmlsZScsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGluOiAncXVlcnknLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjb25zdCBzdWJzID0gdGhpcy5hcGlBZGFwdGVyU2VydmljZVxyXG4gICAgICAgICAgICAuZXhlY3V0ZUFwaVJlcXVlc3QoXHJcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJMaXN0LFxyXG4gICAgICAgICAgICAgICAgYC9jYW1wYWlnbi8ke3RoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy5nZW5lcmFsSW5mb3JtYXRpb24/LmlkfS9zdWJtaXRgLFxyXG4gICAgICAgICAgICAgICAgJ1BPU1QnXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3A/Lm1lc3NhZ2U/LnRvTG93ZXJDYXNlKCkgIT09ICdzdWNjZXNzJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU3VibWl0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShcclxuICAgICAgICAgICAgICAgICAgICAgICAge30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGAvJHt0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5pZH1gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnL3NlY3VyZS9jYW1wYWlnbidcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5zdWNjZXNzKCdDYW1wYWlnbiBzdWJtaXR0ZWQgZm9yIGFwcHJvdmFsIScpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTdWJtaXQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRWaWV3LmVtaXQodGhpcy5jdXJyZW50Vmlld3MuQ2FtcGFpZ25JbmRleCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKCkgPT4gKHRoaXMuaXNTdWJtaXQgPSBmYWxzZSlcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVycy5wdXNoKHN1YnMpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlcnMuZm9yRWFjaCgoZWFjaCkgPT4gZWFjaC51bnN1YnNjcmliZSgpKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
445
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWNhbXBhaWduLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhZGxmZS9jYW1wYWlnbi1tYW5hZ2VtZW50LWxpYnJhcnkvIiwic291cmNlcyI6WyJsaWIvY2FtcGFpZ24tbWFuYWdlbWVudC9tb2R1bGVzL25ldy1jYW1wYWlnbi9uZXctY2FtcGFpZ24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5GLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUcvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNsRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsNEJBQTRCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFPakcsSUFBYSxvQkFBb0IsR0FBakMsTUFBYSxvQkFBb0I7SUF3QjdCLFlBQ1ksTUFBaUIsRUFDakIsaUJBQTJDLEVBQzNDLE1BQXFCO1FBRnJCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUEwQjtRQUMzQyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBMUJ2QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFZLENBQUM7UUFHOUMsaUJBQVksR0FBRyxRQUFRLENBQUM7UUFDeEIsbUJBQWMsR0FBVyxDQUFDLENB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QUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztnQkFDdEIsT0FBTzthQUNWO1lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQ3ZCLEVBQUUsRUFDRixJQUFJLFlBQUEsSUFBSSxDQUFDLGtCQUFrQiwwQ0FBRSxrQkFBa0IsMENBQUUsRUFBRSxFQUFFLEVBQ3JELGtCQUFrQixDQUNyQixDQUFDO1lBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsa0NBQWtDLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNELENBQUMsRUFDRCxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQ2hDLENBQUM7UUFFTixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0NBQ0osQ0FBQTs7WUFsakJ1QixTQUFTO1lBQ0Usd0JBQXdCO1lBQ25DLGFBQWE7O0FBMUJ2QjtJQUFULE1BQU0sRUFBRTt5REFBNEM7QUFENUMsb0JBQW9CO0lBTGhDLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxrQkFBa0I7UUFDNUIsMm9KQUE0Qzs7S0FFL0MsQ0FBQztHQUNXLG9CQUFvQixDQTJrQmhDO1NBM2tCWSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNlZ21lbnRlZE1lc3NhZ2UgfSBmcm9tICdzbXMtc2VnbWVudHMtY2FsY3VsYXRvcic7XHJcbmltcG9ydCB7IE1haW5BcmVhIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9lbnVtcyc7XHJcbmltcG9ydCB7IFBhcmFtZXRlciB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxzL3V0aWwvYXBpLWFkYXB0ZXItc2VydmljZS1tb2RlbHMnO1xyXG5pbXBvcnQgeyBBcHBSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxzL3V0aWwvYXBpLWR0by9yZXNwb25zZS1tb2RlbHMnO1xyXG5pbXBvcnQgeyBBcGlBZGFwdGVyU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZ2xvYmFsL2NvbmZpcm1hdGlvbi9jb25maXJtYXRpb24nO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RlbCB9IGZyb20gJy4uLy4uLy4uL2dsb2JhbC9jb25maXJtYXRpb24vc2hhcmVkL21vZGVsJztcclxuaW1wb3J0IHsgRmFpbG92ZXJSZXFNb2RlbCwgR2VuZXJhbEluZm9ybWF0aW9uV0FSZXFNb2RlbCwgU2NoZWR1bGVyUmVxTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi1uZXctY2FtcGFpZ24nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL25ldy1jYW1wYWlnbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9uZXctY2FtcGFpZ24uY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5ld0NhbXBhaWduQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQE91dHB1dCgpIGN1cnJlbnRWaWV3ID0gbmV3IEV2ZW50RW1pdHRlcjxNYWluQXJlYT4oKTtcclxuXHJcbiAgICBwdWJsaWMgY2FtcGFpZ25JRDogc3RyaW5nO1xyXG4gICAgcHVibGljIGN1cnJlbnRWaWV3cyA9IE1haW5BcmVhO1xyXG4gICAgcHVibGljIHBvc2l0aW9uV2l6YXJkOiBudW1iZXIgPSAxO1xyXG4gICAgcHVibGljIGRhdGFXaXphcmQ6IHN0cmluZ1tdO1xyXG4gICAgcHVibGljIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGlzU3VibWl0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaXNHZW5lcmFsSW5mb3JtYXRpb25WYWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGlzRmFpbG92ZXJNZWNoYW5pc21WYWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGlzTnVtYmVyQmFzZUluZm9ybWF0aW9uVmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBpc1NjaGVkdWxlckluZm9ybWF0aW9uVmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBpc0xpbmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBnZW5lcmFsSW5mb3JtYXRpb25EYXRhOiBhbnk7XHJcbiAgICBwdWJsaWMgZmFpbG92ZXJNZWNoYW5pc21EYXRhOiBhbnk7XHJcbiAgICBwdWJsaWMgdGFyZ2V0QXVkaWVuY2VEYXRhOiBzdHJpbmdbXTtcclxuICAgIHB1YmxpYyB0YXJnZXRBdWRpZW5jZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgdGFyZ2V0QXVkaWVuY2VGaWxlOiBhbnk7XHJcbiAgICBwdWJsaWMgc2NoZWR1bGVyRGF0YTogYW55O1xyXG5cclxuICAgIHByaXZhdGUgaXNVcGxvYWRUYXJnZXRBdWRpZW5jZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVyczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgICAgIHByaXZhdGUgYXBpQWRhcHRlclNlcnZpY2U6IEFwaUFkYXB0ZXJTZXJ2aWNlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZVxyXG4gICAgKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2FtcGFpZ25JRCA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZT8uc3BsaXQoJy8nKT8ucG9wKCk7XHJcblxyXG4gICAgICAgIHRoaXMuaW5pdFdpemFyZCgpO1xyXG4gICAgICAgIHRoaXMuZ2V0Q2FtcGFpZ25EZXRhaWxTZXJ2aWNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0V2l6YXJkKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5pc0xpbmUpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRhV2l6YXJkID0gW1xyXG4gICAgICAgICAgICAgICAgJ0dlbmVyYWwgSW5mb3JtYXRpb24nLFxyXG4gICAgICAgICAgICAgICAgJ0ZhaWxvdmVyIE1lY2hhbmlzbScsXHJcbiAgICAgICAgICAgICAgICAnVGFyZ2V0IEF1ZGllbmNlJyxcclxuICAgICAgICAgICAgICAgICdTY2hlZHVsZXInLFxyXG4gICAgICAgICAgICAgICAgJ1N1bW1hcnknLFxyXG4gICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmRhdGFXaXphcmQgPSBbJ0dlbmVyYWwgSW5mb3JtYXRpb24nLCAnVGFyZ2V0IEF1ZGllbmNlJywgJ1NjaGVkdWxlcicsICdTdW1tYXJ5J107XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRDYW1wYWlnbkRldGFpbFNlcnZpY2UoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuY2FtcGFpZ25JRD8ubGVuZ3RoIDwgMTApIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICBjb25zdCBzdWJzID0gdGhpcy5hcGlBZGFwdGVyU2VydmljZVxyXG4gICAgICAgICAgICAuZXhlY3V0ZUFwaVJlcXVlc3QoW10sIGAvY2FtcGFpZ24vJHt0aGlzLmNhbXBhaWduSUR9YCwgJ0dFVCcpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAocmVzcDogQXBwUmVzcG9uc2U8YW55PikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghcmVzcCkgcmV0dXJuO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBnZW5lcmFsSW5mb3JtYXRpb24gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbXBhaWduTmFtZTogcmVzcC5kYXRhPy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtZWRpdW06IHJlc3AuZGF0YT8ucGxhdGZvcm0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWw6IFsnaW1hZ2UnLCAndmlkZW8nLCAnZG9jdW1lbnQnXS5pbmNsdWRlcyhyZXNwLmRhdGE/LnR5cGUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdNRURJQSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcmVzcC5kYXRhPy5pc0RpcmVjdFNlbmRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAndXRpbGl0eSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiByZXNwLmRhdGE/LnR5cGU/LnRvVXBwZXJDYXNlKCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lZGlhOiByZXNwLmRhdGE/LnR5cGU/LnRvVXBwZXJDYXNlKCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzUHJldlRlbXBsYXRlOiByZXNwPy5kYXRhPy5pc1ByZXZUZW1wbGF0ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZnJvbToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHJlc3AuZGF0YT8uYWNjb3VudElkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogcmVzcC5kYXRhPy5hY2NvdW50TmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXRmb3JtOiByZXNwLmRhdGE/LnBsYXRmb3JtLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50SWQ6IHJlc3AuZGF0YT8uY2xpZW50SWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnROYW1lOiByZXNwLmRhdGE/LmNsaWVudE5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50Tm86IHJlc3AuZGF0YT8uYWNjb3VudE5vLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FiYUlkOiByZXNwLmRhdGE/LndhYmFJZCA/PyAnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogcmVzcC5kYXRhPy5kZXRhaWxzPy50ZXh0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRVUkw6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwLmRhdGE/LmRldGFpbHM/LmltYWdlPy51cmwgPz9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3AuZGF0YT8uZGV0YWlscz8uZG9jdW1lbnQ/LnVybCA/P1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcC5kYXRhPy5kZXRhaWxzPy52aWRlbz8udXJsID8/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwLmRhdGE/LmRldGFpbHM/LnRlbXBsYXRlPy5oZWFkZXJVUkwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtSGVhZGVyOiByZXNwLmRhdGE/LmRldGFpbHM/LnRlbXBsYXRlPy5oZWFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtQm9keTogcmVzcC5kYXRhPy5kZXRhaWxzPy50ZW1wbGF0ZT8uZGF0YSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1CdXR0b246IHJlc3AuZGF0YT8uZGV0YWlscz8udGVtcGxhdGU/LmJ1dHRvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3RwVmFsdWU6IFsuLi4ocmVzcC5kYXRhPy5kZXRhaWxzPy50ZW1wbGF0ZT8uZGF0YSA/PyBbXSldPy5wb3AoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIElEOiByZXNwLmRhdGE/LmRldGFpbHM/LnRlbXBsYXRlPy5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHJlc3AuZGF0YT8uZGV0YWlscz8udGVtcGxhdGU/Lm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5nOiByZXNwLmRhdGE/LmRldGFpbHM/LnRlbXBsYXRlPy5sYW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm06IHJlc3AuZGF0YT8ucGxhdGZvcm0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJVUkw6IHJlc3AuZGF0YT8uZGV0YWlscz8udGVtcGxhdGU/LmhlYWRlclVSTCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4YW1wbGVzOiByZXNwLmRhdGE/LmRldGFpbHM/LnRlbXBsYXRlPy5oZWFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4YW1wbGVzOiByZXNwLmRhdGE/LmRldGFpbHM/LnRlbXBsYXRlPy5kYXRhLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnM6IHJlc3AuZGF0YT8uZGV0YWlscz8udGVtcGxhdGU/LmJ1dHRvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudElkOiByZXNwLmRhdGE/LmNsaWVudElkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50TmFtZTogcmVzcC5kYXRhPy5jbGllbnROYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1VwbG9hZDogcmVzcC5kYXRhPy5maWxlSWQgIT09ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlSWQ6IHJlc3AuZGF0YT8uZmlsZUlkLFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAndGVsaW4uY2FtcGFpZ24nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmdldENhbXBhaWduU3RvcmFnZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmFsSW5mb3JtYXRpb246IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHJlc3AuZGF0YT8uaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm06IGdlbmVyYWxJbmZvcm1hdGlvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWxvdmVyOiByZXNwLmRhdGE/LmZhaWxvdmVyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldEF1ZGllbmNlOiByZXNwLmRhdGE/LnRhcmdldHMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2VGaWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHJlc3AuZGF0YT8uZmlsZU5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFVSTDogcmVzcC5kYXRhPy50YXJnZXRVUkwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlZHVsZXI6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZWR1bGVyVHlwZTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3AuZGF0YT8uc2NoZWR1bGVUeXBlID09PSAnTVVMVEknXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnT05FX1RJTUUnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiByZXNwLmRhdGE/LnNjaGVkdWxlVHlwZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnREYXRlOiByZXNwLmRhdGE/LnN0YXJ0VGltZT8uc3BsaXQoJyAnKVswXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lOiByZXNwLmRhdGE/LnN0YXJ0VGltZT8uc3BsaXQoJyAnKVsxXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNSZXBlYXQ6IHJlc3AuZGF0YT8uc2NoZWR1bGVUeXBlID09PSAnTVVMVEknLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxpdmVyeTogcmVzcC5kYXRhPy5yZXBlYXQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xpbmUgPSByZXNwLmRhdGE/LnBsYXRmb3JtID09PSAnTElORSc7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0V2l6YXJkKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlcnMucHVzaChzdWJzKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2VuZXJhbEluZm9ybWF0aW9uKGZvcm06IHsgcGFyZW50OiBGb3JtR3JvdXA7IGNoaWxkOiBGb3JtR3JvdXAgfSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNHZW5lcmFsSW5mb3JtYXRpb25WYWxpZCA9IGZvcm0ucGFyZW50LnZhbGlkICYmIGZvcm0uY2hpbGQgJiYgZm9ybS5jaGlsZD8udmFsaWQ7XHJcbiAgICAgICAgdGhpcy5pc0xpbmUgPSBmb3JtLnBhcmVudD8uZ2V0UmF3VmFsdWUoKT8ubWVkaXVtID09PSAnTElORSc7XHJcblxyXG4gICAgICAgIHRoaXMuaW5pdFdpemFyZCgpO1xyXG5cclxuICAgICAgICBpZiAoZm9ybS5wYXJlbnQgJiYgZm9ybS5jaGlsZClcclxuICAgICAgICAgICAgdGhpcy5nZW5lcmFsSW5mb3JtYXRpb25EYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgLi4uZm9ybS5wYXJlbnQuZ2V0UmF3VmFsdWUoKSxcclxuICAgICAgICAgICAgICAgIC4uLmZvcm0uY2hpbGQuZ2V0UmF3VmFsdWUoKSxcclxuICAgICAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZmFpbG92ZXJNZWNoYW5pc20oZm9ybTogRm9ybUdyb3VwKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0ZhaWxvdmVyTWVjaGFuaXNtVmFsaWQgPSBmb3JtLnZhbGlkO1xyXG4gICAgICAgIHRoaXMuZmFpbG92ZXJNZWNoYW5pc21EYXRhID0gZm9ybS5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0YXJnZXRBdWRpZW5jZSh0YXJnZXQ6IHtcclxuICAgICAgICB0YXJnZXRBdWRpZW5jZTogc3RyaW5nW107XHJcbiAgICAgICAgbnVtYmVyQ291bnQ6IG51bWJlcjtcclxuICAgICAgICBpc1VwbG9hZDogYm9vbGVhbjtcclxuICAgICAgICBmaWxlOiBhbnk7XHJcbiAgICB9KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50YXJnZXRBdWRpZW5jZUZpbGUgPSB0YXJnZXQuZmlsZTtcclxuICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlRGF0YSA9IHRhcmdldC50YXJnZXRBdWRpZW5jZTtcclxuICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlQ291bnQgPSB0YXJnZXQubnVtYmVyQ291bnQ7XHJcbiAgICAgICAgdGhpcy5pc1VwbG9hZFRhcmdldEF1ZGllbmNlID0gdGFyZ2V0LmlzVXBsb2FkO1xyXG4gICAgICAgIHRoaXMuaXNOdW1iZXJCYXNlSW5mb3JtYXRpb25WYWxpZCA9XHJcbiAgICAgICAgICAgICh0YXJnZXQuaXNVcGxvYWQgJiYgdGFyZ2V0LmZpbGU/Lm5hbWUpIHx8XHJcbiAgICAgICAgICAgICghdGFyZ2V0LmlzVXBsb2FkICYmIHRhcmdldC50YXJnZXRBdWRpZW5jZS5sZW5ndGggPiAwKSB8fFxyXG4gICAgICAgICAgICB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5mb3JtPy5maWxlSWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNjaGVkdWxlcihmb3JtOiBGb3JtR3JvdXApOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlckRhdGEgPSBmb3JtLmdldFJhd1ZhbHVlKCk7XHJcbiAgICAgICAgdGhpcy5pc1NjaGVkdWxlckluZm9ybWF0aW9uVmFsaWQgPSBmb3JtLnZhbGlkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkNsaWNrU2F2ZUFuZE5leHRCdXR0b24oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc1N1Ym1pdCA9IHRydWU7XHJcblxyXG4gICAgICAgIHN3aXRjaCAodGhpcy5wb3NpdGlvbldpemFyZCkge1xyXG4gICAgICAgICAgICBjYXNlIDE6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNhdmVHZW5lcmFsSW5mb3JtYXRpb25TZXJ2aWNlKCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAyOlxyXG4gICAgICAgICAgICAgICAgIXRoaXMuaXNMaW5lID8gdGhpcy5zYXZlRmFpbG92ZXJNZWNoYW5pc21TZXJ2aWNlKCkgOiB0aGlzLnNhdmVOdW1iZXJCYXNlc1NlcnZpY2UoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDM6XHJcbiAgICAgICAgICAgICAgICAhdGhpcy5pc0xpbmUgPyB0aGlzLnNhdmVOdW1iZXJCYXNlc1NlcnZpY2UoKSA6IHRoaXMuc2F2ZVNjaGVkdWxlclNlcnZpY2UoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDQ6XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNMaW5lKSB0aGlzLnNhdmVTY2hlZHVsZXJTZXJ2aWNlKCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNTdWJtaXQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXQgZ2V0Q2FtcGFpZ25TdG9yYWdlKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0ZWxpbi5jYW1wYWlnbicpXHJcbiAgICAgICAgICAgID8gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndGVsaW4uY2FtcGFpZ24nKSlcclxuICAgICAgICAgICAgOiB7fTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZ2V0Qm9keSgpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGJvZHkgPVxyXG4gICAgICAgICAgICB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkRhdGE/LnRleHQgfHxcclxuICAgICAgICAgICAgdGhpcy5nZW5lcmFsSW5mb3JtYXRpb25EYXRhPy50ZW1wbGF0ZT8uYm9keT8udGV4dCB8fFxyXG4gICAgICAgICAgICB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkRhdGE/LmJvZHk/LnRleHQ7XHJcblxyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIGJvZHlcclxuICAgICAgICAgICAgICAgID8uc3BsaXQoL1xcXFxufFxcbi8pXHJcbiAgICAgICAgICAgICAgICAuam9pbignPGJyIC8+JylcclxuICAgICAgICAgICAgICAgIC5zcGxpdCgvXFxcXHR8XFx0LylcclxuICAgICAgICAgICAgICAgIC5qb2luKCcgICAgJykgPz8gJydcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkNoZWNrVHdpbGlvQ291bnRlclZhbGlkID0gKCk6IGJvb2xlYW4gPT4ge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlc0dlbmVyYWwgPSB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkRhdGE7XHJcblxyXG4gICAgICAgIGlmICh2YWx1ZXNHZW5lcmFsPy5tZWRpdW0gIT09ICdTTVMnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHZhbHVlc0dlbmVyYWw/LmNoYW5uZWwgPT09ICdURVhUJykge1xyXG4gICAgICAgICAgICBjb25zdCBzZWdtZW50ZWRNZXNzYWdlID0gbmV3IFNlZ21lbnRlZE1lc3NhZ2UodGhpcy5nZXRCb2R5KTtcclxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0ge1xyXG4gICAgICAgICAgICAgICAgc2VnbWVudHM6IHNlZ21lbnRlZE1lc3NhZ2Uuc2VnbWVudHNDb3VudCxcclxuICAgICAgICAgICAgICAgIGVuY29kaW5nOiBzZWdtZW50ZWRNZXNzYWdlLmVuY29kaW5nTmFtZSxcclxuICAgICAgICAgICAgICAgIGNoYXJhY3RlcnM6IHNlZ21lbnRlZE1lc3NhZ2UubnVtYmVyT2ZVbmljb2RlU2NhbGFycyxcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQuc2VnbWVudHMgPiAxMCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgdmFsdWVSZXN1bHQgPSB0aGlzLmdldEJvZHk7XHJcbiAgICAgICAgICAgIEFycmF5LmZyb20odmFsdWVzR2VuZXJhbC50ZW1wbGF0ZT8uYm9keT8uZXhhbXBsZXMgfHwgW10pLm1hcCgoZW50cnksIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodmFsdWVzR2VuZXJhbC5wYXJhbUJvZHkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gYHt7JHtlbnRyeX19fWA7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZXNHZW5lcmFsLnBhcmFtQm9keVtpbmRleF0ubmFtZTtcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZVJlc3VsdCA9IHZhbHVlUmVzdWx0LnNwbGl0KHBsYWNlaG9sZGVyKS5qb2luKHZhbHVlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBzZWdtZW50ZWRNZXNzYWdlID0gbmV3IFNlZ21lbnRlZE1lc3NhZ2UodmFsdWVSZXN1bHQpO1xyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB7XHJcbiAgICAgICAgICAgICAgICBzZWdtZW50czogc2VnbWVudGVkTWVzc2FnZS5zZWdtZW50c0NvdW50LFxyXG4gICAgICAgICAgICAgICAgZW5jb2Rpbmc6IHNlZ21lbnRlZE1lc3NhZ2UuZW5jb2RpbmdOYW1lLFxyXG4gICAgICAgICAgICAgICAgY2hhcmFjdGVyczogc2VnbWVudGVkTWVzc2FnZS5udW1iZXJPZlVuaWNvZGVTY2FsYXJzLFxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgaWYgKHJlc3VsdC5zZWdtZW50cyA+IDEwKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcHJpdmF0ZSBzYXZlR2VuZXJhbEluZm9ybWF0aW9uU2VydmljZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMub25DaGVja1R3aWxpb0NvdW50ZXJWYWxpZCgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdTZWdtZW50IGNhbm5vdCBtb3JlIHRoYW4gMTAnKTtcclxuICAgICAgICAgICAgdGhpcy5pc1N1Ym1pdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBib2R5UmVxID0gbmV3IEdlbmVyYWxJbmZvcm1hdGlvbldBUmVxTW9kZWwoKS5jbG9uZSh7XHJcbiAgICAgICAgICAgIC4uLnRoaXMuZ2VuZXJhbEluZm9ybWF0aW9uRGF0YSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgcGF5bG9hZFZhbHVlID0gYm9keVJlcS5jb252ZXJ0KCk7XHJcblxyXG4gICAgICAgIGlmIChwYXlsb2FkVmFsdWUudGVtcGxhdGUgJiYgdGhpcy5nZW5lcmFsSW5mb3JtYXRpb25EYXRhLnRlbXBsYXRlKSB7XHJcbiAgICAgICAgICAgIHBheWxvYWRWYWx1ZS50ZW1wbGF0ZS50eXBlID1cclxuICAgICAgICAgICAgICAgIHBheWxvYWRWYWx1ZS50ZW1wbGF0ZS50eXBlIHx8IHRoaXMuZ2VuZXJhbEluZm9ybWF0aW9uRGF0YS50ZW1wbGF0ZS5jYXRlZ29yeTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHBhcmFtZXRlckxpc3Q6IEFycmF5PFBhcmFtZXRlcj4gPSBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIG5hbWU6ICdkYXRhJyxcclxuICAgICAgICAgICAgICAgIHZhbHVlOiBwYXlsb2FkVmFsdWUsXHJcbiAgICAgICAgICAgICAgICBpbjogJ2JvZHknLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXHJcbiAgICAgICAgICAgICAgICB3aXRob3V0S2V5RGF0YTogdHJ1ZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICBdO1xyXG4gICAgICAgIGNvbnN0IHN1YnMgPSB0aGlzLmFwaUFkYXB0ZXJTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5leGVjdXRlQXBpUmVxdWVzdChcclxuICAgICAgICAgICAgICAgIHBhcmFtZXRlckxpc3QsXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkRhdGEuaWRcclxuICAgICAgICAgICAgICAgICAgICA/IGAvY2FtcGFpZ24vJHt0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkRhdGEuaWR9YFxyXG4gICAgICAgICAgICAgICAgICAgIDogJy9jYW1wYWlnbicsXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkRhdGEuaWQgPyAnUFVUJyA6ICdQT1NUJ1xyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwPy5tZXNzYWdlPy50b0xvd2VyQ2FzZSgpICE9PSAnc3VjY2VzcycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1N1Ym1pdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3RlbGluLmNhbXBhaWduJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5nZXRDYW1wYWlnblN0b3JhZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhbEluZm9ybWF0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiByZXNwLmRhdGEuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm06IHRoaXMuZ2VuZXJhbEluZm9ybWF0aW9uRGF0YSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU3VibWl0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbldpemFyZCArPSAxO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICgpID0+ICh0aGlzLmlzU3VibWl0ID0gZmFsc2UpXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlcnMucHVzaChzdWJzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNhdmVGYWlsb3Zlck1lY2hhbmlzbVNlcnZpY2UoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgYm9keVJlcSA9IG5ldyBGYWlsb3ZlclJlcU1vZGVsKCkuY2xvbmUoe1xyXG4gICAgICAgICAgICAuLi50aGlzLmZhaWxvdmVyTWVjaGFuaXNtRGF0YSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVyTGlzdDogQXJyYXk8UGFyYW1ldGVyPiA9IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogJ2RhdGEnLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IGJvZHlSZXEuY29udmVydCgpLFxyXG4gICAgICAgICAgICAgICAgaW46ICdib2R5JyxcclxuICAgICAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxyXG4gICAgICAgICAgICAgICAgd2l0aG91dEtleURhdGE6IHRydWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgY29uc3Qgc3VicyA9IHRoaXMuYXBpQWRhcHRlclNlcnZpY2VcclxuICAgICAgICAgICAgLmV4ZWN1dGVBcGlSZXF1ZXN0KFxyXG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyTGlzdCxcclxuICAgICAgICAgICAgICAgIGAvY2FtcGFpZ24vJHt0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5pZH0vZmFpbG92ZXJgLFxyXG4gICAgICAgICAgICAgICAgJ1BPU1QnXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3A/Lm1lc3NhZ2U/LnRvTG93ZXJDYXNlKCkgIT09ICdzdWNjZXNzJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU3VibWl0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAndGVsaW4uY2FtcGFpZ24nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmdldENhbXBhaWduU3RvcmFnZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsb3ZlcjogdGhpcy5mYWlsb3Zlck1lY2hhbmlzbURhdGEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTdWJtaXQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uV2l6YXJkICs9IDE7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKCkgPT4gKHRoaXMuaXNTdWJtaXQgPSBmYWxzZSlcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVycy5wdXNoKHN1YnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2F2ZU51bWJlckJhc2VzU2VydmljZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy50YXJnZXRBdWRpZW5jZURhdGEubGVuZ3RoID09PSAwIHx8IHRoaXMuaXNVcGxvYWRUYXJnZXRBdWRpZW5jZSkge1xyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcclxuICAgICAgICAgICAgICAgICd0ZWxpbi5jYW1wYWlnbicsXHJcbiAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5nZXRDYW1wYWlnblN0b3JhZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgLi4ue1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRBdWRpZW5jZTogdGhpcy50YXJnZXRBdWRpZW5jZURhdGEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldEF1ZGllbmNlQ291bnQ6IHRoaXMudGFyZ2V0QXVkaWVuY2VDb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2VGaWxlOiB0aGlzLnRhcmdldEF1ZGllbmNlRmlsZSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuaXNTdWJtaXQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbldpemFyZCArPSAxO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBwYXJhbWV0ZXJMaXN0OiBBcnJheTxQYXJhbWV0ZXI+ID0gW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnZGF0YScsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZToge1xyXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldHM6IHRoaXMudGFyZ2V0QXVkaWVuY2VEYXRhLFxyXG4gICAgICAgICAgICAgICAgICAgIG51bWJlckNvdW50OiB0aGlzLnRhcmdldEF1ZGllbmNlQ291bnQsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgaW46ICdib2R5JyxcclxuICAgICAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxyXG4gICAgICAgICAgICAgICAgd2l0aG91dEtleURhdGE6IHRydWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgY29uc3Qgc3VicyA9IHRoaXMuYXBpQWRhcHRlclNlcnZpY2VcclxuICAgICAgICAgICAgLmV4ZWN1dGVBcGlSZXF1ZXN0KFxyXG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyTGlzdCxcclxuICAgICAgICAgICAgICAgIGAvY2FtcGFpZ24vJHt0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5pZH0vdGFyZ2V0Y2F0ZWdvcnlgLFxyXG4gICAgICAgICAgICAgICAgJ1BPU1QnXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3A/Lm1lc3NhZ2U/LnRvTG93ZXJDYXNlKCkgIT09ICdzdWNjZXNzJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU3VibWl0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAndGVsaW4uY2FtcGFpZ24nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmdldENhbXBhaWduU3RvcmFnZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRBdWRpZW5jZTogdGhpcy50YXJnZXRBdWRpZW5jZURhdGEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2VDb3VudDogdGhpcy50YXJnZXRBdWRpZW5jZUNvdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldEF1ZGllbmNlRmlsZTogdGhpcy50YXJnZXRBdWRpZW5jZUZpbGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTdWJtaXQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uV2l6YXJkICs9IDE7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKCkgPT4gKHRoaXMuaXNTdWJtaXQgPSBmYWxzZSlcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVycy5wdXNoKHN1YnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2F2ZVNjaGVkdWxlclNlcnZpY2UoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgYm9keVJlcSA9IG5ldyBTY2hlZHVsZXJSZXFNb2RlbCgpLmNsb25lKHtcclxuICAgICAgICAgICAgLi4udGhpcy5zY2hlZHVsZXJEYXRhLFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjb25zdCBwYXJhbWV0ZXJMaXN0OiBBcnJheTxQYXJhbWV0ZXI+ID0gW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnZGF0YScsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogYm9keVJlcS5jb252ZXJ0KCksXHJcbiAgICAgICAgICAgICAgICBpbjogJ2JvZHknLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXHJcbiAgICAgICAgICAgICAgICB3aXRob3V0S2V5RGF0YTogdHJ1ZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICBjb25zdCBzdWJzID0gdGhpcy5hcGlBZGFwdGVyU2VydmljZVxyXG4gICAgICAgICAgICAuZXhlY3V0ZUFwaVJlcXVlc3QoXHJcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJMaXN0LFxyXG4gICAgICAgICAgICAgICAgYC9jYW1wYWlnbi8ke3RoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy5nZW5lcmFsSW5mb3JtYXRpb24/LmlkfS9zY2hlZHVsZWAsXHJcbiAgICAgICAgICAgICAgICAnUE9TVCdcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcD8ubWVzc2FnZT8udG9Mb3dlckNhc2UoKSAhPT0gJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTdWJtaXQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICd0ZWxpbi5jYW1wYWlnbicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ue1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVkdWxlcjogdGhpcy5zY2hlZHVsZXJEYXRhLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU3VibWl0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbldpemFyZCArPSAxO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICgpID0+ICh0aGlzLmlzU3VibWl0ID0gZmFsc2UpXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlcnMucHVzaChzdWJzKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25QcmV2aW91cygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnBvc2l0aW9uV2l6YXJkIC09IDE7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNoYW5nZUN1cnJlbnRWaWV3KGFyZWE6IE1haW5BcmVhKSB7XHJcbiAgICAgICAgdGhpcy5vcGVuQ29uZmlybWF0aW9uRGlhbG9nKGFyZWEpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgb3BlbkNvbmZpcm1hdGlvbkRpYWxvZyhhcmVhOiBNYWluQXJlYSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGNvbmZpcm1hdGlvbiA9IG5ldyBDb25maXJtYXRpb25Nb2RlbCgpO1xyXG5cclxuICAgICAgICBjb25maXJtYXRpb24udGl0bGUgPSAnQ2FuY2VsIEFkZCBCcm9hZGNhc3QnO1xyXG4gICAgICAgIGNvbmZpcm1hdGlvbi5jb250ZW50ID0gYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjYW5jZWw8YnIvPiBBZGQgQnJvYWRjYXN0P2A7XHJcbiAgICAgICAgY29uZmlybWF0aW9uLmJ0blN1Ym1pdFJlZCA9ICdZZXMnO1xyXG4gICAgICAgIGNvbmZpcm1hdGlvbi5idG5DYW5jZWwgPSAnTm8nO1xyXG5cclxuICAgICAgICBjb25zdCBzdWJzID0gdGhpcy5kaWFsb2dcclxuICAgICAgICAgICAgLm9wZW4oQ29uZmlybWF0aW9uQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICBhdXRvRm9jdXM6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgYmFja2Ryb3BDbGFzczogJ292ZXJsYXktYmFja2Ryb3AtZGlhbG9nJyxcclxuICAgICAgICAgICAgICAgIGRhdGE6IGNvbmZpcm1hdGlvbixcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3ApIHtcclxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBgLyR7dGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LmdlbmVyYWxJbmZvcm1hdGlvbj8uaWR9YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJy9zZWN1cmUvY2FtcGFpZ24nXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Vmlldy5lbWl0KGFyZWEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVycy5wdXNoKHN1YnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvblN1Ym1pdEZvckFwcHJvdmFsKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHBhcmFtZXRlckxpc3Q6IEFycmF5PFBhcmFtZXRlcj4gPSBbXTtcclxuICAgICAgICB0aGlzLmlzU3VibWl0ID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZUZpbGU/Lm5hbWUpXHJcbiAgICAgICAgICAgIHBhcmFtZXRlckxpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnaXNGaWxlJyxcclxuICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgaW46ICdxdWVyeScsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHN1YnMgPSB0aGlzLmFwaUFkYXB0ZXJTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5leGVjdXRlQXBpUmVxdWVzdChcclxuICAgICAgICAgICAgICAgIHBhcmFtZXRlckxpc3QsXHJcbiAgICAgICAgICAgICAgICBgL2NhbXBhaWduLyR7dGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LmdlbmVyYWxJbmZvcm1hdGlvbj8uaWR9L3N1Ym1pdGAsXHJcbiAgICAgICAgICAgICAgICAnUE9TVCdcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcD8ubWVzc2FnZT8udG9Mb3dlckNhc2UoKSAhPT0gJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTdWJtaXQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7fSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYC8ke3RoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy5nZW5lcmFsSW5mb3JtYXRpb24/LmlkfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICcvc2VjdXJlL2NhbXBhaWduJ1xyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLnN1Y2Nlc3MoJ0NhbXBhaWduIHN1Ym1pdHRlZCBmb3IgYXBwcm92YWwhJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1N1Ym1pdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFZpZXcuZW1pdCh0aGlzLmN1cnJlbnRWaWV3cy5DYW1wYWlnbkluZGV4KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAoKSA9PiAodGhpcy5pc1N1Ym1pdCA9IGZhbHNlKVxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmliZXJzLnB1c2goc3Vicyk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVycy5mb3JFYWNoKChlYWNoKSA9PiBlYWNoLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -236,7 +236,6 @@ let NewNumberBasesComponent = class NewNumberBasesComponent {
|
|
|
236
236
|
this.toastr.error('Upload media failed, max size 30mb');
|
|
237
237
|
return;
|
|
238
238
|
}
|
|
239
|
-
// this.uploadMediaService(file[0]);
|
|
240
239
|
this.getPresignedUrlService(file[0]);
|
|
241
240
|
}
|
|
242
241
|
getPresignedUrlService(file) {
|
|
@@ -320,4 +319,4 @@ NewNumberBasesComponent = __decorate([
|
|
|
320
319
|
})
|
|
321
320
|
], NewNumberBasesComponent);
|
|
322
321
|
export { NewNumberBasesComponent };
|
|
323
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LW51bWJlci1iYXNlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWRsZmUvY2FtcGFpZ24tbWFuYWdlbWVudC1saWJyYXJ5LyIsInNvdXJjZXMiOlsibGliL2NhbXBhaWduLW1hbmFnZW1lbnQvbW9kdWxlcy9uZXctY2FtcGFpZ24vbmV3LW51bWJlci1iYXNlcy9uZXctbnVtYmVyLWJhc2VzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTNDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXpELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQU96RCxJQUFhLHVCQUF1QixHQUFwQyxNQUFhLHVCQUF1QjtJQWdDaEMsWUFDWSxpQkFBMkMsRUFDM0MsTUFBcUI7UUFEckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUEwQjtRQUMzQyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBeEIxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0Isb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMscUJBQWdCLEdBQTJCLEVBQUUsQ0FBQztRQUM5QyxjQUFTLEdBQUcsSUFBSSxjQUFjLENBQXVCLElBQUksRUFBRSxF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QyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7Q0FDSixDQUFBOztZQXZXa0Msd0JBQXdCO1lBQ25DLGFBQWE7O0FBaENqQztJQURDLE1BQU0sRUFBRTsrREFNTjtBQXFCTTtJQUFSLEtBQUssRUFBRTsrREFBZ0M7QUFFcEI7SUFBbkIsU0FBUyxDQUFDLE9BQU8sQ0FBQzt3REFBa0I7QUE5QjVCLHVCQUF1QjtJQUxuQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsc0JBQXNCO1FBQ2hDLHl0SkFBZ0Q7O0tBRW5ELENBQUM7R0FDVyx1QkFBdUIsQ0F3WW5DO1NBeFlZLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcclxuaW1wb3J0IHtcclxuICAgIENvbXBvbmVudCxcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIElucHV0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XHJcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEh0dHBCb2R5UmVxUGFnaW5hdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBQYXJhbWV0ZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL21vZGVscy91dGlsL2FwaS1hZGFwdGVyLXNlcnZpY2UtbW9kZWxzJztcclxuaW1wb3J0IHsgQXBwUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL21vZGVscy91dGlsL2FwaS1kdG8vcmVzcG9uc2UtbW9kZWxzJztcclxuaW1wb3J0IHsgQXBpQWRhcHRlclNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IGRvd25sb2FkQmxvYkZpbGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3V0aWwnO1xyXG5pbXBvcnQgeyBDb250YWN0Q2F0ZWdvcnlNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IFRhYmxlTW9kZWwgfSBmcm9tICcuLi8uLi9jYW1wYWlnbi1pbmRleC9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi1uZXctbnVtYmVyLWJhc2VzJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9uZXctbnVtYmVyLWJhc2VzLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL25ldy1udW1iZXItYmFzZXMuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5ld051bWJlckJhc2VzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgdGFyZ2V0QXVkaWVuY2U6IEV2ZW50RW1pdHRlcjx7XHJcbiAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IHN0cmluZ1tdO1xyXG4gICAgICAgIG51bWJlckNvdW50OiBudW1iZXI7XHJcbiAgICAgICAgaXNVcGxvYWQ6IGJvb2xlYW47XHJcbiAgICAgICAgZmlsZTogYW55O1xyXG4gICAgfT47XHJcblxyXG4gICAgcHVibGljIHRhYmxlOiBUYWJsZU1vZGVsO1xyXG4gICAgcHVibGljIGlzVXBsb2FkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaXNTaG93VXBsb2FkQ1NWOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgY2F0ZWdvcnlTZWxlY3RlZDogQ29udGFjdENhdGVnb3J5TW9kZWxbXSA9IFtdO1xyXG4gICAgcHVibGljIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxDb250YWN0Q2F0ZWdvcnlNb2RlbD4odHJ1ZSwgW10pO1xyXG4gICAgcHVibGljIGV4dEZpbGVBY2NlcHRlZDogc3RyaW5nW10gPSBbXHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsXHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyxcclxuICAgICAgICAnLmNzdicsXHJcbiAgICBdO1xyXG4gICAgcHVibGljIGZpbGVTZWxlY3RlZDoge1xyXG4gICAgICAgIG5hbWU6IHN0cmluZztcclxuICAgICAgICB0YXJnZXRVUkw6IHN0cmluZztcclxuICAgIH0gPSBudWxsO1xyXG5cclxuICAgIHByaXZhdGUgY2F0ZWdvcnlQYXJhbTogSHR0cEJvZHlSZXFQYWdpbmF0aW9uTW9kZWw7XHJcbiAgICBwcml2YXRlIHN1YnNjcmliZXJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBpc1JlYWRPbmx5TW9kZTogYm9vbGVhbjtcclxuXHJcbiAgICBAVmlld0NoaWxkKE1hdFNvcnQpIG1hdFNvcnQ6IE1hdFNvcnQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBhcGlBZGFwdGVyU2VydmljZTogQXBpQWRhcHRlclNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2F0ZWdvcnlQYXJhbSA9IG5ldyBIdHRwQm9keVJlcVBhZ2luYXRpb25Nb2RlbCgpO1xyXG5cclxuICAgICAgICB0aGlzLmluaXRUYWJsZSgpO1xyXG4gICAgICAgIHRoaXMuZ2V0Q2F0ZWdvcnlMaXN0KCk7XHJcblxyXG4gICAgICAgIHRoaXMudGFyZ2V0QXVkaWVuY2UuZW1pdCh7XHJcbiAgICAgICAgICAgIHRhcmdldEF1ZGllbmNlOiBbXSxcclxuICAgICAgICAgICAgbnVtYmVyQ291bnQ6IDAsXHJcbiAgICAgICAgICAgIGlzVXBsb2FkOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5mb3JtPy5pc1VwbG9hZCxcclxuICAgICAgICAgICAgZmlsZToge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8ubmFtZSxcclxuICAgICAgICAgICAgICAgIHRhcmdldFVSTDogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8udGFyZ2V0VVJMLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdFRhYmxlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudGFibGUgPSBuZXcgVGFibGVNb2RlbCgpO1xyXG4gICAgICAgIHRoaXMudGFibGUubGFiZWxzID0gW1xyXG4gICAgICAgICAgICAnc2VsZWN0JyxcclxuICAgICAgICAgICAgJ0NhdGVnb3J5JyxcclxuICAgICAgICAgICAgJ05vLiBPZiBDdXN0b21lcicsXHJcbiAgICAgICAgICAgICdDcmVhdGVkIERhdGUnLFxyXG4gICAgICAgICAgICAnVXBkYXRlZCBEYXRlJyxcclxuICAgICAgICBdO1xyXG4gICAgICAgIHRoaXMudGFibGUuY29sdW1ucyA9IFsnc2VsZWN0JywgJ25hbWUnLCAndG90YWxNZW1iZXJzJywgJ2NyZWF0ZWREYXRlJywgJ3VwZGF0ZWREYXRlJ107XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGdldENhbXBhaWduU3RvcmFnZSgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndGVsaW4uY2FtcGFpZ24nKVxyXG4gICAgICAgICAgICA/IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3RlbGluLmNhbXBhaWduJykpXHJcbiAgICAgICAgICAgIDoge307XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0RWRpdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoT2JqZWN0LmVudHJpZXModGhpcy5nZXRDYW1wYWlnblN0b3JhZ2UpLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLmlzU2hvd1VwbG9hZENTViA9IHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy5nZW5lcmFsSW5mb3JtYXRpb24/LmZvcm0/LmlzVXBsb2FkO1xyXG5cclxuICAgICAgICB0aGlzLmZpbGVTZWxlY3RlZCA9IHtcclxuICAgICAgICAgICAgbmFtZTogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8ubmFtZSxcclxuICAgICAgICAgICAgdGFyZ2V0VVJMOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy50YXJnZXRVUkwsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy50YWJsZS5kYXRhU291cmNlLmRhdGE/LmZvckVhY2goKGVhY2gpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZT8uaW5jbHVkZXMoZWFjaC5pZCkpXHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hlY2tlZCh0cnVlLCBlYWNoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldENhdGVnb3J5TGlzdChmaWx0ZXI6IHN0cmluZyA9ICcnKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pc1JlYWRPbmx5TW9kZSkgdGhpcy5jYXRlZ29yeVBhcmFtLnBhZ2VTaXplID0gMTAwMDtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVyTGlzdDogQXJyYXk8UGFyYW1ldGVyPiA9IFtcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oJ3BhZ2VObycsIHRoaXMuY2F0ZWdvcnlQYXJhbS5wYWdlTm8sICdudW1iZXInKSxcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oJ3Jvd1BlclBhZ2UnLCB0aGlzLmNhdGVnb3J5UGFyYW0ucGFnZVNpemUsICdudW1iZXInKSxcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oJ2ZpbHRlcicsIGZpbHRlciwgJ3N0cmluZycpLFxyXG4gICAgICAgICAgICB0aGlzLmluaXRQYXJhbShcclxuICAgICAgICAgICAgICAgICdwbGF0Zm9ybScsXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5mb3JtPy5tZWRpdW0sXHJcbiAgICAgICAgICAgICAgICAnc3RyaW5nJ1xyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5mb3JtPy5tZWRpdW0gPT09ICdMSU5FJylcclxuICAgICAgICAgICAgcGFyYW1ldGVyTGlzdC5wdXNoKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oXHJcbiAgICAgICAgICAgICAgICAgICAgJ2FjY291bnRJZCcsXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LmdlbmVyYWxJbmZvcm1hdGlvbj8uZm9ybT8uZnJvbT8uaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgJ3N0cmluZydcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNSZWFkT25seU1vZGUpIHBhcmFtZXRlckxpc3QucHVzaCh0aGlzLmluaXRQYXJhbSgnc3VtbWFyeScsIHRydWUsICdzdHJpbmcnKSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHN1YnMgPSB0aGlzLmFwaUFkYXB0ZXJTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5leGVjdXRlQXBpUmVxdWVzdChwYXJhbWV0ZXJMaXN0LCAnL2FkbWluL2NhdGVnb3J5JywgJ0dFVCcpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3A6IEFwcFJlc3BvbnNlPENvbnRhY3RDYXRlZ29yeU1vZGVsW10+KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1JlYWRPbmx5TW9kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZS5kYXRhID0gcmVzcC5kYXRhPy5maWx0ZXIoKGVhY2gpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZT8uaW5jbHVkZXMoZWFjaC5pZClcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQgPSB0aGlzLnRhYmxlLmRhdGFTb3VyY2UuZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdEVkaXQoKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5kYXRhU291cmNlLmRhdGEgPSByZXNwLmRhdGE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLnNldE5leHRQYWdlKHJlc3AuaGF2ZU5leHQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5pdEVkaXQoKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlcnMucHVzaChzdWJzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRQYXJhbShfbmFtZTogc3RyaW5nLCBfdmFsdWU6IGFueSwgX3R5cGU6IHN0cmluZyk6IFBhcmFtZXRlciB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgbmFtZTogX25hbWUsXHJcbiAgICAgICAgICAgIHZhbHVlOiBfdmFsdWUsXHJcbiAgICAgICAgICAgIGluOiAncXVlcnknLFxyXG4gICAgICAgICAgICB0eXBlOiBfdHlwZSxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB1cGRhdGVTZWFyY2goc2VhcmNoVmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudGFibGUucmVzZXRQYWdlKCk7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeVBhcmFtLnBhZ2VObyA9IHRoaXMudGFibGUucGFnZTtcclxuICAgICAgICB0aGlzLmdldENhdGVnb3J5TGlzdChzZWFyY2hWYWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVwZGF0ZVBhZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnRhYmxlLnBhZ2VTaXplICE9PSBldmVudD8ucGFnZVNpemUpIHRoaXMudGFibGUucmVzZXRQYWdlKCk7XHJcblxyXG4gICAgICAgIHRoaXMudGFibGUucGFnZSA9XHJcbiAgICAgICAgICAgIHRoaXMudGFibGUucGFnZVNpemUgIT09IGV2ZW50Py5wYWdlU2l6ZSA/IHRoaXMudGFibGUucGFnZSA6IGV2ZW50Py5wYWdlSW5kZXggKyAxO1xyXG4gICAgICAgIHRoaXMudGFibGUucGFnZVNpemUgPSBldmVudD8ucGFnZVNpemU7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeVBhcmFtLnBhZ2VObyA9IHRoaXMudGFibGUucGFnZTtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5UGFyYW0ucGFnZVNpemUgPSB0aGlzLnRhYmxlLnBhZ2VTaXplO1xyXG5cclxuICAgICAgICB0aGlzLmdldENhdGVnb3J5TGlzdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzb3J0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5tYXRTb3J0O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjaGVja2JveExhYmVsKHJvdz86IENvbnRhY3RDYXRlZ29yeU1vZGVsKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIXJvdykgcmV0dXJuIGAke3RoaXMuaXNBbGxTZWxlY3RlZCgpID8gJ2Rlc2VsZWN0JyA6ICdzZWxlY3QnfSBhbGxgO1xyXG5cclxuICAgICAgICByZXR1cm4gYCR7dGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZChyb3cpID8gJ2Rlc2VsZWN0JyA6ICdzZWxlY3QnfSByb3cgJHtyb3cubmFtZSArIDF9YDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNBbGxTZWxlY3RlZCgpIHtcclxuICAgICAgICBjb25zdCBudW1TZWxlY3RlZCA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aDtcclxuICAgICAgICBjb25zdCBudW1Sb3dzID0gdGhpcy50YWJsZS5kYXRhU291cmNlLmRhdGE/Lmxlbmd0aCA/PyAwO1xyXG5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZS5kYXRhICYmXHJcbiAgICAgICAgICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZS5kYXRhLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQgJiZcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoID4gMFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGRhdGEgb2YgdGhpcy50YWJsZS5kYXRhU291cmNlLmRhdGEpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5maWx0ZXIoKHQpID0+IHQuaWQgPT09IGRhdGEuaWQpLmxlbmd0aCA+IDApIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG51bVNlbGVjdGVkID09PSBudW1Sb3dzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBtYXN0ZXJUb2dnbGUoaXNDaGVja2VkOiBib29sZWFuKSB7XHJcbiAgICAgICAgaWYgKCFpc0NoZWNrZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcclxuICAgICAgICAgICAgdGhpcy5jYXRlZ29yeVNlbGVjdGVkID0gW107XHJcblxyXG4gICAgICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IFtdLFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyQ291bnQ6IDAsXHJcbiAgICAgICAgICAgICAgICBpc1VwbG9hZDogdGhpcy5pc1Nob3dVcGxvYWRDU1YsXHJcbiAgICAgICAgICAgICAgICBmaWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8ubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRVUkw6IHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZUZpbGU/LnRhcmdldFVSTCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0KC4uLnRoaXMudGFibGUuZGF0YVNvdXJjZS5kYXRhKTtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZDtcclxuXHJcbiAgICAgICAgdGhpcy50YXJnZXRBdWRpZW5jZS5lbWl0KHtcclxuICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IHRoaXMuY2F0ZWdvcnlTZWxlY3RlZC5tYXAoKHQpID0+IHQuaWQpLFxyXG4gICAgICAgICAgICBudW1iZXJDb3VudDogdGhpcy5jYXRlZ29yeVNlbGVjdGVkLnJlZHVjZSgoc3VtLCB4KSA9PiBzdW0gKyB4LnRvdGFsTWVtYmVycywgMCksXHJcbiAgICAgICAgICAgIGlzVXBsb2FkOiB0aGlzLmlzU2hvd1VwbG9hZENTVixcclxuICAgICAgICAgICAgZmlsZToge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8ubmFtZSxcclxuICAgICAgICAgICAgICAgIHRhcmdldFVSTDogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8udGFyZ2V0VVJMLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkNoZWNrZWQoaXNDaGVja2VkOiBib29sZWFuLCByb3c6IENvbnRhY3RDYXRlZ29yeU1vZGVsKSB7XHJcbiAgICAgICAgaWYgKCFpc0NoZWNrZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uZGVzZWxlY3QoLi4udGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQuZmlsdGVyKCh4KSA9PiB4LmlkID09PSByb3cuaWQpKTtcclxuICAgICAgICAgICAgdGhpcy5jYXRlZ29yeVNlbGVjdGVkID0gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQ7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IHRoaXMuY2F0ZWdvcnlTZWxlY3RlZC5tYXAoKHQpID0+IHQuaWQpLFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyQ291bnQ6IHRoaXMuY2F0ZWdvcnlTZWxlY3RlZC5yZWR1Y2UoKHN1bSwgeCkgPT4gc3VtICsgeC50b3RhbE1lbWJlcnMsIDApLFxyXG4gICAgICAgICAgICAgICAgaXNVcGxvYWQ6IHRoaXMuaXNTaG93VXBsb2FkQ1NWLFxyXG4gICAgICAgICAgICAgICAgZmlsZToge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZUZpbGU/Lm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VVJMOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy50YXJnZXRVUkwsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdChyb3cpO1xyXG4gICAgICAgIHRoaXMuY2F0ZWdvcnlTZWxlY3RlZCA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkO1xyXG5cclxuICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlLmVtaXQoe1xyXG4gICAgICAgICAgICB0YXJnZXRBdWRpZW5jZTogdGhpcy5jYXRlZ29yeVNlbGVjdGVkLm1hcCgodCkgPT4gdC5pZCksXHJcbiAgICAgICAgICAgIG51bWJlckNvdW50OiB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQucmVkdWNlKChzdW0sIHgpID0+IHN1bSArIHgudG90YWxNZW1iZXJzLCAwKSxcclxuICAgICAgICAgICAgaXNVcGxvYWQ6IHRoaXMuaXNTaG93VXBsb2FkQ1NWLFxyXG4gICAgICAgICAgICBmaWxlOiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgdGFyZ2V0VVJMOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy50YXJnZXRVUkwsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzQ2hlY2tlZChyb3c6IENvbnRhY3RDYXRlZ29yeU1vZGVsKSB7XHJcbiAgICAgICAgY29uc3QgZm91bmQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5maW5kKCh4KSA9PiB4LmlkID09PSByb3cuaWQpO1xyXG4gICAgICAgIHJldHVybiBmb3VuZCA/IHRydWUgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25Eb3dubG9hZFNhbXBsZVNlcnZpY2UoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVyTGlzdDogQXJyYXk8UGFyYW1ldGVyPiA9IFtcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oXHJcbiAgICAgICAgICAgICAgICAncGxhdGZvcm0nLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LmdlbmVyYWxJbmZvcm1hdGlvbj8uZm9ybT8udGVtcGxhdGU/LnBsYXRmb3JtLFxyXG4gICAgICAgICAgICAgICAgJ3N0cmluZydcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oXHJcbiAgICAgICAgICAgICAgICAndGVtcGxhdGVOYW1lJyxcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy5nZW5lcmFsSW5mb3JtYXRpb24/LmZvcm0/LnRlbXBsYXRlPy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgJ3N0cmluZydcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oXHJcbiAgICAgICAgICAgICAgICAndGVtcGxhdGVMYW5nJyxcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy5nZW5lcmFsSW5mb3JtYXRpb24/LmZvcm0/LnRlbXBsYXRlPy5sYW5nLFxyXG4gICAgICAgICAgICAgICAgJ3N0cmluZydcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oXHJcbiAgICAgICAgICAgICAgICAnY2F0ZWdvcnknLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXRlZ29yeVNlbGVjdGVkPy5tYXAoKHQpID0+IHQuaWQpLmpvaW4oKSA/PyBbXSxcclxuICAgICAgICAgICAgICAgICdzdHJpbmcnXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgY29uc3Qgc3VicyA9IHRoaXMuYXBpQWRhcHRlclNlcnZpY2VcclxuICAgICAgICAgICAgLmV4ZWN1dGVBcGlSZXF1ZXN0KHBhcmFtZXRlckxpc3QsICcvbWVzc2FnZS9idWxrdXBsb2FkL3RlbXBsYXRlJywgJ0dFVCcsIHRydWUpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3A6IEFwcFJlc3BvbnNlPGFueT4pID0+IHtcclxuICAgICAgICAgICAgICAgIGRvd25sb2FkQmxvYkZpbGUocmVzcCwgJ1NhbXBsZS1VcGxvYWRQYXJhbWV0ZXIueGxzeCcpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVycy5wdXNoKHN1YnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkZpbGVTZWxlY3RlZChldmVudDogRXZlbnQpIHtcclxuICAgICAgICBjb25zdCBmaWxlOiBGaWxlTGlzdCA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuZmlsZXM7XHJcbiAgICAgICAgY29uc3QgTUFYSU1VTV9TSVpFID0gMzAgKiAxMDI0ICogMTAyNDtcclxuXHJcbiAgICAgICAgaWYgKGZpbGUubGVuZ3RoID09PSAwKSByZXR1cm47XHJcblxyXG4gICAgICAgIGlmIChmaWxlWzBdLnNpemUgPiBNQVhJTVVNX1NJWkUpIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ1VwbG9hZCBtZWRpYSBmYWlsZWQsIG1heCBzaXplIDMwbWInKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gdGhpcy51cGxvYWRNZWRpYVNlcnZpY2UoZmlsZVswXSk7XHJcbiAgICAgICAgdGhpcy5nZXRQcmVzaWduZWRVcmxTZXJ2aWNlKGZpbGVbMF0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0UHJlc2lnbmVkVXJsU2VydmljZShmaWxlOiBGaWxlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc1VwbG9hZCA9IHRydWU7XHJcblxyXG4gICAgICAgIGNvbnN0IHBhcmFtZXRlckxpc3Q6IEFycmF5PFBhcmFtZXRlcj4gPSBbXHJcbiAgICAgICAgICAgIHsgbmFtZTogJ2ZpbGVOYW1lJywgdmFsdWU6IGZpbGUubmFtZSwgaW46ICdxdWVyeScsIHR5cGU6ICdzdHJpbmcnIH0sXHJcbiAgICAgICAgICAgIHsgbmFtZTogJ2ZpbGVUeXBlJywgdmFsdWU6IGZpbGUudHlwZSwgaW46ICdxdWVyeScsIHR5cGU6ICdzdHJpbmcnIH0sXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgY29uc3Qgc3VicyA9IHRoaXMuYXBpQWRhcHRlclNlcnZpY2VcclxuICAgICAgICAgICAgLmV4ZWN1dGVBcGlSZXF1ZXN0KHBhcmFtZXRlckxpc3QsICcvY2FtcGFpZ24vdXBsb2FkL3ByZS1zaWduZWQtdXJsJywgJ0dFVCcpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAocmVzcDogQXBwUmVzcG9uc2U8YW55PikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwICYmIHJlc3AuZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZFRvUzNTZXJ2aWNlKGZpbGUsIHJlc3AuZGF0YS51cmwsIHJlc3AuZGF0YS5maWxlTmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICgpID0+ICh0aGlzLmlzVXBsb2FkID0gZmFsc2UpXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlcnMucHVzaChzdWJzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwbG9hZFRvUzNTZXJ2aWNlKGZpbGU6IEZpbGUsIHMzVXJsOiBzdHJpbmcsIGZpbGVOYW1lUzM6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYXBpQWRhcHRlclNlcnZpY2UudXBsb2FkRmlsZVRvUzMoczNVcmwsIGZpbGUpLnN1YnNjcmliZShcclxuICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maW5hbGl6ZVRhcmdldEZpbGVTZXJ2aWNlKGZpbGVOYW1lUzMpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignRmFpbGVkIHVwbG9hZGluZyB0byBTMyBzdG9yYWdlJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzVXBsb2FkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdTMyBVcGxvYWQgRXJyb3I6JywgZXJyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBmaW5hbGl6ZVRhcmdldEZpbGVTZXJ2aWNlKGZpbGVOYW1lUzM6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGNhbXBhaWduSWQgPSB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5pZDtcclxuICAgICAgICBjb25zdCBwYXJhbWV0ZXJMaXN0OiBBcnJheTxQYXJhbWV0ZXI+ID0gW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnYm9keScsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogeyBmaWxlTmFtZTogZmlsZU5hbWVTMyB9LFxyXG4gICAgICAgICAgICAgICAgaW46ICdib2R5JyxcclxuICAgICAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxyXG4gICAgICAgICAgICAgICAgd2l0aG91dEtleURhdGE6IHRydWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgY29uc3Qgc3VicyA9IHRoaXMuYXBpQWRhcHRlclNlcnZpY2VcclxuICAgICAgICAgICAgLmV4ZWN1dGVBcGlSZXF1ZXN0KHBhcmFtZXRlckxpc3QsIGAvY2FtcGFpZ24vJHtjYW1wYWlnbklkfS90YXJnZXRmaWxlYCwgJ1BPU1QnKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKHJlc3A6IEFwcFJlc3BvbnNlPGFueT4pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3ApIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuaW5mbygnVXBsb2FkIFhMU1ggaGFzIGJlZW4gdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1VwbG9hZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRBdWRpZW5jZTogdGhpcy5jYXRlZ29yeVNlbGVjdGVkLm1hcCgodCkgPT4gdC5pZCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlckNvdW50OiB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQucmVkdWNlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN1bSwgeCkgPT4gc3VtICsgeC50b3RhbE1lbWJlcnMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzVXBsb2FkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBmaWxlTmFtZVMzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VVJMOiByZXNwLmRhdGE/LnRhcmdldFVSTCB8fCAnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAoKSA9PiAodGhpcy5pc1VwbG9hZCA9IGZhbHNlKVxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmliZXJzLnB1c2goc3Vicyk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVycy5mb3JFYWNoKChlYWNoKSA9PiBlYWNoLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
322
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LW51bWJlci1iYXNlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWRsZmUvY2FtcGFpZ24tbWFuYWdlbWVudC1saWJyYXJ5LyIsInNvdXJjZXMiOlsibGliL2NhbXBhaWduLW1hbmFnZW1lbnQvbW9kdWxlcy9uZXctY2FtcGFpZ24vbmV3LW51bWJlci1iYXNlcy9uZXctbnVtYmVyLWJhc2VzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTNDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXpELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQU96RCxJQUFhLHVCQUF1QixHQUFwQyxNQUFhLHVCQUF1QjtJQWdDaEMsWUFDWSxpQkFBMkMsRUFDM0MsTUFBcUI7UUFEckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUEwQjtRQUMzQyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBeEIxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0Isb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMscUJBQWdCLEdBQTJCLEVBQUUsQ0FBQztRQUM5QyxjQUFTLEdBQUcsSUFBSSxjQUFjLENBQXVCLElBQUksRUFBRSxF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QUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztDQUNKLENBQUE7O1lBdFdrQyx3QkFBd0I7WUFDbkMsYUFBYTs7QUFoQ2pDO0lBREMsTUFBTSxFQUFFOytEQU1OO0FBcUJNO0lBQVIsS0FBSyxFQUFFOytEQUFnQztBQUVwQjtJQUFuQixTQUFTLENBQUMsT0FBTyxDQUFDO3dEQUFrQjtBQTlCNUIsdUJBQXVCO0lBTG5DLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxzQkFBc0I7UUFDaEMseXRKQUFnRDs7S0FFbkQsQ0FBQztHQUNXLHVCQUF1QixDQXVZbkM7U0F2WVksdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xyXG5pbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBPbkluaXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSHR0cEJvZHlSZXFQYWdpbmF0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFBhcmFtZXRlciB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvbW9kZWxzL3V0aWwvYXBpLWFkYXB0ZXItc2VydmljZS1tb2RlbHMnO1xyXG5pbXBvcnQgeyBBcHBSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvbW9kZWxzL3V0aWwvYXBpLWR0by9yZXNwb25zZS1tb2RlbHMnO1xyXG5pbXBvcnQgeyBBcGlBZGFwdGVyU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgZG93bmxvYWRCbG9iRmlsZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvdXRpbCc7XHJcbmltcG9ydCB7IENvbnRhY3RDYXRlZ29yeU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgVGFibGVNb2RlbCB9IGZyb20gJy4uLy4uL2NhbXBhaWduLWluZGV4L21vZGVscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbGliLW5ldy1udW1iZXItYmFzZXMnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL25ldy1udW1iZXItYmFzZXMuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vbmV3LW51bWJlci1iYXNlcy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmV3TnVtYmVyQmFzZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyB0YXJnZXRBdWRpZW5jZTogRXZlbnRFbWl0dGVyPHtcclxuICAgICAgICB0YXJnZXRBdWRpZW5jZTogc3RyaW5nW107XHJcbiAgICAgICAgbnVtYmVyQ291bnQ6IG51bWJlcjtcclxuICAgICAgICBpc1VwbG9hZDogYm9vbGVhbjtcclxuICAgICAgICBmaWxlOiBhbnk7XHJcbiAgICB9PjtcclxuXHJcbiAgICBwdWJsaWMgdGFibGU6IFRhYmxlTW9kZWw7XHJcbiAgICBwdWJsaWMgaXNVcGxvYWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBpc1Nob3dVcGxvYWRDU1Y6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBjYXRlZ29yeVNlbGVjdGVkOiBDb250YWN0Q2F0ZWdvcnlNb2RlbFtdID0gW107XHJcbiAgICBwdWJsaWMgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbk1vZGVsPENvbnRhY3RDYXRlZ29yeU1vZGVsPih0cnVlLCBbXSk7XHJcbiAgICBwdWJsaWMgZXh0RmlsZUFjY2VwdGVkOiBzdHJpbmdbXSA9IFtcclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJyxcclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnLFxyXG4gICAgICAgICcuY3N2JyxcclxuICAgIF07XHJcbiAgICBwdWJsaWMgZmlsZVNlbGVjdGVkOiB7XHJcbiAgICAgICAgbmFtZTogc3RyaW5nO1xyXG4gICAgICAgIHRhcmdldFVSTDogc3RyaW5nO1xyXG4gICAgfSA9IG51bGw7XHJcblxyXG4gICAgcHJpdmF0ZSBjYXRlZ29yeVBhcmFtOiBIdHRwQm9keVJlcVBhZ2luYXRpb25Nb2RlbDtcclxuICAgIHByaXZhdGUgc3Vic2NyaWJlcnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIGlzUmVhZE9ubHlNb2RlOiBib29sZWFuO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoTWF0U29ydCkgbWF0U29ydDogTWF0U29ydDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGFwaUFkYXB0ZXJTZXJ2aWNlOiBBcGlBZGFwdGVyU2VydmljZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSB0b2FzdHI6IFRvYXN0clNlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMudGFyZ2V0QXVkaWVuY2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeVBhcmFtID0gbmV3IEh0dHBCb2R5UmVxUGFnaW5hdGlvbk1vZGVsKCk7XHJcblxyXG4gICAgICAgIHRoaXMuaW5pdFRhYmxlKCk7XHJcbiAgICAgICAgdGhpcy5nZXRDYXRlZ29yeUxpc3QoKTtcclxuXHJcbiAgICAgICAgdGhpcy50YXJnZXRBdWRpZW5jZS5lbWl0KHtcclxuICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IFtdLFxyXG4gICAgICAgICAgICBudW1iZXJDb3VudDogMCxcclxuICAgICAgICAgICAgaXNVcGxvYWQ6IHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy5nZW5lcmFsSW5mb3JtYXRpb24/LmZvcm0/LmlzVXBsb2FkLFxyXG4gICAgICAgICAgICBmaWxlOiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgdGFyZ2V0VVJMOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy50YXJnZXRVUkwsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0VGFibGUoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50YWJsZSA9IG5ldyBUYWJsZU1vZGVsKCk7XHJcbiAgICAgICAgdGhpcy50YWJsZS5sYWJlbHMgPSBbXHJcbiAgICAgICAgICAgICdzZWxlY3QnLFxyXG4gICAgICAgICAgICAnQ2F0ZWdvcnknLFxyXG4gICAgICAgICAgICAnTm8uIE9mIEN1c3RvbWVyJyxcclxuICAgICAgICAgICAgJ0NyZWF0ZWQgRGF0ZScsXHJcbiAgICAgICAgICAgICdVcGRhdGVkIERhdGUnLFxyXG4gICAgICAgIF07XHJcbiAgICAgICAgdGhpcy50YWJsZS5jb2x1bW5zID0gWydzZWxlY3QnLCAnbmFtZScsICd0b3RhbE1lbWJlcnMnLCAnY3JlYXRlZERhdGUnLCAndXBkYXRlZERhdGUnXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZ2V0Q2FtcGFpZ25TdG9yYWdlKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0ZWxpbi5jYW1wYWlnbicpXHJcbiAgICAgICAgICAgID8gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndGVsaW4uY2FtcGFpZ24nKSlcclxuICAgICAgICAgICAgOiB7fTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRFZGl0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChPYmplY3QuZW50cmllcyh0aGlzLmdldENhbXBhaWduU3RvcmFnZSkubGVuZ3RoID09PSAwKSByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuaXNTaG93VXBsb2FkQ1NWID0gdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LmdlbmVyYWxJbmZvcm1hdGlvbj8uZm9ybT8uaXNVcGxvYWQ7XHJcblxyXG4gICAgICAgIHRoaXMuZmlsZVNlbGVjdGVkID0ge1xyXG4gICAgICAgICAgICBuYW1lOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy5uYW1lLFxyXG4gICAgICAgICAgICB0YXJnZXRVUkw6IHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZUZpbGU/LnRhcmdldFVSTCxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLnRhYmxlLmRhdGFTb3VyY2UuZGF0YT8uZm9yRWFjaCgoZWFjaCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlPy5pbmNsdWRlcyhlYWNoLmlkKSlcclxuICAgICAgICAgICAgICAgIHRoaXMub25DaGVja2VkKHRydWUsIGVhY2gpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0Q2F0ZWdvcnlMaXN0KGZpbHRlcjogc3RyaW5nID0gJycpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzUmVhZE9ubHlNb2RlKSB0aGlzLmNhdGVnb3J5UGFyYW0ucGFnZVNpemUgPSAxMDAwO1xyXG5cclxuICAgICAgICBjb25zdCBwYXJhbWV0ZXJMaXN0OiBBcnJheTxQYXJhbWV0ZXI+ID0gW1xyXG4gICAgICAgICAgICB0aGlzLmluaXRQYXJhbSgncGFnZU5vJywgdGhpcy5jYXRlZ29yeVBhcmFtLnBhZ2VObywgJ251bWJlcicpLFxyXG4gICAgICAgICAgICB0aGlzLmluaXRQYXJhbSgncm93UGVyUGFnZScsIHRoaXMuY2F0ZWdvcnlQYXJhbS5wYWdlU2l6ZSwgJ251bWJlcicpLFxyXG4gICAgICAgICAgICB0aGlzLmluaXRQYXJhbSgnZmlsdGVyJywgZmlsdGVyLCAnc3RyaW5nJyksXHJcbiAgICAgICAgICAgIHRoaXMuaW5pdFBhcmFtKFxyXG4gICAgICAgICAgICAgICAgJ3BsYXRmb3JtJyxcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy5nZW5lcmFsSW5mb3JtYXRpb24/LmZvcm0/Lm1lZGl1bSxcclxuICAgICAgICAgICAgICAgICdzdHJpbmcnXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy5nZW5lcmFsSW5mb3JtYXRpb24/LmZvcm0/Lm1lZGl1bSA9PT0gJ0xJTkUnKVxyXG4gICAgICAgICAgICBwYXJhbWV0ZXJMaXN0LnB1c2goXHJcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRQYXJhbShcclxuICAgICAgICAgICAgICAgICAgICAnYWNjb3VudElkJyxcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5mb3JtPy5mcm9tPy5pZCxcclxuICAgICAgICAgICAgICAgICAgICAnc3RyaW5nJ1xyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pc1JlYWRPbmx5TW9kZSkgcGFyYW1ldGVyTGlzdC5wdXNoKHRoaXMuaW5pdFBhcmFtKCdzdW1tYXJ5JywgdHJ1ZSwgJ3N0cmluZycpKTtcclxuXHJcbiAgICAgICAgY29uc3Qgc3VicyA9IHRoaXMuYXBpQWRhcHRlclNlcnZpY2VcclxuICAgICAgICAgICAgLmV4ZWN1dGVBcGlSZXF1ZXN0KHBhcmFtZXRlckxpc3QsICcvYWRtaW4vY2F0ZWdvcnknLCAnR0VUJylcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcDogQXBwUmVzcG9uc2U8Q29udGFjdENhdGVnb3J5TW9kZWxbXT4pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzUmVhZE9ubHlNb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZS5kYXRhU291cmNlLmRhdGEgPSByZXNwLmRhdGE/LmZpbHRlcigoZWFjaCkgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlPy5pbmNsdWRlcyhlYWNoLmlkKVxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2F0ZWdvcnlTZWxlY3RlZCA9IHRoaXMudGFibGUuZGF0YVNvdXJjZS5kYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0RWRpdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmRhdGFTb3VyY2UuZGF0YSA9IHJlc3AuZGF0YTtcclxuICAgICAgICAgICAgICAgIHRoaXMudGFibGUuc2V0TmV4dFBhZ2UocmVzcC5oYXZlTmV4dCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbml0RWRpdCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVycy5wdXNoKHN1YnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdFBhcmFtKF9uYW1lOiBzdHJpbmcsIF92YWx1ZTogYW55LCBfdHlwZTogc3RyaW5nKTogUGFyYW1ldGVyIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBuYW1lOiBfbmFtZSxcclxuICAgICAgICAgICAgdmFsdWU6IF92YWx1ZSxcclxuICAgICAgICAgICAgaW46ICdxdWVyeScsXHJcbiAgICAgICAgICAgIHR5cGU6IF90eXBlLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVwZGF0ZVNlYXJjaChzZWFyY2hWYWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50YWJsZS5yZXNldFBhZ2UoKTtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5UGFyYW0ucGFnZU5vID0gdGhpcy50YWJsZS5wYWdlO1xyXG4gICAgICAgIHRoaXMuZ2V0Q2F0ZWdvcnlMaXN0KHNlYXJjaFZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdXBkYXRlUGFnZShldmVudDogYW55KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMudGFibGUucGFnZVNpemUgIT09IGV2ZW50Py5wYWdlU2l6ZSkgdGhpcy50YWJsZS5yZXNldFBhZ2UoKTtcclxuXHJcbiAgICAgICAgdGhpcy50YWJsZS5wYWdlID1cclxuICAgICAgICAgICAgdGhpcy50YWJsZS5wYWdlU2l6ZSAhPT0gZXZlbnQ/LnBhZ2VTaXplID8gdGhpcy50YWJsZS5wYWdlIDogZXZlbnQ/LnBhZ2VJbmRleCArIDE7XHJcbiAgICAgICAgdGhpcy50YWJsZS5wYWdlU2l6ZSA9IGV2ZW50Py5wYWdlU2l6ZTtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5UGFyYW0ucGFnZU5vID0gdGhpcy50YWJsZS5wYWdlO1xyXG4gICAgICAgIHRoaXMuY2F0ZWdvcnlQYXJhbS5wYWdlU2l6ZSA9IHRoaXMudGFibGUucGFnZVNpemU7XHJcblxyXG4gICAgICAgIHRoaXMuZ2V0Q2F0ZWdvcnlMaXN0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNvcnQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50YWJsZS5kYXRhU291cmNlLnNvcnQgPSB0aGlzLm1hdFNvcnQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNoZWNrYm94TGFiZWwocm93PzogQ29udGFjdENhdGVnb3J5TW9kZWwpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICghcm93KSByZXR1cm4gYCR7dGhpcy5pc0FsbFNlbGVjdGVkKCkgPyAnZGVzZWxlY3QnIDogJ3NlbGVjdCd9IGFsbGA7XHJcblxyXG4gICAgICAgIHJldHVybiBgJHt0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkKHJvdykgPyAnZGVzZWxlY3QnIDogJ3NlbGVjdCd9IHJvdyAke3Jvdy5uYW1lICsgMX1gO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc0FsbFNlbGVjdGVkKCkge1xyXG4gICAgICAgIGNvbnN0IG51bVNlbGVjdGVkID0gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoO1xyXG4gICAgICAgIGNvbnN0IG51bVJvd3MgPSB0aGlzLnRhYmxlLmRhdGFTb3VyY2UuZGF0YT8ubGVuZ3RoID8/IDA7XHJcblxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgdGhpcy50YWJsZS5kYXRhU291cmNlLmRhdGEgJiZcclxuICAgICAgICAgICAgdGhpcy50YWJsZS5kYXRhU291cmNlLmRhdGEubGVuZ3RoID4gMCAmJlxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZCAmJlxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGggPiAwXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgZGF0YSBvZiB0aGlzLnRhYmxlLmRhdGFTb3VyY2UuZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkLmZpbHRlcigodCkgPT4gdC5pZCA9PT0gZGF0YS5pZCkubGVuZ3RoID4gMCkgY29udGludWU7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbnVtU2VsZWN0ZWQgPT09IG51bVJvd3M7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG1hc3RlclRvZ2dsZShpc0NoZWNrZWQ6IGJvb2xlYW4pIHtcclxuICAgICAgICBpZiAoIWlzQ2hlY2tlZCkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpO1xyXG4gICAgICAgICAgICB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQgPSBbXTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMudGFyZ2V0QXVkaWVuY2UuZW1pdCh7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXRBdWRpZW5jZTogW10sXHJcbiAgICAgICAgICAgICAgICBudW1iZXJDb3VudDogMCxcclxuICAgICAgICAgICAgICAgIGlzVXBsb2FkOiB0aGlzLmlzU2hvd1VwbG9hZENTVixcclxuICAgICAgICAgICAgICAgIGZpbGU6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFVSTDogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8udGFyZ2V0VVJMLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3QoLi4udGhpcy50YWJsZS5kYXRhU291cmNlLmRhdGEpO1xyXG4gICAgICAgIHRoaXMuY2F0ZWdvcnlTZWxlY3RlZCA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkO1xyXG5cclxuICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlLmVtaXQoe1xyXG4gICAgICAgICAgICB0YXJnZXRBdWRpZW5jZTogdGhpcy5jYXRlZ29yeVNlbGVjdGVkLm1hcCgodCkgPT4gdC5pZCksXHJcbiAgICAgICAgICAgIG51bWJlckNvdW50OiB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQucmVkdWNlKChzdW0sIHgpID0+IHN1bSArIHgudG90YWxNZW1iZXJzLCAwKSxcclxuICAgICAgICAgICAgaXNVcGxvYWQ6IHRoaXMuaXNTaG93VXBsb2FkQ1NWLFxyXG4gICAgICAgICAgICBmaWxlOiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgdGFyZ2V0VVJMOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy50YXJnZXRVUkwsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uQ2hlY2tlZChpc0NoZWNrZWQ6IGJvb2xlYW4sIHJvdzogQ29udGFjdENhdGVnb3J5TW9kZWwpIHtcclxuICAgICAgICBpZiAoIWlzQ2hlY2tlZCkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5kZXNlbGVjdCguLi50aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5maWx0ZXIoKHgpID0+IHguaWQgPT09IHJvdy5pZCkpO1xyXG4gICAgICAgICAgICB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMudGFyZ2V0QXVkaWVuY2UuZW1pdCh7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXRBdWRpZW5jZTogdGhpcy5jYXRlZ29yeVNlbGVjdGVkLm1hcCgodCkgPT4gdC5pZCksXHJcbiAgICAgICAgICAgICAgICBudW1iZXJDb3VudDogdGhpcy5jYXRlZ29yeVNlbGVjdGVkLnJlZHVjZSgoc3VtLCB4KSA9PiBzdW0gKyB4LnRvdGFsTWVtYmVycywgMCksXHJcbiAgICAgICAgICAgICAgICBpc1VwbG9hZDogdGhpcy5pc1Nob3dVcGxvYWRDU1YsXHJcbiAgICAgICAgICAgICAgICBmaWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8ubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRVUkw6IHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZUZpbGU/LnRhcmdldFVSTCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0KHJvdyk7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeVNlbGVjdGVkID0gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQ7XHJcblxyXG4gICAgICAgIHRoaXMudGFyZ2V0QXVkaWVuY2UuZW1pdCh7XHJcbiAgICAgICAgICAgIHRhcmdldEF1ZGllbmNlOiB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQubWFwKCh0KSA9PiB0LmlkKSxcclxuICAgICAgICAgICAgbnVtYmVyQ291bnQ6IHRoaXMuY2F0ZWdvcnlTZWxlY3RlZC5yZWR1Y2UoKHN1bSwgeCkgPT4gc3VtICsgeC50b3RhbE1lbWJlcnMsIDApLFxyXG4gICAgICAgICAgICBpc1VwbG9hZDogdGhpcy5pc1Nob3dVcGxvYWRDU1YsXHJcbiAgICAgICAgICAgIGZpbGU6IHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZUZpbGU/Lm5hbWUsXHJcbiAgICAgICAgICAgICAgICB0YXJnZXRVUkw6IHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZUZpbGU/LnRhcmdldFVSTCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNDaGVja2VkKHJvdzogQ29udGFjdENhdGVnb3J5TW9kZWwpIHtcclxuICAgICAgICBjb25zdCBmb3VuZCA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkLmZpbmQoKHgpID0+IHguaWQgPT09IHJvdy5pZCk7XHJcbiAgICAgICAgcmV0dXJuIGZvdW5kID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkRvd25sb2FkU2FtcGxlU2VydmljZSgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBwYXJhbWV0ZXJMaXN0OiBBcnJheTxQYXJhbWV0ZXI+ID0gW1xyXG4gICAgICAgICAgICB0aGlzLmluaXRQYXJhbShcclxuICAgICAgICAgICAgICAgICdwbGF0Zm9ybScsXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5mb3JtPy50ZW1wbGF0ZT8ucGxhdGZvcm0sXHJcbiAgICAgICAgICAgICAgICAnc3RyaW5nJ1xyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICB0aGlzLmluaXRQYXJhbShcclxuICAgICAgICAgICAgICAgICd0ZW1wbGF0ZU5hbWUnLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LmdlbmVyYWxJbmZvcm1hdGlvbj8uZm9ybT8udGVtcGxhdGU/Lm5hbWUsXHJcbiAgICAgICAgICAgICAgICAnc3RyaW5nJ1xyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICB0aGlzLmluaXRQYXJhbShcclxuICAgICAgICAgICAgICAgICd0ZW1wbGF0ZUxhbmcnLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LmdlbmVyYWxJbmZvcm1hdGlvbj8uZm9ybT8udGVtcGxhdGU/LmxhbmcsXHJcbiAgICAgICAgICAgICAgICAnc3RyaW5nJ1xyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICB0aGlzLmluaXRQYXJhbShcclxuICAgICAgICAgICAgICAgICdjYXRlZ29yeScsXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQ/Lm1hcCgodCkgPT4gdC5pZCkuam9pbigpID8/IFtdLFxyXG4gICAgICAgICAgICAgICAgJ3N0cmluZydcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICBjb25zdCBzdWJzID0gdGhpcy5hcGlBZGFwdGVyU2VydmljZVxyXG4gICAgICAgICAgICAuZXhlY3V0ZUFwaVJlcXVlc3QocGFyYW1ldGVyTGlzdCwgJy9tZXNzYWdlL2J1bGt1cGxvYWQvdGVtcGxhdGUnLCAnR0VUJywgdHJ1ZSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcDogQXBwUmVzcG9uc2U8YW55PikgPT4ge1xyXG4gICAgICAgICAgICAgICAgZG93bmxvYWRCbG9iRmlsZShyZXNwLCAnU2FtcGxlLVVwbG9hZFBhcmFtZXRlci54bHN4Jyk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmliZXJzLnB1c2goc3Vicyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBFdmVudCkge1xyXG4gICAgICAgIGNvbnN0IGZpbGU6IEZpbGVMaXN0ID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5maWxlcztcclxuICAgICAgICBjb25zdCBNQVhJTVVNX1NJWkUgPSAzMCAqIDEwMjQgKiAxMDI0O1xyXG5cclxuICAgICAgICBpZiAoZmlsZS5sZW5ndGggPT09IDApIHJldHVybjtcclxuXHJcbiAgICAgICAgaWYgKGZpbGVbMF0uc2l6ZSA+IE1BWElNVU1fU0laRSkge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignVXBsb2FkIG1lZGlhIGZhaWxlZCwgbWF4IHNpemUgMzBtYicpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmdldFByZXNpZ25lZFVybFNlcnZpY2UoZmlsZVswXSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRQcmVzaWduZWRVcmxTZXJ2aWNlKGZpbGU6IEZpbGUpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlzVXBsb2FkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVyTGlzdDogQXJyYXk8UGFyYW1ldGVyPiA9IFtcclxuICAgICAgICAgICAgeyBuYW1lOiAnZmlsZU5hbWUnLCB2YWx1ZTogZmlsZS5uYW1lLCBpbjogJ3F1ZXJ5JywgdHlwZTogJ3N0cmluZycgfSxcclxuICAgICAgICAgICAgeyBuYW1lOiAnZmlsZVR5cGUnLCB2YWx1ZTogZmlsZS50eXBlLCBpbjogJ3F1ZXJ5JywgdHlwZTogJ3N0cmluZycgfSxcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICBjb25zdCBzdWJzID0gdGhpcy5hcGlBZGFwdGVyU2VydmljZVxyXG4gICAgICAgICAgICAuZXhlY3V0ZUFwaVJlcXVlc3QocGFyYW1ldGVyTGlzdCwgJy9jYW1wYWlnbi91cGxvYWQvcHJlLXNpZ25lZC11cmwnLCAnR0VUJylcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChyZXNwOiBBcHBSZXNwb25zZTxhbnk+KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3AgJiYgcmVzcC5kYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkVG9TM1NlcnZpY2UoZmlsZSwgcmVzcC5kYXRhLnVybCwgcmVzcC5kYXRhLmZpbGVOYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKCkgPT4gKHRoaXMuaXNVcGxvYWQgPSBmYWxzZSlcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVycy5wdXNoKHN1YnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBsb2FkVG9TM1NlcnZpY2UoZmlsZTogRmlsZSwgczNVcmw6IHN0cmluZywgZmlsZU5hbWVTMzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5hcGlBZGFwdGVyU2VydmljZS51cGxvYWRGaWxlVG9TMyhzM1VybCwgZmlsZSkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbmFsaXplVGFyZ2V0RmlsZVNlcnZpY2UoZmlsZU5hbWVTMyk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdGYWlsZWQgdXBsb2FkaW5nIHRvIFMzIHN0b3JhZ2UnKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNVcGxvYWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1MzIFVwbG9hZCBFcnJvcjonLCBlcnIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGZpbmFsaXplVGFyZ2V0RmlsZVNlcnZpY2UoZmlsZU5hbWVTMzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgY2FtcGFpZ25JZCA9IHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy5nZW5lcmFsSW5mb3JtYXRpb24/LmlkO1xyXG4gICAgICAgIGNvbnN0IHBhcmFtZXRlckxpc3Q6IEFycmF5PFBhcmFtZXRlcj4gPSBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIG5hbWU6ICdib2R5JyxcclxuICAgICAgICAgICAgICAgIHZhbHVlOiB7IGZpbGVOYW1lOiBmaWxlTmFtZVMzIH0sXHJcbiAgICAgICAgICAgICAgICBpbjogJ2JvZHknLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXHJcbiAgICAgICAgICAgICAgICB3aXRob3V0S2V5RGF0YTogdHJ1ZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICBjb25zdCBzdWJzID0gdGhpcy5hcGlBZGFwdGVyU2VydmljZVxyXG4gICAgICAgICAgICAuZXhlY3V0ZUFwaVJlcXVlc3QocGFyYW1ldGVyTGlzdCwgYC9jYW1wYWlnbi8ke2NhbXBhaWduSWR9L3RhcmdldGZpbGVgLCAnUE9TVCcpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAocmVzcDogQXBwUmVzcG9uc2U8YW55PikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghcmVzcCkgcmV0dXJuO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5pbmZvKCdVcGxvYWQgWExTWCBoYXMgYmVlbiB1cGxvYWRlZCBzdWNjZXNzZnVsbHknKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzVXBsb2FkID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0QXVkaWVuY2UuZW1pdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldEF1ZGllbmNlOiB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQubWFwKCh0KSA9PiB0LmlkKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyQ291bnQ6IHRoaXMuY2F0ZWdvcnlTZWxlY3RlZC5yZWR1Y2UoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3VtLCB4KSA9PiBzdW0gKyB4LnRvdGFsTWVtYmVycyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXNVcGxvYWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGZpbGVOYW1lUzMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRVUkw6IHJlc3AuZGF0YT8udGFyZ2V0VVJMIHx8ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICgpID0+ICh0aGlzLmlzVXBsb2FkID0gZmFsc2UpXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlcnMucHVzaChzdWJzKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmliZXJzLmZvckVhY2goKGVhY2gpID0+IGVhY2gudW5zdWJzY3JpYmUoKSk7XHJcbiAgICB9XHJcbn1cclxuIl19
|