@eo-sdk/client 10.6.9 → 10.6.11
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/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
- package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts.map +1 -1
- package/app/eo-framework/object-details/object-details.component.d.ts +1 -0
- package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.d.ts.map +1 -1
- package/app/eo-framework/util/services/utilities.service.d.ts +190 -0
- package/app/eo-framework/util/services/utilities.service.d.ts.map +1 -1
- package/esm2020/app/eo-client/about-state/about-state.component.mjs +3 -3
- package/esm2020/app/eo-framework/actions/actions/custom-actions/custom-actions.component.mjs +3 -3
- package/esm2020/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +3 -2
- package/esm2020/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +7 -5
- package/esm2020/app/eo-framework/grid/grid.component.mjs +2 -2
- package/esm2020/app/eo-framework/object-details/object-details.component.mjs +14 -7
- package/esm2020/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.mjs +4 -4
- package/esm2020/app/eo-framework/object-form/object-form/object-form-script/object-form-scripting-scope.mjs +7 -7
- package/esm2020/app/eo-framework/object-form/object-form/object-form.component.mjs +3 -3
- package/esm2020/app/eo-framework/quick-search/quick-search/quick-search.component.mjs +3 -3
- package/esm2020/app/eo-framework/util/services/utilities.service.mjs +4 -1
- package/esm2020/projects/eo-sdk/core/lib/service/backend/backend.service.mjs +7 -5
- package/esm2020/projects/eo-sdk/core/lib/service/system/system.service.mjs +4 -4
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs +9 -7
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
- package/fesm2015/eo-sdk-client.mjs +62 -50
- package/fesm2015/eo-sdk-client.mjs.map +1 -1
- package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs +9 -7
- package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
- package/fesm2020/eo-sdk-client.mjs +62 -50
- package/fesm2020/eo-sdk-client.mjs.map +1 -1
- package/misc/scripts/prebuild-about-state.js +2 -3
- package/package.json +3 -3
- package/projects/eo-sdk/core/lib/service/backend/backend.service.d.ts.map +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
2
|
import { Utils } from '@eo-sdk/core';
|
|
3
|
-
import
|
|
3
|
+
import { cloneDeep } from 'lodash-es';
|
|
4
4
|
import { debounceTime } from 'rxjs/operators';
|
|
5
5
|
import { ObjectFormScriptService } from './object-form-script/object-form-script.service';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
@@ -14,7 +14,7 @@ import * as i7 from "./object-form-group/object-form-group.component";
|
|
|
14
14
|
export class ObjectFormComponent {
|
|
15
15
|
set options(formOptions) {
|
|
16
16
|
this.defaultFormOptions = formOptions;
|
|
17
|
-
this.formOptions =
|
|
17
|
+
this.formOptions = cloneDeep(formOptions);
|
|
18
18
|
this.init();
|
|
19
19
|
}
|
|
20
20
|
constructor(logger, elementRef, formScriptService, formHelperService, cdRef) {
|
|
@@ -145,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
145
145
|
type: Input,
|
|
146
146
|
args: ['formOptions']
|
|
147
147
|
}] } });
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQVMsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUs1QyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQzs7Ozs7Ozs7O0FBWXhGLE1BQU0sT0FBTyxtQkFBbUI7SUFtQjlCLElBQ0ksT0FBTyxDQUFDLFdBQThCO1FBQ3hDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxXQUFXLENBQUM7UUFDdEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxZQUFvQixNQUFjLEVBQ3hCLFVBQXNCLEVBQ3RCLGlCQUEwQyxFQUMxQyxpQkFBMEMsRUFDMUMsS0FBd0I7UUFKZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3hCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF5QjtRQUMxQyxzQkFBaUIsR0FBakIsaUJBQWlC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RSxjQUFjO1FBQ3BCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsMEJBQTBCLENBQUMsQ0FBQztZQUNqRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs7Z0hBMUpVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHlNQUZuQixDQUFDLHVCQUF1QixDQUFDLDBCQzVCdEMsNGJBWUE7MkZEa0JhLG1CQUFtQjtrQkFSL0IsU0FBUzsrQkFDRSxnQkFBZ0IsYUFLZixDQUFDLHVCQUF1QixDQUFDO2tPQUkzQixnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNO2dCQWNILE9BQU87c0JBRFYsS0FBSzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMb2dnZXIsIFV0aWxzfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50fSBmcm9tICcuLi9mb3JtLXN0YXR1cy1jaGFuZ2VkLWV2ZW50LmludGVyZmFjZSc7XG5pbXBvcnQge0Zvcm1HZW5SZXN1bHQsIE9iamVjdEZvcm1IZWxwZXJTZXJ2aWNlfSBmcm9tICcuLi9vYmplY3QtZm9ybS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQge09iamVjdEZvcm1PcHRpb25zfSBmcm9tICcuLi9vYmplY3QtZm9ybS1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQge09iamVjdEZvcm1TY3JpcHRTZXJ2aWNlfSBmcm9tICcuL29iamVjdC1mb3JtLXNjcmlwdC9vYmplY3QtZm9ybS1zY3JpcHQuc2VydmljZSc7XG5pbXBvcnQge09iamVjdEZvcm1TY3JpcHRpbmdTY29wZX0gZnJvbSAnLi9vYmplY3QtZm9ybS1zY3JpcHQvb2JqZWN0LWZvcm0tc2NyaXB0aW5nLXNjb3BlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1vYmplY3QtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3QtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29iamVjdC1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG4gIC8vIGRlZmluZSAnY2hpbGQgb25seScgc2VydmljZXMgZm9yIHRoZSBmb3JtIHdpdGhvdXQgc2V0dGluZyBpdCB1cCBvbiB0aGUgbW9kdWxlXG4gIC8vIHdoaWNoIHdvdWxkIGNhdXNlIHRoZW0gdG8gYmUgcHJvcGFnYXRlZCB0byB0aGUgd2hvbGUgYXBwbGljYXRpb25cbiAgcHJvdmlkZXJzOiBbT2JqZWN0Rm9ybVNjcmlwdFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKSBpc0lubmVyVGFibGVGb3JtOiBib29sZWFuO1xuICAvLyB0cmlnZ2VyZWQgd2hlbiB0aGUgZm9ybXMgc3RhdGUgaGFzIGJlZW4gY2hhbmdlZFxuICBAT3V0cHV0KCkgc3RhdHVzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybVN0YXR1c0NoYW5nZWRFdmVudD4oKTtcbiAgLy8gaGFuZGxlciB0byBiZSBleGVjdXRlZCBhZnRlciB0aGUgZm9ybSBoYXMgYmVlbiBzZXQgdXBcbiAgQE91dHB1dCgpIG9uRm9ybVJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyBmb3JtT3B0aW9uczogT2JqZWN0Rm9ybU9wdGlvbnM7XG4gIHB1YmxpYyBkZWZhdWx0Rm9ybU9wdGlvbnM6IE9iamVjdEZvcm1PcHRpb25zO1xuICAvLyB0aGUgYWN0dWFsIGZvcm0gaW5zdGFuY2VcbiAgcHVibGljIGZvcm07XG4gIC8vIHByb3BlcnR5IGZvciBob2xkaW5nIHRoZSBmb3JtcyBkYXRhIHVzZWQgZm9yIGNvbXBhcmlzb24gd2hlbiBhIGZvcm0tY2hhbmdlZC1ldmVudFxuICAvLyBpcyBmZXRjaGVkIHRvIGluZGljYXRlIHdoZXIgb3Igbm90IHRoZSBpbmRleGRhdGEgd2VyZSBjaGFuZ2VkIG9yIGp1c3QgdGhlIHByb3BlcnRpZXNcbiAgLy8gb2YgdGhlIGZvcm0gZWxlbWVudHMgKGVnLiBmb3JtIHNjcmlwdCBzZXR0aW5nIGZpZWxkcyB0byByZWFkb25seSlcbiAgcHJpdmF0ZSBmb3JtRGF0YTogYW55O1xuICBwcml2YXRlIHNjcmlwdGluZ1Njb3BlOiBPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGU7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBASW5wdXQoJ2Zvcm1PcHRpb25zJylcbiAgc2V0IG9wdGlvbnMoZm9ybU9wdGlvbnM6IE9iamVjdEZvcm1PcHRpb25zKSB7XG4gICAgdGhpcy5kZWZhdWx0Rm9ybU9wdGlvbnMgPSBmb3JtT3B0aW9ucztcbiAgICB0aGlzLmZvcm1PcHRpb25zID0gXy5jbG9uZURlZXAoZm9ybU9wdGlvbnMpO1xuICAgIHRoaXMuaW5pdCgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2dnZXI6IExvZ2dlcixcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBmb3JtU2NyaXB0U2VydmljZTogT2JqZWN0Rm9ybVNjcmlwdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtSGVscGVyU2VydmljZTogT2JqZWN0Rm9ybUhlbHBlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgfVxuXG4gIC8vIGluaXRpYWxpemUgdGhlIGZvcm0gYmFzZWQgb24gdGhlIHByb3ZpZGVkIGZvcm0gb3B0aW9uc1xuICBwcml2YXRlIGluaXQoKSB7XG4gICAgdGhpcy5mb3JtID0gbnVsbDtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmVBbGwoKTtcbiAgICAgIHRoaXMuYnVpbGRSZWFjdGl2ZUZvcm0odGhpcy5mb3JtT3B0aW9ucyB8fCB7fSk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRPcHRpb25zKCkge1xuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMuZGVmYXVsdEZvcm1PcHRpb25zO1xuICB9XG5cbiAgcHVibGljIGZvY3VzRm9ybSgpIHtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLmZvY3VzKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0Rm9ybURhdGEoZGF0YSkge1xuICAgIHRoaXMuZm9ybU9wdGlvbnMuZGF0YSA9IGRhdGE7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmluaXQoKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHRyYWN0cyB0aGUgdmFsdWVzIGZyb20gdGhlIGZvcm0gbW9kZWwuIEVhY2ggZm9ybSB2YWx1ZSBpcyByZXByZXNlbnRlZCBieSBvbmVcbiAgICogcHJvcGVydHkgb24gdGhlIHJlc3VsdCBvYmplY3QgaG9sZGluZyB0aGUgZmllbGRzIHZhbHVlLiBUaGUga2V5cyAocHJvcGVydGllcykgYXJlIHRoZSBgbmFtZWBcbiAgICogcHJvcGVydGllcyBvZiB0aGUgZm9ybSBlbGVtZW50IChpbiBTRUFSQ0ggc2l0dWF0aW9uIHRoZSBgcW5hbWVgIGZpZWxkIGlzIHVzZWQpLlxuICAgKlxuICAgKiBIb3cgdmFsdWVzIGFyZSBleHRyYWN0ZWQgaXMgaW5mbHVlbmNlZCBieSB0aGUgZm9ybXMgc2l0dWF0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJuIG9iamVjdCBvZiBrZXkgdmFsdWUgcGFpcnNcbiAgICovXG4gIHB1YmxpYyBnZXRGb3JtRGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtVG9EYXRhKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0Rm9ybVByaXN0aW5lKCkge1xuICAgIHRoaXMuZm9ybS5tYXJrQXNQcmlzdGluZSgpO1xuICB9XG5cbiAgLy8gcmVzZXQgdGhlIGZvcm0gdG8gaXRzIGluaXRpYWwgc3RhdGVcbiAgcHVibGljIHJlc2V0Rm9ybSgpIHtcbiAgICB0aGlzLmluaXRPcHRpb25zKCk7XG4gICAgdGhpcy5lbWl0Rm9ybUNoYW5nZWRFdmVudCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG9ic2VydmVkIG1vZGVsIHRoYXQgd2FzIHBhc3NlZCB0byB0aGUgY3VycmVudCBmb3JtIHNjcmlwdCBydW5uaW5nLiBJZiB0aGVyZSBpc1xuICAgKiBubyBmb3JtIHNjcmlwdCwgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gTlVMTC5cbiAgICogQHJldHVybnNcbiAgICovXG4gIHB1YmxpYyBnZXRPYnNlcnZlZFNjcmlwdE1vZGVsKCkge1xuICAgIHJldHVybiB0aGlzLnNjcmlwdGluZ1Njb3BlID8gdGhpcy5zY3JpcHRpbmdTY29wZS5nZXRNb2RlbCgpIDogbnVsbDtcbiAgfVxuXG4gIC8vIENyZWF0ZSBhIHJlYWN0aXZlIGZvcm0gZnJvbSB0aGUgZW5haW8gZm9ybSBtb2RlbFxuICBwcml2YXRlIGJ1aWxkUmVhY3RpdmVGb3JtKGZvcm1PcHRpb25zKSB7XG4gICAgY29uc3QgZm9ybUdlblJlczogRm9ybUdlblJlc3VsdCA9IHRoaXMuZm9ybUhlbHBlclNlcnZpY2UuYnVpbGRSZWFjdGl2ZUZvcm0oXG4gICAgICBmb3JtT3B0aW9ucywgdGhpcy5mb3JtU2NyaXB0U2VydmljZSwgdGhpcy5pc0lubmVyVGFibGVGb3JtXG4gICAgKTtcbiAgICB0aGlzLmZvcm0gPSBmb3JtR2VuUmVzLmZvcm07XG4gICAgdGhpcy5zY3JpcHRpbmdTY29wZSA9IGZvcm1HZW5SZXMuc2NyaXB0aW5nU2NvcGU7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gZm9ybUdlblJlcy5jb250cm9sVmFsdWVTdWJzY3JpcHRpb25zO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZm9ybSkgcmV0dXJuO1xuICAgICAgbGV0IGZvcm1XYXRjaCA9IHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoNTAwKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiAhZm9ybVdhdGNoLmNsb3NlZCAmJiB0aGlzLmVtaXRGb3JtQ2hhbmdlZEV2ZW50KCkpO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goZm9ybVdhdGNoKTtcbiAgICAgIHRoaXMub25Gb3JtUmVhZHkuZW1pdCgpO1xuICAgICAgdGhpcy5lbWl0Rm9ybUNoYW5nZWRFdmVudChmYWxzZSk7XG4gICAgfSwgMzAwKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEZvcm1DaGFuZ2VkRXZlbnQoY29tcGFyZSA9IHRydWUpIHtcbiAgICAvLyBjaGVjayBpZiBpbmRleGRhdGEgaGFzIGJlZW4gY2hhbmdlZFxuICAgIGxldCBjdXJyZW50Rm9ybURhdGEgPSB0aGlzLmdldEZvcm1EYXRhKCk7XG4gICAgbGV0IGlkeENoYW5nZSA9IGNvbXBhcmUgPyBKU09OLnN0cmluZ2lmeSh0aGlzLmZvcm1EYXRhKSAhPT0gSlNPTi5zdHJpbmdpZnkoY3VycmVudEZvcm1EYXRhKSA6IGZhbHNlO1xuXG4gICAgdGhpcy5mb3JtRGF0YSA9IFV0aWxzLmZvcm1EYXRhUGFyc2UoVXRpbHMuZm9ybURhdGFTdHJpbmdpZnkoY3VycmVudEZvcm1EYXRhKSk7XG4gICAgaWYgKHRoaXMuZm9ybSkge1xuICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VkLmVtaXQoe1xuICAgICAgICBpbnZhbGlkOiB0aGlzLmZvcm0uaW52YWxpZCxcbiAgICAgICAgZGlydHk6IHRoaXMuZm9ybS5kaXJ0eSxcbiAgICAgICAgZGF0YTogdGhpcy5mb3JtRGF0YSxcbiAgICAgICAgaW5kZXhkYXRhQ2hhbmdlZDogaWR4Q2hhbmdlXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdCB0aGUgdmFsdWVzIGZyb20gdGhlIGZvcm1cbiAgICovXG4gIHByaXZhdGUgZm9ybVRvRGF0YSgpIHtcblxuICAgIHJldHVybiB0aGlzLmZvcm1IZWxwZXJTZXJ2aWNlLmV4dHJhY3RGb3JtRGF0YShcbiAgICAgIHRoaXMuZm9ybSxcbiAgICAgIHRoaXMuZm9ybU9wdGlvbnMuZm9ybU1vZGVsLnNpdHVhdGlvbixcbiAgICAgIHRoaXMuZm9ybU9wdGlvbnMuZGF0YSxcbiAgICAgIHRoaXMuaXNJbm5lclRhYmxlRm9ybVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlQWxsKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvLyB1bnN1YnNjcmliZSBmcm9tIGFsbCB2YWx1ZSBjaGFuZ2UgbGlzdGVuZXJzIGZvciB0aGUgY3VycmVudCBmb3JtXG4gIC8vIHRvIGF2b2lkIG1lbW9yeSBsZWFrcy4gVGhpcyBtZXRob2Qgd2lsbCBhbHNvIGJlIGNhbGxlZCBldmVyeSB0aW1lXG4gIC8vIGEgbmV3IGZvcm0gaXMgcmVuZGVyZWQgdG8gZ2V0IHJpZCBvZiB0aGUgb2xkIGZvcm0gZWxlbWVudCBzdWJzY3JpcHRpb25zXG4gIHByaXZhdGUgdW5zdWJzY3JpYmVBbGwoKSB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd1bnN1YnNjcmliZWQgZnJvbSAnICsgdGhpcy5zdWJzY3JpcHRpb25zLmxlbmd0aCArICcgdmFsdWUgY2hhbmdlIGxpc3RlbmVycy4nKTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImVvLW9iamVjdC1mb3JtXCIgKm5nSWY9XCJmb3JtICYmIGZvcm1PcHRpb25zXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgZW9SdGxBd2FyZT5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZWxlbWVudC13cmFwIGNvcmVcIj5cbiAgICA8ZW8tZm9ybS1ncm91cCBbZ3JvdXBdPVwiZm9ybS5nZXQoJ2NvcmUnKVwiIFtzaXR1YXRpb25dPVwiZm9ybU9wdGlvbnMuZm9ybU1vZGVsLnNpdHVhdGlvblwiPjwvZW8tZm9ybS1ncm91cD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWVsZW1lbnQtd3JhcCBkYXRhXCI+XG4gICAgPGVvLWZvcm0tZ3JvdXAgW2dyb3VwXT1cImZvcm0uZ2V0KCdkYXRhJylcIiBbc2l0dWF0aW9uXT1cImZvcm1PcHRpb25zLmZvcm1Nb2RlbC5zaXR1YXRpb25cIj48L2VvLWZvcm0tZ3JvdXA+XG4gIDwvZGl2PlxuPC9kaXY+XG5cblxuXG5cbiJdfQ==
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQVMsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFFcEMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBSzVDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDOzs7Ozs7Ozs7QUFZeEYsTUFBTSxPQUFPLG1CQUFtQjtJQW1COUIsSUFDSSxPQUFPLENBQUMsV0FBOEI7UUFDeEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFdBQVcsQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFBb0IsTUFBYyxFQUN4QixVQUFzQixFQUN0QixpQkFBMEMsRUFDMUMsaUJBQTBDLEVBQzFDLEtBQXdCO1FBSmQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUN4QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBeUI7UUFDMUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF5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YztRQUNwQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO1lBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLDBCQUEwQixDQUFDLENBQUM7WUFDakcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7O2dIQTFKVSxtQkFBbUI7b0dBQW5CLG1CQUFtQix5TUFGbkIsQ0FBQyx1QkFBdUIsQ0FBQywwQkM1QnRDLDRiQVlBOzJGRGtCYSxtQkFBbUI7a0JBUi9CLFNBQVM7K0JBQ0UsZ0JBQWdCLGFBS2YsQ0FBQyx1QkFBdUIsQ0FBQztrT0FJM0IsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTTtnQkFjSCxPQUFPO3NCQURWLEtBQUs7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG9nZ2VyLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7Y2xvbmVEZWVwfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50fSBmcm9tICcuLi9mb3JtLXN0YXR1cy1jaGFuZ2VkLWV2ZW50LmludGVyZmFjZSc7XG5pbXBvcnQge0Zvcm1HZW5SZXN1bHQsIE9iamVjdEZvcm1IZWxwZXJTZXJ2aWNlfSBmcm9tICcuLi9vYmplY3QtZm9ybS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQge09iamVjdEZvcm1PcHRpb25zfSBmcm9tICcuLi9vYmplY3QtZm9ybS1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQge09iamVjdEZvcm1TY3JpcHRTZXJ2aWNlfSBmcm9tICcuL29iamVjdC1mb3JtLXNjcmlwdC9vYmplY3QtZm9ybS1zY3JpcHQuc2VydmljZSc7XG5pbXBvcnQge09iamVjdEZvcm1TY3JpcHRpbmdTY29wZX0gZnJvbSAnLi9vYmplY3QtZm9ybS1zY3JpcHQvb2JqZWN0LWZvcm0tc2NyaXB0aW5nLXNjb3BlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1vYmplY3QtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3QtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29iamVjdC1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG4gIC8vIGRlZmluZSAnY2hpbGQgb25seScgc2VydmljZXMgZm9yIHRoZSBmb3JtIHdpdGhvdXQgc2V0dGluZyBpdCB1cCBvbiB0aGUgbW9kdWxlXG4gIC8vIHdoaWNoIHdvdWxkIGNhdXNlIHRoZW0gdG8gYmUgcHJvcGFnYXRlZCB0byB0aGUgd2hvbGUgYXBwbGljYXRpb25cbiAgcHJvdmlkZXJzOiBbT2JqZWN0Rm9ybVNjcmlwdFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKSBpc0lubmVyVGFibGVGb3JtOiBib29sZWFuO1xuICAvLyB0cmlnZ2VyZWQgd2hlbiB0aGUgZm9ybXMgc3RhdGUgaGFzIGJlZW4gY2hhbmdlZFxuICBAT3V0cHV0KCkgc3RhdHVzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybVN0YXR1c0NoYW5nZWRFdmVudD4oKTtcbiAgLy8gaGFuZGxlciB0byBiZSBleGVjdXRlZCBhZnRlciB0aGUgZm9ybSBoYXMgYmVlbiBzZXQgdXBcbiAgQE91dHB1dCgpIG9uRm9ybVJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyBmb3JtT3B0aW9uczogT2JqZWN0Rm9ybU9wdGlvbnM7XG4gIHB1YmxpYyBkZWZhdWx0Rm9ybU9wdGlvbnM6IE9iamVjdEZvcm1PcHRpb25zO1xuICAvLyB0aGUgYWN0dWFsIGZvcm0gaW5zdGFuY2VcbiAgcHVibGljIGZvcm07XG4gIC8vIHByb3BlcnR5IGZvciBob2xkaW5nIHRoZSBmb3JtcyBkYXRhIHVzZWQgZm9yIGNvbXBhcmlzb24gd2hlbiBhIGZvcm0tY2hhbmdlZC1ldmVudFxuICAvLyBpcyBmZXRjaGVkIHRvIGluZGljYXRlIHdoZXIgb3Igbm90IHRoZSBpbmRleGRhdGEgd2VyZSBjaGFuZ2VkIG9yIGp1c3QgdGhlIHByb3BlcnRpZXNcbiAgLy8gb2YgdGhlIGZvcm0gZWxlbWVudHMgKGVnLiBmb3JtIHNjcmlwdCBzZXR0aW5nIGZpZWxkcyB0byByZWFkb25seSlcbiAgcHJpdmF0ZSBmb3JtRGF0YTogYW55O1xuICBwcml2YXRlIHNjcmlwdGluZ1Njb3BlOiBPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGU7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBASW5wdXQoJ2Zvcm1PcHRpb25zJylcbiAgc2V0IG9wdGlvbnMoZm9ybU9wdGlvbnM6IE9iamVjdEZvcm1PcHRpb25zKSB7XG4gICAgdGhpcy5kZWZhdWx0Rm9ybU9wdGlvbnMgPSBmb3JtT3B0aW9ucztcbiAgICB0aGlzLmZvcm1PcHRpb25zID0gY2xvbmVEZWVwKGZvcm1PcHRpb25zKTtcbiAgICB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgZm9ybVNjcmlwdFNlcnZpY2U6IE9iamVjdEZvcm1TY3JpcHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybUhlbHBlclNlcnZpY2U6IE9iamVjdEZvcm1IZWxwZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gIH1cblxuICAvLyBpbml0aWFsaXplIHRoZSBmb3JtIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBmb3JtIG9wdGlvbnNcbiAgcHJpdmF0ZSBpbml0KCkge1xuICAgIHRoaXMuZm9ybSA9IG51bGw7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnVuc3Vic2NyaWJlQWxsKCk7XG4gICAgICB0aGlzLmJ1aWxkUmVhY3RpdmVGb3JtKHRoaXMuZm9ybU9wdGlvbnMgfHwge30pO1xuICAgIH0sIDApO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0T3B0aW9ucygpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmRlZmF1bHRGb3JtT3B0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBmb2N1c0Zvcm0oKSB7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS5mb2N1cygpO1xuICB9XG5cbiAgcHVibGljIHNldEZvcm1EYXRhKGRhdGEpIHtcbiAgICB0aGlzLmZvcm1PcHRpb25zLmRhdGEgPSBkYXRhO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pbml0KCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdHMgdGhlIHZhbHVlcyBmcm9tIHRoZSBmb3JtIG1vZGVsLiBFYWNoIGZvcm0gdmFsdWUgaXMgcmVwcmVzZW50ZWQgYnkgb25lXG4gICAqIHByb3BlcnR5IG9uIHRoZSByZXN1bHQgb2JqZWN0IGhvbGRpbmcgdGhlIGZpZWxkcyB2YWx1ZS4gVGhlIGtleXMgKHByb3BlcnRpZXMpIGFyZSB0aGUgYG5hbWVgXG4gICAqIHByb3BlcnRpZXMgb2YgdGhlIGZvcm0gZWxlbWVudCAoaW4gU0VBUkNIIHNpdHVhdGlvbiB0aGUgYHFuYW1lYCBmaWVsZCBpcyB1c2VkKS5cbiAgICpcbiAgICogSG93IHZhbHVlcyBhcmUgZXh0cmFjdGVkIGlzIGluZmx1ZW5jZWQgYnkgdGhlIGZvcm1zIHNpdHVhdGlvbi5cbiAgICpcbiAgICogQHJldHVybiBvYmplY3Qgb2Yga2V5IHZhbHVlIHBhaXJzXG4gICAqL1xuICBwdWJsaWMgZ2V0Rm9ybURhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVRvRGF0YSgpO1xuICB9XG5cbiAgcHVibGljIHNldEZvcm1QcmlzdGluZSgpIHtcbiAgICB0aGlzLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcbiAgfVxuXG4gIC8vIHJlc2V0IHRoZSBmb3JtIHRvIGl0cyBpbml0aWFsIHN0YXRlXG4gIHB1YmxpYyByZXNldEZvcm0oKSB7XG4gICAgdGhpcy5pbml0T3B0aW9ucygpO1xuICAgIHRoaXMuZW1pdEZvcm1DaGFuZ2VkRXZlbnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBvYnNlcnZlZCBtb2RlbCB0aGF0IHdhcyBwYXNzZWQgdG8gdGhlIGN1cnJlbnQgZm9ybSBzY3JpcHQgcnVubmluZy4gSWYgdGhlcmUgaXNcbiAgICogbm8gZm9ybSBzY3JpcHQsIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIE5VTEwuXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgZ2V0T2JzZXJ2ZWRTY3JpcHRNb2RlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5zY3JpcHRpbmdTY29wZSA/IHRoaXMuc2NyaXB0aW5nU2NvcGUuZ2V0TW9kZWwoKSA6IG51bGw7XG4gIH1cblxuICAvLyBDcmVhdGUgYSByZWFjdGl2ZSBmb3JtIGZyb20gdGhlIGVuYWlvIGZvcm0gbW9kZWxcbiAgcHJpdmF0ZSBidWlsZFJlYWN0aXZlRm9ybShmb3JtT3B0aW9ucykge1xuICAgIGNvbnN0IGZvcm1HZW5SZXM6IEZvcm1HZW5SZXN1bHQgPSB0aGlzLmZvcm1IZWxwZXJTZXJ2aWNlLmJ1aWxkUmVhY3RpdmVGb3JtKFxuICAgICAgZm9ybU9wdGlvbnMsIHRoaXMuZm9ybVNjcmlwdFNlcnZpY2UsIHRoaXMuaXNJbm5lclRhYmxlRm9ybVxuICAgICk7XG4gICAgdGhpcy5mb3JtID0gZm9ybUdlblJlcy5mb3JtO1xuICAgIHRoaXMuc2NyaXB0aW5nU2NvcGUgPSBmb3JtR2VuUmVzLnNjcmlwdGluZ1Njb3BlO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IGZvcm1HZW5SZXMuY29udHJvbFZhbHVlU3Vic2NyaXB0aW9ucztcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmZvcm0pIHJldHVybjtcbiAgICAgIGxldCBmb3JtV2F0Y2ggPSB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDUwMCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gIWZvcm1XYXRjaC5jbG9zZWQgJiYgdGhpcy5lbWl0Rm9ybUNoYW5nZWRFdmVudCgpKTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGZvcm1XYXRjaCk7XG4gICAgICB0aGlzLm9uRm9ybVJlYWR5LmVtaXQoKTtcbiAgICAgIHRoaXMuZW1pdEZvcm1DaGFuZ2VkRXZlbnQoZmFsc2UpO1xuICAgIH0sIDMwMCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRGb3JtQ2hhbmdlZEV2ZW50KGNvbXBhcmUgPSB0cnVlKSB7XG4gICAgLy8gY2hlY2sgaWYgaW5kZXhkYXRhIGhhcyBiZWVuIGNoYW5nZWRcbiAgICBsZXQgY3VycmVudEZvcm1EYXRhID0gdGhpcy5nZXRGb3JtRGF0YSgpO1xuICAgIGxldCBpZHhDaGFuZ2UgPSBjb21wYXJlID8gSlNPTi5zdHJpbmdpZnkodGhpcy5mb3JtRGF0YSkgIT09IEpTT04uc3RyaW5naWZ5KGN1cnJlbnRGb3JtRGF0YSkgOiBmYWxzZTtcblxuICAgIHRoaXMuZm9ybURhdGEgPSBVdGlscy5mb3JtRGF0YVBhcnNlKFV0aWxzLmZvcm1EYXRhU3RyaW5naWZ5KGN1cnJlbnRGb3JtRGF0YSkpO1xuICAgIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgaW52YWxpZDogdGhpcy5mb3JtLmludmFsaWQsXG4gICAgICAgIGRpcnR5OiB0aGlzLmZvcm0uZGlydHksXG4gICAgICAgIGRhdGE6IHRoaXMuZm9ybURhdGEsXG4gICAgICAgIGluZGV4ZGF0YUNoYW5nZWQ6IGlkeENoYW5nZVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3QgdGhlIHZhbHVlcyBmcm9tIHRoZSBmb3JtXG4gICAqL1xuICBwcml2YXRlIGZvcm1Ub0RhdGEoKSB7XG5cbiAgICByZXR1cm4gdGhpcy5mb3JtSGVscGVyU2VydmljZS5leHRyYWN0Rm9ybURhdGEoXG4gICAgICB0aGlzLmZvcm0sXG4gICAgICB0aGlzLmZvcm1PcHRpb25zLmZvcm1Nb2RlbC5zaXR1YXRpb24sXG4gICAgICB0aGlzLmZvcm1PcHRpb25zLmRhdGEsXG4gICAgICB0aGlzLmlzSW5uZXJUYWJsZUZvcm1cbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy51bnN1YnNjcmliZUFsbCgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLy8gdW5zdWJzY3JpYmUgZnJvbSBhbGwgdmFsdWUgY2hhbmdlIGxpc3RlbmVycyBmb3IgdGhlIGN1cnJlbnQgZm9ybVxuICAvLyB0byBhdm9pZCBtZW1vcnkgbGVha3MuIFRoaXMgbWV0aG9kIHdpbGwgYWxzbyBiZSBjYWxsZWQgZXZlcnkgdGltZVxuICAvLyBhIG5ldyBmb3JtIGlzIHJlbmRlcmVkIHRvIGdldCByaWQgb2YgdGhlIG9sZCBmb3JtIGVsZW1lbnQgc3Vic2NyaXB0aW9uc1xuICBwcml2YXRlIHVuc3Vic2NyaWJlQWxsKCkge1xuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndW5zdWJzY3JpYmVkIGZyb20gJyArIHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGggKyAnIHZhbHVlIGNoYW5nZSBsaXN0ZW5lcnMuJyk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJlby1vYmplY3QtZm9ybVwiICpuZ0lmPVwiZm9ybSAmJiBmb3JtT3B0aW9uc1wiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGVvUnRsQXdhcmU+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWVsZW1lbnQtd3JhcCBjb3JlXCI+XG4gICAgPGVvLWZvcm0tZ3JvdXAgW2dyb3VwXT1cImZvcm0uZ2V0KCdjb3JlJylcIiBbc2l0dWF0aW9uXT1cImZvcm1PcHRpb25zLmZvcm1Nb2RlbC5zaXR1YXRpb25cIj48L2VvLWZvcm0tZ3JvdXA+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1lbGVtZW50LXdyYXAgZGF0YVwiPlxuICAgIDxlby1mb3JtLWdyb3VwIFtncm91cF09XCJmb3JtLmdldCgnZGF0YScpXCIgW3NpdHVhdGlvbl09XCJmb3JtT3B0aW9ucy5mb3JtTW9kZWwuc2l0dWF0aW9uXCI+PC9lby1mb3JtLWdyb3VwPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG5cblxuXG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { switchMap, tap, debounceTime } from 'rxjs/operators';
|
|
2
2
|
import { Component, HostListener, HostBinding, Output, EventEmitter, Input } from '@angular/core';
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
|
-
import
|
|
4
|
+
import { groupBy } from 'lodash-es';
|
|
5
5
|
import { SearchQuery, SearchState, Utils } from '@eo-sdk/core';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "@eo-sdk/core";
|
|
@@ -77,7 +77,7 @@ export class QuickSearchComponent {
|
|
|
77
77
|
}
|
|
78
78
|
});
|
|
79
79
|
// group by object type group
|
|
80
|
-
this.resultGroups =
|
|
80
|
+
this.resultGroups = groupBy(aggTypes.sort(Utils.sortValues('label')), function (t) {
|
|
81
81
|
return t.group;
|
|
82
82
|
});
|
|
83
83
|
this.resultTypes = [];
|
|
@@ -217,4 +217,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
217
217
|
type: HostListener,
|
|
218
218
|
args: ['keydown', ['$event']]
|
|
219
219
|
}] } });
|
|
220
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2stc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3F1aWNrLXNlYXJjaC9xdWljay1zZWFyY2gvcXVpY2stc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3F1aWNrLXNlYXJjaC9xdWljay1zZWFyY2gvcXVpY2stc2VhcmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBQyxTQUFTLEVBQTZCLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVksTUFBTSxlQUFlLENBQUM7QUFHdEksT0FBTyxFQUFDLFVBQVUsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBa0UsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBRzdIOzs7Ozs7OztHQVFHO0FBT0gsTUFBTSxPQUFPLG9CQUFvQjtJQThCL0IscUNBQXFDO0lBRXJDLFlBQW9CLGFBQTRCLEVBQ3RDLE1BQWMsRUFDZCxVQUFzQixFQUN0QixPQUE2QixFQUM3QixnQkFBa0MsRUFDbEMsYUFBNEIsRUFDNUIsRUFBc0I7UUFOWixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUN0QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQUM3QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBbkNoQyxlQUFVLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUUvQixVQUFLLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUMxQixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRWQsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFFakIsYUFBUSxHQUFHO1lBQ1QsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNULElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQztRQVlGLDBDQUEwQztRQUNoQyxhQUFRLEdBQW9DLElBQUksWUFBWSxFQUFFLENBQUM7UUFDekUsa0RBQWtEO1FBQ3hDLGtCQUFhLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFhakUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsVUFBVTthQUNaLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxZQUFZO2FBQy9CLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNYLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1lBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUN0QyxDQUFDLENBQUMsRUFDRixZQUFZLENBQUMsSUFBSSxDQUFDLEVBQ2xCLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxDQUFDLENBQUMsVUFBdUIsRUFBRSxFQUFFO1lBRXJDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO2dCQUM3QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO2dCQUU1QyxpQ0FBaUM7Z0JBQ2pDLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQztnQkFDbEIsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUU1QyxJQUFJLElBQUksR0FBZSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDM0QsSUFBSSxJQUFJLEVBQUU7d0JBQ1IsUUFBUSxDQUFDLElBQUksQ0FBQzs0QkFDWixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDOzRCQUN0QixLQUFLLEVBQUUsQ0FBQzs0QkFDUixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxHQUFHOzRCQUN4QixJQUFJLEVBQUUsSUFBSTt5QkFDWCxDQUFDLENBQUM7cUJBQ0o7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsNkJBQTZCO2dCQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDO29CQUNqRixPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ2pCLENBQUMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO2dCQUN0QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDM0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25FLENBQUMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO29CQUNqQixLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVO29CQUNqQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVk7aUJBQzFCLENBQUMsQ0FBQzthQUNKO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO29CQUNqQixLQUFLLEVBQUUsQ0FBQyxDQUFDO29CQUNULE1BQU0sRUFBRSxFQUFFO2lCQUNYLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQWtCLEVBQUUsRUFBRTtZQUNoRixJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFO2dCQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7YUFDNUI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBYTtRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRU8sU0FBUztRQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUN6QixJQUFJLENBQUMsYUFBYTtpQkFDZixjQUFjLENBQUMsRUFBQyxJQUFJLEVBQUUsRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxFQUFDLENBQUM7aUJBQ2hFLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDZixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDckIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDWixDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZixDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDMUIsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNSLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELEtBQUssQ0FBQyxLQUFLO1FBQ1QsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxFQUFFLEVBQUU7Z0JBQ3RCLEtBQUs7Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUU7b0JBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztpQkFDbkQ7Z0JBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDdEU7aUJBQU0sSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRTtnQkFDN0IsT0FBTztnQkFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN0QixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFO29CQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7aUJBQ3pCO2dCQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ3RFO2lCQUFNO2dCQUNMLG1DQUFtQztnQkFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRztvQkFDZCxLQUFLLEVBQUUsQ0FBQyxDQUFDO29CQUNULElBQUksRUFBRSxJQUFJO2lCQUNYLENBQUM7YUFDSDtTQUNGO0lBQ0gsQ0FBQztJQUdELFNBQVMsQ0FBQyxLQUFLO1FBQ2IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRTtZQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFTSxhQUFhLENBQUMsVUFBdUI7UUFFMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDckIsSUFBSSxVQUFVLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNqQztpQkFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNqRTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7YUFDdkI7WUFFRCxNQUFNLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQy9FLE1BQU0sYUFBYSxHQUFxQixFQUFDLFdBQVcsRUFBRSxFQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUMsRUFBQyxDQUFDO1lBQzNFLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzlCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDcEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxlQUFlLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBO2dCQUM3RSxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxHQUFFLFdBQVcsQ0FBQztnQkFDbEYsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO2dCQUN6QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDbkI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQzthQUNsRDtTQUVGO0lBQ0gsQ0FBQztJQUVPLFVBQVU7UUFDaEIscUJBQXFCO1FBQ3JCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDL0QsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkMsQ0FBQzs7aUhBN01VLG9CQUFvQjtxR0FBcEIsb0JBQW9CLCtTQ3pCakMsODdEQXNDQTsyRkRiYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsaUJBQWlCO2lSQXVCRyxnQkFBZ0I7c0JBQTdDLFdBQVc7dUJBQUMsZUFBZTtnQkFLbkIsV0FBVztzQkFBbkIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUVHLGFBQWE7c0JBQXRCLE1BQU07Z0JBdUdQLEtBQUs7c0JBREosWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBNEJqQyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtzd2l0Y2hNYXAsIHRhcCwgZGVib3VuY2VUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0NvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBIb3N0QmluZGluZywgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXIsIE5hdmlnYXRpb25FeHRyYXN9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1VudHlwZWRGb3JtR3JvdXAsIFVudHlwZWRGb3JtQnVpbGRlcn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtRdWlja1NlYXJjaFJlc3VsdH0gZnJvbSAnLi9xdWljay1zZWFyY2gtcmVzdWx0LmludGVyZmFjZSc7XG5pbXBvcnQge1NlYXJjaFF1ZXJ5LCBTZWFyY2hTdGF0ZSwgU2VhcmNoU2VydmljZSwgU3lzdGVtU2VydmljZSwgT2JqZWN0VHlwZSwgTm90aWZpY2F0aW9uc1NlcnZpY2UsIFV0aWxzfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtBcHBTZWFyY2hTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9zZWFyY2gvYXBwLXNlYXJjaC5zZXJ2aWNlJztcblxuLyoqXG4gKiBRdWlja1NlYXJjaENvbXBvbmVudCBkaXNwbGF5cyBhIHNlYXJjaCBib3ggdGhhdCB0aGUgdXNlciBjYW4gdHlwZSBoaXMgcXVlcnkgdG8uXG4gKiBJdCByZXR1cm5zIGEgbGlzdCBvZiBtYXRjaGluZyBvYmplY3QgdHlwZXMgZ3JvdXBlZCBieSB0aGVpciBvYmplY3QgdHlwZSBncm91cCBhbmQgdGhlXG4gKiBudW1iZXIgb2YgaGl0cyBmb3IgZWFjaCB0eXBlLiBGdXJ0aGVybW9yZSBpdCdsbCBwcm92aWRlIHlvdSB3aXRoIHRoZSB0b3RhbCBudW1iZXIgb2ZcbiAqIGhpdHMgbWF0Y2hpbmcgdGhlIHVzZXJzIHF1ZXJ5LlxuICpcbiAqIFNldHRpbmcgdGhlIGNvbXBvbmVudHMgYHNob3dSZXN1bHRzYCBmbGFnIHRvIHRydWUsIHdpbGwgbWFrZSB0aGUgY29tcG9uZW50IHJlbmRlciB0aGVcbiAqIHJlc3VsdHMgb24gaXRzIG93bi4gSWYgeW91IGRvIHdhbnQgdG8gcHJvY2VzcyByZXN1bHRzIGJ5IHlvdXJzZWxmIHVzZSB0aGUgYG9uUmVzdWx0YCBjYWxsYmFjay5cbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1xdWljay1zZWFyY2gnLFxuICB0ZW1wbGF0ZVVybDogJy4vcXVpY2stc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcXVpY2stc2VhcmNoLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUXVpY2tTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgcXVlcnlTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcXVlcnlTdGF0ZSA9IG5ldyBTZWFyY2hTdGF0ZSgpO1xuICBhdXRvY29tcGxldGVSZXN1bHRzOiBzdHJpbmdbXTtcbiAgcXVlcnkgPSBuZXcgU2VhcmNoUXVlcnkoKTtcbiAgbGFzdFRlcm0gPSAnJztcbiAgcmVzdWx0R3JvdXBzO1xuICByZXN1bHRUeXBlcyA9IFtdO1xuICBjdHJsQ2xpY2tlZDogYm9vbGVhbjtcbiAgc2VsZWN0ZWQgPSB7XG4gICAgaW5kZXg6IC0xLFxuICAgIG5hbWU6IG51bGxcbiAgfTtcblxuICBzZWFyY2hGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBpbnZhbGlkVGVybTogYm9vbGVhbjtcbiAgbG9hZGluZzogYm9vbGVhbjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJlc3VsdHMnKSByZXN1bHRzQXZhaWxhYmxlO1xuXG4gIC8vIGZsYWcgd2hldGhlciBvciBub3QgdG8gcmVuZGVyIHJlc3VsdHMgYnkgdGhlIGNvbXBvbmVudCBpdHNlbGZcbiAgLy8gYnkgZGVmYXVsdCB0aGlzIGZsYXMgaXMgZmFsc2UgYW5kIHRoZSByZXN1bHQgd2lsbCBvbmx5IGJlIGVtaXR0ZWQgYnlcbiAgLy8gdGhlIGNvbXBvbmVudHMgb25SZXN1bHQgY2FsbGJhY2tcbiAgQElucHV0KCkgc2hvd1Jlc3VsdHM6IGJvb2xlYW47XG4gIC8vIHRyaWdnZXJlZCBlYWNoIHRpbWUgYSByZXN1bHQgaXMgZmV0Y2hlZFxuICBAT3V0cHV0KCkgb25SZXN1bHQ6IEV2ZW50RW1pdHRlcjxRdWlja1NlYXJjaFJlc3VsdD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIC8vIHRyaWdnZXJlZCB3aGVuIHRoZSBzZWFyY2ggdGVybSBoYXMgYmVlbiBjaGFuZ2VkXG4gIEBPdXRwdXQoKSBvbklucHV0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvLyBwcml2YXRlIG9iamVjdFR5cGVzOiBPYmplY3RUeXBlW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgdG9hc3RlcjogTm90aWZpY2F0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBTZWFyY2hTZXJ2aWNlOiBBcHBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIpIHtcblxuXG4gICAgdGhpcy5zZWFyY2hGb3JtID0gdGhpcy5mYi5ncm91cCh7c2VhcmNoSW5wdXQ6IFsnJ119KTtcblxuICAgIHRoaXMuc2VhcmNoRm9ybVxuICAgICAgLmdldCgnc2VhcmNoSW5wdXQnKS52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKHRlcm0pID0+IHtcbiAgICAgICAgICB0aGlzLm9uSW5wdXRDaGFuZ2UuZW1pdCh0ZXJtKTtcbiAgICAgICAgICB0aGlzLnF1ZXJ5LnRlcm0gPSB0ZXJtO1xuICAgICAgICAgIHRoaXMucmVzdWx0R3JvdXBzID0gW107XG4gICAgICAgICAgdGhpcy5yZXN1bHRUeXBlcyA9IFtdO1xuICAgICAgICAgIHRoaXMucmVzdWx0c0F2YWlsYWJsZSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMucXVlcnlTdGF0ZSA9IG5ldyBTZWFyY2hTdGF0ZSgpO1xuICAgICAgICB9KSxcbiAgICAgICAgZGVib3VuY2VUaW1lKDE1MDApLFxuICAgICAgICBzd2l0Y2hNYXAodGVybSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuYWdncmVnYXRlKCk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChxdWVyeVN0YXRlOiBTZWFyY2hTdGF0ZSkgPT4ge1xuXG4gICAgICAgIGlmICh0aGlzLnF1ZXJ5LnRlcm0pIHtcbiAgICAgICAgICB0aGlzLnF1ZXJ5U3RhdGUgPSBxdWVyeVN0YXRlO1xuICAgICAgICAgIHRoaXMucmVzdWx0c0F2YWlsYWJsZSA9ICFxdWVyeVN0YXRlLmlzRW1wdHk7XG5cbiAgICAgICAgICAvLyBtYXAgYWdncmVnYXRpb25zIHRvIHJlYWwgdHlwZXNcbiAgICAgICAgICBsZXQgYWdnVHlwZXMgPSBbXTtcbiAgICAgICAgICBxdWVyeVN0YXRlLmFnZ3JlZ2F0aW9ucy50eXBlLmZvckVhY2goKHYsIGspID0+IHtcblxuICAgICAgICAgICAgbGV0IHR5cGU6IE9iamVjdFR5cGUgPSB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0T2JqZWN0VHlwZShrKTtcbiAgICAgICAgICAgIGlmICh0eXBlKSB7XG4gICAgICAgICAgICAgIGFnZ1R5cGVzLnB1c2goe1xuICAgICAgICAgICAgICAgIGxhYmVsOiB0eXBlLmxhYmVsIHx8IGssXG4gICAgICAgICAgICAgICAgY291bnQ6IHYsXG4gICAgICAgICAgICAgICAgZ3JvdXA6IHR5cGUuZ3JvdXAgfHwgJzAnLFxuICAgICAgICAgICAgICAgIGRhdGE6IHR5cGVcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgLy8gZ3JvdXAgYnkgb2JqZWN0IHR5cGUgZ3JvdXBcbiAgICAgICAgICB0aGlzLnJlc3VsdEdyb3VwcyA9IF8uZ3JvdXBCeShhZ2dUeXBlcy5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ2xhYmVsJykpLCBmdW5jdGlvbiAodCkge1xuICAgICAgICAgICAgcmV0dXJuIHQuZ3JvdXA7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5yZXN1bHRUeXBlcyA9IFtdO1xuICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMucmVzdWx0R3JvdXBzKS5mb3JFYWNoKChrKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlc3VsdFR5cGVzID0gdGhpcy5yZXN1bHRUeXBlcy5jb25jYXQodGhpcy5yZXN1bHRHcm91cHNba10pO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMub25SZXN1bHQuZW1pdCh7XG4gICAgICAgICAgICB0b3RhbDogdGhpcy5xdWVyeVN0YXRlLnRvdGFsQ291bnQsXG4gICAgICAgICAgICBncm91cHM6IHRoaXMucmVzdWx0R3JvdXBzXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5vblJlc3VsdC5lbWl0KHtcbiAgICAgICAgICAgIHRvdGFsOiAtMSxcbiAgICAgICAgICAgIGdyb3VwczogW11cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLnF1ZXJ5U3Vic2NyaXB0aW9uID0gYXBwU2VhcmNoU2VydmljZS5xdWVyeSQuc3Vic2NyaWJlKChxdWVyeTogU2VhcmNoUXVlcnkpID0+IHtcbiAgICAgIGlmIChxdWVyeSAmJiBxdWVyeS50ZXJtKSB7XG4gICAgICAgIHRoaXMubGFzdFRlcm0gPSBxdWVyeS50ZXJtO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc2V0VGVybSh0ZXJtPzogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWFyY2hGb3JtLmdldCgnc2VhcmNoSW5wdXQnKS5wYXRjaFZhbHVlKHRlcm0gfHwgJycpO1xuICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZ2dyZWdhdGUoKTogT2JzZXJ2YWJsZTxTZWFyY2hTdGF0ZT4ge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgcmV0dXJuIE9ic2VydmFibGUuY3JlYXRlKG8gPT4ge1xuICAgICAgdGhpcy5pbnZhbGlkVGVybSA9IGZhbHNlO1xuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlXG4gICAgICAgIC5nZXRTZWFyY2hTdGF0ZSh7YWdnczoge3R5cGU6IHt9fSwgLi4udGhpcy5xdWVyeS5nZXRRdWVyeUpzb24oKX0pXG4gICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICBvLm5leHQocmVzKTtcbiAgICAgICAgICBvLmNvbXBsZXRlKCk7XG4gICAgICAgIH0sIFV0aWxzLnRocm93KF8gPT4ge1xuICAgICAgICAgIHRoaXMuaW52YWxpZFRlcm0gPSB0cnVlO1xuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIG8ubmV4dChuZXcgU2VhcmNoU3RhdGUoKSk7XG4gICAgICAgICAgby5jb21wbGV0ZSgpO1xuICAgICAgICB9KSk7XG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gIG9uS2V5KGV2ZW50KSB7XG4gICAgaWYgKHRoaXMuc2hvd1Jlc3VsdHMpIHtcbiAgICAgIGlmIChldmVudC53aGljaCA9PT0gMzgpIHtcbiAgICAgICAgLy8gdXBcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5pbmRleC0tO1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZC5pbmRleCA8IDApIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkLmluZGV4ID0gdGhpcy5yZXN1bHRUeXBlcy5sZW5ndGggLSAxO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQubmFtZSA9IHRoaXMucmVzdWx0VHlwZXNbdGhpcy5zZWxlY3RlZC5pbmRleF0uZGF0YS5uYW1lO1xuICAgICAgfSBlbHNlIGlmIChldmVudC53aGljaCA9PT0gNDApIHtcbiAgICAgICAgLy8gZG93blxuICAgICAgICB0aGlzLnNlbGVjdGVkLmluZGV4Kys7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkLmluZGV4ID49IHRoaXMucmVzdWx0VHlwZXMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZC5pbmRleCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RlZC5uYW1lID0gdGhpcy5yZXN1bHRUeXBlc1t0aGlzLnNlbGVjdGVkLmluZGV4XS5kYXRhLm5hbWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyByZXNldCBzZWxlY3Rpb24gb24gYW55IG90aGVyIGtleVxuICAgICAgICB0aGlzLnNlbGVjdGVkID0ge1xuICAgICAgICAgIGluZGV4OiAtMSxcbiAgICAgICAgICBuYW1lOiBudWxsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uS2V5RG93bihldmVudCkge1xuICAgIHRoaXMuY3RybENsaWNrZWQgPSBmYWxzZTtcbiAgICBpZiAoZXZlbnQud2hpY2ggPT09IDE3KSB7XG4gICAgICB0aGlzLmN0cmxDbGlja2VkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZXhlY3V0ZVNlYXJjaChvYmplY3RUeXBlPzogT2JqZWN0VHlwZSkge1xuXG4gICAgaWYgKCF0aGlzLmludmFsaWRUZXJtKSB7XG4gICAgICBpZiAob2JqZWN0VHlwZSkge1xuICAgICAgICB0aGlzLnF1ZXJ5LnR5cGVzID0gW29iamVjdFR5cGVdO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkLmluZGV4ICE9PSAtMSkge1xuICAgICAgICB0aGlzLnF1ZXJ5LnR5cGVzID0gW3RoaXMucmVzdWx0VHlwZXNbdGhpcy5zZWxlY3RlZC5pbmRleF0uZGF0YV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnF1ZXJ5LnR5cGVzID0gW107XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHVyaVBhcmFtID0gZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHRoaXMucXVlcnkuZ2V0UXVlcnlKc29uKCkpKTtcbiAgICAgIGNvbnN0IHVyaVBhcmFtUXVlcnk6IE5hdmlnYXRpb25FeHRyYXMgPSB7cXVlcnlQYXJhbXM6IHsncXVlcnknOiB1cmlQYXJhbX19O1xuICAgICAgY29uc29sZS5sb2codGhpcy5jdHJsQ2xpY2tlZCk7XG4gICAgICBpZiAodGhpcy5jdHJsQ2xpY2tlZCkge1xuICAgICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXModXJpUGFyYW1RdWVyeS5xdWVyeVBhcmFtcykudG9TdHJpbmcoKVxuICAgICAgICBjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdCgnL2Rhc2hib2FyZCcpWzBdICsgJy9yZXN1bHQ/JysgcXVlcnlQYXJhbXM7XG4gICAgICAgIHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpO1xuICAgICAgICB0aGlzLmN0cmxDbGlja2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvcmVzdWx0J10sIHVyaVBhcmFtUXVlcnkpO1xuICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c0lucHV0KCkge1xuICAgIC8vIGZvY3VzIHNlYXJjaCBpbnB1dFxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS5mb2N1cygpO1xuICAgIH0sIDIwMCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnF1ZXJ5U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJxdWljay1zZWFyY2hcIiBlb1J0bEF3YXJlPlxuXG4gIDxmb3JtIGNsYXNzPVwic2VhcmNoLWJveFwiIChuZ1N1Ym1pdCk9XCJleGVjdXRlU2VhcmNoKClcIlxuICAgICAgICBbbmdDbGFzc109XCJ7aW52YWxpZDogaW52YWxpZFRlcm19XCJcbiAgICAgICAgW2Zvcm1Hcm91cF09XCJzZWFyY2hGb3JtXCI+XG5cbiAgICA8ZW8taWNvbiAoY2xpY2spPVwiZXhlY3V0ZVNlYXJjaCgpXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfc2VhcmNoLnN2ZydcIj48L2VvLWljb24+XG4gICAgPGRpdiBjbGFzcz1cImlucHV0XCI+XG4gICAgICA8bGFiZWw+e3snZW8ucXVpY2tzZWFyY2gubGFiZWwnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxuICAgICAgPGlucHV0IGF1dG9mb2N1cz1cImF1dG9mb2N1c1wiIGZvcm1Db250cm9sTmFtZT1cInNlYXJjaElucHV0XCI+XG4gICAgPC9kaXY+XG4gICAgPGVvLWxvYWRpbmctc3Bpbm5lciAqbmdJZj1cImxvYWRpbmdcIiBbc2l6ZV09XCInc21hbGwnXCI+PC9lby1sb2FkaW5nLXNwaW5uZXI+XG4gICAgPGVvLWljb24gY2xhc3M9XCJzbWFsbFwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2NsZWFyLnN2ZydcIiBbaWNvblRpdGxlXT1cIignZW8uc2VhcmNoLmNsZWFyLnNlYXJjaCcgfCB0cmFuc2xhdGUpXCJcbiAgICAqbmdJZj1cInF1ZXJ5LnRlcm1cIiBbbmdDbGFzc109XCJ7YWN0aXZlOiBxdWVyeS50ZXJtfVwiIChjbGljayk9XCJzZXRUZXJtKClcIj48L2VvLWljb24+XG4gICAgPGVvLWljb24gY2xhc3M9XCJzbWFsbFwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3JlZnJlc2guc3ZnJ1wiIFtpY29uVGl0bGVdPVwiKCdlby5zZWFyY2gucmVzdWx0LnRlcm0nIHwgdHJhbnNsYXRlKSArICcgOiAmcXVvdDsnICsgbGFzdFRlcm0gKyAnJnF1b3Q7J1wiXG4gICAgKm5nSWY9XCJsYXN0VGVybSAmJiAhcXVlcnkudGVybVwiIChjbGljayk9XCJzZXRUZXJtKGxhc3RUZXJtKVwiPjwvZW8taWNvbj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb3VudFwiICpuZ0lmPVwic2hvd1Jlc3VsdHMgJiYgIXF1ZXJ5U3RhdGUuaXNFbXB0eVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudC10b3RhbFwiPnt7cXVlcnlTdGF0ZS50b3RhbENvdW50IHwgbG9jYWxlRGVjaW1hbH19PC9zcGFuPjxzcGFuIHRyYW5zbGF0ZT5lby5xdWlja3NlYXJjaC5oaXRzPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG5cbiAgPGRpdiBjbGFzcz1cInJlc3VsdFwiICpuZ0lmPVwic2hvd1Jlc3VsdHMgJiYgIXF1ZXJ5U3RhdGUuaXNFbXB0eVwiPlxuICAgIDxkaXYgY2xhc3M9XCJyXCI+PGRpdiBjbGFzcz1cInJpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXBcIiAqbmdGb3I9XCJsZXQga2V5IG9mIHJlc3VsdEdyb3VwcyB8IGtleXM7IGluZGV4IGFzIGlcIj5cbiAgICAgICAgPGgyICpuZ0lmPVwia2V5ICE9PSAnMCc7IGVsc2UgbWFpbmdyb3VwXCI+e3trZXl9fTwvaDI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbWFpbmdyb3VwPlxuICAgICAgICAgIDxoMiB0cmFuc2xhdGU+ZW8ucXVpY2tzZWFyY2gucmVzdWx0Lmdyb3VwLmdsb2JhbDwvaDI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInR5cGVcIiAqbmdGb3I9XCJsZXQgdHlwZSBvZiByZXN1bHRHcm91cHNba2V5XVwiIChjbGljayk9XCJleGVjdXRlU2VhcmNoKHR5cGUuZGF0YSlcIiBbbmdDbGFzc109XCJ7c2VsZWN0ZWQ6IHNlbGVjdGVkLm5hbWUgPT09IHR5cGUuZGF0YS5uYW1lfVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRcIj57e3R5cGUuY291bnR9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+e3t0eXBlLmxhYmVsfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2stc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3F1aWNrLXNlYXJjaC9xdWljay1zZWFyY2gvcXVpY2stc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3F1aWNrLXNlYXJjaC9xdWljay1zZWFyY2gvcXVpY2stc2VhcmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBQyxTQUFTLEVBQTZCLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVksTUFBTSxlQUFlLENBQUM7QUFHdEksT0FBTyxFQUFDLFVBQVUsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRWxDLE9BQU8sRUFBQyxXQUFXLEVBQUUsV0FBVyxFQUFrRSxLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFHN0g7Ozs7Ozs7O0dBUUc7QUFPSCxNQUFNLE9BQU8sb0JBQW9CO0lBOEIvQixxQ0FBcUM7SUFFckMsWUFBb0IsYUFBNEIsRUFDdEMsTUFBYyxFQUNkLFVBQXNCLEVBQ3RCLE9BQTZCLEVBQzdCLGdCQUFrQyxFQUNsQyxhQUE0QixFQUM1QixFQUFzQjtRQU5aLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ3RDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBQzdCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEs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Q2IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7O2lIQTdNVSxvQkFBb0I7cUdBQXBCLG9CQUFvQiwrU0N6QmpDLDg3REFzQ0E7MkZEYmEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGlCQUFpQjtpUkF1QkcsZ0JBQWdCO3NCQUE3QyxXQUFXO3VCQUFDLGVBQWU7Z0JBS25CLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTTtnQkFFRyxhQUFhO3NCQUF0QixNQUFNO2dCQXVHUCxLQUFLO3NCQURKLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTRCakMsU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7c3dpdGNoTWFwLCB0YXAsIGRlYm91bmNlVGltZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtDb21wb25lbnQsIEFmdGVyVmlld0luaXQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSG9zdEJpbmRpbmcsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGVyLCBOYXZpZ2F0aW9uRXh0cmFzfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUJ1aWxkZXJ9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7Z3JvdXBCeX0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7UXVpY2tTZWFyY2hSZXN1bHR9IGZyb20gJy4vcXVpY2stc2VhcmNoLXJlc3VsdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtTZWFyY2hRdWVyeSwgU2VhcmNoU3RhdGUsIFNlYXJjaFNlcnZpY2UsIFN5c3RlbVNlcnZpY2UsIE9iamVjdFR5cGUsIE5vdGlmaWNhdGlvbnNTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7QXBwU2VhcmNoU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvc2VhcmNoL2FwcC1zZWFyY2guc2VydmljZSc7XG5cbi8qKlxuICogUXVpY2tTZWFyY2hDb21wb25lbnQgZGlzcGxheXMgYSBzZWFyY2ggYm94IHRoYXQgdGhlIHVzZXIgY2FuIHR5cGUgaGlzIHF1ZXJ5IHRvLlxuICogSXQgcmV0dXJucyBhIGxpc3Qgb2YgbWF0Y2hpbmcgb2JqZWN0IHR5cGVzIGdyb3VwZWQgYnkgdGhlaXIgb2JqZWN0IHR5cGUgZ3JvdXAgYW5kIHRoZVxuICogbnVtYmVyIG9mIGhpdHMgZm9yIGVhY2ggdHlwZS4gRnVydGhlcm1vcmUgaXQnbGwgcHJvdmlkZSB5b3Ugd2l0aCB0aGUgdG90YWwgbnVtYmVyIG9mXG4gKiBoaXRzIG1hdGNoaW5nIHRoZSB1c2VycyBxdWVyeS5cbiAqXG4gKiBTZXR0aW5nIHRoZSBjb21wb25lbnRzIGBzaG93UmVzdWx0c2AgZmxhZyB0byB0cnVlLCB3aWxsIG1ha2UgdGhlIGNvbXBvbmVudCByZW5kZXIgdGhlXG4gKiByZXN1bHRzIG9uIGl0cyBvd24uIElmIHlvdSBkbyB3YW50IHRvIHByb2Nlc3MgcmVzdWx0cyBieSB5b3Vyc2VsZiB1c2UgdGhlIGBvblJlc3VsdGAgY2FsbGJhY2suXG4gKi9cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tcXVpY2stc2VhcmNoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3F1aWNrLXNlYXJjaC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3F1aWNrLXNlYXJjaC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFF1aWNrU2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHF1ZXJ5U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHF1ZXJ5U3RhdGUgPSBuZXcgU2VhcmNoU3RhdGUoKTtcbiAgYXV0b2NvbXBsZXRlUmVzdWx0czogc3RyaW5nW107XG4gIHF1ZXJ5ID0gbmV3IFNlYXJjaFF1ZXJ5KCk7XG4gIGxhc3RUZXJtID0gJyc7XG4gIHJlc3VsdEdyb3VwcztcbiAgcmVzdWx0VHlwZXMgPSBbXTtcbiAgY3RybENsaWNrZWQ6IGJvb2xlYW47XG4gIHNlbGVjdGVkID0ge1xuICAgIGluZGV4OiAtMSxcbiAgICBuYW1lOiBudWxsXG4gIH07XG5cbiAgc2VhcmNoRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgaW52YWxpZFRlcm06IGJvb2xlYW47XG4gIGxvYWRpbmc6IGJvb2xlYW47XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5yZXN1bHRzJykgcmVzdWx0c0F2YWlsYWJsZTtcblxuICAvLyBmbGFnIHdoZXRoZXIgb3Igbm90IHRvIHJlbmRlciByZXN1bHRzIGJ5IHRoZSBjb21wb25lbnQgaXRzZWxmXG4gIC8vIGJ5IGRlZmF1bHQgdGhpcyBmbGFzIGlzIGZhbHNlIGFuZCB0aGUgcmVzdWx0IHdpbGwgb25seSBiZSBlbWl0dGVkIGJ5XG4gIC8vIHRoZSBjb21wb25lbnRzIG9uUmVzdWx0IGNhbGxiYWNrXG4gIEBJbnB1dCgpIHNob3dSZXN1bHRzOiBib29sZWFuO1xuICAvLyB0cmlnZ2VyZWQgZWFjaCB0aW1lIGEgcmVzdWx0IGlzIGZldGNoZWRcbiAgQE91dHB1dCgpIG9uUmVzdWx0OiBFdmVudEVtaXR0ZXI8UXVpY2tTZWFyY2hSZXN1bHQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvLyB0cmlnZ2VyZWQgd2hlbiB0aGUgc2VhcmNoIHRlcm0gaGFzIGJlZW4gY2hhbmdlZFxuICBAT3V0cHV0KCkgb25JbnB1dENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLy8gcHJpdmF0ZSBvYmplY3RUeXBlczogT2JqZWN0VHlwZVtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHRvYXN0ZXI6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwU2VhcmNoU2VydmljZTogQXBwU2VhcmNoU2VydmljZSxcbiAgICBwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyKSB7XG5cblxuICAgIHRoaXMuc2VhcmNoRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe3NlYXJjaElucHV0OiBbJyddfSk7XG5cbiAgICB0aGlzLnNlYXJjaEZvcm1cbiAgICAgIC5nZXQoJ3NlYXJjaElucHV0JykudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCh0ZXJtKSA9PiB7XG4gICAgICAgICAgdGhpcy5vbklucHV0Q2hhbmdlLmVtaXQodGVybSk7XG4gICAgICAgICAgdGhpcy5xdWVyeS50ZXJtID0gdGVybTtcbiAgICAgICAgICB0aGlzLnJlc3VsdEdyb3VwcyA9IFtdO1xuICAgICAgICAgIHRoaXMucmVzdWx0VHlwZXMgPSBbXTtcbiAgICAgICAgICB0aGlzLnJlc3VsdHNBdmFpbGFibGUgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnF1ZXJ5U3RhdGUgPSBuZXcgU2VhcmNoU3RhdGUoKTtcbiAgICAgICAgfSksXG4gICAgICAgIGRlYm91bmNlVGltZSgxNTAwKSxcbiAgICAgICAgc3dpdGNoTWFwKHRlcm0gPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmFnZ3JlZ2F0ZSgpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgocXVlcnlTdGF0ZTogU2VhcmNoU3RhdGUpID0+IHtcblxuICAgICAgICBpZiAodGhpcy5xdWVyeS50ZXJtKSB7XG4gICAgICAgICAgdGhpcy5xdWVyeVN0YXRlID0gcXVlcnlTdGF0ZTtcbiAgICAgICAgICB0aGlzLnJlc3VsdHNBdmFpbGFibGUgPSAhcXVlcnlTdGF0ZS5pc0VtcHR5O1xuXG4gICAgICAgICAgLy8gbWFwIGFnZ3JlZ2F0aW9ucyB0byByZWFsIHR5cGVzXG4gICAgICAgICAgbGV0IGFnZ1R5cGVzID0gW107XG4gICAgICAgICAgcXVlcnlTdGF0ZS5hZ2dyZWdhdGlvbnMudHlwZS5mb3JFYWNoKCh2LCBrKSA9PiB7XG5cbiAgICAgICAgICAgIGxldCB0eXBlOiBPYmplY3RUeXBlID0gdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldE9iamVjdFR5cGUoayk7XG4gICAgICAgICAgICBpZiAodHlwZSkge1xuICAgICAgICAgICAgICBhZ2dUeXBlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBsYWJlbDogdHlwZS5sYWJlbCB8fCBrLFxuICAgICAgICAgICAgICAgIGNvdW50OiB2LFxuICAgICAgICAgICAgICAgIGdyb3VwOiB0eXBlLmdyb3VwIHx8ICcwJyxcbiAgICAgICAgICAgICAgICBkYXRhOiB0eXBlXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIC8vIGdyb3VwIGJ5IG9iamVjdCB0eXBlIGdyb3VwXG4gICAgICAgICAgdGhpcy5yZXN1bHRHcm91cHMgPSBncm91cEJ5KGFnZ1R5cGVzLnNvcnQoVXRpbHMuc29ydFZhbHVlcygnbGFiZWwnKSksIGZ1bmN0aW9uICh0KSB7XG4gICAgICAgICAgICByZXR1cm4gdC5ncm91cDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLnJlc3VsdFR5cGVzID0gW107XG4gICAgICAgICAgT2JqZWN0LmtleXModGhpcy5yZXN1bHRHcm91cHMpLmZvckVhY2goKGspID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVzdWx0VHlwZXMgPSB0aGlzLnJlc3VsdFR5cGVzLmNvbmNhdCh0aGlzLnJlc3VsdEdyb3Vwc1trXSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5vblJlc3VsdC5lbWl0KHtcbiAgICAgICAgICAgIHRvdGFsOiB0aGlzLnF1ZXJ5U3RhdGUudG90YWxDb3VudCxcbiAgICAgICAgICAgIGdyb3VwczogdGhpcy5yZXN1bHRHcm91cHNcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLm9uUmVzdWx0LmVtaXQoe1xuICAgICAgICAgICAgdG90YWw6IC0xLFxuICAgICAgICAgICAgZ3JvdXBzOiBbXVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMucXVlcnlTdWJzY3JpcHRpb24gPSBhcHBTZWFyY2hTZXJ2aWNlLnF1ZXJ5JC5zdWJzY3JpYmUoKHF1ZXJ5OiBTZWFyY2hRdWVyeSkgPT4ge1xuICAgICAgaWYgKHF1ZXJ5ICYmIHF1ZXJ5LnRlcm0pIHtcbiAgICAgICAgdGhpcy5sYXN0VGVybSA9IHF1ZXJ5LnRlcm07XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzZXRUZXJtKHRlcm0/OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlYXJjaEZvcm0uZ2V0KCdzZWFyY2hJbnB1dCcpLnBhdGNoVmFsdWUodGVybSB8fCAnJyk7XG4gICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gIH1cblxuICBwcml2YXRlIGFnZ3JlZ2F0ZSgpOiBPYnNlcnZhYmxlPFNlYXJjaFN0YXRlPiB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICByZXR1cm4gT2JzZXJ2YWJsZS5jcmVhdGUobyA9PiB7XG4gICAgICB0aGlzLmludmFsaWRUZXJtID0gZmFsc2U7XG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2VcbiAgICAgICAgLmdldFNlYXJjaFN0YXRlKHthZ2dzOiB7dHlwZToge319LCAuLi50aGlzLnF1ZXJ5LmdldFF1ZXJ5SnNvbigpfSlcbiAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIG8ubmV4dChyZXMpO1xuICAgICAgICAgIG8uY29tcGxldGUoKTtcbiAgICAgICAgfSwgVXRpbHMudGhyb3coXyA9PiB7XG4gICAgICAgICAgdGhpcy5pbnZhbGlkVGVybSA9IHRydWU7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgby5uZXh0KG5ldyBTZWFyY2hTdGF0ZSgpKTtcbiAgICAgICAgICBvLmNvbXBsZXRlKCk7XG4gICAgICAgIH0pKTtcbiAgICB9KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgb25LZXkoZXZlbnQpIHtcbiAgICBpZiAodGhpcy5zaG93UmVzdWx0cykge1xuICAgICAgaWYgKGV2ZW50LndoaWNoID09PSAzOCkge1xuICAgICAgICAvLyB1cFxuICAgICAgICB0aGlzLnNlbGVjdGVkLmluZGV4LS07XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkLmluZGV4IDwgMCkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWQuaW5kZXggPSB0aGlzLnJlc3VsdFR5cGVzLmxlbmd0aCAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RlZC5uYW1lID0gdGhpcy5yZXN1bHRUeXBlc1t0aGlzLnNlbGVjdGVkLmluZGV4XS5kYXRhLm5hbWU7XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LndoaWNoID09PSA0MCkge1xuICAgICAgICAvLyBkb3duXG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuaW5kZXgrKztcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWQuaW5kZXggPj0gdGhpcy5yZXN1bHRUeXBlcy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkLmluZGV4ID0gMDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGVkLm5hbWUgPSB0aGlzLnJlc3VsdFR5cGVzW3RoaXMuc2VsZWN0ZWQuaW5kZXhdLmRhdGEubmFtZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHJlc2V0IHNlbGVjdGlvbiBvbiBhbnkgb3RoZXIga2V5XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSB7XG4gICAgICAgICAgaW5kZXg6IC0xLFxuICAgICAgICAgIG5hbWU6IG51bGxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25LZXlEb3duKGV2ZW50KSB7XG4gICAgdGhpcy5jdHJsQ2xpY2tlZCA9IGZhbHNlO1xuICAgIGlmIChldmVudC53aGljaCA9PT0gMTcpIHtcbiAgICAgIHRoaXMuY3RybENsaWNrZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBleGVjdXRlU2VhcmNoKG9iamVjdFR5cGU/OiBPYmplY3RUeXBlKSB7XG5cbiAgICBpZiAoIXRoaXMuaW52YWxpZFRlcm0pIHtcbiAgICAgIGlmIChvYmplY3RUeXBlKSB7XG4gICAgICAgIHRoaXMucXVlcnkudHlwZXMgPSBbb2JqZWN0VHlwZV07XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWQuaW5kZXggIT09IC0xKSB7XG4gICAgICAgIHRoaXMucXVlcnkudHlwZXMgPSBbdGhpcy5yZXN1bHRUeXBlc1t0aGlzLnNlbGVjdGVkLmluZGV4XS5kYXRhXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucXVlcnkudHlwZXMgPSBbXTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdXJpUGFyYW0gPSBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkodGhpcy5xdWVyeS5nZXRRdWVyeUpzb24oKSkpO1xuICAgICAgY29uc3QgdXJpUGFyYW1RdWVyeTogTmF2aWdhdGlvbkV4dHJhcyA9IHtxdWVyeVBhcmFtczogeydxdWVyeSc6IHVyaVBhcmFtfX07XG4gICAgICBjb25zb2xlLmxvZyh0aGlzLmN0cmxDbGlja2VkKTtcbiAgICAgIGlmICh0aGlzLmN0cmxDbGlja2VkKSB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh1cmlQYXJhbVF1ZXJ5LnF1ZXJ5UGFyYW1zKS50b1N0cmluZygpXG4gICAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCcvZGFzaGJvYXJkJylbMF0gKyAnL3Jlc3VsdD8nKyBxdWVyeVBhcmFtcztcbiAgICAgICAgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJyk7XG4gICAgICAgIHRoaXMuY3RybENsaWNrZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9yZXN1bHQnXSwgdXJpUGFyYW1RdWVyeSk7XG4gICAgICB9XG5cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzSW5wdXQoKSB7XG4gICAgLy8gZm9jdXMgc2VhcmNoIGlucHV0XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLmZvY3VzKCk7XG4gICAgfSwgMjAwKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucXVlcnlTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInF1aWNrLXNlYXJjaFwiIGVvUnRsQXdhcmU+XG5cbiAgPGZvcm0gY2xhc3M9XCJzZWFyY2gtYm94XCIgKG5nU3VibWl0KT1cImV4ZWN1dGVTZWFyY2goKVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntpbnZhbGlkOiBpbnZhbGlkVGVybX1cIlxuICAgICAgICBbZm9ybUdyb3VwXT1cInNlYXJjaEZvcm1cIj5cblxuICAgIDxlby1pY29uIChjbGljayk9XCJleGVjdXRlU2VhcmNoKClcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19zZWFyY2guc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXRcIj5cbiAgICAgIDxsYWJlbD57eydlby5xdWlja3NlYXJjaC5sYWJlbCcgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XG4gICAgICA8aW5wdXQgYXV0b2ZvY3VzPVwiYXV0b2ZvY3VzXCIgZm9ybUNvbnRyb2xOYW1lPVwic2VhcmNoSW5wdXRcIj5cbiAgICA8L2Rpdj5cbiAgICA8ZW8tbG9hZGluZy1zcGlubmVyICpuZ0lmPVwibG9hZGluZ1wiIFtzaXplXT1cIidzbWFsbCdcIj48L2VvLWxvYWRpbmctc3Bpbm5lcj5cbiAgICA8ZW8taWNvbiBjbGFzcz1cInNtYWxsXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfY2xlYXIuc3ZnJ1wiIFtpY29uVGl0bGVdPVwiKCdlby5zZWFyY2guY2xlYXIuc2VhcmNoJyB8IHRyYW5zbGF0ZSlcIlxuICAgICpuZ0lmPVwicXVlcnkudGVybVwiIFtuZ0NsYXNzXT1cInthY3RpdmU6IHF1ZXJ5LnRlcm19XCIgKGNsaWNrKT1cInNldFRlcm0oKVwiPjwvZW8taWNvbj5cbiAgICA8ZW8taWNvbiBjbGFzcz1cInNtYWxsXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfcmVmcmVzaC5zdmcnXCIgW2ljb25UaXRsZV09XCIoJ2VvLnNlYXJjaC5yZXN1bHQudGVybScgfCB0cmFuc2xhdGUpICsgJyA6ICZxdW90OycgKyBsYXN0VGVybSArICcmcXVvdDsnXCJcbiAgICAqbmdJZj1cImxhc3RUZXJtICYmICFxdWVyeS50ZXJtXCIgKGNsaWNrKT1cInNldFRlcm0obGFzdFRlcm0pXCI+PC9lby1pY29uPlxuXG4gICAgPGRpdiBjbGFzcz1cImNvdW50XCIgKm5nSWY9XCJzaG93UmVzdWx0cyAmJiAhcXVlcnlTdGF0ZS5pc0VtcHR5XCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImNvdW50LXRvdGFsXCI+e3txdWVyeVN0YXRlLnRvdGFsQ291bnQgfCBsb2NhbGVEZWNpbWFsfX08L3NwYW4+PHNwYW4gdHJhbnNsYXRlPmVvLnF1aWNrc2VhcmNoLmhpdHM8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZm9ybT5cblxuICA8ZGl2IGNsYXNzPVwicmVzdWx0XCIgKm5nSWY9XCJzaG93UmVzdWx0cyAmJiAhcXVlcnlTdGF0ZS5pc0VtcHR5XCI+XG4gICAgPGRpdiBjbGFzcz1cInJcIj48ZGl2IGNsYXNzPVwicmlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJncm91cFwiICpuZ0Zvcj1cImxldCBrZXkgb2YgcmVzdWx0R3JvdXBzIHwga2V5czsgaW5kZXggYXMgaVwiPlxuICAgICAgICA8aDIgKm5nSWY9XCJrZXkgIT09ICcwJzsgZWxzZSBtYWluZ3JvdXBcIj57e2tleX19PC9oMj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNtYWluZ3JvdXA+XG4gICAgICAgICAgPGgyIHRyYW5zbGF0ZT5lby5xdWlja3NlYXJjaC5yZXN1bHQuZ3JvdXAuZ2xvYmFsPC9oMj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwidHlwZVwiICpuZ0Zvcj1cImxldCB0eXBlIG9mIHJlc3VsdEdyb3Vwc1trZXldXCIgKGNsaWNrKT1cImV4ZWN1dGVTZWFyY2godHlwZS5kYXRhKVwiIFtuZ0NsYXNzXT1cIntzZWxlY3RlZDogc2VsZWN0ZWQubmFtZSA9PT0gdHlwZS5kYXRhLm5hbWV9XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudFwiPnt7dHlwZS5jb3VudH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIj57e3R5cGUubGFiZWx9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
+
import { assign, bind, camelCase, capitalize, ceil, chunk, clone, cloneDeep, concat, debounce, each, endsWith, entries, escape, every, extend, filter, find, findIndex, findKey, first, flatMap, floor, forEach, get, groupBy, has, includes, indexOf, isArray, isDate, isEmpty, isNaN, isNumber, isObject, isString, join, keys, map, orderBy, reduce, remove, replace, reverse, set, slice, some, sortBy, split, startsWith, sum, take, uniqBy, values } from 'lodash-es';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
export class UtilitiesService {
|
|
4
5
|
static isEdge() {
|
|
@@ -17,9 +18,11 @@ export class UtilitiesService {
|
|
|
17
18
|
return typeof val === 'boolean' ? !val : UtilitiesService.isEmpty(val);
|
|
18
19
|
}
|
|
19
20
|
}
|
|
21
|
+
// minimal selection of lodash functions
|
|
22
|
+
UtilitiesService.lodash = { assign, bind, camelCase, capitalize, ceil, chunk, clone, cloneDeep, concat, debounce, each, endsWith, entries, escape, every, extend, filter, find, findIndex, findKey, first, flatMap, floor, forEach, get, groupBy, has, includes, indexOf, isArray, isDate, isEmpty, isNaN, isNumber, isObject, isString, join, keys, map, orderBy, reduce, remove, replace, reverse, set, slice, some, sortBy, split, startsWith, sum, take, uniqBy, values };
|
|
20
23
|
UtilitiesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: UtilitiesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
21
24
|
UtilitiesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: UtilitiesService });
|
|
22
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: UtilitiesService, decorators: [{
|
|
23
26
|
type: Injectable
|
|
24
27
|
}] });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0aWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay91dGlsL3NlcnZpY2VzL3V0aWxpdGllcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQUc1YyxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3BCLE1BQU0sQ0FBQyxNQUFNO1FBQ2xCLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRztRQUN2QixJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTtZQUM3QixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDM0IsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDbkI7UUFFRCxPQUFPLE9BQU8sR0FBRyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3JFLENBQUM7SUFFTSxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUc7UUFDOUIsT0FBTyxPQUFPLEdBQUcsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekUsQ0FBQzs7QUFFRCx3Q0FBd0M7QUFDMUIsdUJBQU0sR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7NkdBdEJoYyxnQkFBZ0I7aUhBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXNzaWduLCBiaW5kLCBjYW1lbENhc2UsIGNhcGl0YWxpemUsIGNlaWwsIGNodW5rLCBjbG9uZSwgY2xvbmVEZWVwLCBjb25jYXQsIGRlYm91bmNlLCBlYWNoLCBlbmRzV2l0aCwgZW50cmllcywgZXNjYXBlLCBldmVyeSwgZXh0ZW5kLCBmaWx0ZXIsIGZpbmQsIGZpbmRJbmRleCwgZmluZEtleSwgZmlyc3QsIGZsYXRNYXAsIGZsb29yLCBmb3JFYWNoLCBnZXQsIGdyb3VwQnksIGhhcywgaW5jbHVkZXMsIGluZGV4T2YsIGlzQXJyYXksIGlzRGF0ZSwgaXNFbXB0eSwgaXNOYU4sIGlzTnVtYmVyLCBpc09iamVjdCwgaXNTdHJpbmcsIGpvaW4sIGtleXMsIG1hcCwgb3JkZXJCeSwgcmVkdWNlLCByZW1vdmUsIHJlcGxhY2UsIHJldmVyc2UsIHNldCwgc2xpY2UsIHNvbWUsIHNvcnRCeSwgc3BsaXQsIHN0YXJ0c1dpdGgsIHN1bSwgdGFrZSwgdW5pcUJ5LCB2YWx1ZXMgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVXRpbGl0aWVzU2VydmljZSB7XG4gIHB1YmxpYyBzdGF0aWMgaXNFZGdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIW5hdmlnYXRvci51c2VyQWdlbnQgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdFZGdlJykgPiAtMTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNFbXB0eShvYmopIHtcbiAgICBpZiAob2JqID09IG51bGwgfHwgb2JqID09PSAnJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvYmogPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gaXNOYU4ob2JqKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gJ2Jvb2xlYW4nID8gZmFsc2UgOiAhT2JqZWN0LmtleXMob2JqKS5sZW5ndGg7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzRW1wdHlPckZhbHNlKHZhbCkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsID09PSAnYm9vbGVhbicgPyAhdmFsIDogVXRpbGl0aWVzU2VydmljZS5pc0VtcHR5KHZhbCk7XG4gIH1cblxuICAvLyBtaW5pbWFsIHNlbGVjdGlvbiBvZiBsb2Rhc2ggZnVuY3Rpb25zXG4gIHB1YmxpYyBzdGF0aWMgbG9kYXNoID0geyBhc3NpZ24sIGJpbmQsIGNhbWVsQ2FzZSwgY2FwaXRhbGl6ZSwgY2VpbCwgY2h1bmssIGNsb25lLCBjbG9uZURlZXAsIGNvbmNhdCwgZGVib3VuY2UsIGVhY2gsIGVuZHNXaXRoLCBlbnRyaWVzLCBlc2NhcGUsIGV2ZXJ5LCBleHRlbmQsIGZpbHRlciwgZmluZCwgZmluZEluZGV4LCBmaW5kS2V5LCBmaXJzdCwgZmxhdE1hcCwgZmxvb3IsIGZvckVhY2gsIGdldCwgZ3JvdXBCeSwgaGFzLCBpbmNsdWRlcywgaW5kZXhPZiwgaXNBcnJheSwgaXNEYXRlLCBpc0VtcHR5LCBpc05hTiwgaXNOdW1iZXIsIGlzT2JqZWN0LCBpc1N0cmluZywgam9pbiwga2V5cywgbWFwLCBvcmRlckJ5LCByZWR1Y2UsIHJlbW92ZSwgcmVwbGFjZSwgcmV2ZXJzZSwgc2V0LCBzbGljZSwgc29tZSwgc29ydEJ5LCBzcGxpdCwgc3RhcnRzV2l0aCwgc3VtLCB0YWtlLCB1bmlxQnksIHZhbHVlcyB9O1xuXG59XG4iXX0=
|
|
@@ -273,7 +273,7 @@ export class BackendService {
|
|
|
273
273
|
const item = dmsObjects[0];
|
|
274
274
|
if (dmsObjects.length === 1) {
|
|
275
275
|
if (item.content) {
|
|
276
|
-
let uri =
|
|
276
|
+
let uri = `/dms/${item.content.id}/content?type=${item.content.type}&asdownload=true&recyclebin=${!!recyclebin}`;
|
|
277
277
|
if (rendition) {
|
|
278
278
|
uri += `&rendition=${rendition}&_intent=DOWNLOAD_${rendition}`;
|
|
279
279
|
}
|
|
@@ -290,7 +290,7 @@ export class BackendService {
|
|
|
290
290
|
}
|
|
291
291
|
}
|
|
292
292
|
if (dmsObjects.length > 1) {
|
|
293
|
-
let uri =
|
|
293
|
+
let uri = '/dms/batch/export';
|
|
294
294
|
if (item.content) {
|
|
295
295
|
const expressions = dmsObjects.map(obj => obj.content.id);
|
|
296
296
|
const data = {
|
|
@@ -310,13 +310,15 @@ export class BackendService {
|
|
|
310
310
|
}
|
|
311
311
|
}
|
|
312
312
|
download(uri, version) {
|
|
313
|
-
|
|
313
|
+
const baseUri = this.getContextPath();
|
|
314
|
+
this.http.get(`${baseUri}${uri}`, { observe: 'response', responseType: 'blob', withCredentials: this.coreConfig.withCredentials })
|
|
314
315
|
.subscribe((res) => {
|
|
315
316
|
FileSaver.saveAs(res.body, this.getFileNameFromHttpResponse(res, version));
|
|
316
317
|
});
|
|
317
318
|
}
|
|
318
319
|
downloadMulti(uri, version, _body) {
|
|
319
|
-
|
|
320
|
+
const baseUri = this.getContextPath();
|
|
321
|
+
this.http.post(`${baseUri}${uri}`, _body, { observe: 'response', responseType: 'blob', withCredentials: this.coreConfig.withCredentials })
|
|
320
322
|
.subscribe((res) => {
|
|
321
323
|
FileSaver.saveAs(res.body, this.getFileNameFromHttpResponse(res, version));
|
|
322
324
|
});
|
|
@@ -355,4 +357,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
355
357
|
type: Inject,
|
|
356
358
|
args: [CORE_CONFIG]
|
|
357
359
|
}] }, { type: i2.Logger }, { type: i3.Config }]; } });
|
|
358
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL2JhY2tlbmQvYmFja2VuZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxFQUFFLElBQUksWUFBWSxFQUF1QyxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBYSxXQUFXLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUczRSxPQUFPLEtBQUssU0FBUyxNQUFNLFlBQVksQ0FBQztBQUl4QyxPQUFPLEVBQUMsUUFBUSxFQUFFLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7O0FBeUIxRCxhQUFhO0FBQ2I7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxjQUFjO0lBUXpCOztPQUVHO0lBQ0gsWUFBb0IsSUFBZ0IsRUFDTixVQUFzQixFQUMxQyxNQUFjLEVBQ2QsTUFBYztRQUhKLFNBQUksR0FBSixJQUFJLENBQVk7UUFDTixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQzFDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBWmpCLG1CQUFjLEdBQWtDLEdBQUcsQ0FBQyxDQUFDLElBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUU1RyxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWUsQ0FBQztR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RmIsTUFBTTsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBYUksTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtvZiBhcyBvYnNlcnZhYmxlT2YsIE9ic2VydmFibGUsIE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHtEbXNPYmplY3R9IGZyb20gJy4uLy4uL21vZGVsL2Rtcy1vYmplY3QubW9kZWwnO1xuaW1wb3J0ICogYXMgRmlsZVNhdmVyIGZyb20gJ2ZpbGUtc2F2ZXInO1xuaW1wb3J0IHtMb2dnZXJ9IGZyb20gJy4uL2xvZ2dlci9sb2dnZXInO1xuaW1wb3J0IHtBdXRoUHJvZmlsZX0gZnJvbSAnLi4vYXV0aC9hdXRoLXByb2ZpbGUuaW50ZXJmYWNlJztcbmltcG9ydCB7SHR0cFBhcmFtc30gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtmaW5hbGl6ZSwgc2hhcmVSZXBsYXl9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Q29yZUNvbmZpZ30gZnJvbSAnLi4vLi4vY29uZmlnL2NvcmUtY29uZmlnJztcbmltcG9ydCB7Q09SRV9DT05GSUd9IGZyb20gJy4uLy4uL2NvbmZpZy9jb3JlLWluaXQudG9rZW5zJztcblxuLyoqXG4gKiBIdHRwT3B0aW9ucyBmb3IgaHR0cCByZXF1ZXN0XG4gKiBAcGFyYW0gb2JzZXJ2ZTogJ2JvZHknIHwgJ2V2ZW50cycgfCAncmVzcG9uc2UnXG4gKiBAcGFyYW0gcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInIHwgJ2Jsb2InIHwgJ2pzb24nIHwgJ3RleHQnXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cE9wdGlvbnMge1xuICBoZWFkZXJzPzpcbiAgfCBIdHRwSGVhZGVyc1xuICB8IHtcbiAgICBbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgfTtcbiAgb2JzZXJ2ZT86IGFueTtcbiAgcGFyYW1zPzpcbiAgfCBIdHRwUGFyYW1zXG4gIHwge1xuICAgIFtwYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW107XG4gIH07XG4gIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbjtcbiAgcmVzcG9uc2VUeXBlPzogYW55O1xuICB3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuO1xufVxuXG5cbi8vIEB0cy1pZ25vcmVcbi8qKlxuICogYEJhY2tlbmRTZXJ2aWNlYCBlbmNhcHN1bGF0ZXMgdGhlIGNvbW11bmljYXRpb24gd2l0aCB0aGUgeXV1dmlzPHN1cD4mcmVnOzwvc3VwPiBSQUQgUkVTVCBlbmRwb2ludHMuXG4gKlxuICogQXMgeXV1dmlzPHN1cD4mcmVnOzwvc3VwPiBSQUQgcHJvdmlkZXMgZGlmZmVyZW50IHNlcnZpY2VzLCB0aGlzIHNlcnZpY2UgaXMgYWxzbyBjYXBhYmxlIG9mIHByb3ZpZGluZyB0aGUgYmFzZSBVUklzIGZvciB0aG9zZSBzZXJ2aWNlcy5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQmFja2VuZFNlcnZpY2Uge1xuXG4gIHB1YmxpYyBncmlkRGF0YUZpbHRlcjogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPGFueT4gPSBtYXAoKGRhdGE6IGFueVtdKSA9PiBkYXRhPy5maWx0ZXIoKHY6IGFueSkgPT4gIXYuX19yZW1vdmVkKSk7XG4gIHByaXZhdGUgYXV0aFByb2ZpbGU6IEF1dGhQcm9maWxlO1xuICBwcml2YXRlIGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcbiAgcHJpdmF0ZSB0ZW1wID0gbmV3IE1hcDxzdHJpbmcsIE9ic2VydmFibGU8YW55Pj4oKTtcbiAgcHJpdmF0ZSBoZWFkZXJzID0gdGhpcy5zZXREZWZhdWx0SGVhZGVycygpO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgQEluamVjdChDT1JFX0NPTkZJRykgcHVibGljIGNvcmVDb25maWc6IENvcmVDb25maWcsXG4gICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlcixcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnKSB7XG5cbiAgICAvKipcbiAgICAgKiBkZWZhdWx0IHByb2ZpbGUgaXMgc3VwcG9zZWQgdG8gdXNlIE5UTE1cbiAgICAgKiBAdHlwZSB7aG9zdDogc3RyaW5nOyBudGxtOiBib29sZWFufVxuICAgICAqL1xuICAgIHRoaXMuYXV0aFByb2ZpbGUgPSB7XG4gICAgICBob3N0OiAnJyxcbiAgICAgIG50bG06IHRydWVcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHB1YmxpYyBzZXRBdXRoUHJvZmlsZShwcm9maWxlPzogQXV0aFByb2ZpbGUpIHtcbiAgICBpZiAocHJvZmlsZSkge1xuICAgICAgdGhpcy5oZWFkZXJzID0gdGhpcy5zZXREZWZhdWx0SGVhZGVycygpO1xuICAgICAgdGhpcy5hdXRoUHJvZmlsZSA9IHByb2ZpbGU7XG4gICAgICBpZiAodGhpcy5hdXRoUHJvZmlsZS5hdXRoKSB7XG4gICAgICAgIC8vIHRoaXMuc2V0SGVhZGVyKCdBdXRob3JpemF0aW9uJywgdGhpcy5hdXRoUHJvZmlsZS5hdXRoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaGVhZGVycy5kZWxldGUoJ0F1dGhvcml6YXRpb24nKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgbmV3IGhlYWRlci5cbiAgICogQHBhcmFtIGtleSBUaGUgaGVhZGVycyBuYW1lXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWVcbiAgICovXG4gIHB1YmxpYyBzZXRIZWFkZXIoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUgJiYgdmFsdWUubGVuZ3RoKSB7XG4gICAgICB0aGlzLmhlYWRlcnMgPSB0aGlzLmhlYWRlcnMuc2V0KGtleSwgdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgaGVhZGVyc1xuICAgKiBAcmV0dXJucyBUaGUgYEh0dHBIZWFkZXJzYCB0aGF0IGFyZSBjdXJyZW50bHkgc2V0IHVwXG4gICAqL1xuICBwdWJsaWMgZ2V0SGVhZGVycygpOiBIdHRwSGVhZGVycyB7XG4gICAgcmV0dXJuIHRoaXMuaGVhZGVycztcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwdWJsaWMgZ2V0SHR0cE9wdGlvbnMocmVxdWVzdE9wdGlvbnM/OiBIdHRwT3B0aW9ucyk6IEh0dHBPcHRpb25zIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7aGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb3JlQ29uZmlnLndpdGhDcmVkZW50aWFsc30sIHJlcXVlc3RPcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBiYXNlIFVSSSBmb3IgdGhlIERNUy1TZXJ2aWNlIGVuZHBvaW50XG4gICAqIEByZXR1cm5zIEJhc2UgVVJJXG4gICAqL1xuICBwdWJsaWMgZ2V0U2VydmljZUJhc2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmdldFVyaSgnc2VydmljZUJhc2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBiYXNlIFVSSSBmb3IgdGhlIFNlYXJjaC1TZXJ2aWNlIGVuZHBvaW50XG4gICAqIEByZXR1cm5zIEJhc2UgVVJJXG4gICAqL1xuICBwdWJsaWMgZ2V0U2VhcmNoQmFzZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuZ2V0VXJpKCdzZWFyY2hCYXNlJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgYmFzZSBVUkkgZm9yIHRoZSBDb250ZXh0LVNlcnZpY2UgZW5kcG9pbnRcbiAgICogQHJldHVybnMgQmFzZSBVUklcbiAgICovXG4gIHB1YmxpYyBnZXRDb250ZXh0QmFzZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuZ2V0VXJpKCdjb250ZXh0QmFzZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGJhc2UgVVJJIGZvciB0aGUgSW5ib3gtU2VydmljZSBlbmRwb2ludFxuICAgKiBAcmV0dXJucyBCYXNlIFVSSVxuICAgKi9cbiAgcHVibGljIGdldEluYm94QmFzZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuZ2V0VXJpKCdpbmJveEJhc2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBiYXNlIFVSSSBmb3IgdGhlIEJQTS1TZXJ2aWNlIGVuZHBvaW50XG4gICAqIEByZXR1cm5zIEJhc2UgVVJJXG4gICAqL1xuICBwdWJsaWMgZ2V0QnBtQmFzZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuZ2V0VXJpKCdicG1CYXNlJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgYmFzZSBVUkkgZm9yIHRoZSBBZ2VudC1TZXJ2aWNlIGVuZHBvaW50XG4gICAqIEByZXR1cm5zIEJhc2UgVVJJXG4gICAqL1xuICBwdWJsaWMgZ2V0QWdlbnRCYXNlKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5nZXRVcmkoJ2FnZW50QmFzZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGJhc2UgVVJJIGZvciB0aGUgU3RhdHVzLVNlcnZpY2UgZW5kcG9pbnRcbiAgICogQHJldHVybnMgQmFzZSBVUklcbiAgICovXG4gIHB1YmxpYyBnZXRTdGF0dXNCYXNlKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5nZXRVcmkoJ3N0YXR1c0Jhc2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwdWJsaWMgZ2V0SWNvbkJhc2UoaWQ6IHN0cmluZyA9ICcnKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QmFzZVdpdGhDb250ZXh0KHRoaXMuZ2V0U2VydmljZUJhc2UoKSkgKyAnL3VpL2ljb24vJyArIGlkO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHB1YmxpYyBnZXRIb3N0KCkge1xuICAgIHJldHVybiB0aGlzLmF1dGhQcm9maWxlLmhvc3QgfHwgJyc7XG4gIH1cblxuICBwdWJsaWMgZ2V0QmFzZVdpdGhDb250ZXh0KGJhc2U6IHN0cmluZykge1xuICAgIHJldHVybiBiYXNlPy5zdGFydHNXaXRoKCcvJykgPyB0aGlzLmNvbmZpZy5nZXRDb250ZXh0UGF0aCgpICsgYmFzZSA6IGJhc2U7XG4gIH1cblxuICBwcml2YXRlIGdldENvbnRleHRQYXRoKGJhc2U/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldEhvc3QoKSArICh0aGlzLmdldEJhc2VXaXRoQ29udGV4dChiYXNlIHx8IHRoaXMuZ2V0U2VydmljZUJhc2UoKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdyYXBwZWQgSFRUUCBHRVQgbWV0aG9kXG4gICAqIEBwYXJhbSB1cmkgVGhlIFJFU1QgVVJJIHRvIGJlIHF1ZXJpZWRcbiAgICogQHBhcmFtIGJhc2UgVGhlIEJhc2UgVVJJIChiYWNrZW5kIHNlcnZpY2UpIHRvIGJlIHVzZWRcbiAgICogQHBhcmFtIHJlcXVlc3RPcHRpb25zIEFkZGl0aW9uYWwgcmVxdWVzdCBvcHRpb25zXG4gICAqIEByZXR1cm5zIFRoZSBkYXRhIHJldHJpZXZlZCBmcm9tIHRoZSBnaXZlbiBlbmRwb2ludFxuICAgKi9cbiAgcHVibGljIGdldCh1cmk6IHN0cmluZywgYmFzZT86IHN0cmluZywgcmVxdWVzdE9wdGlvbnM/OiBIdHRwT3B0aW9ucyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5nZXRDb250ZXh0UGF0aChiYXNlKSArIHVyaSwgdGhpcy5nZXRIdHRwT3B0aW9ucyhyZXF1ZXN0T3B0aW9ucykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdyYXBwZWQgSFRUUCBQVVQgbWV0aG9kXG4gICAqIEBwYXJhbSB1cmkgVGhlIHRhcmdldCBSRVNUIFVSSVxuICAgKiBAcGFyYW0gZGF0YSBEYXRhIHRvIGJlICdwb3N0ZWQnXG4gICAqIEBwYXJhbSBiYXNlIFRoZSBCYXNlIFVSSSAoYmFja2VuZCBzZXJ2aWNlKSB0byBiZSB1c2VkXG4gICAqIEBwYXJhbSByZXF1ZXN0T3B0aW9ucyBBZGRpdGlvbmFsIHJlcXVlc3Qgb3B0aW9uc1xuICAgKiBAcmV0dXJucyBUaGUgcmV0dXJuIHZhbHVlIG9mIHRoZSB0YXJnZXQgUFVUIGVuZHBvaW50XG4gICAqL1xuICBwdWJsaWMgcHV0KHVyaTogc3RyaW5nLCBkYXRhPzogYW55LCBiYXNlPzogc3RyaW5nLCByZXF1ZXN0T3B0aW9ucz86IEh0dHBPcHRpb25zKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLmdldENvbnRleHRQYXRoKGJhc2UpICsgdXJpLCBkYXRhLCB0aGlzLmdldEh0dHBPcHRpb25zKHJlcXVlc3RPcHRpb25zKSk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHVibGljIGdldEpzb24odXJpOiBzdHJpbmcsIGJhc2U/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuZ2V0Q29udGV4dFBhdGgoYmFzZSkgKyB1cmksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoe3Jlc3BvbnNlVHlwZTogJ2pzb24nfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdyYXBwZWQgSFRUUCBQT1NUIG1ldGhvZFxuICAgKiBAcGFyYW0gdXJpIFRoZSB0YXJnZXQgUkVTVCBVUklcbiAgICogQHBhcmFtIGRhdGEgRGF0YSB0byBiZSAncG9zdGVkJ1xuICAgKiBAcGFyYW0gYmFzZSBUaGUgQmFzZSBVUkkgKGJhY2tlbmQgc2VydmljZSkgdG8gYmUgdXNlZFxuICAgKiBAcGFyYW0gcmVxdWVzdE9wdGlvbnMgQWRkaXRpb25hbCByZXF1ZXN0IG9wdGlvbnNcbiAgICogQHJldHVybnMgVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgdGFyZ2V0IFBPU1QgZW5kcG9pbnRcbiAgICovXG4gIHB1YmxpYyBwb3N0KHVyaTogc3RyaW5nLCBkYXRhPywgYmFzZT86IHN0cmluZywgcmVxdWVzdE9wdGlvbnM/OiBIdHRwT3B0aW9ucyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgYmFzZVVyaSA9IHRoaXMuZ2V0Q29udGV4dFBhdGgoYmFzZSk7XG4gICAgY29uc3QgcGF5bG9hZCA9IGRhdGEgPyBKU09OLnN0cmluZ2lmeShkYXRhKSA6ICcnO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHtiYXNlVXJpfSR7dXJpfWAsIHBheWxvYWQsIHRoaXMuZ2V0SHR0cE9wdGlvbnMocmVxdWVzdE9wdGlvbnMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtcyBhIG11bHRpcGFydCBmb3JtIGRhdGEgUE9TVCByZXF1ZXN0LlxuICAgKiBAcGFyYW0gdXJpIFRoZSB0YXJnZXQgUkVTVCBVUklcbiAgICogQHBhcmFtIGZvcm1EYXRhIEZvcm1EYXRhIHRvIGJlICdwb3N0ZWQnXG4gICAqIEBwYXJhbSBiYXNlIFRoZSBCYXNlIFVSSSAoYmFja2VuZCBzZXJ2aWNlKSB0byBiZSB1c2VkXG4gICAqIEBwYXJhbSByZXF1ZXN0T3B0aW9ucyBBZGRpdGlvbmFsIHJlcXVlc3Qgb3B0aW9uc1xuICAgKiBAcmV0dXJucyBUaGUgcmV0dXJuIHZhbHVlIG9mIHRoZSB0YXJnZXQgUE9TVCBlbmRwb2ludFxuICAgKi9cbiAgcHVibGljIHBvc3RNdWx0aVBhcnQodXJpOiBzdHJpbmcsIGZvcm1EYXRhOiBGb3JtRGF0YSwgYmFzZT86IHN0cmluZywgcmVxdWVzdE9wdGlvbnM/OiBIdHRwT3B0aW9ucyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgYmFzZVVyaSA9IHRoaXMuZ2V0Q29udGV4dFBhdGgoYmFzZSk7XG4gICAgY29uc3QgaGVhZGVycyA9IHRoaXMuZ2V0SGVhZGVycygpO1xuICAgIGhlYWRlcnMuZGVsZXRlKCdDb250ZW50LVR5cGUnKTtcbiAgICBjb25zdCByZXFPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7aGVhZGVyczogaGVhZGVycywgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvcmVDb25maWcud2l0aENyZWRlbnRpYWxzfSwgcmVxdWVzdE9wdGlvbnMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHtiYXNlVXJpfSR7dXJpfWAsIGZvcm1EYXRhLCByZXFPcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcmFwcGVkIEhUVFAgREVMRVRFIG1ldGhvZFxuICAgKiBAcGFyYW0gdXJpIFRoZSB0YXJnZXQgUkVTVCBVUklcbiAgICogQHBhcmFtIGJhc2UgVGhlIEJhc2UgVVJJIChiYWNrZW5kIHNlcnZpY2UpIHRvIGJlIHVzZWRcbiAgICogQHBhcmFtIHJlcXVlc3RPcHRpb25zIEFkZGl0aW9uYWwgcmVxdWVzdCBvcHRpb25zXG4gICAqIEByZXR1cm5zIFRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIHRhcmdldCBERUxFVEUgZW5kcG9pbnRcbiAgICovXG4gIHB1YmxpYyBkZWwodXJpOiBzdHJpbmcsIGJhc2U/OiBzdHJpbmcsIHJlcXVlc3RPcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKHRoaXMuZ2V0Q29udGV4dFBhdGgoYmFzZSkgKyB1cmksIHRoaXMuZ2V0SHR0cE9wdGlvbnMocmVxdWVzdE9wdGlvbnMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqIFNvZnQgdXBkYXRlIGZvciBsaXN0cyAtIGVuYWJsZXMgZ3JpZCB0byBoYW5kbGUgYWxsIGNoYW5nZXNcbiAgICogdG8gYWRkIG5ldyAtIG9ubHkgaXRlbSBzaG91bGQgYmUgc3BlY2lmaWVkXG4gICAqIHRvIHJlbW92ZSAtIG9ubHkgaWQgc2hvdWxkIGJlIHNwZWNpZmllZFxuICAgKiB0byB1cGRhdGUgLSBib3RoIHBhcmFtcyBzaG91bGQgYmUgc3BlY2lmaWVkXG4gICAqXG4gICAqIEBwYXJhbSBhbnlbXSBsaXN0IE9yaWdpbmFsIGxpc3Qgb2YgaXRlbXNcbiAgICogQHBhcmFtIGlkPzogc3RyaW5nOyBpdGVtPzogYW55IGRhdGFbXVxuICAgKiBAcmV0dXJucyBhbnlbXVxuICAgKi9cbiAgcHVibGljIHVwZGF0ZShsaXN0OiBhbnlbXSwgZGF0YToge2lkPzogc3RyaW5nLCBpdGVtPzogYW55fVtdKSB7XG4gICAgZGF0YS5mb3JFYWNoKCh7aWQsIGl0ZW19KSA9PiB7XG4gICAgICBpZiAoaWQpIHtcbiAgICAgICAgY29uc3QgX2l0ZW0gPSBsaXN0LmZpbmQobCA9PiBsLmlkID09PSBpZCk7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oX2l0ZW0sIGl0ZW0sIGl0ZW0gPyB7X191cGRhdGVkOiB0cnVlfSA6IHtfX3JlbW92ZWQ6IHRydWV9KTtcbiAgICAgIH0gZWxzZSBpZiAoaXRlbSkge1xuICAgICAgICBsaXN0LnVuc2hpZnQoT2JqZWN0LmFzc2lnbihpdGVtLCB7X19hZGRlZDogdHJ1ZX0pKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbGlzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqIENhY2hlIGZvciBzbWFsbCByZXF1ZXN0cyBsaWtlIGljb25zIGFuZCBjb25maWdzXG4gICAqXG4gICAqIEBwYXJhbSBzdHJpbmcgdXJpXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxuICAgKi9cbiAgcHVibGljIGdldFZpYUNhY2hlKHVyaTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBpZiAodGhpcy5jYWNoZS5oYXModXJpKSkge1xuICAgICAgcmV0dXJuIG9ic2VydmFibGVPZih0aGlzLmNhY2hlLmdldCh1cmkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VmlhVGVtcENhY2hlKHVyaSwgKCkgPT4gdGhpcy5odHRwLmdldCh1cmksIHt3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29yZUNvbmZpZy53aXRoQ3JlZGVudGlhbHMsIHJlc3BvbnNlVHlwZTogJ3RleHQnfSkucGlwZShcbiAgICAgICAgdGFwKHRleHQgPT4gdGhpcy5jYWNoZS5zZXQodXJpLCB0ZXh0KSkpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKiBUZW1wb3JhcnkgQ2FjaGUgZm9yIG11bHRpcGxlIGlkZW50aWNhbCByZXF1ZXN0c1xuICAgKlxuICAgKiBAcGFyYW0gc3RyaW5nIGlkXG4gICAqIEBwYXJhbSBGdW5jdGlvbiByZXF1ZXN0XG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxuICAgKi9cbiAgcHVibGljIGdldFZpYVRlbXBDYWNoZShpZDogc3RyaW5nLCByZXF1ZXN0PzogRnVuY3Rpb24pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGlmICh0aGlzLnRlbXAuaGFzKGlkKSkge1xuICAgICAgcmV0dXJuIHRoaXMudGVtcC5nZXQoaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCByZXNwID0gKHJlcXVlc3QgPyByZXF1ZXN0KCkgOiB0aGlzLmdldChpZCkpLnBpcGUoXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMudGVtcC5kZWxldGUoaWQpKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICAgICk7XG4gICAgICB0aGlzLnRlbXAuc2V0KGlkLCByZXNwKTtcbiAgICAgIHJldHVybiByZXNwO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEb3dubG9hZCB0aGUgY29udGVudCBvZiBkbXMgb2JqZWN0cy5cbiAgICpcbiAgICogQHBhcmFtIERtc09iamVjdFtdIGRtc09iamVjdHMgQXJyYXkgb2YgZG1zIG9iamVjdHMgdG8gYmUgZG93bmxvYWRlZFxuICAgKiBAcGFyYW0gXCJQREZcIiB8IFwiVElGRlwiIHwgXCJURVhUXCIgfCBcIkpQRUdcIiByZW5kaXRpb24gVGhlIHR5cGUgb2YgcmVuZGl0aW9uIHRvIGJlIGRvd25sb2FkZWQuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBvcmlnaW5hbCBjb250ZW50IHdpbGwgYmUgZG93bmxvYWRlZC5cbiAgICogUG9zc2libGUgcmVuZGl0aW9ucyBhcmUgYFBERmAsIGBUSUZGYCwgYFRFWFRgLCBgSlBFR2AuXG4gICAqL1xuICBwdWJsaWMgZG93bmxvYWRDb250ZW50KGRtc09iamVjdHM6IERtc09iamVjdFtdLCByZW5kaXRpb24/OiAnUERGJyB8ICdUSUZGJyB8ICdURVhUJyB8ICdKUEVHJywgZmlsZU5hbWVXaXRoVmVyc2lvbk51bWJlcj86IGJvb2xlYW4sIHJlY3ljbGViaW4/OiBib29sZWFuKSB7XG5cbiAgICBjb25zdCBpdGVtID0gZG1zT2JqZWN0c1swXTtcbiAgICBpZiAoZG1zT2JqZWN0cy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGlmIChpdGVtLmNvbnRlbnQpIHtcblxuICAgICAgICBsZXQgdXJpID0gYCR7dGhpcy5nZXRTZXJ2aWNlQmFzZSgpfS9kbXMvJHtpdGVtLmNvbnRlbnQuaWR9L2NvbnRlbnQ/dHlwZT0ke2l0ZW0uY29udGVudC50eXBlfSZhc2Rvd25sb2FkPXRydWUmcmVjeWNsZWJpbj0keyEhcmVjeWNsZWJpbn1gO1xuICAgICAgICBpZiAocmVuZGl0aW9uKSB7XG4gICAgICAgICAgdXJpICs9IGAmcmVuZGl0aW9uPSR7cmVuZGl0aW9ufSZfaW50ZW50PURPV05MT0FEXyR7cmVuZGl0aW9ufWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdXJpICs9ICcmX2ludGVudD1ET1dOTE9BRCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGl0ZW0uY29udGVudC5pZCA9PT0gaXRlbS5pZCkge1xuICAgICAgICAgIHVyaSArPSBgJnZlcnNpb249JHtpdGVtLnZlcnNpb259YDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRvd25sb2FkKHVyaSwgZmlsZU5hbWVXaXRoVmVyc2lvbk51bWJlciA/IGl0ZW0udmVyc2lvbiA6IG51bGwpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ1RoZSBwcm92aWRlZCBkbXMgb2JqZWN0IGhhcyBubyBjb250ZW50JywgaXRlbSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRtc09iamVjdHMubGVuZ3RoID4gMSkge1xuICAgICAgbGV0IHVyaSA9IGAke3RoaXMuZ2V0U2VydmljZUJhc2UoKX0vZG1zL2JhdGNoL2V4cG9ydGA7XG4gICAgICBpZiAoaXRlbS5jb250ZW50KSB7XG4gICAgICAgIGNvbnN0IGV4cHJlc3Npb25zID0gZG1zT2JqZWN0cy5tYXAob2JqID0+IG9iai5jb250ZW50LmlkKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICBxdWVyeToge1xuICAgICAgICAgICAgZXhwcmVzc2lvbjogWy4uLmV4cHJlc3Npb25zXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgcmVuZGl0aW9uOiAnJ1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgZGF0YS5vcHRpb25zLnJlbmRpdGlvbiA9IHJlbmRpdGlvbiA/ICdQREYnIDogbnVsbDtcbiAgICAgICAgdGhpcy5kb3dubG9hZE11bHRpKHVyaSwgZmlsZU5hbWVXaXRoVmVyc2lvbk51bWJlciA/IGl0ZW0udmVyc2lvbiA6IG51bGwsIGRhdGEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ1RoZSBwcm92aWRlZCBkbXMgb2JqZWN0IGhhcyBubyBjb250ZW50JywgaXRlbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRvd25sb2FkKHVyaTogc3RyaW5nLCB2ZXJzaW9uPzogbnVtYmVyKSB7XG4gICAgdGhpcy5odHRwLmdldCh1cmksIHtvYnNlcnZlOiAncmVzcG9uc2UnLCByZXNwb25zZVR5cGU6ICdibG9iJywgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvcmVDb25maWcud2l0aENyZWRlbnRpYWxzfSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICBGaWxlU2F2ZXIuc2F2ZUFzKFxuICAgICAgICAgIHJlcy5ib2R5LFxuICAgICAgICAgIHRoaXMuZ2V0RmlsZU5hbWVGcm9tSHR0cFJlc3BvbnNlKHJlcywgdmVyc2lvbilcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGRvd25sb2FkTXVsdGkodXJpOiBzdHJpbmcsIHZlcnNpb24/OiBudW1iZXIsIF9ib2R5PzogYW55KSB7XG4gICAgdGhpcy5odHRwLnBvc3QodXJpLCBfYm9keSwge29ic2VydmU6ICdyZXNwb25zZScsIHJlc3BvbnNlVHlwZTogJ2Jsb2InLCB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29yZUNvbmZpZy53aXRoQ3JlZGVudGlhbHN9KVxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgIEZpbGVTYXZlci5zYXZlQXMoXG4gICAgICAgICAgcmVzLmJvZHksXG4gICAgICAgICAgdGhpcy5nZXRGaWxlTmFtZUZyb21IdHRwUmVzcG9uc2UocmVzLCB2ZXJzaW9uKVxuICAgICAgICApO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldEZpbGVOYW1lRnJvbUh0dHBSZXNwb25zZShyZXM6IEh0dHBSZXNwb25zZTxhbnk+LCB2ZXJzaW9uOiBudW1iZXIpIHtcbiAgICBjb25zdCBjb250ZW50RGlzcG9zaXRpb25IZWFkZXIgPSByZXMuaGVhZGVycy5nZXQoJ0NvbnRlbnQtRGlzcG9zaXRpb24nKSB8fCAnJztcbiAgICBjb25zdCBlbmNvZGVkRmlsZU5hbWVNYXRjaFJlc3VsdCA9IGNvbnRlbnREaXNwb3NpdGlvbkhlYWRlci5tYXRjaCgnZmlsZW5hbWVcXFxcKj1VVEYtOFxcJ1xcJyguKiknKVxuICAgICAgfHwgY29udGVudERpc3Bvc2l0aW9uSGVhZGVyLm1hdGNoKCdmaWxlbmFtZT1cXFwiKC4qKVxcXCInKTtcbiAgICBjb25zdCBlbmNvZGVkRmlsZU5hbWUgPSBlbmNvZGVkRmlsZU5hbWVNYXRjaFJlc3VsdCA/IGVuY29kZWRGaWxlTmFtZU1hdGNoUmVzdWx0WzFdIDogbnVsbDtcbiAgICBjb25zdCBmaWxlbmFtZSA9IGVuY29kZWRGaWxlTmFtZSA/IGRlY29kZVVSSUNvbXBvbmVudChlbmNvZGVkRmlsZU5hbWUpIDogJ3Vua25vd24nO1xuICAgIGNvbnN0IGluZGV4ID0gIX5maWxlbmFtZS5sYXN0SW5kZXhPZignLicpID8gZmlsZW5hbWUubGVuZ3RoIDogZmlsZW5hbWUubGFzdEluZGV4T2YoJy4nKTtcbiAgICByZXR1cm4gIXZlcnNpb24gPyBmaWxlbmFtZSA6IGAke2ZpbGVuYW1lLnNsaWNlKDAsIGluZGV4KX1fdiR7dmVyc2lvbn0ke2ZpbGVuYW1lLnNsaWNlKGluZGV4KX1gO1xuICB9XG5cblxuICAvKipcbiAgICogR2V0dGVyIGZvciB0aGUgSFRUUCBIZWFkZXJzXG4gICAqXG4gICAqIEByZXR1cm5zIEh0dHBIZWFkZXJzXG4gICAqL1xuICBwcml2YXRlIHNldERlZmF1bHRIZWFkZXJzKCk6IEh0dHBIZWFkZXJzIHtcbiAgICByZXR1cm4gbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAnWC1vcy1pbmNsdWRlLWxpbmtzJzogJ2ZhbHNlJyxcbiAgICAgICdYLW9zLWluY2x1ZGUtYWN0aW9ucyc6ICdmYWxzZScsXG4gICAgICAnWC1vcy1zeW5jLWluZGV4JzogJ3RydWUnXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
360
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL2JhY2tlbmQvYmFja2VuZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxFQUFFLElBQUksWUFBWSxFQUF1QyxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBYSxXQUFXLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUczRSxPQUFPLEtBQUssU0FBUyxNQUFNLFlBQVksQ0FBQztBQUl4QyxPQUFPLEVBQUMsUUFBUSxFQUFFLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7O0FBeUIxRCxhQUFhO0FBQ2I7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxjQUFjO0lBUXpCOztPQUVHO0lBQ0gsWUFBb0IsSUFBZ0IsRUFDTixVQUFzQixFQUMxQyxNQUFjLEVBQ2QsTUFBYztRQUhKLFNBQUksR0FBSixJQUFJLENBQVk7UUFDTixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQzFDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBWmpCLG1CQUFjLEdBQWtDLEdBQUcsQ0FBQyxDQUFDLElBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUU1RyxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWUsQ0FBQztR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QixpQkFBaUIsRUFBRSxNQUFNO1NBQzFCLENBQUMsQ0FBQztJQUNMLENBQUM7OzJHQWhYVSxjQUFjLDRDQVlmLFdBQVc7K0dBWlYsY0FBYyxjQUZiLE1BQU07MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWFJLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7b2YgYXMgb2JzZXJ2YWJsZU9mLCBPYnNlcnZhYmxlLCBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnL2NvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7RG1zT2JqZWN0fSBmcm9tICcuLi8uLi9tb2RlbC9kbXMtb2JqZWN0Lm1vZGVsJztcbmltcG9ydCAqIGFzIEZpbGVTYXZlciBmcm9tICdmaWxlLXNhdmVyJztcbmltcG9ydCB7TG9nZ2VyfSBmcm9tICcuLi9sb2dnZXIvbG9nZ2VyJztcbmltcG9ydCB7QXV0aFByb2ZpbGV9IGZyb20gJy4uL2F1dGgvYXV0aC1wcm9maWxlLmludGVyZmFjZSc7XG5pbXBvcnQge0h0dHBQYXJhbXN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7ZmluYWxpemUsIHNoYXJlUmVwbGF5fSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0NvcmVDb25maWd9IGZyb20gJy4uLy4uL2NvbmZpZy9jb3JlLWNvbmZpZyc7XG5pbXBvcnQge0NPUkVfQ09ORklHfSBmcm9tICcuLi8uLi9jb25maWcvY29yZS1pbml0LnRva2Vucyc7XG5cbi8qKlxuICogSHR0cE9wdGlvbnMgZm9yIGh0dHAgcmVxdWVzdFxuICogQHBhcmFtIG9ic2VydmU6ICdib2R5JyB8ICdldmVudHMnIHwgJ3Jlc3BvbnNlJ1xuICogQHBhcmFtIHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyB8ICdibG9iJyB8ICdqc29uJyB8ICd0ZXh0J1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBPcHRpb25zIHtcbiAgaGVhZGVycz86XG4gIHwgSHR0cEhlYWRlcnNcbiAgfCB7XG4gICAgW2hlYWRlcjogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW107XG4gIH07XG4gIG9ic2VydmU/OiBhbnk7XG4gIHBhcmFtcz86XG4gIHwgSHR0cFBhcmFtc1xuICB8IHtcbiAgICBbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xuICB9O1xuICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW47XG4gIHJlc3BvbnNlVHlwZT86IGFueTtcbiAgd2l0aENyZWRlbnRpYWxzPzogYm9vbGVhbjtcbn1cblxuXG4vLyBAdHMtaWdub3JlXG4vKipcbiAqIGBCYWNrZW5kU2VydmljZWAgZW5jYXBzdWxhdGVzIHRoZSBjb21tdW5pY2F0aW9uIHdpdGggdGhlIHl1dXZpczxzdXA+JnJlZzs8L3N1cD4gUkFEIFJFU1QgZW5kcG9pbnRzLlxuICpcbiAqIEFzIHl1dXZpczxzdXA+JnJlZzs8L3N1cD4gUkFEIHByb3ZpZGVzIGRpZmZlcmVudCBzZXJ2aWNlcywgdGhpcyBzZXJ2aWNlIGlzIGFsc28gY2FwYWJsZSBvZiBwcm92aWRpbmcgdGhlIGJhc2UgVVJJcyBmb3IgdGhvc2Ugc2VydmljZXMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJhY2tlbmRTZXJ2aWNlIHtcblxuICBwdWJsaWMgZ3JpZERhdGFGaWx0ZXI6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxhbnk+ID0gbWFwKChkYXRhOiBhbnlbXSkgPT4gZGF0YT8uZmlsdGVyKCh2OiBhbnkpID0+ICF2Ll9fcmVtb3ZlZCkpO1xuICBwcml2YXRlIGF1dGhQcm9maWxlOiBBdXRoUHJvZmlsZTtcbiAgcHJpdmF0ZSBjYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XG4gIHByaXZhdGUgdGVtcCA9IG5ldyBNYXA8c3RyaW5nLCBPYnNlcnZhYmxlPGFueT4+KCk7XG4gIHByaXZhdGUgaGVhZGVycyA9IHRoaXMuc2V0RGVmYXVsdEhlYWRlcnMoKTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIEBJbmplY3QoQ09SRV9DT05GSUcpIHB1YmxpYyBjb3JlQ29uZmlnOiBDb3JlQ29uZmlnLFxuICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIsXG4gICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZykge1xuXG4gICAgLyoqXG4gICAgICogZGVmYXVsdCBwcm9maWxlIGlzIHN1cHBvc2VkIHRvIHVzZSBOVExNXG4gICAgICogQHR5cGUge2hvc3Q6IHN0cmluZzsgbnRsbTogYm9vbGVhbn1cbiAgICAgKi9cbiAgICB0aGlzLmF1dGhQcm9maWxlID0ge1xuICAgICAgaG9zdDogJycsXG4gICAgICBudGxtOiB0cnVlXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwdWJsaWMgc2V0QXV0aFByb2ZpbGUocHJvZmlsZT86IEF1dGhQcm9maWxlKSB7XG4gICAgaWYgKHByb2ZpbGUpIHtcbiAgICAgIHRoaXMuaGVhZGVycyA9IHRoaXMuc2V0RGVmYXVsdEhlYWRlcnMoKTtcbiAgICAgIHRoaXMuYXV0aFByb2ZpbGUgPSBwcm9maWxlO1xuICAgICAgaWYgKHRoaXMuYXV0aFByb2ZpbGUuYXV0aCkge1xuICAgICAgICAvLyB0aGlzLnNldEhlYWRlcignQXV0aG9yaXphdGlvbicsIHRoaXMuYXV0aFByb2ZpbGUuYXV0aCk7XG4gICAgICB9XG4gICAgICB0aGlzLmhlYWRlcnMuZGVsZXRlKCdBdXRob3JpemF0aW9uJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBoZWFkZXIuXG4gICAqIEBwYXJhbSBrZXkgVGhlIGhlYWRlcnMgbmFtZVxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlXG4gICAqL1xuICBwdWJsaWMgc2V0SGVhZGVyKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlICYmIHZhbHVlLmxlbmd0aCkge1xuICAgICAgdGhpcy5oZWFkZXJzID0gdGhpcy5oZWFkZXJzLnNldChrZXksIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBjdXJyZW50IGhlYWRlcnNcbiAgICogQHJldHVybnMgVGhlIGBIdHRwSGVhZGVyc2AgdGhhdCBhcmUgY3VycmVudGx5IHNldCB1cFxuICAgKi9cbiAgcHVibGljIGdldEhlYWRlcnMoKTogSHR0cEhlYWRlcnMge1xuICAgIHJldHVybiB0aGlzLmhlYWRlcnM7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHVibGljIGdldEh0dHBPcHRpb25zKHJlcXVlc3RPcHRpb25zPzogSHR0cE9wdGlvbnMpOiBIdHRwT3B0aW9ucyB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe2hlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLCB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29yZUNvbmZpZy53aXRoQ3JlZGVudGlhbHN9LCByZXF1ZXN0T3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgYmFzZSBVUkkgZm9yIHRoZSBETVMtU2VydmljZSBlbmRwb2ludFxuICAgKiBAcmV0dXJucyBCYXNlIFVSSVxuICAgKi9cbiAgcHVibGljIGdldFNlcnZpY2VCYXNlKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5nZXRVcmkoJ3NlcnZpY2VCYXNlJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgYmFzZSBVUkkgZm9yIHRoZSBTZWFyY2gtU2VydmljZSBlbmRwb2ludFxuICAgKiBAcmV0dXJucyBCYXNlIFVSSVxuICAgKi9cbiAgcHVibGljIGdldFNlYXJjaEJhc2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmdldFVyaSgnc2VhcmNoQmFzZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGJhc2UgVVJJIGZvciB0aGUgQ29udGV4dC1TZXJ2aWNlIGVuZHBvaW50XG4gICAqIEByZXR1cm5zIEJhc2UgVVJJXG4gICAqL1xuICBwdWJsaWMgZ2V0Q29udGV4dEJhc2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmdldFVyaSgnY29udGV4dEJhc2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBiYXNlIFVSSSBmb3IgdGhlIEluYm94LVNlcnZpY2UgZW5kcG9pbnRcbiAgICogQHJldHVybnMgQmFzZSBVUklcbiAgICovXG4gIHB1YmxpYyBnZXRJbmJveEJhc2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmdldFVyaSgnaW5ib3hCYXNlJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgYmFzZSBVUkkgZm9yIHRoZSBCUE0tU2VydmljZSBlbmRwb2ludFxuICAgKiBAcmV0dXJucyBCYXNlIFVSSVxuICAgKi9cbiAgcHVibGljIGdldEJwbUJhc2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmdldFVyaSgnYnBtQmFzZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGJhc2UgVVJJIGZvciB0aGUgQWdlbnQtU2VydmljZSBlbmRwb2ludFxuICAgKiBAcmV0dXJucyBCYXNlIFVSSVxuICAgKi9cbiAgcHVibGljIGdldEFnZW50QmFzZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuZ2V0VXJpKCdhZ2VudEJhc2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBiYXNlIFVSSSBmb3IgdGhlIFN0YXR1cy1TZXJ2aWNlIGVuZHBvaW50XG4gICAqIEByZXR1cm5zIEJhc2UgVVJJXG4gICAqL1xuICBwdWJsaWMgZ2V0U3RhdHVzQmFzZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuZ2V0VXJpKCdzdGF0dXNCYXNlJyk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHVibGljIGdldEljb25CYXNlKGlkOiBzdHJpbmcgPSAnJykge1xuICAgIHJldHVybiB0aGlzLmdldEJhc2VXaXRoQ29udGV4dCh0aGlzLmdldFNlcnZpY2VCYXNlKCkpICsgJy91aS9pY29uLycgKyBpZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwdWJsaWMgZ2V0SG9zdCgpIHtcbiAgICByZXR1cm4gdGhpcy5hdXRoUHJvZmlsZS5ob3N0IHx8ICcnO1xuICB9XG5cbiAgcHVibGljIGdldEJhc2VXaXRoQ29udGV4dChiYXNlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYmFzZT8uc3RhcnRzV2l0aCgnLycpID8gdGhpcy5jb25maWcuZ2V0Q29udGV4dFBhdGgoKSArIGJhc2UgOiBiYXNlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb250ZXh0UGF0aChiYXNlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRIb3N0KCkgKyAodGhpcy5nZXRCYXNlV2l0aENvbnRleHQoYmFzZSB8fCB0aGlzLmdldFNlcnZpY2VCYXNlKCkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcmFwcGVkIEhUVFAgR0VUIG1ldGhvZFxuICAgKiBAcGFyYW0gdXJpIFRoZSBSRVNUIFVSSSB0byBiZSBxdWVyaWVkXG4gICAqIEBwYXJhbSBiYXNlIFRoZSBCYXNlIFVSSSAoYmFja2VuZCBzZXJ2aWNlKSB0byBiZSB1c2VkXG4gICAqIEBwYXJhbSByZXF1ZXN0T3B0aW9ucyBBZGRpdGlvbmFsIHJlcXVlc3Qgb3B0aW9uc1xuICAgKiBAcmV0dXJucyBUaGUgZGF0YSByZXRyaWV2ZWQgZnJvbSB0aGUgZ2l2ZW4gZW5kcG9pbnRcbiAgICovXG4gIHB1YmxpYyBnZXQodXJpOiBzdHJpbmcsIGJhc2U/OiBzdHJpbmcsIHJlcXVlc3RPcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuZ2V0Q29udGV4dFBhdGgoYmFzZSkgKyB1cmksIHRoaXMuZ2V0SHR0cE9wdGlvbnMocmVxdWVzdE9wdGlvbnMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcmFwcGVkIEhUVFAgUFVUIG1ldGhvZFxuICAgKiBAcGFyYW0gdXJpIFRoZSB0YXJnZXQgUkVTVCBVUklcbiAgICogQHBhcmFtIGRhdGEgRGF0YSB0byBiZSAncG9zdGVkJ1xuICAgKiBAcGFyYW0gYmFzZSBUaGUgQmFzZSBVUkkgKGJhY2tlbmQgc2VydmljZSkgdG8gYmUgdXNlZFxuICAgKiBAcGFyYW0gcmVxdWVzdE9wdGlvbnMgQWRkaXRpb25hbCByZXF1ZXN0IG9wdGlvbnNcbiAgICogQHJldHVybnMgVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgdGFyZ2V0IFBVVCBlbmRwb2ludFxuICAgKi9cbiAgcHVibGljIHB1dCh1cmk6IHN0cmluZywgZGF0YT86IGFueSwgYmFzZT86IHN0cmluZywgcmVxdWVzdE9wdGlvbnM/OiBIdHRwT3B0aW9ucyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5nZXRDb250ZXh0UGF0aChiYXNlKSArIHVyaSwgZGF0YSwgdGhpcy5nZXRIdHRwT3B0aW9ucyhyZXF1ZXN0T3B0aW9ucykpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHB1YmxpYyBnZXRKc29uKHVyaTogc3RyaW5nLCBiYXNlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmdldENvbnRleHRQYXRoKGJhc2UpICsgdXJpLCB0aGlzLmdldEh0dHBPcHRpb25zKHtyZXNwb25zZVR5cGU6ICdqc29uJ30pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcmFwcGVkIEhUVFAgUE9TVCBtZXRob2RcbiAgICogQHBhcmFtIHVyaSBUaGUgdGFyZ2V0IFJFU1QgVVJJXG4gICAqIEBwYXJhbSBkYXRhIERhdGEgdG8gYmUgJ3Bvc3RlZCdcbiAgICogQHBhcmFtIGJhc2UgVGhlIEJhc2UgVVJJIChiYWNrZW5kIHNlcnZpY2UpIHRvIGJlIHVzZWRcbiAgICogQHBhcmFtIHJlcXVlc3RPcHRpb25zIEFkZGl0aW9uYWwgcmVxdWVzdCBvcHRpb25zXG4gICAqIEByZXR1cm5zIFRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIHRhcmdldCBQT1NUIGVuZHBvaW50XG4gICAqL1xuICBwdWJsaWMgcG9zdCh1cmk6IHN0cmluZywgZGF0YT8sIGJhc2U/OiBzdHJpbmcsIHJlcXVlc3RPcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IGJhc2VVcmkgPSB0aGlzLmdldENvbnRleHRQYXRoKGJhc2UpO1xuICAgIGNvbnN0IHBheWxvYWQgPSBkYXRhID8gSlNPTi5zdHJpbmdpZnkoZGF0YSkgOiAnJztcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7YmFzZVVyaX0ke3VyaX1gLCBwYXlsb2FkLCB0aGlzLmdldEh0dHBPcHRpb25zKHJlcXVlc3RPcHRpb25zKSk7XG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybXMgYSBtdWx0aXBhcnQgZm9ybSBkYXRhIFBPU1QgcmVxdWVzdC5cbiAgICogQHBhcmFtIHVyaSBUaGUgdGFyZ2V0IFJFU1QgVVJJXG4gICAqIEBwYXJhbSBmb3JtRGF0YSBGb3JtRGF0YSB0byBiZSAncG9zdGVkJ1xuICAgKiBAcGFyYW0gYmFzZSBUaGUgQmFzZSBVUkkgKGJhY2tlbmQgc2VydmljZSkgdG8gYmUgdXNlZFxuICAgKiBAcGFyYW0gcmVxdWVzdE9wdGlvbnMgQWRkaXRpb25hbCByZXF1ZXN0IG9wdGlvbnNcbiAgICogQHJldHVybnMgVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgdGFyZ2V0IFBPU1QgZW5kcG9pbnRcbiAgICovXG4gIHB1YmxpYyBwb3N0TXVsdGlQYXJ0KHVyaTogc3RyaW5nLCBmb3JtRGF0YTogRm9ybURhdGEsIGJhc2U/OiBzdHJpbmcsIHJlcXVlc3RPcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IGJhc2VVcmkgPSB0aGlzLmdldENvbnRleHRQYXRoKGJhc2UpO1xuICAgIGNvbnN0IGhlYWRlcnMgPSB0aGlzLmdldEhlYWRlcnMoKTtcbiAgICBoZWFkZXJzLmRlbGV0ZSgnQ29udGVudC1UeXBlJyk7XG4gICAgY29uc3QgcmVxT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe2hlYWRlcnM6IGhlYWRlcnMsIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb3JlQ29uZmlnLndpdGhDcmVkZW50aWFsc30sIHJlcXVlc3RPcHRpb25zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7YmFzZVVyaX0ke3VyaX1gLCBmb3JtRGF0YSwgcmVxT3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogV3JhcHBlZCBIVFRQIERFTEVURSBtZXRob2RcbiAgICogQHBhcmFtIHVyaSBUaGUgdGFyZ2V0IFJFU1QgVVJJXG4gICAqIEBwYXJhbSBiYXNlIFRoZSBCYXNlIFVSSSAoYmFja2VuZCBzZXJ2aWNlKSB0byBiZSB1c2VkXG4gICAqIEBwYXJhbSByZXF1ZXN0T3B0aW9ucyBBZGRpdGlvbmFsIHJlcXVlc3Qgb3B0aW9uc1xuICAgKiBAcmV0dXJucyBUaGUgcmV0dXJuIHZhbHVlIG9mIHRoZSB0YXJnZXQgREVMRVRFIGVuZHBvaW50XG4gICAqL1xuICBwdWJsaWMgZGVsKHVyaTogc3RyaW5nLCBiYXNlPzogc3RyaW5nLCByZXF1ZXN0T3B0aW9ucz86IEh0dHBPcHRpb25zKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZSh0aGlzLmdldENvbnRleHRQYXRoKGJhc2UpICsgdXJpLCB0aGlzLmdldEh0dHBPcHRpb25zKHJlcXVlc3RPcHRpb25zKSk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKiBTb2Z0IHVwZGF0ZSBmb3IgbGlzdHMgLSBlbmFibGVzIGdyaWQgdG8gaGFuZGxlIGFsbCBjaGFuZ2VzXG4gICAqIHRvIGFkZCBuZXcgLSBvbmx5IGl0ZW0gc2hvdWxkIGJlIHNwZWNpZmllZFxuICAgKiB0byByZW1vdmUgLSBvbmx5IGlkIHNob3VsZCBiZSBzcGVjaWZpZWRcbiAgICogdG8gdXBkYXRlIC0gYm90aCBwYXJhbXMgc2hvdWxkIGJlIHNwZWNpZmllZFxuICAgKlxuICAgKiBAcGFyYW0gYW55W10gbGlzdCBPcmlnaW5hbCBsaXN0IG9mIGl0ZW1zXG4gICAqIEBwYXJhbSBpZD86IHN0cmluZzsgaXRlbT86IGFueSBkYXRhW11cbiAgICogQHJldHVybnMgYW55W11cbiAgICovXG4gIHB1YmxpYyB1cGRhdGUobGlzdDogYW55W10sIGRhdGE6IHtpZD86IHN0cmluZywgaXRlbT86IGFueX1bXSkge1xuICAgIGRhdGEuZm9yRWFjaCgoe2lkLCBpdGVtfSkgPT4ge1xuICAgICAgaWYgKGlkKSB7XG4gICAgICAgIGNvbnN0IF9pdGVtID0gbGlzdC5maW5kKGwgPT4gbC5pZCA9PT0gaWQpO1xuICAgICAgICBPYmplY3QuYXNzaWduKF9pdGVtLCBpdGVtLCBpdGVtID8ge19fdXBkYXRlZDogdHJ1ZX0gOiB7X19yZW1vdmVkOiB0cnVlfSk7XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0pIHtcbiAgICAgICAgbGlzdC51bnNoaWZ0KE9iamVjdC5hc3NpZ24oaXRlbSwge19fYWRkZWQ6IHRydWV9KSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGxpc3Q7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKiBDYWNoZSBmb3Igc21hbGwgcmVxdWVzdHMgbGlrZSBpY29ucyBhbmQgY29uZmlnc1xuICAgKlxuICAgKiBAcGFyYW0gc3RyaW5nIHVyaVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT5cbiAgICovXG4gIHB1YmxpYyBnZXRWaWFDYWNoZSh1cmk6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgaWYgKHRoaXMuY2FjaGUuaGFzKHVyaSkpIHtcbiAgICAgIHJldHVybiBvYnNlcnZhYmxlT2YodGhpcy5jYWNoZS5nZXQodXJpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFZpYVRlbXBDYWNoZSh1cmksICgpID0+IHRoaXMuaHR0cC5nZXQodXJpLCB7d2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvcmVDb25maWcud2l0aENyZWRlbnRpYWxzLCByZXNwb25zZVR5cGU6ICd0ZXh0J30pLnBpcGUoXG4gICAgICAgIHRhcCh0ZXh0ID0+IHRoaXMuY2FjaGUuc2V0KHVyaSwgdGV4dCkpKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICogVGVtcG9yYXJ5IENhY2hlIGZvciBtdWx0aXBsZSBpZGVudGljYWwgcmVxdWVzdHNcbiAgICpcbiAgICogQHBhcmFtIHN0cmluZyBpZFxuICAgKiBAcGFyYW0gRnVuY3Rpb24gcmVxdWVzdFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT5cbiAgICovXG4gIHB1YmxpYyBnZXRWaWFUZW1wQ2FjaGUoaWQ6IHN0cmluZywgcmVxdWVzdD86IEZ1bmN0aW9uKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBpZiAodGhpcy50ZW1wLmhhcyhpZCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnRlbXAuZ2V0KGlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcmVzcCA9IChyZXF1ZXN0ID8gcmVxdWVzdCgpIDogdGhpcy5nZXQoaWQpKS5waXBlKFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLnRlbXAuZGVsZXRlKGlkKSksXG4gICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICApO1xuICAgICAgdGhpcy50ZW1wLnNldChpZCwgcmVzcCk7XG4gICAgICByZXR1cm4gcmVzcDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRG93bmxvYWQgdGhlIGNvbnRlbnQgb2YgZG1zIG9iamVjdHMuXG4gICAqXG4gICAqIEBwYXJhbSBEbXNPYmplY3RbXSBkbXNPYmplY3RzIEFycmF5IG9mIGRtcyBvYmplY3RzIHRvIGJlIGRvd25sb2FkZWRcbiAgICogQHBhcmFtIFwiUERGXCIgfCBcIlRJRkZcIiB8IFwiVEVYVFwiIHwgXCJKUEVHXCIgcmVuZGl0aW9uIFRoZSB0eXBlIG9mIHJlbmRpdGlvbiB0byBiZSBkb3dubG9hZGVkLiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3JpZ2luYWwgY29udGVudCB3aWxsIGJlIGRvd25sb2FkZWQuXG4gICAqIFBvc3NpYmxlIHJlbmRpdGlvbnMgYXJlIGBQREZgLCBgVElGRmAsIGBURVhUYCwgYEpQRUdgLlxuICAgKi9cbiAgcHVibGljIGRvd25sb2FkQ29udGVudChkbXNPYmplY3RzOiBEbXNPYmplY3RbXSwgcmVuZGl0aW9uPzogJ1BERicgfCAnVElGRicgfCAnVEVYVCcgfCAnSlBFRycsIGZpbGVOYW1lV2l0aFZlcnNpb25OdW1iZXI/OiBib29sZWFuLCByZWN5Y2xlYmluPzogYm9vbGVhbikge1xuXG4gICAgY29uc3QgaXRlbSA9IGRtc09iamVjdHNbMF07XG4gICAgaWYgKGRtc09iamVjdHMubGVuZ3RoID09PSAxKSB7XG4gICAgICBpZiAoaXRlbS5jb250ZW50KSB7XG5cbiAgICAgICAgbGV0IHVyaSA9IGAvZG1zLyR7aXRlbS5jb250ZW50LmlkfS9jb250ZW50P3R5cGU9JHtpdGVtLmNvbnRlbnQudHlwZX0mYXNkb3dubG9hZD10cnVlJnJlY3ljbGViaW49JHshIXJlY3ljbGViaW59YDtcbiAgICAgICAgaWYgKHJlbmRpdGlvbikge1xuICAgICAgICAgIHVyaSArPSBgJnJlbmRpdGlvbj0ke3JlbmRpdGlvbn0mX2ludGVudD1ET1dOTE9BRF8ke3JlbmRpdGlvbn1gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHVyaSArPSAnJl9pbnRlbnQ9RE9XTkxPQUQnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpdGVtLmNvbnRlbnQuaWQgPT09IGl0ZW0uaWQpIHtcbiAgICAgICAgICB1cmkgKz0gYCZ2ZXJzaW9uPSR7aXRlbS52ZXJzaW9ufWA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kb3dubG9hZCh1cmksIGZpbGVOYW1lV2l0aFZlcnNpb25OdW1iZXIgPyBpdGVtLnZlcnNpb24gOiBudWxsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdUaGUgcHJvdmlkZWQgZG1zIG9iamVjdCBoYXMgbm8gY29udGVudCcsIGl0ZW0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChkbXNPYmplY3RzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGxldCB1cmkgPSAnL2Rtcy9iYXRjaC9leHBvcnQnO1xuICAgICAgaWYgKGl0ZW0uY29udGVudCkge1xuICAgICAgICBjb25zdCBleHByZXNzaW9ucyA9IGRtc09iamVjdHMubWFwKG9iaiA9PiBvYmouY29udGVudC5pZCk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgcXVlcnk6IHtcbiAgICAgICAgICAgIGV4cHJlc3Npb246IFsuLi5leHByZXNzaW9uc11cbiAgICAgICAgICB9LFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHJlbmRpdGlvbjogJydcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGRhdGEub3B0aW9ucy5yZW5kaXRpb24gPSByZW5kaXRpb24gPyAnUERGJyA6IG51bGw7XG4gICAgICAgIHRoaXMuZG93bmxvYWRNdWx0aSh1cmksIGZpbGVOYW1lV2l0aFZlcnNpb25OdW1iZXIgPyBpdGVtLnZlcnNpb24gOiBudWxsLCBkYXRhKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdUaGUgcHJvdmlkZWQgZG1zIG9iamVjdCBoYXMgbm8gY29udGVudCcsIGl0ZW0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkb3dubG9hZCh1cmk6IHN0cmluZywgdmVyc2lvbj86IG51bWJlcikge1xuICAgIGNvbnN0IGJhc2VVcmkgPSB0aGlzLmdldENvbnRleHRQYXRoKCk7XG4gICAgdGhpcy5odHRwLmdldChgJHtiYXNlVXJpfSR7dXJpfWAsIHtvYnNlcnZlOiAncmVzcG9uc2UnLCByZXNwb25zZVR5cGU6ICdibG9iJywgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvcmVDb25maWcud2l0aENyZWRlbnRpYWxzfSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICBGaWxlU2F2ZXIuc2F2ZUFzKFxuICAgICAgICAgIHJlcy5ib2R5LFxuICAgICAgICAgIHRoaXMuZ2V0RmlsZU5hbWVGcm9tSHR0cFJlc3BvbnNlKHJlcywgdmVyc2lvbilcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGRvd25sb2FkTXVsdGkodXJpOiBzdHJpbmcsIHZlcnNpb24/OiBudW1iZXIsIF9ib2R5PzogYW55KSB7XG4gICAgY29uc3QgYmFzZVVyaSA9IHRoaXMuZ2V0Q29udGV4dFBhdGgoKTtcbiAgICB0aGlzLmh0dHAucG9zdChgJHtiYXNlVXJpfSR7dXJpfWAsIF9ib2R5LCB7b2JzZXJ2ZTogJ3Jlc3BvbnNlJywgcmVzcG9uc2VUeXBlOiAnYmxvYicsIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb3JlQ29uZmlnLndpdGhDcmVkZW50aWFsc30pXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgRmlsZVNhdmVyLnNhdmVBcyhcbiAgICAgICAgICByZXMuYm9keSxcbiAgICAgICAgICB0aGlzLmdldEZpbGVOYW1lRnJvbUh0dHBSZXNwb25zZShyZXMsIHZlcnNpb24pXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmlsZU5hbWVGcm9tSHR0cFJlc3BvbnNlKHJlczogSHR0cFJlc3BvbnNlPGFueT4sIHZlcnNpb246IG51bWJlcikge1xuICAgIGNvbnN0IGNvbnRlbnREaXNwb3NpdGlvbkhlYWRlciA9IHJlcy5oZWFkZXJzLmdldCgnQ29udGVudC1EaXNwb3NpdGlvbicpIHx8ICcnO1xuICAgIGNvbnN0IGVuY29kZWRGaWxlTmFtZU1hdGNoUmVzdWx0ID0gY29udGVudERpc3Bvc2l0aW9uSGVhZGVyLm1hdGNoKCdmaWxlbmFtZVxcXFwqPVVURi04XFwnXFwnKC4qKScpXG4gICAgICB8fCBjb250ZW50RGlzcG9zaXRpb25IZWFkZXIubWF0Y2goJ2ZpbGVuYW1lPVxcXCIoLiopXFxcIicpO1xuICAgIGNvbnN0IGVuY29kZWRGaWxlTmFtZSA9IGVuY29kZWRGaWxlTmFtZU1hdGNoUmVzdWx0ID8gZW5jb2RlZEZpbGVOYW1lTWF0Y2hSZXN1bHRbMV0gOiBudWxsO1xuICAgIGNvbnN0IGZpbGVuYW1lID0gZW5jb2RlZEZpbGVOYW1lID8gZGVjb2RlVVJJQ29tcG9uZW50KGVuY29kZWRGaWxlTmFtZSkgOiAndW5rbm93bic7XG4gICAgY29uc3QgaW5kZXggPSAhfmZpbGVuYW1lLmxhc3RJbmRleE9mKCcuJykgPyBmaWxlbmFtZS5sZW5ndGggOiBmaWxlbmFtZS5sYXN0SW5kZXhPZignLicpO1xuICAgIHJldHVybiAhdmVyc2lvbiA/IGZpbGVuYW1lIDogYCR7ZmlsZW5hbWUuc2xpY2UoMCwgaW5kZXgpfV92JHt2ZXJzaW9ufSR7ZmlsZW5hbWUuc2xpY2UoaW5kZXgpfWA7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBHZXR0ZXIgZm9yIHRoZSBIVFRQIEhlYWRlcnNcbiAgICpcbiAgICogQHJldHVybnMgSHR0cEhlYWRlcnNcbiAgICovXG4gIHByaXZhdGUgc2V0RGVmYXVsdEhlYWRlcnMoKTogSHR0cEhlYWRlcnMge1xuICAgIHJldHVybiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICdYLW9zLWluY2x1ZGUtbGlua3MnOiAnZmFsc2UnLFxuICAgICAgJ1gtb3MtaW5jbHVkZS1hY3Rpb25zJzogJ2ZhbHNlJyxcbiAgICAgICdYLW9zLXN5bmMtaW5kZXgnOiAndHJ1ZSdcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -2,7 +2,7 @@ import { forkJoin as observableForkJoin, of, ReplaySubject } from 'rxjs';
|
|
|
2
2
|
import { catchError, tap, map, switchMap } from 'rxjs/operators';
|
|
3
3
|
import { Injectable } from '@angular/core';
|
|
4
4
|
import { ObjectType } from '../../model/object-type.model';
|
|
5
|
-
import
|
|
5
|
+
import { cloneDeep } from 'lodash-es';
|
|
6
6
|
import { Utils } from '../../util/utils';
|
|
7
7
|
import { EnaioEvent } from '../events/events';
|
|
8
8
|
import moment from 'moment';
|
|
@@ -115,7 +115,7 @@ export class SystemService {
|
|
|
115
115
|
}
|
|
116
116
|
if (cachedForm) {
|
|
117
117
|
/** return a clone of the cached model as otherwise model changes will be added to the chached model */
|
|
118
|
-
return of(
|
|
118
|
+
return of(cloneDeep(cachedForm));
|
|
119
119
|
}
|
|
120
120
|
else {
|
|
121
121
|
let uri = `/ui/form/${objectTypeName}?situation=${situation}`;
|
|
@@ -123,7 +123,7 @@ export class SystemService {
|
|
|
123
123
|
/** fetch and cache the requested form, if no cached version was found */
|
|
124
124
|
return this.backend.getViaTempCache(uri, () => this.backend
|
|
125
125
|
.getJson(uri)
|
|
126
|
-
.pipe(tap((model) => this.objectTypeForms.push(
|
|
126
|
+
.pipe(tap((model) => this.objectTypeForms.push(cloneDeep(model)))));
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
/**
|
|
@@ -342,4 +342,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
342
342
|
providedIn: 'root'
|
|
343
343
|
}]
|
|
344
344
|
}], ctorParameters: function () { return [{ type: i1.BackendService }, { type: i2.Logger }, { type: i3.EventService }, { type: i4.AppCacheService }]; } });
|
|
345
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL3NlcnZpY2Uvc3lzdGVtL3N5c3RlbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLElBQUksa0JBQWtCLEVBQUUsRUFBRSxFQUFjLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVuRixPQUFPLEVBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUt6QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFekQsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBR3ZDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7OztBQUU1Qjs7R0FFRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBV3hCLFlBQW9CLE9BQXVCLEVBQ3ZCLE1BQWMsRUFDZCxZQUEwQixFQUMxQixRQUF5QjtRQUh6QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFYckMsaUJBQVksR0FBRyxJQUFJLGFBQWEsRUFBTyxDQUFDO1FBQ3pDLFlBQU8sR0FBb0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVuRSxzQ0FBc0M7UUFDOUIsb0JBQWUsR0FBVSxFQUFFLENBQUM7UUFFNUIsZ0JB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c2VydmFibGUsIFJlcGxheVN1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge2NhdGNoRXJyb3IsIHRhcCwgbWFwLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0lPcmdhbml6YXRpb25PYmplY3RzfSBmcm9tICcuLi8uLi9pbnRlcmZhY2Uvb3JnYW5pemF0aW9uLW9iamVjdHMuaW50ZXJmYWNlJztcbmltcG9ydCB7QmFja2VuZFNlcnZpY2V9IGZyb20gJy4uL2JhY2tlbmQvYmFja2VuZC5zZXJ2aWNlJztcbmltcG9ydCB7QXBwQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi9jYWNoZS9hcHAtY2FjaGUuc2VydmljZSc7XG5pbXBvcnQge0xvZ2dlcn0gZnJvbSAnLi4vbG9nZ2VyL2xvZ2dlcic7XG5pbXBvcnQge09iamVjdFR5cGV9IGZyb20gJy4uLy4uL21vZGVsL29iamVjdC10eXBlLm1vZGVsJztcbmltcG9ydCB7RW9Vc2VyfSBmcm9tICcuLi8uLi9tb2RlbC9lby11c2VyLm1vZGVsJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7T3JnUm9sZX0gZnJvbSAnLi4vLi4vbW9kZWwvb3JnLm1vZGVsJztcbmltcG9ydCB7VXRpbHN9IGZyb20gJy4uLy4uL3V0aWwvdXRpbHMnO1xuaW1wb3J0IHtJQ29kZVN5c3RlbX0gZnJvbSAnLi9zeXN0ZW1kZWZpbml0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQge0V2ZW50U2VydmljZX0gZnJvbSAnLi4vZXZlbnRzL2V2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtFbmFpb0V2ZW50fSBmcm9tICcuLi9ldmVudHMvZXZlbnRzJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcblxuLyoqXG4gKiBDb2xsZWN0aW9uIG9mIFN5c3RlbSBTZXJ2aWNlc1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTeXN0ZW1TZXJ2aWNlIHtcblxuICBwcml2YXRlIF9zeXN0ZW07XG4gIHByaXZhdGUgc3lzdGVtU291cmNlID0gbmV3IFJlcGxheVN1YmplY3Q8YW55PigpO1xuICBwdWJsaWMgc3lzdGVtJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5zeXN0ZW1Tb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgLy8gc2Vzc2lvbiBjYWNoZSBmb3Igb2JqZWN0IHR5cGUgZm9ybXNcbiAgcHJpdmF0ZSBvYmplY3RUeXBlRm9ybXM6IGFueVtdID0gW107XG4gIHByaXZhdGUgdXNlcjogRW9Vc2VyO1xuICBwcml2YXRlIGNhY2hlZFJvbGVzOiBPcmdSb2xlW10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyLFxuICAgICAgICAgICAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGFwcENhY2hlOiBBcHBDYWNoZVNlcnZpY2UpIHtcbiAgICB0aGlzLmV2ZW50U2VydmljZS5vbihFbmFpb0V2ZW50LlNZU1RFTV9TVEFUVVNfU0NIRU1BX0NIQU5HRUQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmZldGNoU3lzdGVtRGVmaW5pdGlvbih0aGlzLnVzZXIpO1xuICAgIH0pXG4gIH1cblxuICBzZXQgc3lzdGVtKHMpe1xuICAgIHRoaXMuX3N5c3RlbSA9IHM7XG4gIH1cblxuICBnZXQgc3lzdGVtKCl7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5fc3lzdGVtKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhbGwgT2JqZWN0VHlwZXNcbiAgICpcbiAgICogQHJldHVybnMgQW4gYXJyYXkgY29udGFpbmluZyBhbGwgb2JqZWN0IHR5cGVzXG4gICAqL1xuICBwdWJsaWMgZ2V0T2JqZWN0VHlwZXMoKTogT2JqZWN0VHlwZVtdIHtcbiAgICByZXR1cm4gdGhpcy5zeXN0ZW0udHlwZXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhbiBPYmplY3RUeXBlIGJ5IG5hbWUuXG4gICAqXG4gICAqIEBwYXJhbSBvYmplY3RUeXBlTmFtZSBUaGUgbmFtZSBvZiB0aGUgb2JqZWN0IHR5cGVcbiAgICogQHJldHVybnMgdGhlIE9iamVjdFR5cGUgbWF0Y2hpbmcgdGhlIGdpdmVuIG5hbWVcbiAgICovXG4gIHB1YmxpYyBnZXRPYmplY3RUeXBlKG9iamVjdFR5cGVOYW1lOiBzdHJpbmcpOiBPYmplY3RUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5zeXN0ZW0udHlwZXMuZmluZCh0ID0+IHQubmFtZSA9PT0gb2JqZWN0VHlwZU5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBmb3JtIGVsZW1lbnRzIGZyb20gZm9ybSBtb2RlbC4gVGhpcyBpcyB1c2VmdWwgaWYgeW91IGhhdmUgdG8gZmV0Y2ggdGhlbVxuICAgKiBmb3IgYSBzcGVjaWFsIHNpdHVhdGlvbiBsaWtlIFNFQVJDSFxuICAgKiBAcGFyYW0gb2JqZWN0VHlwZU5hbWUgT2JqZWN0VHlwZSB0byBmZXRjaCBlbGVtZW50cyBmb3JcbiAgICogQHBhcmFtIHNpdHVhdGlvbiBGb3JtIG1vZGVsIHNpdHVhdGlvbiB0byBiZSBmZXRjaGVkXG4gICAqIEBwYXJhbSBpc0NvbnRleHRUeXBlIEZsYWcgaW5kaWNhdGluZyB0aGF0IHRoZSBmb3JtIG1vZGVsIHNob3VsZCBiZSBmZXRjaGVkIGZvciBhIGNvbnRleHQgbW9kZVxuICAgKi9cbiAgZ2V0Rm9ybUVsZW1lbnRzRnJvbUZvcm1Nb2RlbChvYmplY3RUeXBlTmFtZTogc3RyaW5nLCBzaXR1YXRpb246IHN0cmluZywgaXNDb250ZXh0VHlwZT86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0T2JqZWN0VHlwZUZvcm0ob2JqZWN0VHlwZU5hbWUsIHNpdHVhdGlvbiwgaXNDb250ZXh0VHlwZSA/ICdDT05URVhUJyA6IG51bGwpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAobW9kZWwgPT4ge1xuICAgICAgICBjb25zdCBlbGVtZW50cyA9IFtdO1xuICAgICAgICB0aGlzLnByb2Nlc3NGb3JtTW9kZWxFbGVtZW50cyhtb2RlbCwgZWxlbWVudHMpO1xuICAgICAgICByZXR1cm4gb2YoZWxlbWVudHMpO1xuICAgIH0pKVxuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzRm9ybU1vZGVsRWxlbWVudHMobW9kZWw6IGFueSwgZWxlbWVudHM6IGFueVtdKSB7XG4gICAgbW9kZWwuZWxlbWVudHMuZm9yRWFjaChlID0+IHtcbiAgICAgIGlmKGUudHlwZSAhPT0gXCJvMm1Hcm91cFwiICYmIGUudHlwZSAhPT0gXCJvMm1Hcm91cFN0YWNrXCIpIHtcbiAgICAgICAgZWxlbWVudHMucHVzaChlKTtcbiAgICAgIH0gZWxzZSBpZihlLmVsZW1lbnRzICYmIGUuZWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMucHJvY2Vzc0Zvcm1Nb2RlbEVsZW1lbnRzKGUsIGVsZW1lbnRzKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCB0aGUgZ2l2ZW4gdHlwZSBpbXBsZW1lbnRzIGEgZ2l2ZW4gc3VwZXJ0eXBlXG4gICAqIEBwYXJhbSB0eXBlIFR5cGUgdG8gYmUgY2hlY2tlZFxuICAgKiBAcGFyYW0gc3VwZXJUeXBlTmFtZSBOYW1lIG9mIHRoZSBzdXBlcnR5cGVcbiAgICovXG4gIHB1YmxpYyBpbXBsZW1lbnRzVHlwZSh0eXBlOiBPYmplY3RUeXBlLCBzdXBlclR5cGVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZS5uYW1lID09PSBzdXBlclR5cGVOYW1lIHx8ICh0eXBlLmltcGxlbWVudHMgJiYgdHlwZS5pbXBsZW1lbnRzLmluZGV4T2Yoc3VwZXJUeXBlTmFtZSkgIT09IC0xKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgY29kZXN5c3RlbVxuICAgKlxuICAgKiBAcGFyYW0gaWQgVGhlIGNvZGVzeXN0ZW1zIGlkXG4gICAqIEByZXR1cm5zIFRoZSBjb2Rlc3lzdGVtIG9iamVjdCBtYXRjaGluZyB0aGUgZ2l2ZW4gaWRcbiAgICovXG4gIHB1YmxpYyBnZXRDb2Rlc3lzdGVtKGlkOiBzdHJpbmcpOiBJQ29kZVN5c3RlbSB7XG4gICAgcmV0dXJuIHRoaXMuc3lzdGVtLmNvZGVzeXN0ZW1zLmZpbmQodCA9PiB0LmlkID09PSBpZCB8fCB0Lm5hbWUgPT09IGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGZvcm0gbW9kZWwgb2YgYW4gb2JqZWN0IHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSBvYmplY3RUeXBlTmFtZSBUaGUgb2JqZWN0IHR5cGUgbmFtZVxuICAgKiBAcGFyYW0gc2l0dWF0aW9uIFRoZSBmb3JtIHNpdHVhdGlvbiB0byBiZSBmZXRjaGVkXG4gICAqIEBwYXJhbSBtb2RlIEZvcm0gbW9kZSB0byBmZXRjaCAoZS5nLiBDT05URVhUKVxuICAgKiBAcmV0dXJucyBUaGUgb2JqZWN0IHR5cGUgZm9ybSBtb2RlbFxuICAgKi9cbiAgcHVibGljIGdldE9iamVjdFR5cGVGb3JtKG9iamVjdFR5cGVOYW1lOiBzdHJpbmcsIHNpdHVhdGlvbjogc3RyaW5nLCBtb2RlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgIC8qKiBjaGVjayBpZiB3ZSBoYXZlIGEgY2FjaGVkIGZvcm0gZmlyc3QgKi9cbiAgICBsZXQgY2FjaGVkRm9ybTtcblxuICAgIGxldCBpID0gMDtcbiAgICB3aGlsZSAoIWNhY2hlZEZvcm0gJiYgaSA8IHRoaXMub2JqZWN0VHlwZUZvcm1zLmxlbmd0aCkge1xuICAgICAgaWYgKHRoaXMub2JqZWN0VHlwZUZvcm1zW2ldLm5hbWUgPT09IG9iamVjdFR5cGVOYW1lICYmXG4gICAgICAgIHRoaXMub2JqZWN0VHlwZUZvcm1zW2ldLm1vZGUgPT09IG1vZGUgJiZcbiAgICAgICAgdGhpcy5vYmplY3RUeXBlRm9ybXNbaV0uc2l0dWF0aW9uID09PSBzaXR1YXRpb24pIHtcbiAgICAgICAgY2FjaGVkRm9ybSA9IHRoaXMub2JqZWN0VHlwZUZvcm1zW2ldO1xuICAgICAgfVxuICAgICAgaSsrO1xuICAgIH1cblxuICAgIGlmIChjYWNoZWRGb3JtKSB7XG4gICAgICAvKiogcmV0dXJuIGEgY2xvbmUgb2YgdGhlIGNhY2hlZCBtb2RlbCBhcyBvdGhlcndpc2UgbW9kZWwgY2hhbmdlcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBjaGFjaGVkIG1vZGVsICovXG4gICAgICByZXR1cm4gb2YoXy5jbG9uZURlZXAoY2FjaGVkRm9ybSkpO1xuICAgIH0gZWxzZSB7XG5cbiAgICAgIGxldCB1cmkgPSBgL3VpL2Zvcm0vJHtvYmplY3RUeXBlTmFtZX0/c2l0dWF0aW9uPSR7c2l0dWF0aW9ufWA7XG4gICAgICB1cmkgKz0gISFtb2RlID8gYCZmb3JtbW9kZT0ke21vZGV9YCA6ICcnO1xuXG4gICAgICAvKiogZmV0Y2ggYW5kIGNhY2hlIHRoZSByZXF1ZXN0ZWQgZm9ybSwgaWYgbm8gY2FjaGVkIHZlcnNpb24gd2FzIGZvdW5kICovXG4gICAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldFZpYVRlbXBDYWNoZSh1cmksICgpID0+IHRoaXMuYmFja2VuZFxuICAgICAgICAuZ2V0SnNvbih1cmkpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRhcCgobW9kZWwpID0+IHRoaXMub2JqZWN0VHlwZUZvcm1zLnB1c2goXy5jbG9uZURlZXAobW9kZWwpKSlcbiAgICAgICAgKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIGJhY2tlbmRzIHN5c3RlbSBkZWZpbml0aW9uIGFuZCB1cGRhdGVzIHN5c3RlbSQgT2JzZXJ2YWJsZS5cbiAgICogU3Vic2NyaWJlIHRvIHRoZSBzeXN0ZW0kIG9ic2VydmFibGUgaW5zdGVhZCBvZiBjYWxsaW5nIHRoaXMgZnVuY3Rpb24sIG90aGVyd2lzZSB5b3UnbGwgdHJpZ2dlciBmZXRjaGluZyB0aGVcbiAgICogc3lzdGVtIGRlZmluaXRpb24gZXZlcnkgdGltZS5cbiAgICpcbiAgICogQHBhcmFtIHVzZXIgVGhlIHVzZXIgdG8gbG9hZCB0aGUgc3lzdGVtIGRlZmluaXRpb24gZm9yXG4gICAqIEByZXR1cm5zIHRydWUgd2hlbiBzdWNjZXNzZnVsbFxuICAgKi9cbiAgcHVibGljIGdldFN5c3RlbURlZmluaXRpb24odXNlcjogRW9Vc2VyKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG5cbiAgICB0aGlzLnVzZXIgPSB1c2VyO1xuICAgIC8vIHRvZG86IHRlbXBvcmFyeTogT3JnQ2hhbmdlcyBjb3VsZCBub3QgYmUgcmVjb2duaXplZCBidXQgYWZmZWN0IG9iamVjdCBkZWZpbml0aW9uXG4gICAgcmV0dXJuIHRoaXMuZmV0Y2hTeXN0ZW1EZWZpbml0aW9uKHVzZXIpO1xuXG4gICAgLy8gdG9kbzogZW5hYmxlIGFnYWluIHdoZW4gT3JnQ2hhbmdlcyBhcmUgcmVjb2duaXphYmxlIChETyBOT1QgREVMRVRFISlcbiAgICAvLyAvLyBpcyB0aGVyZSBhIGNhY2hlZCB2ZXJzaW9uXG4gICAgLy8gcmV0dXJuIHRoaXMuYXBwQ2FjaGVcbiAgICAvLyAgIC5nZXRJdGVtKHRoaXMuYXBwQ2FjaGUuU1lTVEVNX0RFRklOSVRJT04pXG4gICAgLy8gICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgLy8gICAgIHRoaXMubG9nZ2VyLmVycm9yKCdFcnJvciBmZXRjaGluZyBjYWNoZWQgdmVyc2lvbiBvZiBzeXN0ZW0gZGVmaW5pdGlvbi4nLCBlcnJvcik7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLmZldGNoU3lzdGVtRGVmaW5pdGlvbih1c2VyKTtcbiAgICAvLyAgIH0pXG4gICAgLy8gICAuZmxhdE1hcCgoY2FjaGVkU3lzdGVtRGVmaW5pdGlvbjogYW55KSA9PiB7XG4gICAgLy9cbiAgICAvLyAgICAgLy8geWVzPyB0aGVuIGNoZWNrIGlmIGl0J3MgdXAgdG8gZGF0ZVxuICAgIC8vICAgICBpZiAoY2FjaGVkU3lzdGVtRGVmaW5pdGlvbikge1xuICAgIC8vXG4gICAgLy8gICAgICAgaWYgKFxuICAgIC8vICAgICAgICAgdXNlci5zY2hlbWEudmVyc2lvbiAhPT0gY2FjaGVkU3lzdGVtRGVmaW5pdGlvbi5pbmZvLnZlcnNpb24gfHxcbiAgICAvLyAgICAgICAgIHVzZXIuaWQgIT09IGNhY2hlZFN5c3RlbURlZmluaXRpb24uaW5mby51c2VyIHx8XG4gICAgLy8gICAgICAgICB1c2VyLmdldFNjaGVtYUxvY2FsZSgpICE9PSBjYWNoZWRTeXN0ZW1EZWZpbml0aW9uLmluZm8ubG9jYWxlXG4gICAgLy8gICAgICAgKSB7XG4gICAgLy8gICAgICAgICByZXR1cm4gdGhpcy5mZXRjaFN5c3RlbURlZmluaXRpb24odXNlcik7XG4gICAgLy8gICAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICAgIC8vIGNhY2hlIGlzIHVwIHRvIGRhdGUuIHJldHVybiB0aGUgY2FjaGVkIG9uZVxuICAgIC8vICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ1N5c3RlbSBkZWZpbml0aW9uIGlzIHVwIHRvIGRhdGUsIHVzaW5nIGNhY2hlZCB2ZXJzaW9uLicsIGNhY2hlZFN5c3RlbURlZmluaXRpb24pO1xuICAgIC8vICAgICAgICAgdGhpcy5zeXN0ZW0gPSBjYWNoZWRTeXN0ZW1EZWZpbml0aW9uO1xuICAgIC8vICAgICAgICAgdGhpcy5zeXN0ZW1Tb3VyY2UubmV4dCh0aGlzLnN5c3RlbSk7XG4gICAgLy8gICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICB9IGVsc2Uge1xuICAgIC8vICAgICAgIC8vIG5vIGNhY2hlZCBzeXN0ZW1EZWZpbml0aW9uIGZvdW5kXG4gICAgLy8gICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hTeXN0ZW1EZWZpbml0aW9uKHVzZXIpO1xuICAgIC8vICAgICB9XG4gICAgLy8gICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgdmFsdWUgZGVwZW5kaW5nIG9uIGEgZ2l2ZW4gVHlwZVxuICAgKlxuICAgKiBAcGFyYW0gc3RyaW5nIHZhbHVlVHlwZVxuICAgKiBAcmV0dXJucyBhbnlcbiAgICovXG4gIHB1YmxpYyBnZXREZWZhdWx0VmFsdWUodmFsdWVUeXBlOiBzdHJpbmcpOiBhbnkge1xuICAgIGxldCBkZWZhdWx0VmFsdWU7XG4gICAgc3dpdGNoICh2YWx1ZVR5cGUpIHtcbiAgICAgIGNhc2UgJ0NVUlJFTlRfVVNFUic6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gdGhpcy51c2VyLm5hbWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnQ1VSUkVOVF9VU0VSX05BTUUnOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IHRoaXMudXNlci50aXRsZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdDVVJSRU5UX0RBVEVUSU1FJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0NVUlJFTlRfREFURSc6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gbW9tZW50KCkuc3RhcnRPZignZGF5JykuZm9ybWF0KCd5eXl5LU1NLUREJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnWUVBUic6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gbW9tZW50KCkueWVhcigpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ01PTlRIJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBtb21lbnQoKS5tb250aCgpICsgMTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdEQVknOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IG1vbWVudCgpLmRhdGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdIT1VSJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBtb21lbnQoKS5ob3VyKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnTUlOVVRFJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBtb21lbnQoKS5taW51dGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdTRUNPTkQnOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IG1vbWVudCgpLnNlY29uZCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ1dFRUtfT0ZfWUVBUic6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gbW9tZW50KCkuaXNvV2VlaygpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0ZJUlNUX0RBWV9PRl9XRUVLJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBtb21lbnQoKS5zdGFydE9mKCdpc29XZWVrJykudG9EYXRlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnRklSU1RfREFZX09GX01PTlRIJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBtb21lbnQoKS5zdGFydE9mKCdtb250aCcpLnRvRGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0ZJUlNUX0RBWV9PRl9ZRUFSJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykudG9EYXRlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgc3lzdGVtIGRlZmluaXRpb24gZnJvbSB0aGUgc2VydmVyLiBQcm92aWRlZCBwYXJhbXMgYXJlIHVzZWQgZm9yIHN0b3JpbmcgdGhlXG4gICAqIHJlY2VudCB2ZXJzaW9uIGluIGNhY2hlLlxuICAgKlxuICAgKiBAcGFyYW0gdXNlciBUaGUgdXNlciB0byBmZXRjaCB0aGUgc3lzdGVtIGRlZmluaXRpb24gZm9yXG4gICAqIEByZXR1cm4gYm9vbGVhblxuICAgKi9cbiAgZmV0Y2hTeXN0ZW1EZWZpbml0aW9uKHVzZXI6IEVvVXNlcik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuXG4gICAgY29uc3QgZmV0Y2hlcyA9IFtcbiAgICAgIHRoaXMuYmFja2VuZC5nZXRKc29uKCcvc3lzdGVtL3R5cGUvbGlzdD9lbGVtZW50cz10cnVlJmJhc2V0eXBlcz10cnVlJyksXG4gICAgICB0aGlzLmJhY2tlbmQuZ2V0SnNvbignL3N5c3RlbS9jcy9saXN0P2VsZW1lbnRzPXRydWUnKVxuICAgIF07XG5cbiAgICByZXR1cm4gb2JzZXJ2YWJsZUZvcmtKb2luKGZldGNoZXMpXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihVdGlscy5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignRXJyb3IgZmV0Y2hpbmcgcmVjZW50IHZlcnNpb24gb2Ygc3lzdGVtIGRlZmluaXRpb24gZnJvbSBzZXJ2ZXIuJywgZXJyb3IpO1xuICAgICAgICAgIHRoaXMuc3lzdGVtU291cmNlLmVycm9yKCdFcnJvciBmZXRjaGluZyByZWNlbnQgdmVyc2lvbiBvZiBzeXN0ZW0gZGVmaW5pdGlvbiBmcm9tIHNlcnZlci4nKTtcbiAgICAgICAgfSkpLFxuICAgICAgICBtYXAoKGRhdGEpID0+IHtcblxuICAgICAgICAgIHRoaXMub2JqZWN0VHlwZUZvcm1zID0gW107XG4gICAgICAgICAgY29uc3Qgc3lzdGVtID0ge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBpbmZvIGFib3V0IHRoZSBjdXJyZW50IHN5c3RlbSBkZWZpbml0aW9uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGluZm86IHtcbiAgICAgICAgICAgICAgdXNlcjogdXNlci5pZCxcbiAgICAgICAgICAgICAgbG9jYWxlOiB1c2VyLmdldFNjaGVtYUxvY2FsZSgpLFxuICAgICAgICAgICAgICB2ZXJzaW9uOiB1c2VyLnNjaGVtYS52ZXJzaW9uXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBzdXBwb3J0ZWQgYmFja2VuZCBsb2NhbGVzXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGxvY2FsZXM6IHVzZXIuc2NoZW1hLnN1cHBvcnRlZExvY2FsZXMsXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIG9iamVjdCB0eXBlIGRlZmluaXRpb25zXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHR5cGVzOiBbXSxcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogY29kZXN5c3RlbXMgY2FjaGVcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29kZXN5c3RlbXM6IFtdXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNvbnN0IHR5cGVzID0gZGF0YVswXTtcbiAgICAgICAgICBzeXN0ZW0udHlwZXMgPSB0eXBlcy5tYXAodCA9PiBuZXcgT2JqZWN0VHlwZSh0KSk7XG4gICAgICAgICAgc3lzdGVtLmNvZGVzeXN0ZW1zID0gZGF0YVsxXTtcblxuICAgICAgICAgIHRoaXMuc3lzdGVtID0gc3lzdGVtO1xuICAgICAgICAgIHRoaXMuc3lzdGVtU291cmNlLm5leHQoc3lzdGVtKTtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRmV0Y2hlZCBuZXcgdmVyc2lvbiBvZiBzeXN0ZW0gZGVmaW5pdGlvbiAodXNlcjogJyArIHVzZXIuaWQgKyAnLCB2ZXJzaW9uOiAnICsgdXNlci5zY2hlbWEudmVyc2lvbiArICcpLicpO1xuICAgICAgICAgIHRoaXMuYXBwQ2FjaGVcbiAgICAgICAgICAgIC5zZXRJdGVtKHRoaXMuYXBwQ2FjaGUuU1lTVEVNX0RFRklOSVRJT04sIHN5c3RlbSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQ2FjaGVkIHJlY2VudCB2ZXJzaW9uJyk7XG4gICAgICAgICAgICB9LCBVdGlscy5sb2dFcnJvcihudWxsLCAnRXJyb3IgY2FjaGluZyByZWNlbnQgdmVyc2lvbiBvZiBzeXN0ZW0gZGVmaW5pdGlvbi4nKSk7XG5cbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIGFuIG9yZ2FuaXphdGlvbiBvYmplY3QgYnkgaXRzIElEXG4gICAqIEBwYXJhbSBpZCBJRCBvZiBvcmcgb2JqZWN0XG4gICAqL1xuICBnZXRPcmdhbml6YXRpb25PYmplY3RCeUlkKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0SnNvbihgL29yZ2FuaXphdGlvbi9pZC8ke2lkfWApXG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgb3JnYW5pemF0aW9uIG9iamVjdCBmb3IgYSBnaXZlbiBuYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSB0byBmZXRjaCBvYmplY3QgZm9yXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBnZXRPcmdhbml6YXRpb25PYmplY3QobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRPcmdhbml6YXRpb25PYmplY3RzKFtuYW1lXSkucGlwZShtYXAocmVzID0+IHJlc1swXSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgYSBjb2xsZWN0aW9uIG9mIG9yZ2FuaXphdGlvbiBvYmplY3RzXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lcyBBcnJheSBvZiBuYW1lcyB0byBmZXRjaCBvYmplY3RzIGZvclxuICAgKiBAcmV0dXJucyBBIEFycmF5IG9mIE9yZ2FuaXphdGlvbiBPYmplY3RzXG4gICAqL1xuICBnZXRPcmdhbml6YXRpb25PYmplY3RzKG5hbWVzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8SU9yZ2FuaXphdGlvbk9iamVjdHNbXT4ge1xuICAgIGNvbnN0IHRvRmV0Y2g6IE9ic2VydmFibGU8SU9yZ2FuaXphdGlvbk9iamVjdHM+W10gPSBuYW1lcy5tYXAobmFtZSA9PiB0aGlzLmJhY2tlbmQuZ2V0SnNvbihgL29yZ2FuaXphdGlvbi9uYW1lLyR7bmFtZX1gKS5waXBlKGNhdGNoRXJyb3IoZXJyb3IgPT4gb2Yoe2lkOiBuYW1lLCBhY3RpdmU6IGZhbHNlfSkpKSk7XG4gICAgcmV0dXJuIG9ic2VydmFibGVGb3JrSm9pbih0b0ZldGNoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIGEgY29sbGVjdGlvbiBvZiBvcmdhbml6YXRpb24gcm9sZXNcbiAgICpcbiAgICogQHJldHVybiBBIEFycmF5IG9mIE9yZ2FuaXphdGlvbiBSb2xlc1xuICAgKi9cbiAgZ2V0Um9sZXMoKTogT2JzZXJ2YWJsZTxPcmdSb2xlW10+IHtcbiAgICBpZiAodGhpcy5jYWNoZWRSb2xlcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLmNhY2hlZFJvbGVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgICAuZ2V0KCcvb3JnYW5pemF0aW9uL3JvbGUnKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAobyA9PiBvIGFzIE9yZ1JvbGVbXSksXG4gICAgICAgICAgdGFwKHJvbGVzID0+ICh0aGlzLmNhY2hlZFJvbGVzID0gcm9sZXMgYXMgT3JnUm9sZVtdKSlcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
345
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL3NlcnZpY2Uvc3lzdGVtL3N5c3RlbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLElBQUksa0JBQWtCLEVBQUUsRUFBRSxFQUFjLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVuRixPQUFPLEVBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUt6QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFekQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUVwQyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFHdkMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQzs7Ozs7O0FBRTVCOztHQUVHO0FBSUgsTUFBTSxPQUFPLGFBQWE7SUFXeEIsWUFBb0IsT0FBdUIsRUFDdkIsTUFBYyxFQUNkLFlBQTBCLEVBQzFCLFFBQXlCO1FBSHpCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQVhyQyxpQkFBWSxHQUFHLElBQUksYUFBYSxFQUFPLENBQUM7UUFDekMsWUFBTyxHQUFvQixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRW5FLHNDQUFzQztRQUM5QixvQkFBZSxHQUFVLEVBQUUsQ0FBQztRQUU1QixnQkFBVyxHQUFjLEVBQUUsQ0FBQztRQU1sQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzNFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsQ0FBQztRQUNWLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxhQUFhLENBQUMsY0FBc0I7UUFDekMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCw0QkFBNEIsQ0FBQyxjQUFzQixFQUFFLFNBQWlCLEVBQUUsYUFBdUI7UUFDN0YsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUFFLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUM3RixTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDaEIsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDL0MsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNMLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxLQUFVLEVBQUUsUUFBZTtRQUMxRCxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN6QixJQUFHLENBQUMsQ0FBQyxJQUFJLEtBQUssVUFBVSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssZUFBZSxFQUFFO2dCQUN0RCxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2xCO2lCQUFNLElBQUcsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtnQkFDekMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQzthQUM1QztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxjQUFjLENBQUMsSUFBZ0IsRUFBRSxhQUFxQjtRQUMzRCxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNHLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGFBQWEsQ0FBQyxFQUFVO1FBQzdCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLGlCQUFpQixDQUFDLGNBQXNCLEVBQUUsU0FBaUIsRUFBRSxJQUFhO1FBRS9FLDJDQUEyQztRQUMzQyxJQUFJLFVBQVUsQ0FBQztRQUVmLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLE9BQU8sQ0FBQyxVQUFVLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFO1lBQ3JELElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssY0FBYztnQkFDakQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSTtnQkFDckMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFO2dCQUNqRCxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN0QztZQUNELENBQUMsRUFBRSxDQUFDO1NBQ0w7UUFFRCxJQUFJLFVBQVUsRUFBRTtZQUNkLHVHQUF1RztZQUN2RyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztTQUNsQzthQUFNO1lBRUwsSUFBSSxHQUFHLEdBQUcsWUFBWSxjQUFjLGNBQWMsU0FBUyxFQUFFLENBQUM7WUFDOUQsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUV6Qyx5RUFBeUU7WUFDekUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU87aUJBQ3hELE9BQU8sQ0FBQyxHQUFHLENBQUM7aUJBQ1osSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FDNUQsQ0FBQyxDQUFDO1NBQ047SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLG1CQUFtQixDQUFDLElBQVk7UUFFckMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsbUZBQW1GO1FBQ25GLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhDLHVFQUF1RTtRQUN2RSwrQkFBK0I7UUFDL0IsdUJBQXVCO1FBQ3ZCLDhDQUE4QztRQUM5Qyx3QkFBd0I7UUFDeEIsdUZBQXVGO1FBQ3ZGLCtDQUErQztRQUMvQyxPQUFPO1FBQ1AsZ0RBQWdEO1FBQ2hELEVBQUU7UUFDRiw0Q0FBNEM7UUFDNUMsb0NBQW9DO1FBQ3BDLEVBQUU7UUFDRixhQUFhO1FBQ2IseUVBQXlFO1FBQ3pFLDBEQUEwRDtRQUMxRCx3RUFBd0U7UUFDeEUsWUFBWTtRQUNaLG1EQUFtRDtRQUNuRCxpQkFBaUI7UUFDakIsd0RBQXdEO1FBQ3hELCtHQUErRztRQUMvRyxnREFBZ0Q7UUFDaEQsK0NBQStDO1FBQy9DLDJCQUEyQjtRQUMzQixVQUFVO1FBQ1YsZUFBZTtRQUNmLDRDQUE0QztRQUM1QyxpREFBaUQ7UUFDakQsUUFBUTtRQUNSLFFBQVE7SUFDVixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxlQUFlLENBQUMsU0FBaUI7UUFDdEMsSUFBSSxZQUFZLENBQUM7UUFDakIsUUFBUSxTQUFTLEVBQUU7WUFDakIsS0FBSyxjQUFjLENBQUMsQ0FBQztnQkFDbkIsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUM5QixNQUFNO2FBQ1A7WUFDRCxLQUFLLG1CQUFtQixDQUFDLENBQUM7Z0JBQ3hCLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDL0IsTUFBTTthQUNQO1lBQ0QsS0FBSyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUN2QixZQUFZLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDMUIsTUFBTTthQUNQO1lBQ0QsS0FBSyxjQUFjLENBQUMsQ0FBQztnQkFDbkIsWUFBWSxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQzVELE1BQU07YUFDUDtZQUNELEtBQUssTUFBTSxDQUFDLENBQUM7Z0JBQ1gsWUFBWSxHQUFHLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMvQixNQUFNO2FBQ1A7WUFDRCxLQUFLLE9BQU8sQ0FBQyxDQUFDO2dCQUNaLFlBQVksR0FBRyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3BDLE1BQU07YUFDUDtZQUNELEtBQUssS0FBSyxDQUFDLENBQUM7Z0JBQ1YsWUFBWSxHQUFHLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMvQixNQUFNO2FBQ1A7WUFDRCxLQUFLLE1BQU0sQ0FBQyxDQUFDO2dCQUNYLFlBQVksR0FBRyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDL0IsTUFBTTthQUNQO1lBQ0QsS0FBSyxRQUFRLENBQUMsQ0FBQztnQkFDYixZQUFZLEdBQUcsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2pDLE1BQU07YUFDUDtZQUNELEtBQUssUUFBUSxDQUFDLENBQUM7Z0JBQ2IsWUFBWSxHQUFHLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNqQyxNQUFNO2FBQ1A7WUFDRCxLQUFLLGNBQWMsQ0FBQyxDQUFDO2dCQUNuQixZQUFZLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2xDLE1BQU07YUFDUDtZQUNELEtBQUssbUJBQW1CLENBQUMsQ0FBQztnQkFDeEIsWUFBWSxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDcEQsTUFBTTthQUNQO1lBQ0QsS0FBSyxvQkFBb0IsQ0FBQyxDQUFDO2dCQUN6QixZQUFZLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNsRCxNQUFNO2FBQ1A7WUFDRCxLQUFLLG1CQUFtQixDQUFDLENBQUM7Z0JBQ3hCLFlBQVksR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2pELE1BQU07YUFDUDtTQUNGO1FBRUQsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILHFCQUFxQixDQUFDLElBQVk7UUFFaEMsTUFBTSxPQUFPLEdBQUc7WUFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxnREFBZ0QsQ0FBQztZQUN0RSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQywrQkFBK0IsQ0FBQztTQUN0RCxDQUFDO1FBRUYsT0FBTyxrQkFBa0IsQ0FBQyxPQUFPLENBQUM7YUFDL0IsSUFBSSxDQUNILFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsaUVBQWlFLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDNUYsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsaUVBQWlFLENBQUMsQ0FBQztRQUM3RixDQUFDLENBQUMsQ0FBQyxFQUNILEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBRVgsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7WUFDMUIsTUFBTSxNQUFNLEdBQUc7Z0JBQ2I7O21CQUVHO2dCQUNILElBQUksRUFBRTtvQkFDSixJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUU7b0JBQ2IsTUFBTSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUU7b0JBQzlCLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87aUJBQzdCO2dCQUNEOzttQkFFRztnQkFDSCxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0I7Z0JBQ3JDOzttQkFFRztnQkFDSCxLQUFLLEVBQUUsRUFBRTtnQkFDVDs7bUJBRUc7Z0JBQ0gsV0FBVyxFQUFFLEVBQUU7YUFDaEIsQ0FBQztZQUVGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QixNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pELE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTdCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGtEQUFrRCxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQzdILElBQUksQ0FBQyxRQUFRO2lCQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztpQkFDaEQsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQzdDLENBQUMsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxvREFBb0QsQ0FBQyxDQUFDLENBQUM7WUFFakYsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUVEOzs7T0FHRztJQUNILHlCQUF5QixDQUFDLEVBQVU7UUFDbEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUN2RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxxQkFBcUIsQ0FBQyxJQUFZO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxzQkFBc0IsQ0FBQyxLQUFlO1FBQ3BDLE1BQU0sT0FBTyxHQUF1QyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsc0JBQXNCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkwsT0FBTyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQzNCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUM3QjthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTztpQkFDaEIsR0FBRyxDQUFDLG9CQUFvQixDQUFDO2lCQUN6QixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBYyxDQUFDLEVBQ3hCLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFrQixDQUFDLENBQUMsQ0FDdEQsQ0FBQztTQUNMO0lBQ0gsQ0FBQzs7MEdBcldVLGFBQWE7OEdBQWIsYUFBYSxjQUZaLE1BQU07MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2ZvcmtKb2luIGFzIG9ic2VydmFibGVGb3JrSm9pbiwgb2YsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge2NhdGNoRXJyb3IsIHRhcCwgbWFwLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0lPcmdhbml6YXRpb25PYmplY3RzfSBmcm9tICcuLi8uLi9pbnRlcmZhY2Uvb3JnYW5pemF0aW9uLW9iamVjdHMuaW50ZXJmYWNlJztcbmltcG9ydCB7QmFja2VuZFNlcnZpY2V9IGZyb20gJy4uL2JhY2tlbmQvYmFja2VuZC5zZXJ2aWNlJztcbmltcG9ydCB7QXBwQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi9jYWNoZS9hcHAtY2FjaGUuc2VydmljZSc7XG5pbXBvcnQge0xvZ2dlcn0gZnJvbSAnLi4vbG9nZ2VyL2xvZ2dlcic7XG5pbXBvcnQge09iamVjdFR5cGV9IGZyb20gJy4uLy4uL21vZGVsL29iamVjdC10eXBlLm1vZGVsJztcbmltcG9ydCB7RW9Vc2VyfSBmcm9tICcuLi8uLi9tb2RlbC9lby11c2VyLm1vZGVsJztcbmltcG9ydCB7Y2xvbmVEZWVwfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtPcmdSb2xlfSBmcm9tICcuLi8uLi9tb2RlbC9vcmcubW9kZWwnO1xuaW1wb3J0IHtVdGlsc30gZnJvbSAnLi4vLi4vdXRpbC91dGlscyc7XG5pbXBvcnQge0lDb2RlU3lzdGVtfSBmcm9tICcuL3N5c3RlbWRlZmluaXRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7RXZlbnRTZXJ2aWNlfSBmcm9tICcuLi9ldmVudHMvZXZlbnQuc2VydmljZSc7XG5pbXBvcnQge0VuYWlvRXZlbnR9IGZyb20gJy4uL2V2ZW50cy9ldmVudHMnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG4vKipcbiAqIENvbGxlY3Rpb24gb2YgU3lzdGVtIFNlcnZpY2VzXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFN5c3RlbVNlcnZpY2Uge1xuXG4gIHByaXZhdGUgX3N5c3RlbTtcbiAgcHJpdmF0ZSBzeXN0ZW1Tb3VyY2UgPSBuZXcgUmVwbGF5U3ViamVjdDxhbnk+KCk7XG4gIHB1YmxpYyBzeXN0ZW0kOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLnN5c3RlbVNvdXJjZS5hc09ic2VydmFibGUoKTtcblxuICAvLyBzZXNzaW9uIGNhY2hlIGZvciBvYmplY3QgdHlwZSBmb3Jtc1xuICBwcml2YXRlIG9iamVjdFR5cGVGb3JtczogYW55W10gPSBbXTtcbiAgcHJpdmF0ZSB1c2VyOiBFb1VzZXI7XG4gIHByaXZhdGUgY2FjaGVkUm9sZXM6IE9yZ1JvbGVbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYmFja2VuZDogQmFja2VuZFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgYXBwQ2FjaGU6IEFwcENhY2hlU2VydmljZSkge1xuICAgIHRoaXMuZXZlbnRTZXJ2aWNlLm9uKEVuYWlvRXZlbnQuU1lTVEVNX1NUQVRVU19TQ0hFTUFfQ0hBTkdFRCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZmV0Y2hTeXN0ZW1EZWZpbml0aW9uKHRoaXMudXNlcik7XG4gICAgfSlcbiAgfVxuXG4gIHNldCBzeXN0ZW0ocyl7XG4gICAgdGhpcy5fc3lzdGVtID0gcztcbiAgfVxuXG4gIGdldCBzeXN0ZW0oKXtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLl9zeXN0ZW0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFsbCBPYmplY3RUeXBlc1xuICAgKlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBjb250YWluaW5nIGFsbCBvYmplY3QgdHlwZXNcbiAgICovXG4gIHB1YmxpYyBnZXRPYmplY3RUeXBlcygpOiBPYmplY3RUeXBlW10ge1xuICAgIHJldHVybiB0aGlzLnN5c3RlbS50eXBlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFuIE9iamVjdFR5cGUgYnkgbmFtZS5cbiAgICpcbiAgICogQHBhcmFtIG9iamVjdFR5cGVOYW1lIFRoZSBuYW1lIG9mIHRoZSBvYmplY3QgdHlwZVxuICAgKiBAcmV0dXJucyB0aGUgT2JqZWN0VHlwZSBtYXRjaGluZyB0aGUgZ2l2ZW4gbmFtZVxuICAgKi9cbiAgcHVibGljIGdldE9iamVjdFR5cGUob2JqZWN0VHlwZU5hbWU6IHN0cmluZyk6IE9iamVjdFR5cGUge1xuICAgIHJldHVybiB0aGlzLnN5c3RlbS50eXBlcy5maW5kKHQgPT4gdC5uYW1lID09PSBvYmplY3RUeXBlTmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGZvcm0gZWxlbWVudHMgZnJvbSBmb3JtIG1vZGVsLiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UgaGF2ZSB0byBmZXRjaCB0aGVtXG4gICAqIGZvciBhIHNwZWNpYWwgc2l0dWF0aW9uIGxpa2UgU0VBUkNIXG4gICAqIEBwYXJhbSBvYmplY3RUeXBlTmFtZSBPYmplY3RUeXBlIHRvIGZldGNoIGVsZW1lbnRzIGZvclxuICAgKiBAcGFyYW0gc2l0dWF0aW9uIEZvcm0gbW9kZWwgc2l0dWF0aW9uIHRvIGJlIGZldGNoZWRcbiAgICogQHBhcmFtIGlzQ29udGV4dFR5cGUgRmxhZyBpbmRpY2F0aW5nIHRoYXQgdGhlIGZvcm0gbW9kZWwgc2hvdWxkIGJlIGZldGNoZWQgZm9yIGEgY29udGV4dCBtb2RlXG4gICAqL1xuICBnZXRGb3JtRWxlbWVudHNGcm9tRm9ybU1vZGVsKG9iamVjdFR5cGVOYW1lOiBzdHJpbmcsIHNpdHVhdGlvbjogc3RyaW5nLCBpc0NvbnRleHRUeXBlPzogYm9vbGVhbik6IE9ic2VydmFibGU8YW55W10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRPYmplY3RUeXBlRm9ybShvYmplY3RUeXBlTmFtZSwgc2l0dWF0aW9uLCBpc0NvbnRleHRUeXBlID8gJ0NPTlRFWFQnIDogbnVsbCkucGlwZShcbiAgICAgIHN3aXRjaE1hcChtb2RlbCA9PiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzID0gW107XG4gICAgICAgIHRoaXMucHJvY2Vzc0Zvcm1Nb2RlbEVsZW1lbnRzKG1vZGVsLCBlbGVtZW50cyk7XG4gICAgICAgIHJldHVybiBvZihlbGVtZW50cyk7XG4gICAgfSkpXG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NGb3JtTW9kZWxFbGVtZW50cyhtb2RlbDogYW55LCBlbGVtZW50czogYW55W10pIHtcbiAgICBtb2RlbC5lbGVtZW50cy5mb3JFYWNoKGUgPT4ge1xuICAgICAgaWYoZS50eXBlICE9PSBcIm8ybUdyb3VwXCIgJiYgZS50eXBlICE9PSBcIm8ybUdyb3VwU3RhY2tcIikge1xuICAgICAgICBlbGVtZW50cy5wdXNoKGUpO1xuICAgICAgfSBlbHNlIGlmKGUuZWxlbWVudHMgJiYgZS5lbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzRm9ybU1vZGVsRWxlbWVudHMoZSwgZWxlbWVudHMpO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgb3Igbm90IHRoZSBnaXZlbiB0eXBlIGltcGxlbWVudHMgYSBnaXZlbiBzdXBlcnR5cGVcbiAgICogQHBhcmFtIHR5cGUgVHlwZSB0byBiZSBjaGVja2VkXG4gICAqIEBwYXJhbSBzdXBlclR5cGVOYW1lIE5hbWUgb2YgdGhlIHN1cGVydHlwZVxuICAgKi9cbiAgcHVibGljIGltcGxlbWVudHNUeXBlKHR5cGU6IE9iamVjdFR5cGUsIHN1cGVyVHlwZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlLm5hbWUgPT09IHN1cGVyVHlwZU5hbWUgfHwgKHR5cGUuaW1wbGVtZW50cyAmJiB0eXBlLmltcGxlbWVudHMuaW5kZXhPZihzdXBlclR5cGVOYW1lKSAhPT0gLTEpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYSBjb2Rlc3lzdGVtXG4gICAqXG4gICAqIEBwYXJhbSBpZCBUaGUgY29kZXN5c3RlbXMgaWRcbiAgICogQHJldHVybnMgVGhlIGNvZGVzeXN0ZW0gb2JqZWN0IG1hdGNoaW5nIHRoZSBnaXZlbiBpZFxuICAgKi9cbiAgcHVibGljIGdldENvZGVzeXN0ZW0oaWQ6IHN0cmluZyk6IElDb2RlU3lzdGVtIHtcbiAgICByZXR1cm4gdGhpcy5zeXN0ZW0uY29kZXN5c3RlbXMuZmluZCh0ID0+IHQuaWQgPT09IGlkIHx8IHQubmFtZSA9PT0gaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZm9ybSBtb2RlbCBvZiBhbiBvYmplY3QgdHlwZS5cbiAgICpcbiAgICogQHBhcmFtIG9iamVjdFR5cGVOYW1lIFRoZSBvYmplY3QgdHlwZSBuYW1lXG4gICAqIEBwYXJhbSBzaXR1YXRpb24gVGhlIGZvcm0gc2l0dWF0aW9uIHRvIGJlIGZldGNoZWRcbiAgICogQHBhcmFtIG1vZGUgRm9ybSBtb2RlIHRvIGZldGNoIChlLmcuIENPTlRFWFQpXG4gICAqIEByZXR1cm5zIFRoZSBvYmplY3QgdHlwZSBmb3JtIG1vZGVsXG4gICAqL1xuICBwdWJsaWMgZ2V0T2JqZWN0VHlwZUZvcm0ob2JqZWN0VHlwZU5hbWU6IHN0cmluZywgc2l0dWF0aW9uOiBzdHJpbmcsIG1vZGU/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgLyoqIGNoZWNrIGlmIHdlIGhhdmUgYSBjYWNoZWQgZm9ybSBmaXJzdCAqL1xuICAgIGxldCBjYWNoZWRGb3JtO1xuXG4gICAgbGV0IGkgPSAwO1xuICAgIHdoaWxlICghY2FjaGVkRm9ybSAmJiBpIDwgdGhpcy5vYmplY3RUeXBlRm9ybXMubGVuZ3RoKSB7XG4gICAgICBpZiAodGhpcy5vYmplY3RUeXBlRm9ybXNbaV0ubmFtZSA9PT0gb2JqZWN0VHlwZU5hbWUgJiZcbiAgICAgICAgdGhpcy5vYmplY3RUeXBlRm9ybXNbaV0ubW9kZSA9PT0gbW9kZSAmJlxuICAgICAgICB0aGlzLm9iamVjdFR5cGVGb3Jtc1tpXS5zaXR1YXRpb24gPT09IHNpdHVhdGlvbikge1xuICAgICAgICBjYWNoZWRGb3JtID0gdGhpcy5vYmplY3RUeXBlRm9ybXNbaV07XG4gICAgICB9XG4gICAgICBpKys7XG4gICAgfVxuXG4gICAgaWYgKGNhY2hlZEZvcm0pIHtcbiAgICAgIC8qKiByZXR1cm4gYSBjbG9uZSBvZiB0aGUgY2FjaGVkIG1vZGVsIGFzIG90aGVyd2lzZSBtb2RlbCBjaGFuZ2VzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGNoYWNoZWQgbW9kZWwgKi9cbiAgICAgIHJldHVybiBvZihjbG9uZURlZXAoY2FjaGVkRm9ybSkpO1xuICAgIH0gZWxzZSB7XG5cbiAgICAgIGxldCB1cmkgPSBgL3VpL2Zvcm0vJHtvYmplY3RUeXBlTmFtZX0/c2l0dWF0aW9uPSR7c2l0dWF0aW9ufWA7XG4gICAgICB1cmkgKz0gISFtb2RlID8gYCZmb3JtbW9kZT0ke21vZGV9YCA6ICcnO1xuXG4gICAgICAvKiogZmV0Y2ggYW5kIGNhY2hlIHRoZSByZXF1ZXN0ZWQgZm9ybSwgaWYgbm8gY2FjaGVkIHZlcnNpb24gd2FzIGZvdW5kICovXG4gICAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldFZpYVRlbXBDYWNoZSh1cmksICgpID0+IHRoaXMuYmFja2VuZFxuICAgICAgICAuZ2V0SnNvbih1cmkpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRhcCgobW9kZWwpID0+IHRoaXMub2JqZWN0VHlwZUZvcm1zLnB1c2goY2xvbmVEZWVwKG1vZGVsKSkpXG4gICAgICAgICkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIHRoZSBiYWNrZW5kcyBzeXN0ZW0gZGVmaW5pdGlvbiBhbmQgdXBkYXRlcyBzeXN0ZW0kIE9ic2VydmFibGUuXG4gICAqIFN1YnNjcmliZSB0byB0aGUgc3lzdGVtJCBvYnNlcnZhYmxlIGluc3RlYWQgb2YgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLCBvdGhlcndpc2UgeW91J2xsIHRyaWdnZXIgZmV0Y2hpbmcgdGhlXG4gICAqIHN5c3RlbSBkZWZpbml0aW9uIGV2ZXJ5IHRpbWUuXG4gICAqXG4gICAqIEBwYXJhbSB1c2VyIFRoZSB1c2VyIHRvIGxvYWQgdGhlIHN5c3RlbSBkZWZpbml0aW9uIGZvclxuICAgKiBAcmV0dXJucyB0cnVlIHdoZW4gc3VjY2Vzc2Z1bGxcbiAgICovXG4gIHB1YmxpYyBnZXRTeXN0ZW1EZWZpbml0aW9uKHVzZXI6IEVvVXNlcik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuXG4gICAgdGhpcy51c2VyID0gdXNlcjtcbiAgICAvLyB0b2RvOiB0ZW1wb3Jhcnk6IE9yZ0NoYW5nZXMgY291bGQgbm90IGJlIHJlY29nbml6ZWQgYnV0IGFmZmVjdCBvYmplY3QgZGVmaW5pdGlvblxuICAgIHJldHVybiB0aGlzLmZldGNoU3lzdGVtRGVmaW5pdGlvbih1c2VyKTtcblxuICAgIC8vIHRvZG86IGVuYWJsZSBhZ2FpbiB3aGVuIE9yZ0NoYW5nZXMgYXJlIHJlY29nbml6YWJsZSAoRE8gTk9UIERFTEVURSEpXG4gICAgLy8gLy8gaXMgdGhlcmUgYSBjYWNoZWQgdmVyc2lvblxuICAgIC8vIHJldHVybiB0aGlzLmFwcENhY2hlXG4gICAgLy8gICAuZ2V0SXRlbSh0aGlzLmFwcENhY2hlLlNZU1RFTV9ERUZJTklUSU9OKVxuICAgIC8vICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgIC8vICAgICB0aGlzLmxvZ2dlci5lcnJvcignRXJyb3IgZmV0Y2hpbmcgY2FjaGVkIHZlcnNpb24gb2Ygc3lzdGVtIGRlZmluaXRpb24uJywgZXJyb3IpO1xuICAgIC8vICAgICByZXR1cm4gdGhpcy5mZXRjaFN5c3RlbURlZmluaXRpb24odXNlcik7XG4gICAgLy8gICB9KVxuICAgIC8vICAgLmZsYXRNYXAoKGNhY2hlZFN5c3RlbURlZmluaXRpb246IGFueSkgPT4ge1xuICAgIC8vXG4gICAgLy8gICAgIC8vIHllcz8gdGhlbiBjaGVjayBpZiBpdCdzIHVwIHRvIGRhdGVcbiAgICAvLyAgICAgaWYgKGNhY2hlZFN5c3RlbURlZmluaXRpb24pIHtcbiAgICAvL1xuICAgIC8vICAgICAgIGlmIChcbiAgICAvLyAgICAgICAgIHVzZXIuc2NoZW1hLnZlcnNpb24gIT09IGNhY2hlZFN5c3RlbURlZmluaXRpb24uaW5mby52ZXJzaW9uIHx8XG4gICAgLy8gICAgICAgICB1c2VyLmlkICE9PSBjYWNoZWRTeXN0ZW1EZWZpbml0aW9uLmluZm8udXNlciB8fFxuICAgIC8vICAgICAgICAgdXNlci5nZXRTY2hlbWFMb2NhbGUoKSAhPT0gY2FjaGVkU3lzdGVtRGVmaW5pdGlvbi5pbmZvLmxvY2FsZVxuICAgIC8vICAgICAgICkge1xuICAgIC8vICAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hTeXN0ZW1EZWZpbml0aW9uKHVzZXIpO1xuICAgIC8vICAgICAgIH0gZWxzZSB7XG4gICAgLy8gICAgICAgICAvLyBjYWNoZSBpcyB1cCB0byBkYXRlLiByZXR1cm4gdGhlIGNhY2hlZCBvbmVcbiAgICAvLyAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdTeXN0ZW0gZGVmaW5pdGlvbiBpcyB1cCB0byBkYXRlLCB1c2luZyBjYWNoZWQgdmVyc2lvbi4nLCBjYWNoZWRTeXN0ZW1EZWZpbml0aW9uKTtcbiAgICAvLyAgICAgICAgIHRoaXMuc3lzdGVtID0gY2FjaGVkU3lzdGVtRGVmaW5pdGlvbjtcbiAgICAvLyAgICAgICAgIHRoaXMuc3lzdGVtU291cmNlLm5leHQodGhpcy5zeXN0ZW0pO1xuICAgIC8vICAgICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgIC8vICAgICAgIH1cbiAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICAvLyBubyBjYWNoZWQgc3lzdGVtRGVmaW5pdGlvbiBmb3VuZFxuICAgIC8vICAgICAgIHJldHVybiB0aGlzLmZldGNoU3lzdGVtRGVmaW5pdGlvbih1c2VyKTtcbiAgICAvLyAgICAgfVxuICAgIC8vICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHZhbHVlIGRlcGVuZGluZyBvbiBhIGdpdmVuIFR5cGVcbiAgICpcbiAgICogQHBhcmFtIHN0cmluZyB2YWx1ZVR5cGVcbiAgICogQHJldHVybnMgYW55XG4gICAqL1xuICBwdWJsaWMgZ2V0RGVmYXVsdFZhbHVlKHZhbHVlVHlwZTogc3RyaW5nKTogYW55IHtcbiAgICBsZXQgZGVmYXVsdFZhbHVlO1xuICAgIHN3aXRjaCAodmFsdWVUeXBlKSB7XG4gICAgICBjYXNlICdDVVJSRU5UX1VTRVInOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IHRoaXMudXNlci5uYW1lO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0NVUlJFTlRfVVNFUl9OQU1FJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSB0aGlzLnVzZXIudGl0bGU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnQ1VSUkVOVF9EQVRFVElNRSc6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gbmV3IERhdGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdDVVJSRU5UX0RBVEUnOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ2RheScpLmZvcm1hdCgneXl5eS1NTS1ERCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ1lFQVInOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IG1vbWVudCgpLnllYXIoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdNT05USCc6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gbW9tZW50KCkubW9udGgoKSArIDE7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnREFZJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBtb21lbnQoKS5kYXRlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnSE9VUic6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gbW9tZW50KCkuaG91cigpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ01JTlVURSc6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gbW9tZW50KCkubWludXRlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnU0VDT05EJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBtb21lbnQoKS5zZWNvbmQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdXRUVLX09GX1lFQVInOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IG1vbWVudCgpLmlzb1dlZWsoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdGSVJTVF9EQVlfT0ZfV0VFSyc6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gbW9tZW50KCkuc3RhcnRPZignaXNvV2VlaycpLnRvRGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0ZJUlNUX0RBWV9PRl9NT05USCc6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gbW9tZW50KCkuc3RhcnRPZignbW9udGgnKS50b0RhdGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdGSVJTVF9EQVlfT0ZfWUVBUic6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnRvRGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIHN5c3RlbSBkZWZpbml0aW9uIGZyb20gdGhlIHNlcnZlci4gUHJvdmlkZWQgcGFyYW1zIGFyZSB1c2VkIGZvciBzdG9yaW5nIHRoZVxuICAgKiByZWNlbnQgdmVyc2lvbiBpbiBjYWNoZS5cbiAgICpcbiAgICogQHBhcmFtIHVzZXIgVGhlIHVzZXIgdG8gZmV0Y2ggdGhlIHN5c3RlbSBkZWZpbml0aW9uIGZvclxuICAgKiBAcmV0dXJuIGJvb2xlYW5cbiAgICovXG4gIGZldGNoU3lzdGVtRGVmaW5pdGlvbih1c2VyOiBFb1VzZXIpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcblxuICAgIGNvbnN0IGZldGNoZXMgPSBbXG4gICAgICB0aGlzLmJhY2tlbmQuZ2V0SnNvbignL3N5c3RlbS90eXBlL2xpc3Q/ZWxlbWVudHM9dHJ1ZSZiYXNldHlwZXM9dHJ1ZScpLFxuICAgICAgdGhpcy5iYWNrZW5kLmdldEpzb24oJy9zeXN0ZW0vY3MvbGlzdD9lbGVtZW50cz10cnVlJylcbiAgICBdO1xuXG4gICAgcmV0dXJuIG9ic2VydmFibGVGb3JrSm9pbihmZXRjaGVzKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoVXRpbHMuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIHJlY2VudCB2ZXJzaW9uIG9mIHN5c3RlbSBkZWZpbml0aW9uIGZyb20gc2VydmVyLicsIGVycm9yKTtcbiAgICAgICAgICB0aGlzLnN5c3RlbVNvdXJjZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgcmVjZW50IHZlcnNpb24gb2Ygc3lzdGVtIGRlZmluaXRpb24gZnJvbSBzZXJ2ZXIuJyk7XG4gICAgICAgIH0pKSxcbiAgICAgICAgbWFwKChkYXRhKSA9PiB7XG5cbiAgICAgICAgICB0aGlzLm9iamVjdFR5cGVGb3JtcyA9IFtdO1xuICAgICAgICAgIGNvbnN0IHN5c3RlbSA9IHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogaW5mbyBhYm91dCB0aGUgY3VycmVudCBzeXN0ZW0gZGVmaW5pdGlvblxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpbmZvOiB7XG4gICAgICAgICAgICAgIHVzZXI6IHVzZXIuaWQsXG4gICAgICAgICAgICAgIGxvY2FsZTogdXNlci5nZXRTY2hlbWFMb2NhbGUoKSxcbiAgICAgICAgICAgICAgdmVyc2lvbjogdXNlci5zY2hlbWEudmVyc2lvblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogc3VwcG9ydGVkIGJhY2tlbmQgbG9jYWxlc1xuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBsb2NhbGVzOiB1c2VyLnNjaGVtYS5zdXBwb3J0ZWRMb2NhbGVzLFxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBvYmplY3QgdHlwZSBkZWZpbml0aW9uc1xuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0eXBlczogW10sXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGNvZGVzeXN0ZW1zIGNhY2hlXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvZGVzeXN0ZW1zOiBbXVxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBjb25zdCB0eXBlcyA9IGRhdGFbMF07XG4gICAgICAgICAgc3lzdGVtLnR5cGVzID0gdHlwZXMubWFwKHQgPT4gbmV3IE9iamVjdFR5cGUodCkpO1xuICAgICAgICAgIHN5c3RlbS5jb2Rlc3lzdGVtcyA9IGRhdGFbMV07XG5cbiAgICAgICAgICB0aGlzLnN5c3RlbSA9IHN5c3RlbTtcbiAgICAgICAgICB0aGlzLnN5c3RlbVNvdXJjZS5uZXh0KHN5c3RlbSk7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0ZldGNoZWQgbmV3IHZlcnNpb24gb2Ygc3lzdGVtIGRlZmluaXRpb24gKHVzZXI6ICcgKyB1c2VyLmlkICsgJywgdmVyc2lvbjogJyArIHVzZXIuc2NoZW1hLnZlcnNpb24gKyAnKS4nKTtcbiAgICAgICAgICB0aGlzLmFwcENhY2hlXG4gICAgICAgICAgICAuc2V0SXRlbSh0aGlzLmFwcENhY2hlLlNZU1RFTV9ERUZJTklUSU9OLCBzeXN0ZW0pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0NhY2hlZCByZWNlbnQgdmVyc2lvbicpO1xuICAgICAgICAgICAgfSwgVXRpbHMubG9nRXJyb3IobnVsbCwgJ0Vycm9yIGNhY2hpbmcgcmVjZW50IHZlcnNpb24gb2Ygc3lzdGVtIGRlZmluaXRpb24uJykpO1xuXG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBhbiBvcmdhbml6YXRpb24gb2JqZWN0IGJ5IGl0cyBJRFxuICAgKiBAcGFyYW0gaWQgSUQgb2Ygb3JnIG9iamVjdFxuICAgKi9cbiAgZ2V0T3JnYW5pemF0aW9uT2JqZWN0QnlJZChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldEpzb24oYC9vcmdhbml6YXRpb24vaWQvJHtpZH1gKVxuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIG9yZ2FuaXphdGlvbiBvYmplY3QgZm9yIGEgZ2l2ZW4gbmFtZS5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgdG8gZmV0Y2ggb2JqZWN0IGZvclxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgZ2V0T3JnYW5pemF0aW9uT2JqZWN0KG5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0T3JnYW5pemF0aW9uT2JqZWN0cyhbbmFtZV0pLnBpcGUobWFwKHJlcyA9PiByZXNbMF0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIGEgY29sbGVjdGlvbiBvZiBvcmdhbml6YXRpb24gb2JqZWN0c1xuICAgKlxuICAgKiBAcGFyYW0gbmFtZXMgQXJyYXkgb2YgbmFtZXMgdG8gZmV0Y2ggb2JqZWN0cyBmb3JcbiAgICogQHJldHVybnMgQSBBcnJheSBvZiBPcmdhbml6YXRpb24gT2JqZWN0c1xuICAgKi9cbiAgZ2V0T3JnYW5pemF0aW9uT2JqZWN0cyhuYW1lczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPElPcmdhbml6YXRpb25PYmplY3RzW10+IHtcbiAgICBjb25zdCB0b0ZldGNoOiBPYnNlcnZhYmxlPElPcmdhbml6YXRpb25PYmplY3RzPltdID0gbmFtZXMubWFwKG5hbWUgPT4gdGhpcy5iYWNrZW5kLmdldEpzb24oYC9vcmdhbml6YXRpb24vbmFtZS8ke25hbWV9YCkucGlwZShjYXRjaEVycm9yKGVycm9yID0+IG9mKHtpZDogbmFtZSwgYWN0aXZlOiBmYWxzZX0pKSkpO1xuICAgIHJldHVybiBvYnNlcnZhYmxlRm9ya0pvaW4odG9GZXRjaCk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyBhIGNvbGxlY3Rpb24gb2Ygb3JnYW5pemF0aW9uIHJvbGVzXG4gICAqXG4gICAqIEByZXR1cm4gQSBBcnJheSBvZiBPcmdhbml6YXRpb24gUm9sZXNcbiAgICovXG4gIGdldFJvbGVzKCk6IE9ic2VydmFibGU8T3JnUm9sZVtdPiB7XG4gICAgaWYgKHRoaXMuY2FjaGVkUm9sZXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5jYWNoZWRSb2xlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgICAgLmdldCgnL29yZ2FuaXphdGlvbi9yb2xlJylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKG8gPT4gbyBhcyBPcmdSb2xlW10pLFxuICAgICAgICAgIHRhcChyb2xlcyA9PiAodGhpcy5jYWNoZWRSb2xlcyA9IHJvbGVzIGFzIE9yZ1JvbGVbXSkpXG4gICAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=
|