ng-pli-commons 0.0.1769 → 0.0.1772

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.
@@ -222,6 +222,9 @@ export class ApplicationService {
222
222
  verifyAutoAnalysisDoc(sendDocAnalysisAutoDto) {
223
223
  return this.httpClient.post(this.environment.host.backend.backoffice + 'application/verifyAutoAnalysisDoc', sendDocAnalysisAutoDto);
224
224
  }
225
+ getAppCountByPromCodigo(promCodigo) {
226
+ return this.httpClient.get(this.environment.host.backend.backoffice + 'application/getAppCountByPromCodigo', { params: new HttpParams().set('promCodigo', promCodigo) });
227
+ }
225
228
  }
226
229
  ApplicationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ApplicationService, deps: [{ token: 'environment' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
227
230
  ApplicationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ApplicationService, providedIn: 'root' });
@@ -234,4 +237,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
234
237
  type: Inject,
235
238
  args: ['environment']
236
239
  }] }, { type: i1.HttpClient }]; } });
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXBsaS1jb21tb25zL3NyYy9saWIvc2VydmljZXMvYXBwbGljYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFpQm5ELE1BQU0sT0FBTyxrQkFBa0I7SUFHOUIsWUFBMkMsV0FBZ0IsRUFBVSxVQUFzQjtRQUFoRCxnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7UUFGbkYsZUFBVSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUMsRUFBRSxDQUFDO0lBRUssQ0FBQztJQUVoRyxzQ0FBc0M7SUFDdEMsT0FBTyxDQUFDLEVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxxQkFBcUIsRUFDaEUsRUFBRSxNQUFNLEVBQUUsSUFBSSxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQzFDLENBQUM7SUFDSCxDQUFDO0lBRUQsNERBQTREO0lBQzVELFlBQVksQ0FBQyxFQUFVO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsMEJBQTBCLEVBQ3RFLEVBQUUsTUFBTSxFQUFFLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLElB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Q0FBc0M7SUFDdEMsOEJBQThCLENBQzdCLG9DQUEwRTtRQUUxRSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLDRDQUE0QyxFQUN2RixvQ0FBb0MsQ0FDcEMsQ0FBQztJQUNILENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxpQkFBb0M7UUFDOUQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyx3Q0FBd0MsRUFDcEYsaUJBQWlCLENBQ2pCLENBQUM7SUFDSCxDQUFDO0lBRUQscUJBQXFCLENBQUMsc0JBQThDO1FBQ25FLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsbUNBQW1DLEVBQzlFLHNCQUFzQixDQUN0QixDQUFDO0lBQ0gsQ0FBQzs7K0dBOWFXLGtCQUFrQixrQkFHVixhQUFhO21IQUhyQixrQkFBa0IsY0FGbEIsTUFBTTsyRkFFTixrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCOzswQkFJYSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcblx0QXBwbGljYXRpb24sXHJcblx0QXBwbGljYXRpb25EYXRhRm9ybVJlcXVlc3QsXHJcblx0RGF0YVRhYmxlUGFyYW1ldGVycyxcclxuXHRDaGFuZ2VTdGF0dXNCeUNhdGVnb3J5RHRvLFxyXG5cdEluaXRpYWxSZWNvcmQsXHJcblx0QXBwbGljYXRpb25WYWx1ZVJlcXVlc3RUTyxcclxuXHRDaGFuZ2VTdGF0dXNEb2N1bWVuVmFsaWRhdGlvblJlcXVlc3QsXHJcblx0U2VuZERvY0FuYWx5c2lzQXV0b0R0byxcclxuXHRBcHBsaWNhdGlvbkZvcm1UT1xyXG59IGZyb20gJ25nLXBsaS11dGlsJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25TZXJ2aWNlIHtcclxuXHRwcml2YXRlIGhlYWRlckpzb24gPSB7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSkgfTtcclxuXHJcblx0Y29uc3RydWN0b3IoQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50OiBhbnksIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCkgeyB9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIGFuIGFwcGxpY2F0aW9uIGJ5IGlkICovXHJcblx0Z2V0QnlJZChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2dldEJ5SWQnLFxyXG5cdFx0XHR7IHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2lkJywgaWQpIH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgcmV0dXJucyBhbiBhcHBsaWNhdGlvbiBieSBpZCB3aXRoIGJhc2ljIHByb3BlcnRpZXMgKi9cclxuXHRnZXRCeUlkTGlnaHQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZnJvbnRvZmZpY2UgKyAnYXBwbGljYXRpb24vZ2V0QnlJZExpZ2h0JyxcclxuXHRcdFx0eyBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdpZCcsIGlkKSB9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgYW4gYXBwbGljYXRpb24gYnkgaWQgd2l0aCB0aGUgQnVkZ2V0IFNpbXVsYXRpb24gKi9cclxuXHRnZXRCdWRnZXRTaW11bGF0aW9uQnlJZChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5mcm9udG9mZmljZSArICdhcHBsaWNhdGlvbi9nZXRCdWRnZXRTaW11bGF0aW9uQnlJZCcsXHJcblx0XHRcdHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgnaWQnLCBpZCkgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIGFuIGFwcGxpY2F0aW9uIGJ5IGlkIHdpdGggYmFzaWMgcHJvcGVydGllcyAqL1xyXG5cdGdldEJ5SWRMaWdodEluKGlkTGlzdDogc3RyaW5nW10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5mcm9udG9mZmljZSArICdhcHBsaWNhdGlvbi9nZXRCeUlkTGlnaHRJbicsXHJcblx0XHRcdGlkTGlzdFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBsaXN0IG9mIGFwcGxpY2F0aW9uIGJ5IGRhdGFUYWJsZVBhcmFtZXRlcnMgKi9cclxuXHRnZXRBcHBsaWNhdGlvbnNCeURhdGFUYWJsZVBhcmFtZXRlcnMoXHJcblx0XHRkYXRhVGFibGVQYXJhbWV0ZXJzOiBEYXRhVGFibGVQYXJhbWV0ZXJzXHJcblx0KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuYmFja29mZmljZSArXHJcblx0XHRcdCdhcHBsaWNhdGlvbi9nZXRBcHBsaWNhdGlvbnNCeURhdGFUYWJsZVBhcmFtZXRlcnMnLFxyXG5cdFx0XHRkYXRhVGFibGVQYXJhbWV0ZXJzXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgdGhlIGxpc3Qgb2YgYXBwbGljYXRpb24gYnkgcHJvbSBjb2RpZ28gKi9cclxuXHRnZXRCeVByb21Db2RpZ28ocHJvbUNvZGlnbzogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2dldEJ5UHJvbUNvZGlnbycsXHJcblx0XHRcdHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgncHJvbUNvZGlnbycsIHByb21Db2RpZ28udG9TdHJpbmcoKSkgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBsaXN0IG9mIGFwcGxpY2F0aW9uIGJ5IHVzZXJuYW1lICovXHJcblx0Z2V0QnlVc2VybmFtZSh1c2VybmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5mcm9udG9mZmljZSArICdhcHBsaWNhdGlvbi9nZXRCeVVzZXJuYW1lJyxcclxuXHRcdFx0eyBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCd1c2VybmFtZScsIHVzZXJuYW1lKSB9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHNhdmVzIGFuIGFwcGxpY2F0aW9uICovXHJcblx0c2F2ZShhcHBsaWNhdGlvbjogQXBwbGljYXRpb24pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5mcm9udG9mZmljZSArICdhcHBsaWNhdGlvbi9zYXZlJyxcclxuXHRcdFx0YXBwbGljYXRpb24sXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBpdCByZXR1cm5zIHRoZSBsYXN0IG51bWJlciAqL1xyXG5cdGdldExhc3ROdW1iZXIocHJvbUNvZGlnbzogbnVtYmVyKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZnJvbnRvZmZpY2UgKyAnYXBwbGljYXRpb24vZ2V0TGFzdE51bWJlcicsXHJcblx0XHRcdHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgncHJvbUNvZGlnbycsIHByb21Db2RpZ28udG9TdHJpbmcoKSkgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBpdCBjaGFuZ2VzIHRoZSBzdGF0dXMgKi9cclxuXHRjaGFuZ2VTdGF0dXNCeUNhdGVnb3J5KFxyXG5cdFx0bENoYW5nZVN0YXR1c0J5Q2F0ZWdvcnlEdG86IENoYW5nZVN0YXR1c0J5Q2F0ZWdvcnlEdG9bXVxyXG5cdCk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmJhY2tvZmZpY2UgKyAnYXBwbGljYXRpb24vY2hhbmdlU3RhdHVzQnlDYXRlZ29yeScsXHJcblx0XHRcdGxDaGFuZ2VTdGF0dXNCeUNhdGVnb3J5RHRvLFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogaXQgY2hhbmdlcyB0aGUgc3RhdHVzICovXHJcblx0Y2hhbmdlTWFzc2l2ZVN0YXR1cyhsQXBwbGljYXRpb246IEFwcGxpY2F0aW9uW10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2NoYW5nZU1hc3NpdmVTdGF0dXMnLFxyXG5cdFx0XHRsQXBwbGljYXRpb24sXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBjaGFuZ2VDb2xvcihhcHBsaWNhdGlvbkxpc3Q6IHN0cmluZ1tdLCBjb2xvcjogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdGNvbnN0IHBhcmFtcyA9IHsgYXBwbGljYXRpb25JZDogYXBwbGljYXRpb25MaXN0LCBjb2xvcjogY29sb3IgfTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucHV0KFxyXG5cdFx0XHRgJHt0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlfWFwcGxpY2F0aW9uL2NoYW5nZUNvbG9yYCxcclxuXHRcdFx0cGFyYW1zXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIGl0IGdldHMgdGhlIGhpc3Rvcnkgc3RhdGUgKi9cclxuXHRnZXRIaXN0b3J5U3RhdGUoYXBwbGljYXRpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2dldEhpc3RvcnlTdGF0ZScsXHJcblx0XHRcdHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgnYXBwbGljYXRpb25JZCcsIGFwcGxpY2F0aW9uSWQudG9TdHJpbmcoKSkgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBpdCBzYXZlcyBtYXNzaXZlbHkgKi9cclxuXHRzYXZlTWFzc2l2ZShcclxuXHRcdGxpc3RBcHBsaWNhdGlvbkRhdGFGb3JtUmVxdWVzdDogQXBwbGljYXRpb25EYXRhRm9ybVJlcXVlc3RbXSxcclxuXHRcdGFwcGxpY2F0aW9uc1RvVmVyaWZ5RG9jdW1lbnQ6IFN0cmluZ1tdLFxyXG5cdFx0cHJvbUNvZGlnbzogbnVtYmVyLFxyXG5cdFx0c3RhdHVzUmFkaWNhZG86IGJvb2xlYW5cclxuXHQpIHtcclxuXHRcdGxldCBsaXN0RGF0YUFwcGxpY2F0aW9uID0ge1xyXG5cdFx0XHRsaXN0QXBwbGljYXRpb25EYXRhRm9ybVJlcXVlc3Q6IGxpc3RBcHBsaWNhdGlvbkRhdGFGb3JtUmVxdWVzdCxcclxuXHRcdFx0YXBwbGljYXRpb25zVG9WZXJpZnlEb2N1bWVudDogYXBwbGljYXRpb25zVG9WZXJpZnlEb2N1bWVudCxcclxuXHRcdFx0cHJvbUNvZGlnbzogcHJvbUNvZGlnbyxcclxuXHRcdFx0c3RhdHVzUmFkaWNhZG86IHN0YXR1c1JhZGljYWRvXHJcblx0XHR9O1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5jb25maWd1cmF0aW9uICsgJ2FwcGxpY2F0aW9uLWRhdGFmb3JtL3NhdmVNdWx0aXBsZScsXHJcblx0XHRcdGxpc3REYXRhQXBwbGljYXRpb24sXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIHNhdmUgbXVsdGlwbGUgcmVjb3Jkc1xyXG5cdCAqIEBwYXJhbSBsaXN0RGF0YSArXHJcblx0ICovXHJcblx0Z2V0QnlEYXRhVGFibGVzUGFyYW1ldGVycyhkYXRhVGFibGVQYXJhbWV0ZXJzOiBEYXRhVGFibGVQYXJhbWV0ZXJzKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmZyb250b2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2dldEJ5RGF0YVRhYmxlc1BhcmFtZXRlcnMnLFxyXG5cdFx0XHRkYXRhVGFibGVQYXJhbWV0ZXJzLFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBJdCBnZXRzIHRoZSBiYXNpYyBpbmZvcm1hdGlvbiBvZiB0aGUgYXBwbGljYXRpb24gdG8gc2hvdyBpbiBhc3NpZ24gdGFza1xyXG5cdCAqIEBwYXJhbSB0YXNrSWRcclxuXHQgKiBAcGFyYW0gcHJvbUNvZGlnb1xyXG5cdCAqIEBwYXJhbSByZXZpZXdlclxyXG5cdCAqL1xyXG5cdGdldEJ5VGFza0lkUHJvbUNvZGlnb0FuZFJldmlld2VyKGRhdGFUYWJsZVBhcmFtZXRlcnM6IERhdGFUYWJsZVBhcmFtZXRlcnMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2dldEJ5VGFza1Byb21Db2RpZ29BbmRSZXZpZXdlcicsXHJcblx0XHRcdGRhdGFUYWJsZVBhcmFtZXRlcnMsXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEl0IGdldHMgYXBwbGljYXRpb25zIGJ5IGRhdGF0YWJsZSBwYXJhbWV0ZXJzIGZyb20gYmFja29mZmljZVxyXG5cdCAqIEBwYXJhbSBkYXRhVGFibGVQYXJhbWV0ZXJzXHJcblx0ICovXHJcblx0Z2V0QmFja0FwcEJ5RGF0YVRhYmxlc1BhcmFtZXRlcnMoZGF0YVRhYmxlUGFyYW1ldGVyczogRGF0YVRhYmxlUGFyYW1ldGVycykge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2dldEJ5RGF0YVRhYmxlc1BhcmFtZXRlcnMnLFxyXG5cdFx0XHRkYXRhVGFibGVQYXJhbWV0ZXJzLFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBzYXZlIG11bHRpcGxlIHJlY29yZHNcclxuXHQgKiBAcGFyYW0gbGlzdERhdGEgK1xyXG5cdCAqL1xyXG5cdGdldEJ5RGF0YVRhYmxlc1BhcmFtZXRlcnNBcHAoZGF0YVRhYmxlUGFyYW1ldGVyczogRGF0YVRhYmxlUGFyYW1ldGVycykge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2dldEJ5RGF0YVRhYmxlc1BhcmFtZXRlcnNBcHAnLFxyXG5cdFx0XHRkYXRhVGFibGVQYXJhbWV0ZXJzLFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgcmV0dXJucyB0aGUgbGlzdCBvZiBhcHBsaWNhdGlvbiBieSBwcm9tIGNvZGlnbyAqL1xyXG5cdGdldEJ5TnVtYmVyQW5kUHJvbUNvZGlnbyhwcm9tQ29kaWdvOiBudW1iZXIsIG51bWJlcjogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2dldEJ5TnVtYmVyQW5kUHJvbUNvZGlnbycsXHJcblx0XHRcdHtcclxuXHRcdFx0XHRwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKClcclxuXHRcdFx0XHRcdC5zZXQoJ3Byb21Db2RpZ28nLCBwcm9tQ29kaWdvLnRvU3RyaW5nKCkpXHJcblx0XHRcdFx0XHQuc2V0KCdudW1iZXInLCBudW1iZXIudG9TdHJpbmcoKSlcclxuXHRcdFx0fVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdGFjY2VwdENyZWRpdChhcHBsaWNhdGlvbjogQXBwbGljYXRpb24pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5mcm9udG9mZmljZSArICdhcHBsaWNhdGlvbi9hY2NlcHRDcmVkaXQnLFxyXG5cdFx0XHRhcHBsaWNhdGlvbixcclxuXHRcdFx0dGhpcy5oZWFkZXJKc29uXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0Y29uZmlybUJ1ZGdldEFwcG9pbnRtZW50KGFwcGxpY2F0aW9uOiBBcHBsaWNhdGlvbik6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmZyb250b2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2NvbmZpcm1CdWRnZXRBcHBvaW50bWVudCcsXHJcblx0XHRcdGFwcGxpY2F0aW9uLFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRpbml0R3VhcmFudGVlUHJvY2VzcyhhcHBsaWNhdGlvbjogQXBwbGljYXRpb24pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2luaXRHdWFyYW50ZWVQcm9jZXNzJyxcclxuXHRcdFx0YXBwbGljYXRpb24sXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdGdldExlZ2FsaXphdGlvbkFuZEVuc3VyYW5jZUJ5QXBwbGljYXRpb25JZChhcHBsaWNhdGlvbklkOiBTdHJpbmdbXSk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmJhY2tvZmZpY2UgK1xyXG5cdFx0XHQnYXBwbGljYXRpb24vZ2V0TGVnYWxpemF0aW9uQW5kRW5zdXJhbmNlQnlBcHBsaWNhdGlvbklkJyxcclxuXHRcdFx0YXBwbGljYXRpb25JZCxcclxuXHRcdFx0dGhpcy5oZWFkZXJKc29uXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0Z2VuZXJhdGVCYW5rVmlzaW9uRmlsZXMoYXBwbGljYXRpb25JZDogU3RyaW5nW10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2dlbmVyYXRlQmFua1Zpc2lvbkZpbGVzJyxcclxuXHRcdFx0YXBwbGljYXRpb25JZCxcclxuXHRcdFx0dGhpcy5oZWFkZXJKc29uXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0c2F2ZUFjY2VwdERhdGFQcm9jZXNzaW5nKGFwcGxpY2F0aW9uOiBBcHBsaWNhdGlvbik6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmZyb250b2ZmaWNlICsgJ2FwcGxpY2F0aW9uL3NhdmVBY2NlcHREYXRhUHJvY2Vzc2luZycsXHJcblx0XHRcdGFwcGxpY2F0aW9uLFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBTYXZlIHRvdGFsIGJ1ZGdldCBhbW91bnRzLCB0aGUgY3JlZGl0QWNjZXB0ZWQgY291bGQgYmUgbnVsbCwgdGhlIHNlcnZpY2Ugc2VhcmNoIHRoaXMuXHJcblx0ICogQHBhcmFtIGFwcGxpY2F0aW9uQnVkZ2V0VG90YWxBbW91bnQgQW4ganNvbiBvYmplY3Qgd2l0aDogYXBwbGljYXRpb25CdWRnZXRUb3RhbCwgYXBwbGljYXRpb25JZDpzdHJpbmcsIGNyZWRpdEFjY2VwdGVkOmJvb2xlYW5cclxuXHQgKi9cclxuXHRzYXZlQnVkZ2V0VG90YWxBbW91bnQoYXBwbGljYXRpb25CdWRnZXRUb3RhbEFtb3VudDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZnJvbnRvZmZpY2UgKyAnYXBwbGljYXRpb24vc2F2ZUJ1ZGdldFRvdGFsQW1vdW50JyxcclxuXHRcdFx0YXBwbGljYXRpb25CdWRnZXRUb3RhbEFtb3VudCxcclxuXHRcdFx0dGhpcy5oZWFkZXJKc29uXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU2F2ZSBmaW5hbmNpbmcgb2JzZXJ2YXRpb24gaW4gYnVkZ2V0IGFwcGxpY2F0aW9uLlxyXG5cdCAqIEBwYXJhbSBBcHBsaWNhdGlvbkJ1ZGdldE9ic2VydmF0aW9uIEFuIGpzb24gb2JqZWN0IHdpdGg6IG9ic2VydmF0aW9uOnN0cmluZywgYXBwbGljYXRpb25JZDpzdHJpbmdcclxuXHQgKi9cclxuXHRzYXZlT2JzZXJ2YXRpb25GaW5hbmNpbmdCdWRnZXQoQXBwbGljYXRpb25CdWRnZXRPYnNlcnZhdGlvbjogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZnJvbnRvZmZpY2UgK1xyXG5cdFx0XHQnYXBwbGljYXRpb24vc2F2ZU9ic2VydmF0aW9uRmluYW5jaW5nQnVkZ2V0JyxcclxuXHRcdFx0QXBwbGljYXRpb25CdWRnZXRPYnNlcnZhdGlvbixcclxuXHRcdFx0dGhpcy5oZWFkZXJKc29uXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0YmxvY2tCdWRnZXQoYXBwbGljYXRpb25JZDogU3RyaW5nKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmZyb250b2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2Jsb2NrQnVkZ2V0JyxcclxuXHRcdFx0YXBwbGljYXRpb25JZCxcclxuXHRcdFx0dGhpcy5oZWFkZXJKc29uXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0dW5ibG9ja0J1ZGdldChhcHBsaWNhdGlvbklkOiBTdHJpbmcsIG9ic2VydmF0aW9uOiBTdHJpbmcpIHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZnJvbnRvZmZpY2UgKyAnYXBwbGljYXRpb24vdW5ibG9ja0J1ZGdldCcsXHJcblx0XHRcdHsgYXBwbGljYXRpb25JZDogYXBwbGljYXRpb25JZCwgb2JzZXJ2YXRpb246IG9ic2VydmF0aW9uIH0sXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdGlzQmxvY2tCdWRnZXQoYXBwbGljYXRpb25JZDogU3RyaW5nKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmZyb250b2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2lzQmxvY2tCdWRnZXQnLFxyXG5cdFx0XHRhcHBsaWNhdGlvbklkLFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRzZW5kQ29kZWJ0b3JSZXNwb25zZUJ5U3RhdGljSW50ZXJhY3Rpb24oXHJcblx0XHRhcHBsaWNhdGlvbklkOiBzdHJpbmcsXHJcblx0XHRpbnRlcmFjdGlvbjogbnVtYmVyLFxyXG5cdFx0cHJvbUNvZGlnbzogbnVtYmVyLFxyXG5cdFx0cmVzcG9uc2U6IGJvb2xlYW4sXHJcblx0XHRjb2RlYnRvcjogc3RyaW5nLFxyXG5cdFx0Y2hhbmdlU3RhdHVzQnlDYXRlZ29yeUR0bzogQ2hhbmdlU3RhdHVzQnlDYXRlZ29yeUR0byxcclxuXHRcdHNlbmRFbWFpbFRvQ29kZWJ0b3I6IGJvb2xlYW5cclxuXHQpIHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZnJvbnRvZmZpY2UgK1xyXG5cdFx0XHQnYXBwbGljYXRpb24vc2VuZENvZGVidG9yUmVzcG9uc2VCeVN0YXRpY0ludGVyYWN0aW9uJyxcclxuXHRcdFx0Y2hhbmdlU3RhdHVzQnlDYXRlZ29yeUR0byxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKVxyXG5cdFx0XHRcdFx0LnNldCgnYXBwbGljYXRpb25JZCcsIGFwcGxpY2F0aW9uSWQpXHJcblx0XHRcdFx0XHQuc2V0KCdjb2RlYnRvcicsIGNvZGVidG9yKVxyXG5cdFx0XHRcdFx0LnNldCgncmVzcG9uc2UnLCByZXNwb25zZS50b1N0cmluZygpKVxyXG5cdFx0XHRcdFx0LnNldCgncHJvbUNvZGlnbycsIHByb21Db2RpZ28udG9TdHJpbmcoKSlcclxuXHRcdFx0XHRcdC5zZXQoJ2ludGVyYWN0aW9uJywgaW50ZXJhY3Rpb24udG9TdHJpbmcoKSlcclxuXHRcdFx0XHRcdC5zZXQoJ3NlbmRFbWFpbFRvQ29kZWJ0b3InLCBzZW5kRW1haWxUb0NvZGVidG9yLnRvU3RyaW5nKCkpLFxyXG5cdFx0XHRcdGhlYWRlcnM6IHRoaXMuaGVhZGVySnNvbi5oZWFkZXJzXHJcblx0XHRcdH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBHZXQgdW5zZW50IGFwcGxpY2F0aW9uc1xyXG5cdCAqIEBwYXJhbSBwcm9tQ29kaWdvXHJcblx0ICogQHBhcmFtIGJ1ZGdldFR5cGVJZFxyXG5cdCAqIEBwYXJhbSBmb3JtSWRzXHJcblx0ICovXHJcblx0Z2V0RnVsbE5vdFN1Ym1pdHRlZEJ5UHJvbUNvZGlnbyhcclxuXHRcdHByb21Db2RpZ286IHN0cmluZyxcclxuXHRcdGJ1ZGdldFR5cGVJZDogc3RyaW5nLFxyXG5cdFx0Zm9ybUlkczogc3RyaW5nW10sXHJcblx0XHRzdGF0ZUlkOiBudW1iZXIsXHJcblx0XHRhdExlYXN0T25lRG9jdW1lbnQgPSBmYWxzZVxyXG5cdCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICtcclxuXHRcdFx0J2FwcGxpY2F0aW9uL2dldEZ1bGxOb3RTdWJtaXR0ZWRCeVByb21Db2RpZ28nLFxyXG5cdFx0XHRmb3JtSWRzLFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0cGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpXHJcblx0XHRcdFx0XHQuc2V0KCdwcm9tQ29kaWdvJywgcHJvbUNvZGlnbylcclxuXHRcdFx0XHRcdC5zZXQoJ2J1ZGdldFR5cGVJZCcsIGJ1ZGdldFR5cGVJZClcclxuXHRcdFx0XHRcdC5zZXQoJ3N0YXRlSWQnLCBTdHJpbmcoc3RhdGVJZCkpXHJcblx0XHRcdFx0XHQuc2V0KCdhdExlYXN0T25lRG9jdW1lbnQnLCBTdHJpbmcoYXRMZWFzdE9uZURvY3VtZW50KSksXHJcblx0XHRcdFx0aGVhZGVyczogdGhpcy5oZWFkZXJKc29uLmhlYWRlcnNcclxuXHRcdFx0fVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdGdldE5vdFN1Ym1pdHRlZEJ5RnVsbERvY3VtZW50cyhwcm9tQ29kaWdvOiBzdHJpbmcsIHN0YXRlSWQ6IG51bWJlcikge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmJhY2tvZmZpY2UgKyAnYXBwbGljYXRpb24vZ2V0Tm90U3VibWl0dGVkQnlGdWxsRG9jdW1lbnRzJyxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKVxyXG5cdFx0XHRcdFx0LnNldCgncHJvbUNvZGlnbycsIHByb21Db2RpZ28pXHJcblx0XHRcdFx0XHQuc2V0KCdzdGF0ZUlkJywgU3RyaW5nKHN0YXRlSWQpKVxyXG5cdFx0XHR9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gYXBwbGljYXRpb25JZFxyXG5cdCAqL1xyXG5cdGdldE1hc3NpdmVEYXRhQnlBcHBsaWNhdGlvbklkKGFwcGxpY2F0aW9uSWQ6IHN0cmluZykge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmZyb250b2ZmaWNlICsgJ2J1ZGdldC9nZXRNYXNzaXZlRGF0YUJ5QXBwbGljYXRpb25JZCcsXHJcblx0XHRcdHtcclxuXHRcdFx0XHRwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdhcHBsaWNhdGlvbklkJywgYXBwbGljYXRpb25JZClcclxuXHRcdFx0fVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdGdldEJ5VXNlcm5hbWVBbmRQcm9tQ29kaWdvKHVzZXJuYW1lOiBzdHJpbmcsIHByb21Db2RpZ29zOiBudW1iZXJbXSk6IE9ic2VydmFibGU8QXBwbGljYXRpb25bXT4ge1xyXG5cdFx0Y29uc3QgYXBwbGljYXRpb25SZXF1ZXN0ID0geyB1c2VybmFtZSwgcHJvbUNvZGlnb3MgfTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxBcHBsaWNhdGlvbltdPihcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZnJvbnRvZmZpY2UgKyAnYXBwbGljYXRpb24vZ2V0QnlVc2VybmFtZUFuZFByb21Db2RpZ29zJyxcclxuXHRcdFx0YXBwbGljYXRpb25SZXF1ZXN0XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0dXBkYXRlQWxsSW5pdGlhbFJlY29yZChpbml0aWFsUmVjb3JkOiBJbml0aWFsUmVjb3JkKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZnJvbnRvZmZpY2UgKyAnYXBwbGljYXRpb24vdXBkYXRlQWxsSW5pdGlhbFJlY29yZCcsXHJcblx0XHRcdGluaXRpYWxSZWNvcmQsXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHVwZGF0ZVNpbmdsZUFwcGxpY2F0aW9uVmFsdWUoXHJcblx0XHRhcHBsaWNhdGlvblZhbHVlUmVxdWVzdFRPOiBBcHBsaWNhdGlvblZhbHVlUmVxdWVzdFRPXHJcblx0KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucHV0KFxyXG5cdFx0XHRgJHt0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5mcm9udG9mZmljZX1hcHBsaWNhdGlvbi91cGRhdGVTaW5nbGVBcHBsaWNhdGlvblZhbHVlYCxcclxuXHRcdFx0YXBwbGljYXRpb25WYWx1ZVJlcXVlc3RUT1xyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBsaXN0IGJ5IGRhdGFUYWJsZVBhcmFtZXRlcnMgZm9yIGF1dG9tYXRpYyBkb2N1bWVudCBhbmFseXNpcyovXHJcblx0Z2V0QnlCeURvY3VtZW50VmFsaWRhdGlvbihkYXRhVGFibGVQYXJhbWV0ZXJzOiBEYXRhVGFibGVQYXJhbWV0ZXJzKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuYmFja29mZmljZSArICdhcHBsaWNhdGlvbi9nZXRCeUJ5RG9jdW1lbnRWYWxpZGF0aW9uJyxcclxuXHRcdFx0ZGF0YVRhYmxlUGFyYW1ldGVyc1xyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBDaGFuZ2UgZG9jdW1lbnQgc3RhdHVzIG1hbnVhbGx5LiovXHJcblx0dXBkYXRlU3RhdHVzVmFsaWRhdGlvbkRvY3VtZW50KFxyXG5cdFx0Y2hhbmdlU3RhdHVzRG9jdW1lblZhbGlkYXRpb25SZXF1ZXN0OiBDaGFuZ2VTdGF0dXNEb2N1bWVuVmFsaWRhdGlvblJlcXVlc3RcclxuXHQpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICsgJ2FwcGxpY2F0aW9uL3VwZGF0ZVN0YXR1c1ZhbGlkYXRpb25Eb2N1bWVudCcsXHJcblx0XHRcdGNoYW5nZVN0YXR1c0RvY3VtZW5WYWxpZGF0aW9uUmVxdWVzdFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHVwZGF0ZUFuYWx5c2lzRG9jdW1lbnRJbmZvKGFwcGxpY2F0aW9uRm9ybVRPOiBBcHBsaWNhdGlvbkZvcm1UTyk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmZyb250b2ZmaWNlICsgJ2FwcGxpY2F0aW9uL3VwZGF0ZUFuYWx5c2lzRG9jdW1lbnRJbmZvJyxcclxuXHRcdFx0YXBwbGljYXRpb25Gb3JtVE9cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHR2ZXJpZnlBdXRvQW5hbHlzaXNEb2Moc2VuZERvY0FuYWx5c2lzQXV0b0R0bzogU2VuZERvY0FuYWx5c2lzQXV0b0R0byk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmJhY2tvZmZpY2UgKyAnYXBwbGljYXRpb24vdmVyaWZ5QXV0b0FuYWx5c2lzRG9jJyxcclxuXHRcdFx0c2VuZERvY0FuYWx5c2lzQXV0b0R0b1xyXG5cdFx0KTtcclxuXHR9XHJcbn1cclxuIl19
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXBsaS1jb21tb25zL3NyYy9saWIvc2VydmljZXMvYXBwbGljYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFpQm5ELE1BQU0sT0FBTyxrQkFBa0I7SUFHOUIsWUFBMkMsV0FBZ0IsRUFBVSxVQUFzQjtRQUFoRCxnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7UUFGbkYsZUFBVSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUMsRUFBRSxDQUFDO0lBRUssQ0FBQztJQUVoRyxzQ0FBc0M7SUFDdEMsT0FBTyxDQUFDLEVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxxQkFBcUIsRUFDaEUsRUFBRSxNQUFNLEVBQUUsSUFBSSxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQzFDLENBQUM7SUFDSCxDQUFDO0lBRUQsNERBQTREO0lBQzVELFlBQVksQ0FBQyxFQUFVO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsMEJBQTBCLEVBQ3RFLEVBQUUsTUFBTSxFQUFFLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLElB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b20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcblx0QXBwbGljYXRpb24sXHJcblx0QXBwbGljYXRpb25EYXRhRm9ybVJlcXVlc3QsXHJcblx0RGF0YVRhYmxlUGFyYW1ldGVycyxcclxuXHRDaGFuZ2VTdGF0dXNCeUNhdGVnb3J5RHRvLFxyXG5cdEluaXRpYWxSZWNvcmQsXHJcblx0QXBwbGljYXRpb25WYWx1ZVJlcXVlc3RUTyxcclxuXHRDaGFuZ2VTdGF0dXNEb2N1bWVuVmFsaWRhdGlvblJlcXVlc3QsXHJcblx0U2VuZERvY0FuYWx5c2lzQXV0b0R0byxcclxuXHRBcHBsaWNhdGlvbkZvcm1UT1xyXG59IGZyb20gJ25nLXBsaS11dGlsJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25TZXJ2aWNlIHtcclxuXHRwcml2YXRlIGhlYWRlckpzb24gPSB7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSkgfTtcclxuXHJcblx0Y29uc3RydWN0b3IoQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50OiBhbnksIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCkgeyB9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIGFuIGFwcGxpY2F0aW9uIGJ5IGlkICovXHJcblx0Z2V0QnlJZChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2dldEJ5SWQnLFxyXG5cdFx0XHR7IHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2lkJywgaWQpIH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgcmV0dXJucyBhbiBhcHBsaWNhdGlvbiBieSBpZCB3aXRoIGJhc2ljIHByb3BlcnRpZXMgKi9cclxuXHRnZXRCeUlkTGlnaHQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZnJvbnRvZmZpY2UgKyAnYXBwbGljYXRpb24vZ2V0QnlJZExpZ2h0JyxcclxuXHRcdFx0eyBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdpZCcsIGlkKSB9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgYW4gYXBwbGljYXRpb24gYnkgaWQgd2l0aCB0aGUgQnVkZ2V0IFNpbXVsYXRpb24gKi9cclxuXHRnZXRCdWRnZXRTaW11bGF0aW9uQnlJZChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5mcm9udG9mZmljZSArICdhcHBsaWNhdGlvbi9nZXRCdWRnZXRTaW11bGF0aW9uQnlJZCcsXHJcblx0XHRcdHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgnaWQnLCBpZCkgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIGFuIGFwcGxpY2F0aW9uIGJ5IGlkIHdpdGggYmFzaWMgcHJvcGVydGllcyAqL1xyXG5cdGdldEJ5SWRMaWdodEluKGlkTGlzdDogc3RyaW5nW10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5mcm9udG9mZmljZSArICdhcHBsaWNhdGlvbi9nZXRCeUlkTGlnaHRJbicsXHJcblx0XHRcdGlkTGlzdFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBsaXN0IG9mIGFwcGxpY2F0aW9uIGJ5IGRhdGFUYWJsZVBhcmFtZXRlcnMgKi9cclxuXHRnZXRBcHBsaWNhdGlvbnNCeURhdGFUYWJsZVBhcmFtZXRlcnMoXHJcblx0XHRkYXRhVGFibGVQYXJhbWV0ZXJzOiBEYXRhVGFibGVQYXJhbWV0ZXJzXHJcblx0KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuYmFja29mZmljZSArXHJcblx0XHRcdCdhcHBsaWNhdGlvbi9nZXRBcHBsaWNhdGlvbnNCeURhdGFUYWJsZVBhcmFtZXRlcnMnLFxyXG5cdFx0XHRkYXRhVGFibGVQYXJhbWV0ZXJzXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgdGhlIGxpc3Qgb2YgYXBwbGljYXRpb24gYnkgcHJvbSBjb2RpZ28gKi9cclxuXHRnZXRCeVByb21Db2RpZ28ocHJvbUNvZGlnbzogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2dldEJ5UHJvbUNvZGlnbycsXHJcblx0XHRcdHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgncHJvbUNvZGlnbycsIHByb21Db2RpZ28udG9TdHJpbmcoKSkgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBsaXN0IG9mIGFwcGxpY2F0aW9uIGJ5IHVzZXJuYW1lICovXHJcblx0Z2V0QnlVc2VybmFtZSh1c2VybmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5mcm9udG9mZmljZSArICdhcHBsaWNhdGlvbi9nZXRCeVVzZXJuYW1lJyxcclxuXHRcdFx0eyBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCd1c2VybmFtZScsIHVzZXJuYW1lKSB9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHNhdmVzIGFuIGFwcGxpY2F0aW9uICovXHJcblx0c2F2ZShhcHBsaWNhdGlvbjogQXBwbGljYXRpb24pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5mcm9udG9mZmljZSArICdhcHBsaWNhdGlvbi9zYXZlJyxcclxuXHRcdFx0YXBwbGljYXRpb24sXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBpdCByZXR1cm5zIHRoZSBsYXN0IG51bWJlciAqL1xyXG5cdGdldExhc3ROdW1iZXIocHJvbUNvZGlnbzogbnVtYmVyKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZnJvbnRvZmZpY2UgKyAnYXBwbGljYXRpb24vZ2V0TGFzdE51bWJlcicsXHJcblx0XHRcdHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgncHJvbUNvZGlnbycsIHByb21Db2RpZ28udG9TdHJpbmcoKSkgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBpdCBjaGFuZ2VzIHRoZSBzdGF0dXMgKi9cclxuXHRjaGFuZ2VTdGF0dXNCeUNhdGVnb3J5KFxyXG5cdFx0bENoYW5nZVN0YXR1c0J5Q2F0ZWdvcnlEdG86IENoYW5nZVN0YXR1c0J5Q2F0ZWdvcnlEdG9bXVxyXG5cdCk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmJhY2tvZmZpY2UgKyAnYXBwbGljYXRpb24vY2hhbmdlU3RhdHVzQnlDYXRlZ29yeScsXHJcblx0XHRcdGxDaGFuZ2VTdGF0dXNCeUNhdGVnb3J5RHRvLFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogaXQgY2hhbmdlcyB0aGUgc3RhdHVzICovXHJcblx0Y2hhbmdlTWFzc2l2ZVN0YXR1cyhsQXBwbGljYXRpb246IEFwcGxpY2F0aW9uW10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2NoYW5nZU1hc3NpdmVTdGF0dXMnLFxyXG5cdFx0XHRsQXBwbGljYXRpb24sXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBjaGFuZ2VDb2xvcihhcHBsaWNhdGlvbkxpc3Q6IHN0cmluZ1tdLCBjb2xvcjogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdGNvbnN0IHBhcmFtcyA9IHsgYXBwbGljYXRpb25JZDogYXBwbGljYXRpb25MaXN0LCBjb2xvcjogY29sb3IgfTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucHV0KFxyXG5cdFx0XHRgJHt0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlfWFwcGxpY2F0aW9uL2NoYW5nZUNvbG9yYCxcclxuXHRcdFx0cGFyYW1zXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIGl0IGdldHMgdGhlIGhpc3Rvcnkgc3RhdGUgKi9cclxuXHRnZXRIaXN0b3J5U3RhdGUoYXBwbGljYXRpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2dldEhpc3RvcnlTdGF0ZScsXHJcblx0XHRcdHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgnYXBwbGljYXRpb25JZCcsIGFwcGxpY2F0aW9uSWQudG9TdHJpbmcoKSkgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBpdCBzYXZlcyBtYXNzaXZlbHkgKi9cclxuXHRzYXZlTWFzc2l2ZShcclxuXHRcdGxpc3RBcHBsaWNhdGlvbkRhdGFGb3JtUmVxdWVzdDogQXBwbGljYXRpb25EYXRhRm9ybVJlcXVlc3RbXSxcclxuXHRcdGFwcGxpY2F0aW9uc1RvVmVyaWZ5RG9jdW1lbnQ6IFN0cmluZ1tdLFxyXG5cdFx0cHJvbUNvZGlnbzogbnVtYmVyLFxyXG5cdFx0c3RhdHVzUmFkaWNhZG86IGJvb2xlYW5cclxuXHQpIHtcclxuXHRcdGxldCBsaXN0RGF0YUFwcGxpY2F0aW9uID0ge1xyXG5cdFx0XHRsaXN0QXBwbGljYXRpb25EYXRhRm9ybVJlcXVlc3Q6IGxpc3RBcHBsaWNhdGlvbkRhdGFGb3JtUmVxdWVzdCxcclxuXHRcdFx0YXBwbGljYXRpb25zVG9WZXJpZnlEb2N1bWVudDogYXBwbGljYXRpb25zVG9WZXJpZnlEb2N1bWVudCxcclxuXHRcdFx0cHJvbUNvZGlnbzogcHJvbUNvZGlnbyxcclxuXHRcdFx0c3RhdHVzUmFkaWNhZG86IHN0YXR1c1JhZGljYWRvXHJcblx0XHR9O1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5jb25maWd1cmF0aW9uICsgJ2FwcGxpY2F0aW9uLWRhdGFmb3JtL3NhdmVNdWx0aXBsZScsXHJcblx0XHRcdGxpc3REYXRhQXBwbGljYXRpb24sXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIHNhdmUgbXVsdGlwbGUgcmVjb3Jkc1xyXG5cdCAqIEBwYXJhbSBsaXN0RGF0YSArXHJcblx0ICovXHJcblx0Z2V0QnlEYXRhVGFibGVzUGFyYW1ldGVycyhkYXRhVGFibGVQYXJhbWV0ZXJzOiBEYXRhVGFibGVQYXJhbWV0ZXJzKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmZyb250b2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2dldEJ5RGF0YVRhYmxlc1BhcmFtZXRlcnMnLFxyXG5cdFx0XHRkYXRhVGFibGVQYXJhbWV0ZXJzLFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBJdCBnZXRzIHRoZSBiYXNpYyBpbmZvcm1hdGlvbiBvZiB0aGUgYXBwbGljYXRpb24gdG8gc2hvdyBpbiBhc3NpZ24gdGFza1xyXG5cdCAqIEBwYXJhbSB0YXNrSWRcclxuXHQgKiBAcGFyYW0gcHJvbUNvZGlnb1xyXG5cdCAqIEBwYXJhbSByZXZpZXdlclxyXG5cdCAqL1xyXG5cdGdldEJ5VGFza0lkUHJvbUNvZGlnb0FuZFJldmlld2VyKGRhdGFUYWJsZVBhcmFtZXRlcnM6IERhdGFUYWJsZVBhcmFtZXRlcnMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2dldEJ5VGFza1Byb21Db2RpZ29BbmRSZXZpZXdlcicsXHJcblx0XHRcdGRhdGFUYWJsZVBhcmFtZXRlcnMsXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEl0IGdldHMgYXBwbGljYXRpb25zIGJ5IGRhdGF0YWJsZSBwYXJhbWV0ZXJzIGZyb20gYmFja29mZmljZVxyXG5cdCAqIEBwYXJhbSBkYXRhVGFibGVQYXJhbWV0ZXJzXHJcblx0ICovXHJcblx0Z2V0QmFja0FwcEJ5RGF0YVRhYmxlc1BhcmFtZXRlcnMoZGF0YVRhYmxlUGFyYW1ldGVyczogRGF0YVRhYmxlUGFyYW1ldGVycykge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2dldEJ5RGF0YVRhYmxlc1BhcmFtZXRlcnMnLFxyXG5cdFx0XHRkYXRhVGFibGVQYXJhbWV0ZXJzLFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBzYXZlIG11bHRpcGxlIHJlY29yZHNcclxuXHQgKiBAcGFyYW0gbGlzdERhdGEgK1xyXG5cdCAqL1xyXG5cdGdldEJ5RGF0YVRhYmxlc1BhcmFtZXRlcnNBcHAoZGF0YVRhYmxlUGFyYW1ldGVyczogRGF0YVRhYmxlUGFyYW1ldGVycykge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2dldEJ5RGF0YVRhYmxlc1BhcmFtZXRlcnNBcHAnLFxyXG5cdFx0XHRkYXRhVGFibGVQYXJhbWV0ZXJzLFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgcmV0dXJucyB0aGUgbGlzdCBvZiBhcHBsaWNhdGlvbiBieSBwcm9tIGNvZGlnbyAqL1xyXG5cdGdldEJ5TnVtYmVyQW5kUHJvbUNvZGlnbyhwcm9tQ29kaWdvOiBudW1iZXIsIG51bWJlcjogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2dldEJ5TnVtYmVyQW5kUHJvbUNvZGlnbycsXHJcblx0XHRcdHtcclxuXHRcdFx0XHRwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKClcclxuXHRcdFx0XHRcdC5zZXQoJ3Byb21Db2RpZ28nLCBwcm9tQ29kaWdvLnRvU3RyaW5nKCkpXHJcblx0XHRcdFx0XHQuc2V0KCdudW1iZXInLCBudW1iZXIudG9TdHJpbmcoKSlcclxuXHRcdFx0fVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdGFjY2VwdENyZWRpdChhcHBsaWNhdGlvbjogQXBwbGljYXRpb24pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5mcm9udG9mZmljZSArICdhcHBsaWNhdGlvbi9hY2NlcHRDcmVkaXQnLFxyXG5cdFx0XHRhcHBsaWNhdGlvbixcclxuXHRcdFx0dGhpcy5oZWFkZXJKc29uXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0Y29uZmlybUJ1ZGdldEFwcG9pbnRtZW50KGFwcGxpY2F0aW9uOiBBcHBsaWNhdGlvbik6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmZyb250b2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2NvbmZpcm1CdWRnZXRBcHBvaW50bWVudCcsXHJcblx0XHRcdGFwcGxpY2F0aW9uLFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRpbml0R3VhcmFudGVlUHJvY2VzcyhhcHBsaWNhdGlvbjogQXBwbGljYXRpb24pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2luaXRHdWFyYW50ZWVQcm9jZXNzJyxcclxuXHRcdFx0YXBwbGljYXRpb24sXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdGdldExlZ2FsaXphdGlvbkFuZEVuc3VyYW5jZUJ5QXBwbGljYXRpb25JZChhcHBsaWNhdGlvbklkOiBTdHJpbmdbXSk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmJhY2tvZmZpY2UgK1xyXG5cdFx0XHQnYXBwbGljYXRpb24vZ2V0TGVnYWxpemF0aW9uQW5kRW5zdXJhbmNlQnlBcHBsaWNhdGlvbklkJyxcclxuXHRcdFx0YXBwbGljYXRpb25JZCxcclxuXHRcdFx0dGhpcy5oZWFkZXJKc29uXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0Z2VuZXJhdGVCYW5rVmlzaW9uRmlsZXMoYXBwbGljYXRpb25JZDogU3RyaW5nW10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2dlbmVyYXRlQmFua1Zpc2lvbkZpbGVzJyxcclxuXHRcdFx0YXBwbGljYXRpb25JZCxcclxuXHRcdFx0dGhpcy5oZWFkZXJKc29uXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0c2F2ZUFjY2VwdERhdGFQcm9jZXNzaW5nKGFwcGxpY2F0aW9uOiBBcHBsaWNhdGlvbik6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmZyb250b2ZmaWNlICsgJ2FwcGxpY2F0aW9uL3NhdmVBY2NlcHREYXRhUHJvY2Vzc2luZycsXHJcblx0XHRcdGFwcGxpY2F0aW9uLFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBTYXZlIHRvdGFsIGJ1ZGdldCBhbW91bnRzLCB0aGUgY3JlZGl0QWNjZXB0ZWQgY291bGQgYmUgbnVsbCwgdGhlIHNlcnZpY2Ugc2VhcmNoIHRoaXMuXHJcblx0ICogQHBhcmFtIGFwcGxpY2F0aW9uQnVkZ2V0VG90YWxBbW91bnQgQW4ganNvbiBvYmplY3Qgd2l0aDogYXBwbGljYXRpb25CdWRnZXRUb3RhbCwgYXBwbGljYXRpb25JZDpzdHJpbmcsIGNyZWRpdEFjY2VwdGVkOmJvb2xlYW5cclxuXHQgKi9cclxuXHRzYXZlQnVkZ2V0VG90YWxBbW91bnQoYXBwbGljYXRpb25CdWRnZXRUb3RhbEFtb3VudDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZnJvbnRvZmZpY2UgKyAnYXBwbGljYXRpb24vc2F2ZUJ1ZGdldFRvdGFsQW1vdW50JyxcclxuXHRcdFx0YXBwbGljYXRpb25CdWRnZXRUb3RhbEFtb3VudCxcclxuXHRcdFx0dGhpcy5oZWFkZXJKc29uXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU2F2ZSBmaW5hbmNpbmcgb2JzZXJ2YXRpb24gaW4gYnVkZ2V0IGFwcGxpY2F0aW9uLlxyXG5cdCAqIEBwYXJhbSBBcHBsaWNhdGlvbkJ1ZGdldE9ic2VydmF0aW9uIEFuIGpzb24gb2JqZWN0IHdpdGg6IG9ic2VydmF0aW9uOnN0cmluZywgYXBwbGljYXRpb25JZDpzdHJpbmdcclxuXHQgKi9cclxuXHRzYXZlT2JzZXJ2YXRpb25GaW5hbmNpbmdCdWRnZXQoQXBwbGljYXRpb25CdWRnZXRPYnNlcnZhdGlvbjogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZnJvbnRvZmZpY2UgK1xyXG5cdFx0XHQnYXBwbGljYXRpb24vc2F2ZU9ic2VydmF0aW9uRmluYW5jaW5nQnVkZ2V0JyxcclxuXHRcdFx0QXBwbGljYXRpb25CdWRnZXRPYnNlcnZhdGlvbixcclxuXHRcdFx0dGhpcy5oZWFkZXJKc29uXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0YmxvY2tCdWRnZXQoYXBwbGljYXRpb25JZDogU3RyaW5nKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmZyb250b2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2Jsb2NrQnVkZ2V0JyxcclxuXHRcdFx0YXBwbGljYXRpb25JZCxcclxuXHRcdFx0dGhpcy5oZWFkZXJKc29uXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0dW5ibG9ja0J1ZGdldChhcHBsaWNhdGlvbklkOiBTdHJpbmcsIG9ic2VydmF0aW9uOiBTdHJpbmcpIHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZnJvbnRvZmZpY2UgKyAnYXBwbGljYXRpb24vdW5ibG9ja0J1ZGdldCcsXHJcblx0XHRcdHsgYXBwbGljYXRpb25JZDogYXBwbGljYXRpb25JZCwgb2JzZXJ2YXRpb246IG9ic2VydmF0aW9uIH0sXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdGlzQmxvY2tCdWRnZXQoYXBwbGljYXRpb25JZDogU3RyaW5nKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmZyb250b2ZmaWNlICsgJ2FwcGxpY2F0aW9uL2lzQmxvY2tCdWRnZXQnLFxyXG5cdFx0XHRhcHBsaWNhdGlvbklkLFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRzZW5kQ29kZWJ0b3JSZXNwb25zZUJ5U3RhdGljSW50ZXJhY3Rpb24oXHJcblx0XHRhcHBsaWNhdGlvbklkOiBzdHJpbmcsXHJcblx0XHRpbnRlcmFjdGlvbjogbnVtYmVyLFxyXG5cdFx0cHJvbUNvZGlnbzogbnVtYmVyLFxyXG5cdFx0cmVzcG9uc2U6IGJvb2xlYW4sXHJcblx0XHRjb2RlYnRvcjogc3RyaW5nLFxyXG5cdFx0Y2hhbmdlU3RhdHVzQnlDYXRlZ29yeUR0bzogQ2hhbmdlU3RhdHVzQnlDYXRlZ29yeUR0byxcclxuXHRcdHNlbmRFbWFpbFRvQ29kZWJ0b3I6IGJvb2xlYW5cclxuXHQpIHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZnJvbnRvZmZpY2UgK1xyXG5cdFx0XHQnYXBwbGljYXRpb24vc2VuZENvZGVidG9yUmVzcG9uc2VCeVN0YXRpY0ludGVyYWN0aW9uJyxcclxuXHRcdFx0Y2hhbmdlU3RhdHVzQnlDYXRlZ29yeUR0byxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKVxyXG5cdFx0XHRcdFx0LnNldCgnYXBwbGljYXRpb25JZCcsIGFwcGxpY2F0aW9uSWQpXHJcblx0XHRcdFx0XHQuc2V0KCdjb2RlYnRvcicsIGNvZGVidG9yKVxyXG5cdFx0XHRcdFx0LnNldCgncmVzcG9uc2UnLCByZXNwb25zZS50b1N0cmluZygpKVxyXG5cdFx0XHRcdFx0LnNldCgncHJvbUNvZGlnbycsIHByb21Db2RpZ28udG9TdHJpbmcoKSlcclxuXHRcdFx0XHRcdC5zZXQoJ2ludGVyYWN0aW9uJywgaW50ZXJhY3Rpb24udG9TdHJpbmcoKSlcclxuXHRcdFx0XHRcdC5zZXQoJ3NlbmRFbWFpbFRvQ29kZWJ0b3InLCBzZW5kRW1haWxUb0NvZGVidG9yLnRvU3RyaW5nKCkpLFxyXG5cdFx0XHRcdGhlYWRlcnM6IHRoaXMuaGVhZGVySnNvbi5oZWFkZXJzXHJcblx0XHRcdH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBHZXQgdW5zZW50IGFwcGxpY2F0aW9uc1xyXG5cdCAqIEBwYXJhbSBwcm9tQ29kaWdvXHJcblx0ICogQHBhcmFtIGJ1ZGdldFR5cGVJZFxyXG5cdCAqIEBwYXJhbSBmb3JtSWRzXHJcblx0ICovXHJcblx0Z2V0RnVsbE5vdFN1Ym1pdHRlZEJ5UHJvbUNvZGlnbyhcclxuXHRcdHByb21Db2RpZ286IHN0cmluZyxcclxuXHRcdGJ1ZGdldFR5cGVJZDogc3RyaW5nLFxyXG5cdFx0Zm9ybUlkczogc3RyaW5nW10sXHJcblx0XHRzdGF0ZUlkOiBudW1iZXIsXHJcblx0XHRhdExlYXN0T25lRG9jdW1lbnQgPSBmYWxzZVxyXG5cdCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICtcclxuXHRcdFx0J2FwcGxpY2F0aW9uL2dldEZ1bGxOb3RTdWJtaXR0ZWRCeVByb21Db2RpZ28nLFxyXG5cdFx0XHRmb3JtSWRzLFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0cGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpXHJcblx0XHRcdFx0XHQuc2V0KCdwcm9tQ29kaWdvJywgcHJvbUNvZGlnbylcclxuXHRcdFx0XHRcdC5zZXQoJ2J1ZGdldFR5cGVJZCcsIGJ1ZGdldFR5cGVJZClcclxuXHRcdFx0XHRcdC5zZXQoJ3N0YXRlSWQnLCBTdHJpbmcoc3RhdGVJZCkpXHJcblx0XHRcdFx0XHQuc2V0KCdhdExlYXN0T25lRG9jdW1lbnQnLCBTdHJpbmcoYXRMZWFzdE9uZURvY3VtZW50KSksXHJcblx0XHRcdFx0aGVhZGVyczogdGhpcy5oZWFkZXJKc29uLmhlYWRlcnNcclxuXHRcdFx0fVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdGdldE5vdFN1Ym1pdHRlZEJ5RnVsbERvY3VtZW50cyhwcm9tQ29kaWdvOiBzdHJpbmcsIHN0YXRlSWQ6IG51bWJlcikge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmJhY2tvZmZpY2UgKyAnYXBwbGljYXRpb24vZ2V0Tm90U3VibWl0dGVkQnlGdWxsRG9jdW1lbnRzJyxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKVxyXG5cdFx0XHRcdFx0LnNldCgncHJvbUNvZGlnbycsIHByb21Db2RpZ28pXHJcblx0XHRcdFx0XHQuc2V0KCdzdGF0ZUlkJywgU3RyaW5nKHN0YXRlSWQpKVxyXG5cdFx0XHR9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gYXBwbGljYXRpb25JZFxyXG5cdCAqL1xyXG5cdGdldE1hc3NpdmVEYXRhQnlBcHBsaWNhdGlvbklkKGFwcGxpY2F0aW9uSWQ6IHN0cmluZykge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmZyb250b2ZmaWNlICsgJ2J1ZGdldC9nZXRNYXNzaXZlRGF0YUJ5QXBwbGljYXRpb25JZCcsXHJcblx0XHRcdHtcclxuXHRcdFx0XHRwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdhcHBsaWNhdGlvbklkJywgYXBwbGljYXRpb25JZClcclxuXHRcdFx0fVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdGdldEJ5VXNlcm5hbWVBbmRQcm9tQ29kaWdvKHVzZXJuYW1lOiBzdHJpbmcsIHByb21Db2RpZ29zOiBudW1iZXJbXSk6IE9ic2VydmFibGU8QXBwbGljYXRpb25bXT4ge1xyXG5cdFx0Y29uc3QgYXBwbGljYXRpb25SZXF1ZXN0ID0geyB1c2VybmFtZSwgcHJvbUNvZGlnb3MgfTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxBcHBsaWNhdGlvbltdPihcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZnJvbnRvZmZpY2UgKyAnYXBwbGljYXRpb24vZ2V0QnlVc2VybmFtZUFuZFByb21Db2RpZ29zJyxcclxuXHRcdFx0YXBwbGljYXRpb25SZXF1ZXN0XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0dXBkYXRlQWxsSW5pdGlhbFJlY29yZChpbml0aWFsUmVjb3JkOiBJbml0aWFsUmVjb3JkKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZnJvbnRvZmZpY2UgKyAnYXBwbGljYXRpb24vdXBkYXRlQWxsSW5pdGlhbFJlY29yZCcsXHJcblx0XHRcdGluaXRpYWxSZWNvcmQsXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHVwZGF0ZVNpbmdsZUFwcGxpY2F0aW9uVmFsdWUoXHJcblx0XHRhcHBsaWNhdGlvblZhbHVlUmVxdWVzdFRPOiBBcHBsaWNhdGlvblZhbHVlUmVxdWVzdFRPXHJcblx0KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucHV0KFxyXG5cdFx0XHRgJHt0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5mcm9udG9mZmljZX1hcHBsaWNhdGlvbi91cGRhdGVTaW5nbGVBcHBsaWNhdGlvblZhbHVlYCxcclxuXHRcdFx0YXBwbGljYXRpb25WYWx1ZVJlcXVlc3RUT1xyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBsaXN0IGJ5IGRhdGFUYWJsZVBhcmFtZXRlcnMgZm9yIGF1dG9tYXRpYyBkb2N1bWVudCBhbmFseXNpcyovXHJcblx0Z2V0QnlCeURvY3VtZW50VmFsaWRhdGlvbihkYXRhVGFibGVQYXJhbWV0ZXJzOiBEYXRhVGFibGVQYXJhbWV0ZXJzKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuYmFja29mZmljZSArICdhcHBsaWNhdGlvbi9nZXRCeUJ5RG9jdW1lbnRWYWxpZGF0aW9uJyxcclxuXHRcdFx0ZGF0YVRhYmxlUGFyYW1ldGVyc1xyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBDaGFuZ2UgZG9jdW1lbnQgc3RhdHVzIG1hbnVhbGx5LiovXHJcblx0dXBkYXRlU3RhdHVzVmFsaWRhdGlvbkRvY3VtZW50KFxyXG5cdFx0Y2hhbmdlU3RhdHVzRG9jdW1lblZhbGlkYXRpb25SZXF1ZXN0OiBDaGFuZ2VTdGF0dXNEb2N1bWVuVmFsaWRhdGlvblJlcXVlc3RcclxuXHQpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICsgJ2FwcGxpY2F0aW9uL3VwZGF0ZVN0YXR1c1ZhbGlkYXRpb25Eb2N1bWVudCcsXHJcblx0XHRcdGNoYW5nZVN0YXR1c0RvY3VtZW5WYWxpZGF0aW9uUmVxdWVzdFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHVwZGF0ZUFuYWx5c2lzRG9jdW1lbnRJbmZvKGFwcGxpY2F0aW9uRm9ybVRPOiBBcHBsaWNhdGlvbkZvcm1UTyk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmZyb250b2ZmaWNlICsgJ2FwcGxpY2F0aW9uL3VwZGF0ZUFuYWx5c2lzRG9jdW1lbnRJbmZvJyxcclxuXHRcdFx0YXBwbGljYXRpb25Gb3JtVE9cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHR2ZXJpZnlBdXRvQW5hbHlzaXNEb2Moc2VuZERvY0FuYWx5c2lzQXV0b0R0bzogU2VuZERvY0FuYWx5c2lzQXV0b0R0byk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmJhY2tvZmZpY2UgKyAnYXBwbGljYXRpb24vdmVyaWZ5QXV0b0FuYWx5c2lzRG9jJyxcclxuXHRcdFx0c2VuZERvY0FuYWx5c2lzQXV0b0R0b1xyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdGdldEFwcENvdW50QnlQcm9tQ29kaWdvKHByb21Db2RpZ286IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuYmFja29mZmljZSArICdhcHBsaWNhdGlvbi9nZXRBcHBDb3VudEJ5UHJvbUNvZGlnbycsXHJcblx0XHRcdHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgncHJvbUNvZGlnbycsIHByb21Db2RpZ28pIH1cclxuXHRcdCk7XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -334,6 +334,15 @@ export class PppService {
334
334
  }
