@ieeesa-npm/presentation 0.15.4 → 0.15.6

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.
@@ -65,13 +65,23 @@ export class FileUploadService {
65
65
  uploadFileToS3(presignedUrl, file) {
66
66
  this.loaderNotificationService.show();
67
67
  let fileType = '';
68
- if (Object?.values(file)?.length)
69
- fileType = Object?.values(file)[0]?.type;
70
- else
68
+ let fileSize;
69
+ let fileObj;
70
+ if (Object.values(file).length) {
71
+ fileType = Object.values(file)[0].type;
72
+ fileSize = Object.values(file)[0].size;
73
+ fileObj = Object.values(file)[0];
74
+ }
75
+ else {
71
76
  fileType = file.type;
72
- const headers = new HttpHeaders().set('Content-Type', fileType);
77
+ fileSize = file.size;
78
+ fileObj = file;
79
+ }
80
+ const headers = new HttpHeaders();
81
+ headers.append('Content-Type', fileType);
82
+ headers.append('Content-Length', fileSize);
73
83
  return this.httpClient
74
- .put(presignedUrl, this.fileByteArray, {
84
+ .put(presignedUrl, fileObj, {
75
85
  reportProgress: true,
76
86
  observe: 'events',
77
87
  headers: headers,
@@ -269,4 +279,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
269
279
  providedIn: 'root',
270
280
  }]
271
281
  }], ctorParameters: function () { return [{ type: i1.HttpService }, { type: i2.HttpBackend }, { type: i1.AlertsService }, { type: i1.LoaderNotificationService }]; } });
