@esfaenza/es-charts 15.2.2 → 15.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,7 @@
1
1
  import { Inject, Injectable } from '@angular/core';
2
2
  import { ChartThemes } from './ChartThemes';
3
3
  import { ESC_LOGS } from '../../tokens';
4
+ import { EsChartsModule } from '../../es-charts.module';
4
5
  import * as i0 from "@angular/core";
5
6
  /**
6
7
  * Classe di supporto al caricamento dinamico dei vari pezzi di amcharts che mi servono per il grafico (temi, locali, ecc...)
@@ -202,12 +203,12 @@ export class ChartLoader {
202
203
  }
203
204
  }
204
205
  ChartLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartLoader, deps: [{ token: ESC_LOGS }], target: i0.ɵɵFactoryTarget.Injectable });
205
- ChartLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartLoader, providedIn: "root" });
206
+ ChartLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartLoader, providedIn: EsChartsModule });
206
207
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartLoader, decorators: [{
207
208
  type: Injectable,
208
- args: [{ providedIn: "root" }]
209
+ args: [{ providedIn: EsChartsModule }]
209
210
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
210
211
  type: Inject,
211
212
  args: [ESC_LOGS]
212
213
  }] }]; } });
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhcnRMb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy1jaGFydHMvc3JjL2xpYi9tb2RlbHMvY29yZS9DaGFydExvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRXhDOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBRUgsTUFBTSxPQUFPLFdBQVc7SUFzQnRCOztPQUVHO0lBQ0gsWUFBc0MsSUFBYTtRQUFiLFNBQUksR0FBSixJQUFJLENBQVM7UUF2Qm5EOztXQUVHO1FBQ0ssd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBRTdDOztXQUVHO1FBQ0ssb0JBQWUsR0FBVyxFQUFFLENBQUM7UUFFckM7O1dBRUc7UUFDSyxlQUFVLEdBQU8sRUFBRSxDQUFDO1FBRTVCOztXQUVHO1FBQ0ssc0JBQWlCLEdBQU8sRUFBRSxDQUFDO0lBS29CLENBQUM7SUFFeEQ7Ozs7O09BS0c7SUFDSSxlQUFlLENBQUMsVUFBZTtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzdCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ25FLElBQUksQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN6RCxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQzNELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7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QUNILEdBQUcsQ0FBQyxJQUFZO1FBQ2QsSUFBSSxJQUFJLENBQUMsSUFBSTtZQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQzs7d0dBdk1VLFdBQVcsa0JBeUJGLFFBQVE7NEdBekJqQixXQUFXLGNBREUsTUFBTTsyRkFDbkIsV0FBVztrQkFEdkIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQTBCbkIsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENoYXJ0VGhlbWVzIH0gZnJvbSAnLi9DaGFydFRoZW1lcydcclxuaW1wb3J0IHsgRVNDX0xPR1MgfSBmcm9tICcuLi8uLi90b2tlbnMnO1xyXG5cclxuLyoqXHJcbiAqIENsYXNzZSBkaSBzdXBwb3J0byBhbCBjYXJpY2FtZW50byBkaW5hbWljbyBkZWkgdmFyaSBwZXp6aSBkaSBhbWNoYXJ0cyBjaGUgbWkgc2Vydm9ubyBwZXIgaWwgZ3JhZmljbyAodGVtaSwgbG9jYWxpLCBlY2MuLi4pXHJcbiAqIFxyXG4gKiBFc3NlbnppYWxtZW50ZSBvZ25pIHZvbHRhIGNoZSB2aWVuZSBjcmVhdG8gdW4gZ3JhZmljbywgcXVlc3RvIGFjcXVpc2lzY2UgaWwgdGVtYSBlIGlsIGxvY2FsZSBhcHBsaWNhdG8gSU4gUVVFTCBNT01FTlRPLFxyXG4gKiBxdWVzdG8gc2lnbmlmaWNhIGNoZSBwZXIgY3JlYXJlIGR1ZSBncmFmaWNpIGNvbiB0ZW1pIGRpdmVyc2kgYmlzb2duYSBmYXJlOlxyXG4gKiBcclxuICogMSkgQ2FyaWNhbWVudG8gdGVtYSAxXHJcbiAqIFxyXG4gKiAyKSBDcmVhemlvbmUgZ3JhZmljbyAxXHJcbiAqIFxyXG4gKiAzKSBTY2FyaWNhbWVudG8gdGVtYSAxXHJcbiAqIFxyXG4gKiAzKSBDYXJpY2FtZW50byB0ZW1hIDJcclxuICogXHJcbiAqIDQpIENyZWF6aW9uZSBncmFmaWNvIDJcclxuICogXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46IFwicm9vdFwiIH0pXHJcbmV4cG9ydCBjbGFzcyBDaGFydExvYWRlciB7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYSBzZSBhdHR1YWxtZW50ZSBobyBsZSBhbmltYXppb25pIGNhcmljYXRlIGluIG1vZG8gZGEgbm9uIHJpY2FyaWNhcmxlIGludXRpbG1lbnRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBBbmltYXRpb25zQXJlTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYSBsJ3VsdGltbyB0ZW1hIGNhcmljYXRvIGluIG1vZG8gZGEgbm9uIHJpY2FyaWNhcmxvIGludXRpbG1lbnRlIHF1YWxvcmEgaWwgcHJvc3NpbW8gZ3JhZmljbyBkYSBjcmVhcmUgcmljaGllZGEgbG8gc3Rlc3NvIHRlbWFcclxuICAgKi9cclxuICBwcml2YXRlIExhc3RMb2FkZWRUaGVtZTogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgLyoqXHJcbiAgICogQ2FjaGUgZGVpIHRlbWkgKG1vZHVsaSBjYXJpY2F0aSBkaW5hbWljYW1lbnRlKVxyXG4gICAqL1xyXG4gIHByaXZhdGUgdGhlbWVDYWNoZToge30gPSB7fTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ2FjaGUgZGVsbGUgbG9jYWxpenphemlvbmkgKG1vZHVsaSBjYXJpY2F0aSBkaW5hbWljYW1lbnRlKVxyXG4gICAqL1xyXG4gIHByaXZhdGUgbG9jYWxpemF0aW9uQ2FjaGU6IHt9ID0ge307XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEVTQ19MT0dTKSBwcml2YXRlIGxvZ3M6IGJvb2xlYW4pIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBBcHBsaWNhIGlsIHRlbWEgY29uIGxlIGFuaW1hemlvbmkgYWxsJ2lzdGFuemEgZ2xvYmFsZSBkaSBhbUNoYXJ0c1xyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjaGFydHNDb3JlIElzdGFuemEgZ2xvYmFsZSBkaSBhbUNoYXJ0c1xyXG4gICAqIEByZXR1cm5zIHtQcm9taXNlfSBQcm9taXNlIGNoZSBpZGVudGlmaWNhIGxhIGZpbmUgZGVsIGNhcmljYW1lbnRvXHJcbiAgICovXHJcbiAgcHVibGljIGFwcGx5QW5pbWF0aW9ucyhjaGFydHNDb3JlOiBhbnkpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgaWYgKCF0aGlzLkFuaW1hdGlvbnNBcmVMb2FkZWQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaW1wb3J0SWZOZWVkZWQoJ3RoZW1lcycsIENoYXJ0VGhlbWVzLmFuaW1hdGVkKS50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLmxvZyhcIkNPUkU6IEFwcGx5aW5nIHRoZW1lIFwiICsgQ2hhcnRUaGVtZXMuYW5pbWF0ZWQpO1xyXG4gICAgICAgIGNoYXJ0c0NvcmUudXNlVGhlbWUodGhpcy50aGVtZUNhY2hlW0NoYXJ0VGhlbWVzLmFuaW1hdGVkXSk7XHJcbiAgICAgICAgdGhpcy5BbmltYXRpb25zQXJlTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5sb2coXCJDT1JFOiB0aGVtZSBhbHJlYWR5IGFwcGx5ZWQgXCIgKyBDaGFydFRoZW1lcy5hbmltYXRlZCk7XHJcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKHRydWUpIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGUtYXBwbGljYSBpbCB0ZW1hIGNvbiBsZSBhbmltYXppb25pIGRhbGwnaXN0YW56YSBnbG9iYWxlIGRpIGFtQ2hhcnRzXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IGNoYXJ0c0NvcmUgSXN0YW56YSBnbG9iYWxlIGRpIGFtQ2hhcnRzXHJcbiAgICogQHJldHVybnMge1Byb21pc2V9IFByb21pc2UgY2hlIGlkZW50aWZpY2EgbGEgZmluZSBkZWxsbyBzY2FyaWNvXHJcbiAgICovXHJcbiAgdW5hcHBseUFuaW1hdGlvbnMoY2hhcnRzQ29yZTogYW55KTogUHJvbWlzZTxhbnk+IHtcclxuICAgIGlmICh0aGlzLkFuaW1hdGlvbnNBcmVMb2FkZWQpIHtcclxuICAgICAgdGhpcy5sb2coXCJDT1JFOiBBbmltYXRpb25zIGluIHVzZSwgdW5hcHBseWluZyB0aGVtZSBcIiArIENoYXJ0VGhlbWVzLmFuaW1hdGVkKTtcclxuICAgICAgY2hhcnRzQ29yZS51bnVzZVRoZW1lKHRoaXMudGhlbWVDYWNoZVtDaGFydFRoZW1lcy5hbmltYXRlZF0pO1xyXG4gICAgICB0aGlzLkFuaW1hdGlvbnNBcmVMb2FkZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5sb2coXCJDT1JFOiBBbmltYXRpb25zIGFscmVhZHkgdW51c2VkLCBubyBuZWVkIHRvIHVuYXBwbHkgdGhlbVwiKTtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKHRydWUpIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQXBwbGljYSBpbCB0ZW1hIHNwZWNpZmljYXRvIGFsbCdpc3RhbnphIGdsb2JhbGUgZGkgYW1DaGFydHNcclxuICAgKiBcclxuICAgKiBAcGFyYW0ge09iamVjdH0gY2hhcnRzQ29yZSBJc3RhbnphIGdsb2JhbGUgZGkgYW1DaGFydHNcclxuICAgKiBAcGFyYW0geydzcGlyaXRlZGF3YXknIHwgJ21vb25yaXNla2luZ2RvbScgfCAnZnJvemVuJyB8ICdkYXJrJyB8ICdrZWxseScgfCAnbWF0ZXJpYWwnIHwgJ2RhdGF2aXonIHwgJ25vbmUnfSB0aGVtZSBUZW1hIGRhIGFwcGxpY2FyZVxyXG4gICAqIEByZXR1cm5zIHtQcm9taXNlfSBQcm9taXNlIGNoZSBpZGVudGlmaWNhIGxhIGZpbmUgZGVsIGNhcmljYW1lbnRvXHJcbiAgICovXHJcbiAgYXBwbHlUaGVtZShjaGFydHNDb3JlOiBhbnksIHRoZW1lOiAnc3Bpcml0ZWRhd2F5JyB8ICdtb29ucmlzZWtpbmdkb20nIHwgJ2Zyb3plbicgfCAnZGFyaycgfCAna2VsbHknIHwgJ21hdGVyaWFsJyB8ICdkYXRhdml6JyB8ICdub25lJyk6IFByb21pc2U8YW55PiB7XHJcbiAgICAvLyBVbHRpbW8gdGVtYSBhcHBsaWNhdG8gw6ggbG8gc3Rlc3NvIGNoZSBtaSDDqCBzdGF0byByaWNoaWVzdG8gZGkgYXBwbGljYXJlIC0tPiBOTy1PUFxyXG4gICAgaWYgKHRoaXMuTGFzdExvYWRlZFRoZW1lID09IHRoZW1lKSB7XHJcbiAgICAgIHRoaXMubG9nKFwiQ09SRTogdGhlbWUgYWxyZWFkeSBhcHBsaWVkIFwiICsgdGhlbWUpO1xyXG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSh0cnVlKSB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBTY2FyaWNvIGlsIHRlbWEgcHJlY2VkZW50ZSBhIHByZXNjaW5kZXJlLCBvcm1haSBub24gbWkgc2VydmUgcGnDuVxyXG4gICAgdGhpcy51bmFwcGx5UHJldmlvdXNUaGVtZShjaGFydHNDb3JlKVxyXG5cclxuICAgIC8vIElsIHRlbWEgw6ggaWwgbm9uZSAtLT4gcmVnaXN0cm8gbGEgY29zYSBlIGJhc3RhLCBpbCB0ZW1hIHByZWNlZGVudGUgw6ggc3RhdG8gcmltb3NzbyBzdWJpdG8gcXVpIHNvcHJhIF5cclxuICAgIGlmICh0aGVtZSA9PSBDaGFydFRoZW1lcy5ub25lKSB7XHJcbiAgICAgIHRoaXMuTGFzdExvYWRlZFRoZW1lID0gQ2hhcnRUaGVtZXMubm9uZTtcclxuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUodHJ1ZSkgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSWwgdGVtYSDDqCBkaXZlcnNvIGRhbCBwcmVjZWRlbnRlIGUgbm9uIMOoIGlsIHRlbWEgdnVvdG8gLS0+IEltcG9ydG8gaWwgdGVtYSBzcGVjaWZpY2F0byBzZSBub24gcHJlc2VudGUgaW4gbWVtb3JpYSBlIGxvIGFwcGxpY28gYWwgZ3JhZmljbyBhdHR1YWxlXHJcbiAgICByZXR1cm4gdGhpcy5pbXBvcnRJZk5lZWRlZCgndGhlbWVzJywgdGhlbWUpLnRoZW4oKCkgPT4ge1xyXG4gICAgICB0aGlzLmxvZyhcIkNPUkU6IEFwcGx5aW5nIHRoZW1lIFwiICsgdGhlbWUpO1xyXG4gICAgICBjaGFydHNDb3JlLnVzZVRoZW1lKHRoaXMudGhlbWVDYWNoZVt0aGVtZV0pO1xyXG4gICAgICB0aGlzLkxhc3RMb2FkZWRUaGVtZSA9IHRoZW1lO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZS1hcHBsaWNhIGlsIHRlbWEgcHJlY2VkZW50ZSBkYWxsJ2lzdGFuemEgZ2xvYmFsZSBkaSBhbUNoYXJ0c1xyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjaGFydHNDb3JlIElzdGFuemEgZ2xvYmFsZSBkaSBhbUNoYXJ0c1xyXG4gICAqL1xyXG4gIHVuYXBwbHlQcmV2aW91c1RoZW1lKGNoYXJ0c0NvcmU6IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLkxhc3RMb2FkZWRUaGVtZSB8fCB0aGlzLkxhc3RMb2FkZWRUaGVtZSA9PSBDaGFydFRoZW1lcy5ub25lKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5sb2coXCJDT1JFOiBVbmFwcGx5aW5nIHByZXZpb3VzbHkgdXNlZCB0aGVtZSBcIiArIHRoaXMuTGFzdExvYWRlZFRoZW1lKTtcclxuICAgIGNoYXJ0c0NvcmUudW51c2VUaGVtZSh0aGlzLnRoZW1lQ2FjaGVbdGhpcy5MYXN0TG9hZGVkVGhlbWVdKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQXBwbGljYSBpbCBsb2NhbGUgc3BlY2lmaWNhdG8gYWxsJ2lzdGFuemEgc3BlY2lmaWNhIGRlbCBncmFmaWNvXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHthbUNoYXJ0cy5DaGFydH0gY2hhcnQgSXN0YW56YSBzcGVjaWZpY2EgZGVsIGdyYWZpY28gYSBjdWkgYXBwbGljYXJlIGlsIGxvY2FsZVxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBsb2NhbGUgTG9jYWxlIGRhIGFwcGxpY2FyZVxyXG4gICAqIEByZXR1cm5zIHtQcm9taXNlfSBQcm9taXNlIGNoZSBpZGVudGlmaWNhIGxhIGZpbmUgZGVsIGNhcmljYW1lbnRvXHJcbiAgICovXHJcbiAgYXBwbHlMb2NhbGUoY2hhcnQ6IGFueSwgbG9jYWxlOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaW1wb3J0SWZOZWVkZWQoJ2xhbmcnLCBsb2NhbGUpLnRoZW4oKCkgPT4ge1xyXG4gICAgICB0aGlzLmxvZyhcIkNoYXJ0IFwiICsgY2hhcnQuaHRtbENvbnRhaW5lci5pZCArIFwiOiBhcHBseWluZyBsb2NhbGUgXCIgKyBsb2NhbGUpO1xyXG4gICAgICBjaGFydC5sYW5ndWFnZS5sb2NhbGUgPSB0aGlzLmxvY2FsaXphdGlvbkNhY2hlW2xvY2FsZV07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBlcm1ldHRlIGRpIGltcG9ydGFyZSwgc2Ugc2VydmUgdW4gZGF0byB0ZW1hIG8gbG9jYWxpenphemlvbmVcclxuICAgKiBcclxuICAgKiBAcGFyYW0geydsYW5nJyB8ICd0aGVtZXMnfSB3aGF0IE9nZ2V0dG8gZGEgaW1wb3J0YXJlLCBzZSBsb2NhbGl6emF6aW9uZSBvIHRlbWFcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gaXRlbSBDaGlhdmUgZGVsbCdvZ2dldHRvIGRhIGltcG9ydGFyZVxyXG4gICAqIFxyXG4gICAqIEByZXR1cm5zIHtQcm9taXNlfSBQcm9taXNlIGNoZSBpZGVudGlmaWNhIGxhIGZpbmUgZGVsIGNhcmljYW1lbnRvXHJcbiAgICovXHJcbiAgaW1wb3J0SWZOZWVkZWQod2hhdDogJ2xhbmcnIHwgJ3RoZW1lcycsIGl0ZW06IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcblxyXG4gICAgLy8gU2Ugc3RvIGNlcmNhbmRvIGRpIGNhcmljYXJlIHF1YWxjb3NhIGRpIGdpw6AgY2FyaWNhdG8gbm9uIGZhY2NpbyBudWxsYVxyXG4gICAgaWYgKCEod2hhdCA9PSAndGhlbWVzJyAmJiAhdGhpcy50aGVtZUNhY2hlW2l0ZW1dKSAmJiAhKHdoYXQgPT0gJ2xhbmcnICYmICF0aGlzLmxvY2FsaXphdGlvbkNhY2hlW2l0ZW1dKSkge1xyXG4gICAgICB0aGlzLmxvZyhcIkNPUkU6IFwiICsgKHdoYXQgPT0gJ2xhbmcnID8gXCJMYW5ndWFnZSBcIiA6IFwiVGhlbWUgXCIpICsgaXRlbSArIFwiIGFscmVhZHkgbG9hZGVkXCIpO1xyXG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSh0cnVlKSB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxvZyhcIkNPUkU6IExvYWRpbmcgXCIgKyAod2hhdCA9PSAnbGFuZycgPyBcImxhbmd1YWdlIFwiIDogXCJ0aGVtZSBcIikgKyBpdGVtKTtcclxuXHJcbiAgICAvKlxyXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKioqKioqKiogQVRURU5aSU9ORSAqKioqKioqKlxyXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgICogXHJcbiAgICAgKiAgU2Ugc3RhaSB2ZWRlbmRvIHF1ZXN0byBjb2RpY2UgZGkgaW1wb3J0IGUgc3RhaSB2YWx1dGFuZG8gZGkgcmlzY3JpdmVybG8gY29tZTpcclxuICAgICAqIFxyXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgViAgICAgICBWICAgXHJcbiAgICAgKiAgICAgIGltcG9ydChgQGFtY2hhcnRzL2FtY2hhcnRzNC8ke3doYXR9LyR7aXRlbX1gKS50aGVuKG1vZHVsZSA9PiB7XHJcbiAgICAgKiAgICAgICAgaWYgKHdoYXQgPT0gJ3RoZW1lcycpIHRoaXMudGhlbWVDYWNoZVtpdGVtXSA9IG1vZHVsZS5kZWZhdWx0O1xyXG4gICAgICogICAgICAgIGVsc2UgaWYgKHdoYXQgPT0gJ2xhbmcnKSB0aGlzLmxvY2FsaXphdGlvbkNhY2hlW2l0ZW1dID0gbW9kdWxlLmRlZmF1bHQ7XHJcbiAgICAgKiAgICAgIH0pO1xyXG4gICAgICogXHJcbiAgICAgKiAgU2FwcGkgY2hlIMOoIHVuYSBwZXNzaW1hIGlkZWEuIEdsaSBpbXBvcnQgc29ubyB2YWx1dGF0aSBkYSB3ZWJwYWNrIGluIGNvbXBpbGV0aW1lIHBlciBnZW5lcmFyZSBpIGNodW5rLFxyXG4gICAgICogIG1ldHRlcmUgbGEgbmF2aWdhemlvbmUgYWdsaSBpbXBvcnQgY29uIGxhIGNvbmNhdGVuYXppb25lIHZpZW5lIHByZXNvIG1hbGlzc2ltbyBlZCBlc3NlbnppYWxtZW50ZSBkaWNlIGEgd2VicGFja1xyXG4gICAgICogIGRpIHRpcmFyZSBzdSBlIGJ1bmRsYXJlIGwnaW50ZXJhIG5vZGVfbW9kdWxlcy4gRGl2ZXJ0ZW50ZSwgbm8/XHJcbiAgICAgKlxyXG4gICAgICovXHJcblxyXG4gICAgc3dpdGNoICh3aGF0KSB7XHJcbiAgICAgIGNhc2UgJ3RoZW1lcyc6XHJcbiAgICAgICAgc3dpdGNoIChpdGVtKSB7XHJcbiAgICAgICAgICBjYXNlIENoYXJ0VGhlbWVzLnNwaXJpdGVkYXdheTpcclxuICAgICAgICAgICAgcmV0dXJuIGltcG9ydChcIkBhbWNoYXJ0cy9hbWNoYXJ0czQvdGhlbWVzL3NwaXJpdGVkYXdheVwiKS50aGVuKHRoZW1lID0+IHRoaXMudGhlbWVDYWNoZVtpdGVtXSA9IHRoZW1lLmRlZmF1bHQpO1xyXG4gICAgICAgICAgY2FzZSBDaGFydFRoZW1lcy5tb29ucmlzZWtpbmdkb206XHJcbiAgICAgICAgICAgIHJldHVybiBpbXBvcnQoXCJAYW1jaGFydHMvYW1jaGFydHM0L3RoZW1lcy9tb29ucmlzZWtpbmdkb21cIikudGhlbih0aGVtZSA9PiB0aGlzLnRoZW1lQ2FjaGVbaXRlbV0gPSB0aGVtZS5kZWZhdWx0KTtcclxuICAgICAgICAgIGNhc2UgQ2hhcnRUaGVtZXMuZnJvemVuOlxyXG4gICAgICAgICAgICByZXR1cm4gaW1wb3J0KFwiQGFtY2hhcnRzL2FtY2hhcnRzNC90aGVtZXMvZnJvemVuXCIpLnRoZW4odGhlbWUgPT4gdGhpcy50aGVtZUNhY2hlW2l0ZW1dID0gdGhlbWUuZGVmYXVsdCk7XHJcbiAgICAgICAgICBjYXNlIENoYXJ0VGhlbWVzLmRhcms6XHJcbiAgICAgICAgICAgIHJldHVybiBpbXBvcnQoXCJAYW1jaGFydHMvYW1jaGFydHM0L3RoZW1lcy9kYXJrXCIpLnRoZW4odGhlbWUgPT4gdGhpcy50aGVtZUNhY2hlW2l0ZW1dID0gdGhlbWUuZGVmYXVsdCk7XHJcbiAgICAgICAgICBjYXNlIENoYXJ0VGhlbWVzLmtlbGx5OlxyXG4gICAgICAgICAgICByZXR1cm4gaW1wb3J0KFwiQGFtY2hhcnRzL2FtY2hhcnRzNC90aGVtZXMva2VsbHlcIikudGhlbih0aGVtZSA9PiB0aGlzLnRoZW1lQ2FjaGVbaXRlbV0gPSB0aGVtZS5kZWZhdWx0KTtcclxuICAgICAgICAgIGNhc2UgQ2hhcnRUaGVtZXMubWF0ZXJpYWw6XHJcbiAgICAgICAgICAgIHJldHVybiBpbXBvcnQoXCJAYW1jaGFydHMvYW1jaGFydHM0L3RoZW1lcy9tYXRlcmlhbFwiKS50aGVuKHRoZW1lID0+IHRoaXMudGhlbWVDYWNoZVtpdGVtXSA9IHRoZW1lLmRlZmF1bHQpO1xyXG4gICAgICAgICAgY2FzZSBDaGFydFRoZW1lcy5kYXRhdml6OlxyXG4gICAgICAgICAgICByZXR1cm4gaW1wb3J0KFwiQGFtY2hhcnRzL2FtY2hhcnRzNC90aGVtZXMvZGF0YXZpelwiKS50aGVuKHRoZW1lID0+IHRoaXMudGhlbWVDYWNoZVtpdGVtXSA9IHRoZW1lLmRlZmF1bHQpO1xyXG4gICAgICAgICAgY2FzZSBDaGFydFRoZW1lcy5hbmltYXRlZDpcclxuICAgICAgICAgICAgcmV0dXJuIGltcG9ydChcIkBhbWNoYXJ0cy9hbWNoYXJ0czQvdGhlbWVzL2FuaW1hdGVkXCIpLnRoZW4odGhlbWUgPT4gdGhpcy50aGVtZUNhY2hlW2l0ZW1dID0gdGhlbWUuZGVmYXVsdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdsYW5nJzpcclxuICAgICAgICBzd2l0Y2ggKGl0ZW0pIHtcclxuICAgICAgICAgIGNhc2UgJ2l0LUlUJzpcclxuICAgICAgICAgICAgcmV0dXJuIGltcG9ydChcIkBhbWNoYXJ0cy9hbWNoYXJ0czQvbGFuZy9pdF9JVFwiKS50aGVuKGxhbmcgPT4gdGhpcy5sb2NhbGl6YXRpb25DYWNoZVtpdGVtXSA9IGxhbmcuZGVmYXVsdCk7XHJcbiAgICAgICAgICBjYXNlICdlbi1VUyc6XHJcbiAgICAgICAgICAgIHJldHVybiBpbXBvcnQoXCJAYW1jaGFydHMvYW1jaGFydHM0L2xhbmcvZW5fVVNcIikudGhlbihsYW5nID0+IHRoaXMubG9jYWxpemF0aW9uQ2FjaGVbaXRlbV0gPSBsYW5nLmRlZmF1bHQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxvZyhcIkNPUkU6IExvYWRpbmcgRmFpbGVkLiBcIiArICh3aGF0ID09ICdsYW5nJyA/IFwiTGFuZ3VhZ2UgXCIgOiBcIlRoZW1lXCIpICsgXCIgbm90IHJlY29nbml6ZWQ6IFwiICsgaXRlbSk7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSh0cnVlKSB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBsb2codGV4dDogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5sb2dzKVxyXG4gICAgICBjb25zb2xlLmxvZyhcIkBlc2ZhZW56YS9lcy1jaGFydHM6IFwiICsgdGV4dCk7XHJcbiAgfVxyXG59Il19
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhcnRMb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy1jaGFydHMvc3JjL2xpYi9tb2RlbHMvY29yZS9DaGFydExvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUV4RDs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUVILE1BQU0sT0FBTyxXQUFXO0lBc0J0Qjs7T0FFRztJQUNILFlBQXNDLElBQWE7UUFBYixTQUFJLEdBQUosSUFBSSxDQUFTO1FBdkJuRDs7V0FFRztRQUNLLHdCQUFtQixHQUFZLEtBQUssQ0FBQztRQUU3Qzs7V0FFRztRQUNLLG9CQUFlLEdBQVcsRUFBRSxDQUFDO1FBRXJDOztXQUVHO1FBQ0ssZUFBVSxHQUFPLEVBQUUsQ0FBQztRQUU1Qjs7V0FFRztRQUNLLHNCQUFpQixHQUFPLEVBQUUsQ0FBQztJQUtvQixDQUFDO0lBRXhEOzs7OztPQUtHO0lBQ0ksZUFBZSxDQUFDLFVBQWU7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM3QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNuRSxJQUFJLENBQUMsR0FBRyxDQUFDLHVCQUF1QixHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDekQsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxD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Q0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHLENBQUMsSUFBWTtRQUNkLElBQUksSUFBSSxDQUFDLElBQUk7WUFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7O3dHQXZNVSxXQUFXLGtCQXlCRixRQUFROzRHQXpCakIsV0FBVyxjQURFLGNBQWM7MkZBQzNCLFdBQVc7a0JBRHZCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFOzswQkEwQjNCLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDaGFydFRoZW1lcyB9IGZyb20gJy4vQ2hhcnRUaGVtZXMnXHJcbmltcG9ydCB7IEVTQ19MT0dTIH0gZnJvbSAnLi4vLi4vdG9rZW5zJztcclxuaW1wb3J0IHsgRXNDaGFydHNNb2R1bGUgfSBmcm9tICcuLi8uLi9lcy1jaGFydHMubW9kdWxlJztcclxuXHJcbi8qKlxyXG4gKiBDbGFzc2UgZGkgc3VwcG9ydG8gYWwgY2FyaWNhbWVudG8gZGluYW1pY28gZGVpIHZhcmkgcGV6emkgZGkgYW1jaGFydHMgY2hlIG1pIHNlcnZvbm8gcGVyIGlsIGdyYWZpY28gKHRlbWksIGxvY2FsaSwgZWNjLi4uKVxyXG4gKiBcclxuICogRXNzZW56aWFsbWVudGUgb2duaSB2b2x0YSBjaGUgdmllbmUgY3JlYXRvIHVuIGdyYWZpY28sIHF1ZXN0byBhY3F1aXNpc2NlIGlsIHRlbWEgZSBpbCBsb2NhbGUgYXBwbGljYXRvIElOIFFVRUwgTU9NRU5UTyxcclxuICogcXVlc3RvIHNpZ25pZmljYSBjaGUgcGVyIGNyZWFyZSBkdWUgZ3JhZmljaSBjb24gdGVtaSBkaXZlcnNpIGJpc29nbmEgZmFyZTpcclxuICogXHJcbiAqIDEpIENhcmljYW1lbnRvIHRlbWEgMVxyXG4gKiBcclxuICogMikgQ3JlYXppb25lIGdyYWZpY28gMVxyXG4gKiBcclxuICogMykgU2NhcmljYW1lbnRvIHRlbWEgMVxyXG4gKiBcclxuICogMykgQ2FyaWNhbWVudG8gdGVtYSAyXHJcbiAqIFxyXG4gKiA0KSBDcmVhemlvbmUgZ3JhZmljbyAyXHJcbiAqIFxyXG4gKi9cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiBFc0NoYXJ0c01vZHVsZSB9KVxyXG5leHBvcnQgY2xhc3MgQ2hhcnRMb2FkZXIge1xyXG5cclxuICAvKipcclxuICAgKiBJbmRpY2Egc2UgYXR0dWFsbWVudGUgaG8gbGUgYW5pbWF6aW9uaSBjYXJpY2F0ZSBpbiBtb2RvIGRhIG5vbiByaWNhcmljYXJsZSBpbnV0aWxtZW50ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgQW5pbWF0aW9uc0FyZUxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBJbmRpY2EgbCd1bHRpbW8gdGVtYSBjYXJpY2F0byBpbiBtb2RvIGRhIG5vbiByaWNhcmljYXJsbyBpbnV0aWxtZW50ZSBxdWFsb3JhIGlsIHByb3NzaW1vIGdyYWZpY28gZGEgY3JlYXJlIHJpY2hpZWRhIGxvIHN0ZXNzbyB0ZW1hXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBMYXN0TG9hZGVkVGhlbWU6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIC8qKlxyXG4gICAqIENhY2hlIGRlaSB0ZW1pIChtb2R1bGkgY2FyaWNhdGkgZGluYW1pY2FtZW50ZSlcclxuICAgKi9cclxuICBwcml2YXRlIHRoZW1lQ2FjaGU6IHt9ID0ge307XHJcblxyXG4gIC8qKlxyXG4gICAqIENhY2hlIGRlbGxlIGxvY2FsaXp6YXppb25pIChtb2R1bGkgY2FyaWNhdGkgZGluYW1pY2FtZW50ZSlcclxuICAgKi9cclxuICBwcml2YXRlIGxvY2FsaXphdGlvbkNhY2hlOiB7fSA9IHt9O1xyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoQEluamVjdChFU0NfTE9HUykgcHJpdmF0ZSBsb2dzOiBib29sZWFuKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogQXBwbGljYSBpbCB0ZW1hIGNvbiBsZSBhbmltYXppb25pIGFsbCdpc3RhbnphIGdsb2JhbGUgZGkgYW1DaGFydHNcclxuICAgKiBcclxuICAgKiBAcGFyYW0ge09iamVjdH0gY2hhcnRzQ29yZSBJc3RhbnphIGdsb2JhbGUgZGkgYW1DaGFydHNcclxuICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gUHJvbWlzZSBjaGUgaWRlbnRpZmljYSBsYSBmaW5lIGRlbCBjYXJpY2FtZW50b1xyXG4gICAqL1xyXG4gIHB1YmxpYyBhcHBseUFuaW1hdGlvbnMoY2hhcnRzQ29yZTogYW55KTogUHJvbWlzZTxhbnk+IHtcclxuICAgIGlmICghdGhpcy5BbmltYXRpb25zQXJlTG9hZGVkKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmltcG9ydElmTmVlZGVkKCd0aGVtZXMnLCBDaGFydFRoZW1lcy5hbmltYXRlZCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2coXCJDT1JFOiBBcHBseWluZyB0aGVtZSBcIiArIENoYXJ0VGhlbWVzLmFuaW1hdGVkKTtcclxuICAgICAgICBjaGFydHNDb3JlLnVzZVRoZW1lKHRoaXMudGhlbWVDYWNoZVtDaGFydFRoZW1lcy5hbmltYXRlZF0pO1xyXG4gICAgICAgIHRoaXMuQW5pbWF0aW9uc0FyZUxvYWRlZCA9IHRydWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMubG9nKFwiQ09SRTogdGhlbWUgYWxyZWFkeSBhcHBseWVkIFwiICsgQ2hhcnRUaGVtZXMuYW5pbWF0ZWQpO1xyXG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSh0cnVlKSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlLWFwcGxpY2EgaWwgdGVtYSBjb24gbGUgYW5pbWF6aW9uaSBkYWxsJ2lzdGFuemEgZ2xvYmFsZSBkaSBhbUNoYXJ0c1xyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjaGFydHNDb3JlIElzdGFuemEgZ2xvYmFsZSBkaSBhbUNoYXJ0c1xyXG4gICAqIEByZXR1cm5zIHtQcm9taXNlfSBQcm9taXNlIGNoZSBpZGVudGlmaWNhIGxhIGZpbmUgZGVsbG8gc2Nhcmljb1xyXG4gICAqL1xyXG4gIHVuYXBwbHlBbmltYXRpb25zKGNoYXJ0c0NvcmU6IGFueSk6IFByb21pc2U8YW55PiB7XHJcbiAgICBpZiAodGhpcy5BbmltYXRpb25zQXJlTG9hZGVkKSB7XHJcbiAgICAgIHRoaXMubG9nKFwiQ09SRTogQW5pbWF0aW9ucyBpbiB1c2UsIHVuYXBwbHlpbmcgdGhlbWUgXCIgKyBDaGFydFRoZW1lcy5hbmltYXRlZCk7XHJcbiAgICAgIGNoYXJ0c0NvcmUudW51c2VUaGVtZSh0aGlzLnRoZW1lQ2FjaGVbQ2hhcnRUaGVtZXMuYW5pbWF0ZWRdKTtcclxuICAgICAgdGhpcy5BbmltYXRpb25zQXJlTG9hZGVkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMubG9nKFwiQ09SRTogQW5pbWF0aW9ucyBhbHJlYWR5IHVudXNlZCwgbm8gbmVlZCB0byB1bmFwcGx5IHRoZW1cIik7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSh0cnVlKSB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFwcGxpY2EgaWwgdGVtYSBzcGVjaWZpY2F0byBhbGwnaXN0YW56YSBnbG9iYWxlIGRpIGFtQ2hhcnRzXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IGNoYXJ0c0NvcmUgSXN0YW56YSBnbG9iYWxlIGRpIGFtQ2hhcnRzXHJcbiAgICogQHBhcmFtIHsnc3Bpcml0ZWRhd2F5JyB8ICdtb29ucmlzZWtpbmdkb20nIHwgJ2Zyb3plbicgfCAnZGFyaycgfCAna2VsbHknIHwgJ21hdGVyaWFsJyB8ICdkYXRhdml6JyB8ICdub25lJ30gdGhlbWUgVGVtYSBkYSBhcHBsaWNhcmVcclxuICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gUHJvbWlzZSBjaGUgaWRlbnRpZmljYSBsYSBmaW5lIGRlbCBjYXJpY2FtZW50b1xyXG4gICAqL1xyXG4gIGFwcGx5VGhlbWUoY2hhcnRzQ29yZTogYW55LCB0aGVtZTogJ3NwaXJpdGVkYXdheScgfCAnbW9vbnJpc2VraW5nZG9tJyB8ICdmcm96ZW4nIHwgJ2RhcmsnIHwgJ2tlbGx5JyB8ICdtYXRlcmlhbCcgfCAnZGF0YXZpeicgfCAnbm9uZScpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgLy8gVWx0aW1vIHRlbWEgYXBwbGljYXRvIMOoIGxvIHN0ZXNzbyBjaGUgbWkgw6ggc3RhdG8gcmljaGllc3RvIGRpIGFwcGxpY2FyZSAtLT4gTk8tT1BcclxuICAgIGlmICh0aGlzLkxhc3RMb2FkZWRUaGVtZSA9PSB0aGVtZSkge1xyXG4gICAgICB0aGlzLmxvZyhcIkNPUkU6IHRoZW1lIGFscmVhZHkgYXBwbGllZCBcIiArIHRoZW1lKTtcclxuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUodHJ1ZSkgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU2NhcmljbyBpbCB0ZW1hIHByZWNlZGVudGUgYSBwcmVzY2luZGVyZSwgb3JtYWkgbm9uIG1pIHNlcnZlIHBpw7lcclxuICAgIHRoaXMudW5hcHBseVByZXZpb3VzVGhlbWUoY2hhcnRzQ29yZSlcclxuXHJcbiAgICAvLyBJbCB0ZW1hIMOoIGlsIG5vbmUgLS0+IHJlZ2lzdHJvIGxhIGNvc2EgZSBiYXN0YSwgaWwgdGVtYSBwcmVjZWRlbnRlIMOoIHN0YXRvIHJpbW9zc28gc3ViaXRvIHF1aSBzb3ByYSBeXHJcbiAgICBpZiAodGhlbWUgPT0gQ2hhcnRUaGVtZXMubm9uZSkge1xyXG4gICAgICB0aGlzLkxhc3RMb2FkZWRUaGVtZSA9IENoYXJ0VGhlbWVzLm5vbmU7XHJcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKHRydWUpIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIElsIHRlbWEgw6ggZGl2ZXJzbyBkYWwgcHJlY2VkZW50ZSBlIG5vbiDDqCBpbCB0ZW1hIHZ1b3RvIC0tPiBJbXBvcnRvIGlsIHRlbWEgc3BlY2lmaWNhdG8gc2Ugbm9uIHByZXNlbnRlIGluIG1lbW9yaWEgZSBsbyBhcHBsaWNvIGFsIGdyYWZpY28gYXR0dWFsZVxyXG4gICAgcmV0dXJuIHRoaXMuaW1wb3J0SWZOZWVkZWQoJ3RoZW1lcycsIHRoZW1lKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5sb2coXCJDT1JFOiBBcHBseWluZyB0aGVtZSBcIiArIHRoZW1lKTtcclxuICAgICAgY2hhcnRzQ29yZS51c2VUaGVtZSh0aGlzLnRoZW1lQ2FjaGVbdGhlbWVdKTtcclxuICAgICAgdGhpcy5MYXN0TG9hZGVkVGhlbWUgPSB0aGVtZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGUtYXBwbGljYSBpbCB0ZW1hIHByZWNlZGVudGUgZGFsbCdpc3RhbnphIGdsb2JhbGUgZGkgYW1DaGFydHNcclxuICAgKiBcclxuICAgKiBAcGFyYW0ge09iamVjdH0gY2hhcnRzQ29yZSBJc3RhbnphIGdsb2JhbGUgZGkgYW1DaGFydHNcclxuICAgKi9cclxuICB1bmFwcGx5UHJldmlvdXNUaGVtZShjaGFydHNDb3JlOiBhbnkpIHtcclxuICAgIGlmICghdGhpcy5MYXN0TG9hZGVkVGhlbWUgfHwgdGhpcy5MYXN0TG9hZGVkVGhlbWUgPT0gQ2hhcnRUaGVtZXMubm9uZSlcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMubG9nKFwiQ09SRTogVW5hcHBseWluZyBwcmV2aW91c2x5IHVzZWQgdGhlbWUgXCIgKyB0aGlzLkxhc3RMb2FkZWRUaGVtZSk7XHJcbiAgICBjaGFydHNDb3JlLnVudXNlVGhlbWUodGhpcy50aGVtZUNhY2hlW3RoaXMuTGFzdExvYWRlZFRoZW1lXSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFwcGxpY2EgaWwgbG9jYWxlIHNwZWNpZmljYXRvIGFsbCdpc3RhbnphIHNwZWNpZmljYSBkZWwgZ3JhZmljb1xyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7YW1DaGFydHMuQ2hhcnR9IGNoYXJ0IElzdGFuemEgc3BlY2lmaWNhIGRlbCBncmFmaWNvIGEgY3VpIGFwcGxpY2FyZSBpbCBsb2NhbGVcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gbG9jYWxlIExvY2FsZSBkYSBhcHBsaWNhcmVcclxuICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gUHJvbWlzZSBjaGUgaWRlbnRpZmljYSBsYSBmaW5lIGRlbCBjYXJpY2FtZW50b1xyXG4gICAqL1xyXG4gIGFwcGx5TG9jYWxlKGNoYXJ0OiBhbnksIGxvY2FsZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmltcG9ydElmTmVlZGVkKCdsYW5nJywgbG9jYWxlKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5sb2coXCJDaGFydCBcIiArIGNoYXJ0Lmh0bWxDb250YWluZXIuaWQgKyBcIjogYXBwbHlpbmcgbG9jYWxlIFwiICsgbG9jYWxlKTtcclxuICAgICAgY2hhcnQubGFuZ3VhZ2UubG9jYWxlID0gdGhpcy5sb2NhbGl6YXRpb25DYWNoZVtsb2NhbGVdO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQZXJtZXR0ZSBkaSBpbXBvcnRhcmUsIHNlIHNlcnZlIHVuIGRhdG8gdGVtYSBvIGxvY2FsaXp6YXppb25lXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHsnbGFuZycgfCAndGhlbWVzJ30gd2hhdCBPZ2dldHRvIGRhIGltcG9ydGFyZSwgc2UgbG9jYWxpenphemlvbmUgbyB0ZW1hXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGl0ZW0gQ2hpYXZlIGRlbGwnb2dnZXR0byBkYSBpbXBvcnRhcmVcclxuICAgKiBcclxuICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gUHJvbWlzZSBjaGUgaWRlbnRpZmljYSBsYSBmaW5lIGRlbCBjYXJpY2FtZW50b1xyXG4gICAqL1xyXG4gIGltcG9ydElmTmVlZGVkKHdoYXQ6ICdsYW5nJyB8ICd0aGVtZXMnLCBpdGVtOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG5cclxuICAgIC8vIFNlIHN0byBjZXJjYW5kbyBkaSBjYXJpY2FyZSBxdWFsY29zYSBkaSBnacOgIGNhcmljYXRvIG5vbiBmYWNjaW8gbnVsbGFcclxuICAgIGlmICghKHdoYXQgPT0gJ3RoZW1lcycgJiYgIXRoaXMudGhlbWVDYWNoZVtpdGVtXSkgJiYgISh3aGF0ID09ICdsYW5nJyAmJiAhdGhpcy5sb2NhbGl6YXRpb25DYWNoZVtpdGVtXSkpIHtcclxuICAgICAgdGhpcy5sb2coXCJDT1JFOiBcIiArICh3aGF0ID09ICdsYW5nJyA/IFwiTGFuZ3VhZ2UgXCIgOiBcIlRoZW1lIFwiKSArIGl0ZW0gKyBcIiBhbHJlYWR5IGxvYWRlZFwiKTtcclxuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUodHJ1ZSkgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5sb2coXCJDT1JFOiBMb2FkaW5nIFwiICsgKHdoYXQgPT0gJ2xhbmcnID8gXCJsYW5ndWFnZSBcIiA6IFwidGhlbWUgXCIpICsgaXRlbSk7XHJcblxyXG4gICAgLypcclxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqKioqKioqIEFUVEVOWklPTkUgKioqKioqKipcclxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgICAqIFxyXG4gICAgICogIFNlIHN0YWkgdmVkZW5kbyBxdWVzdG8gY29kaWNlIGRpIGltcG9ydCBlIHN0YWkgdmFsdXRhbmRvIGRpIHJpc2NyaXZlcmxvIGNvbWU6XHJcbiAgICAgKiBcclxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYgICAgICAgViAgIFxyXG4gICAgICogICAgICBpbXBvcnQoYEBhbWNoYXJ0cy9hbWNoYXJ0czQvJHt3aGF0fS8ke2l0ZW19YCkudGhlbihtb2R1bGUgPT4ge1xyXG4gICAgICogICAgICAgIGlmICh3aGF0ID09ICd0aGVtZXMnKSB0aGlzLnRoZW1lQ2FjaGVbaXRlbV0gPSBtb2R1bGUuZGVmYXVsdDtcclxuICAgICAqICAgICAgICBlbHNlIGlmICh3aGF0ID09ICdsYW5nJykgdGhpcy5sb2NhbGl6YXRpb25DYWNoZVtpdGVtXSA9IG1vZHVsZS5kZWZhdWx0O1xyXG4gICAgICogICAgICB9KTtcclxuICAgICAqIFxyXG4gICAgICogIFNhcHBpIGNoZSDDqCB1bmEgcGVzc2ltYSBpZGVhLiBHbGkgaW1wb3J0IHNvbm8gdmFsdXRhdGkgZGEgd2VicGFjayBpbiBjb21waWxldGltZSBwZXIgZ2VuZXJhcmUgaSBjaHVuayxcclxuICAgICAqICBtZXR0ZXJlIGxhIG5hdmlnYXppb25lIGFnbGkgaW1wb3J0IGNvbiBsYSBjb25jYXRlbmF6aW9uZSB2aWVuZSBwcmVzbyBtYWxpc3NpbW8gZWQgZXNzZW56aWFsbWVudGUgZGljZSBhIHdlYnBhY2tcclxuICAgICAqICBkaSB0aXJhcmUgc3UgZSBidW5kbGFyZSBsJ2ludGVyYSBub2RlX21vZHVsZXMuIERpdmVydGVudGUsIG5vP1xyXG4gICAgICpcclxuICAgICAqL1xyXG5cclxuICAgIHN3aXRjaCAod2hhdCkge1xyXG4gICAgICBjYXNlICd0aGVtZXMnOlxyXG4gICAgICAgIHN3aXRjaCAoaXRlbSkge1xyXG4gICAgICAgICAgY2FzZSBDaGFydFRoZW1lcy5zcGlyaXRlZGF3YXk6XHJcbiAgICAgICAgICAgIHJldHVybiBpbXBvcnQoXCJAYW1jaGFydHMvYW1jaGFydHM0L3RoZW1lcy9zcGlyaXRlZGF3YXlcIikudGhlbih0aGVtZSA9PiB0aGlzLnRoZW1lQ2FjaGVbaXRlbV0gPSB0aGVtZS5kZWZhdWx0KTtcclxuICAgICAgICAgIGNhc2UgQ2hhcnRUaGVtZXMubW9vbnJpc2VraW5nZG9tOlxyXG4gICAgICAgICAgICByZXR1cm4gaW1wb3J0KFwiQGFtY2hhcnRzL2FtY2hhcnRzNC90aGVtZXMvbW9vbnJpc2VraW5nZG9tXCIpLnRoZW4odGhlbWUgPT4gdGhpcy50aGVtZUNhY2hlW2l0ZW1dID0gdGhlbWUuZGVmYXVsdCk7XHJcbiAgICAgICAgICBjYXNlIENoYXJ0VGhlbWVzLmZyb3plbjpcclxuICAgICAgICAgICAgcmV0dXJuIGltcG9ydChcIkBhbWNoYXJ0cy9hbWNoYXJ0czQvdGhlbWVzL2Zyb3plblwiKS50aGVuKHRoZW1lID0+IHRoaXMudGhlbWVDYWNoZVtpdGVtXSA9IHRoZW1lLmRlZmF1bHQpO1xyXG4gICAgICAgICAgY2FzZSBDaGFydFRoZW1lcy5kYXJrOlxyXG4gICAgICAgICAgICByZXR1cm4gaW1wb3J0KFwiQGFtY2hhcnRzL2FtY2hhcnRzNC90aGVtZXMvZGFya1wiKS50aGVuKHRoZW1lID0+IHRoaXMudGhlbWVDYWNoZVtpdGVtXSA9IHRoZW1lLmRlZmF1bHQpO1xyXG4gICAgICAgICAgY2FzZSBDaGFydFRoZW1lcy5rZWxseTpcclxuICAgICAgICAgICAgcmV0dXJuIGltcG9ydChcIkBhbWNoYXJ0cy9hbWNoYXJ0czQvdGhlbWVzL2tlbGx5XCIpLnRoZW4odGhlbWUgPT4gdGhpcy50aGVtZUNhY2hlW2l0ZW1dID0gdGhlbWUuZGVmYXVsdCk7XHJcbiAgICAgICAgICBjYXNlIENoYXJ0VGhlbWVzLm1hdGVyaWFsOlxyXG4gICAgICAgICAgICByZXR1cm4gaW1wb3J0KFwiQGFtY2hhcnRzL2FtY2hhcnRzNC90aGVtZXMvbWF0ZXJpYWxcIikudGhlbih0aGVtZSA9PiB0aGlzLnRoZW1lQ2FjaGVbaXRlbV0gPSB0aGVtZS5kZWZhdWx0KTtcclxuICAgICAgICAgIGNhc2UgQ2hhcnRUaGVtZXMuZGF0YXZpejpcclxuICAgICAgICAgICAgcmV0dXJuIGltcG9ydChcIkBhbWNoYXJ0cy9hbWNoYXJ0czQvdGhlbWVzL2RhdGF2aXpcIikudGhlbih0aGVtZSA9PiB0aGlzLnRoZW1lQ2FjaGVbaXRlbV0gPSB0aGVtZS5kZWZhdWx0KTtcclxuICAgICAgICAgIGNhc2UgQ2hhcnRUaGVtZXMuYW5pbWF0ZWQ6XHJcbiAgICAgICAgICAgIHJldHVybiBpbXBvcnQoXCJAYW1jaGFydHMvYW1jaGFydHM0L3RoZW1lcy9hbmltYXRlZFwiKS50aGVuKHRoZW1lID0+IHRoaXMudGhlbWVDYWNoZVtpdGVtXSA9IHRoZW1lLmRlZmF1bHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbGFuZyc6XHJcbiAgICAgICAgc3dpdGNoIChpdGVtKSB7XHJcbiAgICAgICAgICBjYXNlICdpdC1JVCc6XHJcbiAgICAgICAgICAgIHJldHVybiBpbXBvcnQoXCJAYW1jaGFydHMvYW1jaGFydHM0L2xhbmcvaXRfSVRcIikudGhlbihsYW5nID0+IHRoaXMubG9jYWxpemF0aW9uQ2FjaGVbaXRlbV0gPSBsYW5nLmRlZmF1bHQpO1xyXG4gICAgICAgICAgY2FzZSAnZW4tVVMnOlxyXG4gICAgICAgICAgICByZXR1cm4gaW1wb3J0KFwiQGFtY2hhcnRzL2FtY2hhcnRzNC9sYW5nL2VuX1VTXCIpLnRoZW4obGFuZyA9PiB0aGlzLmxvY2FsaXphdGlvbkNhY2hlW2l0ZW1dID0gbGFuZy5kZWZhdWx0KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5sb2coXCJDT1JFOiBMb2FkaW5nIEZhaWxlZC4gXCIgKyAod2hhdCA9PSAnbGFuZycgPyBcIkxhbmd1YWdlIFwiIDogXCJUaGVtZVwiKSArIFwiIG5vdCByZWNvZ25pemVkOiBcIiArIGl0ZW0pO1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUodHJ1ZSkgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgbG9nKHRleHQ6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMubG9ncylcclxuICAgICAgY29uc29sZS5sb2coXCJAZXNmYWVuemEvZXMtY2hhcnRzOiBcIiArIHRleHQpO1xyXG4gIH1cclxufSJdfQ==