335
335
  return lPliPatrocinador;
336
336
  }
337
+ pppRollback(pppRequest) {
338
+ return this.httpClient.post(this.environment.host.backend.configuration + 'pppRollback', pppRequest, this.headerJson);
339
+ }
340
+ deleteBudgetByProm(promCodigo) {
341
+ let object = {
342
+ promCodigo: promCodigo
343
+ };
344
+ return this.httpClient.post(this.environment.host.backend.plis + 'config/promocion/deleteBudgetByProm', object, this.headerJson);
345
+ }
337
346
  }
338
347
  /** It contains the key of the json web token */
339
348
  PppService.TOKEN_PPP = 'tokenPpp';
@@ -348,4 +357,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
348
357
  type: Inject,
349
358
  args: ['environment']
350
359
  }] }, { type: i1.HttpClient }]; } });
351
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHBwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wbGktY29tbW9ucy9zcmMvbGliL3NlcnZpY2VzL3BwcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFjLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVuRCxPQUFPLEVBQ04sZUFBZSxFQUNmLFdBQVcsRUFDWCxZQUFZLEVBRVosT0FBTyxFQUNQLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsTUFBTSxhQUFhLENBQUM7OztBQUtyQixNQUFNLE9BQU8sVUFBVTtJQVl0QixZQUEyQyxXQUFnQixFQUFVLFVBQXNCO1FBQWhELGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVhuRixlQUFVLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFLMUYseURBQXlEO1FBQ2pELGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBUyxTQUFTLENBQUMsQ0FBQztRQUU1RCxnRUFBZ0U7UUFDeEQsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBYSxTQUFTLENBQUMsQ0FBQztJQUUwQixDQUFDO0lBRS9GLDREQUE0RDtJQUM1RCxXQUFXO1FBQ1YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsTUFBTSxDQUFDLEdBQVc7UUFDakIsSUFBSSxHQUFHLEVBQUU7WUFDUixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtnQkFDNUIsSUFB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QUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcywgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtcclxuXHRQbGlQYXRyb2NpbmFkb3IsXHJcblx0UGxpUHJvZ3JhbWEsXHJcblx0UGxpUHJvbW9jaW9uLFxyXG5cdFBsaUNuZkNvbmZpZ3VyYWNpb24sXHJcblx0Snd0VXRpbCxcclxuXHROdW1iZXJVdGlsLFxyXG5cdEF1dGhlbnRpY2F0aW9uVXRpbFxyXG59IGZyb20gJ25nLXBsaS11dGlsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuXHRwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFBwcFNlcnZpY2Uge1xyXG5cdHByaXZhdGUgaGVhZGVySnNvbiA9IHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KSB9O1xyXG5cclxuXHQvKiogSXQgY29udGFpbnMgdGhlIGtleSBvZiB0aGUganNvbiB3ZWIgdG9rZW4gKi9cclxuXHRzdGF0aWMgVE9LRU5fUFBQID0gJ3Rva2VuUHBwJztcclxuXHJcblx0LyoqIFRoaXMgb2JzZXJ2YWJsZSBhbGxvd3MgdG8gdmVyaWZ5IGlmIHBwcCBpcyBjcmVhdGVkICovXHJcblx0cHJpdmF0ZSBzdWJqZWN0UHBwID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KHVuZGVmaW5lZCk7XHJcblxyXG5cdC8qKiBUaGlzIG9ic2VydmFibGUgYWxsb3dzIHRvIHZlcmlmeSBpZiBsaXN0IHBwcCBpcyBnZW5lcmF0ZWQgKi9cclxuXHRwcml2YXRlIHN1YmplY3RMaXN0UHBwID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxhbnk+Pih1bmRlZmluZWQpO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByaXZhdGUgZW52aXJvbm1lbnQ6IGFueSwgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50KSB7fVxyXG5cclxuXHQvKiogIEl0IGhhcyBhbiBvYnNlcnZhYmxlIHRvIG5vdGlmeSBpZiB0aGUgcHBwIGlzIGNoYW5nZWQgKi9cclxuXHRvbkNoYW5nZVBwcCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuc3ViamVjdFBwcC5hc09ic2VydmFibGUoKTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCBzZXRzIHRoZSBuZXcgcHBwICovXHJcblx0c2V0UHBwKHBwcDogbnVtYmVyKSB7XHJcblx0XHRpZiAocHBwKSB7XHJcblx0XHRcdGlmICh0eXBlb2YgcHBwID09PSAnc3RyaW5nJykge1xyXG5cdFx0XHRcdGlmIChOdW1iZXJVdGlsLmlzTnVtYmVyKHBwcCkpIHtcclxuXHRcdFx0XHRcdHBwcCA9IHBhcnNlSW50KHBwcCk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHBwcCA9IDA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9IGVsc2UgaWYgKHR5cGVvZiBwcHAgIT09ICdudW1iZXInKSB7XHJcblx0XHRcdFx0cHBwID0gMDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0dGhpcy5zdWJqZWN0UHBwLm5leHQocHBwKTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIGEgbGlzdCBvZiBwYXRyb2NpbmFkb3IgKi9cclxuXHRnZXRMaXN0UGF0cm9jaW5hZG9yKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL3BhdHJvY2luYWRvci9nZXRBbGwnXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgYSBwYXRyb2NpbmFkb3IgYnkgaWQgKi9cclxuXHRnZXRQYXRyb2NpbmFkb3JCeUlkKGlkOiBudW1iZXIpIHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5wbGlzICsgJ2NvbmZpZy9wYXRyb2NpbmFkb3IvZ2V0QnlJZCcsXHJcblx0XHRcdHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgncGF0Q29kaWdvJywgaWQudG9TdHJpbmcoKSkgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCBzYXZlcyBhIHBhdHJvY2luYWRvciAqL1xyXG5cdHNhdmVQYXRyb2NpbmFkb3Iob2xkUGF0cm9jaW5hZG9yOiBQbGlQYXRyb2NpbmFkb3IsIHBhdHJvY2luYWRvcjogUGxpUGF0cm9jaW5hZG9yKSB7XHJcblx0XHQvL3BsaVVzdWFyaW86IHt1c3VMb2dpbiA6IEF1dGhlbnRpY2F0aW9uVXRpbC5nZXRVc2VybmFtZSgpfTtcclxuXHRcdGxldCBvYmplY3QgPSB7XHJcblx0XHRcdHBsaVBhdHJvY2luYWRvckJlZm9yZTogb2xkUGF0cm9jaW5hZG9yLFxyXG5cdFx0XHRwbGlQYXRyb2NpbmFkb3I6IHBhdHJvY2luYWRvcixcclxuXHRcdFx0cGxpVXN1YXJpbzogeyB1c3VMb2dpbjogQXV0aGVudGljYXRpb25VdGlsLmdldFVzZXJuYW1lKCkgfVxyXG5cdFx0fTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvcGF0cm9jaW5hZG9yL3NhdmUnLFxyXG5cdFx0XHRvYmplY3QsXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBsaXN0IG9mIHRpcG8gcGF0cm9jaW5hZG9yICovXHJcblx0Z2V0TGlzdFRpcG9QYXRyb2NpbmFkb3IoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvdGlwby1wYXRyb2NpbmFkb3IvZ2V0QWxsJ1xyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBsaXN0IG9mIHRpcG8gcHJvZ3JhbWEgKi9cclxuXHRnZXRMaXN0VGlwb1Byb2dyYW1hKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL3RpcG8tcHJvZ3JhbWEvZ2V0QWxsJ1xyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBsaXN0IG9mIHBhaXNlcyAqL1xyXG5cdGdldFBhaXNlcygpIHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAncGFpcy9nZXRBbGwnKTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBsaXN0IG9mIHByb2dyYW1hcyBieSBwYXRyb2NpbmFkb3IgaWQgKi9cclxuXHRnZXRMaXN0UHJvZ3JhbWFzQnlwYXRDb2RpZ28ocGF0Q29kaWdvOiBudW1iZXIpIHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5wbGlzICsgJ2NvbmZpZy9wcm9ncmFtYS9nZXRBbGxCeVBhdHJvY2luYWRvcicsXHJcblx0XHRcdHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgncGF0Q29kaWdvJywgcGF0Q29kaWdvLnRvU3RyaW5nKCkpIH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgcmV0dXJucyBwcm9ncmFtYSBieSBpZCAqL1xyXG5cdGdldFByb2dyYW1hQnlJZChpZDogbnVtYmVyKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldCh0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5wbGlzICsgJ2NvbmZpZy9wcm9ncmFtYS9nZXRCeUlkJywge1xyXG5cdFx0XHRwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdwcm9nQ29kaWdvJywgaWQudG9TdHJpbmcoKSlcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHNhdmVzIGEgcHJvZ3JhbWEgKi9cclxuXHRzYXZlUHJvZ3JhbWEob2xkUHJvZ3JhbWE6IFBsaVByb2dyYW1hLCBwcm9ncmFtYTogUGxpUHJvZ3JhbWEpIHtcclxuXHRcdGxldCBvYmplY3QgPSB7XHJcblx0XHRcdHBsaVByb2dyYW1hQmVmb3JlOiBvbGRQcm9ncmFtYSxcclxuXHRcdFx0cGxpUHJvZ3JhbWE6IHByb2dyYW1hLFxyXG5cdFx0XHRwbGlVc3VhcmlvOiB7IHVzdUxvZ2luOiBBdXRoZW50aWNhdGlvblV0aWwuZ2V0VXNlcm5hbWUoKSB9XHJcblx0XHR9O1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5wbGlzICsgJ2NvbmZpZy9wcm9ncmFtYS9zYXZlJyxcclxuXHRcdFx0b2JqZWN0LFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgcmV0dXJucyB0aGUgbGlzdCBvZiBwcm9ncmFtYXMgYnkgcHJvZ3JhbWEgaWQgKi9cclxuXHRnZXRMaXN0UHJvbW9jaW9uZXNCeXByb2dDb2RpZ28ocHJvZ0NvZGlnbzogbnVtYmVyKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvcHJvbW9jaW9uL2dldEFsbEJ5UHJvZ3JhbWEnLFxyXG5cdFx0XHR7IHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3Byb2dDb2RpZ28nLCBwcm9nQ29kaWdvLnRvU3RyaW5nKCkpIH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgcmV0dXJucyB0aGUgbGlzdCBvZiBwcm9ncmFtYXMgYnkgcGF0cm9jaW5hZG9yIGlkICovXHJcblx0Z2V0TGlzdFByb21vY2lvbmVzQnlwYXRDb2RpZ28ocGF0Q29kaWdvOiBudW1iZXIpIHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5wbGlzICsgJ2NvbmZpZy9wcm9tb2Npb24vZ2V0QWxsQnlQYXRyb2NpbmFkb3InLFxyXG5cdFx0XHR7IHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3BhdENvZGlnbycsIHBhdENvZGlnby50b1N0cmluZygpKSB9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgdGhlIGxpc3Qgb2YgcHJvZ3JhbWFzIGJ5IHBhdHJvY2luYWRvciBpZCBhbmQgd2l0aG91dCBjb25maWd1cmFjaW9uICovXHJcblx0Z2V0TGlzdFByb21vY2lvbmVzQnlwYXRDb2RpZ29XaXRob3V0Q29uZmlndXJhY2lvbihwYXRDb2RpZ286IG51bWJlcikge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgK1xyXG5cdFx0XHRcdCdjb25maWcvcHJvbW9jaW9uL2dldEJ5UGF0cm9jaW5hZG9yL3dpdGhvdXRDb25maWd1cmFjaW9uJyxcclxuXHRcdFx0eyBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdwYXRDb2RpZ28nLCBwYXRDb2RpZ28udG9TdHJpbmcoKSkgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHByb21vY2lvbiBieSBpZCAqL1xyXG5cdGdldFByb21vY2lvbkJ5SWQoaWQ6IG51bWJlcikge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL3Byb21vY2lvbi9nZXRCeUlkJyxcclxuXHRcdFx0eyBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdwcm9tQ29kaWdvJywgaWQudG9TdHJpbmcoKSkgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCBzYXZlcyBhIHByb21vY2lvbiAqL1xyXG5cdHNhdmVQcm9tb2Npb24ob2xkUHJvbW9jaW9uOiBQbGlQcm9tb2Npb24sIHByb21vY2lvbjogUGxpUHJvbW9jaW9uKSB7XHJcblx0XHRsZXQgb2JqZWN0ID0ge1xyXG5cdFx0XHRwbGlQcm9tb2Npb25CZWZvcmU6IG9sZFByb21vY2lvbixcclxuXHRcdFx0cGxpUHJvbW9jaW9uOiBwcm9tb2Npb24sXHJcblx0XHRcdHBsaVVzdWFyaW86IHsgdXN1TG9naW46IEF1dGhlbnRpY2F0aW9uVXRpbC5nZXRVc2VybmFtZSgpIH1cclxuXHRcdH07XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL3Byb21vY2lvbi9zYXZlJyxcclxuXHRcdFx0b2JqZWN0LFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgcmV0dXJucyBhIGxpc3Qgb2YgcGxpQ25mQ29uZmlndXJhY2lvbiBieSBwYXRDb2RpZ28gKi9cclxuXHRnZXRDb25maWd1cmFjaW9uQnlwYXRDb2RpZ28ocGF0Q29kaWdvOiBudW1iZXIsIGNhcmdhckxpc3RhczogYm9vbGVhbikge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL2NvbmZpZ3VyYWNpb24vZ2V0QWxsQnlQYXRyb2NpbmFkb3InLFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0cGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpXHJcblx0XHRcdFx0XHQuc2V0KCdwYXRDb2RpZ28nLCBwYXRDb2RpZ28udG9TdHJpbmcoKSlcclxuXHRcdFx0XHRcdC5zZXQoJ2Nhcmdhckxpc3RhcycsIGNhcmdhckxpc3Rhcy50b1N0cmluZygpKVxyXG5cdFx0XHR9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgY29uZmlndXJhY2lvbiBieSBpZCAqL1xyXG5cdGdldENvbmZpZ3VyYWNpb25CeUlkKGlkOiBudW1iZXIsIGNhcmdhckxpc3RhczogYm9vbGVhbikge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL2NvbmZpZ3VyYWNpb24vZ2V0QnlJZCcsXHJcblx0XHRcdHtcclxuXHRcdFx0XHRwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKClcclxuXHRcdFx0XHRcdC5zZXQoJ2Njb25Db2RpZ28nLCBpZC50b1N0cmluZygpKVxyXG5cdFx0XHRcdFx0LnNldCgnY2FyZ2FyTGlzdGFzJywgY2FyZ2FyTGlzdGFzLnRvU3RyaW5nKCkpXHJcblx0XHRcdH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgc2F2ZXMgYSBjb25maWd1cmFjaW9uICovXHJcblx0c2F2ZUNvbmZpZ3VyYWNpb24ob2xkQ29uZmlndXJhY2lvbjogUGxpQ25mQ29uZmlndXJhY2lvbiwgY29uZmlndXJhY2lvbjogUGxpQ25mQ29uZmlndXJhY2lvbikge1xyXG5cdFx0bGV0IG9iamVjdCA9IHtcclxuXHRcdFx0cGxpQ25mQ29uZmlndXJhY2lvbkJlZm9yZTogb2xkQ29uZmlndXJhY2lvbixcclxuXHRcdFx0cGxpQ25mQ29uZmlndXJhY2lvbjogY29uZmlndXJhY2lvbixcclxuXHRcdFx0cGxpVXN1YXJpbzogeyB1c3VMb2dpbjogQXV0aGVudGljYXRpb25VdGlsLmdldFVzZXJuYW1lKCkgfVxyXG5cdFx0fTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvY29uZmlndXJhY2lvbi9zYXZlJyxcclxuXHRcdFx0b2JqZWN0LFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgdXBkYXRlcyBkZSBjb2RlIG9mIGNvbmZpZ3VyYWNpb24gdG8gYSBsaXN0IG9mIGNvZGVzIG9mIHByb21vY2lvbiAqL1xyXG5cdHVwZGF0ZUNvbmZpZ3VyYWNpb25QbGlQcm9tb2Npb24oY2NvbkNvZGlnbzogbnVtYmVyLCBsaXN0YVByb21Db2RpZ286IEFycmF5PG51bWJlcj4pIHtcclxuXHRcdGxldCBvYmplY3QgPSB7XHJcblx0XHRcdGNjb25Db2RpZ286IGNjb25Db2RpZ28sXHJcblx0XHRcdGxpc3RhUHJvbUNvZGlnbzogbGlzdGFQcm9tQ29kaWdvXHJcblx0XHR9O1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wdXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL3Byb21vY2lvbi91cGRhdGVDb25maWd1cmF0aW9uTWFzc2l2ZScsXHJcblx0XHRcdG9iamVjdCxcclxuXHRcdFx0dGhpcy5oZWFkZXJKc29uXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IGhhcyBhbiBvYnNlcnZhYmxlIHRvIG5vdGlmeSBpZiB0aGUgbGlzdCBwcHAgaXMgZ2VuZXJhdGVkKi9cclxuXHRnZXRMaXN0UHBwKCk6IE9ic2VydmFibGU8QXJyYXk8YW55Pj4ge1xyXG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdHRoaXMuZ2VuZXJhdGUoKTtcclxuXHRcdH0sIDMwMCk7XHJcblx0XHRyZXR1cm4gdGhpcy5zdWJqZWN0TGlzdFBwcC5hc09ic2VydmFibGUoKTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIGEgbGlzdCBvZiBhdmFpbGFibGUgcGxpUHJvbW9jaW9uIGJ5IHBhdENvZGlnbyAqL1xyXG5cdGdldEF2YWlsYWJsZVByb21vY2lvbihwYXRDb2RpZ286IG51bWJlcikge1xyXG5cdFx0aWYgKCFwYXRDb2RpZ28pIHtcclxuXHRcdFx0cGF0Q29kaWdvID0gMDtcclxuXHRcdH1cclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5wbGlzICsgJ2NvbmZpZy9wcm9tb2Npb24vZ2V0QXZhaWxhYmxlQnlQYXRDb2RpZ28nLFxyXG5cdFx0XHR7IHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3BhdENvZGlnbycsIHBhdENvZGlnby50b1N0cmluZygpKSB9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgYSBsaXN0IG9mIHBsaVByb21vY2lvbiAqL1xyXG5cdGdldEFsbCgpIHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL3Byb21vY2lvbi9nZXRBbGwnKTtcclxuXHR9XHJcblxyXG5cdC8qKiBpdCByZXR1cm5zIGxpc3Qgb2YgcGF0cm9jaW5hZG9yIGRlcGVuZHMgb2YgdG9rZW4gaW5mbyovXHJcblx0Z2V0bFBhdHJvY2luYWRvckJ5VG9rZW4oKTogUGxpUGF0cm9jaW5hZG9yW10ge1xyXG5cdFx0bGV0IHRva2VuUHBwID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oUHBwU2VydmljZS5UT0tFTl9QUFApO1xyXG5cdFx0aWYgKHRva2VuUHBwICYmIHRva2VuUHBwLmxlbmd0aCkge1xyXG5cdFx0XHRjb25zdCBwcHAgPSBKd3RVdGlsLnBhcnNlSnd0KHRva2VuUHBwKTtcclxuXHRcdFx0aWYgKHBwcCAmJiBwcHAucHBwKSB7XHJcblx0XHRcdFx0bGV0IGxQbGlQYXRyb2NpbmFkb3IgPSBBcnJheTxQbGlQYXRyb2NpbmFkb3I+KCk7XHJcblx0XHRcdFx0Zm9yIChsZXQgcGF0IG9mIHBwcC5wcHApIHtcclxuXHRcdFx0XHRcdGxldCBwbGlQYXQgPSBuZXcgUGxpUGF0cm9jaW5hZG9yKCk7XHJcblx0XHRcdFx0XHRwbGlQYXQucGF0Q29kaWdvID0gcGF0LnBhdENvZGlnbztcclxuXHRcdFx0XHRcdHBsaVBhdC5wYXROb21icmUgPSBwYXQucGF0Tm9tYnJlO1xyXG5cdFx0XHRcdFx0cGxpUGF0LnBhdE5vbWJyZUNvcnRvID0gcGF0LnBhdE5vbWJyZUNvcnRvO1xyXG5cdFx0XHRcdFx0aWYgKHBhdC5saXN0YVBsaVByb2dyYW1hICYmIHBhdC5saXN0YVBsaVByb2dyYW1hLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdFx0cGxpUGF0LmxQbGlQcm9ncmFtYSA9IEFycmF5PFBsaVByb2dyYW1hPigpO1xyXG5cdFx0XHRcdFx0XHRmb3IgKGxldCBwcm9nIG9mIHBhdC5saXN0YVBsaVByb2dyYW1hKSB7XHJcblx0XHRcdFx0XHRcdFx0bGV0IHBsaVByb2cgPSBuZXcgUGxpUHJvZ3JhbWEoKTtcclxuXHRcdFx0XHRcdFx0XHRwbGlQcm9nLnByb2dDb2RpZ28gPSBwcm9nLnByb2dDb2RpZ287XHJcblx0XHRcdFx0XHRcdFx0cGxpUHJvZy5wcm9nTm9tYnJlID0gcHJvZy5wcm9nTm9tYnJlO1xyXG5cdFx0XHRcdFx0XHRcdHBsaVByb2cucHJvZ05vbWJyZUNvcnRvID0gcHJvZy5wcm9nTm9tYnJlQ29ydG87XHJcblx0XHRcdFx0XHRcdFx0aWYgKHByb2cubGlzdGFQbGlQcm9tb2Npb24gJiYgcHJvZy5saXN0YVBsaVByb21vY2lvbi5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRwbGlQcm9nLmxQbGlQcm9tb2Npb24gPSBBcnJheTxQbGlQcm9tb2Npb24+KCk7XHJcblx0XHRcdFx0XHRcdFx0XHRmb3IgKGxldCBwcm9tIG9mIHByb2cubGlzdGFQbGlQcm9tb2Npb24pIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0bGV0IHBsaVByb20gPSBuZXcgUGxpUHJvbW9jaW9uKCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHBsaVByb20ucHJvbUNvZGlnbyA9IHByb20ucHJvbUNvZGlnbztcclxuXHRcdFx0XHRcdFx0XHRcdFx0cGxpUHJvbS5wcm9tTm9tYnJlID0gcHJvbS5wcm9tTm9tYnJlO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRwbGlQcm9tLnByb21Ob21icmVDb3J0byA9IHByb20ucHJvbU5vbWJyZUNvcnRvO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRwbGlQcm9tLnByb21GZWNoYUNyZWFjaW9uID0gcHJvbS5wcm9tRmVjaGFDcmVhY2lvbjtcclxuXHRcdFx0XHRcdFx0XHRcdFx0cGxpUHJvZy5sUGxpUHJvbW9jaW9uLnB1c2gocGxpUHJvbSk7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdHBsaVBhdC5sUGxpUHJvZ3JhbWEucHVzaChwbGlQcm9nKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0bFBsaVBhdHJvY2luYWRvci5wdXNoKHBsaVBhdCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiBsUGxpUGF0cm9jaW5hZG9yO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gbnVsbDtcclxuXHR9XHJcblxyXG5cdGdldEFsbFByb21vY2lvbmVzKCk6IFBsaVByb21vY2lvbltdIHtcclxuXHRcdGxldCBsUHJvbW9jaW9uZXM6IFBsaVByb21vY2lvbltdID0gW107XHJcblx0XHRsZXQgdG9rZW5QcHAgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShQcHBTZXJ2aWNlLlRPS0VOX1BQUCk7XHJcblx0XHRpZiAodG9rZW5QcHAgJiYgdG9rZW5QcHAubGVuZ3RoKSB7XHJcblx0XHRcdGNvbnN0IHBwcCA9IEp3dFV0aWwucGFyc2VKd3QodG9rZW5QcHApO1xyXG5cdFx0XHRpZiAocHBwICYmIHBwcC5wcHApIHtcclxuXHRcdFx0XHRmb3IgKGxldCBwYXQgb2YgcHBwLnBwcCkge1xyXG5cdFx0XHRcdFx0bGV0IHBsaVBhdCA9IG5ldyBQbGlQYXRyb2NpbmFkb3IoKTtcclxuXHRcdFx0XHRcdHBsaVBhdC5wYXRDb2RpZ28gPSBwYXQucGF0Q29kaWdvO1xyXG5cdFx0XHRcdFx0cGxpUGF0LnBhdE5vbWJyZSA9IHBhdC5wYXROb21icmU7XHJcblx0XHRcdFx0XHRwbGlQYXQucGF0Tm9tYnJlQ29ydG8gPSBwYXQucGF0Tm9tYnJlQ29ydG87XHJcblx0XHRcdFx0XHRpZiAocGF0Lmxpc3RhUGxpUHJvZ3JhbWEgJiYgcGF0Lmxpc3RhUGxpUHJvZ3JhbWEubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRwbGlQYXQubFBsaVByb2dyYW1hID0gQXJyYXk8UGxpUHJvZ3JhbWE+KCk7XHJcblx0XHRcdFx0XHRcdGZvciAobGV0IHByb2cgb2YgcGF0Lmxpc3RhUGxpUHJvZ3JhbWEpIHtcclxuXHRcdFx0XHRcdFx0XHRsZXQgcGxpUHJvZyA9IG5ldyBQbGlQcm9ncmFtYSgpO1xyXG5cdFx0XHRcdFx0XHRcdHBsaVByb2cucHJvZ0NvZGlnbyA9IHByb2cucHJvZ0NvZGlnbztcclxuXHRcdFx0XHRcdFx0XHRwbGlQcm9nLnByb2dOb21icmUgPSBwcm9nLnByb2dOb21icmU7XHJcblx0XHRcdFx0XHRcdFx0cGxpUHJvZy5wcm9nTm9tYnJlQ29ydG8gPSBwcm9nLnByb2dOb21icmVDb3J0bztcclxuXHRcdFx0XHRcdFx0XHRpZiAocHJvZy5saXN0YVBsaVByb21vY2lvbiAmJiBwcm9nLmxpc3RhUGxpUHJvbW9jaW9uLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdFx0XHRcdHBsaVByb2cubFBsaVByb21vY2lvbiA9IEFycmF5PFBsaVByb21vY2lvbj4oKTtcclxuXHRcdFx0XHRcdFx0XHRcdGZvciAobGV0IHByb20gb2YgcHJvZy5saXN0YVBsaVByb21vY2lvbikge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRsZXQgcGxpUHJvbSA9IG5ldyBQbGlQcm9tb2Npb24oKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0cGxpUHJvbS5wcm9tQ29kaWdvID0gcHJvbS5wcm9tQ29kaWdvO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRwbGlQcm9tLnByb21Ob21icmUgPSBwcm9tLnByb21Ob21icmU7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHBsaVByb20ucHJvbU5vbWJyZUNvcnRvID0gcHJvbS5wcm9tTm9tYnJlQ29ydG87XHJcblx0XHRcdFx0XHRcdFx0XHRcdHBsaVByb20ucHJvbUZlY2hhQ3JlYWNpb24gPSBwcm9tLnByb21GZWNoYUNyZWFjaW9uO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRsUHJvbW9jaW9uZXMucHVzaChwbGlQcm9tKTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuIGxQcm9tb2Npb25lcztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIG51bGw7XHJcblx0fVxyXG5cclxuXHQvKiogaXQgcmV0dXJucyB0aGUgcGF0Y29kaWdvIGJ5IHByb21Db2RpZ28gKi9cclxuXHRnZXRQYXRDb2RpZ29CeVByb21Db2RpZ28ocHJvbUNvZGlnbyk6IG51bWJlciB7XHJcblx0XHRsZXQgdG9rZW5QcHAgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShQcHBTZXJ2aWNlLlRPS0VOX1BQUCk7XHJcblx0XHRpZiAodG9rZW5QcHAgJiYgdG9rZW5QcHAubGVuZ3RoKSB7XHJcblx0XHRcdGNvbnN0IHBwcCA9IEp3dFV0aWwucGFyc2VKd3QodG9rZW5QcHApO1xyXG5cdFx0XHRpZiAocHBwICYmIHBwcC5wcHApXHJcblx0XHRcdFx0Zm9yIChjb25zdCBwYXRyb2NpbmFkb3Igb2YgcHBwLnBwcClcclxuXHRcdFx0XHRcdGZvciAoY29uc3QgcHJvZ3JhbWEgb2YgcGF0cm9jaW5hZG9yLmxpc3RhUGxpUHJvZ3JhbWEpXHJcblx0XHRcdFx0XHRcdGZvciAoY29uc3QgcHJvbW9jaW9uIG9mIHByb2dyYW1hLmxpc3RhUGxpUHJvbW9jaW9uKVxyXG5cdFx0XHRcdFx0XHRcdGlmIChwcm9tb2Npb24ucHJvbUNvZGlnbyA9PSBwcm9tQ29kaWdvKSByZXR1cm4gcGF0cm9jaW5hZG9yLnBhdENvZGlnbztcclxuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKiBpdCByZXR1cm5zIHRoZSBwYXRjb2RpZ28gYnkgcHJvbUNvZGlnbyAqL1xyXG5cdGdldFByb2dDb2RpZ29CeVByb21Db2RpZ28ocHJvbUNvZGlnbyk6IG51bWJlciB7XHJcblx0XHRsZXQgdG9rZW5QcHAgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShQcHBTZXJ2aWNlLlRPS0VOX1BQUCk7XHJcblx0XHRpZiAodG9rZW5QcHAgJiYgdG9rZW5QcHAubGVuZ3RoKSB7XHJcblx0XHRcdGNvbnN0IHBwcCA9IEp3dFV0aWwucGFyc2VKd3QodG9rZW5QcHApO1xyXG5cdFx0XHRpZiAocHBwICYmIHBwcC5wcHApXHJcblx0XHRcdFx0Zm9yIChjb25zdCBwYXRyb2NpbmFkb3Igb2YgcHBwLnBwcClcclxuXHRcdFx0XHRcdGZvciAoY29uc3QgcHJvZ3JhbWEgb2YgcGF0cm9jaW5hZG9yLmxpc3RhUGxpUHJvZ3JhbWEpXHJcblx0XHRcdFx0XHRcdGZvciAoY29uc3QgcHJvbW9jaW9uIG9mIHByb2dyYW1hLmxpc3RhUGxpUHJvbW9jaW9uKVxyXG5cdFx0XHRcdFx0XHRcdGlmIChwcm9tb2Npb24ucHJvbUNvZGlnbyA9PSBwcm9tQ29kaWdvKSByZXR1cm4gcHJvZ3JhbWEucHJvZ0NvZGlnbztcclxuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcclxuXHRcdH1cclxuXHR9XHJcblx0LyoqIEl0IGdlbmVyYXRlZCBhIGxpZ2h0IGxpc3Qgb2YgcHBwICovXHJcblx0cHJpdmF0ZSBnZW5lcmF0ZSgpIHtcclxuXHRcdC8vIDEuIGl0IHZlcmlmaWVzIHRva2VuUHBwXHJcblx0XHRsZXQgdG9rZW5QcHAgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShQcHBTZXJ2aWNlLlRPS0VOX1BQUCk7XHJcblx0XHRpZiAodG9rZW5QcHAgJiYgdG9rZW5QcHAubGVuZ3RoKSB7XHJcblx0XHRcdGNvbnN0IHBwcCA9IEp3dFV0aWwucGFyc2VKd3QodG9rZW5QcHApO1xyXG5cdFx0XHRpZiAocHBwICYmIHBwcC5wcHApIHRoaXMuc3ViamVjdExpc3RQcHAubmV4dChwcHAucHBwKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdC8vIDIuIGl0IHJldHJpZXZlcyB0aGUgbGlzdCBwcHBcclxuXHRcdFx0bGV0IGF1dGhvcml0aWVzID0gQXV0aGVudGljYXRpb25VdGlsLmdldEF1dGhvcml0aWVzKCk7XHJcblx0XHRcdGlmIChhdXRob3JpdGllcyAmJiBhdXRob3JpdGllcy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0bGV0IGxpc3RQYXRDb2RpZ28gPSBbXTtcclxuXHRcdFx0XHRmb3IgKGNvbnN0IGF1dGhvcml0eSBvZiBhdXRob3JpdGllcykgbGlzdFBhdENvZGlnby5wdXNoKGF1dGhvcml0eS5wYXRDb2RpZ28pO1xyXG5cclxuXHRcdFx0XHRpZiAobGlzdFBhdENvZGlnbylcclxuXHRcdFx0XHRcdHRoaXMuaHR0cENsaWVudFxyXG5cdFx0XHRcdFx0XHQuZ2V0KFxyXG5cdFx0XHRcdFx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgK1xyXG5cdFx0XHRcdFx0XHRcdFx0J2NvbmZpZy9wYXRyb2NpbmFkb3IvZ2V0TGlnaHRCeUxpc3RQYXRyb2NpbmFkb3InLFxyXG5cdFx0XHRcdFx0XHRcdHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgncGF0Q29kaWdvcycsIGxpc3RQYXRDb2RpZ28udG9TdHJpbmcoKSkgfVxyXG5cdFx0XHRcdFx0XHQpXHJcblx0XHRcdFx0XHRcdC5zdWJzY3JpYmUoXHJcblx0XHRcdFx0XHRcdFx0KHJlc3VsdDogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAocmVzdWx0ICYmIHJlc3VsdC50b2tlblBwcCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRsb2NhbFN0b3JhZ2Uuc2V0SXRlbShQcHBTZXJ2aWNlLlRPS0VOX1BQUCwgcmVzdWx0LnRva2VuUHBwKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5nZW5lcmF0ZSgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5zdWJqZWN0TGlzdFBwcC5uZXh0KFtdKTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRcdChlcnJvcikgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5lcnJvcignRVJST1IgY29uc3VsdGluZyBwcHAnLCBlcnJvcik7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLnN1YmplY3RMaXN0UHBwLm5leHQoW10pO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqIGl0IHJldHVybnMgdGhlIFBQUCBmcm9tIHRoZSB0b2tlbiAqL1xyXG5cdGdldFBQUEluZm9Gcm9tVG9rZW4oKTogUGxpUGF0cm9jaW5hZG9yW10ge1xyXG5cdFx0bGV0IHRva2VuUHBwID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oUHBwU2VydmljZS5UT0tFTl9QUFApO1xyXG5cdFx0Y29uc3QgbFBsaVBhdHJvY2luYWRvcjogUGxpUGF0cm9jaW5hZG9yW10gPSBbXTtcclxuXHRcdGlmICh0b2tlblBwcCAmJiB0b2tlblBwcC5sZW5ndGgpIHtcclxuXHRcdFx0Y29uc3QgcHBwID0gSnd0VXRpbC5wYXJzZUp3dCh0b2tlblBwcCk7XHJcblx0XHRcdGlmIChwcHAgJiYgcHBwLnBwcClcclxuXHRcdFx0XHRmb3IgKGNvbnN0IHBhdHJvY2luYWRvciBvZiBwcHAucHBwKSB7XHJcblx0XHRcdFx0XHRjb25zdCBwbGlQYXRyb2NpbmFkb3IgPSBuZXcgUGxpUGF0cm9jaW5hZG9yKCk7XHJcblx0XHRcdFx0XHRjb25zdCBsUGxpUHJvZ3JhbWE6IFBsaVByb2dyYW1hW10gPSBbXTtcclxuXHRcdFx0XHRcdGZvciAoY29uc3QgcHJvZ3JhbWEgb2YgcGF0cm9jaW5hZG9yLmxpc3RhUGxpUHJvZ3JhbWEpIHtcclxuXHRcdFx0XHRcdFx0Y29uc3QgcGxpUHJvZ3JhbWEgPSBuZXcgUGxpUHJvZ3JhbWEoKTtcclxuXHRcdFx0XHRcdFx0cGxpUHJvZ3JhbWEucHJvZ0NvZGlnbyA9IHByb2dyYW1hLnByb2dDb2RpZ287XHJcblx0XHRcdFx0XHRcdHBsaVByb2dyYW1hLnByb2dOb21icmVDb3J0byA9IHByb2dyYW1hLnByb2dOb21icmVDb3J0bztcclxuXHRcdFx0XHRcdFx0cGxpUHJvZ3JhbWEucHJvZ05vbWJyZSA9IHByb2dyYW1hLnByb2dOb21icmU7XHJcblx0XHRcdFx0XHRcdGNvbnN0IGxQbGlQcm9tb2Npb246IFBsaVByb21vY2lvbltdID0gW107XHJcblx0XHRcdFx0XHRcdGZvciAoY29uc3QgcHJvbW9jaW9uIG9mIHByb2dyYW1hLmxpc3RhUGxpUHJvbW9jaW9uKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc3QgcGxpUHJvbW9jaW9uID0gbmV3IFBsaVByb21vY2lvbigpO1xyXG5cdFx0XHRcdFx0XHRcdHBsaVByb21vY2lvbi5wcm9tQ29kaWdvID0gcHJvbW9jaW9uLnByb21Db2RpZ287XHJcblx0XHRcdFx0XHRcdFx0cGxpUHJvbW9jaW9uLnByb21Ob21icmVDb3J0byA9IHByb21vY2lvbi5wcm9tTm9tYnJlQ29ydG87XHJcblx0XHRcdFx0XHRcdFx0cGxpUHJvbW9jaW9uLnByb21Ob21icmUgPSBwcm9tb2Npb24ucHJvbU5vbWJyZTtcclxuXHRcdFx0XHRcdFx0XHRwbGlQcm9tb2Npb24ucHJvbUFuaW8gPSBwcm9tb2Npb24ucHJvbUFuaW87XHJcblx0XHRcdFx0XHRcdFx0bFBsaVByb21vY2lvbi5wdXNoKHBsaVByb21vY2lvbik7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0cGxpUHJvZ3JhbWEubFBsaVByb21vY2lvbiA9IGxQbGlQcm9tb2Npb247XHJcblx0XHRcdFx0XHRcdGxQbGlQcm9ncmFtYS5wdXNoKHBsaVByb2dyYW1hKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHBsaVBhdHJvY2luYWRvci5sUGxpUHJvZ3JhbWEgPSBsUGxpUHJvZ3JhbWE7XHJcblx0XHRcdFx0XHRsUGxpUGF0cm9jaW5hZG9yLnB1c2gocGxpUGF0cm9jaW5hZG9yKTtcclxuXHRcdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gbFBsaVBhdHJvY2luYWRvcjtcclxuXHR9XHJcbn1cclxuIl19
360
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHBwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wbGktY29tbW9ucy9zcmMvbGliL3NlcnZpY2VzL3BwcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFjLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVuRCxPQUFPLEVBQ04sZUFBZSxFQUNmLFdBQVcsRUFDWCxZQUFZLEVBRVosT0FBTyxFQUNQLFVBQVUsRUFDVixrQkFBa0IsRUFFbEIsTUFBTSxhQUFhLENBQUM7OztBQUtyQixNQUFNLE9BQU8sVUFBVTtJQVl0QixZQUEyQyxXQUFnQixFQUFVLFVBQXNCO1FBQWhELGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVhuRixlQUFVLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFLMUYseURBQXlEO1FBQ2pELGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBUyxTQUFTLENBQUMsQ0FBQztRQUU1RCxnRUFBZ0U7UUFDeEQsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBYSxTQUFTLENBQUMsQ0FBQztJQUUwQixDQUFDO0lBRS9GLDREQUE0RDtJQUM1RCxXQUFXO1FBQ1YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsTUFBTSxDQUFDLEdBQVc7UUFDakIsSUFBSSxHQUFHLEVBQUU7WUFDUixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtnQkFDNUIsSUFB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Q2YsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxVQUFrQjtRQUNwQyxJQUFJLE1BQU0sR0FBRztZQUNaLFVBQVUsRUFBRSxVQUFVO1NBQ3RCLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLHFDQUFxQyxFQUMxRSxNQUFNLEVBQ04sSUFBSSxDQUFDLFVBQVUsQ0FDZixDQUFDO0lBQ0gsQ0FBQzs7QUE3YUQsZ0RBQWdEO0FBQ3pDLG9CQUFTLEdBQUcsVUFBVSxDQUFDO3VHQUpsQixVQUFVLGtCQVlGLGFBQWE7MkdBWnJCLFVBQVUsY0FGVixNQUFNOzJGQUVOLFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCOzswQkFhYSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcywgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtcclxuXHRQbGlQYXRyb2NpbmFkb3IsXHJcblx0UGxpUHJvZ3JhbWEsXHJcblx0UGxpUHJvbW9jaW9uLFxyXG5cdFBsaUNuZkNvbmZpZ3VyYWNpb24sXHJcblx0Snd0VXRpbCxcclxuXHROdW1iZXJVdGlsLFxyXG5cdEF1dGhlbnRpY2F0aW9uVXRpbCxcclxuXHRQcHBSZXF1ZXN0XHJcbn0gZnJvbSAnbmctcGxpLXV0aWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUHBwU2VydmljZSB7XHJcblx0cHJpdmF0ZSBoZWFkZXJKc29uID0geyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pIH07XHJcblxyXG5cdC8qKiBJdCBjb250YWlucyB0aGUga2V5IG9mIHRoZSBqc29uIHdlYiB0b2tlbiAqL1xyXG5cdHN0YXRpYyBUT0tFTl9QUFAgPSAndG9rZW5QcHAnO1xyXG5cclxuXHQvKiogVGhpcyBvYnNlcnZhYmxlIGFsbG93cyB0byB2ZXJpZnkgaWYgcHBwIGlzIGNyZWF0ZWQgKi9cclxuXHRwcml2YXRlIHN1YmplY3RQcHAgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4odW5kZWZpbmVkKTtcclxuXHJcblx0LyoqIFRoaXMgb2JzZXJ2YWJsZSBhbGxvd3MgdG8gdmVyaWZ5IGlmIGxpc3QgcHBwIGlzIGdlbmVyYXRlZCAqL1xyXG5cdHByaXZhdGUgc3ViamVjdExpc3RQcHAgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PGFueT4+KHVuZGVmaW5lZCk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudDogYW55LCBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpIHt9XHJcblxyXG5cdC8qKiAgSXQgaGFzIGFuIG9ic2VydmFibGUgdG8gbm90aWZ5IGlmIHRoZSBwcHAgaXMgY2hhbmdlZCAqL1xyXG5cdG9uQ2hhbmdlUHBwKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcblx0XHRyZXR1cm4gdGhpcy5zdWJqZWN0UHBwLmFzT2JzZXJ2YWJsZSgpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHNldHMgdGhlIG5ldyBwcHAgKi9cclxuXHRzZXRQcHAocHBwOiBudW1iZXIpIHtcclxuXHRcdGlmIChwcHApIHtcclxuXHRcdFx0aWYgKHR5cGVvZiBwcHAgPT09ICdzdHJpbmcnKSB7XHJcblx0XHRcdFx0aWYgKE51bWJlclV0aWwuaXNOdW1iZXIocHBwKSkge1xyXG5cdFx0XHRcdFx0cHBwID0gcGFyc2VJbnQocHBwKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0cHBwID0gMDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0gZWxzZSBpZiAodHlwZW9mIHBwcCAhPT0gJ251bWJlcicpIHtcclxuXHRcdFx0XHRwcHAgPSAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHR0aGlzLnN1YmplY3RQcHAubmV4dChwcHApO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgYSBsaXN0IG9mIHBhdHJvY2luYWRvciAqL1xyXG5cdGdldExpc3RQYXRyb2NpbmFkb3IoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvcGF0cm9jaW5hZG9yL2dldEFsbCdcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgcmV0dXJucyBhIHBhdHJvY2luYWRvciBieSBpZCAqL1xyXG5cdGdldFBhdHJvY2luYWRvckJ5SWQoaWQ6IG51bWJlcikge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL3BhdHJvY2luYWRvci9nZXRCeUlkJyxcclxuXHRcdFx0eyBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdwYXRDb2RpZ28nLCBpZC50b1N0cmluZygpKSB9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHNhdmVzIGEgcGF0cm9jaW5hZG9yICovXHJcblx0c2F2ZVBhdHJvY2luYWRvcihvbGRQYXRyb2NpbmFkb3I6IFBsaVBhdHJvY2luYWRvciwgcGF0cm9jaW5hZG9yOiBQbGlQYXRyb2NpbmFkb3IpIHtcclxuXHRcdC8vcGxpVXN1YXJpbzoge3VzdUxvZ2luIDogQXV0aGVudGljYXRpb25VdGlsLmdldFVzZXJuYW1lKCl9O1xyXG5cdFx0bGV0IG9iamVjdCA9IHtcclxuXHRcdFx0cGxpUGF0cm9jaW5hZG9yQmVmb3JlOiBvbGRQYXRyb2NpbmFkb3IsXHJcblx0XHRcdHBsaVBhdHJvY2luYWRvcjogcGF0cm9jaW5hZG9yLFxyXG5cdFx0XHRwbGlVc3VhcmlvOiB7IHVzdUxvZ2luOiBBdXRoZW50aWNhdGlvblV0aWwuZ2V0VXNlcm5hbWUoKSB9XHJcblx0XHR9O1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5wbGlzICsgJ2NvbmZpZy9wYXRyb2NpbmFkb3Ivc2F2ZScsXHJcblx0XHRcdG9iamVjdCxcclxuXHRcdFx0dGhpcy5oZWFkZXJKc29uXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgdGhlIGxpc3Qgb2YgdGlwbyBwYXRyb2NpbmFkb3IgKi9cclxuXHRnZXRMaXN0VGlwb1BhdHJvY2luYWRvcigpIHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5wbGlzICsgJ2NvbmZpZy90aXBvLXBhdHJvY2luYWRvci9nZXRBbGwnXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgdGhlIGxpc3Qgb2YgdGlwbyBwcm9ncmFtYSAqL1xyXG5cdGdldExpc3RUaXBvUHJvZ3JhbWEoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvdGlwby1wcm9ncmFtYS9nZXRBbGwnXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgdGhlIGxpc3Qgb2YgcGFpc2VzICovXHJcblx0Z2V0UGFpc2VzKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdwYWlzL2dldEFsbCcpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgdGhlIGxpc3Qgb2YgcHJvZ3JhbWFzIGJ5IHBhdHJvY2luYWRvciBpZCAqL1xyXG5cdGdldExpc3RQcm9ncmFtYXNCeXBhdENvZGlnbyhwYXRDb2RpZ286IG51bWJlcikge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL3Byb2dyYW1hL2dldEFsbEJ5UGF0cm9jaW5hZG9yJyxcclxuXHRcdFx0eyBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdwYXRDb2RpZ28nLCBwYXRDb2RpZ28udG9TdHJpbmcoKSkgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHByb2dyYW1hIGJ5IGlkICovXHJcblx0Z2V0UHJvZ3JhbWFCeUlkKGlkOiBudW1iZXIpIHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL3Byb2dyYW1hL2dldEJ5SWQnLCB7XHJcblx0XHRcdHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3Byb2dDb2RpZ28nLCBpZC50b1N0cmluZygpKVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgc2F2ZXMgYSBwcm9ncmFtYSAqL1xyXG5cdHNhdmVQcm9ncmFtYShvbGRQcm9ncmFtYTogUGxpUHJvZ3JhbWEsIHByb2dyYW1hOiBQbGlQcm9ncmFtYSkge1xyXG5cdFx0bGV0IG9iamVjdCA9IHtcclxuXHRcdFx0cGxpUHJvZ3JhbWFCZWZvcmU6IG9sZFByb2dyYW1hLFxyXG5cdFx0XHRwbGlQcm9ncmFtYTogcHJvZ3JhbWEsXHJcblx0XHRcdHBsaVVzdWFyaW86IHsgdXN1TG9naW46IEF1dGhlbnRpY2F0aW9uVXRpbC5nZXRVc2VybmFtZSgpIH1cclxuXHRcdH07XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL3Byb2dyYW1hL3NhdmUnLFxyXG5cdFx0XHRvYmplY3QsXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBsaXN0IG9mIHByb2dyYW1hcyBieSBwcm9ncmFtYSBpZCAqL1xyXG5cdGdldExpc3RQcm9tb2Npb25lc0J5cHJvZ0NvZGlnbyhwcm9nQ29kaWdvOiBudW1iZXIpIHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5wbGlzICsgJ2NvbmZpZy9wcm9tb2Npb24vZ2V0QWxsQnlQcm9ncmFtYScsXHJcblx0XHRcdHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgncHJvZ0NvZGlnbycsIHByb2dDb2RpZ28udG9TdHJpbmcoKSkgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBsaXN0IG9mIHByb2dyYW1hcyBieSBwYXRyb2NpbmFkb3IgaWQgKi9cclxuXHRnZXRMaXN0UHJvbW9jaW9uZXNCeXBhdENvZGlnbyhwYXRDb2RpZ286IG51bWJlcikge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL3Byb21vY2lvbi9nZXRBbGxCeVBhdHJvY2luYWRvcicsXHJcblx0XHRcdHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgncGF0Q29kaWdvJywgcGF0Q29kaWdvLnRvU3RyaW5nKCkpIH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgcmV0dXJucyB0aGUgbGlzdCBvZiBwcm9ncmFtYXMgYnkgcGF0cm9jaW5hZG9yIGlkIGFuZCB3aXRob3V0IGNvbmZpZ3VyYWNpb24gKi9cclxuXHRnZXRMaXN0UHJvbW9jaW9uZXNCeXBhdENvZGlnb1dpdGhvdXRDb25maWd1cmFjaW9uKHBhdENvZGlnbzogbnVtYmVyKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArXHJcblx0XHRcdFx0J2NvbmZpZy9wcm9tb2Npb24vZ2V0QnlQYXRyb2NpbmFkb3Ivd2l0aG91dENvbmZpZ3VyYWNpb24nLFxyXG5cdFx0XHR7IHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3BhdENvZGlnbycsIHBhdENvZGlnby50b1N0cmluZygpKSB9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgcHJvbW9jaW9uIGJ5IGlkICovXHJcblx0Z2V0UHJvbW9jaW9uQnlJZChpZDogbnVtYmVyKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvcHJvbW9jaW9uL2dldEJ5SWQnLFxyXG5cdFx0XHR7IHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3Byb21Db2RpZ28nLCBpZC50b1N0cmluZygpKSB9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHNhdmVzIGEgcHJvbW9jaW9uICovXHJcblx0c2F2ZVByb21vY2lvbihvbGRQcm9tb2Npb246IFBsaVByb21vY2lvbiwgcHJvbW9jaW9uOiBQbGlQcm9tb2Npb24pIHtcclxuXHRcdGxldCBvYmplY3QgPSB7XHJcblx0XHRcdHBsaVByb21vY2lvbkJlZm9yZTogb2xkUHJvbW9jaW9uLFxyXG5cdFx0XHRwbGlQcm9tb2Npb246IHByb21vY2lvbixcclxuXHRcdFx0cGxpVXN1YXJpbzogeyB1c3VMb2dpbjogQXV0aGVudGljYXRpb25VdGlsLmdldFVzZXJuYW1lKCkgfVxyXG5cdFx0fTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvcHJvbW9jaW9uL3NhdmUnLFxyXG5cdFx0XHRvYmplY3QsXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIGEgbGlzdCBvZiBwbGlDbmZDb25maWd1cmFjaW9uIGJ5IHBhdENvZGlnbyAqL1xyXG5cdGdldENvbmZpZ3VyYWNpb25CeXBhdENvZGlnbyhwYXRDb2RpZ286IG51bWJlciwgY2FyZ2FyTGlzdGFzOiBib29sZWFuKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvY29uZmlndXJhY2lvbi9nZXRBbGxCeVBhdHJvY2luYWRvcicsXHJcblx0XHRcdHtcclxuXHRcdFx0XHRwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKClcclxuXHRcdFx0XHRcdC5zZXQoJ3BhdENvZGlnbycsIHBhdENvZGlnby50b1N0cmluZygpKVxyXG5cdFx0XHRcdFx0LnNldCgnY2FyZ2FyTGlzdGFzJywgY2FyZ2FyTGlzdGFzLnRvU3RyaW5nKCkpXHJcblx0XHRcdH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgcmV0dXJucyBjb25maWd1cmFjaW9uIGJ5IGlkICovXHJcblx0Z2V0Q29uZmlndXJhY2lvbkJ5SWQoaWQ6IG51bWJlciwgY2FyZ2FyTGlzdGFzOiBib29sZWFuKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvY29uZmlndXJhY2lvbi9nZXRCeUlkJyxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKVxyXG5cdFx0XHRcdFx0LnNldCgnY2NvbkNvZGlnbycsIGlkLnRvU3RyaW5nKCkpXHJcblx0XHRcdFx0XHQuc2V0KCdjYXJnYXJMaXN0YXMnLCBjYXJnYXJMaXN0YXMudG9TdHJpbmcoKSlcclxuXHRcdFx0fVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCBzYXZlcyBhIGNvbmZpZ3VyYWNpb24gKi9cclxuXHRzYXZlQ29uZmlndXJhY2lvbihvbGRDb25maWd1cmFjaW9uOiBQbGlDbmZDb25maWd1cmFjaW9uLCBjb25maWd1cmFjaW9uOiBQbGlDbmZDb25maWd1cmFjaW9uKSB7XHJcblx0XHRsZXQgb2JqZWN0ID0ge1xyXG5cdFx0XHRwbGlDbmZDb25maWd1cmFjaW9uQmVmb3JlOiBvbGRDb25maWd1cmFjaW9uLFxyXG5cdFx0XHRwbGlDbmZDb25maWd1cmFjaW9uOiBjb25maWd1cmFjaW9uLFxyXG5cdFx0XHRwbGlVc3VhcmlvOiB7IHVzdUxvZ2luOiBBdXRoZW50aWNhdGlvblV0aWwuZ2V0VXNlcm5hbWUoKSB9XHJcblx0XHR9O1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5wbGlzICsgJ2NvbmZpZy9jb25maWd1cmFjaW9uL3NhdmUnLFxyXG5cdFx0XHRvYmplY3QsXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCB1cGRhdGVzIGRlIGNvZGUgb2YgY29uZmlndXJhY2lvbiB0byBhIGxpc3Qgb2YgY29kZXMgb2YgcHJvbW9jaW9uICovXHJcblx0dXBkYXRlQ29uZmlndXJhY2lvblBsaVByb21vY2lvbihjY29uQ29kaWdvOiBudW1iZXIsIGxpc3RhUHJvbUNvZGlnbzogQXJyYXk8bnVtYmVyPikge1xyXG5cdFx0bGV0IG9iamVjdCA9IHtcclxuXHRcdFx0Y2NvbkNvZGlnbzogY2NvbkNvZGlnbyxcclxuXHRcdFx0bGlzdGFQcm9tQ29kaWdvOiBsaXN0YVByb21Db2RpZ29cclxuXHRcdH07XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnB1dChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvcHJvbW9jaW9uL3VwZGF0ZUNvbmZpZ3VyYXRpb25NYXNzaXZlJyxcclxuXHRcdFx0b2JqZWN0LFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgaGFzIGFuIG9ic2VydmFibGUgdG8gbm90aWZ5IGlmIHRoZSBsaXN0IHBwcCBpcyBnZW5lcmF0ZWQqL1xyXG5cdGdldExpc3RQcHAoKTogT2JzZXJ2YWJsZTxBcnJheTxhbnk+PiB7XHJcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0dGhpcy5nZW5lcmF0ZSgpO1xyXG5cdFx0fSwgMzAwKTtcclxuXHRcdHJldHVybiB0aGlzLnN1YmplY3RMaXN0UHBwLmFzT2JzZXJ2YWJsZSgpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgYSBsaXN0IG9mIGF2YWlsYWJsZSBwbGlQcm9tb2Npb24gYnkgcGF0Q29kaWdvICovXHJcblx0Z2V0QXZhaWxhYmxlUHJvbW9jaW9uKHBhdENvZGlnbzogbnVtYmVyKSB7XHJcblx0XHRpZiAoIXBhdENvZGlnbykge1xyXG5cdFx0XHRwYXRDb2RpZ28gPSAwO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL3Byb21vY2lvbi9nZXRBdmFpbGFibGVCeVBhdENvZGlnbycsXHJcblx0XHRcdHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgncGF0Q29kaWdvJywgcGF0Q29kaWdvLnRvU3RyaW5nKCkpIH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgcmV0dXJucyBhIGxpc3Qgb2YgcGxpUHJvbW9jaW9uICovXHJcblx0Z2V0QWxsKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvcHJvbW9jaW9uL2dldEFsbCcpO1xyXG5cdH1cclxuXHJcblx0LyoqIGl0IHJldHVybnMgbGlzdCBvZiBwYXRyb2NpbmFkb3IgZGVwZW5kcyBvZiB0b2tlbiBpbmZvKi9cclxuXHRnZXRsUGF0cm9jaW5hZG9yQnlUb2tlbigpOiBQbGlQYXRyb2NpbmFkb3JbXSB7XHJcblx0XHRsZXQgdG9rZW5QcHAgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShQcHBTZXJ2aWNlLlRPS0VOX1BQUCk7XHJcblx0XHRpZiAodG9rZW5QcHAgJiYgdG9rZW5QcHAubGVuZ3RoKSB7XHJcblx0XHRcdGNvbnN0IHBwcCA9IEp3dFV0aWwucGFyc2VKd3QodG9rZW5QcHApO1xyXG5cdFx0XHRpZiAocHBwICYmIHBwcC5wcHApIHtcclxuXHRcdFx0XHRsZXQgbFBsaVBhdHJvY2luYWRvciA9IEFycmF5PFBsaVBhdHJvY2luYWRvcj4oKTtcclxuXHRcdFx0XHRmb3IgKGxldCBwYXQgb2YgcHBwLnBwcCkge1xyXG5cdFx0XHRcdFx0bGV0IHBsaVBhdCA9IG5ldyBQbGlQYXRyb2NpbmFkb3IoKTtcclxuXHRcdFx0XHRcdHBsaVBhdC5wYXRDb2RpZ28gPSBwYXQucGF0Q29kaWdvO1xyXG5cdFx0XHRcdFx0cGxpUGF0LnBhdE5vbWJyZSA9IHBhdC5wYXROb21icmU7XHJcblx0XHRcdFx0XHRwbGlQYXQucGF0Tm9tYnJlQ29ydG8gPSBwYXQucGF0Tm9tYnJlQ29ydG87XHJcblx0XHRcdFx0XHRpZiAocGF0Lmxpc3RhUGxpUHJvZ3JhbWEgJiYgcGF0Lmxpc3RhUGxpUHJvZ3JhbWEubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRwbGlQYXQubFBsaVByb2dyYW1hID0gQXJyYXk8UGxpUHJvZ3JhbWE+KCk7XHJcblx0XHRcdFx0XHRcdGZvciAobGV0IHByb2cgb2YgcGF0Lmxpc3RhUGxpUHJvZ3JhbWEpIHtcclxuXHRcdFx0XHRcdFx0XHRsZXQgcGxpUHJvZyA9IG5ldyBQbGlQcm9ncmFtYSgpO1xyXG5cdFx0XHRcdFx0XHRcdHBsaVByb2cucHJvZ0NvZGlnbyA9IHByb2cucHJvZ0NvZGlnbztcclxuXHRcdFx0XHRcdFx0XHRwbGlQcm9nLnByb2dOb21icmUgPSBwcm9nLnByb2dOb21icmU7XHJcblx0XHRcdFx0XHRcdFx0cGxpUHJvZy5wcm9nTm9tYnJlQ29ydG8gPSBwcm9nLnByb2dOb21icmVDb3J0bztcclxuXHRcdFx0XHRcdFx0XHRpZiAocHJvZy5saXN0YVBsaVByb21vY2lvbiAmJiBwcm9nLmxpc3RhUGxpUHJvbW9jaW9uLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdFx0XHRcdHBsaVByb2cubFBsaVByb21vY2lvbiA9IEFycmF5PFBsaVByb21vY2lvbj4oKTtcclxuXHRcdFx0XHRcdFx0XHRcdGZvciAobGV0IHByb20gb2YgcHJvZy5saXN0YVBsaVByb21vY2lvbikge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRsZXQgcGxpUHJvbSA9IG5ldyBQbGlQcm9tb2Npb24oKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0cGxpUHJvbS5wcm9tQ29kaWdvID0gcHJvbS5wcm9tQ29kaWdvO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRwbGlQcm9tLnByb21Ob21icmUgPSBwcm9tLnByb21Ob21icmU7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHBsaVByb20ucHJvbU5vbWJyZUNvcnRvID0gcHJvbS5wcm9tTm9tYnJlQ29ydG87XHJcblx0XHRcdFx0XHRcdFx0XHRcdHBsaVByb20ucHJvbUZlY2hhQ3JlYWNpb24gPSBwcm9tLnByb21GZWNoYUNyZWFjaW9uO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRwbGlQcm9nLmxQbGlQcm9tb2Npb24ucHVzaChwbGlQcm9tKTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0cGxpUGF0LmxQbGlQcm9ncmFtYS5wdXNoKHBsaVByb2cpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRsUGxpUGF0cm9jaW5hZG9yLnB1c2gocGxpUGF0KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuIGxQbGlQYXRyb2NpbmFkb3I7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiBudWxsO1xyXG5cdH1cclxuXHJcblx0Z2V0QWxsUHJvbW9jaW9uZXMoKTogUGxpUHJvbW9jaW9uW10ge1xyXG5cdFx0bGV0IGxQcm9tb2Npb25lczogUGxpUHJvbW9jaW9uW10gPSBbXTtcclxuXHRcdGxldCB0b2tlblBwcCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFBwcFNlcnZpY2UuVE9LRU5fUFBQKTtcclxuXHRcdGlmICh0b2tlblBwcCAmJiB0b2tlblBwcC5sZW5ndGgpIHtcclxuXHRcdFx0Y29uc3QgcHBwID0gSnd0VXRpbC5wYXJzZUp3dCh0b2tlblBwcCk7XHJcblx0XHRcdGlmIChwcHAgJiYgcHBwLnBwcCkge1xyXG5cdFx0XHRcdGZvciAobGV0IHBhdCBvZiBwcHAucHBwKSB7XHJcblx0XHRcdFx0XHRsZXQgcGxpUGF0ID0gbmV3IFBsaVBhdHJvY2luYWRvcigpO1xyXG5cdFx0XHRcdFx0cGxpUGF0LnBhdENvZGlnbyA9IHBhdC5wYXRDb2RpZ287XHJcblx0XHRcdFx0XHRwbGlQYXQucGF0Tm9tYnJlID0gcGF0LnBhdE5vbWJyZTtcclxuXHRcdFx0XHRcdHBsaVBhdC5wYXROb21icmVDb3J0byA9IHBhdC5wYXROb21icmVDb3J0bztcclxuXHRcdFx0XHRcdGlmIChwYXQubGlzdGFQbGlQcm9ncmFtYSAmJiBwYXQubGlzdGFQbGlQcm9ncmFtYS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRcdHBsaVBhdC5sUGxpUHJvZ3JhbWEgPSBBcnJheTxQbGlQcm9ncmFtYT4oKTtcclxuXHRcdFx0XHRcdFx0Zm9yIChsZXQgcHJvZyBvZiBwYXQubGlzdGFQbGlQcm9ncmFtYSkge1xyXG5cdFx0XHRcdFx0XHRcdGxldCBwbGlQcm9nID0gbmV3IFBsaVByb2dyYW1hKCk7XHJcblx0XHRcdFx0XHRcdFx0cGxpUHJvZy5wcm9nQ29kaWdvID0gcHJvZy5wcm9nQ29kaWdvO1xyXG5cdFx0XHRcdFx0XHRcdHBsaVByb2cucHJvZ05vbWJyZSA9IHByb2cucHJvZ05vbWJyZTtcclxuXHRcdFx0XHRcdFx0XHRwbGlQcm9nLnByb2dOb21icmVDb3J0byA9IHByb2cucHJvZ05vbWJyZUNvcnRvO1xyXG5cdFx0XHRcdFx0XHRcdGlmIChwcm9nLmxpc3RhUGxpUHJvbW9jaW9uICYmIHByb2cubGlzdGFQbGlQcm9tb2Npb24ubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0cGxpUHJvZy5sUGxpUHJvbW9jaW9uID0gQXJyYXk8UGxpUHJvbW9jaW9uPigpO1xyXG5cdFx0XHRcdFx0XHRcdFx0Zm9yIChsZXQgcHJvbSBvZiBwcm9nLmxpc3RhUGxpUHJvbW9jaW9uKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGxldCBwbGlQcm9tID0gbmV3IFBsaVByb21vY2lvbigpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRwbGlQcm9tLnByb21Db2RpZ28gPSBwcm9tLnByb21Db2RpZ287XHJcblx0XHRcdFx0XHRcdFx0XHRcdHBsaVByb20ucHJvbU5vbWJyZSA9IHByb20ucHJvbU5vbWJyZTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0cGxpUHJvbS5wcm9tTm9tYnJlQ29ydG8gPSBwcm9tLnByb21Ob21icmVDb3J0bztcclxuXHRcdFx0XHRcdFx0XHRcdFx0cGxpUHJvbS5wcm9tRmVjaGFDcmVhY2lvbiA9IHByb20ucHJvbUZlY2hhQ3JlYWNpb247XHJcblx0XHRcdFx0XHRcdFx0XHRcdGxQcm9tb2Npb25lcy5wdXNoKHBsaVByb20pO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gbFByb21vY2lvbmVzO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gbnVsbDtcclxuXHR9XHJcblxyXG5cdC8qKiBpdCByZXR1cm5zIHRoZSBwYXRjb2RpZ28gYnkgcHJvbUNvZGlnbyAqL1xyXG5cdGdldFBhdENvZGlnb0J5UHJvbUNvZGlnbyhwcm9tQ29kaWdvKTogbnVtYmVyIHtcclxuXHRcdGxldCB0b2tlblBwcCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFBwcFNlcnZpY2UuVE9LRU5fUFBQKTtcclxuXHRcdGlmICh0b2tlblBwcCAmJiB0b2tlblBwcC5sZW5ndGgpIHtcclxuXHRcdFx0Y29uc3QgcHBwID0gSnd0VXRpbC5wYXJzZUp3dCh0b2tlblBwcCk7XHJcblx0XHRcdGlmIChwcHAgJiYgcHBwLnBwcClcclxuXHRcdFx0XHRmb3IgKGNvbnN0IHBhdHJvY2luYWRvciBvZiBwcHAucHBwKVxyXG5cdFx0XHRcdFx0Zm9yIChjb25zdCBwcm9ncmFtYSBvZiBwYXRyb2NpbmFkb3IubGlzdGFQbGlQcm9ncmFtYSlcclxuXHRcdFx0XHRcdFx0Zm9yIChjb25zdCBwcm9tb2Npb24gb2YgcHJvZ3JhbWEubGlzdGFQbGlQcm9tb2Npb24pXHJcblx0XHRcdFx0XHRcdFx0aWYgKHByb21vY2lvbi5wcm9tQ29kaWdvID09IHByb21Db2RpZ28pIHJldHVybiBwYXRyb2NpbmFkb3IucGF0Q29kaWdvO1xyXG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqIGl0IHJldHVybnMgdGhlIHBhdGNvZGlnbyBieSBwcm9tQ29kaWdvICovXHJcblx0Z2V0UHJvZ0NvZGlnb0J5UHJvbUNvZGlnbyhwcm9tQ29kaWdvKTogbnVtYmVyIHtcclxuXHRcdGxldCB0b2tlblBwcCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFBwcFNlcnZpY2UuVE9LRU5fUFBQKTtcclxuXHRcdGlmICh0b2tlblBwcCAmJiB0b2tlblBwcC5sZW5ndGgpIHtcclxuXHRcdFx0Y29uc3QgcHBwID0gSnd0VXRpbC5wYXJzZUp3dCh0b2tlblBwcCk7XHJcblx0XHRcdGlmIChwcHAgJiYgcHBwLnBwcClcclxuXHRcdFx0XHRmb3IgKGNvbnN0IHBhdHJvY2luYWRvciBvZiBwcHAucHBwKVxyXG5cdFx0XHRcdFx0Zm9yIChjb25zdCBwcm9ncmFtYSBvZiBwYXRyb2NpbmFkb3IubGlzdGFQbGlQcm9ncmFtYSlcclxuXHRcdFx0XHRcdFx0Zm9yIChjb25zdCBwcm9tb2Npb24gb2YgcHJvZ3JhbWEubGlzdGFQbGlQcm9tb2Npb24pXHJcblx0XHRcdFx0XHRcdFx0aWYgKHByb21vY2lvbi5wcm9tQ29kaWdvID09IHByb21Db2RpZ28pIHJldHVybiBwcm9ncmFtYS5wcm9nQ29kaWdvO1xyXG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQvKiogSXQgZ2VuZXJhdGVkIGEgbGlnaHQgbGlzdCBvZiBwcHAgKi9cclxuXHRwcml2YXRlIGdlbmVyYXRlKCkge1xyXG5cdFx0Ly8gMS4gaXQgdmVyaWZpZXMgdG9rZW5QcHBcclxuXHRcdGxldCB0b2tlblBwcCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFBwcFNlcnZpY2UuVE9LRU5fUFBQKTtcclxuXHRcdGlmICh0b2tlblBwcCAmJiB0b2tlblBwcC5sZW5ndGgpIHtcclxuXHRcdFx0Y29uc3QgcHBwID0gSnd0VXRpbC5wYXJzZUp3dCh0b2tlblBwcCk7XHJcblx0XHRcdGlmIChwcHAgJiYgcHBwLnBwcCkgdGhpcy5zdWJqZWN0TGlzdFBwcC5uZXh0KHBwcC5wcHApO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Ly8gMi4gaXQgcmV0cmlldmVzIHRoZSBsaXN0IHBwcFxyXG5cdFx0XHRsZXQgYXV0aG9yaXRpZXMgPSBBdXRoZW50aWNhdGlvblV0aWwuZ2V0QXV0aG9yaXRpZXMoKTtcclxuXHRcdFx0aWYgKGF1dGhvcml0aWVzICYmIGF1dGhvcml0aWVzLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRsZXQgbGlzdFBhdENvZGlnbyA9IFtdO1xyXG5cdFx0XHRcdGZvciAoY29uc3QgYXV0aG9yaXR5IG9mIGF1dGhvcml0aWVzKSBsaXN0UGF0Q29kaWdvLnB1c2goYXV0aG9yaXR5LnBhdENvZGlnbyk7XHJcblxyXG5cdFx0XHRcdGlmIChsaXN0UGF0Q29kaWdvKVxyXG5cdFx0XHRcdFx0dGhpcy5odHRwQ2xpZW50XHJcblx0XHRcdFx0XHRcdC5nZXQoXHJcblx0XHRcdFx0XHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArXHJcblx0XHRcdFx0XHRcdFx0XHQnY29uZmlnL3BhdHJvY2luYWRvci9nZXRMaWdodEJ5TGlzdFBhdHJvY2luYWRvcicsXHJcblx0XHRcdFx0XHRcdFx0eyBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdwYXRDb2RpZ29zJywgbGlzdFBhdENvZGlnby50b1N0cmluZygpKSB9XHJcblx0XHRcdFx0XHRcdClcclxuXHRcdFx0XHRcdFx0LnN1YnNjcmliZShcclxuXHRcdFx0XHRcdFx0XHQocmVzdWx0OiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdGlmIChyZXN1bHQgJiYgcmVzdWx0LnRva2VuUHBwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGxvY2FsU3RvcmFnZS5zZXRJdGVtKFBwcFNlcnZpY2UuVE9LRU5fUFBQLCByZXN1bHQudG9rZW5QcHApO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlKCk7XHJcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnN1YmplY3RMaXN0UHBwLm5leHQoW10pO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdFx0KGVycm9yKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKCdFUlJPUiBjb25zdWx0aW5nIHBwcCcsIGVycm9yKTtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuc3ViamVjdExpc3RQcHAubmV4dChbXSk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKiogaXQgcmV0dXJucyB0aGUgUFBQIGZyb20gdGhlIHRva2VuICovXHJcblx0Z2V0UFBQSW5mb0Zyb21Ub2tlbigpOiBQbGlQYXRyb2NpbmFkb3JbXSB7XHJcblx0XHRsZXQgdG9rZW5QcHAgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShQcHBTZXJ2aWNlLlRPS0VOX1BQUCk7XHJcblx0XHRjb25zdCBsUGxpUGF0cm9jaW5hZG9yOiBQbGlQYXRyb2NpbmFkb3JbXSA9IFtdO1xyXG5cdFx0aWYgKHRva2VuUHBwICYmIHRva2VuUHBwLmxlbmd0aCkge1xyXG5cdFx0XHRjb25zdCBwcHAgPSBKd3RVdGlsLnBhcnNlSnd0KHRva2VuUHBwKTtcclxuXHRcdFx0aWYgKHBwcCAmJiBwcHAucHBwKVxyXG5cdFx0XHRcdGZvciAoY29uc3QgcGF0cm9jaW5hZG9yIG9mIHBwcC5wcHApIHtcclxuXHRcdFx0XHRcdGNvbnN0IHBsaVBhdHJvY2luYWRvciA9IG5ldyBQbGlQYXRyb2NpbmFkb3IoKTtcclxuXHRcdFx0XHRcdGNvbnN0IGxQbGlQcm9ncmFtYTogUGxpUHJvZ3JhbWFbXSA9IFtdO1xyXG5cdFx0XHRcdFx0Zm9yIChjb25zdCBwcm9ncmFtYSBvZiBwYXRyb2NpbmFkb3IubGlzdGFQbGlQcm9ncmFtYSkge1xyXG5cdFx0XHRcdFx0XHRjb25zdCBwbGlQcm9ncmFtYSA9IG5ldyBQbGlQcm9ncmFtYSgpO1xyXG5cdFx0XHRcdFx0XHRwbGlQcm9ncmFtYS5wcm9nQ29kaWdvID0gcHJvZ3JhbWEucHJvZ0NvZGlnbztcclxuXHRcdFx0XHRcdFx0cGxpUHJvZ3JhbWEucHJvZ05vbWJyZUNvcnRvID0gcHJvZ3JhbWEucHJvZ05vbWJyZUNvcnRvO1xyXG5cdFx0XHRcdFx0XHRwbGlQcm9ncmFtYS5wcm9nTm9tYnJlID0gcHJvZ3JhbWEucHJvZ05vbWJyZTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgbFBsaVByb21vY2lvbjogUGxpUHJvbW9jaW9uW10gPSBbXTtcclxuXHRcdFx0XHRcdFx0Zm9yIChjb25zdCBwcm9tb2Npb24gb2YgcHJvZ3JhbWEubGlzdGFQbGlQcm9tb2Npb24pIHtcclxuXHRcdFx0XHRcdFx0XHRjb25zdCBwbGlQcm9tb2Npb24gPSBuZXcgUGxpUHJvbW9jaW9uKCk7XHJcblx0XHRcdFx0XHRcdFx0cGxpUHJvbW9jaW9uLnByb21Db2RpZ28gPSBwcm9tb2Npb24ucHJvbUNvZGlnbztcclxuXHRcdFx0XHRcdFx0XHRwbGlQcm9tb2Npb24ucHJvbU5vbWJyZUNvcnRvID0gcHJvbW9jaW9uLnByb21Ob21icmVDb3J0bztcclxuXHRcdFx0XHRcdFx0XHRwbGlQcm9tb2Npb24ucHJvbU5vbWJyZSA9IHByb21vY2lvbi5wcm9tTm9tYnJlO1xyXG5cdFx0XHRcdFx0XHRcdHBsaVByb21vY2lvbi5wcm9tQW5pbyA9IHByb21vY2lvbi5wcm9tQW5pbztcclxuXHRcdFx0XHRcdFx0XHRsUGxpUHJvbW9jaW9uLnB1c2gocGxpUHJvbW9jaW9uKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRwbGlQcm9ncmFtYS5sUGxpUHJvbW9jaW9uID0gbFBsaVByb21vY2lvbjtcclxuXHRcdFx0XHRcdFx0bFBsaVByb2dyYW1hLnB1c2gocGxpUHJvZ3JhbWEpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0cGxpUGF0cm9jaW5hZG9yLmxQbGlQcm9ncmFtYSA9IGxQbGlQcm9ncmFtYTtcclxuXHRcdFx0XHRcdGxQbGlQYXRyb2NpbmFkb3IucHVzaChwbGlQYXRyb2NpbmFkb3IpO1xyXG5cdFx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiBsUGxpUGF0cm9jaW5hZG9yO1xyXG5cdH1cclxuXHJcblx0cHBwUm9sbGJhY2socHBwUmVxdWVzdDogUHBwUmVxdWVzdCkge1xyXG5cdFx0XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmNvbmZpZ3VyYXRpb24gKyAncHBwUm9sbGJhY2snLFxyXG5cdFx0XHRwcHBSZXF1ZXN0LFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRkZWxldGVCdWRnZXRCeVByb20ocHJvbUNvZGlnbzogbnVtYmVyKSB7XHJcblx0XHRsZXQgb2JqZWN0ID0ge1xyXG5cdFx0XHRwcm9tQ29kaWdvOiBwcm9tQ29kaWdvXHJcblx0XHR9O1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5wbGlzICsgJ2NvbmZpZy9wcm9tb2Npb24vZGVsZXRlQnVkZ2V0QnlQcm9tJyxcclxuXHRcdFx0b2JqZWN0LFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -2,9 +2,9 @@
2
2
  /* tslint:disable */