272
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXNlbnRhdGlvbi9zcmMvbGliL3NlcnZpY2VzL2ZpbGUtdXBsb2FkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFVBQVUsRUFFVixhQUFhLEVBQ2IsV0FBVyxHQUNaLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBRUwsU0FBUyxHQUdWLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUNMLFVBQVUsRUFDVixJQUFJLEVBQ0osR0FBRyxFQUVILE9BQU8sRUFDUCxTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxLQUFLLFNBQVMsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQUV0RDs7O0dBR0c7QUFJSCxNQUFNLE9BQU8saUJBQWlCO0lBTzVCO0lBQ0UsMENBQTBDO0lBQ25DLFdBQXdCLEVBQy9CLE9BQW9CO0lBQ3BCLDBDQUEwQztJQUNuQyxZQUEyQjtJQUNsQywwQ0FBMEM7SUFDbkMseUJBQW9EO1FBTHBELGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBR3hCLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBRTNCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMkI7UUFiN0QsYUFBUSxHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ3BELGNBQVMsR0FBRyxTQUFTLENBQUM7UUFJdEIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFVdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxVQUFrQjtRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixD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Q0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO2dCQUM5QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ2pDLGFBQWEsR0FBRyxLQUFLLENBQUM7aUJBQ3ZCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLGFBQWEsQ0FBQztTQUN0QjtRQUNELE9BQU8sa0JBQWtCLENBQUMsS0FBYSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLGdCQUFnQixDQUFDLFFBQWdCO1FBQ3ZDLG9FQUFvRTtRQUNwRSxPQUFPLFFBQVEsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7K0dBM1JVLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07OzRGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEh0dHBCYWNrZW5kLFxyXG4gIEh0dHBDbGllbnQsXHJcbiAgSHR0cEV2ZW50LFxyXG4gIEh0dHBFdmVudFR5cGUsXHJcbiAgSHR0cEhlYWRlcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBbGVydHNTZXJ2aWNlLFxyXG4gIEFsZXJ0VHlwZSxcclxuICBIdHRwU2VydmljZSxcclxuICBMb2FkZXJOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG59IGZyb20gJ0BpZWVlc2EtbnBtL3V0aWxpdHknO1xyXG5pbXBvcnQgeyBGaWxlVXBsb2FkUHJlc2lnbmVkVXJsIH0gZnJvbSAnLi4vbW9kZWxzL2ZpbGUtdXBsb2FkLXByZXNpZ25lZC11cmwtcmVzLm1vZGVsJztcclxuaW1wb3J0IHtcclxuICBjYXRjaEVycm9yLFxyXG4gIGxhc3QsXHJcbiAgbWFwLFxyXG4gIE9ic2VydmFibGUsXHJcbiAgU3ViamVjdCxcclxuICB0YWtlVW50aWwsXHJcbiAgdGFwLFxyXG59IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgKiBhcyBjb25zdGFudHMgZnJvbSAnLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuXHJcbi8qKlxyXG4gKiBUaGlzIHNlcnZpY2UgaW50ZXJhY3RzIHdpdGggdGhlIHNlcnZlciB0byBvYnRhaW4gcHJlLXNpZ25lZCBVUkxzIGZvciBmaWxlIHVwbG9hZCBhbmQgdXBsb2FkcyBmaWxlcyB0byBBbWF6b24gUzMuXHJcbiAqIEBjbGFzcyBGaWxlVXBsb2FkU2VydmljZVxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgY29uc3RhbnRzID0gY29uc3RhbnRzO1xyXG4gIGFwaUJhc2VVcmwhOiBzdHJpbmc7XHJcbiAgZmlsZUJ5dGVBcnJheTogVWludDhBcnJheSB8IHVuZGVmaW5lZDtcclxuICBodHRwQ2xpZW50OiBIdHRwQ2xpZW50O1xyXG4gIGlzRmlsZVVwbG9hZGluZyA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwdWJsaWMgaHR0cFNlcnZpY2U6IEh0dHBTZXJ2aWNlLFxyXG4gICAgaGFuZGxlcjogSHR0cEJhY2tlbmQsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBhbGVydFNlcnZpY2U6IEFsZXJ0c1NlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBsb2FkZXJOb3RpZmljYXRpb25TZXJ2aWNlOiBMb2FkZXJOb3RpZmljYXRpb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmh0dHBDbGllbnQgPSBuZXcgSHR0cENsaWVudChoYW5kbGVyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGJhc2UgVVJMIGZvciBBUEkgcmVxdWVzdHMuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwaUJhc2VVcmwgLUFQSSBiYXNlIFVSTC5cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBzZXRBcGlCYXNlVXJsKGFwaUJhc2VVcmw6IHN0cmluZykge1xyXG4gICAgdGhpcy5hcGlCYXNlVXJsID0gYXBpQmFzZVVybDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBwcmVzaWduZWQgVVJMIGZvciB1cGxvYWRpbmcgZmlsZXMgdG8gQW1hem9uIFMzIGJ1Y2tldC5cclxuICAgKiBAcGFyYW0geyhGaWxlIHwgRmlsZUxpc3QpfSBmaWxlXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxGaWxlVXBsb2FkUHJlc2lnbmVkVXJsPn1cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBnZXRGaWxlVXBsb2FkUHJlc2lnbmVkVXJsKFxyXG4gICAgZmlsZTogRmlsZSB8IEZpbGVMaXN0XHJcbiAgKTogT2JzZXJ2YWJsZTxGaWxlVXBsb2FkUHJlc2lnbmVkVXJsPiB7XHJcbiAgICBsZXQgZmlsZU5hbWUgPSAnJztcclxuICAgIGlmIChPYmplY3QudmFsdWVzKGZpbGUpLmxlbmd0aCkgZmlsZU5hbWUgPSBPYmplY3QudmFsdWVzKGZpbGUpWzBdLm5hbWU7XHJcbiAgICBlbHNlIGZpbGVOYW1lID0gKGZpbGUgYXMgRmlsZSkubmFtZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5nZXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vY29uZmlndXJhdGlvbnMvczMvdXBsb2FkRmlsZVVybC8ke2ZpbGVOYW1lfWApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlcykgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3JSZXM7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogVXBsb2FkcyBmaWxlIHRvIEFXUyBTMyB1c2luZyBhIHByZXNpZ25lZCBVUkwuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHByZXNpZ25lZFVybFxyXG4gICAqIEBwYXJhbSB7KEZpbGUgfCBGaWxlTGlzdCl9IGZpbGVcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPGFueT59IC1SZXR1cm5zIGFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzcG9uc2UgYWZ0ZXIgdXBsb2FkaW5nIHRoZSBmaWxlIHRvIFMzLlxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgdXBsb2FkRmlsZVRvUzMocHJlc2lnbmVkVXJsOiBzdHJpbmcsIGZpbGU6IEZpbGUgfCBGaWxlTGlzdCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICB0aGlzLmxvYWRlck5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvdygpO1xyXG4gICAgbGV0IGZpbGVUeXBlID0gJyc7XHJcbiAgICBpZiAoT2JqZWN0Py52YWx1ZXMoZmlsZSk/Lmxlbmd0aCkgZmlsZVR5cGUgPSBPYmplY3Q/LnZhbHVlcyhmaWxlKVswXT8udHlwZTtcclxuICAgIGVsc2UgZmlsZVR5cGUgPSAoZmlsZSBhcyBGaWxlKS50eXBlO1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgnQ29udGVudC1UeXBlJywgZmlsZVR5cGUpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxyXG4gICAgICAucHV0KHByZXNpZ25lZFVybCwgdGhpcy5maWxlQnl0ZUFycmF5LCB7XHJcbiAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXHJcbiAgICAgICAgb2JzZXJ2ZTogJ2V2ZW50cycsXHJcbiAgICAgICAgaGVhZGVyczogaGVhZGVycyxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxyXG4gICAgICAgIG1hcCgoZXZlbnQpID0+IHRoaXMuZ2V0RXZlbnRNZXNzYWdlKGV2ZW50LCBmaWxlKSksXHJcbiAgICAgICAgdGFwKChtZXNzYWdlKSA9PiB0aGlzLnNob3dQcm9ncmVzcyhtZXNzYWdlKSksXHJcbiAgICAgICAgbGFzdCgpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlck5vdGlmaWNhdGlvblNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3JSZXM7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgZmlsZSB1cGxvYWQgcHJvZ3Jlc3MuXHJcbiAgICogQHBhcmFtIHsqfSBtZXNzYWdlXHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnksIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycywgbm8tdW51c2VkLXZhcnMsIG5vLWVtcHR5LWZ1bmN0aW9uLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cclxuICBzaG93UHJvZ3Jlc3MobWVzc2FnZTogYW55KSB7fVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm4gZGlzdGluY3QgbWVzc2FnZSBmb3Igc2VudCwgdXBsb2FkIHByb2dyZXNzLCAmIHJlc3BvbnNlIGV2ZW50cy5cclxuICAgKiBAcGFyYW0ge0h0dHBFdmVudDxhbnk+fSBldmVudFxyXG4gICAqIEBwYXJhbSB7KEZpbGUgfCBGaWxlTGlzdCl9IGZpbGVcclxuICAgKiBAcmV0dXJuIHsqfVxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgZ2V0RXZlbnRNZXNzYWdlKGV2ZW50OiBIdHRwRXZlbnQ8YW55PiwgZmlsZTogRmlsZSB8IEZpbGVMaXN0KSB7XHJcbiAgICBsZXQgZmlsZU5hbWUgPSAnJztcclxuICAgIGxldCBmaWxlU2l6ZTogbnVtYmVyIHwgc3RyaW5nID0gMDtcclxuICAgIGlmIChPYmplY3QudmFsdWVzKGZpbGUpLmxlbmd0aCkge1xyXG4gICAgICBmaWxlTmFtZSA9IE9iamVjdC52YWx1ZXMoZmlsZSlbMF0ubmFtZTtcclxuICAgICAgZmlsZVNpemUgPSBPYmplY3QudmFsdWVzKGZpbGUpWzBdLnNpemU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmaWxlTmFtZSA9IChmaWxlIGFzIEZpbGUpLm5hbWU7XHJcbiAgICAgIGZpbGVTaXplID0gKGZpbGUgYXMgRmlsZSkuc2l6ZTtcclxuICAgIH1cclxuICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xyXG4gICAgICBjYXNlIEh0dHBFdmVudFR5cGUuU2VudDpcclxuICAgICAgICByZXR1cm4gYFVwbG9hZGluZyBmaWxlIFwiJHtmaWxlTmFtZX1cIiBvZiBzaXplICR7ZmlsZVNpemV9LmA7XHJcbiAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzczpcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY2FzZS1kZWNsYXJhdGlvbnNcclxuICAgICAgICBjb25zdCBwZXJjZW50RG9uZSA9IGV2ZW50Py50b3RhbFxyXG4gICAgICAgICAgPyBNYXRoLnJvdW5kKCgxMDAgKiBldmVudC5sb2FkZWQpIC8gZXZlbnQudG90YWwpXHJcbiAgICAgICAgICA6IDA7XHJcbiAgICAgICAgcmV0dXJuIGBGaWxlIFwiJHtmaWxlTmFtZX1cIiBpcyAke3BlcmNlbnREb25lfSUgdXBsb2FkZWQuYDtcclxuICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlOlxyXG4gICAgICAgIHRoaXMubG9hZGVyTm90aWZpY2F0aW9uU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIGBGaWxlIFwiJHtmaWxlTmFtZX1cIiBzdXJwcmlzaW5nIHVwbG9hZCBldmVudDogJHtldmVudC50eXBlfS5gO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29udmVydHMgZmlsZSB0byBieXRlIGFycmF5LlxyXG4gICAqIEBwYXJhbSB7RmlsZX0gZmlsZVxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIGNvbnZlcnRGaWxlVG9CeXRlQXJyYXkoZmlsZTogRmlsZSk6IHZvaWQge1xyXG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gcmVhZGVyPy5yZXN1bHQgYXMgQXJyYXlCdWZmZXI7XHJcbiAgICAgIHRoaXMuZmlsZUJ5dGVBcnJheSA9IG5ldyBVaW50OEFycmF5KGFycmF5QnVmZmVyKTtcclxuICAgIH07XHJcbiAgICByZWFkZXIub25lcnJvciA9ICgpID0+IHtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2U/LnNob3dNZXNzYWdlKHtcclxuICAgICAgICBzdGF0dXM6ICdjdXN0b20nLFxyXG4gICAgICAgIG1lc3NhZ2U6IHRoaXMuY29uc3RhbnRzPy5maWxlVXBsb2FkPy5tZXNzYWdlPy5lcnJvcj8uZXJyb3JSZWFkaW5nRmlsZSxcclxuICAgICAgICBhbGVydFR5cGU6IEFsZXJ0VHlwZT8uRVJST1IsXHJcbiAgICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVzZXRzIGZpbGUgYnl0ZSBhcnJheSBmb3JtYXQgdG8gdW5kZWZpbmVkLlxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIGNsZWFyRmlsZUJ5dGVBcnJheSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsZUJ5dGVBcnJheSA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgZmlsZSB1cGxvYWQgc3RhdHVzLlxyXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc3RhdHVzXHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgc2V0RmlsZVVwbG9hZFN0YXR1cyhzdGF0dXM6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuaXNGaWxlVXBsb2FkaW5nID0gc3RhdHVzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBmaWxlIHVwbG9hZCBzdGF0dXMuXHJcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBnZXRGaWxlVXBsb2FkU3RhdHVzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNGaWxlVXBsb2FkaW5nO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHByZXNpZ25lZCBVUkwgZm9yIGRvd25sb2FkaW5nIGZpbGVzIHRvIEFtYXpvbiBTMyBidWNrZXQuXHJcbiAgICogQHBhcmFtIHsoRmlsZSB8IEZpbGVMaXN0KX0gZmlsZVxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8c3RyaW5nPn1cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBnZXRGaWxlRG93bmxvYWRQcmVzaWduZWRVcmxzKFxyXG4gICAgZmlsZTogRmlsZSB8IEZpbGVMaXN0IHwgc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIGxldCBmaWxlTmFtZSA9ICcnO1xyXG4gICAgaWYgKHR5cGVvZiBmaWxlID09PSAnc3RyaW5nJykgZmlsZU5hbWUgPSBmaWxlO1xyXG4gICAgZWxzZSBpZiAoT2JqZWN0LnZhbHVlcyhmaWxlKS5sZW5ndGgpIGZpbGVOYW1lID0gT2JqZWN0LnZhbHVlcyhmaWxlKVswXS5uYW1lO1xyXG4gICAgZWxzZSBmaWxlTmFtZSA9IChmaWxlIGFzIEZpbGUpLm5hbWU7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAuZ2V0RGF0YShcclxuICAgICAgICBgJHt0aGlzLmFwaUJhc2VVcmx9L2NvbmZpZ3VyYXRpb25zL3MzL2Rvd25sb2FkRmlsZVVybC8ke2ZpbGVOYW1lfWBcclxuICAgICAgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXMpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yUmVzO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEb3dubG9hZHMgZmlsZSB0byBBV1MgUzMgdXNpbmcgYSBwcmVzaWduZWQgVVJMLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8YW55Pn1cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGRvd25sb2FkRmlsZShmaWxlRG93bmxvYWRQcmVzaWduZWRVcmw6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChmaWxlRG93bmxvYWRQcmVzaWduZWRVcmwpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdGVzIHRoZSB0b3RhbCBzaXplIG9mIHRoZSBmaWxlcyB1cGxvYWRlZC5cclxuICAgKiBAcGFyYW0geyhGaWxlIHwgRmlsZUxpc3QpfSBmaWxlcyAtVGhlIGZpbGVzIHRvIGJlIHZhbGlkYXRlZC5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gbWF4RmlsZVNpemVcclxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzTXVsdGlGaWxlVXBsb2FkXHJcbiAgICogQHJldHVybiB7Ym9vbGVhbn0gLVJldHVybnMgdHJ1ZSBpZiB0aGUgdG90YWwgc2l6ZSBvZiBmaWxlcyBpcyB3aXRoaW4gdGhlIHNwZWNpZmllZCBsaW1pdCwgb3RoZXJ3aXNlIGZhbHNlLlxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIHZhbGlkYXRlRmlsZVNpemUoXHJcbiAgICBmaWxlczogRmlsZSB8IEZpbGVMaXN0LFxyXG4gICAgbWF4RmlsZVNpemU6IG51bWJlcixcclxuICAgIGlzTXVsdGlGaWxlVXBsb2FkOiBib29sZWFuXHJcbiAgKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoaXNNdWx0aUZpbGVVcGxvYWQpIHtcclxuICAgICAgbGV0IHRvdGFsU2l6ZSA9IDA7XHJcbiAgICAgIE9iamVjdC52YWx1ZXMoZmlsZXMpLmZvckVhY2goKGZpbGU6IEZpbGUpID0+IHtcclxuICAgICAgICB0b3RhbFNpemUgKz0gZmlsZS5zaXplO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHRvdGFsU2l6ZSAvICgxMDI0ICogMTAyNCkgPD0gbWF4RmlsZVNpemU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKGZpbGVzIGFzIEZpbGUpLnNpemUgLyAoMTAyNCAqIDEwMjQpIDw9IG1heEZpbGVTaXplO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdGVzIHRoZSBmaWxlIHR5cGVzIG9mIHRoZSB1cGxvYWRlZCBmaWxlcy5cclxuICAgKiBAcGFyYW0geyhGaWxlIHwgRmlsZUxpc3QpfSBmaWxlc1xyXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGFsbG93ZWRGaWxlVHlwZXNcclxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzTXVsdGlGaWxlVXBsb2FkXHJcbiAgICogQHJldHVybiB7Ym9vbGVhbn0gLVJldHVybnMgdHJ1ZSBpZiBhbGwgZmlsZXMgaGF2ZSB2YWxpZCBleHRlbnNpb25zLCBvdGhlcndpc2UgZmFsc2UuXHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgdmFsaWRhdGVGaWxlVHlwZXMoXHJcbiAgICBmaWxlczogRmlsZSB8IEZpbGVMaXN0LFxyXG4gICAgYWxsb3dlZEZpbGVUeXBlczogc3RyaW5nW10sXHJcbiAgICBpc011bHRpRmlsZVVwbG9hZDogYm9vbGVhblxyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgdmFsaWRhdGVTaW5nbGVGaWxlID0gKGZpbGU6IEZpbGUpOiBib29sZWFuID0+IHtcclxuICAgICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IHRoaXMuZ2V0RmlsZUV4dGVuc2lvbihmaWxlLm5hbWUpO1xyXG4gICAgICByZXR1cm4gYWxsb3dlZEZpbGVUeXBlcz8uaW5jbHVkZXMoZmlsZUV4dGVuc2lvbik7XHJcbiAgICB9O1xyXG4gICAgaWYgKGlzTXVsdGlGaWxlVXBsb2FkKSB7XHJcbiAgICAgIGxldCBhbGxGaWxlc1ZhbGlkID0gdHJ1ZTtcclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgT2JqZWN0LnZhbHVlcyhmaWxlcyk/LmZvckVhY2goKGZpbGVJdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoIXZhbGlkYXRlU2luZ2xlRmlsZShmaWxlSXRlbSkpIHtcclxuICAgICAgICAgIGFsbEZpbGVzVmFsaWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gYWxsRmlsZXNWYWxpZDtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWxpZGF0ZVNpbmdsZUZpbGUoZmlsZXMgYXMgRmlsZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeHRyYWN0cyBhbmQgcmV0dXJucyB0aGUgZXh0ZW5zaW9uIG9mIGEgZmlsZSBmcm9tIGl0cyBuYW1lLlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpbGVOYW1lXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSAtVGhlIGZpbGUgZXh0ZW5zaW9uIGluIGxvd2VyY2FzZS5cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBwcml2YXRlIGdldEZpbGVFeHRlbnNpb24oZmlsZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxyXG4gICAgcmV0dXJuIGZpbGVOYW1lPy5zcGxpdCgnLicpLnBvcCgpIS50b0xvd2VyQ2FzZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW1wbGVtZW50YXRpb24gb2YgbmdPbkRlc3Ryb3kgbGlmZWN5Y2xlIGhvb2sgbWV0aG9kIHRvIHVuc3Vic2NyaWJlIHRoZSBvcGVuIG9ic2VydmFibGUgc3Vic2NyaXB0aW9ucy5cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIl19
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXNlbnRhdGlvbi9zcmMvbGliL3NlcnZpY2VzL2ZpbGUtdXBsb2FkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFVBQVUsRUFFVixhQUFhLEVBQ2IsV0FBVyxHQUNaLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBRUwsU0FBUyxHQUdWLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUNMLFVBQVUsRUFDVixJQUFJLEVBQ0osR0FBRyxFQUVILE9BQU8sRUFDUCxTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxLQUFLLFNBQVMsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQUV0RDs7O0dBR0c7QUFJSCxNQUFNLE9BQU8saUJBQWlCO0lBTzVCO0lBQ0UsMENBQTBDO0lBQ25DLFdBQXdCLEVBQy9CLE9BQW9CO0lBQ3BCLDBDQUEwQztJQUNuQyxZQUEyQjtJQUNsQywwQ0FBMEM7SUFDbkMseUJBQW9EO1FBTHBELGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBR3hCLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBRTNCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMkI7UUFiN0QsYUFBUSxHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ3BELGNBQVMsR0FBRyxTQUFTLENBQUM7UUFJdEIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFVdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxVQUFrQjtRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixD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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBIdHRwQmFja2VuZCxcclxuICBIdHRwQ2xpZW50LFxyXG4gIEh0dHBFdmVudCxcclxuICBIdHRwRXZlbnRUeXBlLFxyXG4gIEh0dHBIZWFkZXJzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWxlcnRzU2VydmljZSxcclxuICBBbGVydFR5cGUsXHJcbiAgSHR0cFNlcnZpY2UsXHJcbiAgTG9hZGVyTm90aWZpY2F0aW9uU2VydmljZSxcclxufSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZFByZXNpZ25lZFVybCB9IGZyb20gJy4uL21vZGVscy9maWxlLXVwbG9hZC1wcmVzaWduZWQtdXJsLXJlcy5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgY2F0Y2hFcnJvcixcclxuICBsYXN0LFxyXG4gIG1hcCxcclxuICBPYnNlcnZhYmxlLFxyXG4gIFN1YmplY3QsXHJcbiAgdGFrZVVudGlsLFxyXG4gIHRhcCxcclxufSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcblxyXG4vKipcclxuICogVGhpcyBzZXJ2aWNlIGludGVyYWN0cyB3aXRoIHRoZSBzZXJ2ZXIgdG8gb2J0YWluIHByZS1zaWduZWQgVVJMcyBmb3IgZmlsZSB1cGxvYWQgYW5kIHVwbG9hZHMgZmlsZXMgdG8gQW1hem9uIFMzLlxyXG4gKiBAY2xhc3MgRmlsZVVwbG9hZFNlcnZpY2VcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIGNvbnN0YW50cyA9IGNvbnN0YW50cztcclxuICBhcGlCYXNlVXJsITogc3RyaW5nO1xyXG4gIGZpbGVCeXRlQXJyYXk6IFVpbnQ4QXJyYXkgfCB1bmRlZmluZWQ7XHJcbiAgaHR0cENsaWVudDogSHR0cENsaWVudDtcclxuICBpc0ZpbGVVcGxvYWRpbmcgPSBmYWxzZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGh0dHBTZXJ2aWNlOiBIdHRwU2VydmljZSxcclxuICAgIGhhbmRsZXI6IEh0dHBCYWNrZW5kLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwdWJsaWMgYWxlcnRTZXJ2aWNlOiBBbGVydHNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwdWJsaWMgbG9hZGVyTm90aWZpY2F0aW9uU2VydmljZTogTG9hZGVyTm90aWZpY2F0aW9uU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5odHRwQ2xpZW50ID0gbmV3IEh0dHBDbGllbnQoaGFuZGxlcik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBiYXNlIFVSTCBmb3IgQVBJIHJlcXVlc3RzLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcGlCYXNlVXJsIC1BUEkgYmFzZSBVUkwuXHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgc2V0QXBpQmFzZVVybChhcGlCYXNlVXJsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuYXBpQmFzZVVybCA9IGFwaUJhc2VVcmw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgcHJlc2lnbmVkIFVSTCBmb3IgdXBsb2FkaW5nIGZpbGVzIHRvIEFtYXpvbiBTMyBidWNrZXQuXHJcbiAgICogQHBhcmFtIHsoRmlsZSB8IEZpbGVMaXN0KX0gZmlsZVxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RmlsZVVwbG9hZFByZXNpZ25lZFVybD59XHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0RmlsZVVwbG9hZFByZXNpZ25lZFVybChcclxuICAgIGZpbGU6IEZpbGUgfCBGaWxlTGlzdFxyXG4gICk6IE9ic2VydmFibGU8RmlsZVVwbG9hZFByZXNpZ25lZFVybD4ge1xyXG4gICAgbGV0IGZpbGVOYW1lID0gJyc7XHJcbiAgICBpZiAoT2JqZWN0LnZhbHVlcyhmaWxlKS5sZW5ndGgpIGZpbGVOYW1lID0gT2JqZWN0LnZhbHVlcyhmaWxlKVswXS5uYW1lO1xyXG4gICAgZWxzZSBmaWxlTmFtZSA9IChmaWxlIGFzIEZpbGUpLm5hbWU7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAuZ2V0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2NvbmZpZ3VyYXRpb25zL3MzL3VwbG9hZEZpbGVVcmwvJHtmaWxlTmFtZX1gKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXMpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yUmVzO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFVwbG9hZHMgZmlsZSB0byBBV1MgUzMgdXNpbmcgYSBwcmVzaWduZWQgVVJMLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcmVzaWduZWRVcmxcclxuICAgKiBAcGFyYW0geyhGaWxlIHwgRmlsZUxpc3QpfSBmaWxlXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxhbnk+fSAtUmV0dXJucyBhbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3BvbnNlIGFmdGVyIHVwbG9hZGluZyB0aGUgZmlsZSB0byBTMy5cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHVwbG9hZEZpbGVUb1MzKHByZXNpZ25lZFVybDogc3RyaW5nLCBmaWxlOiBGaWxlIHwgRmlsZUxpc3QpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgdGhpcy5sb2FkZXJOb3RpZmljYXRpb25TZXJ2aWNlLnNob3coKTtcclxuICAgIGxldCBmaWxlVHlwZSA9ICcnO1xyXG4gICAgbGV0IGZpbGVTaXplOiBhbnk7XHJcbiAgICBsZXQgZmlsZU9iajogYW55O1xyXG4gICAgaWYgKE9iamVjdC52YWx1ZXMoZmlsZSkubGVuZ3RoKSB7XHJcbiAgICAgIGZpbGVUeXBlID0gT2JqZWN0LnZhbHVlcyhmaWxlKVswXS50eXBlO1xyXG4gICAgICBmaWxlU2l6ZSA9IE9iamVjdC52YWx1ZXMoZmlsZSlbMF0uc2l6ZTtcclxuICAgICAgZmlsZU9iaiA9IE9iamVjdC52YWx1ZXMoZmlsZSlbMF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmaWxlVHlwZSA9IChmaWxlIGFzIEZpbGUpLnR5cGU7XHJcbiAgICAgIGZpbGVTaXplID0gKGZpbGUgYXMgRmlsZSkuc2l6ZTtcclxuICAgICAgZmlsZU9iaiA9IGZpbGU7XHJcbiAgICB9XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XHJcbiAgICBoZWFkZXJzLmFwcGVuZCgnQ29udGVudC1UeXBlJywgZmlsZVR5cGUpO1xyXG4gICAgaGVhZGVycy5hcHBlbmQoJ0NvbnRlbnQtTGVuZ3RoJywgZmlsZVNpemUpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxyXG4gICAgICAucHV0KHByZXNpZ25lZFVybCwgZmlsZU9iaiwge1xyXG4gICAgICAgIHJlcG9ydFByb2dyZXNzOiB0cnVlLFxyXG4gICAgICAgIG9ic2VydmU6ICdldmVudHMnLFxyXG4gICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuICAgICAgICBtYXAoKGV2ZW50KSA9PiB0aGlzLmdldEV2ZW50TWVzc2FnZShldmVudCwgZmlsZSkpLFxyXG4gICAgICAgIHRhcCgobWVzc2FnZSkgPT4gdGhpcy5zaG93UHJvZ3Jlc3MobWVzc2FnZSkpLFxyXG4gICAgICAgIGxhc3QoKSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlcykgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkZXJOb3RpZmljYXRpb25TZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICAgIHRocm93IGVycm9yUmVzO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIGZpbGUgdXBsb2FkIHByb2dyZXNzLlxyXG4gICAqIEBwYXJhbSB7Kn0gbWVzc2FnZVxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55LCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMsIG5vLXVudXNlZC12YXJzLCBuby1lbXB0eS1mdW5jdGlvbiwgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgc2hvd1Byb2dyZXNzKG1lc3NhZ2U6IGFueSkge31cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIGRpc3RpbmN0IG1lc3NhZ2UgZm9yIHNlbnQsIHVwbG9hZCBwcm9ncmVzcywgJiByZXNwb25zZSBldmVudHMuXHJcbiAgICogQHBhcmFtIHtIdHRwRXZlbnQ8YW55Pn0gZXZlbnRcclxuICAgKiBAcGFyYW0geyhGaWxlIHwgRmlsZUxpc3QpfSBmaWxlXHJcbiAgICogQHJldHVybiB7Kn1cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGdldEV2ZW50TWVzc2FnZShldmVudDogSHR0cEV2ZW50PGFueT4sIGZpbGU6IEZpbGUgfCBGaWxlTGlzdCkge1xyXG4gICAgbGV0IGZpbGVOYW1lID0gJyc7XHJcbiAgICBsZXQgZmlsZVNpemU6IG51bWJlciB8IHN0cmluZyA9IDA7XHJcbiAgICBpZiAoT2JqZWN0LnZhbHVlcyhmaWxlKS5sZW5ndGgpIHtcclxuICAgICAgZmlsZU5hbWUgPSBPYmplY3QudmFsdWVzKGZpbGUpWzBdLm5hbWU7XHJcbiAgICAgIGZpbGVTaXplID0gT2JqZWN0LnZhbHVlcyhmaWxlKVswXS5zaXplO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZmlsZU5hbWUgPSAoZmlsZSBhcyBGaWxlKS5uYW1lO1xyXG4gICAgICBmaWxlU2l6ZSA9IChmaWxlIGFzIEZpbGUpLnNpemU7XHJcbiAgICB9XHJcbiAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcclxuICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlNlbnQ6XHJcbiAgICAgICAgcmV0dXJuIGBVcGxvYWRpbmcgZmlsZSBcIiR7ZmlsZU5hbWV9XCIgb2Ygc2l6ZSAke2ZpbGVTaXplfS5gO1xyXG4gICAgICBjYXNlIEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3M6XHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNhc2UtZGVjbGFyYXRpb25zXHJcbiAgICAgICAgY29uc3QgcGVyY2VudERvbmUgPSBldmVudD8udG90YWxcclxuICAgICAgICAgID8gTWF0aC5yb3VuZCgoMTAwICogZXZlbnQubG9hZGVkKSAvIGV2ZW50LnRvdGFsKVxyXG4gICAgICAgICAgOiAwO1xyXG4gICAgICAgIHJldHVybiBgRmlsZSBcIiR7ZmlsZU5hbWV9XCIgaXMgJHtwZXJjZW50RG9uZX0lIHVwbG9hZGVkLmA7XHJcbiAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5SZXNwb25zZTpcclxuICAgICAgICB0aGlzLmxvYWRlck5vdGlmaWNhdGlvblNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBgRmlsZSBcIiR7ZmlsZU5hbWV9XCIgc3VycHJpc2luZyB1cGxvYWQgZXZlbnQ6ICR7ZXZlbnQudHlwZX0uYDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnZlcnRzIGZpbGUgdG8gYnl0ZSBhcnJheS5cclxuICAgKiBAcGFyYW0ge0ZpbGV9IGZpbGVcclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBjb252ZXJ0RmlsZVRvQnl0ZUFycmF5KGZpbGU6IEZpbGUpOiB2b2lkIHtcclxuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICByZWFkZXIub25sb2FkZW5kID0gKCkgPT4ge1xyXG4gICAgICBjb25zdCBhcnJheUJ1ZmZlciA9IHJlYWRlcj8ucmVzdWx0IGFzIEFycmF5QnVmZmVyO1xyXG4gICAgICB0aGlzLmZpbGVCeXRlQXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcik7XHJcbiAgICB9O1xyXG4gICAgcmVhZGVyLm9uZXJyb3IgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlPy5zaG93TWVzc2FnZSh7XHJcbiAgICAgICAgc3RhdHVzOiAnY3VzdG9tJyxcclxuICAgICAgICBtZXNzYWdlOiB0aGlzLmNvbnN0YW50cz8uZmlsZVVwbG9hZD8ubWVzc2FnZT8uZXJyb3I/LmVycm9yUmVhZGluZ0ZpbGUsXHJcbiAgICAgICAgYWxlcnRUeXBlOiBBbGVydFR5cGU/LkVSUk9SLFxyXG4gICAgICAgIGlzQ2xvc2VOZWVkZWQ6IHRydWUsXHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihmaWxlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc2V0cyBmaWxlIGJ5dGUgYXJyYXkgZm9ybWF0IHRvIHVuZGVmaW5lZC5cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBjbGVhckZpbGVCeXRlQXJyYXkoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbGVCeXRlQXJyYXkgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIGZpbGUgdXBsb2FkIHN0YXR1cy5cclxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHN0YXR1c1xyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIHNldEZpbGVVcGxvYWRTdGF0dXMoc3RhdHVzOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRmlsZVVwbG9hZGluZyA9IHN0YXR1cztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgZmlsZSB1cGxvYWQgc3RhdHVzLlxyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0RmlsZVVwbG9hZFN0YXR1cygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlzRmlsZVVwbG9hZGluZztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBwcmVzaWduZWQgVVJMIGZvciBkb3dubG9hZGluZyBmaWxlcyB0byBBbWF6b24gUzMgYnVja2V0LlxyXG4gICAqIEBwYXJhbSB7KEZpbGUgfCBGaWxlTGlzdCl9IGZpbGVcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPHN0cmluZz59XHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0RmlsZURvd25sb2FkUHJlc2lnbmVkVXJscyhcclxuICAgIGZpbGU6IEZpbGUgfCBGaWxlTGlzdCB8IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICBsZXQgZmlsZU5hbWUgPSAnJztcclxuICAgIGlmICh0eXBlb2YgZmlsZSA9PT0gJ3N0cmluZycpIGZpbGVOYW1lID0gZmlsZTtcclxuICAgIGVsc2UgaWYgKE9iamVjdC52YWx1ZXMoZmlsZSkubGVuZ3RoKSBmaWxlTmFtZSA9IE9iamVjdC52YWx1ZXMoZmlsZSlbMF0ubmFtZTtcclxuICAgIGVsc2UgZmlsZU5hbWUgPSAoZmlsZSBhcyBGaWxlKS5uYW1lO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLmdldERhdGEoXHJcbiAgICAgICAgYCR7dGhpcy5hcGlCYXNlVXJsfS9jb25maWd1cmF0aW9ucy9zMy9kb3dubG9hZEZpbGVVcmwvJHtmaWxlTmFtZX1gXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvclJlcztcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRG93bmxvYWRzIGZpbGUgdG8gQVdTIFMzIHVzaW5nIGEgcHJlc2lnbmVkIFVSTC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPGFueT59XHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBkb3dubG9hZEZpbGUoZmlsZURvd25sb2FkUHJlc2lnbmVkVXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoZmlsZURvd25sb2FkUHJlc2lnbmVkVXJsKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRlcyB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgZmlsZXMgdXBsb2FkZWQuXHJcbiAgICogQHBhcmFtIHsoRmlsZSB8IEZpbGVMaXN0KX0gZmlsZXMgLVRoZSBmaWxlcyB0byBiZSB2YWxpZGF0ZWQuXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IG1heEZpbGVTaXplXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBpc011bHRpRmlsZVVwbG9hZFxyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IC1SZXR1cm5zIHRydWUgaWYgdGhlIHRvdGFsIHNpemUgb2YgZmlsZXMgaXMgd2l0aGluIHRoZSBzcGVjaWZpZWQgbGltaXQsIG90aGVyd2lzZSBmYWxzZS5cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICB2YWxpZGF0ZUZpbGVTaXplKFxyXG4gICAgZmlsZXM6IEZpbGUgfCBGaWxlTGlzdCxcclxuICAgIG1heEZpbGVTaXplOiBudW1iZXIsXHJcbiAgICBpc011bHRpRmlsZVVwbG9hZDogYm9vbGVhblxyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGlzTXVsdGlGaWxlVXBsb2FkKSB7XHJcbiAgICAgIGxldCB0b3RhbFNpemUgPSAwO1xyXG4gICAgICBPYmplY3QudmFsdWVzKGZpbGVzKS5mb3JFYWNoKChmaWxlOiBGaWxlKSA9PiB7XHJcbiAgICAgICAgdG90YWxTaXplICs9IGZpbGUuc2l6ZTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiB0b3RhbFNpemUgLyAoMTAyNCAqIDEwMjQpIDw9IG1heEZpbGVTaXplO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChmaWxlcyBhcyBGaWxlKS5zaXplIC8gKDEwMjQgKiAxMDI0KSA8PSBtYXhGaWxlU2l6ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRlcyB0aGUgZmlsZSB0eXBlcyBvZiB0aGUgdXBsb2FkZWQgZmlsZXMuXHJcbiAgICogQHBhcmFtIHsoRmlsZSB8IEZpbGVMaXN0KX0gZmlsZXNcclxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBhbGxvd2VkRmlsZVR5cGVzXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBpc011bHRpRmlsZVVwbG9hZFxyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IC1SZXR1cm5zIHRydWUgaWYgYWxsIGZpbGVzIGhhdmUgdmFsaWQgZXh0ZW5zaW9ucywgb3RoZXJ3aXNlIGZhbHNlLlxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIHZhbGlkYXRlRmlsZVR5cGVzKFxyXG4gICAgZmlsZXM6IEZpbGUgfCBGaWxlTGlzdCxcclxuICAgIGFsbG93ZWRGaWxlVHlwZXM6IHN0cmluZ1tdLFxyXG4gICAgaXNNdWx0aUZpbGVVcGxvYWQ6IGJvb2xlYW5cclxuICApOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHZhbGlkYXRlU2luZ2xlRmlsZSA9IChmaWxlOiBGaWxlKTogYm9vbGVhbiA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSB0aGlzLmdldEZpbGVFeHRlbnNpb24oZmlsZS5uYW1lKTtcclxuICAgICAgcmV0dXJuIGFsbG93ZWRGaWxlVHlwZXM/LmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pO1xyXG4gICAgfTtcclxuICAgIGlmIChpc011bHRpRmlsZVVwbG9hZCkge1xyXG4gICAgICBsZXQgYWxsRmlsZXNWYWxpZCA9IHRydWU7XHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgIE9iamVjdC52YWx1ZXMoZmlsZXMpPy5mb3JFYWNoKChmaWxlSXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKCF2YWxpZGF0ZVNpbmdsZUZpbGUoZmlsZUl0ZW0pKSB7XHJcbiAgICAgICAgICBhbGxGaWxlc1ZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIGFsbEZpbGVzVmFsaWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsaWRhdGVTaW5nbGVGaWxlKGZpbGVzIGFzIEZpbGUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXh0cmFjdHMgYW5kIHJldHVybnMgdGhlIGV4dGVuc2lvbiBvZiBhIGZpbGUgZnJvbSBpdHMgbmFtZS5cclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlTmFtZVxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gLVRoZSBmaWxlIGV4dGVuc2lvbiBpbiBsb3dlcmNhc2UuXHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRGaWxlRXh0ZW5zaW9uKGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cclxuICAgIHJldHVybiBmaWxlTmFtZT8uc3BsaXQoJy4nKS5wb3AoKSEudG9Mb3dlckNhc2UoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEltcGxlbWVudGF0aW9uIG9mIG5nT25EZXN0cm95IGxpZmVjeWNsZSBob29rIG1ldGhvZCB0byB1bnN1YnNjcmliZSB0aGUgb3BlbiBvYnNlcnZhYmxlIHN1YnNjcmlwdGlvbnMuXHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -2359,13 +2359,23 @@ class FileUploadService {
2359
2359
  uploadFileToS3(presignedUrl, file) {
2360
2360
  this.loaderNotificationService.show();
2361
2361
  let fileType = '';
2362
- if (Object?.values(file)?.length)
2363
- fileType = Object?.values(file)[0]?.type;
2364
- else
2362
+ let fileSize;
2363
+ let fileObj;
2364
+ if (Object.values(file).length) {
2365
+ fileType = Object.values(file)[0].type;
2366
+ fileSize = Object.values(file)[0].size;
2367
+ fileObj = Object.values(file)[0];
2368
+ }
2369
+ else {
2365
2370
  fileType = file.type;
2366
- const headers = new HttpHeaders().set('Content-Type', fileType);
2371
+ fileSize = file.size;
2372
+ fileObj = file;
2373
+ }
2374
+ const headers = new HttpHeaders();
2375
+ headers.append('Content-Type', fileType);
2376
+ headers.append('Content-Length', fileSize);
2367
2377
  return this.httpClient
2368
- .put(presignedUrl, this.fileByteArray, {
2378
+ .put(presignedUrl, fileObj, {
2369
2379
  reportProgress: true,
2370
2380
  observe: 'events',
2371
2381
  headers: headers,