@datorama/core 22.2.6 → 22.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle.scss +22 -0
- package/bundles/datorama-core.umd.js +139 -118
- package/bundles/datorama-core.umd.js.map +1 -1
- package/bundles/datorama-core.umd.min.js +18 -18
- package/bundles/datorama-core.umd.min.js.map +1 -1
- package/datorama-core.metadata.json +1 -1
- package/esm2015/lib/accordion/accordion/accordion.component.js +11 -3
- package/esm2015/lib/date-picker/date-picker-container/date-picker-container.component.js +5 -5
- package/esm2015/lib/grid-v2/grid-controller/grid-controller.component.js +1 -1
- package/esm2015/lib/grid-v2/grid-filter/grid-filter.component.js +1 -1
- package/esm2015/lib/grid-v2/grid-filter/grid-filter.types.js +1 -1
- package/esm2015/lib/grid-v2/grid-pagination/grid-pagination.component.js +2 -2
- package/esm2015/lib/grid-v2/grid-store/grid.service.js +2 -2
- package/esm2015/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +1 -1
- package/esm2015/lib/icon/icon.types.js +1 -1
- package/esm2015/lib/select/select.component.js +12 -7
- package/esm2015/lib/sortable/sortable.component.js +7 -2
- package/esm2015/lib/version.js +2 -2
- package/esm5/lib/accordion/accordion/accordion.component.js +15 -3
- package/esm5/lib/date-picker/date-picker-container/date-picker-container.component.js +5 -5
- package/esm5/lib/grid-v2/grid-controller/grid-controller.component.js +1 -1
- package/esm5/lib/grid-v2/grid-filter/grid-filter.component.js +1 -1
- package/esm5/lib/grid-v2/grid-filter/grid-filter.types.js +1 -1
- package/esm5/lib/grid-v2/grid-pagination/grid-pagination.component.js +2 -2
- package/esm5/lib/grid-v2/grid-store/grid.service.js +2 -2
- package/esm5/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +1 -1
- package/esm5/lib/icon/icon.types.js +1 -1
- package/esm5/lib/select/select.component.js +13 -7
- package/esm5/lib/sortable/sortable.component.js +7 -2
- package/esm5/lib/version.js +2 -2
- package/fesm2015/datorama-core.js +128 -112
- package/fesm2015/datorama-core.js.map +1 -1
- package/fesm5/datorama-core.js +139 -118
- package/fesm5/datorama-core.js.map +1 -1
- package/i18n/locale-en_US.json +2 -0
- package/lib/accordion/accordion/accordion.component.d.ts +4 -1
- package/lib/date-picker/date-picker-container/date-picker-container.component.d.ts +1 -1
- package/lib/icon/icon.types.d.ts +1 -1
- package/lib/select/select.component.d.ts +1 -0
- package/lib/sortable/sortable.component.d.ts +3 -1
- package/package.json +1 -1
|
@@ -468,4 +468,4 @@ var DatoGridV2ToolbarComponent = /** @class */ (function () {
|
|
|
468
468
|
return DatoGridV2ToolbarComponent;
|
|
469
469
|
}());
|
|
470
470
|
export { DatoGridV2ToolbarComponent };
|
|
471
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2dyaWQtdjIvZ3JpZC10b29sYmFyL2dyaWQtdG9vbGJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOztBQUVILE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsY0FBYyxFQUdmLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXhELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFD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QUF1QixDQUFDLE1BQU07O1NBQ2hELENBQUM7eUNBZ0V5QiwyQkFBMkI7WUFDckMsaUJBQWlCO1lBQ1gsb0JBQW9CO1lBQ3RCLFdBQVc7WUFDVCxTQUFTO1lBQ1AsV0FBVztPQXBFdkIsMEJBQTBCLENBdVl0QztJQUFELGlDQUFDO0NBQUEsQUF2WUQsSUF1WUM7U0F2WVksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IERhdG9yYW1hLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIEFwYWNoZSBMaWNlbnNlIDIuMCBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRvcmFtYS9jbGllbnQtY29yZS9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBpc0Rldk1vZGUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCYXNlVG9vbGJhckFjdGlvbixcbiAgR3JpZEFjdGlvbixcbiAgR3JpZEFjdGlvblR5cGUsXG4gIEdyaWRSb3dBY3Rpb25zU2NyZWVuVGhyZXNob2xkLFxuICBSb3dBY3Rpb25cbn0gZnJvbSAnLi9ncmlkLXRvb2xiYXIudHlwZXMnO1xuaW1wb3J0IHsgRGF0b0dyaWRDb250cm9sbGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZ3JpZC1jb250cm9sbGVyL2dyaWQtY29udHJvbGxlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgdW50aWxEZXN0cm95ZWQgfSBmcm9tICduZ3gtdGFrZS11bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IFByb2Nlc3NDZWxsRm9yRXhwb3J0UGFyYW1zLCBSb3dHcm91cE9wZW5lZEV2ZW50LCBSb3dOb2RlIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvdmFsaWRhdG9ycyc7XG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGF0b1BvcG92ZXIgfSBmcm9tICcuLi8uLi9wb3BvdmVyL3BvcG92ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRvR3JpZEdyb3Vwc01lbnVDb21wb25lbnQgfSBmcm9tICcuLi9ncmlkLWdyb3Vwcy1tZW51L2dyaWQtZ3JvdXBzLW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IEdyaWRRdWVyeSB9IGZyb20gJy4uL2dyaWQtc3RvcmUvZ3JpZC5xdWVyeSc7XG5pbXBvcnQgeyBnZXRWaXNpYmxlQWN0aW9ucyB9IGZyb20gJy4uL2dyaWQtdjIudXRpbCc7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBERUZBVUxUX0ZPUk1BVCB9IGZyb20gJy4uLy4uL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLnR5cGVzJztcbmltcG9ydCB7IERhdG9HcmlkQ29sdW1uRGlzcGxheU1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9ncmlkLWNvbHVtbnMtZGlzcGxheS1tZW51L2dyaWQtY29sdW1ucy1kaXNwbGF5LW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IEdyaWRTZXJ2aWNlIH0gZnJvbSAnLi4vZ3JpZC1zdG9yZS9ncmlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29yZUV2ZW50VHlwZXMgfSBmcm9tICcuLi8uLi9ldmVudC1sb2dnZXInO1xuaW1wb3J0IHsgRGF0b1RyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBzaXplIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29sbGVjdGlvbic7XG5pbXBvcnQgeyBHcmlkUm93c1NlbGVjdGlvbkRhdGEgfSBmcm9tICcuLi9ncmlkL2dyaWQtdjIudHlwZXMnO1xuXG50eXBlIFRhYmxlQWN0aW9uID1cbiAgfCAnQXV0b2ZpdCB0byBDb250ZW50J1xuICB8ICdBdXRvZml0IHRvIFBhZ2UnXG4gIHwgJ1Nob3cgSGlkZSBDb2x1bW4nXG4gIHwgJ1Jlc2V0IFNldHRpbmdzJ1xuICB8ICdSZXNldCBGaWx0ZXJzJ1xuICB8ICdHcm91cCBmcm9tIFNldHRpbmdzJ1xuICB8ICdHcm91cCBmcm9tIFRvb2xiYXInXG4gIHwgJ0V4cG9ydCdcbiAgfCAnQ29sbGFwc2UgRXhwYW5kJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGF0by1ncmlkLXRvb2xiYXItdjInLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3JpZC10b29sYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERhdG9HcmlkVjJUb29sYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IE1BWF9WSVNJQkxFX1JPV19BQ1RJT05TID0gNTtcbiAgcHJpdmF0ZSByZWFkb25seSBNQVhfVklTSUJMRV9HUklEX0FDVElPTlMgPSAyO1xuICBwcml2YXRlIF9tYXhSb3dBY3Rpb25zID0gdGhpcy5NQVhfVklTSUJMRV9ST1dfQUNUSU9OUztcblxuICBAVmlld0NoaWxkKCdncm91cFRyaWdnZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgZ3JvdXBUcmlnZ2VyOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdzZXR0aW5nc1RyaWdnZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgc2V0dGluZ3NUcmlnZ2VyOiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgpIGRpc3BsYXlFeHBvcnQgPSB0cnVlO1xuICBjcmVhdGVBY3Rpb246IEdyaWRBY3Rpb247XG4gIHJvd0FjdGlvbnM6IHsgbWFpbkxpc3Q6IFJvd0FjdGlvbltdOyBtb3JlTWVudTogUm93QWN0aW9uW10gfSA9IHsgbWFpbkxpc3Q6IFtdLCBtb3JlTWVudTogW10gfTtcbiAgZ3JpZEFjdGlvbnM6IHsgbWFpbkxpc3Q6IEdyaWRBY3Rpb25bXTsgbW9yZU1lbnU6IEdyaWRBY3Rpb25bXSB9ID0geyBtYWluTGlzdDogW10sIG1vcmVNZW51OiBbXSB9O1xuXG4gIEBJbnB1dCgpIHNldCBtYXhSb3dBY3Rpb25zKG1heFJvd0FjdGlvbnM6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmVuYWJsZVYyXzEpIHtcbiAgICAgIHRoaXMuX21heFJvd0FjdGlvbnMgPSBNYXRoLm1pbihtYXhSb3dBY3Rpb25zLCB0aGlzLk1BWF9WSVNJQkxFX1JPV19BQ1RJT05TKTtcbiAgICAgIGlmIChtYXhSb3dBY3Rpb25zID4gdGhpcy5NQVhfVklTSUJMRV9ST1dfQUNUSU9OUyAmJiBpc0Rldk1vZGUoKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oYERhdG9HcmlkIFYyLjEgLSBtYXhSb3dBY3Rpb25zIGNhbm5vdCBiZSBvdmVyICR7dGhpcy5NQVhfVklTSUJMRV9ST1dfQUNUSU9OU31gKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbWF4Um93QWN0aW9ucyA9IG1heFJvd0FjdGlvbnM7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCkgaGlkZUdyb3VwaW5nOiBib29sZWFuO1xuICBASW5wdXQoKSBzZWFyY2hQbGFjZWhvbGRlciA9IHRoaXMudHJhbnNsYXRlLnRyYW5zZm9ybSgnY29yZS5zZWFyY2gnKTtcbiAgQElucHV0KCkgcm93QWN0aW9uc1Nob3J0TGFiZWxUaHJlc2hvbGQ6IEdyaWRSb3dBY3Rpb25zU2NyZWVuVGhyZXNob2xkID0gMTUzOTtcbiAgQElucHV0KCkgZGlzcGxheUN1c3RvbUdyaWRBY3Rpb25zU2VwYXJhdG9yID0gdHJ1ZTtcblxuICBvcGVuTWVudXMgPSB7XG4gICAgZ3JvdXA6IGZhbHNlLFxuICAgIHNldHRpbmdzOiBmYWxzZVxuICB9O1xuICByb3dHcm91cHNDb2xsYXBzZWQgPSBmYWxzZTtcbiAgZ3JvdXBzQWxsb3dlZCA9ICF0aGlzLmhpZGVHcm91cGluZztcbiAgaXNTZWxlY3RlZFJvdyA9IGZhbHNlO1xuICBpc1RyZWVNb2RlOiBib29sZWFuID0gdGhpcy5ncmlkU2VydmljZS50cmVlRGF0YTtcbiAgdG90YWxSb3dzQ291bnQgPSAwO1xuICBzZWxlY3RlZFJvd3NDb3VudCA9IDA7XG4gIGFsbFBhZ2VSb3dzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgd2lkdGhUb0hpZGVBY3Rpb25zTGFiZWxzOiBHcmlkUm93QWN0aW9uc1NjcmVlblRocmVzaG9sZCA9IDE0Mzk7XG5cbiAgZ2V0IGVuYWJsZVYyXzEoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ3JpZENvbnRyb2xsZXIuZ3JpZE9wdGlvbnMuZW5hYmxlVjJfMTtcbiAgfVxuXG4gIGdldCBlbmFibGVTZWFyY2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ3JpZENvbnRyb2xsZXIuZ3JpZE9wdGlvbnMuZW5hYmxlU2VhcmNoO1xuICB9XG5cbiAgZ2V0IGVuYWJsZUJhY2tncm91bmQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ3JpZENvbnRyb2xsZXIuZ3JpZE9wdGlvbnMuZW5hYmxlQmFja2dyb3VuZDtcbiAgfVxuXG4gIGdldCBpc1Jvd0FjdGlvbnNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5lbmFibGVWMl8xIHx8ICh0aGlzLmVuYWJsZVYyXzEgJiYgdGhpcy5pc1NlbGVjdGVkUm93KTtcbiAgfVxuXG4gIGdldCBoYXNSb3dBY3Rpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzaXplKHRoaXMucm93QWN0aW9ucy5tYWluTGlzdCkgPiAwIHx8IHNpemUodGhpcy5yb3dBY3Rpb25zLm1vcmVNZW51KSA+IDA7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZ3JpZENvbnRyb2xsZXI6IERhdG9HcmlkQ29udHJvbGxlckNvbXBvbmVudCxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IERhdG9UcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcG9wb3ZlcjogRGF0b1BvcG92ZXIsXG4gICAgcHJpdmF0ZSBncmlkUXVlcnk6IEdyaWRRdWVyeSxcbiAgICBwcml2YXRlIGdyaWRTZXJ2aWNlOiBHcmlkU2VydmljZVxuICApIHt9XG5cbiAgZ2V0IGhpZGRlbkNvbHVtbnMoKSB7XG4gICAgcmV0dXJuIGAoJHt0aGlzLmdyaWRRdWVyeS5nZXRBbGxEaXNwbGF5ZWRDb2x1bW5zKCkubGVuZ3RofS8ke3RoaXMuZ3JpZFF1ZXJ5LmdldEFsbENvbHVtbnMoKS5sZW5ndGh9KWA7XG4gIH1cblxuICBnZXQgaGFzQWN0aXZlTW9yZUFjdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMucm93QWN0aW9ucy5tb3JlTWVudS5zb21lKCh7IHZpc2libGUgfSkgPT4gdmlzaWJsZSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBhcGkoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JpZENvbnRyb2xsZXIuZ3JpZFF1ZXJ5LmFwaTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGRhdGFDaGFuZ2VzID0gdGhpcy5ncmlkQ29udHJvbGxlci5ncmlkUXVlcnkud2FpdEZvckdyaWQoKCkgPT5cbiAgICAgIG1lcmdlKHRoaXMuZ3JpZFF1ZXJ5LmdyaWRSZWYuY2VsbFZhbHVlQ2hhbmdlZCwgdGhpcy5ncmlkUXVlcnkuZ3JpZFJlZi5yb3dEYXRhVXBkYXRlZCkucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDEwMCksXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApXG4gICAgKTtcbiAgICBjb25zdCBncmlkSW5pdCA9IHRoaXMuZ3JpZFF1ZXJ5LmdyaWRSZWFkeSQucGlwZSh0YWtlKDEpKTtcbiAgICBncmlkSW5pdC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5ncm91cHNBbGxvd2VkID0gIXRoaXMuaGlkZUdyb3VwaW5nICYmICF0aGlzLmdyaWRRdWVyeS5nZXRWYWx1ZSgpLnNlcnZlclNpZGVQYWdpbmF0aW9uLmVuYWJsZWQ7XG4gICAgfSk7XG4gICAgdGhpcy5pbml0R3JpZEFjdGlvbnMoKTtcbiAgICBjb25zdCBzZWxlY3RlZFJvd3NDaGFuZ2VkJCA9IHRoaXMuZ3JpZFF1ZXJ5LnNlbGVjdGVkUm93c0NoYW5nZSQ7XG4gICAgY29uc3QgaXNTZWxlY3RBbGxSb3dzQ2hhbmdlZCQgPSB0aGlzLmdyaWRRdWVyeS5zZWxlY3RJc1NlbGVjdEFsbFJvd3NFbmFibGVkKCk7XG4gICAgbWVyZ2UoZGF0YUNoYW5nZXMsIGdyaWRJbml0LCBzZWxlY3RlZFJvd3NDaGFuZ2VkJCwgaXNTZWxlY3RBbGxSb3dzQ2hhbmdlZCQpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+ICEhdGhpcy5hcGkpLFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucmVzb2x2ZVZpc2libGVBY3Rpb25zKCk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICAgIHRoaXMucmVnaXN0ZXJHcm91cExpc3RlbmVycygpO1xuXG4gICAgdGhpcy5zdWJzY3JpYmVSb3dzU2VsZWN0aW9uRGF0YSgpO1xuICB9XG5cbiAgb25BY3Rpb25DbGljayhhY3Rpb246IEJhc2VUb29sYmFyQWN0aW9uKSB7XG4gICAgaWYgKGlzRnVuY3Rpb24oYWN0aW9uLm9uQ2xpY2spKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZFJvd3NDb3VudCA9IHRoaXMuZ3JpZENvbnRyb2xsZXIuZ3JpZFF1ZXJ5LmdldFNlbGVjdGVkUm93c0NvdW50KCk7XG4gICAgICB0aGlzLmdyaWRTZXJ2aWNlLl9sb2dFdmVudChDb3JlRXZlbnRUeXBlcy5HUklEX1RBQkxFX0FDVElPTiwge1xuICAgICAgICBhY3Rpb246IGFjdGlvbi5rZXksXG4gICAgICAgIG51bU9mSXRlbXM6IHNlbGVjdGVkUm93c0NvdW50LFxuICAgICAgICBmcm9tOiAnVG9vbGJhcidcbiAgICAgIH0pO1xuICAgICAgaWYgKHRoaXMuZ3JpZFF1ZXJ5LmlzU2VydmVyU2VsZWN0QWxsUm93c0VuYWJsZWQpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0QWxsRmlsdGVyID0gdGhpcy5ncmlkU2VydmljZS5nZXRGaWx0ZXJGb3JTZXJ2ZXJBY3Rpb25PblNlbGVjdEFsbCgpO1xuICAgICAgICBhY3Rpb24ub25DbGljayhudWxsLCB0cnVlLCBzZWxlY3RBbGxGaWx0ZXIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmdyaWRDb250cm9sbGVyLmdyaWRRdWVyeS5nZXRTZWxlY3RlZFJvd05vZGVzKCk7XG4gICAgICAgIGFjdGlvbi5vbkNsaWNrKHNlbGVjdGVkKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKChhY3Rpb24gYXMgR3JpZEFjdGlvbikuYWN0aW9uVHlwZSA9PT0gR3JpZEFjdGlvblR5cGUuRVhQT1JUKSB7XG4gICAgICB0aGlzLmV4ZWN1dGVUYWJsZUFjdGlvbignRXhwb3J0Jyk7XG4gICAgfVxuICB9XG5cbiAgcmVzb2x2ZVZpc2libGVBY3Rpb25zKCkge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5ncmlkUXVlcnkuZ2V0U2VsZWN0ZWRSb3dOb2RlcygpO1xuICAgIHRoaXMuaXNTZWxlY3RlZFJvdyA9IHNlbGVjdGVkLmxlbmd0aCA+IDAgfHwgdGhpcy5ncmlkUXVlcnkuaXNTZXJ2ZXJTZWxlY3RBbGxSb3dzRW5hYmxlZDtcbiAgICBjb25zdCB2aXNpYmxlQWN0aW9ucyA9IGdldFZpc2libGVBY3Rpb25zKFxuICAgICAgdGhpcy5ncmlkQ29udHJvbGxlci5yb3dBY3Rpb25zLFxuICAgICAgdGhpcy5ncmlkUXVlcnkuZ2V0U2VsZWN0ZWRSb3dzQ291bnQoKSxcbiAgICAgIHNlbGVjdGVkLFxuICAgICAgdGhpcy5ncmlkUXVlcnkuaXNTZXJ2ZXJTZWxlY3RBbGxSb3dzRW5hYmxlZFxuICAgICkuZmlsdGVyKChhY3Rpb246IFJvd0FjdGlvbikgPT4gIXRoaXMuaXNSb3dBY3Rpb25IaWRkZW4oYWN0aW9uKSk7XG4gICAgdGhpcy5yb3dBY3Rpb25zID0ge1xuICAgICAgbWFpbkxpc3Q6IHZpc2libGVBY3Rpb25zLnNsaWNlKDAsIHRoaXMuX21heFJvd0FjdGlvbnMpLFxuICAgICAgbW9yZU1lbnU6IHZpc2libGVBY3Rpb25zLnNsaWNlKHRoaXMuX21heFJvd0FjdGlvbnMsIHZpc2libGVBY3Rpb25zLmxlbmd0aClcbiAgICB9O1xuICAgIHRoaXMuaW5pdFdpZHRoVG9IaWRlQWN0aW9uc0xhYmVscygpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0V2lkdGhUb0hpZGVBY3Rpb25zTGFiZWxzKCkge1xuICAgIGNvbnN0IHZpc2libGVBY3Rpb25zQ291bnQgPVxuICAgICAgdGhpcy5yb3dBY3Rpb25zLm1haW5MaXN0Lmxlbmd0aCArXG4gICAgICAodGhpcy5yb3dBY3Rpb25zLm1vcmVNZW51Lmxlbmd0aCA+IDAgPyAxIDogMCkgK1xuICAgICAgKHRoaXMuZ3JpZEFjdGlvbnMubW9yZU1lbnUubGVuZ3RoID4gMCA/IDEgOiAwKSArXG4gICAgICAodGhpcy5jcmVhdGVBY3Rpb24gPyAxIDogMCk7XG5cbiAgICBjb25zdCB3aW5kb3dXaWR0aFRocmVzaG9sZHM6IEdyaWRSb3dBY3Rpb25zU2NyZWVuVGhyZXNob2xkW10gPSBbMTIzOSwgMTMzOSwgMTQzOSwgMTUzOV07XG4gICAgdGhpcy53aWR0aFRvSGlkZUFjdGlvbnNMYWJlbHMgPVxuICAgICAgd2luZG93V2lkdGhUaHJlc2hvbGRzW01hdGgubWluKE1hdGgubWF4KHZpc2libGVBY3Rpb25zQ291bnQgLSA1LCAwKSwgd2luZG93V2lkdGhUaHJlc2hvbGRzLmxlbmd0aCAtIDEpXTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEdyaWRBY3Rpb25zKCkge1xuICAgIGNvbnN0IGdyaWRBY3Rpb25zID0gdGhpcy5ncmlkQ29udHJvbGxlci5ncmlkQWN0aW9ucztcbiAgICB0aGlzLmluaXRDcmVhdGVBY3Rpb24oZ3JpZEFjdGlvbnMpO1xuICAgIHRoaXMuaW5pdEV4cG9ydEFjdGlvbihncmlkQWN0aW9ucyk7XG4gICAgbGV0IG1heFZpc2libGVBY3Rpb25zID0gdGhpcy5NQVhfVklTSUJMRV9HUklEX0FDVElPTlMgLSAodGhpcy5kaXNwbGF5RXhwb3J0ID8gMSA6IDApO1xuICAgIGlmIChzaXplKGdyaWRBY3Rpb25zKSA9PT0gbWF4VmlzaWJsZUFjdGlvbnMgKyAxKSB7XG4gICAgICBtYXhWaXNpYmxlQWN0aW9ucysrO1xuICAgIH1cbiAgICB0aGlzLmdyaWRBY3Rpb25zID0ge1xuICAgICAgbWFpbkxpc3Q6IGdyaWRBY3Rpb25zLnNsaWNlKDAsIG1heFZpc2libGVBY3Rpb25zKSxcbiAgICAgIG1vcmVNZW51OiBncmlkQWN0aW9ucy5zbGljZShtYXhWaXNpYmxlQWN0aW9ucywgZ3JpZEFjdGlvbnMubGVuZ3RoKVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGluaXRDcmVhdGVBY3Rpb24oZ3JpZEFjdGlvbnM6IEdyaWRBY3Rpb25bXSkge1xuICAgIGNvbnN0IGNyZWF0ZUFjdGlvbkluZGV4ID0gZ3JpZEFjdGlvbnMuZmluZEluZGV4KCh7IGFjdGlvblR5cGUgfSkgPT4gYWN0aW9uVHlwZSA9PT0gR3JpZEFjdGlvblR5cGUuQ1JFQVRFKTtcbiAgICB0aGlzLmNyZWF0ZUFjdGlvbiA9IGNyZWF0ZUFjdGlvbkluZGV4ID49IDAgPyBncmlkQWN0aW9ucy5zcGxpY2UoY3JlYXRlQWN0aW9uSW5kZXgsIDEpWzBdIDogbnVsbDtcbiAgICBpZiAodGhpcy5jcmVhdGVBY3Rpb24pIHtcbiAgICAgIHRoaXMuY3JlYXRlQWN0aW9uLmxhYmVsID0gdGhpcy5jcmVhdGVBY3Rpb24ubGFiZWwgfHwgJ2NvcmUuY3JlYXRlLW5ldyc7XG4gICAgICB0aGlzLmNyZWF0ZUFjdGlvbi5rZXkgPSB0aGlzLmNyZWF0ZUFjdGlvbi5rZXkgfHwgJ2NyZWF0ZS1uZXcnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdEV4cG9ydEFjdGlvbihncmlkQWN0aW9uczogR3JpZEFjdGlvbltdKSB7XG4gICAgY29uc3QgZXhwb3J0QWN0aW9uID0gZ3JpZEFjdGlvbnMuZmluZCgoeyBhY3Rpb25UeXBlIH0pID0+IGFjdGlvblR5cGUgPT09IEdyaWRBY3Rpb25UeXBlLkVYUE9SVCk7XG4gICAgaWYgKGV4cG9ydEFjdGlvbikge1xuICAgICAgY29uc3QgeyBvbkNsaWNrLCBpY29uLCBsYWJlbCwgdG9vbHRpcCwga2V5IH0gPSBleHBvcnRBY3Rpb247XG4gICAgICBleHBvcnRBY3Rpb24ub25DbGljayA9IG9uQ2xpY2sgfHwgKCgpID0+IHRoaXMuZXhlY3V0ZVRhYmxlQWN0aW9uKCdFeHBvcnQnKSk7XG4gICAgICBleHBvcnRBY3Rpb24uaWNvbiA9IGljb24gfHwgJ2V4cG9ydCc7XG4gICAgICBleHBvcnRBY3Rpb24ubGFiZWwgPSBsYWJlbCB8fCAnY29yZS5leHBvcnQtdGFibGUnO1xuICAgICAgZXhwb3J0QWN0aW9uLnRvb2x0aXAgPSB0b29sdGlwIHx8ICdjb3JlLmV4cG9ydC10YWJsZSc7XG4gICAgICBleHBvcnRBY3Rpb24ua2V5ID0ga2V5IHx8ICdleHBvcnQnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogQHBhcmFtIGFjdGlvblxuICAgKi9cbiAgZXhlY3V0ZVRhYmxlQWN0aW9uKGFjdGlvbjogVGFibGVBY3Rpb24pIHtcbiAgICB0aGlzLmdyaWRTZXJ2aWNlLl9sb2dFdmVudChDb3JlRXZlbnRUeXBlcy5HUklEX0dFTkVSQUxfVEFCTEVfQUNUSU9OLCB7IGFjdGlvbiB9KTtcbiAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgY2FzZSAnQXV0b2ZpdCB0byBDb250ZW50JzpcbiAgICAgICAgdGhpcy5ncmlkU2VydmljZS5maXRHcmlkKCdjb250ZW50Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXV0b2ZpdCB0byBQYWdlJzpcbiAgICAgICAgdGhpcy5ncmlkU2VydmljZS5maXRHcmlkKCdjb250YWluZXInKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdDb2xsYXBzZSBFeHBhbmQnOlxuICAgICAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRXhwb3J0JzpcbiAgICAgICAgdGhpcy5leHBvcnRUYWJsZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0dyb3VwIGZyb20gU2V0dGluZ3MnOlxuICAgICAgY2FzZSAnR3JvdXAgZnJvbSBUb29sYmFyJzpcbiAgICAgICAgdGhpcy5vcGVuR3JvdXBNZW51KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUmVzZXQgRmlsdGVycyc6XG4gICAgICAgIHRoaXMucmVzZXRGaWx0ZXJzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUmVzZXQgU2V0dGluZ3MnOlxuICAgICAgICB0aGlzLnJlc2V0U2V0dGluZ3MoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdTaG93IEhpZGUgQ29sdW1uJzpcbiAgICAgICAgdGhpcy5vcGVuQ29sdW1uTWVudSgpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICB0b2dnbGVFeHBhbmRlZCgpIHtcbiAgICB0aGlzLnJvd0dyb3Vwc0NvbGxhcHNlZCA/IHRoaXMuYXBpLmdyaWQuZXhwYW5kQWxsKCkgOiB0aGlzLmFwaS5ncmlkLmNvbGxhcHNlQWxsKCk7XG4gICAgdGhpcy5yb3dHcm91cHNDb2xsYXBzZWQgPSAhdGhpcy5yb3dHcm91cHNDb2xsYXBzZWQ7XG4gIH1cblxuICBnZXQgaGFzR3JvdXBzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFwaS5jb2x1bW5zLmdldFJvd0dyb3VwQ29sdW1ucygpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBleHBvcnRUYWJsZSgpIHtcbiAgICBjb25zdCB7IGdyaWROYW1lLCBleHBvcnRHcmlkIH0gPSB0aGlzLmdyaWRDb250cm9sbGVyLmdyaWRPcHRpb25zO1xuICAgIGlmIChpc0Z1bmN0aW9uKGV4cG9ydEdyaWQpKSB7XG4gICAgICBleHBvcnRHcmlkKHsgLi4udGhpcy5hcGksIC4uLnRoaXMuZ3JpZFF1ZXJ5LmdldFZhbHVlKCkuc2V0dGluZ3MgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRvZGF5ID0gZm9ybWF0KG5ldyBEYXRlKCksIERFRkFVTFRfRk9STUFUKTtcbiAgICAgIHRoaXMuYXBpLmdyaWQuZXhwb3J0RGF0YUFzRXhjZWwoe1xuICAgICAgICBmaWxlTmFtZTogYCR7Z3JpZE5hbWV9IC0gJHt0b2RheX1gLFxuICAgICAgICBwcm9jZXNzQ2VsbENhbGxiYWNrOiAoeyBjb2x1bW4sIHZhbHVlIH06IFByb2Nlc3NDZWxsRm9yRXhwb3J0UGFyYW1zKSA9PiB7XG4gICAgICAgICAgY29uc3QgZm9ybWF0dGVyID0gY29sdW1uLmdldENvbERlZigpLnZhbHVlRm9ybWF0dGVyO1xuICAgICAgICAgIC8vIFRPRE86IGZvbGxvd3VwOiBodHRwczovL2FnLWdyaWQuemVuZGVzay5jb20vaGMvZW4tdXMvcmVxdWVzdHMvMTA5NjM/cGFnZT0xXG4gICAgICAgICAgcmV0dXJuIGZvcm1hdHRlciA/IGZvcm1hdHRlcih7IHZhbHVlIH0gYXMgYW55KSA6IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXNldFNldHRpbmdzKCkge1xuICAgIHRoaXMuZ3JpZENvbnRyb2xsZXIuZ3JpZFNlcnZpY2UucmVzZXRUYWJsZVNldHRpbmdzKCk7XG4gIH1cblxuICBvcGVuQ29sdW1uTWVudSgpIHtcbiAgICB0aGlzLnBvcG92ZXIub3BlbihEYXRvR3JpZENvbHVtbkRpc3BsYXlNZW51Q29tcG9uZW50LCB0aGlzLnNldHRpbmdzVHJpZ2dlci5uYXRpdmVFbGVtZW50LCB7XG4gICAgICB3aWR0aDogMjIwLFxuICAgICAgY2xhc3NOYW1lOiAnZGF0by1ncmlkLWNvbHVtbnMtZGlzcGxheS1tZW51JyxcbiAgICAgIHBvcHBlcjogeyBwbGFjZW1lbnQ6ICdib3R0b20tZW5kJyB9LFxuICAgICAgZGF0YToge1xuICAgICAgICBhcGk6IHRoaXMuYXBpLFxuICAgICAgICBncmlkU2VydmljZTogdGhpcy5ncmlkU2VydmljZSxcbiAgICAgICAgZ3JpZFF1ZXJ5OiB0aGlzLmdyaWRRdWVyeVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmVzZXRGaWx0ZXJzKCkge1xuICAgIHRoaXMuZ3JpZENvbnRyb2xsZXIuZ3JpZFNlcnZpY2UuY2xlYXJBbGxGaWx0ZXJzKCk7XG4gIH1cblxuICBvcGVuR3JvdXBNZW51KCkge1xuICAgIHRoaXMub3Blbk1lbnVzLmdyb3VwID0gdHJ1ZTtcbiAgICBjb25zdCB3YWl0Rm9yQW5pbWF0aW9uID0gdGhpcy5oYXNHcm91cHMgPyAwIDogMjAwO1xuICAgIC8qKiBXaGVuIGNoYW5naW5nIHRoZSB0YWJsZXMgZ3JvdXBpbmcgYWxsIHRoZSByb3dzIGFyZSBhdXRvbWF0aWNhbGx5IGV4cGFuZGVkLCB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgaWNvbiBzdGF0ZSAqL1xuICAgIGNvbnN0IGV4cGFuZFN1YnNjcmlwdGlvbiA9IHRoaXMuZ3JpZFF1ZXJ5LmdyaWRSZWYuY29sdW1uUm93R3JvdXBDaGFuZ2VkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgdW50aWxEZXN0cm95ZWQodGhpcylcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnJvd0dyb3Vwc0NvbGxhcHNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucG9wb3ZlclxuICAgICAgICAub3BlbihEYXRvR3JpZEdyb3Vwc01lbnVDb21wb25lbnQsIHRoaXMuZ3JvdXBUcmlnZ2VyLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgICAgICBoZWlnaHQ6IDIwNixcbiAgICAgICAgICB3aWR0aDogMjUwLFxuICAgICAgICAgIGNsYXNzTmFtZTogJ2RhdG8tZ3JpZC1ncm91cHMtbWVudScsXG4gICAgICAgICAgcG9wcGVyOiB7IHBsYWNlbWVudDogJ2JvdHRvbS1lbmQnIH0sXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgYXBpOiB0aGlzLmFwaSxcbiAgICAgICAgICAgIGdyaWRTZXJ2aWNlOiB0aGlzLmdyaWRTZXJ2aWNlXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgZXhwYW5kU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgdGhpcy5vcGVuTWVudXMuZ3JvdXAgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH0sIHdhaXRGb3JBbmltYXRpb24pO1xuICB9XG5cbiAgaXNBY3Rpb25EaXNhYmxlZChyb3dBY3Rpb246IFJvd0FjdGlvbikge1xuICAgIHJldHVybiAhcm93QWN0aW9uLnZpc2libGU7XG4gIH1cblxuICBpc1Jvd0FjdGlvbkhpZGRlbihyb3dBY3Rpb246IFJvd0FjdGlvbikge1xuICAgIHJldHVybiAhcm93QWN0aW9uLnZpc2libGUgJiYgdGhpcy5lbmFibGVWMl8xO1xuICB9XG5cbiAgY2xlYXJTZWxlY3RlZFJvd3MoKSB7XG4gICAgdGhpcy5ncmlkU2VydmljZS5kZXNlbGVjdEFsbFJvd3MoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge31cblxuICBwcml2YXRlIGdldENvbGxhcHNlU3RhdGUoeyBub2RlLCBhcGkgfTogUm93R3JvdXBPcGVuZWRFdmVudCk6IGJvb2xlYW4ge1xuICAgIGxldCBjb2xsYXBzZWQgPSB0cnVlO1xuICAgIGlmIChub2RlLnJvd0dyb3VwSW5kZXggPT09IDApIHtcbiAgICAgIGFwaS5mb3JFYWNoTm9kZUFmdGVyRmlsdGVyQW5kU29ydCgoeyBleHBhbmRlZCwgcm93R3JvdXBJbmRleCB9OiBSb3dOb2RlKSA9PiB7XG4gICAgICAgIGlmIChyb3dHcm91cEluZGV4ID09PSAwICYmIGV4cGFuZGVkKSB7XG4gICAgICAgICAgY29sbGFwc2VkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gY29sbGFwc2VkO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3Rlckdyb3VwTGlzdGVuZXJzKCkge1xuICAgIC8qKiBMaXN0ZW4gdG8gYWRkaW5nIG9yIHJlbW92aW5nIHJvdyBncm91cHMgZnJvbSB0aGUgY29sdW1ucyBhbmQgbm90IHRoZSBncm91cHMgbWVudSAqL1xuICAgIHRoaXMuZ3JpZFF1ZXJ5XG4gICAgICAud2FpdEZvckdyaWQoKCkgPT4gdGhpcy5ncmlkUXVlcnkuZ3JpZFJlZi5jb2x1bW5Sb3dHcm91cENoYW5nZWQpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+ICF0aGlzLm9wZW5NZW51cy5ncm91cCksXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5yb3dHcm91cHNDb2xsYXBzZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSk7XG4gICAgLyoqIExpc3RlbiB0byByb3cgY29sbGFwc2Ugc3RhdGUgdG8gdXBkYXRlIHRoZSBpY29uICovXG4gICAgdGhpcy5ncmlkUXVlcnlcbiAgICAgIC53YWl0Rm9yR3JpZCgoKSA9PiB0aGlzLmdyaWRRdWVyeS5ncmlkUmVmLnJvd0dyb3VwT3BlbmVkKVxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKChldmVudDogUm93R3JvdXBPcGVuZWRFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBjb2xsYXBzZWQgPSB0aGlzLmdldENvbGxhcHNlU3RhdGUoZXZlbnQpO1xuICAgICAgICBpZiAoY29sbGFwc2VkICE9PSB0aGlzLnJvd0dyb3Vwc0NvbGxhcHNlZCkge1xuICAgICAgICAgIHRoaXMucm93R3JvdXBzQ29sbGFwc2VkID0gY29sbGFwc2VkO1xuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZVJvd3NTZWxlY3Rpb25EYXRhKCkge1xuICAgIHRoaXMuZ3JpZFF1ZXJ5LnJvd3NTZWxlY3Rpb25EYXRhJFxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAoe1xuICAgICAgICAgIHRvdGFsUm93c0NvdW50LFxuICAgICAgICAgIHNlbGVjdGVkUm93c0NvdW50LFxuICAgICAgICAgIHNlbGVjdGVkUGFnZVJvd3NDb3VudCxcbiAgICAgICAgICBpc0FsbFBhZ2VSb3dzU2VsZWN0ZWRcbiAgICAgICAgfTogR3JpZFJvd3NTZWxlY3Rpb25EYXRhKSA9PiB7XG4gICAgICAgICAgdGhpcy50b3RhbFJvd3NDb3VudCA9IHRvdGFsUm93c0NvdW50O1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzQ291bnQgPSBzZWxlY3RlZFJvd3NDb3VudDtcbiAgICAgICAgICBjb25zdCB7IGVuYWJsZUFsbFBhZ2VzU2VsZWN0aW9uIH0gPSB0aGlzLmdyaWRRdWVyeS5nZXRHcmlkT3B0aW9ucygpO1xuICAgICAgICAgIHRoaXMuYWxsUGFnZVJvd3NTZWxlY3RlZCA9XG4gICAgICAgICAgICBlbmFibGVBbGxQYWdlc1NlbGVjdGlvbiAmJlxuICAgICAgICAgICAgaXNBbGxQYWdlUm93c1NlbGVjdGVkICYmXG4gICAgICAgICAgICBzZWxlY3RlZFJvd3NDb3VudCA9PT0gc2VsZWN0ZWRQYWdlUm93c0NvdW50ICYmXG4gICAgICAgICAgICBzZWxlY3RlZFJvd3NDb3VudCA8IHRvdGFsUm93c0NvdW50O1xuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHNlbGVjdEFsbFBhZ2VzKCkge1xuICAgIGlmICh0aGlzLmdyaWRRdWVyeS5pc1NlcnZlclNpZGUpIHtcbiAgICAgIHRoaXMuZ3JpZFNlcnZpY2Uuc2V0U2VydmVyU2lkZVBhZ2luYXRpb24oeyBzZWxlY3RBbGxSb3dzRW5hYmxlZDogdHJ1ZSwgZXhjbHVkZWRGcm9tU2VsZWN0QWxsOiBbXSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ncmlkU2VydmljZS5hcGkuZ3JpZC5zZWxlY3RBbGxGaWx0ZXJlZCgpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
471
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2dyaWQtdjIvZ3JpZC10b29sYmFyL2dyaWQtdG9vbGJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOztBQUVILE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsY0FBYyxFQUdmLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXhELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFD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QUF1QixDQUFDLE1BQU07O1NBQ2hELENBQUM7eUNBZ0V5QiwyQkFBMkI7WUFDckMsaUJBQWlCO1lBQ1gsb0JBQW9CO1lBQ3RCLFdBQVc7WUFDVCxTQUFTO1lBQ1AsV0FBVztPQXBFdkIsMEJBQTBCLENBb1l0QztJQUFELGlDQUFDO0NBQUEsQUFwWUQsSUFvWUM7U0FwWVksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IERhdG9yYW1hLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIEFwYWNoZSBMaWNlbnNlIDIuMCBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRvcmFtYS9jbGllbnQtY29yZS9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBpc0Rldk1vZGUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCYXNlVG9vbGJhckFjdGlvbixcbiAgR3JpZEFjdGlvbixcbiAgR3JpZEFjdGlvblR5cGUsXG4gIEdyaWRSb3dBY3Rpb25zU2NyZWVuVGhyZXNob2xkLFxuICBSb3dBY3Rpb25cbn0gZnJvbSAnLi9ncmlkLXRvb2xiYXIudHlwZXMnO1xuaW1wb3J0IHsgRGF0b0dyaWRDb250cm9sbGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZ3JpZC1jb250cm9sbGVyL2dyaWQtY29udHJvbGxlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgdW50aWxEZXN0cm95ZWQgfSBmcm9tICduZ3gtdGFrZS11bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IFByb2Nlc3NDZWxsRm9yRXhwb3J0UGFyYW1zLCBSb3dHcm91cE9wZW5lZEV2ZW50LCBSb3dOb2RlIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvdmFsaWRhdG9ycyc7XG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGF0b1BvcG92ZXIgfSBmcm9tICcuLi8uLi9wb3BvdmVyL3BvcG92ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRvR3JpZEdyb3Vwc01lbnVDb21wb25lbnQgfSBmcm9tICcuLi9ncmlkLWdyb3Vwcy1tZW51L2dyaWQtZ3JvdXBzLW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IEdyaWRRdWVyeSB9IGZyb20gJy4uL2dyaWQtc3RvcmUvZ3JpZC5xdWVyeSc7XG5pbXBvcnQgeyBnZXRWaXNpYmxlQWN0aW9ucyB9IGZyb20gJy4uL2dyaWQtdjIudXRpbCc7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBERUZBVUxUX0ZPUk1BVCB9IGZyb20gJy4uLy4uL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLnR5cGVzJztcbmltcG9ydCB7IERhdG9HcmlkQ29sdW1uRGlzcGxheU1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9ncmlkLWNvbHVtbnMtZGlzcGxheS1tZW51L2dyaWQtY29sdW1ucy1kaXNwbGF5LW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IEdyaWRTZXJ2aWNlIH0gZnJvbSAnLi4vZ3JpZC1zdG9yZS9ncmlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29yZUV2ZW50VHlwZXMgfSBmcm9tICcuLi8uLi9ldmVudC1sb2dnZXInO1xuaW1wb3J0IHsgRGF0b1RyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBzaXplIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29sbGVjdGlvbic7XG5pbXBvcnQgeyBHcmlkUm93c1NlbGVjdGlvbkRhdGEgfSBmcm9tICcuLi9ncmlkL2dyaWQtdjIudHlwZXMnO1xuXG50eXBlIFRhYmxlQWN0aW9uID1cbiAgfCAnQXV0b2ZpdCB0byBDb250ZW50J1xuICB8ICdBdXRvZml0IHRvIFBhZ2UnXG4gIHwgJ1Nob3cgSGlkZSBDb2x1bW4nXG4gIHwgJ1Jlc2V0IFNldHRpbmdzJ1xuICB8ICdSZXNldCBGaWx0ZXJzJ1xuICB8ICdHcm91cCBmcm9tIFNldHRpbmdzJ1xuICB8ICdHcm91cCBmcm9tIFRvb2xiYXInXG4gIHwgJ0V4cG9ydCdcbiAgfCAnQ29sbGFwc2UgRXhwYW5kJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGF0by1ncmlkLXRvb2xiYXItdjInLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3JpZC10b29sYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERhdG9HcmlkVjJUb29sYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IE1BWF9WSVNJQkxFX1JPV19BQ1RJT05TID0gNTtcbiAgcHJpdmF0ZSByZWFkb25seSBNQVhfVklTSUJMRV9HUklEX0FDVElPTlMgPSAyO1xuICBwcml2YXRlIF9tYXhSb3dBY3Rpb25zID0gdGhpcy5NQVhfVklTSUJMRV9ST1dfQUNUSU9OUztcblxuICBAVmlld0NoaWxkKCdncm91cFRyaWdnZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgZ3JvdXBUcmlnZ2VyOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdzZXR0aW5nc1RyaWdnZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgc2V0dGluZ3NUcmlnZ2VyOiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgpIGRpc3BsYXlFeHBvcnQgPSB0cnVlO1xuICBjcmVhdGVBY3Rpb246IEdyaWRBY3Rpb247XG4gIHJvd0FjdGlvbnM6IHsgbWFpbkxpc3Q6IFJvd0FjdGlvbltdOyBtb3JlTWVudTogUm93QWN0aW9uW10gfSA9IHsgbWFpbkxpc3Q6IFtdLCBtb3JlTWVudTogW10gfTtcbiAgZ3JpZEFjdGlvbnM6IHsgbWFpbkxpc3Q6IEdyaWRBY3Rpb25bXTsgbW9yZU1lbnU6IEdyaWRBY3Rpb25bXSB9ID0geyBtYWluTGlzdDogW10sIG1vcmVNZW51OiBbXSB9O1xuXG4gIEBJbnB1dCgpIHNldCBtYXhSb3dBY3Rpb25zKG1heFJvd0FjdGlvbnM6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmVuYWJsZVYyXzEpIHtcbiAgICAgIHRoaXMuX21heFJvd0FjdGlvbnMgPSBNYXRoLm1pbihtYXhSb3dBY3Rpb25zLCB0aGlzLk1BWF9WSVNJQkxFX1JPV19BQ1RJT05TKTtcbiAgICAgIGlmIChtYXhSb3dBY3Rpb25zID4gdGhpcy5NQVhfVklTSUJMRV9ST1dfQUNUSU9OUyAmJiBpc0Rldk1vZGUoKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oYERhdG9HcmlkIFYyLjEgLSBtYXhSb3dBY3Rpb25zIGNhbm5vdCBiZSBvdmVyICR7dGhpcy5NQVhfVklTSUJMRV9ST1dfQUNUSU9OU31gKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbWF4Um93QWN0aW9ucyA9IG1heFJvd0FjdGlvbnM7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCkgaGlkZUdyb3VwaW5nOiBib29sZWFuO1xuICBASW5wdXQoKSBzZWFyY2hQbGFjZWhvbGRlciA9IHRoaXMudHJhbnNsYXRlLnRyYW5zZm9ybSgnY29yZS5zZWFyY2gnKTtcbiAgQElucHV0KCkgcm93QWN0aW9uc1Nob3J0TGFiZWxUaHJlc2hvbGQ6IEdyaWRSb3dBY3Rpb25zU2NyZWVuVGhyZXNob2xkID0gMTUzOTtcbiAgQElucHV0KCkgZGlzcGxheUN1c3RvbUdyaWRBY3Rpb25zU2VwYXJhdG9yID0gdHJ1ZTtcblxuICBvcGVuTWVudXMgPSB7XG4gICAgZ3JvdXA6IGZhbHNlLFxuICAgIHNldHRpbmdzOiBmYWxzZVxuICB9O1xuICByb3dHcm91cHNDb2xsYXBzZWQgPSBmYWxzZTtcbiAgZ3JvdXBzQWxsb3dlZCA9ICF0aGlzLmhpZGVHcm91cGluZztcbiAgaXNTZWxlY3RlZFJvdyA9IGZhbHNlO1xuICBpc1RyZWVNb2RlOiBib29sZWFuID0gdGhpcy5ncmlkU2VydmljZS50cmVlRGF0YTtcbiAgdG90YWxSb3dzQ291bnQgPSAwO1xuICBzZWxlY3RlZFJvd3NDb3VudCA9IDA7XG4gIGFsbFBhZ2VSb3dzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgd2lkdGhUb0hpZGVBY3Rpb25zTGFiZWxzOiBHcmlkUm93QWN0aW9uc1NjcmVlblRocmVzaG9sZCA9IDE0Mzk7XG5cbiAgZ2V0IGVuYWJsZVYyXzEoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ3JpZENvbnRyb2xsZXIuZ3JpZE9wdGlvbnMuZW5hYmxlVjJfMTtcbiAgfVxuXG4gIGdldCBlbmFibGVTZWFyY2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ3JpZENvbnRyb2xsZXIuZ3JpZE9wdGlvbnMuZW5hYmxlU2VhcmNoO1xuICB9XG5cbiAgZ2V0IGVuYWJsZUJhY2tncm91bmQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ3JpZENvbnRyb2xsZXIuZ3JpZE9wdGlvbnMuZW5hYmxlQmFja2dyb3VuZDtcbiAgfVxuXG4gIGdldCBpc1Jvd0FjdGlvbnNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5lbmFibGVWMl8xIHx8ICh0aGlzLmVuYWJsZVYyXzEgJiYgdGhpcy5pc1NlbGVjdGVkUm93KTtcbiAgfVxuXG4gIGdldCBoYXNSb3dBY3Rpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzaXplKHRoaXMucm93QWN0aW9ucy5tYWluTGlzdCkgPiAwIHx8IHNpemUodGhpcy5yb3dBY3Rpb25zLm1vcmVNZW51KSA+IDA7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZ3JpZENvbnRyb2xsZXI6IERhdG9HcmlkQ29udHJvbGxlckNvbXBvbmVudCxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IERhdG9UcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcG9wb3ZlcjogRGF0b1BvcG92ZXIsXG4gICAgcHJpdmF0ZSBncmlkUXVlcnk6IEdyaWRRdWVyeSxcbiAgICBwcml2YXRlIGdyaWRTZXJ2aWNlOiBHcmlkU2VydmljZVxuICApIHt9XG5cbiAgZ2V0IGhpZGRlbkNvbHVtbnMoKSB7XG4gICAgcmV0dXJuIGAoJHt0aGlzLmdyaWRRdWVyeS5nZXRBbGxEaXNwbGF5ZWRDb2x1bW5zKCkubGVuZ3RofS8ke3RoaXMuZ3JpZFF1ZXJ5LmdldEFsbENvbHVtbnMoKS5sZW5ndGh9KWA7XG4gIH1cblxuICBnZXQgaGFzQWN0aXZlTW9yZUFjdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMucm93QWN0aW9ucy5tb3JlTWVudS5zb21lKCh7IHZpc2libGUgfSkgPT4gdmlzaWJsZSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBhcGkoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JpZENvbnRyb2xsZXIuZ3JpZFF1ZXJ5LmFwaTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGRhdGFDaGFuZ2VzID0gdGhpcy5ncmlkQ29udHJvbGxlci5ncmlkUXVlcnkud2FpdEZvckdyaWQoKCkgPT5cbiAgICAgIG1lcmdlKHRoaXMuZ3JpZFF1ZXJ5LmdyaWRSZWYuY2VsbFZhbHVlQ2hhbmdlZCwgdGhpcy5ncmlkUXVlcnkuZ3JpZFJlZi5yb3dEYXRhVXBkYXRlZCkucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDEwMCksXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApXG4gICAgKTtcbiAgICBjb25zdCBncmlkSW5pdCA9IHRoaXMuZ3JpZFF1ZXJ5LmdyaWRSZWFkeSQucGlwZSh0YWtlKDEpKTtcbiAgICBncmlkSW5pdC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5ncm91cHNBbGxvd2VkID0gIXRoaXMuaGlkZUdyb3VwaW5nICYmICF0aGlzLmdyaWRRdWVyeS5nZXRWYWx1ZSgpLnNlcnZlclNpZGVQYWdpbmF0aW9uLmVuYWJsZWQ7XG4gICAgfSk7XG4gICAgdGhpcy5pbml0R3JpZEFjdGlvbnMoKTtcbiAgICBjb25zdCBzZWxlY3RlZFJvd3NDaGFuZ2VkJCA9IHRoaXMuZ3JpZFF1ZXJ5LnNlbGVjdGVkUm93c0NoYW5nZSQ7XG4gICAgY29uc3QgaXNTZWxlY3RBbGxSb3dzQ2hhbmdlZCQgPSB0aGlzLmdyaWRRdWVyeS5zZWxlY3RJc1NlbGVjdEFsbFJvd3NFbmFibGVkKCk7XG4gICAgbWVyZ2UoZGF0YUNoYW5nZXMsIGdyaWRJbml0LCBzZWxlY3RlZFJvd3NDaGFuZ2VkJCwgaXNTZWxlY3RBbGxSb3dzQ2hhbmdlZCQpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+ICEhdGhpcy5hcGkpLFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucmVzb2x2ZVZpc2libGVBY3Rpb25zKCk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICAgIHRoaXMucmVnaXN0ZXJHcm91cExpc3RlbmVycygpO1xuXG4gICAgdGhpcy5zdWJzY3JpYmVSb3dzU2VsZWN0aW9uRGF0YSgpO1xuICB9XG5cbiAgb25BY3Rpb25DbGljayhhY3Rpb246IEJhc2VUb29sYmFyQWN0aW9uKSB7XG4gICAgaWYgKGlzRnVuY3Rpb24oYWN0aW9uLm9uQ2xpY2spKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZFJvd3NDb3VudCA9IHRoaXMuZ3JpZENvbnRyb2xsZXIuZ3JpZFF1ZXJ5LmdldFNlbGVjdGVkUm93c0NvdW50KCk7XG4gICAgICB0aGlzLmdyaWRTZXJ2aWNlLl9sb2dFdmVudChDb3JlRXZlbnRUeXBlcy5HUklEX1RBQkxFX0FDVElPTiwge1xuICAgICAgICBhY3Rpb246IGFjdGlvbi5rZXksXG4gICAgICAgIG51bU9mSXRlbXM6IHNlbGVjdGVkUm93c0NvdW50LFxuICAgICAgICBmcm9tOiAnVG9vbGJhcidcbiAgICAgIH0pO1xuICAgICAgaWYgKHRoaXMuZ3JpZFF1ZXJ5LmlzU2VydmVyU2VsZWN0QWxsUm93c0VuYWJsZWQpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0QWxsRmlsdGVyID0gdGhpcy5ncmlkU2VydmljZS5nZXRGaWx0ZXJGb3JTZXJ2ZXJBY3Rpb25PblNlbGVjdEFsbCgpO1xuICAgICAgICBhY3Rpb24ub25DbGljayhudWxsLCB0cnVlLCBzZWxlY3RBbGxGaWx0ZXIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmdyaWRDb250cm9sbGVyLmdyaWRRdWVyeS5nZXRTZWxlY3RlZFJvd05vZGVzKCk7XG4gICAgICAgIGFjdGlvbi5vbkNsaWNrKHNlbGVjdGVkKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKChhY3Rpb24gYXMgR3JpZEFjdGlvbikuYWN0aW9uVHlwZSA9PT0gR3JpZEFjdGlvblR5cGUuRVhQT1JUKSB7XG4gICAgICB0aGlzLmV4ZWN1dGVUYWJsZUFjdGlvbignRXhwb3J0Jyk7XG4gICAgfVxuICB9XG5cbiAgcmVzb2x2ZVZpc2libGVBY3Rpb25zKCkge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5ncmlkUXVlcnkuZ2V0U2VsZWN0ZWRSb3dOb2RlcygpO1xuICAgIHRoaXMuaXNTZWxlY3RlZFJvdyA9IHNlbGVjdGVkLmxlbmd0aCA+IDAgfHwgdGhpcy5ncmlkUXVlcnkuaXNTZXJ2ZXJTZWxlY3RBbGxSb3dzRW5hYmxlZDtcbiAgICBjb25zdCB2aXNpYmxlQWN0aW9ucyA9IGdldFZpc2libGVBY3Rpb25zKFxuICAgICAgdGhpcy5ncmlkQ29udHJvbGxlci5yb3dBY3Rpb25zLFxuICAgICAgdGhpcy5ncmlkUXVlcnkuZ2V0U2VsZWN0ZWRSb3dzQ291bnQoKSxcbiAgICAgIHNlbGVjdGVkLFxuICAgICAgdGhpcy5ncmlkUXVlcnkuaXNTZXJ2ZXJTZWxlY3RBbGxSb3dzRW5hYmxlZFxuICAgICkuZmlsdGVyKChhY3Rpb246IFJvd0FjdGlvbikgPT4gIXRoaXMuaXNSb3dBY3Rpb25IaWRkZW4oYWN0aW9uKSk7XG4gICAgdGhpcy5yb3dBY3Rpb25zID0ge1xuICAgICAgbWFpbkxpc3Q6IHZpc2libGVBY3Rpb25zLnNsaWNlKDAsIHRoaXMuX21heFJvd0FjdGlvbnMpLFxuICAgICAgbW9yZU1lbnU6IHZpc2libGVBY3Rpb25zLnNsaWNlKHRoaXMuX21heFJvd0FjdGlvbnMsIHZpc2libGVBY3Rpb25zLmxlbmd0aClcbiAgICB9O1xuICAgIHRoaXMuaW5pdFdpZHRoVG9IaWRlQWN0aW9uc0xhYmVscygpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0V2lkdGhUb0hpZGVBY3Rpb25zTGFiZWxzKCkge1xuICAgIGNvbnN0IHZpc2libGVBY3Rpb25zQ291bnQgPVxuICAgICAgdGhpcy5yb3dBY3Rpb25zLm1haW5MaXN0Lmxlbmd0aCArXG4gICAgICAodGhpcy5yb3dBY3Rpb25zLm1vcmVNZW51Lmxlbmd0aCA+IDAgPyAxIDogMCkgK1xuICAgICAgKHRoaXMuZ3JpZEFjdGlvbnMubW9yZU1lbnUubGVuZ3RoID4gMCA/IDEgOiAwKSArXG4gICAgICAodGhpcy5jcmVhdGVBY3Rpb24gPyAxIDogMCk7XG5cbiAgICBjb25zdCB3aW5kb3dXaWR0aFRocmVzaG9sZHM6IEdyaWRSb3dBY3Rpb25zU2NyZWVuVGhyZXNob2xkW10gPSBbMTIzOSwgMTMzOSwgMTQzOSwgMTUzOV07XG4gICAgdGhpcy53aWR0aFRvSGlkZUFjdGlvbnNMYWJlbHMgPVxuICAgICAgd2luZG93V2lkdGhUaHJlc2hvbGRzW01hdGgubWluKE1hdGgubWF4KHZpc2libGVBY3Rpb25zQ291bnQgLSA1LCAwKSwgd2luZG93V2lkdGhUaHJlc2hvbGRzLmxlbmd0aCAtIDEpXTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEdyaWRBY3Rpb25zKCkge1xuICAgIGNvbnN0IGdyaWRBY3Rpb25zID0gdGhpcy5ncmlkQ29udHJvbGxlci5ncmlkQWN0aW9ucztcbiAgICB0aGlzLmluaXRDcmVhdGVBY3Rpb24oZ3JpZEFjdGlvbnMpO1xuICAgIHRoaXMuaW5pdEV4cG9ydEFjdGlvbihncmlkQWN0aW9ucyk7XG4gICAgbGV0IG1heFZpc2libGVBY3Rpb25zID0gdGhpcy5NQVhfVklTSUJMRV9HUklEX0FDVElPTlMgLSAodGhpcy5kaXNwbGF5RXhwb3J0ID8gMSA6IDApO1xuICAgIGlmIChzaXplKGdyaWRBY3Rpb25zKSA9PT0gbWF4VmlzaWJsZUFjdGlvbnMgKyAxKSB7XG4gICAgICBtYXhWaXNpYmxlQWN0aW9ucysrO1xuICAgIH1cbiAgICB0aGlzLmdyaWRBY3Rpb25zID0ge1xuICAgICAgbWFpbkxpc3Q6IGdyaWRBY3Rpb25zLnNsaWNlKDAsIG1heFZpc2libGVBY3Rpb25zKSxcbiAgICAgIG1vcmVNZW51OiBncmlkQWN0aW9ucy5zbGljZShtYXhWaXNpYmxlQWN0aW9ucywgZ3JpZEFjdGlvbnMubGVuZ3RoKVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGluaXRDcmVhdGVBY3Rpb24oZ3JpZEFjdGlvbnM6IEdyaWRBY3Rpb25bXSkge1xuICAgIGNvbnN0IGNyZWF0ZUFjdGlvbkluZGV4ID0gZ3JpZEFjdGlvbnMuZmluZEluZGV4KCh7IGFjdGlvblR5cGUgfSkgPT4gYWN0aW9uVHlwZSA9PT0gR3JpZEFjdGlvblR5cGUuQ1JFQVRFKTtcbiAgICB0aGlzLmNyZWF0ZUFjdGlvbiA9IGNyZWF0ZUFjdGlvbkluZGV4ID49IDAgPyBncmlkQWN0aW9ucy5zcGxpY2UoY3JlYXRlQWN0aW9uSW5kZXgsIDEpWzBdIDogbnVsbDtcbiAgICBpZiAodGhpcy5jcmVhdGVBY3Rpb24pIHtcbiAgICAgIHRoaXMuY3JlYXRlQWN0aW9uLmxhYmVsID0gdGhpcy5jcmVhdGVBY3Rpb24ubGFiZWwgfHwgJ2NvcmUuY3JlYXRlLW5ldyc7XG4gICAgICB0aGlzLmNyZWF0ZUFjdGlvbi5rZXkgPSB0aGlzLmNyZWF0ZUFjdGlvbi5rZXkgfHwgJ2NyZWF0ZS1uZXcnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdEV4cG9ydEFjdGlvbihncmlkQWN0aW9uczogR3JpZEFjdGlvbltdKSB7XG4gICAgY29uc3QgZXhwb3J0QWN0aW9uID0gZ3JpZEFjdGlvbnMuZmluZCgoeyBhY3Rpb25UeXBlIH0pID0+IGFjdGlvblR5cGUgPT09IEdyaWRBY3Rpb25UeXBlLkVYUE9SVCk7XG4gICAgaWYgKGV4cG9ydEFjdGlvbikge1xuICAgICAgY29uc3QgeyBvbkNsaWNrLCBpY29uLCBsYWJlbCwgdG9vbHRpcCwga2V5IH0gPSBleHBvcnRBY3Rpb247XG4gICAgICBleHBvcnRBY3Rpb24ub25DbGljayA9IG9uQ2xpY2sgfHwgKCgpID0+IHRoaXMuZXhlY3V0ZVRhYmxlQWN0aW9uKCdFeHBvcnQnKSk7XG4gICAgICBleHBvcnRBY3Rpb24uaWNvbiA9IGljb24gfHwgJ2V4cG9ydCc7XG4gICAgICBleHBvcnRBY3Rpb24ubGFiZWwgPSBsYWJlbCB8fCAnY29yZS5leHBvcnQtdGFibGUnO1xuICAgICAgZXhwb3J0QWN0aW9uLnRvb2x0aXAgPSB0b29sdGlwIHx8ICdjb3JlLmV4cG9ydC10YWJsZSc7XG4gICAgICBleHBvcnRBY3Rpb24ua2V5ID0ga2V5IHx8ICdleHBvcnQnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogQHBhcmFtIGFjdGlvblxuICAgKi9cbiAgZXhlY3V0ZVRhYmxlQWN0aW9uKGFjdGlvbjogVGFibGVBY3Rpb24pIHtcbiAgICB0aGlzLmdyaWRTZXJ2aWNlLl9sb2dFdmVudChDb3JlRXZlbnRUeXBlcy5HUklEX0dFTkVSQUxfVEFCTEVfQUNUSU9OLCB7IGFjdGlvbiB9KTtcbiAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgY2FzZSAnQXV0b2ZpdCB0byBDb250ZW50JzpcbiAgICAgICAgdGhpcy5ncmlkU2VydmljZS5maXRHcmlkKCdjb250ZW50Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXV0b2ZpdCB0byBQYWdlJzpcbiAgICAgICAgdGhpcy5ncmlkU2VydmljZS5maXRHcmlkKCdjb250YWluZXInKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdDb2xsYXBzZSBFeHBhbmQnOlxuICAgICAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRXhwb3J0JzpcbiAgICAgICAgdGhpcy5leHBvcnRUYWJsZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0dyb3VwIGZyb20gU2V0dGluZ3MnOlxuICAgICAgY2FzZSAnR3JvdXAgZnJvbSBUb29sYmFyJzpcbiAgICAgICAgdGhpcy5vcGVuR3JvdXBNZW51KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUmVzZXQgRmlsdGVycyc6XG4gICAgICAgIHRoaXMucmVzZXRGaWx0ZXJzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUmVzZXQgU2V0dGluZ3MnOlxuICAgICAgICB0aGlzLnJlc2V0U2V0dGluZ3MoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdTaG93IEhpZGUgQ29sdW1uJzpcbiAgICAgICAgdGhpcy5vcGVuQ29sdW1uTWVudSgpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICB0b2dnbGVFeHBhbmRlZCgpIHtcbiAgICB0aGlzLnJvd0dyb3Vwc0NvbGxhcHNlZCA/IHRoaXMuYXBpLmdyaWQuZXhwYW5kQWxsKCkgOiB0aGlzLmFwaS5ncmlkLmNvbGxhcHNlQWxsKCk7XG4gICAgdGhpcy5yb3dHcm91cHNDb2xsYXBzZWQgPSAhdGhpcy5yb3dHcm91cHNDb2xsYXBzZWQ7XG4gIH1cblxuICBnZXQgaGFzR3JvdXBzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFwaS5jb2x1bW5zLmdldFJvd0dyb3VwQ29sdW1ucygpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBleHBvcnRUYWJsZSgpIHtcbiAgICBjb25zdCB7IGdyaWROYW1lLCBleHBvcnRHcmlkIH0gPSB0aGlzLmdyaWRDb250cm9sbGVyLmdyaWRPcHRpb25zO1xuICAgIGlmIChpc0Z1bmN0aW9uKGV4cG9ydEdyaWQpKSB7XG4gICAgICBleHBvcnRHcmlkKHsgLi4udGhpcy5hcGksIC4uLnRoaXMuZ3JpZFF1ZXJ5LmdldFZhbHVlKCkuc2V0dGluZ3MgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRvZGF5ID0gZm9ybWF0KG5ldyBEYXRlKCksIERFRkFVTFRfRk9STUFUKTtcbiAgICAgIHRoaXMuYXBpLmdyaWQuZXhwb3J0RGF0YUFzRXhjZWwoe1xuICAgICAgICBmaWxlTmFtZTogYCR7Z3JpZE5hbWV9IC0gJHt0b2RheX1gLFxuICAgICAgICBwcm9jZXNzQ2VsbENhbGxiYWNrOiAoeyBjb2x1bW4sIHZhbHVlIH06IFByb2Nlc3NDZWxsRm9yRXhwb3J0UGFyYW1zKSA9PiB7XG4gICAgICAgICAgY29uc3QgZm9ybWF0dGVyID0gY29sdW1uLmdldENvbERlZigpLnZhbHVlRm9ybWF0dGVyO1xuICAgICAgICAgIC8vIFRPRE86IGZvbGxvd3VwOiBodHRwczovL2FnLWdyaWQuemVuZGVzay5jb20vaGMvZW4tdXMvcmVxdWVzdHMvMTA5NjM/cGFnZT0xXG4gICAgICAgICAgcmV0dXJuIGZvcm1hdHRlciA/IGZvcm1hdHRlcih7IHZhbHVlIH0gYXMgYW55KSA6IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXNldFNldHRpbmdzKCkge1xuICAgIHRoaXMuZ3JpZENvbnRyb2xsZXIuZ3JpZFNlcnZpY2UucmVzZXRUYWJsZVNldHRpbmdzKCk7XG4gIH1cblxuICBvcGVuQ29sdW1uTWVudSgpIHtcbiAgICB0aGlzLnBvcG92ZXIub3BlbihEYXRvR3JpZENvbHVtbkRpc3BsYXlNZW51Q29tcG9uZW50LCB0aGlzLnNldHRpbmdzVHJpZ2dlci5uYXRpdmVFbGVtZW50LCB7XG4gICAgICB3aWR0aDogMjIwLFxuICAgICAgY2xhc3NOYW1lOiAnZGF0by1ncmlkLWNvbHVtbnMtZGlzcGxheS1tZW51JyxcbiAgICAgIHBvcHBlcjogeyBwbGFjZW1lbnQ6ICdib3R0b20tZW5kJyB9LFxuICAgICAgZGF0YToge1xuICAgICAgICBhcGk6IHRoaXMuYXBpLFxuICAgICAgICBncmlkU2VydmljZTogdGhpcy5ncmlkU2VydmljZSxcbiAgICAgICAgZ3JpZFF1ZXJ5OiB0aGlzLmdyaWRRdWVyeVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmVzZXRGaWx0ZXJzKCkge1xuICAgIHRoaXMuZ3JpZENvbnRyb2xsZXIuZ3JpZFNlcnZpY2UuY2xlYXJBbGxGaWx0ZXJzKCk7XG4gIH1cblxuICBvcGVuR3JvdXBNZW51KCkge1xuICAgIHRoaXMub3Blbk1lbnVzLmdyb3VwID0gdHJ1ZTtcbiAgICBjb25zdCB3YWl0Rm9yQW5pbWF0aW9uID0gdGhpcy5oYXNHcm91cHMgPyAwIDogMjAwO1xuICAgIC8qKiBXaGVuIGNoYW5naW5nIHRoZSB0YWJsZXMgZ3JvdXBpbmcgYWxsIHRoZSByb3dzIGFyZSBhdXRvbWF0aWNhbGx5IGV4cGFuZGVkLCB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgaWNvbiBzdGF0ZSAqL1xuICAgIGNvbnN0IGV4cGFuZFN1YnNjcmlwdGlvbiA9IHRoaXMuZ3JpZFF1ZXJ5LmdyaWRSZWYuY29sdW1uUm93R3JvdXBDaGFuZ2VkXG4gICAgICAucGlwZSh0YWtlKDEpLCB1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnJvd0dyb3Vwc0NvbGxhcHNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucG9wb3ZlclxuICAgICAgICAub3BlbihEYXRvR3JpZEdyb3Vwc01lbnVDb21wb25lbnQsIHRoaXMuZ3JvdXBUcmlnZ2VyLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgICAgICBoZWlnaHQ6IDIwNixcbiAgICAgICAgICB3aWR0aDogMjUwLFxuICAgICAgICAgIGNsYXNzTmFtZTogJ2RhdG8tZ3JpZC1ncm91cHMtbWVudScsXG4gICAgICAgICAgcG9wcGVyOiB7IHBsYWNlbWVudDogJ2JvdHRvbS1lbmQnIH0sXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgYXBpOiB0aGlzLmFwaSxcbiAgICAgICAgICAgIGdyaWRTZXJ2aWNlOiB0aGlzLmdyaWRTZXJ2aWNlXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgZXhwYW5kU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgdGhpcy5vcGVuTWVudXMuZ3JvdXAgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH0sIHdhaXRGb3JBbmltYXRpb24pO1xuICB9XG5cbiAgaXNBY3Rpb25EaXNhYmxlZChyb3dBY3Rpb246IFJvd0FjdGlvbikge1xuICAgIHJldHVybiAhcm93QWN0aW9uLnZpc2libGU7XG4gIH1cblxuICBpc1Jvd0FjdGlvbkhpZGRlbihyb3dBY3Rpb246IFJvd0FjdGlvbikge1xuICAgIHJldHVybiAhcm93QWN0aW9uLnZpc2libGUgJiYgdGhpcy5lbmFibGVWMl8xO1xuICB9XG5cbiAgY2xlYXJTZWxlY3RlZFJvd3MoKSB7XG4gICAgdGhpcy5ncmlkU2VydmljZS5kZXNlbGVjdEFsbFJvd3MoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge31cblxuICBwcml2YXRlIGdldENvbGxhcHNlU3RhdGUoeyBub2RlLCBhcGkgfTogUm93R3JvdXBPcGVuZWRFdmVudCk6IGJvb2xlYW4ge1xuICAgIGxldCBjb2xsYXBzZWQgPSB0cnVlO1xuICAgIGlmIChub2RlLnJvd0dyb3VwSW5kZXggPT09IDApIHtcbiAgICAgIGFwaS5mb3JFYWNoTm9kZUFmdGVyRmlsdGVyQW5kU29ydCgoeyBleHBhbmRlZCwgcm93R3JvdXBJbmRleCB9OiBSb3dOb2RlKSA9PiB7XG4gICAgICAgIGlmIChyb3dHcm91cEluZGV4ID09PSAwICYmIGV4cGFuZGVkKSB7XG4gICAgICAgICAgY29sbGFwc2VkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gY29sbGFwc2VkO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3Rlckdyb3VwTGlzdGVuZXJzKCkge1xuICAgIC8qKiBMaXN0ZW4gdG8gYWRkaW5nIG9yIHJlbW92aW5nIHJvdyBncm91cHMgZnJvbSB0aGUgY29sdW1ucyBhbmQgbm90IHRoZSBncm91cHMgbWVudSAqL1xuICAgIHRoaXMuZ3JpZFF1ZXJ5XG4gICAgICAud2FpdEZvckdyaWQoKCkgPT4gdGhpcy5ncmlkUXVlcnkuZ3JpZFJlZi5jb2x1bW5Sb3dHcm91cENoYW5nZWQpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+ICF0aGlzLm9wZW5NZW51cy5ncm91cCksXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5yb3dHcm91cHNDb2xsYXBzZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSk7XG4gICAgLyoqIExpc3RlbiB0byByb3cgY29sbGFwc2Ugc3RhdGUgdG8gdXBkYXRlIHRoZSBpY29uICovXG4gICAgdGhpcy5ncmlkUXVlcnlcbiAgICAgIC53YWl0Rm9yR3JpZCgoKSA9PiB0aGlzLmdyaWRRdWVyeS5ncmlkUmVmLnJvd0dyb3VwT3BlbmVkKVxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKChldmVudDogUm93R3JvdXBPcGVuZWRFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBjb2xsYXBzZWQgPSB0aGlzLmdldENvbGxhcHNlU3RhdGUoZXZlbnQpO1xuICAgICAgICBpZiAoY29sbGFwc2VkICE9PSB0aGlzLnJvd0dyb3Vwc0NvbGxhcHNlZCkge1xuICAgICAgICAgIHRoaXMucm93R3JvdXBzQ29sbGFwc2VkID0gY29sbGFwc2VkO1xuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZVJvd3NTZWxlY3Rpb25EYXRhKCkge1xuICAgIHRoaXMuZ3JpZFF1ZXJ5LnJvd3NTZWxlY3Rpb25EYXRhJFxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAoe1xuICAgICAgICAgIHRvdGFsUm93c0NvdW50LFxuICAgICAgICAgIHNlbGVjdGVkUm93c0NvdW50LFxuICAgICAgICAgIHNlbGVjdGVkUGFnZVJvd3NDb3VudCxcbiAgICAgICAgICBpc0FsbFBhZ2VSb3dzU2VsZWN0ZWRcbiAgICAgICAgfTogR3JpZFJvd3NTZWxlY3Rpb25EYXRhKSA9PiB7XG4gICAgICAgICAgdGhpcy50b3RhbFJvd3NDb3VudCA9IHRvdGFsUm93c0NvdW50O1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzQ291bnQgPSBzZWxlY3RlZFJvd3NDb3VudDtcbiAgICAgICAgICBjb25zdCB7IGVuYWJsZUFsbFBhZ2VzU2VsZWN0aW9uIH0gPSB0aGlzLmdyaWRRdWVyeS5nZXRHcmlkT3B0aW9ucygpO1xuICAgICAgICAgIHRoaXMuYWxsUGFnZVJvd3NTZWxlY3RlZCA9XG4gICAgICAgICAgICBlbmFibGVBbGxQYWdlc1NlbGVjdGlvbiAmJlxuICAgICAgICAgICAgaXNBbGxQYWdlUm93c1NlbGVjdGVkICYmXG4gICAgICAgICAgICBzZWxlY3RlZFJvd3NDb3VudCA9PT0gc2VsZWN0ZWRQYWdlUm93c0NvdW50ICYmXG4gICAgICAgICAgICBzZWxlY3RlZFJvd3NDb3VudCA8IHRvdGFsUm93c0NvdW50O1xuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHNlbGVjdEFsbFBhZ2VzKCkge1xuICAgIGlmICh0aGlzLmdyaWRRdWVyeS5pc1NlcnZlclNpZGUpIHtcbiAgICAgIHRoaXMuZ3JpZFNlcnZpY2Uuc2V0U2VydmVyU2lkZVBhZ2luYXRpb24oeyBzZWxlY3RBbGxSb3dzRW5hYmxlZDogdHJ1ZSwgZXhjbHVkZWRGcm9tU2VsZWN0QWxsOiBbXSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ncmlkU2VydmljZS5hcGkuZ3JpZC5zZWxlY3RBbGxGaWx0ZXJlZCgpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2ljb24vaWNvbi50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgSWNvbklucHV0cyA9IHtcbiAgbmFtZT86IHN0cmluZztcbiAgc2l6ZT86ICdsZycgfCAnbWQnIHwgJ3NtJztcbiAgY29sb3I/OiBzdHJpbmc7XG4gIHdpZHRoPzogc3RyaW5nO1xuICBoZWlnaHQ/
|
|
1
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2ljb24vaWNvbi50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgSWNvbklucHV0cyA9IHtcbiAgbmFtZT86IHN0cmluZztcbiAgc2l6ZT86ICdsZycgfCAnbWQnIHwgJ3NtJztcbiAgY29sb3I/OiBzdHJpbmc7XG4gIHdpZHRoPzogc3RyaW5nO1xuICBoZWlnaHQ/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBEYXRvSWNvbnMgPVxuICB8ICdhY2NvdW50J1xuICB8ICdhY3Rpb24tY2VudGVyJ1xuICB8ICdhY3Rpb24nXG4gIHwgJ2FkZC1jb2xsZWN0aW9uJ1xuICB8ICdhZGQtcGFnZSdcbiAgfCAnYWRkLXdpZGdldCdcbiAgfCAnYWR2aXNvcidcbiAgfCAnYWxsLWNvbGxlY3Rpb25zJ1xuICB8ICdhbHRlcm5hdGl2ZXMnXG4gIHwgJ2FueW9uZSdcbiAgfCAnYXBwLXBhZ2UnXG4gIHwgJ2FwcHMtdGFiJ1xuICB8ICdhcHBzJ1xuICB8ICdhcnJvdy1kb3duJ1xuICB8ICdhcnJvdy1sZWZ0J1xuICB8ICdhcnJvdy1yaWdodCdcbiAgfCAnYXJyb3ctdXAnXG4gIHwgJ2FydGljbGUnXG4gIHwgJ2F1dGhlbnRpY2F0aW9uJ1xuICB8ICdhdXRvLWZvcm1hdCdcbiAgfCAnYXV0b21hdGUnXG4gIHwgJ2JhY2tncm91bmQnXG4gIHwgJ2JyYW5kaW5nJ1xuICB8ICdidWlsZGVyJ1xuICB8ICdjYWxlbmRhcidcbiAgfCAnY2VydGlmaWNhdGUnXG4gIHwgJ2NlcnRpZmljYXRpb24nXG4gIHwgJ2NoYXJ0cydcbiAgfCAnY2hldnJvbi1kb3duLWRvdWJsZSdcbiAgfCAnY2hldnJvbi1kb3duJ1xuICB8ICdjaGV2cm9uLWxlZnQtZG91YmxlJ1xuICB8ICdjaGV2cm9uLWxlZnQnXG4gIHwgJ2NoZXZyb24tcmlnaHQtZG91YmxlJ1xuICB8ICdjaGV2cm9uLXJpZ2h0J1xuICB8ICdjaGV2cm9uLXVwLWRvdWJsZSdcbiAgfCAnY2hldnJvbi11cCdcbiAgfCAnY2xhc3NpZmljYXRpb24nXG4gIHwgJ2Nsb3NlJ1xuICB8ICdjb2xsYWJvcmF0ZSdcbiAgfCAnY29sbGFwc2UnXG4gIHwgJ2NvbW1lbnQtY29kZSdcbiAgfCAnY29tcGFycmlzb24nXG4gIHwgJ2Nvbm5lY3QnXG4gIHwgJ2Nvbm5lY3RlZCdcbiAgfCAnY29weS10bydcbiAgfCAnY29weSdcbiAgfCAnY29zdC1jZW50ZXInXG4gIHwgJ2N1cnJlbnQnXG4gIHwgJ2RhdGEtdHJhbnNmb3JtZWQnXG4gIHwgJ2RhdGEtY2xhc3NpZmljYXRpb24nXG4gIHwgJ2RhdGEtZnVzaW9uJ1xuICB8ICdkYXRhLWxha2VzJ1xuICB8ICdkYXRhLW1vZGVsJ1xuICB8ICdkYXRhLXByZXZpZXcnXG4gIHwgJ2RhdGEtc2NpZW5jZSdcbiAgfCAnZGF0YS1zdHJlYW0nXG4gIHwgJ2RlcGxveSdcbiAgfCAnZGVzY3JpcHRpb24nXG4gIHwgJ2Rlc2lnbidcbiAgfCAnZGV2LXBvcnRhbCdcbiAgfCAnZGlhbW9uZCdcbiAgfCAnZGltZW5zaW9uLXR5cGUtMidcbiAgfCAnZGltZW5zaW9uJ1xuICB8ICdkaXJ0eSdcbiAgfCAnZGlzbWlzcydcbiAgfCAnZG90dGllJ1xuICB8ICdkb3dubG9hZCdcbiAgfCAnZHJhZy13aW5kb3cnXG4gIHwgJ2RyYWcnXG4gIHwgJ2VkaXQtcGFnZSdcbiAgfCAnZWRpdC13aWRnZXQnXG4gIHwgJ2VkaXQnXG4gIHwgJ2VpbnN0ZWluLWluc2lnaHRzJ1xuICB8ICdlbGVtZW50cydcbiAgfCAnZW1iZWQnXG4gIHwgJ2V2YWx1YXRlJ1xuICB8ICdleHBhbmQnXG4gIHwgJ2V4cGxvcmUnXG4gIHwgJ2V4cG9ydC1zdGF0cydcbiAgfCAnZXhwb3J0J1xuICB8ICdleHRlbmRlZC1sb2cnXG4gIHwgJ2V4dGVybmFsLWRhdGEnXG4gIHwgJ2V4dGVybmFsLXBhZ2UnXG4gIHwgJ2V4dGVybmFsJ1xuICB8ICdmYWlsZWQtZnVsbCdcbiAgfCAnZmFpbGVkLWxpbmUnXG4gIHwgJ2ZhaWxlZCdcbiAgfCAnZmlsdGVyJ1xuICB8ICdmaWx0ZXJzLXBhZ2UnXG4gIHwgJ2ZpbHRlcnMtd2lkZ2V0J1xuICB8ICdmaW5kLWFuZC1yZXBsYWNlJ1xuICB8ICdmb2N1cydcbiAgfCAnZm9sZGVyLWNsb3NlZCdcbiAgfCAnZm9sZGVyLW9wZW4nXG4gIHwgJ2Zvcm11bGEnXG4gIHwgJ2ZyZWUtdGV4dCdcbiAgfCAnZnVsbC1lbnRpdHknXG4gIHwgJ2Z1bGxzY3JlZW4tZW50ZXInXG4gIHwgJ2Z1bGxzY3JlZW4tZXhpdCdcbiAgfCAnZ2VuZXJpYy1idWNrZXQnXG4gIHwgJ2dvYWxzJ1xuICB8ICdncmlkLWhpZGUnXG4gIHwgJ2dyb3VwJ1xuICB8ICdoYW1idXJnZXInXG4gIHwgJ2hhcm1vbml6ZWQtZGltZW5zaW9uJ1xuICB8ICdoZWFydC1lbXB0eSdcbiAgfCAnaGVhcnQtZnVsbCdcbiAgfCAnaGlkZSdcbiAgfCAnaGlnaGxpZ2h0J1xuICB8ICdoaXN0b3J5J1xuICB8ICdob21lJ1xuICB8ICdob3VyLWdsYXNzJ1xuICB8ICdpZGxlJ1xuICB8ICdpbXBlcnNvbmF0ZSdcbiAgfCAnaW5mby1mdWxsJ1xuICB8ICdpbmZvLWxpbmUnXG4gIHwgJ2luZm8nXG4gIHwgJ2luc3RhbnQnXG4gIHwgJ2ludGVyYWN0aXZlLWZpbHRlcidcbiAgfCAnaW50ZXJhY3RpdmUtZmlsdGVyc2V0J1xuICB8ICdrZXknXG4gIHwgJ2tub3dsZWRnZS1iYXNlJ1xuICB8ICdsYWJlbCdcbiAgfCAnbGF5b3V0LWZpbHRlcmVkJ1xuICB8ICdsYXlvdXQnXG4gIHwgJ2xpbmtlZCdcbiAgfCAnbGl2ZSdcbiAgfCAnbG9jYWxpemF0aW9uLTE2NCdcbiAgfCAnbG9naWNhbC12aWV3J1xuICB8ICdtYWdpYy13YW5kJ1xuICB8ICdtYWluLWVudGl0eSdcbiAgfCAnbWFuYWdlLWNvbGxlY3Rpb25zJ1xuICB8ICdtYXAtcmlnaHQnXG4gIHwgJ21hcC1sZWZ0J1xuICB8ICdtYXBwaW5nJ1xuICB8ICdtYXJrZXQnXG4gIHwgJ21heGltaXplLWhvcml6b250YWwnXG4gIHwgJ21heGltaXplJ1xuICB8ICdtZWFzdXJlbWVudC1uYXYnXG4gIHwgJ21lYXN1cmVtZW50J1xuICB8ICdtaW5pbWl6ZS1ob3Jpem9udGFsJ1xuICB8ICdtaW5pbWl6ZSdcbiAgfCAnbW9yZS1ob3Jpem9udGFsJ1xuICB8ICdtb3JlLXZlcnRpY2FsJ1xuICB8ICdtb3ZlLXRvLWZvbGRlcidcbiAgfCAnbXktcHJvZmlsZSdcbiAgfCAnbmFtaW5nLWNvbnZlbnRpb25zLXBhdHRlcm5zJ1xuICB8ICduZXctdGFiJ1xuICB8ICduby1hdXRlbnRpY2F0aW9uJ1xuICB8ICduby1lbnRyeSdcbiAgfCAnbm8tZmlsZSdcbiAgfCAnbm8tb25lJ1xuICB8ICdub3Rlcy1yb3VkZWQnXG4gIHwgJ25vdGVzJ1xuICB8ICdub3RpZmljYXRpb25zJ1xuICB8ICdwYWdlJ1xuICB8ICdwYW5lbC1jbG9zZSdcbiAgfCAncGFuZWwtb3BlbidcbiAgfCAncGVuZGluZydcbiAgfCAncGVvcGxlJ1xuICB8ICdwaW4nXG4gIHwgJ3Bpdm90LXRhYmxlJ1xuICB8ICdwbGF5J1xuICB8ICdwbHVzLWJ0bidcbiAgfCAncGx1cy1zaW1wbGUnXG4gIHwgJ3ByZXNlbnQnXG4gIHwgJ3Byb2Nlc3MtdGVjaC1hYm9ydCdcbiAgfCAncHJvY2Vzcy10ZWNoJ1xuICB8ICdwcm9jZXNzLWVycm9yJ1xuICB8ICdwcm9jZXNzJ1xuICB8ICdwdWJsaXNoJ1xuICB8ICdwdXNoLWVudGl0eSdcbiAgfCAncXVlcnktYXBpJ1xuICB8ICdyZS1ydW4nXG4gIHwgJ3JlY2VudCdcbiAgfCAncmVkbydcbiAgfCAncmVmcmVzaCdcbiAgfCAncmVvZmZlcidcbiAgfCAncmVzZXQtZmlsdGVycydcbiAgfCAncmVzZXQtdGFibGUnXG4gIHwgJ3Jlc3RvcmUnXG4gIHwgJ3JldHJpdmUtZGF0YSdcbiAgfCAncm9ja2V0J1xuICB8ICdydW4tbGF0ZXInXG4gIHwgJ3NhbmRib3gtY29sb3InXG4gIHwgJ3NhbmRib3gtbWlkJ1xuICB8ICdzYW5kYm94J1xuICB8ICdzYXZlLWFzJ1xuICB8ICdzYXZlJ1xuICB8ICdzY2hlZHVsZS1leHBvcnQnXG4gIHwgJ3NjcmVlbi1ndWlkZSdcbiAgfCAnc2VhcmNoJ1xuICB8ICdzZW5kJ1xuICB8ICdzZXJ2ZXInXG4gIHwgJ3NoYXJlLWRhc2hib2FyZCdcbiAgfCAnc2hhcmUtdG8nXG4gIHwgJ3NoYXJlJ1xuICB8ICdzaGFyaW5nLWFkZC1vdXRsaW5lJ1xuICB8ICdzaGFyaW5nLW91dGxpbmUnXG4gIHwgJ3NoYXJpbmcnXG4gIHwgJ3Nob3ctZ3JpZCdcbiAgfCAnc2lnbi1vdXQnXG4gIHwgJ3NuaXBwZXRzJ1xuICB8ICdzb3J0LWFzY2VuZGluZydcbiAgfCAnc29ydC1kZXNjZW5kaW5nJ1xuICB8ICdzb3J0J1xuICB8ICdzdGFyLWVtcHR5J1xuICB8ICdzdGFyLWZ1bGwtY29sb3InXG4gIHwgJ3N0YXItZnVsbCdcbiAgfCAnc3RhdHVzJ1xuICB8ICdzdWNjZXNzLWZ1bGwnXG4gIHwgJ3N1Y2Nlc3MtbGluZSdcbiAgfCAnc3VjY2Vzcy1zaW1wbGUnXG4gIHwgJ3N3aXRjaCdcbiAgfCAndGFibGUtcmVndWxhcidcbiAgfCAndGFibGUnXG4gIHwgJ3RhYmxlYXUnXG4gIHwgJ3RlbXBsYXRlLWZ1bGwnXG4gIHwgJ3RlbXBsYXRlcydcbiAgfCAndGVzdCdcbiAgfCAndGh1bWJzLWRvd24nXG4gIHwgJ3RodW1icy11cCdcbiAgfCAndGltZSdcbiAgfCAndGlwLWZ1bGwnXG4gIHwgJ3RpcC1saW5lJ1xuICB8ICd0aXAtc2ltcGxlJ1xuICB8ICd0b29sJ1xuICB8ICd0cmFuc3Bvc2VkLXRhYmxlJ1xuICB8ICd0cmFzaCdcbiAgfCAndHJlbmQnXG4gIHwgJ3R5cGVmYWNlJ1xuICB8ICd1bmNvbW1lbnQtY29kZSdcbiAgfCAndW5kbydcbiAgfCAndW5ncm91cCdcbiAgfCAndW5pdmVyc2l0eSdcbiAgfCAndW5saW5rJ1xuICB8ICd1bnB1Ymxpc2gnXG4gIHwgJ3VwbG9hZCdcbiAgfCAndXNlcidcbiAgfCAndmFsaWRhdGUtY29kZSdcbiAgfCAndmlld3MtbGluZSdcbiAgfCAndmlld3MnXG4gIHwgJ3Zpc3VhbGl6ZSdcbiAgfCAnd2FybmluZy1mdWxsJ1xuICB8ICd3YXJuaW5nLWxpbmUnXG4gIHwgJ3dhcm5pbmctc2ltcGxlJ1xuICB8ICd3ZWJpbmFyJ1xuICB8ICd3aWRnZXRzJ1xuICB8ICd3b3JrZmxvdydcbiAgfCAnd29ya3NwYWNlJ1xuICB8ICd6b29tLWluJztcbiJdfQ==
|