3
3
  export const VERSION = {
4
4
  "dirty": true,
5
- "raw": "v0.0.18-2293-g058a0fb7-dirty",
6
- "hash": "g058a0fb7",
7
- "distance": 2293,
5
+ "raw": "v0.0.18-2298-g3931661d-dirty",
6
+ "hash": "g3931661d",
7
+ "distance": 2298,
8
8
  "tag": "v0.0.18",
9
9
  "semver": {
10
10
  "options": {
@@ -20,10 +20,10 @@ export const VERSION = {
20
20
  "build": [],
21
21
  "version": "0.0.18"
22
22
  },
23
- "suffix": "2293-g058a0fb7-dirty",
24
- "semverString": "0.0.18+2293.g058a0fb7",
25
- "version": "0.0.1769",
26
- "buildTimestamp": "2023-08-02T15:19:39.474Z"
23
+ "suffix": "2298-g3931661d-dirty",
24
+ "semverString": "0.0.18+2298.g3931661d",
25
+ "version": "0.0.1772",
26
+ "buildTimestamp": "2023-08-03T22:14:37.629Z"
27
27
  };
28
28
  /* tslint:enable */
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLXBsaS1jb21tb25zL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJFQUEyRTtBQUMzRSxvQkFBb0I7QUFDcEIsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ25CLE9BQU8sRUFBRSxJQUFJO0lBQ2IsS0FBSyxFQUFFLDhCQUE4QjtJQUNyQyxNQUFNLEVBQUUsV0FBVztJQUNuQixVQUFVLEVBQUUsSUFBSTtJQUNoQixLQUFLLEVBQUUsU0FBUztJQUNoQixRQUFRLEVBQUU7UUFDTixTQUFTLEVBQUU7WUFDUCxPQUFPLEVBQUUsS0FBSztZQUNkLG1CQUFtQixFQUFFLEtBQUs7U0FDN0I7UUFDRCxPQUFPLEVBQUUsS0FBSztRQUNkLEtBQUssRUFBRSxTQUFTO1FBQ2hCLE9BQU8sRUFBRSxDQUFDO1FBQ1YsT0FBTyxFQUFFLENBQUM7UUFDVixPQUFPLEVBQUUsRUFBRTtRQUNYLFlBQVksRUFBRSxFQUFFO1FBQ2hCLE9BQU8sRUFBRSxFQUFFO1FBQ1gsU0FBUyxFQUFFLFFBQVE7S0FDdEI7SUFDRCxRQUFRLEVBQUUsc0JBQXNCO0lBQ2hDLGNBQWMsRUFBRSx1QkFBdUI7SUFDdkMsU0FBUyxFQUFFLFVBQVU7SUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0NBQy9DLENBQUM7QUFDRixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJTVBPUlRBTlQ6IFRISVMgRklMRSBJUyBBVVRPIEdFTkVSQVRFRCEgRE8gTk9UIE1BTlVBTExZIEVESVQgT1IgQ0hFQ0tJTiFcbi8qIHRzbGludDpkaXNhYmxlICovXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IHtcbiAgICBcImRpcnR5XCI6IHRydWUsXG4gICAgXCJyYXdcIjogXCJ2MC4wLjE4LTIyOTMtZzA1OGEwZmI3LWRpcnR5XCIsXG4gICAgXCJoYXNoXCI6IFwiZzA1OGEwZmI3XCIsXG4gICAgXCJkaXN0YW5jZVwiOiAyMjkzLFxuICAgIFwidGFnXCI6IFwidjAuMC4xOFwiLFxuICAgIFwic2VtdmVyXCI6IHtcbiAgICAgICAgXCJvcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9vc2VcIjogZmFsc2UsXG4gICAgICAgICAgICBcImluY2x1ZGVQcmVyZWxlYXNlXCI6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIFwibG9vc2VcIjogZmFsc2UsXG4gICAgICAgIFwicmF3XCI6IFwidjAuMC4xOFwiLFxuICAgICAgICBcIm1ham9yXCI6IDAsXG4gICAgICAgIFwibWlub3JcIjogMCxcbiAgICAgICAgXCJwYXRjaFwiOiAxOCxcbiAgICAgICAgXCJwcmVyZWxlYXNlXCI6IFtdLFxuICAgICAgICBcImJ1aWxkXCI6IFtdLFxuICAgICAgICBcInZlcnNpb25cIjogXCIwLjAuMThcIlxuICAgIH0sXG4gICAgXCJzdWZmaXhcIjogXCIyMjkzLWcwNThhMGZiNy1kaXJ0eVwiLFxuICAgIFwic2VtdmVyU3RyaW5nXCI6IFwiMC4wLjE4KzIyOTMuZzA1OGEwZmI3XCIsXG4gICAgXCJ2ZXJzaW9uXCI6IFwiMC4wLjE3NjlcIixcbiAgICBcImJ1aWxkVGltZXN0YW1wXCI6IFwiMjAyMy0wOC0wMlQxNToxOTozOS40NzRaXCJcbn07XG4vKiB0c2xpbnQ6ZW5hYmxlICovXG4iXX0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLXBsaS1jb21tb25zL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJFQUEyRTtBQUMzRSxvQkFBb0I7QUFDcEIsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ25CLE9BQU8sRUFBRSxJQUFJO0lBQ2IsS0FBSyxFQUFFLDhCQUE4QjtJQUNyQyxNQUFNLEVBQUUsV0FBVztJQUNuQixVQUFVLEVBQUUsSUFBSTtJQUNoQixLQUFLLEVBQUUsU0FBUztJQUNoQixRQUFRLEVBQUU7UUFDTixTQUFTLEVBQUU7WUFDUCxPQUFPLEVBQUUsS0FBSztZQUNkLG1CQUFtQixFQUFFLEtBQUs7U0FDN0I7UUFDRCxPQUFPLEVBQUUsS0FBSztRQUNkLEtBQUssRUFBRSxTQUFTO1FBQ2hCLE9BQU8sRUFBRSxDQUFDO1FBQ1YsT0FBTyxFQUFFLENBQUM7UUFDVixPQUFPLEVBQUUsRUFBRTtRQUNYLFlBQVksRUFBRSxFQUFFO1FBQ2hCLE9BQU8sRUFBRSxFQUFFO1FBQ1gsU0FBUyxFQUFFLFFBQVE7S0FDdEI7SUFDRCxRQUFRLEVBQUUsc0JBQXNCO0lBQ2hDLGNBQWMsRUFBRSx1QkFBdUI7SUFDdkMsU0FBUyxFQUFFLFVBQVU7SUFDckIsZ0JBQWdCLEVBQUUsMEJBQTBCO0NBQy9DLENBQUM7QUFDRixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJTVBPUlRBTlQ6IFRISVMgRklMRSBJUyBBVVRPIEdFTkVSQVRFRCEgRE8gTk9UIE1BTlVBTExZIEVESVQgT1IgQ0hFQ0tJTiFcbi8qIHRzbGludDpkaXNhYmxlICovXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IHtcbiAgICBcImRpcnR5XCI6IHRydWUsXG4gICAgXCJyYXdcIjogXCJ2MC4wLjE4LTIyOTgtZzM5MzE2NjFkLWRpcnR5XCIsXG4gICAgXCJoYXNoXCI6IFwiZzM5MzE2NjFkXCIsXG4gICAgXCJkaXN0YW5jZVwiOiAyMjk4LFxuICAgIFwidGFnXCI6IFwidjAuMC4xOFwiLFxuICAgIFwic2VtdmVyXCI6IHtcbiAgICAgICAgXCJvcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9vc2VcIjogZmFsc2UsXG4gICAgICAgICAgICBcImluY2x1ZGVQcmVyZWxlYXNlXCI6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIFwibG9vc2VcIjogZmFsc2UsXG4gICAgICAgIFwicmF3XCI6IFwidjAuMC4xOFwiLFxuICAgICAgICBcIm1ham9yXCI6IDAsXG4gICAgICAgIFwibWlub3JcIjogMCxcbiAgICAgICAgXCJwYXRjaFwiOiAxOCxcbiAgICAgICAgXCJwcmVyZWxlYXNlXCI6IFtdLFxuICAgICAgICBcImJ1aWxkXCI6IFtdLFxuICAgICAgICBcInZlcnNpb25cIjogXCIwLjAuMThcIlxuICAgIH0sXG4gICAgXCJzdWZmaXhcIjogXCIyMjk4LWczOTMxNjYxZC1kaXJ0eVwiLFxuICAgIFwic2VtdmVyU3RyaW5nXCI6IFwiMC4wLjE4KzIyOTguZzM5MzE2NjFkXCIsXG4gICAgXCJ2ZXJzaW9uXCI6IFwiMC4wLjE3NzJcIixcbiAgICBcImJ1aWxkVGltZXN0YW1wXCI6IFwiMjAyMy0wOC0wM1QyMjoxNDozNy42MjlaXCJcbn07XG4vKiB0c2xpbnQ6ZW5hYmxlICovXG4iXX0=
@@ -456,6 +456,15 @@ class PppService {
456
456
  }
457
457
  return lPliPatrocinador;
458
458
  }
459
+ pppRollback(pppRequest) {
460
+ return this.httpClient.post(this.environment.host.backend.configuration + 'pppRollback', pppRequest, this.headerJson);
461
+ }
462
+ deleteBudgetByProm(promCodigo) {
463
+ let object = {
464
+ promCodigo: promCodigo
465
+ };
466
+ return this.httpClient.post(this.environment.host.backend.plis + 'config/promocion/deleteBudgetByProm', object, this.headerJson);
467
+ }
459
468
  }
