mapa-library-ui 0.70.0 → 0.70.2
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/esm2020/src/lib/components/dropdown/lib/components/dropdown-tree/src/dropdown.component.mjs +4 -4
- package/esm2020/src/lib/components/dropdown-tree/lib/components/dropdown-tree/src/dropdown.component.mjs +4 -4
- package/fesm2015/mapa-library-ui-src-lib-components-dropdown-tree.mjs +3 -3
- package/fesm2015/mapa-library-ui-src-lib-components-dropdown-tree.mjs.map +1 -1
- package/fesm2015/mapa-library-ui-src-lib-components-dropdown.mjs +3 -3
- package/fesm2015/mapa-library-ui-src-lib-components-dropdown.mjs.map +1 -1
- package/fesm2020/mapa-library-ui-src-lib-components-dropdown-tree.mjs +3 -3
- package/fesm2020/mapa-library-ui-src-lib-components-dropdown-tree.mjs.map +1 -1
- package/fesm2020/mapa-library-ui-src-lib-components-dropdown.mjs +3 -3
- package/fesm2020/mapa-library-ui-src-lib-components-dropdown.mjs.map +1 -1
- package/mapa-library-ui-0.70.2.tgz +0 -0
- package/package.json +1 -1
- package/mapa-library-ui-0.70.0.tgz +0 -0
package/esm2020/src/lib/components/dropdown/lib/components/dropdown-tree/src/dropdown.component.mjs
CHANGED
|
@@ -224,11 +224,11 @@ export class MapaDropdownTreeComponent {
|
|
|
224
224
|
getSelectedItems() {
|
|
225
225
|
if (!this.checklistSelection.selected.length)
|
|
226
226
|
return this.element.placeholder || '';
|
|
227
|
-
return this.checklistSelection.selected
|
|
228
|
-
.map((s) => s
|
|
227
|
+
return this.checklistSelection.selected ? this.checklistSelection.selected
|
|
228
|
+
.map((s) => s?.value || s || '')
|
|
229
229
|
.join(',')
|
|
230
230
|
.toString()
|
|
231
|
-
.replace(/\,/g, ', ');
|
|
231
|
+
.replace(/\,/g, ', ') : this.element.placeholder || '';
|
|
232
232
|
}
|
|
233
233
|
filterChanged(event) {
|
|
234
234
|
const filterText = event.target?.value;
|
|
@@ -282,4 +282,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
282
282
|
type: ViewChild,
|
|
283
283
|
args: ['toggleAllCheckbox']
|
|
284
284
|
}] } });
|
|
285
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi10cmVlL3NyYy9kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBhLWxpYnJhcnktdWkvc3JjL2xpYi9jb21wb25lbnRzL2Ryb3Bkb3duLXRyZWUvc3JjL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBRXhELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixxQkFBcUIsR0FFdEIsTUFBTSx3QkFBd0IsQ0FBQztBQUtoQyxPQUFPLEVBQVcsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7OztBQUVqRSxNQUFNLE9BQU8sUUFBUTtJQU1uQixnQkFBZSxDQUFDO0NBQ2pCO0FBRUQsaUVBQWlFO0FBQ2pFLE1BQU0sT0FBTyxZQUFZO0lBTXZCLGdCQUFlLENBQUM7Q0FDakI7QUFRRCxNQUFNLE9BQU8seUJBQXlCO0lBb0NwQyxZQUFvQixTQUE0QjtRQUE1QixjQUFTLEdBQVQsU0FBUyxDQUFtQjtRQTVCaEQsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFFaEMsOEZBQThGO1FBQzlGLGdCQUFXLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUM7UUFF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QXlCO2tCQU5yQyxTQUFTOytCQUNFLG9CQUFvQixpQkFHZixpQkFBaUIsQ0FBQyxJQUFJO3dHQUc1QixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDYSxZQUFZO3NCQUE5QixTQUFTO3VCQUFDLE1BQU07Z0JBQ0UsSUFBSTtzQkFBdEIsU0FBUzt1QkFBQyxNQUFNO2dCQUNVLE9BQU87c0JBQWpDLFNBQVM7dUJBQUMsY0FBYztnQkFDTyxpQkFBaUI7c0JBQWhELFNBQVM7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEcm9wZG93blRyZWUgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2VsZW1lbnRzL2Ryb3Bkb3duLXRyZWUnO1xuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgRmxhdFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xuaW1wb3J0IHtcbiAgTWF0VHJlZUZsYXR0ZW5lcixcbiAgTWF0VHJlZUZsYXREYXRhU291cmNlLFxuICBNYXRUcmVlLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90cmVlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENoZWNrbGlzdERhdGFiYXNlIH0gZnJvbSAnLi9jaGVja2xpc3QtZGF0YWJhc2UnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdENoZWNrYm94LCBNYXRDaGVja2JveENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IE1hdE1lbnUsIE1hdE1lbnVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5cbmV4cG9ydCBjbGFzcyBEYXRhTm9kZSB7XG4gIGtleSE6IHN0cmluZztcbiAgdmFsdWUhOiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogRGF0YU5vZGVbXTtcbiAgaXNMZWFmPzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG59XG5cbi8qKiBGbGF0IHRvLWRvIGl0ZW0gbm9kZSB3aXRoIGV4cGFuZGFibGUgYW5kIGxldmVsIGluZm9ybWF0aW9uICovXG5leHBvcnQgY2xhc3MgRGF0YUZsYXROb2RlIHtcbiAga2V5ITogc3RyaW5nO1xuICB2YWx1ZSE6IHN0cmluZztcbiAgbGV2ZWwhOiBudW1iZXI7XG4gIGV4cGFuZGFibGUhOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFwYS1kcm9wZG93bi10cmVlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTWFwYURyb3Bkb3duVHJlZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCE6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgZWxlbWVudCE6IERyb3Bkb3duVHJlZTtcbiAgQFZpZXdDaGlsZCgnYXV0bycpIGF1dG9jb21wbGV0ZSE6IE1hdEF1dG9jb21wbGV0ZTtcbiAgQFZpZXdDaGlsZCgndHJlZScpIHRyZWUhOiBNYXRUcmVlPERhdGFOb2RlPjtcbiAgQFZpZXdDaGlsZChNYXRNZW51VHJpZ2dlcikgdHJpZ2dlciE6IE1hdE1lbnVUcmlnZ2VyO1xuICBAVmlld0NoaWxkKCd0b2dnbGVBbGxDaGVja2JveCcpIHRvZ2dsZUFsbENoZWNrYm94ITogTWF0Q2hlY2tib3g7XG5cbiAgaXNNZW51RXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogTWFwIGZyb20gZmxhdCBub2RlIHRvIG5lc3RlZCBub2RlLiBUaGlzIGhlbHBzIHVzIGZpbmRpbmcgdGhlIG5lc3RlZCBub2RlIHRvIGJlIG1vZGlmaWVkICovXG4gIGZsYXROb2RlTWFwID0gbmV3IE1hcDxEYXRhRmxhdE5vZGUsIERhdGFOb2RlPigpO1xuXG4gIC8qKiBNYXAgZnJvbSBuZXN0ZWQgbm9kZSB0byBmbGF0dGVuZWQgbm9kZS4gVGhpcyBoZWxwcyB1cyB0byBrZWVwIHRoZSBzYW1lIG9iamVjdCBmb3Igc2VsZWN0aW9uICovXG4gIG5lc3RlZE5vZGVNYXAgPSBuZXcgTWFwPERhdGFOb2RlLCBEYXRhRmxhdE5vZGU+KCk7XG5cbiAgLyoqIEEgc2VsZWN0ZWQgcGFyZW50IG5vZGUgdG8gYmUgaW5zZXJ0ZWQgKi9cbiAgc2VsZWN0ZWRQYXJlbnQ6IERhdGFGbGF0Tm9kZSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBUaGUgbmV3IGl0ZW0ncyBuYW1lICovXG4gIG5ld0l0ZW1OYW1lID0gJyc7XG5cbiAgdHJlZUNvbnRyb2whOiBGbGF0VHJlZUNvbnRyb2w8RGF0YUZsYXROb2RlPjtcblxuICB0cmVlRmxhdHRlbmVyITogTWF0VHJlZUZsYXR0ZW5lcjxEYXRhTm9kZSwgRGF0YUZsYXROb2RlPjtcblxuICBkYXRhU291cmNlITogTWF0VHJlZUZsYXREYXRhU291cmNlPERhdGFOb2RlLCBEYXRhRmxhdE5vZGU+O1xuXG4gIC8qKiBUaGUgc2VsZWN0aW9uIGZvciBjaGVja2xpc3QgKi9cbiAgY2hlY2tsaXN0U2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbk1vZGVsPERhdGFGbGF0Tm9kZT4odHJ1ZSk7XG5cbiAgLy8vIEZpbHRlcmluZ1xuICBteUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgb3B0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgZmlsdGVyZWRPcHRpb25zITogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGF0YWJhc2U6IENoZWNrbGlzdERhdGFiYXNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2RhdGFiYXNlLmluaXRpYWxpemUodGhpcy5lbGVtZW50LnRyZWUpO1xuICAgIHRoaXMudHJlZUZsYXR0ZW5lciA9IG5ldyBNYXRUcmVlRmxhdHRlbmVyKFxuICAgICAgdGhpcy50cmFuc2Zvcm1lcixcbiAgICAgIHRoaXMuZ2V0TGV2ZWwsXG4gICAgICB0aGlzLmlzRXhwYW5kYWJsZSxcbiAgICAgIHRoaXMuZ2V0Q2hpbGRyZW5cbiAgICApO1xuICAgIHRoaXMudHJlZUNvbnRyb2wgPSBuZXcgRmxhdFRyZWVDb250cm9sPERhdGFGbGF0Tm9kZT4oXG4gICAgICB0aGlzLmdldExldmVsLFxuICAgICAgdGhpcy5pc0V4cGFuZGFibGVcbiAgICApO1xuICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUcmVlRmxhdERhdGFTb3VyY2UoXG4gICAgICB0aGlzLnRyZWVDb250cm9sLFxuICAgICAgdGhpcy50cmVlRmxhdHRlbmVyXG4gICAgKTtcblxuICAgIHRoaXMuX2RhdGFiYXNlLmRhdGFDaGFuZ2Uuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IGRhdGE7XG4gICAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZEFsbCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uY2hhbmdlZC5zdWJzY3JpYmUoKHNlbGVjdGlvbikgPT4ge1xuICAgICAgaWYgKHNlbGVjdGlvbi5zb3VyY2Uuc2VsZWN0ZWQubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5lbGVtZW50LmtleSk/LnBhdGNoVmFsdWUoXG4gICAgICAgICAgdGhpcy5lbGVtZW50Lm11bHRpcGxlXG4gICAgICAgICAgICA/IHNlbGVjdGlvbi5zb3VyY2Uuc2VsZWN0ZWQubWFwKChjaGVja2VkKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IGNoZWNrZWQudmFsdWUsIGtleTogY2hlY2tlZC5rZXkgfTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBzZWxlY3Rpb24uc291cmNlLnNlbGVjdGVkWzBdLnZhbHVlLFxuICAgICAgICAgICAgICAgIGtleTogc2VsZWN0aW9uLnNvdXJjZS5zZWxlY3RlZFswXS5rZXksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgeyBlbWl0RXZlbnQ6IGZhbHNlIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLmVsZW1lbnQua2V5KT8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBpZiAodGhpcy5lbGVtZW50Lm11bHRpcGxlKSB7XG4gICAgICAgICAgY29uc3QgYWxsVmFsdWVzS2V5cyA9IHRoaXMuZWxlbWVudC5tdWx0aXBsZVxuICAgICAgICAgICAgPyB2YWx1ZS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5rZXkpXG4gICAgICAgICAgICA6IFt2YWx1ZS5rZXldO1xuXG4gICAgICAgICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMubWFwKChub2RlKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWxsVmFsdWVzS2V5cy5pbmNsdWRlcyhub2RlLmtleSkpIHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuZWxlbWVudC5tdWx0aXBsZSAmJiBub2RlLmxldmVsID09PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2RvSXRlbVNlbGVjdGlvblRvZ2dsZShub2RlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvZG9MZWFmSXRlbVNlbGVjdGlvblRvZ2dsZShub2RlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2VsZWN0U2luZ2xlSXRlbShcbiAgICAgICAgICAgIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzPy5maW5kKFxuICAgICAgICAgICAgICAobm9kZSkgPT4gbm9kZS5rZXkgPT09IHZhbHVlLmtleVxuICAgICAgICAgICAgKSBhcyBEYXRhRmxhdE5vZGVcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmRBbGwoKTtcbiAgfVxuXG4gIHRvZ2dsZUFsbChldmVudDogTWF0Q2hlY2tib3hDaGFuZ2UpIHtcbiAgICBjb25zdCBjaGVja2VkID0gZXZlbnQuY2hlY2tlZDtcblxuICAgIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLm1hcCgobm9kZSkgPT4ge1xuICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uZGVzZWxlY3Qobm9kZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3Qobm9kZSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnRvZ2dsZShub2RlKTtcbiAgICAgIGNvbnN0IGRlc2NlbmRhbnRzID0gdGhpcy50cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKTtcbiAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdCguLi5kZXNjZW5kYW50cyk7XG5cbiAgICAgIGlmIChjaGVja2VkKSB7XG4gICAgICAgIGRlc2NlbmRhbnRzLmV2ZXJ5KChjaGlsZCkgPT4gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uZGVzZWxlY3QoY2hpbGQpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlc2NlbmRhbnRzLmV2ZXJ5KChjaGlsZCkgPT4gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0KGNoaWxkKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjbGVhckFsbCgpIHtcbiAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5jbGVhcigpO1xuICAgIGlmICh0aGlzLmVsZW1lbnQubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLmVsZW1lbnQua2V5KT8ucGF0Y2hWYWx1ZShbXSk7XG4gICAgICB0aGlzLnRvZ2dsZUFsbENoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuZWxlbWVudC5rZXkpPy5wYXRjaFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIG9uUGFuZWxDaGFuZ2UoKSB7XG4gICAgdGhpcy5pc01lbnVFeHBhbmRlZCA9ICF0aGlzLmlzTWVudUV4cGFuZGVkO1xuICB9XG5cbiAgZmlsdGVyKGFycmF5OiBhbnlbXSwgdGV4dDogc3RyaW5nKSB7XG4gICAgY29uc3QgZ2V0Tm9kZXMgPSAoXG4gICAgICByZXN1bHQ6IGFueVtdLFxuICAgICAgb2JqZWN0OiB7IG5hbWU6IHN0cmluZzsgY2hpbGRyZW46IGFueVtdIH1cbiAgICApID0+IHtcbiAgICAgIGlmIChvYmplY3QubmFtZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXh0KSkge1xuICAgICAgICByZXN1bHQucHVzaChvYmplY3QpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2JqZWN0LmNoaWxkcmVuKSkge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IG9iamVjdC5jaGlsZHJlbi5yZWR1Y2UoZ2V0Tm9kZXMsIFtdKTtcbiAgICAgICAgaWYgKGNoaWxkcmVuLmxlbmd0aCkgcmVzdWx0LnB1c2goeyAuLi5vYmplY3QsIGNoaWxkcmVuIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuXG4gICAgdGhpcy5lbGVtZW50LnRyZWUgPSBhcnJheS5yZWR1Y2UoZ2V0Tm9kZXMsIFtdKTtcbiAgfVxuXG4gIGdldExldmVsID0gKG5vZGU6IERhdGFGbGF0Tm9kZSkgPT4gbm9kZS5sZXZlbDtcblxuICBpc0V4cGFuZGFibGUgPSAobm9kZTogRGF0YUZsYXROb2RlKSA9PiBub2RlLmV4cGFuZGFibGU7XG5cbiAgZ2V0Q2hpbGRyZW4gPSAobm9kZTogRGF0YU5vZGUpOiBEYXRhTm9kZVtdID0+IG5vZGUuY2hpbGRyZW4hO1xuXG4gIGhhc0NoaWxkID0gKF86IG51bWJlciwgX25vZGVEYXRhOiBEYXRhRmxhdE5vZGUpID0+IF9ub2RlRGF0YS5leHBhbmRhYmxlO1xuXG4gIGhhc05vQ29udGVudCA9IChfOiBudW1iZXIsIF9ub2RlRGF0YTogRGF0YUZsYXROb2RlKSA9PiBfbm9kZURhdGEudmFsdWUgPT09ICcnO1xuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm1lciB0byBjb252ZXJ0IG5lc3RlZCBub2RlIHRvIGZsYXQgbm9kZS4gUmVjb3JkIHRoZSBub2RlcyBpbiBtYXBzIGZvciBsYXRlciB1c2UuXG4gICAqL1xuICB0cmFuc2Zvcm1lciA9IChub2RlOiBEYXRhTm9kZSwgbGV2ZWw6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nTm9kZSA9IHRoaXMubmVzdGVkTm9kZU1hcC5nZXQobm9kZSk7XG4gICAgY29uc3QgZmxhdE5vZGUgPVxuICAgICAgZXhpc3RpbmdOb2RlICYmIGV4aXN0aW5nTm9kZS52YWx1ZSA9PT0gbm9kZS52YWx1ZVxuICAgICAgICA/IGV4aXN0aW5nTm9kZVxuICAgICAgICA6IG5ldyBEYXRhRmxhdE5vZGUoKTtcbiAgICBmbGF0Tm9kZS5rZXkgPSBub2RlLmtleTtcbiAgICBmbGF0Tm9kZS52YWx1ZSA9IG5vZGUudmFsdWU7XG4gICAgZmxhdE5vZGUubGV2ZWwgPSBsZXZlbDtcbiAgICBmbGF0Tm9kZS5leHBhbmRhYmxlID0gISFub2RlLmNoaWxkcmVuO1xuICAgIHRoaXMuZmxhdE5vZGVNYXAuc2V0KGZsYXROb2RlLCBub2RlKTtcbiAgICB0aGlzLm5lc3RlZE5vZGVNYXAuc2V0KG5vZGUsIGZsYXROb2RlKTtcbiAgICByZXR1cm4gZmxhdE5vZGU7XG4gIH07XG5cbiAgLyoqIFdoZXRoZXIgYWxsIHRoZSBkZXNjZW5kYW50cyBvZiB0aGUgbm9kZSBhcmUgc2VsZWN0ZWQuICovXG4gIGRlc2NlbmRhbnRzQWxsU2VsZWN0ZWQobm9kZTogRGF0YUZsYXROb2RlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZGVzY2VuZGFudHMgPSB0aGlzLnRyZWVDb250cm9sLmdldERlc2NlbmRhbnRzKG5vZGUpO1xuICAgIGNvbnN0IGRlc2NBbGxTZWxlY3RlZCA9IGRlc2NlbmRhbnRzLmV2ZXJ5KChjaGlsZCkgPT5cbiAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQoY2hpbGQpXG4gICAgKTtcbiAgICByZXR1cm4gZGVzY0FsbFNlbGVjdGVkO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgcGFydCBvZiB0aGUgZGVzY2VuZGFudHMgYXJlIHNlbGVjdGVkICovXG4gIGRlc2NlbmRhbnRzUGFydGlhbGx5U2VsZWN0ZWQobm9kZTogRGF0YUZsYXROb2RlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZGVzY2VuZGFudHMgPSB0aGlzLnRyZWVDb250cm9sLmdldERlc2NlbmRhbnRzKG5vZGUpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGRlc2NlbmRhbnRzLnNvbWUoKGNoaWxkKSA9PlxuICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChjaGlsZClcbiAgICApO1xuICAgIHJldHVybiByZXN1bHQgJiYgIXRoaXMuZGVzY2VuZGFudHNBbGxTZWxlY3RlZChub2RlKTtcbiAgfVxuXG4gIC8qKiBUb2dnbGUgdGhlIHRvLWRvIGl0ZW0gc2VsZWN0aW9uLiBTZWxlY3QvZGVzZWxlY3QgYWxsIHRoZSBkZXNjZW5kYW50cyBub2RlICovXG4gIHRvZG9JdGVtU2VsZWN0aW9uVG9nZ2xlKG5vZGU6IERhdGFGbGF0Tm9kZSk6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnRvZ2dsZShub2RlKTtcblxuICAgIGlmICh0aGlzLmVsZW1lbnQuY2hlY2tDaGlsZHJlbikge1xuICAgICAgY29uc3QgZGVzY2VuZGFudHMgPSB0aGlzLnRyZWVDb250cm9sLmdldERlc2NlbmRhbnRzKG5vZGUpO1xuICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChub2RlKVxuICAgICAgICA/IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdCguLi5kZXNjZW5kYW50cylcbiAgICAgICAgOiB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5kZXNlbGVjdCguLi5kZXNjZW5kYW50cyk7XG5cbiAgICAgIC8vIEZvcmNlIHVwZGF0ZSBmb3IgdGhlIHBhcmVudFxuICAgICAgZGVzY2VuZGFudHMuZXZlcnkoKGNoaWxkKSA9PiB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKGNoaWxkKSk7XG4gICAgICB0aGlzLmNoZWNrQWxsUGFyZW50c1NlbGVjdGlvbihub2RlKTtcbiAgICB9XG4gIH1cblxuICAvKiogVG9nZ2xlIGEgbGVhZiB0by1kbyBpdGVtIHNlbGVjdGlvbi4gQ2hlY2sgYWxsIHRoZSBwYXJlbnRzIHRvIHNlZSBpZiB0aGV5IGNoYW5nZWQgKi9cbiAgdG9kb0xlYWZJdGVtU2VsZWN0aW9uVG9nZ2xlKG5vZGU6IERhdGFGbGF0Tm9kZSk6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnRvZ2dsZShub2RlKTtcblxuICAgIHRoaXMuY2hlY2tBbGxQYXJlbnRzU2VsZWN0aW9uKG5vZGUpO1xuICB9XG5cbiAgLyogQ2hlY2tzIGFsbCB0aGUgcGFyZW50cyB3aGVuIGEgbGVhZiBub2RlIGlzIHNlbGVjdGVkL3Vuc2VsZWN0ZWQgKi9cbiAgY2hlY2tBbGxQYXJlbnRzU2VsZWN0aW9uKG5vZGU6IERhdGFGbGF0Tm9kZSk6IHZvaWQge1xuICAgIGxldCBwYXJlbnQ6IERhdGFGbGF0Tm9kZSB8IG51bGwgPSB0aGlzLmdldFBhcmVudE5vZGUobm9kZSk7XG4gICAgd2hpbGUgKHBhcmVudCkge1xuICAgICAgdGhpcy5jaGVja1Jvb3ROb2RlU2VsZWN0aW9uKHBhcmVudCk7XG4gICAgICBwYXJlbnQgPSB0aGlzLmdldFBhcmVudE5vZGUocGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2hlY2sgcm9vdCBub2RlIGNoZWNrZWQgc3RhdGUgYW5kIGNoYW5nZSBpdCBhY2NvcmRpbmdseSAqL1xuICBjaGVja1Jvb3ROb2RlU2VsZWN0aW9uKG5vZGU6IERhdGFGbGF0Tm9kZSk6IHZvaWQge1xuICAgIGNvbnN0IG5vZGVTZWxlY3RlZCA9IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSk7XG4gICAgY29uc3QgZGVzY2VuZGFudHMgPSB0aGlzLnRyZWVDb250cm9sLmdldERlc2NlbmRhbnRzKG5vZGUpO1xuICAgIGNvbnN0IGRlc2NBbGxTZWxlY3RlZCA9IGRlc2NlbmRhbnRzLmV2ZXJ5KChjaGlsZCkgPT5cbiAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQoY2hpbGQpXG4gICAgKTtcblxuICAgIGlmIChub2RlU2VsZWN0ZWQgJiYgIWRlc2NBbGxTZWxlY3RlZCkge1xuICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uZGVzZWxlY3Qobm9kZSk7XG4gICAgfSBlbHNlIGlmICghbm9kZVNlbGVjdGVkICYmIGRlc2NBbGxTZWxlY3RlZCkge1xuICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0KG5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qIEdldCB0aGUgcGFyZW50IG5vZGUgb2YgYSBub2RlICovXG4gIGdldFBhcmVudE5vZGUobm9kZTogRGF0YUZsYXROb2RlKTogRGF0YUZsYXROb2RlIHwgbnVsbCB7XG4gICAgY29uc3QgY3VycmVudExldmVsID0gdGhpcy5nZXRMZXZlbChub2RlKTtcblxuICAgIGlmIChjdXJyZW50TGV2ZWwgPCAxKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFydEluZGV4ID0gdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuaW5kZXhPZihub2RlKSAtIDE7XG5cbiAgICBmb3IgKGxldCBpID0gc3RhcnRJbmRleDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IGN1cnJlbnROb2RlID0gdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV07XG5cbiAgICAgIGlmICh0aGlzLmdldExldmVsKGN1cnJlbnROb2RlKSA8IGN1cnJlbnRMZXZlbCkge1xuICAgICAgICByZXR1cm4gY3VycmVudE5vZGU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZ2V0U2VsZWN0ZWRJdGVtcygpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoKVxuICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5wbGFjZWhvbGRlciB8fCAnJztcbiAgICByZXR1cm4gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWRcbiAgICAgIC5tYXAoKHMpID0+IHMudmFsdWUpXG4gICAgICAuam9pbignLCcpXG4gICAgICAudG9TdHJpbmcoKVxuICAgICAgLnJlcGxhY2UoL1xcLC9nLCAnLCAnKTtcbiAgfVxuXG4gIGZpbHRlckNoYW5nZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGZpbHRlclRleHQgPSBldmVudC50YXJnZXQ/LnZhbHVlO1xuXG4gICAgLy8gQ2hlY2tsaXN0RGF0YWJhc2UuZmlsdGVyIG1ldGhvZCB3aGljaCBhY3R1YWxseSBmaWx0ZXJzIHRoZSB0cmVlIGFuZCBnaXZlcyBiYWNrIGEgdHJlZSBzdHJ1Y3R1cmVcbiAgICB0aGlzLl9kYXRhYmFzZS5maWx0ZXIoZmlsdGVyVGV4dCk7XG4gIH1cblxuICBjbGVhclNlYXJjaFZhbHVlKCk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudC5zZWFyY2g/LmZvcm1Db250cm9sPy5zZXRWYWx1ZSgnJyk7XG4gICAgdGhpcy5fZGF0YWJhc2UuZmlsdGVyKCcnKTtcbiAgfVxuXG4gIHNlbGVjdFNpbmdsZUl0ZW0obm9kZTogRGF0YUZsYXROb2RlKTogdm9pZCB7XG4gICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uY2xlYXIoKTtcbiAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3Qobm9kZSk7XG4gICAgdGhpcy5mb3JtR3JvdXBcbiAgICAgIC5nZXQodGhpcy5lbGVtZW50LmtleSlcbiAgICAgID8ucGF0Y2hWYWx1ZSh7IHZhbHVlOiBub2RlLnZhbHVlLCBrZXk6IG5vZGUua2V5IH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB0aGlzLnRyaWdnZXIuY2xvc2VNZW51KCk7XG4gIH1cblxuICBoYXNWYWx1ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5lbGVtZW50LmtleSk/LnZhbHVlO1xuICB9XG5cbiAgY2xlYXJWYWx1ZShldmVudDogYW55KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuZWxlbWVudC5rZXkpPy5wYXRjaFZhbHVlKG51bGwpO1xuICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmNsZWFyKCk7XG4gIH1cblxuICBpc0FsbE5vZGVTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEoXG4gICAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5sZW5ndGggPT09XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGhcbiAgICApO1xuICB9XG59XG4iLCI8Zm9ybVxuICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gICpuZ0lmPVwiZm9ybUdyb3VwICYmIGVsZW1lbnRcIlxuICBjbGFzcz1cIm1hcGEtZHJvcGRvd24tdHJlZVwiXG4+XG4gIDxsYWJlbCAqbmdJZj1cImVsZW1lbnQubGFiZWxcIiBjbGFzcz1cIm1hcGEtZHJvcGRvd24tdHJlZV9fbGFiZWxcIj5cbiAgICB7eyBlbGVtZW50LmxhYmVsIH19XG4gIDwvbGFiZWw+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cIm1hcGEtZHJvcGRvd24tdHJlZV9fZHJvcGRvd25cIlxuICAgICNtZW51T3B0aW9uPVwibWF0TWVudVRyaWdnZXJcIlxuICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJtYXBhLWRyb3Bkb3duLXRyZWVfX2Ryb3Bkb3duLS12YWx1ZVwiPlxuICAgICAge3sgZ2V0U2VsZWN0ZWRJdGVtcygpIH19XG4gICAgPC9kaXY+XG5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJoYXNWYWx1ZSgpXCIgKGNsaWNrKT1cImNsZWFyVmFsdWUoJGV2ZW50KVwiIG1hdFN1ZmZpeFxuICAgICAgPmNsb3NlPC9tYXQtaWNvblxuICAgID5cbiAgICA8bWF0LWljb24+XG4gICAgICB7eyBtZW51T3B0aW9uLm1lbnVPcGVuID8gJ2tleWJvYXJkX2Fycm93X3VwJyA6ICdrZXlib2FyZF9hcnJvd19kb3duJyB9fVxuICAgIDwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XG4gICAgPGRpdiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWFwYS1kcm9wZG93bi10cmVlX19zZWFyY2hcIiAqbmdJZj1cImVsZW1lbnQuc2VhcmNoXCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICNzZWFyY2hJbnB1dFxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImVsZW1lbnQuc2VhcmNoPy5mb3JtQ29udHJvbCFcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImVsZW1lbnQuc2VhcmNoPy5wbGFjZWhvbGRlciB8fCAnJ1wiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgKGtleXVwKT1cImZpbHRlckNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICpuZ0lmPVwiISFlbGVtZW50LnNlYXJjaD8uZm9ybUNvbnRyb2w/LnZhbHVlICYmICFlbGVtZW50LnNlYXJjaD8uZm9ybUNvbnRyb2w/LmRpc2FibGVkXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbGVhclNlYXJjaFZhbHVlKClcIlxuICAgICAgICAgICAgbWF0U3VmZml4XG4gICAgICAgICAgICA+Y2xvc2U8L21hdC1pY29uXG4gICAgICAgICAgPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPC9kaXY+XG4gICAgICA8c2VjdGlvbiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgICAgICA8bGFiZWxcbiAgICAgICAgICAqbmdJZj1cImVsZW1lbnQubXVsdGlwbGUgPT09IHRydWVcIlxuICAgICAgICAgIGNsYXNzPVwibWFwYS1kcm9wZG93bi10cmVlX190b2dnbGUtYWxsIG1hcGEtZHJvcGRvd24tdHJlZV9fY2hlY2tib3hcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgI3RvZ2dsZUFsbENoZWNrYm94XG4gICAgICAgICAgICBjbGFzcz1cImNoZWNrbGlzdC1sZWFmLW5vZGVcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVBbGwoJGV2ZW50KVwiXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJpc0FsbE5vZGVTZWxlY3RlZCgpXCJcbiAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cIiFpc0FsbE5vZGVTZWxlY3RlZCgpICYmIGNoZWNrbGlzdFNlbGVjdGlvbi5oYXNWYWx1ZSgpXCJcbiAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgID5TZWxlY2lvbmFyIHRvZG9zPC9tYXQtY2hlY2tib3hcbiAgICAgICAgICA+XG4gICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgPG1hdC10cmVlIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIiBbdHJlZUNvbnRyb2xdPVwidHJlZUNvbnRyb2xcIj5cbiAgICAgICAgICA8bWF0LXRyZWUtbm9kZVxuICAgICAgICAgICAgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGVcIlxuICAgICAgICAgICAgbWF0VHJlZU5vZGVQYWRkaW5nXG4gICAgICAgICAgICBtYXRUcmVlTm9kZVBhZGRpbmdJbmRlbnQ9XCIxM1wiXG4gICAgICAgICAgICBbY2xhc3MubWFwYS1kcm9wZG93bi10cmVlX19jaGVja2JveC0tY2hlY2tlZF09XCJjaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChub2RlKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibWFwYS1kcm9wZG93bi10cmVlX19jaGVja2JveFwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBkaXNhYmxlZD48L2J1dHRvbj5cbiAgICAgICAgICAgICAgPCEtLSBMRUFGIENIRUNLQk9YIC0tPlxuICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJlbGVtZW50Lm11bHRpcGxlID09PSB0cnVlOyBlbHNlIG5vQ2hlY2tib3hcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tsaXN0LWxlYWYtbm9kZVwiXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSlcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidG9kb0xlYWZJdGVtU2VsZWN0aW9uVG9nZ2xlKG5vZGUpXCJcbiAgICAgICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgPnt7bm9kZS52YWx1ZX19PC9tYXQtY2hlY2tib3hcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vQ2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwic2VsZWN0U2luZ2xlSXRlbShub2RlKVwiPlxuICAgICAgICAgICAgICAgICAge3tub2RlLnZhbHVlfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9tYXQtdHJlZS1ub2RlPlxuXG4gICAgICAgICAgPG1hdC10cmVlLW5vZGVcbiAgICAgICAgICAgICptYXRUcmVlTm9kZURlZj1cImxldCBub2RlOyB3aGVuOiBoYXNDaGlsZFwiXG4gICAgICAgICAgICBtYXRUcmVlTm9kZVBhZGRpbmdcbiAgICAgICAgICAgIG1hdFRyZWVOb2RlUGFkZGluZ0luZGVudD1cIjEzXCJcbiAgICAgICAgICAgIFtjbGFzcy5tYXBhLWRyb3Bkb3duLXRyZWVfX2NoZWNrYm94LS1jaGVja2VkXT1cImNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJtYXBhLWRyb3Bkb3duLXRyZWVfX2NoZWNrYm94XCI+XG4gICAgICAgICAgICAgIDwhLS0gPGJ1dHRvblxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIG1hdFRyZWVOb2RlVG9nZ2xlXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIndG9nZ2xlICcgKyBub2RlLmZpbGVuYW1lXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5cbiAgICAgICAgICAgICAgICAgIHt7dHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSA/ICdleHBhbmRfbW9yZScgOlxuICAgICAgICAgICAgICAgICAgJ2NoZXZyb25fcmlnaHQnfX1cbiAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XG4gICAgICAgICAgICAgIDwhLS0gW2NoZWNrZWRdPVwiZGVzY2VuZGFudHNBbGxTZWxlY3RlZChub2RlKVwiIC0tPlxuICAgICAgICAgICAgICA8IS0tIFBBUkVOVCBDSEVDS0JPWCAtLT5cbiAgICAgICAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZWxlbWVudC5tdWx0aXBsZSA9PT0gdHJ1ZTsgZWxzZSBub0NoZWNrYm94XCJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChub2RlKVwiXG4gICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwiZGVzY2VuZGFudHNQYXJ0aWFsbHlTZWxlY3RlZChub2RlKVwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2RvSXRlbVNlbGVjdGlvblRvZ2dsZShub2RlKVwiXG4gICAgICAgICAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3tub2RlLnZhbHVlfX08L21hdC1jaGVja2JveFxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9DaGVja2JveD5cbiAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJzZWxlY3RTaW5nbGVJdGVtKG5vZGUpXCI+XG4gICAgICAgICAgICAgICAgICB7e25vZGUudmFsdWV9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L21hdC10cmVlLW5vZGU+XG4gICAgICAgIDwvbWF0LXRyZWU+XG4gICAgICA8L3NlY3Rpb24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiZWxlbWVudC5tdWx0aXBsZSA9PT0gdHJ1ZVwiXG4gICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgY2xhc3M9XCJtYXBhLWRyb3Bkb3duLXRyZWVfX2J1dHRvblwiXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgIChjbGljayk9XCJjbGVhckFsbCgpXCJcbiAgICAgID5cbiAgICAgICAgTGltcGFyIHRvZG9zXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtbWVudT5cbjwvZm9ybT5cbiJdfQ==
|
|
285
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi10cmVlL3NyYy9kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBhLWxpYnJhcnktdWkvc3JjL2xpYi9jb21wb25lbnRzL2Ryb3Bkb3duLXRyZWUvc3JjL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBRXhELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixxQkFBcUIsR0FFdEIsTUFBTSx3QkFBd0IsQ0FBQztBQUtoQyxPQUFPLEVBQVcsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7OztBQUVqRSxNQUFNLE9BQU8sUUFBUTtJQU1uQixnQkFBZSxDQUFDO0NBQ2pCO0FBRUQsaUVBQWlFO0FBQ2pFLE1BQU0sT0FBTyxZQUFZO0lBTXZCLGdCQUFlLENBQUM7Q0FDakI7QUFRRCxNQUFNLE9BQU8seUJBQXlCO0lBb0NwQyxZQUFvQixTQUE0QjtRQUE1QixjQUFTLEdBQVQsU0FBUyxDQUFtQjtRQTVCaEQsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFFaEMsOEZBQThGO1FBQzlGLGdCQUFXLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUM7UUFF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QWtCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FDeEMsQ0FBQztJQUNKLENBQUM7O3VIQWxVVSx5QkFBeUI7MkdBQXpCLHlCQUF5QixpVUFLekIsY0FBYyx5SkNyRDNCLG8xSkF1SUE7NEZEdkZhLHlCQUF5QjtrQkFOckMsU0FBUzsrQkFDRSxvQkFBb0IsaUJBR2YsaUJBQWlCLENBQUMsSUFBSTt3R0FHNUIsU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ2EsWUFBWTtzQkFBOUIsU0FBUzt1QkFBQyxNQUFNO2dCQUNFLElBQUk7c0JBQXRCLFNBQVM7dUJBQUMsTUFBTTtnQkFDVSxPQUFPO3NCQUFqQyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ08saUJBQWlCO3NCQUFoRCxTQUFTO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRHJvcGRvd25UcmVlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9lbGVtZW50cy9kcm9wZG93bi10cmVlJztcbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEZsYXRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcbmltcG9ydCB7XG4gIE1hdFRyZWVGbGF0dGVuZXIsXG4gIE1hdFRyZWVGbGF0RGF0YVNvdXJjZSxcbiAgTWF0VHJlZSxcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdHJlZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDaGVja2xpc3REYXRhYmFzZSB9IGZyb20gJy4vY2hlY2tsaXN0LWRhdGFiYXNlJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNYXRDaGVja2JveCwgTWF0Q2hlY2tib3hDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRNZW51LCBNYXRNZW51VHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuXG5leHBvcnQgY2xhc3MgRGF0YU5vZGUge1xuICBrZXkhOiBzdHJpbmc7XG4gIHZhbHVlITogc3RyaW5nO1xuICBjaGlsZHJlbj86IERhdGFOb2RlW107XG4gIGlzTGVhZj86IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoKSB7fVxufVxuXG4vKiogRmxhdCB0by1kbyBpdGVtIG5vZGUgd2l0aCBleHBhbmRhYmxlIGFuZCBsZXZlbCBpbmZvcm1hdGlvbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFGbGF0Tm9kZSB7XG4gIGtleSE6IHN0cmluZztcbiAgdmFsdWUhOiBzdHJpbmc7XG4gIGxldmVsITogbnVtYmVyO1xuICBleHBhbmRhYmxlITogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hcGEtZHJvcGRvd24tdHJlZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIE1hcGFEcm9wZG93blRyZWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBmb3JtR3JvdXAhOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGVsZW1lbnQhOiBEcm9wZG93blRyZWU7XG4gIEBWaWV3Q2hpbGQoJ2F1dG8nKSBhdXRvY29tcGxldGUhOiBNYXRBdXRvY29tcGxldGU7XG4gIEBWaWV3Q2hpbGQoJ3RyZWUnKSB0cmVlITogTWF0VHJlZTxEYXRhTm9kZT47XG4gIEBWaWV3Q2hpbGQoTWF0TWVudVRyaWdnZXIpIHRyaWdnZXIhOiBNYXRNZW51VHJpZ2dlcjtcbiAgQFZpZXdDaGlsZCgndG9nZ2xlQWxsQ2hlY2tib3gnKSB0b2dnbGVBbGxDaGVja2JveCE6IE1hdENoZWNrYm94O1xuXG4gIGlzTWVudUV4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIE1hcCBmcm9tIGZsYXQgbm9kZSB0byBuZXN0ZWQgbm9kZS4gVGhpcyBoZWxwcyB1cyBmaW5kaW5nIHRoZSBuZXN0ZWQgbm9kZSB0byBiZSBtb2RpZmllZCAqL1xuICBmbGF0Tm9kZU1hcCA9IG5ldyBNYXA8RGF0YUZsYXROb2RlLCBEYXRhTm9kZT4oKTtcblxuICAvKiogTWFwIGZyb20gbmVzdGVkIG5vZGUgdG8gZmxhdHRlbmVkIG5vZGUuIFRoaXMgaGVscHMgdXMgdG8ga2VlcCB0aGUgc2FtZSBvYmplY3QgZm9yIHNlbGVjdGlvbiAqL1xuICBuZXN0ZWROb2RlTWFwID0gbmV3IE1hcDxEYXRhTm9kZSwgRGF0YUZsYXROb2RlPigpO1xuXG4gIC8qKiBBIHNlbGVjdGVkIHBhcmVudCBub2RlIHRvIGJlIGluc2VydGVkICovXG4gIHNlbGVjdGVkUGFyZW50OiBEYXRhRmxhdE5vZGUgfCBudWxsID0gbnVsbDtcblxuICAvKiogVGhlIG5ldyBpdGVtJ3MgbmFtZSAqL1xuICBuZXdJdGVtTmFtZSA9ICcnO1xuXG4gIHRyZWVDb250cm9sITogRmxhdFRyZWVDb250cm9sPERhdGFGbGF0Tm9kZT47XG5cbiAgdHJlZUZsYXR0ZW5lciE6IE1hdFRyZWVGbGF0dGVuZXI8RGF0YU5vZGUsIERhdGFGbGF0Tm9kZT47XG5cbiAgZGF0YVNvdXJjZSE6IE1hdFRyZWVGbGF0RGF0YVNvdXJjZTxEYXRhTm9kZSwgRGF0YUZsYXROb2RlPjtcblxuICAvKiogVGhlIHNlbGVjdGlvbiBmb3IgY2hlY2tsaXN0ICovXG4gIGNoZWNrbGlzdFNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxEYXRhRmxhdE5vZGU+KHRydWUpO1xuXG4gIC8vLyBGaWx0ZXJpbmdcbiAgbXlDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gIG9wdGlvbnM6IHN0cmluZ1tdID0gW107XG4gIGZpbHRlcmVkT3B0aW9ucyE6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2RhdGFiYXNlOiBDaGVja2xpc3REYXRhYmFzZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9kYXRhYmFzZS5pbml0aWFsaXplKHRoaXMuZWxlbWVudC50cmVlKTtcbiAgICB0aGlzLnRyZWVGbGF0dGVuZXIgPSBuZXcgTWF0VHJlZUZsYXR0ZW5lcihcbiAgICAgIHRoaXMudHJhbnNmb3JtZXIsXG4gICAgICB0aGlzLmdldExldmVsLFxuICAgICAgdGhpcy5pc0V4cGFuZGFibGUsXG4gICAgICB0aGlzLmdldENoaWxkcmVuXG4gICAgKTtcbiAgICB0aGlzLnRyZWVDb250cm9sID0gbmV3IEZsYXRUcmVlQ29udHJvbDxEYXRhRmxhdE5vZGU+KFxuICAgICAgdGhpcy5nZXRMZXZlbCxcbiAgICAgIHRoaXMuaXNFeHBhbmRhYmxlXG4gICAgKTtcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VHJlZUZsYXREYXRhU291cmNlKFxuICAgICAgdGhpcy50cmVlQ29udHJvbCxcbiAgICAgIHRoaXMudHJlZUZsYXR0ZW5lclxuICAgICk7XG5cbiAgICB0aGlzLl9kYXRhYmFzZS5kYXRhQ2hhbmdlLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBkYXRhO1xuICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmRBbGwoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmNoYW5nZWQuc3Vic2NyaWJlKChzZWxlY3Rpb24pID0+IHtcbiAgICAgIGlmIChzZWxlY3Rpb24uc291cmNlLnNlbGVjdGVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuZWxlbWVudC5rZXkpPy5wYXRjaFZhbHVlKFxuICAgICAgICAgIHRoaXMuZWxlbWVudC5tdWx0aXBsZVxuICAgICAgICAgICAgPyBzZWxlY3Rpb24uc291cmNlLnNlbGVjdGVkLm1hcCgoY2hlY2tlZCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBjaGVja2VkLnZhbHVlLCBrZXk6IGNoZWNrZWQua2V5IH07XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogc2VsZWN0aW9uLnNvdXJjZS5zZWxlY3RlZFswXS52YWx1ZSxcbiAgICAgICAgICAgICAgICBrZXk6IHNlbGVjdGlvbi5zb3VyY2Uuc2VsZWN0ZWRbMF0ua2V5LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgIHsgZW1pdEV2ZW50OiBmYWxzZSB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5lbGVtZW50LmtleSk/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudC5tdWx0aXBsZSkge1xuICAgICAgICAgIGNvbnN0IGFsbFZhbHVlc0tleXMgPSB0aGlzLmVsZW1lbnQubXVsdGlwbGVcbiAgICAgICAgICAgID8gdmFsdWUubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0ua2V5KVxuICAgICAgICAgICAgOiBbdmFsdWUua2V5XTtcblxuICAgICAgICAgIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLm1hcCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGFsbFZhbHVlc0tleXMuaW5jbHVkZXMobm9kZS5rZXkpKSB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLmVsZW1lbnQubXVsdGlwbGUgJiYgbm9kZS5sZXZlbCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMudG9kb0l0ZW1TZWxlY3Rpb25Ub2dnbGUobm9kZSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2RvTGVhZkl0ZW1TZWxlY3Rpb25Ub2dnbGUobm9kZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdFNpbmdsZUl0ZW0oXG4gICAgICAgICAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcz8uZmluZChcbiAgICAgICAgICAgICAgKG5vZGUpID0+IG5vZGUua2V5ID09PSB2YWx1ZS5rZXlcbiAgICAgICAgICAgICkgYXMgRGF0YUZsYXROb2RlXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kQWxsKCk7XG4gIH1cblxuICB0b2dnbGVBbGwoZXZlbnQ6IE1hdENoZWNrYm94Q2hhbmdlKSB7XG4gICAgY29uc3QgY2hlY2tlZCA9IGV2ZW50LmNoZWNrZWQ7XG5cbiAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5tYXAoKG5vZGUpID0+IHtcbiAgICAgIGlmIChjaGVja2VkKSB7XG4gICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmRlc2VsZWN0KG5vZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0KG5vZGUpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi50b2dnbGUobm9kZSk7XG4gICAgICBjb25zdCBkZXNjZW5kYW50cyA9IHRoaXMudHJlZUNvbnRyb2wuZ2V0RGVzY2VuZGFudHMobm9kZSk7XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3QoLi4uZGVzY2VuZGFudHMpO1xuXG4gICAgICBpZiAoY2hlY2tlZCkge1xuICAgICAgICBkZXNjZW5kYW50cy5ldmVyeSgoY2hpbGQpID0+IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmRlc2VsZWN0KGNoaWxkKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZXNjZW5kYW50cy5ldmVyeSgoY2hpbGQpID0+IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdChjaGlsZCkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgY2xlYXJBbGwoKSB7XG4gICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uY2xlYXIoKTtcbiAgICBpZiAodGhpcy5lbGVtZW50Lm11bHRpcGxlKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5lbGVtZW50LmtleSk/LnBhdGNoVmFsdWUoW10pO1xuICAgICAgdGhpcy50b2dnbGVBbGxDaGVja2JveC5jaGVja2VkID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLmVsZW1lbnQua2V5KT8ucGF0Y2hWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBvblBhbmVsQ2hhbmdlKCkge1xuICAgIHRoaXMuaXNNZW51RXhwYW5kZWQgPSAhdGhpcy5pc01lbnVFeHBhbmRlZDtcbiAgfVxuXG4gIGZpbHRlcihhcnJheTogYW55W10sIHRleHQ6IHN0cmluZykge1xuICAgIGNvbnN0IGdldE5vZGVzID0gKFxuICAgICAgcmVzdWx0OiBhbnlbXSxcbiAgICAgIG9iamVjdDogeyBuYW1lOiBzdHJpbmc7IGNoaWxkcmVuOiBhbnlbXSB9XG4gICAgKSA9PiB7XG4gICAgICBpZiAob2JqZWN0Lm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGV4dCkpIHtcbiAgICAgICAgcmVzdWx0LnB1c2gob2JqZWN0KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG9iamVjdC5jaGlsZHJlbikpIHtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBvYmplY3QuY2hpbGRyZW4ucmVkdWNlKGdldE5vZGVzLCBbXSk7XG4gICAgICAgIGlmIChjaGlsZHJlbi5sZW5ndGgpIHJlc3VsdC5wdXNoKHsgLi4ub2JqZWN0LCBjaGlsZHJlbiB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcblxuICAgIHRoaXMuZWxlbWVudC50cmVlID0gYXJyYXkucmVkdWNlKGdldE5vZGVzLCBbXSk7XG4gIH1cblxuICBnZXRMZXZlbCA9IChub2RlOiBEYXRhRmxhdE5vZGUpID0+IG5vZGUubGV2ZWw7XG5cbiAgaXNFeHBhbmRhYmxlID0gKG5vZGU6IERhdGFGbGF0Tm9kZSkgPT4gbm9kZS5leHBhbmRhYmxlO1xuXG4gIGdldENoaWxkcmVuID0gKG5vZGU6IERhdGFOb2RlKTogRGF0YU5vZGVbXSA9PiBub2RlLmNoaWxkcmVuITtcblxuICBoYXNDaGlsZCA9IChfOiBudW1iZXIsIF9ub2RlRGF0YTogRGF0YUZsYXROb2RlKSA9PiBfbm9kZURhdGEuZXhwYW5kYWJsZTtcblxuICBoYXNOb0NvbnRlbnQgPSAoXzogbnVtYmVyLCBfbm9kZURhdGE6IERhdGFGbGF0Tm9kZSkgPT4gX25vZGVEYXRhLnZhbHVlID09PSAnJztcblxuICAvKipcbiAgICogVHJhbnNmb3JtZXIgdG8gY29udmVydCBuZXN0ZWQgbm9kZSB0byBmbGF0IG5vZGUuIFJlY29yZCB0aGUgbm9kZXMgaW4gbWFwcyBmb3IgbGF0ZXIgdXNlLlxuICAgKi9cbiAgdHJhbnNmb3JtZXIgPSAobm9kZTogRGF0YU5vZGUsIGxldmVsOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBleGlzdGluZ05vZGUgPSB0aGlzLm5lc3RlZE5vZGVNYXAuZ2V0KG5vZGUpO1xuICAgIGNvbnN0IGZsYXROb2RlID1cbiAgICAgIGV4aXN0aW5nTm9kZSAmJiBleGlzdGluZ05vZGUudmFsdWUgPT09IG5vZGUudmFsdWVcbiAgICAgICAgPyBleGlzdGluZ05vZGVcbiAgICAgICAgOiBuZXcgRGF0YUZsYXROb2RlKCk7XG4gICAgZmxhdE5vZGUua2V5ID0gbm9kZS5rZXk7XG4gICAgZmxhdE5vZGUudmFsdWUgPSBub2RlLnZhbHVlO1xuICAgIGZsYXROb2RlLmxldmVsID0gbGV2ZWw7XG4gICAgZmxhdE5vZGUuZXhwYW5kYWJsZSA9ICEhbm9kZS5jaGlsZHJlbjtcbiAgICB0aGlzLmZsYXROb2RlTWFwLnNldChmbGF0Tm9kZSwgbm9kZSk7XG4gICAgdGhpcy5uZXN0ZWROb2RlTWFwLnNldChub2RlLCBmbGF0Tm9kZSk7XG4gICAgcmV0dXJuIGZsYXROb2RlO1xuICB9O1xuXG4gIC8qKiBXaGV0aGVyIGFsbCB0aGUgZGVzY2VuZGFudHMgb2YgdGhlIG5vZGUgYXJlIHNlbGVjdGVkLiAqL1xuICBkZXNjZW5kYW50c0FsbFNlbGVjdGVkKG5vZGU6IERhdGFGbGF0Tm9kZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGRlc2NlbmRhbnRzID0gdGhpcy50cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKTtcbiAgICBjb25zdCBkZXNjQWxsU2VsZWN0ZWQgPSBkZXNjZW5kYW50cy5ldmVyeSgoY2hpbGQpID0+XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKGNoaWxkKVxuICAgICk7XG4gICAgcmV0dXJuIGRlc2NBbGxTZWxlY3RlZDtcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHBhcnQgb2YgdGhlIGRlc2NlbmRhbnRzIGFyZSBzZWxlY3RlZCAqL1xuICBkZXNjZW5kYW50c1BhcnRpYWxseVNlbGVjdGVkKG5vZGU6IERhdGFGbGF0Tm9kZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGRlc2NlbmRhbnRzID0gdGhpcy50cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKTtcbiAgICBjb25zdCByZXN1bHQgPSBkZXNjZW5kYW50cy5zb21lKChjaGlsZCkgPT5cbiAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQoY2hpbGQpXG4gICAgKTtcbiAgICByZXR1cm4gcmVzdWx0ICYmICF0aGlzLmRlc2NlbmRhbnRzQWxsU2VsZWN0ZWQobm9kZSk7XG4gIH1cblxuICAvKiogVG9nZ2xlIHRoZSB0by1kbyBpdGVtIHNlbGVjdGlvbi4gU2VsZWN0L2Rlc2VsZWN0IGFsbCB0aGUgZGVzY2VuZGFudHMgbm9kZSAqL1xuICB0b2RvSXRlbVNlbGVjdGlvblRvZ2dsZShub2RlOiBEYXRhRmxhdE5vZGUpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi50b2dnbGUobm9kZSk7XG5cbiAgICBpZiAodGhpcy5lbGVtZW50LmNoZWNrQ2hpbGRyZW4pIHtcbiAgICAgIGNvbnN0IGRlc2NlbmRhbnRzID0gdGhpcy50cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKTtcbiAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSlcbiAgICAgICAgPyB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3QoLi4uZGVzY2VuZGFudHMpXG4gICAgICAgIDogdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uZGVzZWxlY3QoLi4uZGVzY2VuZGFudHMpO1xuXG4gICAgICAvLyBGb3JjZSB1cGRhdGUgZm9yIHRoZSBwYXJlbnRcbiAgICAgIGRlc2NlbmRhbnRzLmV2ZXJ5KChjaGlsZCkgPT4gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChjaGlsZCkpO1xuICAgICAgdGhpcy5jaGVja0FsbFBhcmVudHNTZWxlY3Rpb24obm9kZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFRvZ2dsZSBhIGxlYWYgdG8tZG8gaXRlbSBzZWxlY3Rpb24uIENoZWNrIGFsbCB0aGUgcGFyZW50cyB0byBzZWUgaWYgdGhleSBjaGFuZ2VkICovXG4gIHRvZG9MZWFmSXRlbVNlbGVjdGlvblRvZ2dsZShub2RlOiBEYXRhRmxhdE5vZGUpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi50b2dnbGUobm9kZSk7XG5cbiAgICB0aGlzLmNoZWNrQWxsUGFyZW50c1NlbGVjdGlvbihub2RlKTtcbiAgfVxuXG4gIC8qIENoZWNrcyBhbGwgdGhlIHBhcmVudHMgd2hlbiBhIGxlYWYgbm9kZSBpcyBzZWxlY3RlZC91bnNlbGVjdGVkICovXG4gIGNoZWNrQWxsUGFyZW50c1NlbGVjdGlvbihub2RlOiBEYXRhRmxhdE5vZGUpOiB2b2lkIHtcbiAgICBsZXQgcGFyZW50OiBEYXRhRmxhdE5vZGUgfCBudWxsID0gdGhpcy5nZXRQYXJlbnROb2RlKG5vZGUpO1xuICAgIHdoaWxlIChwYXJlbnQpIHtcbiAgICAgIHRoaXMuY2hlY2tSb290Tm9kZVNlbGVjdGlvbihwYXJlbnQpO1xuICAgICAgcGFyZW50ID0gdGhpcy5nZXRQYXJlbnROb2RlKHBhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENoZWNrIHJvb3Qgbm9kZSBjaGVja2VkIHN0YXRlIGFuZCBjaGFuZ2UgaXQgYWNjb3JkaW5nbHkgKi9cbiAgY2hlY2tSb290Tm9kZVNlbGVjdGlvbihub2RlOiBEYXRhRmxhdE5vZGUpOiB2b2lkIHtcbiAgICBjb25zdCBub2RlU2VsZWN0ZWQgPSB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUpO1xuICAgIGNvbnN0IGRlc2NlbmRhbnRzID0gdGhpcy50cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKTtcbiAgICBjb25zdCBkZXNjQWxsU2VsZWN0ZWQgPSBkZXNjZW5kYW50cy5ldmVyeSgoY2hpbGQpID0+XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKGNoaWxkKVxuICAgICk7XG5cbiAgICBpZiAobm9kZVNlbGVjdGVkICYmICFkZXNjQWxsU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmRlc2VsZWN0KG5vZGUpO1xuICAgIH0gZWxzZSBpZiAoIW5vZGVTZWxlY3RlZCAmJiBkZXNjQWxsU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdChub2RlKTtcbiAgICB9XG4gIH1cblxuICAvKiBHZXQgdGhlIHBhcmVudCBub2RlIG9mIGEgbm9kZSAqL1xuICBnZXRQYXJlbnROb2RlKG5vZGU6IERhdGFGbGF0Tm9kZSk6IERhdGFGbGF0Tm9kZSB8IG51bGwge1xuICAgIGNvbnN0IGN1cnJlbnRMZXZlbCA9IHRoaXMuZ2V0TGV2ZWwobm9kZSk7XG5cbiAgICBpZiAoY3VycmVudExldmVsIDwgMSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmluZGV4T2Yobm9kZSkgLSAxO1xuXG4gICAgZm9yIChsZXQgaSA9IHN0YXJ0SW5kZXg7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBjb25zdCBjdXJyZW50Tm9kZSA9IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldO1xuXG4gICAgICBpZiAodGhpcy5nZXRMZXZlbChjdXJyZW50Tm9kZSkgPCBjdXJyZW50TGV2ZWwpIHtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnROb2RlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGdldFNlbGVjdGVkSXRlbXMoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aClcbiAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQucGxhY2Vob2xkZXIgfHwgJyc7XG4gICAgXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkID8gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWRcbiAgICAgIC5tYXAoKHMpID0+IHM/LnZhbHVlIHx8IHMgfHwgJycpXG4gICAgICAuam9pbignLCcpXG4gICAgICAudG9TdHJpbmcoKVxuICAgICAgLnJlcGxhY2UoL1xcLC9nLCAnLCAnKSA6IHRoaXMuZWxlbWVudC5wbGFjZWhvbGRlciB8fCAnJztcbiAgfVxuXG4gIGZpbHRlckNoYW5nZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGZpbHRlclRleHQgPSBldmVudC50YXJnZXQ/LnZhbHVlO1xuXG4gICAgLy8gQ2hlY2tsaXN0RGF0YWJhc2UuZmlsdGVyIG1ldGhvZCB3aGljaCBhY3R1YWxseSBmaWx0ZXJzIHRoZSB0cmVlIGFuZCBnaXZlcyBiYWNrIGEgdHJlZSBzdHJ1Y3R1cmVcbiAgICB0aGlzLl9kYXRhYmFzZS5maWx0ZXIoZmlsdGVyVGV4dCk7XG4gIH1cblxuICBjbGVhclNlYXJjaFZhbHVlKCk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudC5zZWFyY2g/LmZvcm1Db250cm9sPy5zZXRWYWx1ZSgnJyk7XG4gICAgdGhpcy5fZGF0YWJhc2UuZmlsdGVyKCcnKTtcbiAgfVxuXG4gIHNlbGVjdFNpbmdsZUl0ZW0obm9kZTogRGF0YUZsYXROb2RlKTogdm9pZCB7XG4gICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uY2xlYXIoKTtcbiAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3Qobm9kZSk7XG4gICAgdGhpcy5mb3JtR3JvdXBcbiAgICAgIC5nZXQodGhpcy5lbGVtZW50LmtleSlcbiAgICAgID8ucGF0Y2hWYWx1ZSh7IHZhbHVlOiBub2RlLnZhbHVlLCBrZXk6IG5vZGUua2V5IH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB0aGlzLnRyaWdnZXIuY2xvc2VNZW51KCk7XG4gIH1cblxuICBoYXNWYWx1ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5lbGVtZW50LmtleSk/LnZhbHVlO1xuICB9XG5cbiAgY2xlYXJWYWx1ZShldmVudDogYW55KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuZWxlbWVudC5rZXkpPy5wYXRjaFZhbHVlKG51bGwpO1xuICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmNsZWFyKCk7XG4gIH1cblxuICBpc0FsbE5vZGVTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEoXG4gICAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5sZW5ndGggPT09XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGhcbiAgICApO1xuICB9XG59XG4iLCI8Zm9ybVxuICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gICpuZ0lmPVwiZm9ybUdyb3VwICYmIGVsZW1lbnRcIlxuICBjbGFzcz1cIm1hcGEtZHJvcGRvd24tdHJlZVwiXG4+XG4gIDxsYWJlbCAqbmdJZj1cImVsZW1lbnQubGFiZWxcIiBjbGFzcz1cIm1hcGEtZHJvcGRvd24tdHJlZV9fbGFiZWxcIj5cbiAgICB7eyBlbGVtZW50LmxhYmVsIH19XG4gIDwvbGFiZWw+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cIm1hcGEtZHJvcGRvd24tdHJlZV9fZHJvcGRvd25cIlxuICAgICNtZW51T3B0aW9uPVwibWF0TWVudVRyaWdnZXJcIlxuICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJtYXBhLWRyb3Bkb3duLXRyZWVfX2Ryb3Bkb3duLS12YWx1ZVwiPlxuICAgICAge3sgZ2V0U2VsZWN0ZWRJdGVtcygpIH19XG4gICAgPC9kaXY+XG5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJoYXNWYWx1ZSgpXCIgKGNsaWNrKT1cImNsZWFyVmFsdWUoJGV2ZW50KVwiIG1hdFN1ZmZpeFxuICAgICAgPmNsb3NlPC9tYXQtaWNvblxuICAgID5cbiAgICA8bWF0LWljb24+XG4gICAgICB7eyBtZW51T3B0aW9uLm1lbnVPcGVuID8gJ2tleWJvYXJkX2Fycm93X3VwJyA6ICdrZXlib2FyZF9hcnJvd19kb3duJyB9fVxuICAgIDwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XG4gICAgPGRpdiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWFwYS1kcm9wZG93bi10cmVlX19zZWFyY2hcIiAqbmdJZj1cImVsZW1lbnQuc2VhcmNoXCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICNzZWFyY2hJbnB1dFxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImVsZW1lbnQuc2VhcmNoPy5mb3JtQ29udHJvbCFcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImVsZW1lbnQuc2VhcmNoPy5wbGFjZWhvbGRlciB8fCAnJ1wiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgKGtleXVwKT1cImZpbHRlckNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICpuZ0lmPVwiISFlbGVtZW50LnNlYXJjaD8uZm9ybUNvbnRyb2w/LnZhbHVlICYmICFlbGVtZW50LnNlYXJjaD8uZm9ybUNvbnRyb2w/LmRpc2FibGVkXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbGVhclNlYXJjaFZhbHVlKClcIlxuICAgICAgICAgICAgbWF0U3VmZml4XG4gICAgICAgICAgICA+Y2xvc2U8L21hdC1pY29uXG4gICAgICAgICAgPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPC9kaXY+XG4gICAgICA8c2VjdGlvbiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgICAgICA8bGFiZWxcbiAgICAgICAgICAqbmdJZj1cImVsZW1lbnQubXVsdGlwbGUgPT09IHRydWVcIlxuICAgICAgICAgIGNsYXNzPVwibWFwYS1kcm9wZG93bi10cmVlX190b2dnbGUtYWxsIG1hcGEtZHJvcGRvd24tdHJlZV9fY2hlY2tib3hcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgI3RvZ2dsZUFsbENoZWNrYm94XG4gICAgICAgICAgICBjbGFzcz1cImNoZWNrbGlzdC1sZWFmLW5vZGVcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVBbGwoJGV2ZW50KVwiXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJpc0FsbE5vZGVTZWxlY3RlZCgpXCJcbiAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cIiFpc0FsbE5vZGVTZWxlY3RlZCgpICYmIGNoZWNrbGlzdFNlbGVjdGlvbi5oYXNWYWx1ZSgpXCJcbiAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgID5TZWxlY2lvbmFyIHRvZG9zPC9tYXQtY2hlY2tib3hcbiAgICAgICAgICA+XG4gICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgPG1hdC10cmVlIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIiBbdHJlZUNvbnRyb2xdPVwidHJlZUNvbnRyb2xcIj5cbiAgICAgICAgICA8bWF0LXRyZWUtbm9kZVxuICAgICAgICAgICAgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGVcIlxuICAgICAgICAgICAgbWF0VHJlZU5vZGVQYWRkaW5nXG4gICAgICAgICAgICBtYXRUcmVlTm9kZVBhZGRpbmdJbmRlbnQ9XCIxM1wiXG4gICAgICAgICAgICBbY2xhc3MubWFwYS1kcm9wZG93bi10cmVlX19jaGVja2JveC0tY2hlY2tlZF09XCJjaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChub2RlKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibWFwYS1kcm9wZG93bi10cmVlX19jaGVja2JveFwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBkaXNhYmxlZD48L2J1dHRvbj5cbiAgICAgICAgICAgICAgPCEtLSBMRUFGIENIRUNLQk9YIC0tPlxuICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJlbGVtZW50Lm11bHRpcGxlID09PSB0cnVlOyBlbHNlIG5vQ2hlY2tib3hcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tsaXN0LWxlYWYtbm9kZVwiXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSlcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidG9kb0xlYWZJdGVtU2VsZWN0aW9uVG9nZ2xlKG5vZGUpXCJcbiAgICAgICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgPnt7bm9kZS52YWx1ZX19PC9tYXQtY2hlY2tib3hcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vQ2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwic2VsZWN0U2luZ2xlSXRlbShub2RlKVwiPlxuICAgICAgICAgICAgICAgICAge3tub2RlLnZhbHVlfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9tYXQtdHJlZS1ub2RlPlxuXG4gICAgICAgICAgPG1hdC10cmVlLW5vZGVcbiAgICAgICAgICAgICptYXRUcmVlTm9kZURlZj1cImxldCBub2RlOyB3aGVuOiBoYXNDaGlsZFwiXG4gICAgICAgICAgICBtYXRUcmVlTm9kZVBhZGRpbmdcbiAgICAgICAgICAgIG1hdFRyZWVOb2RlUGFkZGluZ0luZGVudD1cIjEzXCJcbiAgICAgICAgICAgIFtjbGFzcy5tYXBhLWRyb3Bkb3duLXRyZWVfX2NoZWNrYm94LS1jaGVja2VkXT1cImNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJtYXBhLWRyb3Bkb3duLXRyZWVfX2NoZWNrYm94XCI+XG4gICAgICAgICAgICAgIDwhLS0gPGJ1dHRvblxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIG1hdFRyZWVOb2RlVG9nZ2xlXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIndG9nZ2xlICcgKyBub2RlLmZpbGVuYW1lXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5cbiAgICAgICAgICAgICAgICAgIHt7dHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSA/ICdleHBhbmRfbW9yZScgOlxuICAgICAgICAgICAgICAgICAgJ2NoZXZyb25fcmlnaHQnfX1cbiAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XG4gICAgICAgICAgICAgIDwhLS0gW2NoZWNrZWRdPVwiZGVzY2VuZGFudHNBbGxTZWxlY3RlZChub2RlKVwiIC0tPlxuICAgICAgICAgICAgICA8IS0tIFBBUkVOVCBDSEVDS0JPWCAtLT5cbiAgICAgICAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZWxlbWVudC5tdWx0aXBsZSA9PT0gdHJ1ZTsgZWxzZSBub0NoZWNrYm94XCJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChub2RlKVwiXG4gICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwiZGVzY2VuZGFudHNQYXJ0aWFsbHlTZWxlY3RlZChub2RlKVwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2RvSXRlbVNlbGVjdGlvblRvZ2dsZShub2RlKVwiXG4gICAgICAgICAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3tub2RlLnZhbHVlfX08L21hdC1jaGVja2JveFxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9DaGVja2JveD5cbiAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJzZWxlY3RTaW5nbGVJdGVtKG5vZGUpXCI+XG4gICAgICAgICAgICAgICAgICB7e25vZGUudmFsdWV9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L21hdC10cmVlLW5vZGU+XG4gICAgICAgIDwvbWF0LXRyZWU+XG4gICAgICA8L3NlY3Rpb24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiZWxlbWVudC5tdWx0aXBsZSA9PT0gdHJ1ZVwiXG4gICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgY2xhc3M9XCJtYXBhLWRyb3Bkb3duLXRyZWVfX2J1dHRvblwiXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgIChjbGljayk9XCJjbGVhckFsbCgpXCJcbiAgICAgID5cbiAgICAgICAgTGltcGFyIHRvZG9zXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtbWVudT5cbjwvZm9ybT5cbiJdfQ==
|
|
@@ -224,11 +224,11 @@ export class MapaDropdownTreeComponent {
|
|
|
224
224
|
getSelectedItems() {
|
|
225
225
|
if (!this.checklistSelection.selected.length)
|
|
226
226
|
return this.element.placeholder || '';
|
|
227
|
-
return this.checklistSelection.selected
|
|
228
|
-
.map((s) => s
|
|
227
|
+
return this.checklistSelection.selected ? this.checklistSelection.selected
|
|
228
|
+
.map((s) => s?.value || s || '')
|
|
229
229
|
.join(',')
|
|
230
230
|
.toString()
|
|
231
|
-
.replace(/\,/g, ', ');
|
|
231
|
+
.replace(/\,/g, ', ') : this.element.placeholder || '';
|
|
232
232
|
}
|
|
233
233
|
filterChanged(event) {
|
|
234
234
|
const filterText = event.target?.value;
|
|
@@ -282,4 +282,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
282
282
|
type: ViewChild,
|
|
283
283
|
args: ['toggleAllCheckbox']
|
|
284
284
|
}] } });
|
|
285
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi10cmVlL3NyYy9kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBhLWxpYnJhcnktdWkvc3JjL2xpYi9jb21wb25lbnRzL2Ryb3Bkb3duLXRyZWUvc3JjL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBRXhELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixxQkFBcUIsR0FFdEIsTUFBTSx3QkFBd0IsQ0FBQztBQUtoQyxPQUFPLEVBQVcsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7OztBQUVqRSxNQUFNLE9BQU8sUUFBUTtJQU1uQixnQkFBZSxDQUFDO0NBQ2pCO0FBRUQsaUVBQWlFO0FBQ2pFLE1BQU0sT0FBTyxZQUFZO0lBTXZCLGdCQUFlLENBQUM7Q0FDakI7QUFRRCxNQUFNLE9BQU8seUJBQXlCO0lBb0NwQyxZQUFvQixTQUE0QjtRQUE1QixjQUFTLEdBQVQsU0FBUyxDQUFtQjtRQTVCaEQsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFFaEMsOEZBQThGO1FBQzlGLGdCQUFXLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUM7UUFF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QXlCO2tCQU5yQyxTQUFTOytCQUNFLG9CQUFvQixpQkFHZixpQkFBaUIsQ0FBQyxJQUFJO3dHQUc1QixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDYSxZQUFZO3NCQUE5QixTQUFTO3VCQUFDLE1BQU07Z0JBQ0UsSUFBSTtzQkFBdEIsU0FBUzt1QkFBQyxNQUFNO2dCQUNVLE9BQU87c0JBQWpDLFNBQVM7dUJBQUMsY0FBYztnQkFDTyxpQkFBaUI7c0JBQWhELFNBQVM7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEcm9wZG93blRyZWUgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2VsZW1lbnRzL2Ryb3Bkb3duLXRyZWUnO1xuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgRmxhdFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xuaW1wb3J0IHtcbiAgTWF0VHJlZUZsYXR0ZW5lcixcbiAgTWF0VHJlZUZsYXREYXRhU291cmNlLFxuICBNYXRUcmVlLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90cmVlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENoZWNrbGlzdERhdGFiYXNlIH0gZnJvbSAnLi9jaGVja2xpc3QtZGF0YWJhc2UnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdENoZWNrYm94LCBNYXRDaGVja2JveENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IE1hdE1lbnUsIE1hdE1lbnVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5cbmV4cG9ydCBjbGFzcyBEYXRhTm9kZSB7XG4gIGtleSE6IHN0cmluZztcbiAgdmFsdWUhOiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogRGF0YU5vZGVbXTtcbiAgaXNMZWFmPzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG59XG5cbi8qKiBGbGF0IHRvLWRvIGl0ZW0gbm9kZSB3aXRoIGV4cGFuZGFibGUgYW5kIGxldmVsIGluZm9ybWF0aW9uICovXG5leHBvcnQgY2xhc3MgRGF0YUZsYXROb2RlIHtcbiAga2V5ITogc3RyaW5nO1xuICB2YWx1ZSE6IHN0cmluZztcbiAgbGV2ZWwhOiBudW1iZXI7XG4gIGV4cGFuZGFibGUhOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFwYS1kcm9wZG93bi10cmVlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTWFwYURyb3Bkb3duVHJlZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCE6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgZWxlbWVudCE6IERyb3Bkb3duVHJlZTtcbiAgQFZpZXdDaGlsZCgnYXV0bycpIGF1dG9jb21wbGV0ZSE6IE1hdEF1dG9jb21wbGV0ZTtcbiAgQFZpZXdDaGlsZCgndHJlZScpIHRyZWUhOiBNYXRUcmVlPERhdGFOb2RlPjtcbiAgQFZpZXdDaGlsZChNYXRNZW51VHJpZ2dlcikgdHJpZ2dlciE6IE1hdE1lbnVUcmlnZ2VyO1xuICBAVmlld0NoaWxkKCd0b2dnbGVBbGxDaGVja2JveCcpIHRvZ2dsZUFsbENoZWNrYm94ITogTWF0Q2hlY2tib3g7XG5cbiAgaXNNZW51RXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogTWFwIGZyb20gZmxhdCBub2RlIHRvIG5lc3RlZCBub2RlLiBUaGlzIGhlbHBzIHVzIGZpbmRpbmcgdGhlIG5lc3RlZCBub2RlIHRvIGJlIG1vZGlmaWVkICovXG4gIGZsYXROb2RlTWFwID0gbmV3IE1hcDxEYXRhRmxhdE5vZGUsIERhdGFOb2RlPigpO1xuXG4gIC8qKiBNYXAgZnJvbSBuZXN0ZWQgbm9kZSB0byBmbGF0dGVuZWQgbm9kZS4gVGhpcyBoZWxwcyB1cyB0byBrZWVwIHRoZSBzYW1lIG9iamVjdCBmb3Igc2VsZWN0aW9uICovXG4gIG5lc3RlZE5vZGVNYXAgPSBuZXcgTWFwPERhdGFOb2RlLCBEYXRhRmxhdE5vZGU+KCk7XG5cbiAgLyoqIEEgc2VsZWN0ZWQgcGFyZW50IG5vZGUgdG8gYmUgaW5zZXJ0ZWQgKi9cbiAgc2VsZWN0ZWRQYXJlbnQ6IERhdGFGbGF0Tm9kZSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBUaGUgbmV3IGl0ZW0ncyBuYW1lICovXG4gIG5ld0l0ZW1OYW1lID0gJyc7XG5cbiAgdHJlZUNvbnRyb2whOiBGbGF0VHJlZUNvbnRyb2w8RGF0YUZsYXROb2RlPjtcblxuICB0cmVlRmxhdHRlbmVyITogTWF0VHJlZUZsYXR0ZW5lcjxEYXRhTm9kZSwgRGF0YUZsYXROb2RlPjtcblxuICBkYXRhU291cmNlITogTWF0VHJlZUZsYXREYXRhU291cmNlPERhdGFOb2RlLCBEYXRhRmxhdE5vZGU+O1xuXG4gIC8qKiBUaGUgc2VsZWN0aW9uIGZvciBjaGVja2xpc3QgKi9cbiAgY2hlY2tsaXN0U2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbk1vZGVsPERhdGFGbGF0Tm9kZT4odHJ1ZSk7XG5cbiAgLy8vIEZpbHRlcmluZ1xuICBteUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgb3B0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgZmlsdGVyZWRPcHRpb25zITogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGF0YWJhc2U6IENoZWNrbGlzdERhdGFiYXNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2RhdGFiYXNlLmluaXRpYWxpemUodGhpcy5lbGVtZW50LnRyZWUpO1xuICAgIHRoaXMudHJlZUZsYXR0ZW5lciA9IG5ldyBNYXRUcmVlRmxhdHRlbmVyKFxuICAgICAgdGhpcy50cmFuc2Zvcm1lcixcbiAgICAgIHRoaXMuZ2V0TGV2ZWwsXG4gICAgICB0aGlzLmlzRXhwYW5kYWJsZSxcbiAgICAgIHRoaXMuZ2V0Q2hpbGRyZW5cbiAgICApO1xuICAgIHRoaXMudHJlZUNvbnRyb2wgPSBuZXcgRmxhdFRyZWVDb250cm9sPERhdGFGbGF0Tm9kZT4oXG4gICAgICB0aGlzLmdldExldmVsLFxuICAgICAgdGhpcy5pc0V4cGFuZGFibGVcbiAgICApO1xuICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUcmVlRmxhdERhdGFTb3VyY2UoXG4gICAgICB0aGlzLnRyZWVDb250cm9sLFxuICAgICAgdGhpcy50cmVlRmxhdHRlbmVyXG4gICAgKTtcblxuICAgIHRoaXMuX2RhdGFiYXNlLmRhdGFDaGFuZ2Uuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IGRhdGE7XG4gICAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZEFsbCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uY2hhbmdlZC5zdWJzY3JpYmUoKHNlbGVjdGlvbikgPT4ge1xuICAgICAgaWYgKHNlbGVjdGlvbi5zb3VyY2Uuc2VsZWN0ZWQubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5lbGVtZW50LmtleSk/LnBhdGNoVmFsdWUoXG4gICAgICAgICAgdGhpcy5lbGVtZW50Lm11bHRpcGxlXG4gICAgICAgICAgICA/IHNlbGVjdGlvbi5zb3VyY2Uuc2VsZWN0ZWQubWFwKChjaGVja2VkKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IGNoZWNrZWQudmFsdWUsIGtleTogY2hlY2tlZC5rZXkgfTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBzZWxlY3Rpb24uc291cmNlLnNlbGVjdGVkWzBdLnZhbHVlLFxuICAgICAgICAgICAgICAgIGtleTogc2VsZWN0aW9uLnNvdXJjZS5zZWxlY3RlZFswXS5rZXksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgeyBlbWl0RXZlbnQ6IGZhbHNlIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLmVsZW1lbnQua2V5KT8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBpZiAodGhpcy5lbGVtZW50Lm11bHRpcGxlKSB7XG4gICAgICAgICAgY29uc3QgYWxsVmFsdWVzS2V5cyA9IHRoaXMuZWxlbWVudC5tdWx0aXBsZVxuICAgICAgICAgICAgPyB2YWx1ZS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5rZXkpXG4gICAgICAgICAgICA6IFt2YWx1ZS5rZXldO1xuXG4gICAgICAgICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMubWFwKChub2RlKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWxsVmFsdWVzS2V5cy5pbmNsdWRlcyhub2RlLmtleSkpIHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuZWxlbWVudC5tdWx0aXBsZSAmJiBub2RlLmxldmVsID09PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2RvSXRlbVNlbGVjdGlvblRvZ2dsZShub2RlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvZG9MZWFmSXRlbVNlbGVjdGlvblRvZ2dsZShub2RlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2VsZWN0U2luZ2xlSXRlbShcbiAgICAgICAgICAgIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzPy5maW5kKFxuICAgICAgICAgICAgICAobm9kZSkgPT4gbm9kZS5rZXkgPT09IHZhbHVlLmtleVxuICAgICAgICAgICAgKSBhcyBEYXRhRmxhdE5vZGVcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmRBbGwoKTtcbiAgfVxuXG4gIHRvZ2dsZUFsbChldmVudDogTWF0Q2hlY2tib3hDaGFuZ2UpIHtcbiAgICBjb25zdCBjaGVja2VkID0gZXZlbnQuY2hlY2tlZDtcblxuICAgIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLm1hcCgobm9kZSkgPT4ge1xuICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uZGVzZWxlY3Qobm9kZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3Qobm9kZSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnRvZ2dsZShub2RlKTtcbiAgICAgIGNvbnN0IGRlc2NlbmRhbnRzID0gdGhpcy50cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKTtcbiAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdCguLi5kZXNjZW5kYW50cyk7XG5cbiAgICAgIGlmIChjaGVja2VkKSB7XG4gICAgICAgIGRlc2NlbmRhbnRzLmV2ZXJ5KChjaGlsZCkgPT4gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uZGVzZWxlY3QoY2hpbGQpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlc2NlbmRhbnRzLmV2ZXJ5KChjaGlsZCkgPT4gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0KGNoaWxkKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjbGVhckFsbCgpIHtcbiAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5jbGVhcigpO1xuICAgIGlmICh0aGlzLmVsZW1lbnQubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLmVsZW1lbnQua2V5KT8ucGF0Y2hWYWx1ZShbXSk7XG4gICAgICB0aGlzLnRvZ2dsZUFsbENoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuZWxlbWVudC5rZXkpPy5wYXRjaFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIG9uUGFuZWxDaGFuZ2UoKSB7XG4gICAgdGhpcy5pc01lbnVFeHBhbmRlZCA9ICF0aGlzLmlzTWVudUV4cGFuZGVkO1xuICB9XG5cbiAgZmlsdGVyKGFycmF5OiBhbnlbXSwgdGV4dDogc3RyaW5nKSB7XG4gICAgY29uc3QgZ2V0Tm9kZXMgPSAoXG4gICAgICByZXN1bHQ6IGFueVtdLFxuICAgICAgb2JqZWN0OiB7IG5hbWU6IHN0cmluZzsgY2hpbGRyZW46IGFueVtdIH1cbiAgICApID0+IHtcbiAgICAgIGlmIChvYmplY3QubmFtZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXh0KSkge1xuICAgICAgICByZXN1bHQucHVzaChvYmplY3QpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2JqZWN0LmNoaWxkcmVuKSkge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IG9iamVjdC5jaGlsZHJlbi5yZWR1Y2UoZ2V0Tm9kZXMsIFtdKTtcbiAgICAgICAgaWYgKGNoaWxkcmVuLmxlbmd0aCkgcmVzdWx0LnB1c2goeyAuLi5vYmplY3QsIGNoaWxkcmVuIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuXG4gICAgdGhpcy5lbGVtZW50LnRyZWUgPSBhcnJheS5yZWR1Y2UoZ2V0Tm9kZXMsIFtdKTtcbiAgfVxuXG4gIGdldExldmVsID0gKG5vZGU6IERhdGFGbGF0Tm9kZSkgPT4gbm9kZS5sZXZlbDtcblxuICBpc0V4cGFuZGFibGUgPSAobm9kZTogRGF0YUZsYXROb2RlKSA9PiBub2RlLmV4cGFuZGFibGU7XG5cbiAgZ2V0Q2hpbGRyZW4gPSAobm9kZTogRGF0YU5vZGUpOiBEYXRhTm9kZVtdID0+IG5vZGUuY2hpbGRyZW4hO1xuXG4gIGhhc0NoaWxkID0gKF86IG51bWJlciwgX25vZGVEYXRhOiBEYXRhRmxhdE5vZGUpID0+IF9ub2RlRGF0YS5leHBhbmRhYmxlO1xuXG4gIGhhc05vQ29udGVudCA9IChfOiBudW1iZXIsIF9ub2RlRGF0YTogRGF0YUZsYXROb2RlKSA9PiBfbm9kZURhdGEudmFsdWUgPT09ICcnO1xuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm1lciB0byBjb252ZXJ0IG5lc3RlZCBub2RlIHRvIGZsYXQgbm9kZS4gUmVjb3JkIHRoZSBub2RlcyBpbiBtYXBzIGZvciBsYXRlciB1c2UuXG4gICAqL1xuICB0cmFuc2Zvcm1lciA9IChub2RlOiBEYXRhTm9kZSwgbGV2ZWw6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nTm9kZSA9IHRoaXMubmVzdGVkTm9kZU1hcC5nZXQobm9kZSk7XG4gICAgY29uc3QgZmxhdE5vZGUgPVxuICAgICAgZXhpc3RpbmdOb2RlICYmIGV4aXN0aW5nTm9kZS52YWx1ZSA9PT0gbm9kZS52YWx1ZVxuICAgICAgICA/IGV4aXN0aW5nTm9kZVxuICAgICAgICA6IG5ldyBEYXRhRmxhdE5vZGUoKTtcbiAgICBmbGF0Tm9kZS5rZXkgPSBub2RlLmtleTtcbiAgICBmbGF0Tm9kZS52YWx1ZSA9IG5vZGUudmFsdWU7XG4gICAgZmxhdE5vZGUubGV2ZWwgPSBsZXZlbDtcbiAgICBmbGF0Tm9kZS5leHBhbmRhYmxlID0gISFub2RlLmNoaWxkcmVuO1xuICAgIHRoaXMuZmxhdE5vZGVNYXAuc2V0KGZsYXROb2RlLCBub2RlKTtcbiAgICB0aGlzLm5lc3RlZE5vZGVNYXAuc2V0KG5vZGUsIGZsYXROb2RlKTtcbiAgICByZXR1cm4gZmxhdE5vZGU7XG4gIH07XG5cbiAgLyoqIFdoZXRoZXIgYWxsIHRoZSBkZXNjZW5kYW50cyBvZiB0aGUgbm9kZSBhcmUgc2VsZWN0ZWQuICovXG4gIGRlc2NlbmRhbnRzQWxsU2VsZWN0ZWQobm9kZTogRGF0YUZsYXROb2RlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZGVzY2VuZGFudHMgPSB0aGlzLnRyZWVDb250cm9sLmdldERlc2NlbmRhbnRzKG5vZGUpO1xuICAgIGNvbnN0IGRlc2NBbGxTZWxlY3RlZCA9IGRlc2NlbmRhbnRzLmV2ZXJ5KChjaGlsZCkgPT5cbiAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQoY2hpbGQpXG4gICAgKTtcbiAgICByZXR1cm4gZGVzY0FsbFNlbGVjdGVkO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgcGFydCBvZiB0aGUgZGVzY2VuZGFudHMgYXJlIHNlbGVjdGVkICovXG4gIGRlc2NlbmRhbnRzUGFydGlhbGx5U2VsZWN0ZWQobm9kZTogRGF0YUZsYXROb2RlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZGVzY2VuZGFudHMgPSB0aGlzLnRyZWVDb250cm9sLmdldERlc2NlbmRhbnRzKG5vZGUpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGRlc2NlbmRhbnRzLnNvbWUoKGNoaWxkKSA9PlxuICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChjaGlsZClcbiAgICApO1xuICAgIHJldHVybiByZXN1bHQgJiYgIXRoaXMuZGVzY2VuZGFudHNBbGxTZWxlY3RlZChub2RlKTtcbiAgfVxuXG4gIC8qKiBUb2dnbGUgdGhlIHRvLWRvIGl0ZW0gc2VsZWN0aW9uLiBTZWxlY3QvZGVzZWxlY3QgYWxsIHRoZSBkZXNjZW5kYW50cyBub2RlICovXG4gIHRvZG9JdGVtU2VsZWN0aW9uVG9nZ2xlKG5vZGU6IERhdGFGbGF0Tm9kZSk6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnRvZ2dsZShub2RlKTtcblxuICAgIGlmICh0aGlzLmVsZW1lbnQuY2hlY2tDaGlsZHJlbikge1xuICAgICAgY29uc3QgZGVzY2VuZGFudHMgPSB0aGlzLnRyZWVDb250cm9sLmdldERlc2NlbmRhbnRzKG5vZGUpO1xuICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChub2RlKVxuICAgICAgICA/IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdCguLi5kZXNjZW5kYW50cylcbiAgICAgICAgOiB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5kZXNlbGVjdCguLi5kZXNjZW5kYW50cyk7XG5cbiAgICAgIC8vIEZvcmNlIHVwZGF0ZSBmb3IgdGhlIHBhcmVudFxuICAgICAgZGVzY2VuZGFudHMuZXZlcnkoKGNoaWxkKSA9PiB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKGNoaWxkKSk7XG4gICAgICB0aGlzLmNoZWNrQWxsUGFyZW50c1NlbGVjdGlvbihub2RlKTtcbiAgICB9XG4gIH1cblxuICAvKiogVG9nZ2xlIGEgbGVhZiB0by1kbyBpdGVtIHNlbGVjdGlvbi4gQ2hlY2sgYWxsIHRoZSBwYXJlbnRzIHRvIHNlZSBpZiB0aGV5IGNoYW5nZWQgKi9cbiAgdG9kb0xlYWZJdGVtU2VsZWN0aW9uVG9nZ2xlKG5vZGU6IERhdGFGbGF0Tm9kZSk6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnRvZ2dsZShub2RlKTtcblxuICAgIHRoaXMuY2hlY2tBbGxQYXJlbnRzU2VsZWN0aW9uKG5vZGUpO1xuICB9XG5cbiAgLyogQ2hlY2tzIGFsbCB0aGUgcGFyZW50cyB3aGVuIGEgbGVhZiBub2RlIGlzIHNlbGVjdGVkL3Vuc2VsZWN0ZWQgKi9cbiAgY2hlY2tBbGxQYXJlbnRzU2VsZWN0aW9uKG5vZGU6IERhdGFGbGF0Tm9kZSk6IHZvaWQge1xuICAgIGxldCBwYXJlbnQ6IERhdGFGbGF0Tm9kZSB8IG51bGwgPSB0aGlzLmdldFBhcmVudE5vZGUobm9kZSk7XG4gICAgd2hpbGUgKHBhcmVudCkge1xuICAgICAgdGhpcy5jaGVja1Jvb3ROb2RlU2VsZWN0aW9uKHBhcmVudCk7XG4gICAgICBwYXJlbnQgPSB0aGlzLmdldFBhcmVudE5vZGUocGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2hlY2sgcm9vdCBub2RlIGNoZWNrZWQgc3RhdGUgYW5kIGNoYW5nZSBpdCBhY2NvcmRpbmdseSAqL1xuICBjaGVja1Jvb3ROb2RlU2VsZWN0aW9uKG5vZGU6IERhdGFGbGF0Tm9kZSk6IHZvaWQge1xuICAgIGNvbnN0IG5vZGVTZWxlY3RlZCA9IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSk7XG4gICAgY29uc3QgZGVzY2VuZGFudHMgPSB0aGlzLnRyZWVDb250cm9sLmdldERlc2NlbmRhbnRzKG5vZGUpO1xuICAgIGNvbnN0IGRlc2NBbGxTZWxlY3RlZCA9IGRlc2NlbmRhbnRzLmV2ZXJ5KChjaGlsZCkgPT5cbiAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQoY2hpbGQpXG4gICAgKTtcblxuICAgIGlmIChub2RlU2VsZWN0ZWQgJiYgIWRlc2NBbGxTZWxlY3RlZCkge1xuICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uZGVzZWxlY3Qobm9kZSk7XG4gICAgfSBlbHNlIGlmICghbm9kZVNlbGVjdGVkICYmIGRlc2NBbGxTZWxlY3RlZCkge1xuICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0KG5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qIEdldCB0aGUgcGFyZW50IG5vZGUgb2YgYSBub2RlICovXG4gIGdldFBhcmVudE5vZGUobm9kZTogRGF0YUZsYXROb2RlKTogRGF0YUZsYXROb2RlIHwgbnVsbCB7XG4gICAgY29uc3QgY3VycmVudExldmVsID0gdGhpcy5nZXRMZXZlbChub2RlKTtcblxuICAgIGlmIChjdXJyZW50TGV2ZWwgPCAxKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFydEluZGV4ID0gdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuaW5kZXhPZihub2RlKSAtIDE7XG5cbiAgICBmb3IgKGxldCBpID0gc3RhcnRJbmRleDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IGN1cnJlbnROb2RlID0gdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV07XG5cbiAgICAgIGlmICh0aGlzLmdldExldmVsKGN1cnJlbnROb2RlKSA8IGN1cnJlbnRMZXZlbCkge1xuICAgICAgICByZXR1cm4gY3VycmVudE5vZGU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZ2V0U2VsZWN0ZWRJdGVtcygpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoKVxuICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5wbGFjZWhvbGRlciB8fCAnJztcbiAgICByZXR1cm4gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWRcbiAgICAgIC5tYXAoKHMpID0+IHMudmFsdWUpXG4gICAgICAuam9pbignLCcpXG4gICAgICAudG9TdHJpbmcoKVxuICAgICAgLnJlcGxhY2UoL1xcLC9nLCAnLCAnKTtcbiAgfVxuXG4gIGZpbHRlckNoYW5nZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGZpbHRlclRleHQgPSBldmVudC50YXJnZXQ/LnZhbHVlO1xuXG4gICAgLy8gQ2hlY2tsaXN0RGF0YWJhc2UuZmlsdGVyIG1ldGhvZCB3aGljaCBhY3R1YWxseSBmaWx0ZXJzIHRoZSB0cmVlIGFuZCBnaXZlcyBiYWNrIGEgdHJlZSBzdHJ1Y3R1cmVcbiAgICB0aGlzLl9kYXRhYmFzZS5maWx0ZXIoZmlsdGVyVGV4dCk7XG4gIH1cblxuICBjbGVhclNlYXJjaFZhbHVlKCk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudC5zZWFyY2g/LmZvcm1Db250cm9sPy5zZXRWYWx1ZSgnJyk7XG4gICAgdGhpcy5fZGF0YWJhc2UuZmlsdGVyKCcnKTtcbiAgfVxuXG4gIHNlbGVjdFNpbmdsZUl0ZW0obm9kZTogRGF0YUZsYXROb2RlKTogdm9pZCB7XG4gICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uY2xlYXIoKTtcbiAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3Qobm9kZSk7XG4gICAgdGhpcy5mb3JtR3JvdXBcbiAgICAgIC5nZXQodGhpcy5lbGVtZW50LmtleSlcbiAgICAgID8ucGF0Y2hWYWx1ZSh7IHZhbHVlOiBub2RlLnZhbHVlLCBrZXk6IG5vZGUua2V5IH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB0aGlzLnRyaWdnZXIuY2xvc2VNZW51KCk7XG4gIH1cblxuICBoYXNWYWx1ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5lbGVtZW50LmtleSk/LnZhbHVlO1xuICB9XG5cbiAgY2xlYXJWYWx1ZShldmVudDogYW55KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuZWxlbWVudC5rZXkpPy5wYXRjaFZhbHVlKG51bGwpO1xuICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmNsZWFyKCk7XG4gIH1cblxuICBpc0FsbE5vZGVTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEoXG4gICAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5sZW5ndGggPT09XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGhcbiAgICApO1xuICB9XG59XG4iLCI8Zm9ybVxuICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gICpuZ0lmPVwiZm9ybUdyb3VwICYmIGVsZW1lbnRcIlxuICBjbGFzcz1cIm1hcGEtZHJvcGRvd24tdHJlZVwiXG4+XG4gIDxsYWJlbCAqbmdJZj1cImVsZW1lbnQubGFiZWxcIiBjbGFzcz1cIm1hcGEtZHJvcGRvd24tdHJlZV9fbGFiZWxcIj5cbiAgICB7eyBlbGVtZW50LmxhYmVsIH19XG4gIDwvbGFiZWw+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cIm1hcGEtZHJvcGRvd24tdHJlZV9fZHJvcGRvd25cIlxuICAgICNtZW51T3B0aW9uPVwibWF0TWVudVRyaWdnZXJcIlxuICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJtYXBhLWRyb3Bkb3duLXRyZWVfX2Ryb3Bkb3duLS12YWx1ZVwiPlxuICAgICAge3sgZ2V0U2VsZWN0ZWRJdGVtcygpIH19XG4gICAgPC9kaXY+XG5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJoYXNWYWx1ZSgpXCIgKGNsaWNrKT1cImNsZWFyVmFsdWUoJGV2ZW50KVwiIG1hdFN1ZmZpeFxuICAgICAgPmNsb3NlPC9tYXQtaWNvblxuICAgID5cbiAgICA8bWF0LWljb24+XG4gICAgICB7eyBtZW51T3B0aW9uLm1lbnVPcGVuID8gJ2tleWJvYXJkX2Fycm93X3VwJyA6ICdrZXlib2FyZF9hcnJvd19kb3duJyB9fVxuICAgIDwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XG4gICAgPGRpdiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWFwYS1kcm9wZG93bi10cmVlX19zZWFyY2hcIiAqbmdJZj1cImVsZW1lbnQuc2VhcmNoXCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICNzZWFyY2hJbnB1dFxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImVsZW1lbnQuc2VhcmNoPy5mb3JtQ29udHJvbCFcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImVsZW1lbnQuc2VhcmNoPy5wbGFjZWhvbGRlciB8fCAnJ1wiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgKGtleXVwKT1cImZpbHRlckNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICpuZ0lmPVwiISFlbGVtZW50LnNlYXJjaD8uZm9ybUNvbnRyb2w/LnZhbHVlICYmICFlbGVtZW50LnNlYXJjaD8uZm9ybUNvbnRyb2w/LmRpc2FibGVkXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbGVhclNlYXJjaFZhbHVlKClcIlxuICAgICAgICAgICAgbWF0U3VmZml4XG4gICAgICAgICAgICA+Y2xvc2U8L21hdC1pY29uXG4gICAgICAgICAgPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPC9kaXY+XG4gICAgICA8c2VjdGlvbiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgICAgICA8bGFiZWxcbiAgICAgICAgICAqbmdJZj1cImVsZW1lbnQubXVsdGlwbGUgPT09IHRydWVcIlxuICAgICAgICAgIGNsYXNzPVwibWFwYS1kcm9wZG93bi10cmVlX190b2dnbGUtYWxsIG1hcGEtZHJvcGRvd24tdHJlZV9fY2hlY2tib3hcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgI3RvZ2dsZUFsbENoZWNrYm94XG4gICAgICAgICAgICBjbGFzcz1cImNoZWNrbGlzdC1sZWFmLW5vZGVcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVBbGwoJGV2ZW50KVwiXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJpc0FsbE5vZGVTZWxlY3RlZCgpXCJcbiAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cIiFpc0FsbE5vZGVTZWxlY3RlZCgpICYmIGNoZWNrbGlzdFNlbGVjdGlvbi5oYXNWYWx1ZSgpXCJcbiAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgID5TZWxlY2lvbmFyIHRvZG9zPC9tYXQtY2hlY2tib3hcbiAgICAgICAgICA+XG4gICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgPG1hdC10cmVlIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIiBbdHJlZUNvbnRyb2xdPVwidHJlZUNvbnRyb2xcIj5cbiAgICAgICAgICA8bWF0LXRyZWUtbm9kZVxuICAgICAgICAgICAgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGVcIlxuICAgICAgICAgICAgbWF0VHJlZU5vZGVQYWRkaW5nXG4gICAgICAgICAgICBtYXRUcmVlTm9kZVBhZGRpbmdJbmRlbnQ9XCIxM1wiXG4gICAgICAgICAgICBbY2xhc3MubWFwYS1kcm9wZG93bi10cmVlX19jaGVja2JveC0tY2hlY2tlZF09XCJjaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChub2RlKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibWFwYS1kcm9wZG93bi10cmVlX19jaGVja2JveFwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBkaXNhYmxlZD48L2J1dHRvbj5cbiAgICAgICAgICAgICAgPCEtLSBMRUFGIENIRUNLQk9YIC0tPlxuICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJlbGVtZW50Lm11bHRpcGxlID09PSB0cnVlOyBlbHNlIG5vQ2hlY2tib3hcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tsaXN0LWxlYWYtbm9kZVwiXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSlcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidG9kb0xlYWZJdGVtU2VsZWN0aW9uVG9nZ2xlKG5vZGUpXCJcbiAgICAgICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgPnt7bm9kZS52YWx1ZX19PC9tYXQtY2hlY2tib3hcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vQ2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwic2VsZWN0U2luZ2xlSXRlbShub2RlKVwiPlxuICAgICAgICAgICAgICAgICAge3tub2RlLnZhbHVlfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9tYXQtdHJlZS1ub2RlPlxuXG4gICAgICAgICAgPG1hdC10cmVlLW5vZGVcbiAgICAgICAgICAgICptYXRUcmVlTm9kZURlZj1cImxldCBub2RlOyB3aGVuOiBoYXNDaGlsZFwiXG4gICAgICAgICAgICBtYXRUcmVlTm9kZVBhZGRpbmdcbiAgICAgICAgICAgIG1hdFRyZWVOb2RlUGFkZGluZ0luZGVudD1cIjEzXCJcbiAgICAgICAgICAgIFtjbGFzcy5tYXBhLWRyb3Bkb3duLXRyZWVfX2NoZWNrYm94LS1jaGVja2VkXT1cImNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJtYXBhLWRyb3Bkb3duLXRyZWVfX2NoZWNrYm94XCI+XG4gICAgICAgICAgICAgIDwhLS0gPGJ1dHRvblxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIG1hdFRyZWVOb2RlVG9nZ2xlXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIndG9nZ2xlICcgKyBub2RlLmZpbGVuYW1lXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5cbiAgICAgICAgICAgICAgICAgIHt7dHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSA/ICdleHBhbmRfbW9yZScgOlxuICAgICAgICAgICAgICAgICAgJ2NoZXZyb25fcmlnaHQnfX1cbiAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XG4gICAgICAgICAgICAgIDwhLS0gW2NoZWNrZWRdPVwiZGVzY2VuZGFudHNBbGxTZWxlY3RlZChub2RlKVwiIC0tPlxuICAgICAgICAgICAgICA8IS0tIFBBUkVOVCBDSEVDS0JPWCAtLT5cbiAgICAgICAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZWxlbWVudC5tdWx0aXBsZSA9PT0gdHJ1ZTsgZWxzZSBub0NoZWNrYm94XCJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChub2RlKVwiXG4gICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwiZGVzY2VuZGFudHNQYXJ0aWFsbHlTZWxlY3RlZChub2RlKVwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2RvSXRlbVNlbGVjdGlvblRvZ2dsZShub2RlKVwiXG4gICAgICAgICAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3tub2RlLnZhbHVlfX08L21hdC1jaGVja2JveFxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9DaGVja2JveD5cbiAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJzZWxlY3RTaW5nbGVJdGVtKG5vZGUpXCI+XG4gICAgICAgICAgICAgICAgICB7e25vZGUudmFsdWV9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L21hdC10cmVlLW5vZGU+XG4gICAgICAgIDwvbWF0LXRyZWU+XG4gICAgICA8L3NlY3Rpb24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiZWxlbWVudC5tdWx0aXBsZSA9PT0gdHJ1ZVwiXG4gICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgY2xhc3M9XCJtYXBhLWRyb3Bkb3duLXRyZWVfX2J1dHRvblwiXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgIChjbGljayk9XCJjbGVhckFsbCgpXCJcbiAgICAgID5cbiAgICAgICAgTGltcGFyIHRvZG9zXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtbWVudT5cbjwvZm9ybT5cbiJdfQ==
|
|
285
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi10cmVlL3NyYy9kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBhLWxpYnJhcnktdWkvc3JjL2xpYi9jb21wb25lbnRzL2Ryb3Bkb3duLXRyZWUvc3JjL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBRXhELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixxQkFBcUIsR0FFdEIsTUFBTSx3QkFBd0IsQ0FBQztBQUtoQyxPQUFPLEVBQVcsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7OztBQUVqRSxNQUFNLE9BQU8sUUFBUTtJQU1uQixnQkFBZSxDQUFDO0NBQ2pCO0FBRUQsaUVBQWlFO0FBQ2pFLE1BQU0sT0FBTyxZQUFZO0lBTXZCLGdCQUFlLENBQUM7Q0FDakI7QUFRRCxNQUFNLE9BQU8seUJBQXlCO0lBb0NwQyxZQUFvQixTQUE0QjtRQUE1QixjQUFTLEdBQVQsU0FBUyxDQUFtQjtRQTVCaEQsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFFaEMsOEZBQThGO1FBQzlGLGdCQUFXLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUM7UUFF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QWtCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FDeEMsQ0FBQztJQUNKLENBQUM7O3VIQWxVVSx5QkFBeUI7MkdBQXpCLHlCQUF5QixpVUFLekIsY0FBYyx5SkNyRDNCLG8xSkF1SUE7NEZEdkZhLHlCQUF5QjtrQkFOckMsU0FBUzsrQkFDRSxvQkFBb0IsaUJBR2YsaUJBQWlCLENBQUMsSUFBSTt3R0FHNUIsU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ2EsWUFBWTtzQkFBOUIsU0FBUzt1QkFBQyxNQUFNO2dCQUNFLElBQUk7c0JBQXRCLFNBQVM7dUJBQUMsTUFBTTtnQkFDVSxPQUFPO3NCQUFqQyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ08saUJBQWlCO3NCQUFoRCxTQUFTO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRHJvcGRvd25UcmVlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9lbGVtZW50cy9kcm9wZG93bi10cmVlJztcbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEZsYXRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcbmltcG9ydCB7XG4gIE1hdFRyZWVGbGF0dGVuZXIsXG4gIE1hdFRyZWVGbGF0RGF0YVNvdXJjZSxcbiAgTWF0VHJlZSxcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdHJlZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDaGVja2xpc3REYXRhYmFzZSB9IGZyb20gJy4vY2hlY2tsaXN0LWRhdGFiYXNlJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNYXRDaGVja2JveCwgTWF0Q2hlY2tib3hDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRNZW51LCBNYXRNZW51VHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuXG5leHBvcnQgY2xhc3MgRGF0YU5vZGUge1xuICBrZXkhOiBzdHJpbmc7XG4gIHZhbHVlITogc3RyaW5nO1xuICBjaGlsZHJlbj86IERhdGFOb2RlW107XG4gIGlzTGVhZj86IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoKSB7fVxufVxuXG4vKiogRmxhdCB0by1kbyBpdGVtIG5vZGUgd2l0aCBleHBhbmRhYmxlIGFuZCBsZXZlbCBpbmZvcm1hdGlvbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFGbGF0Tm9kZSB7XG4gIGtleSE6IHN0cmluZztcbiAgdmFsdWUhOiBzdHJpbmc7XG4gIGxldmVsITogbnVtYmVyO1xuICBleHBhbmRhYmxlITogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hcGEtZHJvcGRvd24tdHJlZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIE1hcGFEcm9wZG93blRyZWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBmb3JtR3JvdXAhOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGVsZW1lbnQhOiBEcm9wZG93blRyZWU7XG4gIEBWaWV3Q2hpbGQoJ2F1dG8nKSBhdXRvY29tcGxldGUhOiBNYXRBdXRvY29tcGxldGU7XG4gIEBWaWV3Q2hpbGQoJ3RyZWUnKSB0cmVlITogTWF0VHJlZTxEYXRhTm9kZT47XG4gIEBWaWV3Q2hpbGQoTWF0TWVudVRyaWdnZXIpIHRyaWdnZXIhOiBNYXRNZW51VHJpZ2dlcjtcbiAgQFZpZXdDaGlsZCgndG9nZ2xlQWxsQ2hlY2tib3gnKSB0b2dnbGVBbGxDaGVja2JveCE6IE1hdENoZWNrYm94O1xuXG4gIGlzTWVudUV4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIE1hcCBmcm9tIGZsYXQgbm9kZSB0byBuZXN0ZWQgbm9kZS4gVGhpcyBoZWxwcyB1cyBmaW5kaW5nIHRoZSBuZXN0ZWQgbm9kZSB0byBiZSBtb2RpZmllZCAqL1xuICBmbGF0Tm9kZU1hcCA9IG5ldyBNYXA8RGF0YUZsYXROb2RlLCBEYXRhTm9kZT4oKTtcblxuICAvKiogTWFwIGZyb20gbmVzdGVkIG5vZGUgdG8gZmxhdHRlbmVkIG5vZGUuIFRoaXMgaGVscHMgdXMgdG8ga2VlcCB0aGUgc2FtZSBvYmplY3QgZm9yIHNlbGVjdGlvbiAqL1xuICBuZXN0ZWROb2RlTWFwID0gbmV3IE1hcDxEYXRhTm9kZSwgRGF0YUZsYXROb2RlPigpO1xuXG4gIC8qKiBBIHNlbGVjdGVkIHBhcmVudCBub2RlIHRvIGJlIGluc2VydGVkICovXG4gIHNlbGVjdGVkUGFyZW50OiBEYXRhRmxhdE5vZGUgfCBudWxsID0gbnVsbDtcblxuICAvKiogVGhlIG5ldyBpdGVtJ3MgbmFtZSAqL1xuICBuZXdJdGVtTmFtZSA9ICcnO1xuXG4gIHRyZWVDb250cm9sITogRmxhdFRyZWVDb250cm9sPERhdGFGbGF0Tm9kZT47XG5cbiAgdHJlZUZsYXR0ZW5lciE6IE1hdFRyZWVGbGF0dGVuZXI8RGF0YU5vZGUsIERhdGFGbGF0Tm9kZT47XG5cbiAgZGF0YVNvdXJjZSE6IE1hdFRyZWVGbGF0RGF0YVNvdXJjZTxEYXRhTm9kZSwgRGF0YUZsYXROb2RlPjtcblxuICAvKiogVGhlIHNlbGVjdGlvbiBmb3IgY2hlY2tsaXN0ICovXG4gIGNoZWNrbGlzdFNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxEYXRhRmxhdE5vZGU+KHRydWUpO1xuXG4gIC8vLyBGaWx0ZXJpbmdcbiAgbXlDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gIG9wdGlvbnM6IHN0cmluZ1tdID0gW107XG4gIGZpbHRlcmVkT3B0aW9ucyE6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2RhdGFiYXNlOiBDaGVja2xpc3REYXRhYmFzZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9kYXRhYmFzZS5pbml0aWFsaXplKHRoaXMuZWxlbWVudC50cmVlKTtcbiAgICB0aGlzLnRyZWVGbGF0dGVuZXIgPSBuZXcgTWF0VHJlZUZsYXR0ZW5lcihcbiAgICAgIHRoaXMudHJhbnNmb3JtZXIsXG4gICAgICB0aGlzLmdldExldmVsLFxuICAgICAgdGhpcy5pc0V4cGFuZGFibGUsXG4gICAgICB0aGlzLmdldENoaWxkcmVuXG4gICAgKTtcbiAgICB0aGlzLnRyZWVDb250cm9sID0gbmV3IEZsYXRUcmVlQ29udHJvbDxEYXRhRmxhdE5vZGU+KFxuICAgICAgdGhpcy5nZXRMZXZlbCxcbiAgICAgIHRoaXMuaXNFeHBhbmRhYmxlXG4gICAgKTtcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VHJlZUZsYXREYXRhU291cmNlKFxuICAgICAgdGhpcy50cmVlQ29udHJvbCxcbiAgICAgIHRoaXMudHJlZUZsYXR0ZW5lclxuICAgICk7XG5cbiAgICB0aGlzLl9kYXRhYmFzZS5kYXRhQ2hhbmdlLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBkYXRhO1xuICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmRBbGwoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmNoYW5nZWQuc3Vic2NyaWJlKChzZWxlY3Rpb24pID0+IHtcbiAgICAgIGlmIChzZWxlY3Rpb24uc291cmNlLnNlbGVjdGVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuZWxlbWVudC5rZXkpPy5wYXRjaFZhbHVlKFxuICAgICAgICAgIHRoaXMuZWxlbWVudC5tdWx0aXBsZVxuICAgICAgICAgICAgPyBzZWxlY3Rpb24uc291cmNlLnNlbGVjdGVkLm1hcCgoY2hlY2tlZCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBjaGVja2VkLnZhbHVlLCBrZXk6IGNoZWNrZWQua2V5IH07XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogc2VsZWN0aW9uLnNvdXJjZS5zZWxlY3RlZFswXS52YWx1ZSxcbiAgICAgICAgICAgICAgICBrZXk6IHNlbGVjdGlvbi5zb3VyY2Uuc2VsZWN0ZWRbMF0ua2V5LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgIHsgZW1pdEV2ZW50OiBmYWxzZSB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5lbGVtZW50LmtleSk/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudC5tdWx0aXBsZSkge1xuICAgICAgICAgIGNvbnN0IGFsbFZhbHVlc0tleXMgPSB0aGlzLmVsZW1lbnQubXVsdGlwbGVcbiAgICAgICAgICAgID8gdmFsdWUubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0ua2V5KVxuICAgICAgICAgICAgOiBbdmFsdWUua2V5XTtcblxuICAgICAgICAgIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLm1hcCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGFsbFZhbHVlc0tleXMuaW5jbHVkZXMobm9kZS5rZXkpKSB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLmVsZW1lbnQubXVsdGlwbGUgJiYgbm9kZS5sZXZlbCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMudG9kb0l0ZW1TZWxlY3Rpb25Ub2dnbGUobm9kZSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2RvTGVhZkl0ZW1TZWxlY3Rpb25Ub2dnbGUobm9kZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdFNpbmdsZUl0ZW0oXG4gICAgICAgICAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcz8uZmluZChcbiAgICAgICAgICAgICAgKG5vZGUpID0+IG5vZGUua2V5ID09PSB2YWx1ZS5rZXlcbiAgICAgICAgICAgICkgYXMgRGF0YUZsYXROb2RlXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kQWxsKCk7XG4gIH1cblxuICB0b2dnbGVBbGwoZXZlbnQ6IE1hdENoZWNrYm94Q2hhbmdlKSB7XG4gICAgY29uc3QgY2hlY2tlZCA9IGV2ZW50LmNoZWNrZWQ7XG5cbiAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5tYXAoKG5vZGUpID0+IHtcbiAgICAgIGlmIChjaGVja2VkKSB7XG4gICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmRlc2VsZWN0KG5vZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0KG5vZGUpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi50b2dnbGUobm9kZSk7XG4gICAgICBjb25zdCBkZXNjZW5kYW50cyA9IHRoaXMudHJlZUNvbnRyb2wuZ2V0RGVzY2VuZGFudHMobm9kZSk7XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3QoLi4uZGVzY2VuZGFudHMpO1xuXG4gICAgICBpZiAoY2hlY2tlZCkge1xuICAgICAgICBkZXNjZW5kYW50cy5ldmVyeSgoY2hpbGQpID0+IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmRlc2VsZWN0KGNoaWxkKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZXNjZW5kYW50cy5ldmVyeSgoY2hpbGQpID0+IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdChjaGlsZCkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgY2xlYXJBbGwoKSB7XG4gICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uY2xlYXIoKTtcbiAgICBpZiAodGhpcy5lbGVtZW50Lm11bHRpcGxlKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5lbGVtZW50LmtleSk/LnBhdGNoVmFsdWUoW10pO1xuICAgICAgdGhpcy50b2dnbGVBbGxDaGVja2JveC5jaGVja2VkID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLmVsZW1lbnQua2V5KT8ucGF0Y2hWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBvblBhbmVsQ2hhbmdlKCkge1xuICAgIHRoaXMuaXNNZW51RXhwYW5kZWQgPSAhdGhpcy5pc01lbnVFeHBhbmRlZDtcbiAgfVxuXG4gIGZpbHRlcihhcnJheTogYW55W10sIHRleHQ6IHN0cmluZykge1xuICAgIGNvbnN0IGdldE5vZGVzID0gKFxuICAgICAgcmVzdWx0OiBhbnlbXSxcbiAgICAgIG9iamVjdDogeyBuYW1lOiBzdHJpbmc7IGNoaWxkcmVuOiBhbnlbXSB9XG4gICAgKSA9PiB7XG4gICAgICBpZiAob2JqZWN0Lm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGV4dCkpIHtcbiAgICAgICAgcmVzdWx0LnB1c2gob2JqZWN0KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG9iamVjdC5jaGlsZHJlbikpIHtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBvYmplY3QuY2hpbGRyZW4ucmVkdWNlKGdldE5vZGVzLCBbXSk7XG4gICAgICAgIGlmIChjaGlsZHJlbi5sZW5ndGgpIHJlc3VsdC5wdXNoKHsgLi4ub2JqZWN0LCBjaGlsZHJlbiB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcblxuICAgIHRoaXMuZWxlbWVudC50cmVlID0gYXJyYXkucmVkdWNlKGdldE5vZGVzLCBbXSk7XG4gIH1cblxuICBnZXRMZXZlbCA9IChub2RlOiBEYXRhRmxhdE5vZGUpID0+IG5vZGUubGV2ZWw7XG5cbiAgaXNFeHBhbmRhYmxlID0gKG5vZGU6IERhdGFGbGF0Tm9kZSkgPT4gbm9kZS5leHBhbmRhYmxlO1xuXG4gIGdldENoaWxkcmVuID0gKG5vZGU6IERhdGFOb2RlKTogRGF0YU5vZGVbXSA9PiBub2RlLmNoaWxkcmVuITtcblxuICBoYXNDaGlsZCA9IChfOiBudW1iZXIsIF9ub2RlRGF0YTogRGF0YUZsYXROb2RlKSA9PiBfbm9kZURhdGEuZXhwYW5kYWJsZTtcblxuICBoYXNOb0NvbnRlbnQgPSAoXzogbnVtYmVyLCBfbm9kZURhdGE6IERhdGFGbGF0Tm9kZSkgPT4gX25vZGVEYXRhLnZhbHVlID09PSAnJztcblxuICAvKipcbiAgICogVHJhbnNmb3JtZXIgdG8gY29udmVydCBuZXN0ZWQgbm9kZSB0byBmbGF0IG5vZGUuIFJlY29yZCB0aGUgbm9kZXMgaW4gbWFwcyBmb3IgbGF0ZXIgdXNlLlxuICAgKi9cbiAgdHJhbnNmb3JtZXIgPSAobm9kZTogRGF0YU5vZGUsIGxldmVsOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBleGlzdGluZ05vZGUgPSB0aGlzLm5lc3RlZE5vZGVNYXAuZ2V0KG5vZGUpO1xuICAgIGNvbnN0IGZsYXROb2RlID1cbiAgICAgIGV4aXN0aW5nTm9kZSAmJiBleGlzdGluZ05vZGUudmFsdWUgPT09IG5vZGUudmFsdWVcbiAgICAgICAgPyBleGlzdGluZ05vZGVcbiAgICAgICAgOiBuZXcgRGF0YUZsYXROb2RlKCk7XG4gICAgZmxhdE5vZGUua2V5ID0gbm9kZS5rZXk7XG4gICAgZmxhdE5vZGUudmFsdWUgPSBub2RlLnZhbHVlO1xuICAgIGZsYXROb2RlLmxldmVsID0gbGV2ZWw7XG4gICAgZmxhdE5vZGUuZXhwYW5kYWJsZSA9ICEhbm9kZS5jaGlsZHJlbjtcbiAgICB0aGlzLmZsYXROb2RlTWFwLnNldChmbGF0Tm9kZSwgbm9kZSk7XG4gICAgdGhpcy5uZXN0ZWROb2RlTWFwLnNldChub2RlLCBmbGF0Tm9kZSk7XG4gICAgcmV0dXJuIGZsYXROb2RlO1xuICB9O1xuXG4gIC8qKiBXaGV0aGVyIGFsbCB0aGUgZGVzY2VuZGFudHMgb2YgdGhlIG5vZGUgYXJlIHNlbGVjdGVkLiAqL1xuICBkZXNjZW5kYW50c0FsbFNlbGVjdGVkKG5vZGU6IERhdGFGbGF0Tm9kZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGRlc2NlbmRhbnRzID0gdGhpcy50cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKTtcbiAgICBjb25zdCBkZXNjQWxsU2VsZWN0ZWQgPSBkZXNjZW5kYW50cy5ldmVyeSgoY2hpbGQpID0+XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKGNoaWxkKVxuICAgICk7XG4gICAgcmV0dXJuIGRlc2NBbGxTZWxlY3RlZDtcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHBhcnQgb2YgdGhlIGRlc2NlbmRhbnRzIGFyZSBzZWxlY3RlZCAqL1xuICBkZXNjZW5kYW50c1BhcnRpYWxseVNlbGVjdGVkKG5vZGU6IERhdGFGbGF0Tm9kZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGRlc2NlbmRhbnRzID0gdGhpcy50cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKTtcbiAgICBjb25zdCByZXN1bHQgPSBkZXNjZW5kYW50cy5zb21lKChjaGlsZCkgPT5cbiAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQoY2hpbGQpXG4gICAgKTtcbiAgICByZXR1cm4gcmVzdWx0ICYmICF0aGlzLmRlc2NlbmRhbnRzQWxsU2VsZWN0ZWQobm9kZSk7XG4gIH1cblxuICAvKiogVG9nZ2xlIHRoZSB0by1kbyBpdGVtIHNlbGVjdGlvbi4gU2VsZWN0L2Rlc2VsZWN0IGFsbCB0aGUgZGVzY2VuZGFudHMgbm9kZSAqL1xuICB0b2RvSXRlbVNlbGVjdGlvblRvZ2dsZShub2RlOiBEYXRhRmxhdE5vZGUpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi50b2dnbGUobm9kZSk7XG5cbiAgICBpZiAodGhpcy5lbGVtZW50LmNoZWNrQ2hpbGRyZW4pIHtcbiAgICAgIGNvbnN0IGRlc2NlbmRhbnRzID0gdGhpcy50cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKTtcbiAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSlcbiAgICAgICAgPyB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3QoLi4uZGVzY2VuZGFudHMpXG4gICAgICAgIDogdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uZGVzZWxlY3QoLi4uZGVzY2VuZGFudHMpO1xuXG4gICAgICAvLyBGb3JjZSB1cGRhdGUgZm9yIHRoZSBwYXJlbnRcbiAgICAgIGRlc2NlbmRhbnRzLmV2ZXJ5KChjaGlsZCkgPT4gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChjaGlsZCkpO1xuICAgICAgdGhpcy5jaGVja0FsbFBhcmVudHNTZWxlY3Rpb24obm9kZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFRvZ2dsZSBhIGxlYWYgdG8tZG8gaXRlbSBzZWxlY3Rpb24uIENoZWNrIGFsbCB0aGUgcGFyZW50cyB0byBzZWUgaWYgdGhleSBjaGFuZ2VkICovXG4gIHRvZG9MZWFmSXRlbVNlbGVjdGlvblRvZ2dsZShub2RlOiBEYXRhRmxhdE5vZGUpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi50b2dnbGUobm9kZSk7XG5cbiAgICB0aGlzLmNoZWNrQWxsUGFyZW50c1NlbGVjdGlvbihub2RlKTtcbiAgfVxuXG4gIC8qIENoZWNrcyBhbGwgdGhlIHBhcmVudHMgd2hlbiBhIGxlYWYgbm9kZSBpcyBzZWxlY3RlZC91bnNlbGVjdGVkICovXG4gIGNoZWNrQWxsUGFyZW50c1NlbGVjdGlvbihub2RlOiBEYXRhRmxhdE5vZGUpOiB2b2lkIHtcbiAgICBsZXQgcGFyZW50OiBEYXRhRmxhdE5vZGUgfCBudWxsID0gdGhpcy5nZXRQYXJlbnROb2RlKG5vZGUpO1xuICAgIHdoaWxlIChwYXJlbnQpIHtcbiAgICAgIHRoaXMuY2hlY2tSb290Tm9kZVNlbGVjdGlvbihwYXJlbnQpO1xuICAgICAgcGFyZW50ID0gdGhpcy5nZXRQYXJlbnROb2RlKHBhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENoZWNrIHJvb3Qgbm9kZSBjaGVja2VkIHN0YXRlIGFuZCBjaGFuZ2UgaXQgYWNjb3JkaW5nbHkgKi9cbiAgY2hlY2tSb290Tm9kZVNlbGVjdGlvbihub2RlOiBEYXRhRmxhdE5vZGUpOiB2b2lkIHtcbiAgICBjb25zdCBub2RlU2VsZWN0ZWQgPSB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUpO1xuICAgIGNvbnN0IGRlc2NlbmRhbnRzID0gdGhpcy50cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKTtcbiAgICBjb25zdCBkZXNjQWxsU2VsZWN0ZWQgPSBkZXNjZW5kYW50cy5ldmVyeSgoY2hpbGQpID0+XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKGNoaWxkKVxuICAgICk7XG5cbiAgICBpZiAobm9kZVNlbGVjdGVkICYmICFkZXNjQWxsU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmRlc2VsZWN0KG5vZGUpO1xuICAgIH0gZWxzZSBpZiAoIW5vZGVTZWxlY3RlZCAmJiBkZXNjQWxsU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdChub2RlKTtcbiAgICB9XG4gIH1cblxuICAvKiBHZXQgdGhlIHBhcmVudCBub2RlIG9mIGEgbm9kZSAqL1xuICBnZXRQYXJlbnROb2RlKG5vZGU6IERhdGFGbGF0Tm9kZSk6IERhdGFGbGF0Tm9kZSB8IG51bGwge1xuICAgIGNvbnN0IGN1cnJlbnRMZXZlbCA9IHRoaXMuZ2V0TGV2ZWwobm9kZSk7XG5cbiAgICBpZiAoY3VycmVudExldmVsIDwgMSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmluZGV4T2Yobm9kZSkgLSAxO1xuXG4gICAgZm9yIChsZXQgaSA9IHN0YXJ0SW5kZXg7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBjb25zdCBjdXJyZW50Tm9kZSA9IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldO1xuXG4gICAgICBpZiAodGhpcy5nZXRMZXZlbChjdXJyZW50Tm9kZSkgPCBjdXJyZW50TGV2ZWwpIHtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnROb2RlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGdldFNlbGVjdGVkSXRlbXMoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aClcbiAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQucGxhY2Vob2xkZXIgfHwgJyc7XG4gICAgXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkID8gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWRcbiAgICAgIC5tYXAoKHMpID0+IHM/LnZhbHVlIHx8IHMgfHwgJycpXG4gICAgICAuam9pbignLCcpXG4gICAgICAudG9TdHJpbmcoKVxuICAgICAgLnJlcGxhY2UoL1xcLC9nLCAnLCAnKSA6IHRoaXMuZWxlbWVudC5wbGFjZWhvbGRlciB8fCAnJztcbiAgfVxuXG4gIGZpbHRlckNoYW5nZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGZpbHRlclRleHQgPSBldmVudC50YXJnZXQ/LnZhbHVlO1xuXG4gICAgLy8gQ2hlY2tsaXN0RGF0YWJhc2UuZmlsdGVyIG1ldGhvZCB3aGljaCBhY3R1YWxseSBmaWx0ZXJzIHRoZSB0cmVlIGFuZCBnaXZlcyBiYWNrIGEgdHJlZSBzdHJ1Y3R1cmVcbiAgICB0aGlzLl9kYXRhYmFzZS5maWx0ZXIoZmlsdGVyVGV4dCk7XG4gIH1cblxuICBjbGVhclNlYXJjaFZhbHVlKCk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudC5zZWFyY2g/LmZvcm1Db250cm9sPy5zZXRWYWx1ZSgnJyk7XG4gICAgdGhpcy5fZGF0YWJhc2UuZmlsdGVyKCcnKTtcbiAgfVxuXG4gIHNlbGVjdFNpbmdsZUl0ZW0obm9kZTogRGF0YUZsYXROb2RlKTogdm9pZCB7XG4gICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uY2xlYXIoKTtcbiAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3Qobm9kZSk7XG4gICAgdGhpcy5mb3JtR3JvdXBcbiAgICAgIC5nZXQodGhpcy5lbGVtZW50LmtleSlcbiAgICAgID8ucGF0Y2hWYWx1ZSh7IHZhbHVlOiBub2RlLnZhbHVlLCBrZXk6IG5vZGUua2V5IH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB0aGlzLnRyaWdnZXIuY2xvc2VNZW51KCk7XG4gIH1cblxuICBoYXNWYWx1ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5lbGVtZW50LmtleSk/LnZhbHVlO1xuICB9XG5cbiAgY2xlYXJWYWx1ZShldmVudDogYW55KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuZWxlbWVudC5rZXkpPy5wYXRjaFZhbHVlKG51bGwpO1xuICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmNsZWFyKCk7XG4gIH1cblxuICBpc0FsbE5vZGVTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEoXG4gICAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5sZW5ndGggPT09XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGhcbiAgICApO1xuICB9XG59XG4iLCI8Zm9ybVxuICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gICpuZ0lmPVwiZm9ybUdyb3VwICYmIGVsZW1lbnRcIlxuICBjbGFzcz1cIm1hcGEtZHJvcGRvd24tdHJlZVwiXG4+XG4gIDxsYWJlbCAqbmdJZj1cImVsZW1lbnQubGFiZWxcIiBjbGFzcz1cIm1hcGEtZHJvcGRvd24tdHJlZV9fbGFiZWxcIj5cbiAgICB7eyBlbGVtZW50LmxhYmVsIH19XG4gIDwvbGFiZWw+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cIm1hcGEtZHJvcGRvd24tdHJlZV9fZHJvcGRvd25cIlxuICAgICNtZW51T3B0aW9uPVwibWF0TWVudVRyaWdnZXJcIlxuICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJtYXBhLWRyb3Bkb3duLXRyZWVfX2Ryb3Bkb3duLS12YWx1ZVwiPlxuICAgICAge3sgZ2V0U2VsZWN0ZWRJdGVtcygpIH19XG4gICAgPC9kaXY+XG5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJoYXNWYWx1ZSgpXCIgKGNsaWNrKT1cImNsZWFyVmFsdWUoJGV2ZW50KVwiIG1hdFN1ZmZpeFxuICAgICAgPmNsb3NlPC9tYXQtaWNvblxuICAgID5cbiAgICA8bWF0LWljb24+XG4gICAgICB7eyBtZW51T3B0aW9uLm1lbnVPcGVuID8gJ2tleWJvYXJkX2Fycm93X3VwJyA6ICdrZXlib2FyZF9hcnJvd19kb3duJyB9fVxuICAgIDwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XG4gICAgPGRpdiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWFwYS1kcm9wZG93bi10cmVlX19zZWFyY2hcIiAqbmdJZj1cImVsZW1lbnQuc2VhcmNoXCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICNzZWFyY2hJbnB1dFxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImVsZW1lbnQuc2VhcmNoPy5mb3JtQ29udHJvbCFcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImVsZW1lbnQuc2VhcmNoPy5wbGFjZWhvbGRlciB8fCAnJ1wiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgKGtleXVwKT1cImZpbHRlckNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICpuZ0lmPVwiISFlbGVtZW50LnNlYXJjaD8uZm9ybUNvbnRyb2w/LnZhbHVlICYmICFlbGVtZW50LnNlYXJjaD8uZm9ybUNvbnRyb2w/LmRpc2FibGVkXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbGVhclNlYXJjaFZhbHVlKClcIlxuICAgICAgICAgICAgbWF0U3VmZml4XG4gICAgICAgICAgICA+Y2xvc2U8L21hdC1pY29uXG4gICAgICAgICAgPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPC9kaXY+XG4gICAgICA8c2VjdGlvbiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgICAgICA8bGFiZWxcbiAgICAgICAgICAqbmdJZj1cImVsZW1lbnQubXVsdGlwbGUgPT09IHRydWVcIlxuICAgICAgICAgIGNsYXNzPVwibWFwYS1kcm9wZG93bi10cmVlX190b2dnbGUtYWxsIG1hcGEtZHJvcGRvd24tdHJlZV9fY2hlY2tib3hcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgI3RvZ2dsZUFsbENoZWNrYm94XG4gICAgICAgICAgICBjbGFzcz1cImNoZWNrbGlzdC1sZWFmLW5vZGVcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVBbGwoJGV2ZW50KVwiXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJpc0FsbE5vZGVTZWxlY3RlZCgpXCJcbiAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cIiFpc0FsbE5vZGVTZWxlY3RlZCgpICYmIGNoZWNrbGlzdFNlbGVjdGlvbi5oYXNWYWx1ZSgpXCJcbiAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgID5TZWxlY2lvbmFyIHRvZG9zPC9tYXQtY2hlY2tib3hcbiAgICAgICAgICA+XG4gICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgPG1hdC10cmVlIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIiBbdHJlZUNvbnRyb2xdPVwidHJlZUNvbnRyb2xcIj5cbiAgICAgICAgICA8bWF0LXRyZWUtbm9kZVxuICAgICAgICAgICAgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGVcIlxuICAgICAgICAgICAgbWF0VHJlZU5vZGVQYWRkaW5nXG4gICAgICAgICAgICBtYXRUcmVlTm9kZVBhZGRpbmdJbmRlbnQ9XCIxM1wiXG4gICAgICAgICAgICBbY2xhc3MubWFwYS1kcm9wZG93bi10cmVlX19jaGVja2JveC0tY2hlY2tlZF09XCJjaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChub2RlKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibWFwYS1kcm9wZG93bi10cmVlX19jaGVja2JveFwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBkaXNhYmxlZD48L2J1dHRvbj5cbiAgICAgICAgICAgICAgPCEtLSBMRUFGIENIRUNLQk9YIC0tPlxuICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJlbGVtZW50Lm11bHRpcGxlID09PSB0cnVlOyBlbHNlIG5vQ2hlY2tib3hcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tsaXN0LWxlYWYtbm9kZVwiXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSlcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidG9kb0xlYWZJdGVtU2VsZWN0aW9uVG9nZ2xlKG5vZGUpXCJcbiAgICAgICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgPnt7bm9kZS52YWx1ZX19PC9tYXQtY2hlY2tib3hcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vQ2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwic2VsZWN0U2luZ2xlSXRlbShub2RlKVwiPlxuICAgICAgICAgICAgICAgICAge3tub2RlLnZhbHVlfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9tYXQtdHJlZS1ub2RlPlxuXG4gICAgICAgICAgPG1hdC10cmVlLW5vZGVcbiAgICAgICAgICAgICptYXRUcmVlTm9kZURlZj1cImxldCBub2RlOyB3aGVuOiBoYXNDaGlsZFwiXG4gICAgICAgICAgICBtYXRUcmVlTm9kZVBhZGRpbmdcbiAgICAgICAgICAgIG1hdFRyZWVOb2RlUGFkZGluZ0luZGVudD1cIjEzXCJcbiAgICAgICAgICAgIFtjbGFzcy5tYXBhLWRyb3Bkb3duLXRyZWVfX2NoZWNrYm94LS1jaGVja2VkXT1cImNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJtYXBhLWRyb3Bkb3duLXRyZWVfX2NoZWNrYm94XCI+XG4gICAgICAgICAgICAgIDwhLS0gPGJ1dHRvblxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIG1hdFRyZWVOb2RlVG9nZ2xlXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIndG9nZ2xlICcgKyBub2RlLmZpbGVuYW1lXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5cbiAgICAgICAgICAgICAgICAgIHt7dHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSA/ICdleHBhbmRfbW9yZScgOlxuICAgICAgICAgICAgICAgICAgJ2NoZXZyb25fcmlnaHQnfX1cbiAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XG4gICAgICAgICAgICAgIDwhLS0gW2NoZWNrZWRdPVwiZGVzY2VuZGFudHNBbGxTZWxlY3RlZChub2RlKVwiIC0tPlxuICAgICAgICAgICAgICA8IS0tIFBBUkVOVCBDSEVDS0JPWCAtLT5cbiAgICAgICAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZWxlbWVudC5tdWx0aXBsZSA9PT0gdHJ1ZTsgZWxzZSBub0NoZWNrYm94XCJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChub2RlKVwiXG4gICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwiZGVzY2VuZGFudHNQYXJ0aWFsbHlTZWxlY3RlZChub2RlKVwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2RvSXRlbVNlbGVjdGlvblRvZ2dsZShub2RlKVwiXG4gICAgICAgICAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3tub2RlLnZhbHVlfX08L21hdC1jaGVja2JveFxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9DaGVja2JveD5cbiAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJzZWxlY3RTaW5nbGVJdGVtKG5vZGUpXCI+XG4gICAgICAgICAgICAgICAgICB7e25vZGUudmFsdWV9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L21hdC10cmVlLW5vZGU+XG4gICAgICAgIDwvbWF0LXRyZWU+XG4gICAgICA8L3NlY3Rpb24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiZWxlbWVudC5tdWx0aXBsZSA9PT0gdHJ1ZVwiXG4gICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgY2xhc3M9XCJtYXBhLWRyb3Bkb3duLXRyZWVfX2J1dHRvblwiXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgIChjbGljayk9XCJjbGVhckFsbCgpXCJcbiAgICAgID5cbiAgICAgICAgTGltcGFyIHRvZG9zXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtbWVudT5cbjwvZm9ybT5cbiJdfQ==
|
|
@@ -607,11 +607,11 @@ class MapaDropdownTreeComponent {
|
|
|
607
607
|
getSelectedItems() {
|
|
608
608
|
if (!this.checklistSelection.selected.length)
|
|
609
609
|
return this.element.placeholder || '';
|
|
610
|
-
return this.checklistSelection.selected
|
|
611
|
-
.map((s) => s.value)
|
|
610
|
+
return this.checklistSelection.selected ? this.checklistSelection.selected
|
|
611
|
+
.map((s) => (s === null || s === void 0 ? void 0 : s.value) || s || '')
|
|
612
612
|
.join(',')
|
|
613
613
|
.toString()
|
|
614
|
-
.replace(/\,/g, ', ');
|
|
614
|
+
.replace(/\,/g, ', ') : this.element.placeholder || '';
|
|
615
615
|
}
|
|
616
616
|
filterChanged(event) {
|
|
617
617
|
var _a;
|