460
469
  /** It contains the key of the json web token */
461
470
  PppService.TOKEN_PPP = 'tokenPpp';
@@ -5500,6 +5509,9 @@ class ApplicationService {
5500
5509
  verifyAutoAnalysisDoc(sendDocAnalysisAutoDto) {
5501
5510
  return this.httpClient.post(this.environment.host.backend.backoffice + 'application/verifyAutoAnalysisDoc', sendDocAnalysisAutoDto);
5502
5511
  }
5512
+ getAppCountByPromCodigo(promCodigo) {
5513
+ return this.httpClient.get(this.environment.host.backend.backoffice + 'application/getAppCountByPromCodigo', { params: new HttpParams().set('promCodigo', promCodigo) });
5514
+ }
5503
5515
  }
5504
5516
  ApplicationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ApplicationService, deps: [{ token: 'environment' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
5505
5517
  ApplicationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ApplicationService, providedIn: 'root' });
@@ -16137,9 +16149,9 @@ class CustomValidator {
16137
16149
  /* tslint:disable */
16138
16150
  const VERSION = {
16139
16151
  "dirty": true,
16140
- "raw": "v0.0.18-2293-g058a0fb7-dirty",
16141
- "hash": "g058a0fb7",
16142
- "distance": 2293,
16152
+ "raw": "v0.0.18-2298-g3931661d-dirty",
16153
+ "hash": "g3931661d",
16154
+ "distance": 2298,
16143
16155
  "tag": "v0.0.18",
16144
16156
  "semver": {
16145
16157
  "options": {
@@ -16155,10 +16167,10 @@ const VERSION = {
16155
16167
  "build": [],
16156
16168
  "version": "0.0.18"
16157
16169
  },
16158
- "suffix": "2293-g058a0fb7-dirty",
16159
- "semverString": "0.0.18+2293.g058a0fb7",
16160
- "version": "0.0.1769",
16161
- "buildTimestamp": "2023-08-02T15:19:39.474Z"
16170
+ "suffix": "2298-g3931661d-dirty",
16171
+ "semverString": "0.0.18+2298.g3931661d",
16172
+ "version": "0.0.1772",
16173
+ "buildTimestamp": "2023-08-03T22:14:37.629Z"
16162
16174
  };
16163
16175
  /* tslint:enable */
16164
16176