@energycap/components 0.40.1-ECAP-26841-date-input-features.20241125-1709 → 0.40.2-rxjs-7-upgrade.20241216-1200

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.
Files changed (61) hide show
  1. package/esm2020/lib/components.module.mjs +5 -15
  2. package/esm2020/lib/controls/calendar/calendar-item.component.mjs +3 -3
  3. package/esm2020/lib/controls/calendar/calendar.component.mjs +27 -126
  4. package/esm2020/lib/controls/calendar/calendar.types.mjs +1 -4
  5. package/esm2020/lib/controls/checkbox/checkbox.component.mjs +3 -3
  6. package/esm2020/lib/controls/combobox/combobox.component.mjs +1 -1
  7. package/esm2020/lib/controls/date-input/date-input.component.mjs +5 -7
  8. package/esm2020/lib/controls/dropdown/dropdown.component.mjs +1 -1
  9. package/esm2020/lib/controls/file-upload/file-upload.component.mjs +3 -2
  10. package/esm2020/lib/controls/form-control/form-control.component.mjs +2 -2
  11. package/esm2020/lib/controls/form-control-base.mjs +2 -2
  12. package/esm2020/lib/controls/form-control-label/form-control-label.component.mjs +1 -1
  13. package/esm2020/lib/controls/form-group/form-group.component.mjs +3 -3
  14. package/esm2020/lib/controls/popover/popover.component.mjs +1 -1
  15. package/esm2020/lib/controls/select/select.component.mjs +2 -2
  16. package/esm2020/lib/controls/tabs/tabs.component.mjs +3 -3
  17. package/esm2020/lib/core/validation-message.service.mjs +3 -3
  18. package/esm2020/lib/display/dialog/dialog.component.mjs +4 -4
  19. package/esm2020/lib/display/hierarchy/hierarchy-base.mjs +1 -1
  20. package/esm2020/lib/display/table/searchable-table.component.mjs +1 -1
  21. package/esm2020/lib/display/toast/toaster/toaster.component.mjs +1 -1
  22. package/esm2020/lib/display/tooltip-directive/tooltip.directive.mjs +2 -2
  23. package/esm2020/lib/display/tour/tour.component.mjs +3 -3
  24. package/esm2020/lib/shared/page/page-base/page-base.component.mjs +3 -3
  25. package/esm2020/public-api.mjs +1 -3
  26. package/fesm2015/energycap-components.mjs +111 -332
  27. package/fesm2015/energycap-components.mjs.map +1 -1
  28. package/fesm2020/energycap-components.mjs +111 -329
  29. package/fesm2020/energycap-components.mjs.map +1 -1
  30. package/lib/components.module.d.ts +8 -10
  31. package/lib/controls/calendar/calendar-item.component.d.ts +1 -1
  32. package/lib/controls/calendar/calendar.component.d.ts +5 -17
  33. package/lib/controls/calendar/calendar.types.d.ts +2 -8
  34. package/lib/controls/checkbox/checkbox.component.d.ts +2 -2
  35. package/lib/controls/date-input/date-input.component.d.ts +2 -3
  36. package/lib/controls/form-control-base.d.ts +1 -1
  37. package/lib/controls/form-group/form-group.component.d.ts +1 -1
  38. package/lib/display/hierarchy/hierarchy-base.d.ts +1 -1
  39. package/lib/display/table/searchable-table.component.d.ts +1 -1
  40. package/lib/shared/page/page-base/page-base.component.d.ts +1 -1
  41. package/package.json +3 -2
  42. package/public-api.d.ts +0 -2
  43. package/schematics/collection.json +10 -0
  44. package/schematics/rxjs-7-upgrade/index.d.ts +3 -0
  45. package/schematics/rxjs-7-upgrade/index.js +68 -0
  46. package/schematics/rxjs-7-upgrade/index.js.map +1 -0
  47. package/schematics/rxjs-7-upgrade/schema.d.ts +4 -0
  48. package/schematics/rxjs-7-upgrade/schema.js +3 -0
  49. package/schematics/rxjs-7-upgrade/schema.js.map +1 -0
  50. package/schematics/rxjs-7-upgrade/schema.json +14 -0
  51. package/schematics/utilities/typescript.d.ts +7 -0
  52. package/schematics/utilities/typescript.js +42 -0
  53. package/schematics/utilities/typescript.js.map +1 -0
  54. package/schematics/utilities/workspace.d.ts +8 -0
  55. package/schematics/utilities/workspace.js +72 -0
  56. package/schematics/utilities/workspace.js.map +1 -0
  57. package/src/assets/locales/en_US.json +1 -8
  58. package/esm2020/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.mjs +0 -57
  59. package/esm2020/lib/shared/directives/keyboard-nav-target/keyboard-nav-target.directive.mjs +0 -58
  60. package/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.d.ts +0 -16
  61. package/lib/shared/directives/keyboard-nav-target/keyboard-nav-target.directive.d.ts +0 -14
@@ -240,4 +240,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
240
240
  type: ViewChild,
241
241
  args: ['dropdownToggle']
242
242
  }] } });
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUosT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFlLE1BQU0seURBQXlELENBQUM7QUFHL0csT0FBTyxFQUFFLGFBQWEsRUFBOEIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7OztBQU9uRixNQUFNLE9BQU8saUJBQWlCO0lBZ0s1QjtRQXpKQTs7V0FFRztRQUNhLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEM7O1dBRUc7UUFDYSxXQUFNLEdBQWtCLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFDLENBQUM7UUFFekU7O1dBRUc7UUFDYSxhQUFRLEdBQVcsS0FBSyxDQUFDO1FBWXpDOztXQUVHO1FBQ2EsZUFBVSxHQUFnQixNQUFNLENBQUM7UUFRakQ7OztXQUdHO1FBQ2EsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFPekM7O1dBRUc7UUFDYSxjQUFTLEdBQVksSUFBSSxDQUFDO1FBRTFDOztXQUVHO1FBQ2EsVUFBSyxHQUFlLEVBQUUsQ0FBQztRQUV2Qzs7V0FFRztR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VSxTQUFTO3NCQUF4QixLQUFLO2dCQUtVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBS1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQU1VLFNBQVM7c0JBQXhCLEtBQUs7Z0JBS1UsVUFBVTtzQkFBekIsS0FBSztnQkFLVSxTQUFTO3NCQUF4QixLQUFLO2dCQUtVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBS1UsWUFBWTtzQkFBM0IsS0FBSztnQkFLVSxVQUFVO3NCQUF6QixLQUFLO2dCQU1VLFVBQVU7c0JBQXpCLEtBQUs7Z0JBS1Usb0JBQW9CO3NCQUFuQyxLQUFLO2dCQU1VLE9BQU87c0JBRHRCLFdBQVc7dUJBQUMsa0JBQWtCOztzQkFDOUIsS0FBSztnQkFLVyxZQUFZO3NCQUE1QixNQUFNO2dCQUtVLFdBQVc7c0JBQTNCLE1BQU07Z0JBa0JpRCxNQUFNO3NCQUE3RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBS2dCLEtBQUs7c0JBQWxFLFNBQVM7dUJBQUMsdUJBQXVCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUtoQixvQkFBb0I7c0JBQXZELFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgUG9wcGVyIGZyb20gJ3BvcHBlci5qcyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgUG9wdXBDb250YWluZXJEaXJlY3RpdmUsIFBvcHVwU3RhdHVzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2RpcmVjdGl2ZXMvcG9wdXAvcG9wdXAtY29udGFpbmVyLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IERpc3BsYXlTdGF0dXMgfSBmcm9tICcuLi8uLi9zaGFyZWQvZGlzcGxheSc7XHJcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCwgQnV0dG9uVHlwZSB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWVudUNvbXBvbmVudCwgTWVudUl0ZW0sIE1lbnVUZW1wbGF0ZVR5cGUgfSBmcm9tICcuLi9tZW51L21lbnUuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWMtZHJvcGRvd24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIC8qKlxyXG4gICAqIEJhc2UgaWQgZm9yIHRoZSBjb21wb25lbnQncyBzdWItZWxlbWVudHNcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgaWQ/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEF1dG9tYXRpY2FsbHkgZm9jdXMgdGhlIGRyb3Bkb3duIHRvZ2dsZSBidXR0b25cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgYXV0b2ZvY3VzID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnRyb2xzIHRoZSBkaXNwbGF5IHN0YXR1cyBvdmVybGF5IGZvciB0aGUgbWVudVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzdGF0dXM/OkRpc3BsYXlTdGF0dXMgPSB7c3RhdHVzOiAnaGFzRGF0YScsIG1lc3NhZ2U6ICcnfTtcclxuXHJcbiAgLyoqXHJcbiAgICogRGlzYWJsZSB0aGUgYnV0dG9uIHRvIHByZXZlbnQgdGhlIG1lbnUgZnJvbSBiZWluZyBvcGVuZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6Ym9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBPcHRpb25hbCBsYWJlbCBmb3IgdGhlIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbD86IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogT3B0aW9uYWwgaWNvbiBmb3IgdGhlIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpY29uPzogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgYnV0dG9uIHR5cGUsIGRlZmF1bHRzIHRvIGljb25cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgYnV0dG9uVHlwZT86IEJ1dHRvblR5cGUgPSAnaWNvbic7XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wdGlvbmFsbHkgYWxpZ24gdGhlIGxhYmVsIG9mIHRoZSBidXR0b24gdG8gdGhlIGxlZnQgb3IgcmlnaHQuIElmIG5vdCBzZXQsXHJcbiAgICogd2lsbCBiZSBjZW50ZXJlZC5cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgYnV0dG9uQWxpZ25tZW50PzogJ2xlZnQnIHwgJ3JpZ2h0JztcclxuXHJcbiAgLyoqXHJcbiAgICogQWRkcyBhIHRvb2x0aXAgdG8gdGhlIGRyb3Bkb3duIHRvZ2dsZSBidXR0b24uIFNob3VsZCBvbmx5IGJlIHVzZWQgd2hlblxyXG4gICAqIHRoZSB0b2dnbGUgYnV0dG9uVHlwZSBpcyAnaWNvbidcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgYnV0dG9uVGl0bGU6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgdGFiaW5kZXggb2YgdGhlIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0YWJpbmRleD86IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICogRGlzcGxheSBhIGNhcmV0IHdpdGggdGhlIGJ1dHRvbiBsYWJlbCBvciBpY29uXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHNob3dBcnJvdzogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIEl0ZW1zIHRvIGRpc3BsYXkgaW4gdGhlIG1lbnVcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgaXRlbXM6IE1lbnVJdGVtW10gPSBbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIG1lbnUgaXRlbSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtZW51VGVtcGxhdGVUeXBlOiBNZW51VGVtcGxhdGVUeXBlID0gJ2xhYmVsJztcclxuXHJcbiAgLyoqXHJcbiAgICogRGlzcGxheSBhIGhlYWRlciBvbiB0aGUgbWVudVxyXG4gICAqIEBkZXByZWNhdGVkIHVzZSBmaXJzdCBtZW51IGl0ZW0gd2l0aCBkaXNwbGF5IHNldCB0byAnaGVhZGluZycgaW5zdGVhZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtZW51VGl0bGU/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCBhIGZpeGVkIGhlaWdodCBmb3IgdGhlIG1lbnUsIGF1dG8gYnkgZGVmYXVsdFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtZW51SGVpZ2h0PzogbnVtYmVyO1xyXG5cclxuICAvKipcclxuICAgKiBTZXQgYSBmaXhlZCB3aWR0aCBpbiBwaXhlbHMgZm9yIHRoZSBtZW51LCBhdXRvIGJ5IGRlZmF1bHRcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgbWVudVdpZHRoPzogbnVtYmVyO1xyXG5cclxuICAvKipcclxuICAgKiBTZXQgYSBtaW4td2lkdGggaW4gcGl4ZWxzIG9uIHRoZSBtZW51LiBJdCB3aWxsIGV4cGFuZCBpZiB0aGUgY29udGVudCBpcyBncmVhdGVyIHRoYW4gdGhlIG1pbi13aWR0aFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtZW51TWluV2lkdGg/OiBudW1iZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIFBpbiB0aGUgbWVudSB0byB0aGUgbGVmdCBvciByaWdodCBvZiB0aGUgYnV0dG9uLiBSaWdodCBieSBkZWZhdWx0XHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIG1lbnVQb3NpdGlvbj86ICdsZWZ0JyB8ICdyaWdodCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0aWNreSBmb290ZXIgdG8gZGlzcGxheSBhdCB0aGUgYm90dG9tIG9mIHRoZSBwb3B1cCBtZW51XHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIG1lbnVGb290ZXI/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpeCBwb3NpdGlvbiB0aGUgbWVudSBpbnN0ZWFkIG9mIGFic29sdXRlLiBVc2VmdWwgd2hlbiB0aGUgZHJvcGRvd24gaXMgaW4gYVxyXG4gICAqIGRpYWxvZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwb3B1cEZpeGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFBhc3MgYSBjdXN0b20gdGVtcGxhdGUgdG8gdGhlIHRvZ2dsZSBidXR0b25cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgYnV0dG9uQ3VzdG9tVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAvKipcclxuICAqIFVzZWQgdG8gc2V0IHRoZSBtZW51IGJ1dHRvbnMgc3RhdGUgdG8gcGVuZGluZ1xyXG4gICovXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1wZW5kaW5nJylcclxuICBASW5wdXQoKSBwdWJsaWMgcGVuZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBhbiBldmVudCB3aGVuIGEgbWVudSBpdGVtIGlzIHNlbGVjdGVkXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBpdGVtU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxNZW51SXRlbT4gPSBuZXcgRXZlbnRFbWl0dGVyPE1lbnVJdGVtPigpO1xyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBhbiBldmVudCB3aGVuIHRoZSBwb3B1cCBtZW51IG9wZW5zXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBwb3B1cE9wZW5lZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgc3RhdHVzIG9mIHRoZSBtZW51XHJcbiAgICovXHJcbiAgcHVibGljIG1lbnVTdGF0dXM6IFBvcHVwU3RhdHVzID0gJ2hpZGRlbic7XHJcblxyXG4gIC8qKiBJdGVtIHRvIGhpZ2hsaWdodCB3aGVuIHRoZSBtZW51IGlzIG9wZW5lZCwgdXNlZCB3aGVuIHRoZSB1c2VyXHJcbiAgICogIG9wZW5zIHRoZSBtZW51IHZpYSB0aGUga2V5Ym9hcmRcclxuICAgKi9cclxuICBwdWJsaWMgaGlnaGxpZ2h0ZWRJdGVtOiBNZW51SXRlbSB8IG51bGwgPSBudWxsO1xyXG5cclxuICAvKiogVXNlZCB0byBrbm93IGlmIHRoZSBtZW51IHdhcyB0b2dnbGVkIHZpYSB0aGUga2V5Ym9hcmQgKi9cclxuICBwcml2YXRlIGlzS2V5Ym9hcmRFdmVudDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBJbnRlcm5hbCByZWZlcmVuY2UgdG8gdGhlIG1lbnUgZWxlbWVudFxyXG4gICAqL1xyXG4gIEBWaWV3Q2hpbGQoTWVudUNvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pIHByaXZhdGUgbWVudUVsITpFbGVtZW50UmVmO1xyXG5cclxuICAvKipcclxuICAgKiBJbnRlcm5hbCByZWZlcmVuY2UgdG8gdGhlIHBvcHVwIGRpcmVjdGl2ZVxyXG4gICAqL1xyXG4gIEBWaWV3Q2hpbGQoUG9wdXBDb250YWluZXJEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIHByaXZhdGUgcG9wdXAhOiBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGEgcmVmZXJlbmNlIHRvIHRoZSB0b2dnbGUgYnV0dG9uXHJcbiAgICovXHJcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd25Ub2dnbGUnKSBwdWJsaWMgZHJvcGRvd25Ub2dnbGVCdXR0b24hOiBCdXR0b25Db21wb25lbnQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIFVuc3Vic2NyaWJlIGFueSBhY3RpdmUgc3Vic2NyaXB0aW9ucyB3aGVuIHRoZSBjb21wb25lbnQgaXMgZGVzdHJveWVkXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjb21wb25lbnREZXN0cm95ZWQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBTdWJzY3JpYmUgdG8gY2hhbmdlcyB0byB0aGUgbWVudSBzdGF0dXNcclxuICAgKi9cclxuICBwdWJsaWMgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnBvcHVwLnBvcHBlclN0YXR1c0NoYW5nZVxyXG4gICAgLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSlcclxuICAgIC5zdWJzY3JpYmUoKGV2ZW50OiAndmlzaWJsZScgfCAnaGlkZGVuJykgPT4ge1xyXG4gICAgICB0aGlzLm1lbnVTdGF0dXMgPSBldmVudDtcclxuICAgICAgaWYodGhpcy5tZW51U3RhdHVzID09PSAndmlzaWJsZScpIHtcclxuICAgICAgICB0aGlzLnBvcHVwT3BlbmVkLmVtaXQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQgdXAgdGhlIHBvcHVwXHJcbiAgICovXHJcbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIGxldCBwb3BwZXJPcHRpb25zOiBQb3BwZXIuUG9wcGVyT3B0aW9ucyA9IHtcclxuXHRcdFx0bW9kaWZpZXJzOiB7XHJcblx0XHRcdFx0cHJldmVudE92ZXJmbG93OiB7XHJcblx0XHRcdFx0XHRib3VuZGFyaWVzRWxlbWVudDogJ3ZpZXdwb3J0J1xyXG5cdFx0XHRcdH1cclxuICAgICAgfSxcclxuICAgICAgcGxhY2VtZW50OiAnYm90dG9tLWVuZCdcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMubWVudVBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgcG9wcGVyT3B0aW9ucy5wbGFjZW1lbnQgPSAnYm90dG9tLXN0YXJ0JztcclxuICAgIH1cclxuXHJcblxyXG4gICAgaWYgKHRoaXMucG9wdXBGaXhlZCkge1xyXG4gICAgICBwb3BwZXJPcHRpb25zLm9uQ3JlYXRlID0gKCkgPT4ge1xyXG4gICAgICAgIHRoaXMucG9wdXAuZml4UG9zaXRpb24oKTtcclxuICAgICAgfVxyXG5cclxuXHRcdFx0cG9wcGVyT3B0aW9ucy5vblVwZGF0ZSA9ICgpID0+IHtcclxuICAgICAgICAvLyBIaWRlIHRoZSBwb3B1cCB3aGVuIHRoZSBkcm9wZG93biBjaGFuZ2VzIHBvc2l0aW9uIGR1ZSB0byB3aW5kb3cgcmVzaXplXHJcbiAgICAgICAgLy8gb3IgY29udGFpbmVyIHNjcm9sbGluZ1xyXG4gICAgICAgIHRoaXMucG9wdXAuaGlkZSgpO1xyXG5cdFx0XHR9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5wb3B1cC5wb3BwZXJPcHRpb25zID0gcG9wcGVyT3B0aW9ucztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVuc3Vic2NyaWJlIHRvIGFueSBhY3RpdmUgc3Vic2NyaXB0aW9uc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuY29tcG9uZW50RGVzdHJveWVkLm5leHQoKTtcclxuICAgIHRoaXMuY29tcG9uZW50RGVzdHJveWVkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPcGVuIGFuZCBjbG9zZSB0aGUgbWVudVxyXG4gICAqL1xyXG4gIHB1YmxpYyB0b2dnbGVNZW51KGV2ZW50PzpFdmVudCk6dm9pZCB7XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuXHRcdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIGlmICh0aGlzLm1lbnVTdGF0dXMgPT09ICdoaWRkZW4nKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNLZXlib2FyZEV2ZW50ICYmIHRoaXMuaXRlbXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAvLyBTZXR1cCB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgbGlzdCB0byBoaWdobGlnaHQgd2hlbiBvcGVuaW5nIHRoZVxyXG4gICAgICAgICAgLy8gbWVudSB2aWEgdGhlIGtleWJvYXJkLCBpZ25vcmluZyBoZWFkaW5nc1xyXG5cclxuICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0ZWRJdGVtID0gdGhpcy5pdGVtcy5maW5kKGl0ZW0gPT4gaXRlbS5kaXNwbGF5ICE9PSAnaGVhZGluZycpIHx8IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucG9wdXAuc2hvdygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucG9wdXAuaGlkZSgpO1xyXG5cclxuICAgICAgICAvLyBSZXNldCB0aGUgaGlnaGxpZ2h0ZWQgaXRlbSBhbmQgb3VyIGtleWJvYXJkIGZsYWdcclxuICAgICAgICAvLyB3aGVuIHdlIGNsb3NlIHRoZSBwb3B1cFxyXG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0ZWRJdGVtID0gbnVsbDtcclxuICAgICAgICB0aGlzLmlzS2V5Ym9hcmRFdmVudCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0IHRoZSBzZWxlY3RlZCBpdGVtIHdoZW4gaXQgY2hhbmdlcyBhbmQgY2xvc2UgdGhlIG1lbnVcclxuICAgKi9cclxuICBwdWJsaWMgc2VsZWN0ZWRDaGFuZ2VkKGl0ZW06TWVudUl0ZW0pOnZvaWQge1xyXG4gICAgdGhpcy5pdGVtU2VsZWN0ZWQuZW1pdChpdGVtKTtcclxuICAgIHRoaXMudG9nZ2xlTWVudSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xvc2VzIHRoZSBtZW51IGlmIHRoZSB0YWIga2V5IGlzIHByZXNzZWRcclxuICAgKi9cclxuICBwdWJsaWMga2V5TmF2aWdhdGUoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XHJcbiAgICAgIGNhc2UgJ0VudGVyJzpcclxuICAgICAgICB0aGlzLmlzS2V5Ym9hcmRFdmVudCA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0VzY2FwZSc6XHJcbiAgICAgIGNhc2UgJ1RhYic6XHJcbiAgICAgICAgaWYgKHRoaXMubWVudVN0YXR1cyA9PT0gJ3Zpc2libGUnKSB7XHJcbiAgICAgICAgICB0aGlzLnRvZ2dsZU1lbnUoZXZlbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29udHJvbFwiPlxyXG4gIDxlYy1idXR0b24gW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICAgICAgIGlkPVwie3tpZH19X3RvZ2dsZVwiXHJcbiAgICAgICAgICAgICAjZHJvcGRvd25Ub2dnbGVcclxuICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaGFzLWFycm93JzpzaG93QXJyb3csICdhY3RpdmUnOiBtZW51U3RhdHVzID09PSAndmlzaWJsZScsICd0ZXh0LWxlZnQnOiBidXR0b25BbGlnbm1lbnQgPT09ICdsZWZ0JywgJ3RleHQtcmlnaHQnOiBidXR0b25BbGlnbm1lbnQgPT09ICdyaWdodCd9XCJcclxuICAgICAgICAgICAgICplY1BvcHVwPVwiZHJvcGRvd25NZW51XCJcclxuICAgICAgICAgICAgIFtsYWJlbF09XCJsYWJlbFwiXHJcbiAgICAgICAgICAgICBbaWNvbl09XCJpY29uXCJcclxuICAgICAgICAgICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiXHJcbiAgICAgICAgICAgICBbdHlwZV09XCJidXR0b25UeXBlXCJcclxuICAgICAgICAgICAgIFtjdXN0b21UZW1wbGF0ZV09XCJidXR0b25DdXN0b21UZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICBbcGVuZGluZ109XCJwZW5kaW5nXCJcclxuICAgICAgICAgICAgIHRpdGxlPVwie3tidXR0b25UaXRsZX19XCJcclxuICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVNZW51KCRldmVudClcIlxyXG4gICAgICAgICAgICAgKGtleWRvd24pPVwia2V5TmF2aWdhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICBbYXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiPlxyXG4gIDwvZWMtYnV0dG9uPlxyXG4gIDxzcGFuIGNsYXNzPVwiYXJyb3cgaXMte3tidXR0b25UeXBlfX1cIlxyXG4gICAgICAgICpuZ0lmPVwic2hvd0Fycm93XCJcclxuICAgICAgICBbY2xhc3MuaXMtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cclxuICAgIDxpIGNsYXNzPVwiZWMtaWNvbiBpY29uLWNhcmV0LWRvd25cIiBbY2xhc3MuZmxpcC15XT1cIm1lbnVTdGF0dXMgPT09ICd2aXNpYmxlJ1wiPjwvaT5cclxuICA8L3NwYW4+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNkcm9wZG93bk1lbnU+XHJcbiAgPGRpdiBpZD1cInt7aWR9fV9wb3B1cFwiXHJcbiAgICAgICBjbGFzcz1cInBvcHVwXCJcclxuICAgICAgIGVjT3ZlcmxheVxyXG4gICAgICAgW3N0YXR1c109XCJzdGF0dXM/LnN0YXR1c1wiXHJcbiAgICAgICBbbWVzc2FnZV09XCJzdGF0dXM/Lm1lc3NhZ2VcIlxyXG4gICAgICAgW2Rpc3BsYXlBc01hc2tdPVwidHJ1ZVwiPlxyXG4gICAgPCEtLSBEcm9wZG93biBNZW51IFRpdGxlIC0tPlxyXG4gICAgPGhlYWRlciBpZD1cInt7aWR9fV90aXRsZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC1oZWFkaW5nLTIgcHgtMiBteS0yXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJtZW51VGl0bGVcIj57e21lbnVUaXRsZX19XHJcbiAgICA8L2hlYWRlcj5cclxuICAgIDwhLS0gRHJvcGRvd24gTWVudSAtLT5cclxuICAgIDxlYy1tZW51IGlkPVwie3tpZH19X21lbnVcIlxyXG4gICAgICAgICAgICAgW2NsYXNzLndyYXAtaXRlbXNdPVwibWVudVdpZHRoXCJcclxuICAgICAgICAgICAgIFt0ZW1wbGF0ZVR5cGVdPVwibWVudVRlbXBsYXRlVHlwZVwiXHJcbiAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwibWVudVdpZHRoID8gbWVudVdpZHRoICsgJ3B4JyA6ICdhdXRvJ1wiXHJcbiAgICAgICAgICAgICBbc3R5bGUubWluLXdpZHRoXT1cIm1lbnVNaW5XaWR0aCA/IG1lbnVNaW5XaWR0aCArICdweCcgOiAnYXV0bydcIlxyXG4gICAgICAgICAgICAgW3N0eWxlLmhlaWdodF09XCJtZW51SGVpZ2h0ID8gbWVudUhlaWdodCArICdweCcgOiAnYXV0bydcIlxyXG4gICAgICAgICAgICAgW2l0ZW1zXT1cIml0ZW1zXCJcclxuICAgICAgICAgICAgIFtzaG93Tm9JdGVtc109XCJ0cnVlXCJcclxuICAgICAgICAgICAgIFtlbmFibGVLZXlOYXZdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICBbaGlnaGxpZ2h0ZWRJdGVtXT1cImhpZ2hsaWdodGVkSXRlbVwiXHJcbiAgICAgICAgICAgICBbZHJvcGRvd25Ub2dnbGVCdXR0b25dPVwiZHJvcGRvd25Ub2dnbGVCdXR0b24uYnV0dG9uRWxlbWVudFwiXHJcbiAgICAgICAgICAgICAoc2VsZWN0ZWRDaGFuZ2VkKT1cInNlbGVjdGVkQ2hhbmdlZCgkZXZlbnQpXCI+XHJcbiAgICA8L2VjLW1lbnU+XHJcbiAgICA8Zm9vdGVyICpuZ0lmPVwibWVudUZvb3RlclwiPnt7bWVudUZvb3Rlcn19PC9mb290ZXI+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+Il19
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUosT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFlLE1BQU0seURBQXlELENBQUM7QUFHL0csT0FBTyxFQUFFLGFBQWEsRUFBOEIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7OztBQU9uRixNQUFNLE9BQU8saUJBQWlCO0lBZ0s1QjtRQXpKQTs7V0FFRztRQUNhLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEM7O1dBRUc7UUFDYSxXQUFNLEdBQWtCLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFDLENBQUM7UUFFekU7O1dBRUc7UUFDYSxhQUFRLEdBQVcsS0FBSyxDQUFDO1FBWXpDOztXQUVHO1FBQ2EsZUFBVSxHQUFnQixNQUFNLENBQUM7UUFRakQ7OztXQUdHO1FBQ2EsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFPekM7O1dBRUc7UUFDYSxjQUFTLEdBQVksSUFBSSxDQUFDO1FBRTFDOztXQUVHO1FBQ2EsVUFBSyxHQUFlLEVBQUUsQ0FBQztRQUV2Qzs7V0FFRztR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VSxTQUFTO3NCQUF4QixLQUFLO2dCQUtVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBS1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQU1VLFNBQVM7c0JBQXhCLEtBQUs7Z0JBS1UsVUFBVTtzQkFBekIsS0FBSztnQkFLVSxTQUFTO3NCQUF4QixLQUFLO2dCQUtVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBS1UsWUFBWTtzQkFBM0IsS0FBSztnQkFLVSxVQUFVO3NCQUF6QixLQUFLO2dCQU1VLFVBQVU7c0JBQXpCLEtBQUs7Z0JBS1Usb0JBQW9CO3NCQUFuQyxLQUFLO2dCQU1VLE9BQU87c0JBRHRCLFdBQVc7dUJBQUMsa0JBQWtCOztzQkFDOUIsS0FBSztnQkFLVyxZQUFZO3NCQUE1QixNQUFNO2dCQUtVLFdBQVc7c0JBQTNCLE1BQU07Z0JBa0JpRCxNQUFNO3NCQUE3RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBS2dCLEtBQUs7c0JBQWxFLFNBQVM7dUJBQUMsdUJBQXVCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUtoQixvQkFBb0I7c0JBQXZELFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgUG9wcGVyIGZyb20gJ3BvcHBlci5qcyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgUG9wdXBDb250YWluZXJEaXJlY3RpdmUsIFBvcHVwU3RhdHVzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2RpcmVjdGl2ZXMvcG9wdXAvcG9wdXAtY29udGFpbmVyLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IERpc3BsYXlTdGF0dXMgfSBmcm9tICcuLi8uLi9zaGFyZWQvZGlzcGxheSc7XHJcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCwgQnV0dG9uVHlwZSB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWVudUNvbXBvbmVudCwgTWVudUl0ZW0sIE1lbnVUZW1wbGF0ZVR5cGUgfSBmcm9tICcuLi9tZW51L21lbnUuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWMtZHJvcGRvd24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIC8qKlxyXG4gICAqIEJhc2UgaWQgZm9yIHRoZSBjb21wb25lbnQncyBzdWItZWxlbWVudHNcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgaWQ/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEF1dG9tYXRpY2FsbHkgZm9jdXMgdGhlIGRyb3Bkb3duIHRvZ2dsZSBidXR0b25cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgYXV0b2ZvY3VzID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnRyb2xzIHRoZSBkaXNwbGF5IHN0YXR1cyBvdmVybGF5IGZvciB0aGUgbWVudVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzdGF0dXM/OkRpc3BsYXlTdGF0dXMgPSB7c3RhdHVzOiAnaGFzRGF0YScsIG1lc3NhZ2U6ICcnfTtcclxuXHJcbiAgLyoqXHJcbiAgICogRGlzYWJsZSB0aGUgYnV0dG9uIHRvIHByZXZlbnQgdGhlIG1lbnUgZnJvbSBiZWluZyBvcGVuZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6Ym9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBPcHRpb25hbCBsYWJlbCBmb3IgdGhlIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbD86IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogT3B0aW9uYWwgaWNvbiBmb3IgdGhlIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpY29uPzogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgYnV0dG9uIHR5cGUsIGRlZmF1bHRzIHRvIGljb25cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgYnV0dG9uVHlwZT86IEJ1dHRvblR5cGUgPSAnaWNvbic7XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wdGlvbmFsbHkgYWxpZ24gdGhlIGxhYmVsIG9mIHRoZSBidXR0b24gdG8gdGhlIGxlZnQgb3IgcmlnaHQuIElmIG5vdCBzZXQsXHJcbiAgICogd2lsbCBiZSBjZW50ZXJlZC5cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgYnV0dG9uQWxpZ25tZW50PzogJ2xlZnQnIHwgJ3JpZ2h0JztcclxuXHJcbiAgLyoqXHJcbiAgICogQWRkcyBhIHRvb2x0aXAgdG8gdGhlIGRyb3Bkb3duIHRvZ2dsZSBidXR0b24uIFNob3VsZCBvbmx5IGJlIHVzZWQgd2hlblxyXG4gICAqIHRoZSB0b2dnbGUgYnV0dG9uVHlwZSBpcyAnaWNvbidcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgYnV0dG9uVGl0bGU6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgdGFiaW5kZXggb2YgdGhlIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0YWJpbmRleD86IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICogRGlzcGxheSBhIGNhcmV0IHdpdGggdGhlIGJ1dHRvbiBsYWJlbCBvciBpY29uXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHNob3dBcnJvdzogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIEl0ZW1zIHRvIGRpc3BsYXkgaW4gdGhlIG1lbnVcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgaXRlbXM6IE1lbnVJdGVtW10gPSBbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIG1lbnUgaXRlbSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtZW51VGVtcGxhdGVUeXBlOiBNZW51VGVtcGxhdGVUeXBlID0gJ2xhYmVsJztcclxuXHJcbiAgLyoqXHJcbiAgICogRGlzcGxheSBhIGhlYWRlciBvbiB0aGUgbWVudVxyXG4gICAqIEBkZXByZWNhdGVkIHVzZSBmaXJzdCBtZW51IGl0ZW0gd2l0aCBkaXNwbGF5IHNldCB0byAnaGVhZGluZycgaW5zdGVhZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtZW51VGl0bGU/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCBhIGZpeGVkIGhlaWdodCBmb3IgdGhlIG1lbnUsIGF1dG8gYnkgZGVmYXVsdFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtZW51SGVpZ2h0PzogbnVtYmVyO1xyXG5cclxuICAvKipcclxuICAgKiBTZXQgYSBmaXhlZCB3aWR0aCBpbiBwaXhlbHMgZm9yIHRoZSBtZW51LCBhdXRvIGJ5IGRlZmF1bHRcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgbWVudVdpZHRoPzogbnVtYmVyO1xyXG5cclxuICAvKipcclxuICAgKiBTZXQgYSBtaW4td2lkdGggaW4gcGl4ZWxzIG9uIHRoZSBtZW51LiBJdCB3aWxsIGV4cGFuZCBpZiB0aGUgY29udGVudCBpcyBncmVhdGVyIHRoYW4gdGhlIG1pbi13aWR0aFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtZW51TWluV2lkdGg/OiBudW1iZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIFBpbiB0aGUgbWVudSB0byB0aGUgbGVmdCBvciByaWdodCBvZiB0aGUgYnV0dG9uLiBSaWdodCBieSBkZWZhdWx0XHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIG1lbnVQb3NpdGlvbj86ICdsZWZ0JyB8ICdyaWdodCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0aWNreSBmb290ZXIgdG8gZGlzcGxheSBhdCB0aGUgYm90dG9tIG9mIHRoZSBwb3B1cCBtZW51XHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIG1lbnVGb290ZXI/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpeCBwb3NpdGlvbiB0aGUgbWVudSBpbnN0ZWFkIG9mIGFic29sdXRlLiBVc2VmdWwgd2hlbiB0aGUgZHJvcGRvd24gaXMgaW4gYVxyXG4gICAqIGRpYWxvZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwb3B1cEZpeGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFBhc3MgYSBjdXN0b20gdGVtcGxhdGUgdG8gdGhlIHRvZ2dsZSBidXR0b25cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgYnV0dG9uQ3VzdG9tVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAvKipcclxuICAqIFVzZWQgdG8gc2V0IHRoZSBtZW51IGJ1dHRvbnMgc3RhdGUgdG8gcGVuZGluZ1xyXG4gICovXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1wZW5kaW5nJylcclxuICBASW5wdXQoKSBwdWJsaWMgcGVuZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBhbiBldmVudCB3aGVuIGEgbWVudSBpdGVtIGlzIHNlbGVjdGVkXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBpdGVtU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxNZW51SXRlbT4gPSBuZXcgRXZlbnRFbWl0dGVyPE1lbnVJdGVtPigpO1xyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBhbiBldmVudCB3aGVuIHRoZSBwb3B1cCBtZW51IG9wZW5zXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBwb3B1cE9wZW5lZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgc3RhdHVzIG9mIHRoZSBtZW51XHJcbiAgICovXHJcbiAgcHVibGljIG1lbnVTdGF0dXM6IFBvcHVwU3RhdHVzID0gJ2hpZGRlbic7XHJcblxyXG4gIC8qKiBJdGVtIHRvIGhpZ2hsaWdodCB3aGVuIHRoZSBtZW51IGlzIG9wZW5lZCwgdXNlZCB3aGVuIHRoZSB1c2VyXHJcbiAgICogIG9wZW5zIHRoZSBtZW51IHZpYSB0aGUga2V5Ym9hcmRcclxuICAgKi9cclxuICBwdWJsaWMgaGlnaGxpZ2h0ZWRJdGVtOiBNZW51SXRlbSB8IG51bGwgPSBudWxsO1xyXG5cclxuICAvKiogVXNlZCB0byBrbm93IGlmIHRoZSBtZW51IHdhcyB0b2dnbGVkIHZpYSB0aGUga2V5Ym9hcmQgKi9cclxuICBwcml2YXRlIGlzS2V5Ym9hcmRFdmVudDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBJbnRlcm5hbCByZWZlcmVuY2UgdG8gdGhlIG1lbnUgZWxlbWVudFxyXG4gICAqL1xyXG4gIEBWaWV3Q2hpbGQoTWVudUNvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pIHByaXZhdGUgbWVudUVsITpFbGVtZW50UmVmO1xyXG5cclxuICAvKipcclxuICAgKiBJbnRlcm5hbCByZWZlcmVuY2UgdG8gdGhlIHBvcHVwIGRpcmVjdGl2ZVxyXG4gICAqL1xyXG4gIEBWaWV3Q2hpbGQoUG9wdXBDb250YWluZXJEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIHByaXZhdGUgcG9wdXAhOiBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGEgcmVmZXJlbmNlIHRvIHRoZSB0b2dnbGUgYnV0dG9uXHJcbiAgICovXHJcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd25Ub2dnbGUnKSBwdWJsaWMgZHJvcGRvd25Ub2dnbGVCdXR0b24hOiBCdXR0b25Db21wb25lbnQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIFVuc3Vic2NyaWJlIGFueSBhY3RpdmUgc3Vic2NyaXB0aW9ucyB3aGVuIHRoZSBjb21wb25lbnQgaXMgZGVzdHJveWVkXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjb21wb25lbnREZXN0cm95ZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1YnNjcmliZSB0byBjaGFuZ2VzIHRvIHRoZSBtZW51IHN0YXR1c1xyXG4gICAqL1xyXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMucG9wdXAucG9wcGVyU3RhdHVzQ2hhbmdlXHJcbiAgICAucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKVxyXG4gICAgLnN1YnNjcmliZSgoZXZlbnQ6ICd2aXNpYmxlJyB8ICdoaWRkZW4nKSA9PiB7XHJcbiAgICAgIHRoaXMubWVudVN0YXR1cyA9IGV2ZW50O1xyXG4gICAgICBpZih0aGlzLm1lbnVTdGF0dXMgPT09ICd2aXNpYmxlJykge1xyXG4gICAgICAgIHRoaXMucG9wdXBPcGVuZWQuZW1pdCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCB1cCB0aGUgcG9wdXBcclxuICAgKi9cclxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgbGV0IHBvcHBlck9wdGlvbnM6IFBvcHBlci5Qb3BwZXJPcHRpb25zID0ge1xyXG5cdFx0XHRtb2RpZmllcnM6IHtcclxuXHRcdFx0XHRwcmV2ZW50T3ZlcmZsb3c6IHtcclxuXHRcdFx0XHRcdGJvdW5kYXJpZXNFbGVtZW50OiAndmlld3BvcnQnXHJcblx0XHRcdFx0fVxyXG4gICAgICB9LFxyXG4gICAgICBwbGFjZW1lbnQ6ICdib3R0b20tZW5kJ1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy5tZW51UG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICBwb3BwZXJPcHRpb25zLnBsYWNlbWVudCA9ICdib3R0b20tc3RhcnQnO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpZiAodGhpcy5wb3B1cEZpeGVkKSB7XHJcbiAgICAgIHBvcHBlck9wdGlvbnMub25DcmVhdGUgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5wb3B1cC5maXhQb3NpdGlvbigpO1xyXG4gICAgICB9XHJcblxyXG5cdFx0XHRwb3BwZXJPcHRpb25zLm9uVXBkYXRlID0gKCkgPT4ge1xyXG4gICAgICAgIC8vIEhpZGUgdGhlIHBvcHVwIHdoZW4gdGhlIGRyb3Bkb3duIGNoYW5nZXMgcG9zaXRpb24gZHVlIHRvIHdpbmRvdyByZXNpemVcclxuICAgICAgICAvLyBvciBjb250YWluZXIgc2Nyb2xsaW5nXHJcbiAgICAgICAgdGhpcy5wb3B1cC5oaWRlKCk7XHJcblx0XHRcdH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnBvcHVwLnBvcHBlck9wdGlvbnMgPSBwb3BwZXJPcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVW5zdWJzY3JpYmUgdG8gYW55IGFjdGl2ZSBzdWJzY3JpcHRpb25zXHJcbiAgICovXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5jb21wb25lbnREZXN0cm95ZWQubmV4dCgpO1xyXG4gICAgdGhpcy5jb21wb25lbnREZXN0cm95ZWQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wZW4gYW5kIGNsb3NlIHRoZSBtZW51XHJcbiAgICovXHJcbiAgcHVibGljIHRvZ2dsZU1lbnUoZXZlbnQ/OkV2ZW50KTp2b2lkIHtcclxuICAgIGlmIChldmVudCkge1xyXG5cdFx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgaWYgKHRoaXMubWVudVN0YXR1cyA9PT0gJ2hpZGRlbicpIHtcclxuICAgICAgICBpZiAodGhpcy5pc0tleWJvYXJkRXZlbnQgJiYgdGhpcy5pdGVtcy5sZW5ndGgpIHtcclxuICAgICAgICAgIC8vIFNldHVwIHRoZSBmaXJzdCBpdGVtIGluIHRoZSBsaXN0IHRvIGhpZ2hsaWdodCB3aGVuIG9wZW5pbmcgdGhlXHJcbiAgICAgICAgICAvLyBtZW51IHZpYSB0aGUga2V5Ym9hcmQsIGlnbm9yaW5nIGhlYWRpbmdzXHJcblxyXG4gICAgICAgICAgdGhpcy5oaWdobGlnaHRlZEl0ZW0gPSB0aGlzLml0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLmRpc3BsYXkgIT09ICdoZWFkaW5nJykgfHwgbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5wb3B1cC5zaG93KCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5wb3B1cC5oaWRlKCk7XHJcblxyXG4gICAgICAgIC8vIFJlc2V0IHRoZSBoaWdobGlnaHRlZCBpdGVtIGFuZCBvdXIga2V5Ym9hcmQgZmxhZ1xyXG4gICAgICAgIC8vIHdoZW4gd2UgY2xvc2UgdGhlIHBvcHVwXHJcbiAgICAgICAgdGhpcy5oaWdobGlnaHRlZEl0ZW0gPSBudWxsO1xyXG4gICAgICAgIHRoaXMuaXNLZXlib2FyZEV2ZW50ID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXQgdGhlIHNlbGVjdGVkIGl0ZW0gd2hlbiBpdCBjaGFuZ2VzIGFuZCBjbG9zZSB0aGUgbWVudVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZWxlY3RlZENoYW5nZWQoaXRlbTpNZW51SXRlbSk6dm9pZCB7XHJcbiAgICB0aGlzLml0ZW1TZWxlY3RlZC5lbWl0KGl0ZW0pO1xyXG4gICAgdGhpcy50b2dnbGVNZW51KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbG9zZXMgdGhlIG1lbnUgaWYgdGhlIHRhYiBrZXkgaXMgcHJlc3NlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBrZXlOYXZpZ2F0ZShldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcclxuICAgICAgY2FzZSAnRW50ZXInOlxyXG4gICAgICAgIHRoaXMuaXNLZXlib2FyZEV2ZW50ID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnRXNjYXBlJzpcclxuICAgICAgY2FzZSAnVGFiJzpcclxuICAgICAgICBpZiAodGhpcy5tZW51U3RhdHVzID09PSAndmlzaWJsZScpIHtcclxuICAgICAgICAgIHRoaXMudG9nZ2xlTWVudShldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb250cm9sXCI+XHJcbiAgPGVjLWJ1dHRvbiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgaWQ9XCJ7e2lkfX1fdG9nZ2xlXCJcclxuICAgICAgICAgICAgICNkcm9wZG93blRvZ2dsZVxyXG4gICAgICAgICAgICAgW25nQ2xhc3NdPVwieydoYXMtYXJyb3cnOnNob3dBcnJvdywgJ2FjdGl2ZSc6IG1lbnVTdGF0dXMgPT09ICd2aXNpYmxlJywgJ3RleHQtbGVmdCc6IGJ1dHRvbkFsaWdubWVudCA9PT0gJ2xlZnQnLCAndGV4dC1yaWdodCc6IGJ1dHRvbkFsaWdubWVudCA9PT0gJ3JpZ2h0J31cIlxyXG4gICAgICAgICAgICAgKmVjUG9wdXA9XCJkcm9wZG93bk1lbnVcIlxyXG4gICAgICAgICAgICAgW2xhYmVsXT1cImxhYmVsXCJcclxuICAgICAgICAgICAgIFtpY29uXT1cImljb25cIlxyXG4gICAgICAgICAgICAgW3RhYmluZGV4XT1cInRhYmluZGV4XCJcclxuICAgICAgICAgICAgIFt0eXBlXT1cImJ1dHRvblR5cGVcIlxyXG4gICAgICAgICAgICAgW2N1c3RvbVRlbXBsYXRlXT1cImJ1dHRvbkN1c3RvbVRlbXBsYXRlXCJcclxuICAgICAgICAgICAgIFtwZW5kaW5nXT1cInBlbmRpbmdcIlxyXG4gICAgICAgICAgICAgdGl0bGU9XCJ7e2J1dHRvblRpdGxlfX1cIlxyXG4gICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU1lbnUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAoa2V5ZG93bik9XCJrZXlOYXZpZ2F0ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgIFthdXRvZm9jdXNdPVwiYXV0b2ZvY3VzXCI+XHJcbiAgPC9lYy1idXR0b24+XHJcbiAgPHNwYW4gY2xhc3M9XCJhcnJvdyBpcy17e2J1dHRvblR5cGV9fVwiXHJcbiAgICAgICAgKm5nSWY9XCJzaG93QXJyb3dcIlxyXG4gICAgICAgIFtjbGFzcy5pcy1kaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxyXG4gICAgPGkgY2xhc3M9XCJlYy1pY29uIGljb24tY2FyZXQtZG93blwiIFtjbGFzcy5mbGlwLXldPVwibWVudVN0YXR1cyA9PT0gJ3Zpc2libGUnXCI+PC9pPlxyXG4gIDwvc3Bhbj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2Ryb3Bkb3duTWVudT5cclxuICA8ZGl2IGlkPVwie3tpZH19X3BvcHVwXCJcclxuICAgICAgIGNsYXNzPVwicG9wdXBcIlxyXG4gICAgICAgZWNPdmVybGF5XHJcbiAgICAgICBbc3RhdHVzXT1cInN0YXR1cz8uc3RhdHVzXCJcclxuICAgICAgIFttZXNzYWdlXT1cInN0YXR1cz8ubWVzc2FnZVwiXHJcbiAgICAgICBbZGlzcGxheUFzTWFza109XCJ0cnVlXCI+XHJcbiAgICA8IS0tIERyb3Bkb3duIE1lbnUgVGl0bGUgLS0+XHJcbiAgICA8aGVhZGVyIGlkPVwie3tpZH19X3RpdGxlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWhlYWRpbmctMiBweC0yIG15LTJcIlxyXG4gICAgICAgICAgICAqbmdJZj1cIm1lbnVUaXRsZVwiPnt7bWVudVRpdGxlfX1cclxuICAgIDwvaGVhZGVyPlxyXG4gICAgPCEtLSBEcm9wZG93biBNZW51IC0tPlxyXG4gICAgPGVjLW1lbnUgaWQ9XCJ7e2lkfX1fbWVudVwiXHJcbiAgICAgICAgICAgICBbY2xhc3Mud3JhcC1pdGVtc109XCJtZW51V2lkdGhcIlxyXG4gICAgICAgICAgICAgW3RlbXBsYXRlVHlwZV09XCJtZW51VGVtcGxhdGVUeXBlXCJcclxuICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJtZW51V2lkdGggPyBtZW51V2lkdGggKyAncHgnIDogJ2F1dG8nXCJcclxuICAgICAgICAgICAgIFtzdHlsZS5taW4td2lkdGhdPVwibWVudU1pbldpZHRoID8gbWVudU1pbldpZHRoICsgJ3B4JyA6ICdhdXRvJ1wiXHJcbiAgICAgICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cIm1lbnVIZWlnaHQgPyBtZW51SGVpZ2h0ICsgJ3B4JyA6ICdhdXRvJ1wiXHJcbiAgICAgICAgICAgICBbaXRlbXNdPVwiaXRlbXNcIlxyXG4gICAgICAgICAgICAgW3Nob3dOb0l0ZW1zXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgW2VuYWJsZUtleU5hdl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgIFtoaWdobGlnaHRlZEl0ZW1dPVwiaGlnaGxpZ2h0ZWRJdGVtXCJcclxuICAgICAgICAgICAgIFtkcm9wZG93blRvZ2dsZUJ1dHRvbl09XCJkcm9wZG93blRvZ2dsZUJ1dHRvbi5idXR0b25FbGVtZW50XCJcclxuICAgICAgICAgICAgIChzZWxlY3RlZENoYW5nZWQpPVwic2VsZWN0ZWRDaGFuZ2VkKCRldmVudClcIj5cclxuICAgIDwvZWMtbWVudT5cclxuICAgIDxmb290ZXIgKm5nSWY9XCJtZW51Rm9vdGVyXCI+e3ttZW51Rm9vdGVyfX08L2Zvb3Rlcj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -2,6 +2,7 @@ import { Component, ElementRef, Input, ViewChild } from '@angular/core';
2
2
  import { FormControl, FormGroup } from '@angular/forms';
3
3
  import { filter, take, takeUntil } from 'rxjs/operators';
4
4
  import { FormControlBase } from '../form-control-base';
5
+ import { lastValueFrom } from 'rxjs';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "../../core/validation-message.service";
7
8
  import * as i2 from "../../shared/form-group.helper";
@@ -183,7 +184,7 @@ export class FileUploadComponent extends FormControlBase {
183
184
  this.formModel.patchValue({ base64FileString, file, name: file.name, uploadResult: null });
184
185
  // If we have any async validators pending we need to wait for them to complete before we know if the form is valid
185
186
  if (this.formModel.pending) {
186
- await this.formModel.statusChanges.pipe(filter(status => status !== 'PENDING'), take(1), takeUntil(this.componentDestroyed)).toPromise();
187
+ await lastValueFrom(this.formModel.statusChanges.pipe(filter(status => status !== 'PENDING'), take(1), takeUntil(this.componentDestroyed)));
187
188
  }
188
189
  // Mark the name control as touched so that any validation errors will show
189
190
  this.formModel.controls.name.markAsTouched();
@@ -257,4 +258,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
257
258
  type: ViewChild,
258
259
  args: ["fileInput", { read: ElementRef, static: true }]
259
260
  }] } });
260
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQW9DLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQXFDLFdBQVcsRUFBRSxTQUFTLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RyxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7QUFLdkQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDaEMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQ2IsS0FBSyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQztDQUN6QixDQUFDO0FBb0JGLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxlQUFlO0lBRXRELGdFQUFnRTtJQUN6RCxNQUFNLENBQUMsWUFBWSxDQUN4QixVQUF5QixFQUN6QixXQUFvQixLQUFLO0lBQ3pCLDRPQUE0TztJQUM1TyxjQUFzRDtRQUV0RCxJQUFJLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBc0I7WUFDakQsSUFBSSxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBQyxVQUFVLEVBQUUsVUFB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bnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQXN5bmNWYWxpZGF0b3JGbiwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGZpbHRlciwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3ZhbGlkYXRpb24tbWVzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwSGVscGVyIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Zvcm0tZ3JvdXAuaGVscGVyJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2xCYXNlIH0gZnJvbSAnLi4vZm9ybS1jb250cm9sLWJhc2UnO1xyXG5cclxuZXhwb3J0IHR5cGUgRmlsZVR5cGUgPSAnemlwJyB8ICdleGNlbCcgfCAnY3VzdG9tJztcclxuZXhwb3J0IHR5cGUgRmlsZU91dHB1dCA9ICdyYXcnIHwgJ2Jhc2U2NCc7XHJcblxyXG5leHBvcnQgY29uc3QgRmlsZVR5cGVFeHRlbnNpb25zID0ge1xyXG4gIHppcDogWycuemlwJ10sXHJcbiAgZXhjZWw6IFsnLnhscycsICcueGxzeCddXHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBGaWxlVXBsb2FkRm9ybUdyb3VwID0ge1xyXG4gIGZpbGU6IEZvcm1Db250cm9sPEZpbGUgfCBudWxsPjtcclxuICBuYW1lOiBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPjtcclxuICBiYXNlNjRGaWxlU3RyaW5nOiBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPjtcclxuICB1cGxvYWRSZXN1bHQ6IEZvcm1Db250cm9sPGFueT47XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBJbnZhbGlkRmlsZUVycm9yID0ge1xyXG4gIGludmFsaWRGaWxlOiB0cnVlO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgRmlsZVZhbGlkYXRvckNhbGxiYWNrID0gKGZpbGU6IEZpbGUgfCBudWxsIHwgdW5kZWZpbmVkLCBiYXNlNjQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpID0+IFByb21pc2U8SW52YWxpZEZpbGVFcnJvciB8IG51bGw+O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiZWMtZmlsZS11cGxvYWRcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5zY3NzXCJdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29tcG9uZW50IGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG5cclxuICAvLyBzdGF0aWMgY2xhc3MgdG8gY3JlYXRlIHRoZSBmb3JtIGdyb3VwIGZyb20gYSBwYXJlbnQgY29tcG9uZW50XHJcbiAgcHVibGljIHN0YXRpYyBnZXRGb3JtTW9kZWwoXHJcbiAgICB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdLFxyXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZSxcclxuICAgIC8qKiBBbnkgdmFsaWRhdG9ycyByZXF1aXJlZCB0byBtYWtlIHN1cmUgdGhlIHNlbGVjdGVkIGZpbGUgaXMgdmFsaWQuIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgeW91IHVzZSBgRmlsZVVwbG9hZENvbXBvbmVudC5nZXRGaWxlVmFsaWRhdG9yYCB0byBoZWxwIGNvbnN0cnVjdCB0aGUgdmFsaWRhdG9yKHMpLiBOT1RFOiBUaGlzIGN1cnJlbnRseSBvbmx5IHdvcmtzIHdoZW4gbXVsdGlTZWxlY3QgaXMgZmFsc2UuICovXHJcbiAgICBmaWxlVmFsaWRhdG9ycz86IEFzeW5jVmFsaWRhdG9yRm4gfCBBc3luY1ZhbGlkYXRvckZuW11cclxuICApOiBGb3JtR3JvdXA8RmlsZVVwbG9hZEZvcm1Hcm91cD4ge1xyXG4gICAgbGV0IGZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXA8RmlsZVVwbG9hZEZvcm1Hcm91cD4oe1xyXG4gICAgICBmaWxlOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogbnVsbCwgZGlzYWJsZWQ6IGRpc2FibGVkIH0sIHt2YWxpZGF0b3JzOiB2YWxpZGF0b3JzLCBhc3luY1ZhbGlkYXRvcnM6IGZpbGVWYWxpZGF0b3JzfSksXHJcbiAgICAgIG5hbWU6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiBudWxsLCBkaXNhYmxlZDogZGlzYWJsZWQgfSwgdmFsaWRhdG9ycyksXHJcbiAgICAgIGJhc2U2NEZpbGVTdHJpbmc6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAgICAgdXBsb2FkUmVzdWx0OiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICB9KTtcclxuICAgIGlmIChkaXNhYmxlZCkge1xyXG4gICAgICBmb3JtR3JvdXAuZGlzYWJsZSgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvcm1Hcm91cDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhlbHBlciBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gYXN5bmMgdmFsaWRhdG9yIHRvIGJlIHVzZWQgd2l0aCB0aGUgZmlsZSB1cGxvYWQgY29udHJvbC5cclxuICAgKiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2hlbiB0aGUgZmlsZSBuZWVkcyB0byBiZSB2YWxpZGF0ZWQgYmVmb3JlIGl0IGNhbiBiZSB1cGxvYWRlZC5cclxuICAgKiBcclxuICAgKiBAcGFyYW0gY2FsbGJhY2sgVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgdG8gdmFsaWRhdGUgdGhlIGZpbGUuIFBhcmFtZXRlcnMgZm9yIHRoZSBjYWxsYmFjayBhcmUgdGhlIGZpbGUgYW5kIHRoZSBiYXNlNjQgc3RyaW5nIGZvciB0aGUgZmlsZS5cclxuICAgKiBiYXNlNjQgaXMgbnVsbCBpZiB0aGUgZmlsZU91dHB1dCBpbnB1dCBvbiB0aGUgRmlsZVVwbG9hZENvbXBvbmVudCBpcyBzZXQgdG8gcmF3LiBVc2luZyBmaWxlT3V0cHV0IHNldCB0byBiYXNlNjQgaXMgcmVjb21tZW5kZWQgZm9yIGltYWdlcy5cclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIGdldEZpbGVWYWxpZGF0b3IoY2FsbGJhY2s6IEZpbGVWYWxpZGF0b3JDYWxsYmFjayk6IEFzeW5jVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIGFzeW5jIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcclxuICAgICAgaWYgKGNvbnRyb2wudmFsdWUgJiYgY29udHJvbC5wYXJlbnQpIHtcclxuICAgICAgICBsZXQgZmlsZSA9IGNvbnRyb2wudmFsdWUgYXMgRmlsZTtcclxuICAgICAgICAvLyBGb3IgaW1hZ2VzLCB3ZSBuZWVkIHRoZSBiYXNlNjQgc3RyaW5nIHRvIHZhbGlkYXRlIGltYWdlIGRpbWVuc2lvbnNcclxuICAgICAgICBsZXQgYmFzZTY0ID0gY29udHJvbC5wYXJlbnQuZ2V0KCdiYXNlNjRGaWxlU3RyaW5nJyk/LnZhbHVlIGFzIHN0cmluZztcclxuICAgICAgICByZXR1cm4gYXdhaXQgY2FsbGJhY2soZmlsZSwgYmFzZTY0KTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtTW9kZWwhOiBGb3JtR3JvdXA8RmlsZVVwbG9hZEZvcm1Hcm91cD47XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgdGV4dGJveCBpbnB1dCdzIHBsYWNlaG9sZGVyXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyPzogc3RyaW5nID0gXCJDaG9vc2UgZmlsZS4uLlwiO1xyXG5cclxuICAvKiogQ29tbW9uIGV4dGVuc2lvbnMgZm9yIGEgZmlsZSBicm93c2luZyBkaWFsb2dcclxuICAgKiAgTm90ZTogRWRnZSBkb2VzIG5vdCBzdXBwb3J0IHRoZSBhY2NlcHQgYXR0cmlidXRlIG9uIGZpbGUgaW5wdXRzLCB0aGVyZWZvciBhbGwgZmlsZSB0eXBlc1xyXG4gICAqICAgICAgICB3aWxsIGJlIHNob3duLiAgRmlyZWZveCBhbmQgQ2hyb21lIGJvdGggc3VwcG9ydCB0aGlzIGZlYXR1cmUuXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGZpbGVUeXBlPzogRmlsZVR5cGUgfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpbGUgb3V0cHV0LCBkZXRlcm1pbmVzIHdoaWNoIHByb3BlcnRpZXMgYXJlIHN1cHBsaWVkIG9uIHRoZSBmb3JtTW9kZWxcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgZmlsZU91dHB1dD86IEZpbGVPdXRwdXQgPSAnYmFzZTY0JztcclxuXHJcbiAgLyoqIElmIGZpbGVUeXBlIGlzIHNldCB0byBjdXN0b20gc2V0IHRoZSBhY2NlcHRhYmxlIGZpbGUgdHlwZXMgYmFzZWQgb24gdGhlIGN1c3RvbSBhcnJheSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21FeHRlbnNpb25zPzogQXJyYXk8c3RyaW5nPiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgLyoqXHJcbiAgICogT3B0aW9uYWwgY2FsbGJhY2sgc3VwcG9ydGVkIGlmIHRoZSBob3N0aW5nIHBhZ2UgbmVlZHMgdG8gcHJvY2VzcyB0aGUgZmlsZSBiZWZvcmVcclxuICAgKiBzZXR0aW5nIHRoZSBmb3JtTW9kZWwgd2l0aCB0aGUgZmlsZSBpbmZvcm1hdGlvbi4gSWYgdGhlIHByb21pc2UgcmVzb2x2ZXMgaXQgd2lsbCBjb250aW51ZVxyXG4gICAqIGFuZCBzZXQgdGhlIGZpbGUgbmFtZSBhbmQgY29udGVudHMgdG8gdGhlIGZvcm1Nb2RlbCwgb3RoZXJ3aXNlIG9uIGZhaWx1cmUgaXQnbGwgZG8gbm90aGluZy5cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgb25GaWxlU2VsZWN0ZWQ/OiAoZmlsZTogRmlsZSkgPT4gUHJvbWlzZTxhbnk+O1xyXG5cclxuICAvKipcclxuICAgKiBPcHRpb25hbCBjYWxsYmFjayBzdXBwb3J0ZWQgZm9yIHdoZW4gdGhlIGhvc3RpbmcgcGFnZSBuZWVkcyB0byBwcm9jZXNzIG11bHRpcGxlIGZpbGVzXHJcbiAgICogV2Ugc2ltcGx5IG1hcCB0aGUgRmlsZUxpc3QgdG8gYW4gYXJyYXkgb2YgRmlsZSBvYmplY3RzIGFuZCBwYXNzIHRoYXQgYXJyYXkgdG8gdGhlIFxyXG4gICAqIGNhbGxiYWNrIGFuZCBsZXQgdGhlIGhvc3RpbmcgcGFnZSBoYW5kbGUgdGhlIHByb2Nlc3NpbmdcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgb25NdWx0aXBsZUZpbGVzU2VsZWN0ZWQ/OiAoZmlsZXM6IEZpbGVbXSkgPT4gUHJvbWlzZTxhbnk+O1xyXG5cclxuICAvKiogXHJcbiAgICogT3B0aW9uYWwgZGlzcGxheSB0eXBlIHRoYXQgY29udHJvbHMgd2hldGhlciB0aGUgZmlsZSBpbnB1dCB0ZXh0Ym94IGlzIGRpc3BsYXllZCBvclxyXG4gICAqIHNpbXBseSBhIGJ1dHRvbiB0aGUgdXNlciBjbGlja3MgdG8gbGF1bmNoIHRoZSBPUyBmaWxlIHN0b3JhZ2UgZGlhbG9nLlxyXG4gICAqIERlZmF1bHQ6IGZpbGVcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgZGlzcGxheVR5cGU/OiAnZmlsZScgfCAnYnV0dG9uJyA9ICdmaWxlJztcclxuXHJcbiAgLyoqIFxyXG4gICAqIFdoZW4gZGlzcGxheSB0eXBlIGlzIHNldCB0byBidXR0b24gdGhpcyBwcm9wZXJ0eSB3aWxsIGNvbnRyb2wgdGhlIGJ1dHRvbiBsYWJlbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBidXR0b25MYWJlbD86IHN0cmluZztcclxuXHJcbiAgLyoqIFxyXG4gICAqIFdoZW4gZGlzcGxheSB0eXBlIGlzIHNldCB0byBidXR0b24gdGhpcyBwcm9wZXJ0eSB3aWxsIGNvbnRyb2wgdGhlIGJ1dHRvbiB0eXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGJ1dHRvblR5cGU/OiBzdHJpbmcgPSAncHJpbWFyeSc7XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wdGlvbmFsIHByb3BlcnR5IHRvIGNvbnRyb2wgd2hldGhlciB0aGUgdXNlciBjYW4gc2VsZWN0IG11bHRpcGxlIGZpbGVzXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIG11bHRpU2VsZWN0PzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBXaGVuIHRydWUsIHRoZSBvbkZpbGVTZWxlY3RlZCBjYWxsYmFjayB3aWxsIG5vdCBiZSBjYWxsZWQgaWYgdGhlIGZvcm0gaXMgaW52YWxpZC5cclxuICAgKiBUaGlzIGlzIHVzZWZ1bCB3aGVuIHRoZSBmaWxlIG5lZWRzIHRvIGJlIHZhbGlkYXRlZCBiZWZvcmUgaXQgY2FuIGJlIHVwbG9hZGVkLlxyXG4gICAqIEZvciBzZXJ2ZXItc2lkZSB2YWxpZGF0aW9uLCBsZWF2ZSB0aGlzIGFzIGZhbHNlIGFuZCB1c2UgdGhlIG9uRmlsZVNlbGVjdGVkIGNhbGxiYWNrXHJcbiAgICogdG8gdXBsb2FkIHRoZSBmaWxlIGFuZCBoYW5kbGUgYW55IGVycm9ycyB0aHJvd24gYnkgdGhlIEFQSS5cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGVCZWZvcmVVcGxvYWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQFZpZXdDaGlsZChcImZpbGVJbnB1dFwiLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgZmlsZUlucHV0PzogRWxlbWVudFJlZjtcclxuXHJcbiAgLyoqIFByb3BlcnR5IGJvdW5kIHRvIHRoZSBmaWxlIGlucHV0IHRvIGZpbHRlciB3aGF0IGZpbGUgdHlwZXMgYXJlIHNob3duIGluIHRoZSBkaWFsb2cgKi9cclxuICBwdWJsaWMgZmlsZVR5cGVBY2NlcHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlOiBWYWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgZm9ybUdyb3VwSGVscGVyOiBGb3JtR3JvdXBIZWxwZXIsXHJcbiAgKSB7XHJcbiAgICBzdXBlcih2YWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UsIGZvcm1Hcm91cEhlbHBlcik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XHJcblxyXG4gICAgdGhpcy51cGRhdGVGaWxlVHlwZUFjY2VwdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuXHJcbiAgICAvLyBXYXRjaCBmb3IgbmFtZSB0byBjaGFuZ2UsIGlmIHRoZSB2YWx1ZSBpcyBjbGVhcmVkIHdlIHdpbGwgY2xlYXIgdGhlIG90aGVyXHJcbiAgICAvLyBzdXBwb3J0aW5nIG1vZGVsIHByb3BlcnRpZXMuIFRoZSBuYW1lIGNhbiBiZSBjbGVhcmVkIGJ5IHRoZSB1c2VyIG1hbnVhbGx5IG9yIHZpYVxyXG4gICAgLy8gdGhlIGNsZWFyIGJ1dHRvblxyXG4gICAgdGhpcy5mb3JtTW9kZWw/LmdldCgnbmFtZScpPy52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKVxyXG4gICAgKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtTW9kZWwucGF0Y2hWYWx1ZSh7XHJcbiAgICAgICAgICBmaWxlOiBudWxsLFxyXG4gICAgICAgICAgYmFzZTY0RmlsZVN0cmluZzogbnVsbCxcclxuICAgICAgICAgIHVwbG9hZFJlc3VsdDogbnVsbFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBTeW5jIGVycm9ycyBmcm9tIHRoZSBmaWxlIGNvbnRyb2wgdG8gdGhlIG5hbWUgY29udHJvbCB3aGVuZXZlciB0aGUgZmlsZSBjb250cm9sIHN0YXR1cyBjaGFuZ2VzLlxyXG4gICAgLy8gVGhlIG5hbWUgY29udHJvbCBpcyB0aGUgb25seSBvbmUgZGlzcGxheWVkIHRvIHRoZSB1c2VyIHNvIHdlIG5lZWQgdG8gc2hvdyB0aGUgZXJyb3JzIHRoZXJlLlxyXG4gICAgdGhpcy5mb3JtTW9kZWwuZ2V0KCdmaWxlJyk/LnN0YXR1c0NoYW5nZXMucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKVxyXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBjb25zdCBlcnJvcnMgPSB0aGlzLmZvcm1Nb2RlbC5nZXQoJ2ZpbGUnKT8uZXJyb3JzID8/IG51bGw7XHJcbiAgICAgIHRoaXMuZm9ybU1vZGVsLmdldCgnbmFtZScpPy5zZXRFcnJvcnMoZXJyb3JzKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGZpbGVDaGFuZ2UoZmlsZXM6IEZpbGVMaXN0KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5tdWx0aVNlbGVjdCkge1xyXG4gICAgICB0aGlzLmhhbmRsZU11bHRpcGxlRmlsZXMoZmlsZXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgZmlsZTogRmlsZSB8IG51bGwgPSBmaWxlcy5pdGVtKDApO1xyXG4gICAgICBpZiAoZmlsZSkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMucmVhZEZpbGUoZmlsZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBDbGVhciB0aGUgZmlsZSBpbnB1dHMgdmFsdWUsIHRoaXMgd2lsbCBhbGxvdyB0aGUgdXNlciB0byBwaWNrIHRoZSBzYW1lIGZpbGVuYW1lcyBhZ2FpblxyXG4gICAgLy8gYW5kIGNhdXNlIGZpbGVDaGFuZ2UgdG8gcmUtdHJpZ2dlci5cclxuICAgIGlmICh0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVja3MgdGhlIGZpbGUgdHlwZSBhbmQgdXBkYXRlcyB0aGUgZmlsZSB0eXBlIGFjY2VwdCBwcm9wZXJ0eS4gVGhpcyBpcyB3aGF0IGRldGVybWluZXMgdGhlIGZpbGVcclxuICAgKiB0eXBlIGNob2ljZXMgdGhhdCB0aGUgdXNlciB3aWxsIGJlIGxpbWl0ZWQgdG8gaW4gdGhlIGZpbGUgYnJvd3NlIGRpYWxvZ1xyXG4gICAqL1xyXG4gIHByaXZhdGUgdXBkYXRlRmlsZVR5cGVBY2NlcHQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5maWxlVHlwZSkge1xyXG4gICAgICBpZiAodGhpcy5maWxlVHlwZSAhPT0gXCJjdXN0b21cIikge1xyXG4gICAgICAgIHRoaXMuZmlsZVR5cGVBY2NlcHQgPSBGaWxlVHlwZUV4dGVuc2lvbnNbdGhpcy5maWxlVHlwZV0uam9pbihcIixcIik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tRXh0ZW5zaW9ucykge1xyXG4gICAgICAgICAgdGhpcy5maWxlVHlwZUFjY2VwdCA9IHRoaXMuY3VzdG9tRXh0ZW5zaW9ucy5qb2luKFwiLFwiKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRha2UgYSBmaWxlIHRoYXQgd2FzIHNlbGVjdGVkIGJ5IHRoZSB1c2VyIGFuZCBwcm9jZXNzL3BhdGNoIG91ciBmb3JtIG1vZGVsXHJcbiAgICogSWYgdGhlIGhvc3QgY29tcG9uZW50IHJlcXVpcmVzIGFuIGFjdGlvbiB0byBvY2N1ciB3aXRoIHRoZSBmaWxlIHByaW9yIHRvIHRoZSBwYXRjaCBpdCB3aWxsIGNhbGxcclxuICAgKiBhbmQgd2FpdCBmb3IgaXQgdG8gcmV0dXJuLlxyXG4gICAqIEBwYXJhbSBmaWxlIFxyXG4gICAqIEBwYXJhbSBiYXNlNjRGaWxlU3RyaW5nIE9wdGlvbmFsOiBXaWxsIGhhdmUgYSB2YWx1ZSBwcm92aWRlZCBpZiB0aGUgZmlsZU91dHB1dCBpcyBzZXQgdG8gYmFzZTY0XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhc3luYyBwcm9jZXNzRmlsZShmaWxlOiBGaWxlLCBiYXNlNjRGaWxlU3RyaW5nOiBzdHJpbmcgfCBudWxsID0gbnVsbCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy8gSWYgd2UgYXJlIHZhbGlkYXRpbmcgYmVmb3JlIHVwbG9hZCB3ZSBuZWVkIHRvIHBhdGNoIHRoZSBmaWxlIHRvIHRoZSBmb3JtIHRvIHRyaWdnZXIgdmFsaWRhdGlvbiBiZWZvcmUgY2FsbGluZyBvbkZpbGVTZWxlY3RlZFxyXG4gICAgaWYgKHRoaXMudmFsaWRhdGVCZWZvcmVVcGxvYWQpIHtcclxuICAgICAgYXdhaXQgdGhpcy52YWxpZGF0ZUZpbGUoZmlsZSwgYmFzZTY0RmlsZVN0cmluZyk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmICh0aGlzLm9uRmlsZVNlbGVjdGVkKSB7XHJcbiAgICAgIC8vIE9ubHkgY2FsbCB0aGUgb25GaWxlU2VsZWN0ZWQgY2FsbGJhY2sgdG8gdXBsb2FkIHRoZSBmaWxlIGlmIHRoZSBmb3JtIGdyb3VwIGlzIHZhbGlkIG9yIHdlIGFyZSBub3QgdmFsaWRhdGluZyBiZWZvcmUgdXBsb2FkXHJcbiAgICAgIGlmICghdGhpcy52YWxpZGF0ZUJlZm9yZVVwbG9hZCB8fCB0aGlzLmZvcm1Nb2RlbC52YWxpZCkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgdGhpcy5vbkZpbGVTZWxlY3RlZChmaWxlKTtcclxuICBcclxuICAgICAgICAgIC8vIElmIHdlIGRpZCB2YWxpZGF0aW9uLCBqdXN0IHBhdGNoIHRoZSBmb3JtIHJlc3VsdCBiZWNhdXNlIHRoZSBmaWxlIGlzIGFscmVhZHkgaW4gdGhlIGZvcm1cclxuICAgICAgICAgIGlmICh0aGlzLnZhbGlkYXRlQmVmb3JlVXBsb2FkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybU1vZGVsLnBhdGNoVmFsdWUoeyB1cGxvYWRSZXN1bHQ6IHJlc3VsdCA/PyBudWxsIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtTW9kZWwucGF0Y2hWYWx1ZSh7IGJhc2U2NEZpbGVTdHJpbmcsIGZpbGUsIG5hbWU6IGZpbGUubmFtZSwgdXBsb2FkUmVzdWx0OiByZXN1bHQgPz8gbnVsbCB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAvLyBCdW1tZXIsIHdlJ3JlIG5vdCBnb2luZyB0byBkbyBhbnl0aGluZyBhYm91dCBpdCB0aG91Z2guXHJcbiAgICAgICAgICAvLyBXZSBhcmUgbm90IHBhdGNoaW5nIGFueSBvZiB0aGUgcmVzdWx0IHNvIGFueSBleGlzdGluZyBpbmZvcm1hdGlvbiByZW1haW5zXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGFuIG9uRmlsZVNlbGVjdGVkIGNhbGxiYWNrIHdlIGp1c3QgcGF0Y2ggdGhlIGZvcm0gbW9kZWwuXHJcbiAgICAvLyBJbiB0aGUgY2FzZSBvZiBwcmUtdXBsb2FkIHZhbGlkYXRpb24gdGhlIGZvcm0gYWxyZWFkeSBoYXMgdGhlIGZpbGUgc28gd2UgZG9uJ3Qgd2FudCB0byBwYXRjaCBhZ2Fpbi5cclxuICAgIH0gZWxzZSBpZiAoIXRoaXMudmFsaWRhdGVCZWZvcmVVcGxvYWQpIHtcclxuICAgICAgdGhpcy5mb3JtTW9kZWwucGF0Y2hWYWx1ZSh7IGJhc2U2NEZpbGVTdHJpbmcsIGZpbGUsIG5hbWU6IGZpbGUubmFtZSwgdXBsb2FkUmVzdWx0OiBudWxsIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIFBhdGNoZXMgdGhlIGZvcm0gd2l0aCB0aGUgc2VsZWN0ZWQgZmlsZSBpbiBvcmRlciB0byB0cmlnZ2VyIGNvbnRyb2wgdmFsaWRhdGlvbiAqL1xyXG4gIHByaXZhdGUgYXN5bmMgdmFsaWRhdGVGaWxlKGZpbGU6IEZpbGUsIGJhc2U2NEZpbGVTdHJpbmc6IHN0cmluZyB8IG51bGwgPSBudWxsKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvLyBQYXRjaCB0aGUgZmlsZSBmaXJzdCB0byB0cmlnZ2VyIGFueSBmaWxlIHZhbGlkYXRvcnNcclxuICAgIHRoaXMuZm9ybU1vZGVsLnBhdGNoVmFsdWUoeyBiYXNlNjRGaWxlU3RyaW5nLCBmaWxlLCBuYW1lOiBmaWxlLm5hbWUsIHVwbG9hZFJlc3VsdDogbnVsbCB9KTtcclxuXHJcbiAgICAvLyBJZiB3ZSBoYXZlIGFueSBhc3luYyB2YWxpZGF0b3JzIHBlbmRpbmcgd2UgbmVlZCB0byB3YWl0IGZvciB0aGVtIHRvIGNvbXBsZXRlIGJlZm9yZSB3ZSBrbm93IGlmIHRoZSBmb3JtIGlzIHZhbGlkXHJcbiAgICBpZiAodGhpcy5mb3JtTW9kZWwucGVuZGluZykge1xyXG4gICAgICBhd2FpdCB0aGlzLmZvcm1Nb2RlbC5zdGF0dXNDaGFuZ2VzLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKHN0YXR1cyA9PiBzdGF0dXMgIT09ICdQRU5ESU5HJyksXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpXHJcbiAgICAgICkudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTWFyayB0aGUgbmFtZSBjb250cm9sIGFzIHRvdWNoZWQgc28gdGhhdCBhbnkgdmFsaWRhdGlvbiBlcnJvcnMgd2lsbCBzaG93XHJcbiAgICB0aGlzLmZvcm1Nb2RlbC5jb250cm9scy5uYW1lLm1hcmtBc1RvdWNoZWQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJhc2VkIG9uIHRoZSBmaWxlT3V0cHV0IHJldHVybiB3aGV0aGVyIHRoaXMgY29tcG9uZW50IGlzIGV4cGVjdGVkIHRvIGRlbGl2ZXIgYSBiYXNlNjQgb3V0cHV0XHJcbiAgICogQHJldHVybnMgXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpc0Jhc2U2NEZpbGVPdXRwdXQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5maWxlT3V0cHV0ID09PSAnYmFzZTY0JztcclxuICB9XHJcblxyXG4gIC8qKiBNYXBzIHRoZSBmaWxlcyB0byBhbiBhcnJheSBvZiBGaWxlIG9iamVjdHMgYW5kIHNlbmRzIHRoZW0gYWxvbmdcclxuICAgKiB0byB0aGUgZGVyaXZlZCBvbk11bHRpcGxlRmlsZVNlbGVjdGVkIG1ldGhvZCBpbiB0aGUgaG9zdGluZyBjb21wb25lbnRcclxuICAgKi9cclxuICBwcml2YXRlIGFzeW5jIGhhbmRsZU11bHRpcGxlRmlsZXMoZmlsZXM6IEZpbGVMaXN0KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBmaWxlc0FycmF5ID0gQXJyYXkuZnJvbShmaWxlcyk7XHJcblxyXG4gICAgaWYgKHRoaXMub25NdWx0aXBsZUZpbGVzU2VsZWN0ZWQpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgdGhpcy5vbk11bHRpcGxlRmlsZXNTZWxlY3RlZChmaWxlc0FycmF5KTtcclxuICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdlcnJvcjogJywgZSk7XHJcbiAgICAgIH0gIFxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgcmVhZEZpbGUoZmlsZTogRmlsZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgcmVhZGVyOiBGaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuXHJcbiAgICByZWFkZXIub25sb2FkZW5kID0gYXN5bmMgZSA9PiB7XHJcbiAgICAgIGxldCBiYXNlNjRGaWxlU3RyaW5nOiBzdHJpbmcgfCB1bmRlZmluZWQgPSByZWFkZXI/LnJlc3VsdD8udG9TdHJpbmcoKS5zcGxpdChcIixcIilbMV07XHJcbiAgICAgIGF3YWl0IHRoaXMucHJvY2Vzc0ZpbGUoZmlsZSwgYmFzZTY0RmlsZVN0cmluZyk7XHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0aGlzLmlzQmFzZTY0RmlsZU91dHB1dCgpKSB7XHJcbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYXdhaXQgdGhpcy5wcm9jZXNzRmlsZShmaWxlKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGVjLWZvcm0tZ3JvdXAgW2xhYmVsXT1cImxhYmVsXCJcclxuICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtTW9kZWxcIlxyXG4gICAgICAgICAgICAgICBbaGVscFBvcG92ZXJdPVwiaGVscFBvcG92ZXJcIlxyXG4gICAgICAgICAgICAgICBbaGVscFBvcG92ZXJQb3NpdGlvbl09XCJoZWxwUG9wb3ZlclBvc2l0aW9uXCJcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJtYi0wXCI+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBjb250cm9sLWdyb3VwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtZ3JvdyBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICA8aW5wdXQgI2ZpbGVJbnB1dFxyXG4gICAgICAgICAgICAgaWQ9XCJ7e2lucHV0SWR9fV9pbnB1dFwiXHJcbiAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXHJcbiAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcclxuICAgICAgICAgICAgIFthdHRyLmFjY2VwdF09XCJmaWxlVHlwZUFjY2VwdFwiXHJcbiAgICAgICAgICAgICAoY2hhbmdlKT1cImZpbGVDaGFuZ2UoJGV2ZW50LnRhcmdldC5maWxlcylcIlxyXG4gICAgICAgICAgICAgW2NsYXNzLmhhcy12YWx1ZV09XCJkaXNwbGF5VHlwZSA9PT0gJ2ZpbGUnID8gZm9ybU1vZGVsPy5nZXQoJ25hbWUnKS52YWx1ZSA6IHVuZGVmaW5lZFwiXHJcbiAgICAgICAgICAgICBbYXR0ci5tdWx0aXBsZV09XCJtdWx0aVNlbGVjdCA/ICdtdWx0aXBsZScgOiB1bmRlZmluZWRcIj5cclxuICAgICAgPGVjLWZvcm0tY29udHJvbCAqbmdJZj1cImRpc3BsYXlUeXBlID09PSAnZmlsZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGlkPVwie3tpbnB1dElkfX1fZm9ybUNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcGVuZGluZ109XCJwZW5kaW5nIHx8IGZvcm1Nb2RlbD8ucGVuZGluZ1wiPlxyXG4gICAgICAgIDxpbnB1dCBpZD1cInt7aW5wdXRJZH19X25hbWVcIlxyXG4gICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybU1vZGVsPy5nZXQoJ25hbWUnKVwiXHJcbiAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cIi0xXCI+XHJcbiAgICAgIDwvZWMtZm9ybS1jb250cm9sPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZWMtYnV0dG9uICpuZ0lmPVwiZGlzcGxheVR5cGUgPT09ICdmaWxlJ1wiXHJcbiAgICAgICAgICAgICAgICNicm93c2VCdG5cclxuICAgICAgICAgICAgICAgaWQ9XCJ7e2lucHV0SWR9fV9icm93c2VCdG5cIlxyXG4gICAgICAgICAgICAgICAoY2xpY2tlZCk9XCJmaWxlSW5wdXQuY2xpY2soKVwiXHJcbiAgICAgICAgICAgICAgIHR5cGU9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIlxyXG4gICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybU1vZGVsPy5nZXQoJ25hbWUnKS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgIGxhYmVsPVwiQnJvd3NlXCJcclxuICAgICAgICAgICAgICAgW2F1dG9mb2N1c109XCJhdXRvZm9jdXNcIj5cclxuICAgIDwvZWMtYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxlYy1idXR0b24gKm5nSWY9XCJkaXNwbGF5VHlwZSA9PT0gJ2J1dHRvbidcIlxyXG4gICAgICAgICAgICAgaWQ9XCJ7e2lucHV0SWR9fV9idG5cIlxyXG4gICAgICAgICAgICAgW3BlbmRpbmddPVwicGVuZGluZ1wiXHJcbiAgICAgICAgICAgICBbdHlwZV09XCJidXR0b25UeXBlXCJcclxuICAgICAgICAgICAgIFtsYWJlbF09XCJidXR0b25MYWJlbCA/PyAnQnJvd3NlX1RDJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAoY2xpY2tlZCk9XCJmaWxlSW5wdXQuY2xpY2soKVwiXHJcbiAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxyXG4gIDwvZWMtYnV0dG9uPlxyXG48L2VjLWZvcm0tZ3JvdXA+Il19
261
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQW9DLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQXFDLFdBQVcsRUFBRSxTQUFTLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RyxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7OztBQUtyQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUNoQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUM7SUFDYixLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDO0NBQ3pCLENBQUM7QUFvQkYsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGVBQWU7SUFFdEQsZ0VBQWdFO0lBQ3pELE1BQU0sQ0FBQyxZQUFZLENBQ3hCLFVBQXlCLEVBQ3pCLFdBQW9CLEtBQUs7SUFDekIsNE9BQTRPO0lBQzVPLGNBQXNEO1FBRXRELElBQUksU0FBUyxHQUFHLElBQUksU0FBUyxDQUFzQjtZQUNqRCxJQUFJLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFB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QUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQXN5bmNWYWxpZGF0b3JGbiwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGZpbHRlciwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3ZhbGlkYXRpb24tbWVzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwSGVscGVyIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Zvcm0tZ3JvdXAuaGVscGVyJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2xCYXNlIH0gZnJvbSAnLi4vZm9ybS1jb250cm9sLWJhc2UnO1xyXG5pbXBvcnQgeyBsYXN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcblxyXG5leHBvcnQgdHlwZSBGaWxlVHlwZSA9ICd6aXAnIHwgJ2V4Y2VsJyB8ICdjdXN0b20nO1xyXG5leHBvcnQgdHlwZSBGaWxlT3V0cHV0ID0gJ3JhdycgfCAnYmFzZTY0JztcclxuXHJcbmV4cG9ydCBjb25zdCBGaWxlVHlwZUV4dGVuc2lvbnMgPSB7XHJcbiAgemlwOiBbJy56aXAnXSxcclxuICBleGNlbDogWycueGxzJywgJy54bHN4J11cclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIEZpbGVVcGxvYWRGb3JtR3JvdXAgPSB7XHJcbiAgZmlsZTogRm9ybUNvbnRyb2w8RmlsZSB8IG51bGw+O1xyXG4gIG5hbWU6IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+O1xyXG4gIGJhc2U2NEZpbGVTdHJpbmc6IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+O1xyXG4gIHVwbG9hZFJlc3VsdDogRm9ybUNvbnRyb2w8YW55PjtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIEludmFsaWRGaWxlRXJyb3IgPSB7XHJcbiAgaW52YWxpZEZpbGU6IHRydWU7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBGaWxlVmFsaWRhdG9yQ2FsbGJhY2sgPSAoZmlsZTogRmlsZSB8IG51bGwgfCB1bmRlZmluZWQsIGJhc2U2NDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkgPT4gUHJvbWlzZTxJbnZhbGlkRmlsZUVycm9yIHwgbnVsbD47XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJlYy1maWxlLXVwbG9hZFwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vZmlsZS11cGxvYWQuY29tcG9uZW50LnNjc3NcIl1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb21wb25lbnQgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2UgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcblxyXG4gIC8vIHN0YXRpYyBjbGFzcyB0byBjcmVhdGUgdGhlIGZvcm0gZ3JvdXAgZnJvbSBhIHBhcmVudCBjb21wb25lbnRcclxuICBwdWJsaWMgc3RhdGljIGdldEZvcm1Nb2RlbChcclxuICAgIHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10sXHJcbiAgICBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlLFxyXG4gICAgLyoqIEFueSB2YWxpZGF0b3JzIHJlcXVpcmVkIHRvIG1ha2Ugc3VyZSB0aGUgc2VsZWN0ZWQgZmlsZSBpcyB2YWxpZC4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdCB5b3UgdXNlIGBGaWxlVXBsb2FkQ29tcG9uZW50LmdldEZpbGVWYWxpZGF0b3JgIHRvIGhlbHAgY29uc3RydWN0IHRoZSB2YWxpZGF0b3IocykuIE5PVEU6IFRoaXMgY3VycmVudGx5IG9ubHkgd29ya3Mgd2hlbiBtdWx0aVNlbGVjdCBpcyBmYWxzZS4gKi9cclxuICAgIGZpbGVWYWxpZGF0b3JzPzogQXN5bmNWYWxpZGF0b3JGbiB8IEFzeW5jVmFsaWRhdG9yRm5bXVxyXG4gICk6IEZvcm1Hcm91cDxGaWxlVXBsb2FkRm9ybUdyb3VwPiB7XHJcbiAgICBsZXQgZm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cDxGaWxlVXBsb2FkRm9ybUdyb3VwPih7XHJcbiAgICAgIGZpbGU6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiBudWxsLCBkaXNhYmxlZDogZGlzYWJsZWQgfSwge3ZhbGlkYXRvcnM6IHZhbGlkYXRvcnMsIGFzeW5jVmFsaWRhdG9yczogZmlsZVZhbGlkYXRvcnN9KSxcclxuICAgICAgbmFtZTogbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IG51bGwsIGRpc2FibGVkOiBkaXNhYmxlZCB9LCB2YWxpZGF0b3JzKSxcclxuICAgICAgYmFzZTY0RmlsZVN0cmluZzogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgICB1cGxvYWRSZXN1bHQ6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAgIH0pO1xyXG4gICAgaWYgKGRpc2FibGVkKSB7XHJcbiAgICAgIGZvcm1Hcm91cC5kaXNhYmxlKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ybUdyb3VwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGVscGVyIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBhc3luYyB2YWxpZGF0b3IgdG8gYmUgdXNlZCB3aXRoIHRoZSBmaWxlIHVwbG9hZCBjb250cm9sLlxyXG4gICAqIFRoaXMgaXMgdXNlZnVsIGZvciB3aGVuIHRoZSBmaWxlIG5lZWRzIHRvIGJlIHZhbGlkYXRlZCBiZWZvcmUgaXQgY2FuIGJlIHVwbG9hZGVkLlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBjYWxsYmFjayBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCB0byB2YWxpZGF0ZSB0aGUgZmlsZS4gUGFyYW1ldGVycyBmb3IgdGhlIGNhbGxiYWNrIGFyZSB0aGUgZmlsZSBhbmQgdGhlIGJhc2U2NCBzdHJpbmcgZm9yIHRoZSBmaWxlLlxyXG4gICAqIGJhc2U2NCBpcyBudWxsIGlmIHRoZSBmaWxlT3V0cHV0IGlucHV0IG9uIHRoZSBGaWxlVXBsb2FkQ29tcG9uZW50IGlzIHNldCB0byByYXcuIFVzaW5nIGZpbGVPdXRwdXQgc2V0IHRvIGJhc2U2NCBpcyByZWNvbW1lbmRlZCBmb3IgaW1hZ2VzLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RmlsZVZhbGlkYXRvcihjYWxsYmFjazogRmlsZVZhbGlkYXRvckNhbGxiYWNrKTogQXN5bmNWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gYXN5bmMgKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xyXG4gICAgICBpZiAoY29udHJvbC52YWx1ZSAmJiBjb250cm9sLnBhcmVudCkge1xyXG4gICAgICAgIGxldCBmaWxlID0gY29udHJvbC52YWx1ZSBhcyBGaWxlO1xyXG4gICAgICAgIC8vIEZvciBpbWFnZXMsIHdlIG5lZWQgdGhlIGJhc2U2NCBzdHJpbmcgdG8gdmFsaWRhdGUgaW1hZ2UgZGltZW5zaW9uc1xyXG4gICAgICAgIGxldCBiYXNlNjQgPSBjb250cm9sLnBhcmVudC5nZXQoJ2Jhc2U2NEZpbGVTdHJpbmcnKT8udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgICAgIHJldHVybiBhd2FpdCBjYWxsYmFjayhmaWxlLCBiYXNlNjQpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgcHVibGljIGZvcm1Nb2RlbCE6IEZvcm1Hcm91cDxGaWxlVXBsb2FkRm9ybUdyb3VwPjtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHZhbHVlIG9mIHRoZSB0ZXh0Ym94IGlucHV0J3MgcGxhY2Vob2xkZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXI/OiBzdHJpbmcgPSBcIkNob29zZSBmaWxlLi4uXCI7XHJcblxyXG4gIC8qKiBDb21tb24gZXh0ZW5zaW9ucyBmb3IgYSBmaWxlIGJyb3dzaW5nIGRpYWxvZ1xyXG4gICAqICBOb3RlOiBFZGdlIGRvZXMgbm90IHN1cHBvcnQgdGhlIGFjY2VwdCBhdHRyaWJ1dGUgb24gZmlsZSBpbnB1dHMsIHRoZXJlZm9yIGFsbCBmaWxlIHR5cGVzXHJcbiAgICogICAgICAgIHdpbGwgYmUgc2hvd24uICBGaXJlZm94IGFuZCBDaHJvbWUgYm90aCBzdXBwb3J0IHRoaXMgZmVhdHVyZS5cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgZmlsZVR5cGU/OiBGaWxlVHlwZSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgLyoqXHJcbiAgICogRmlsZSBvdXRwdXQsIGRldGVybWluZXMgd2hpY2ggcHJvcGVydGllcyBhcmUgc3VwcGxpZWQgb24gdGhlIGZvcm1Nb2RlbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBmaWxlT3V0cHV0PzogRmlsZU91dHB1dCA9ICdiYXNlNjQnO1xyXG5cclxuICAvKiogSWYgZmlsZVR5cGUgaXMgc2V0IHRvIGN1c3RvbSBzZXQgdGhlIGFjY2VwdGFibGUgZmlsZSB0eXBlcyBiYXNlZCBvbiB0aGUgY3VzdG9tIGFycmF5ICovXHJcbiAgQElucHV0KCkgcHVibGljIGN1c3RvbUV4dGVuc2lvbnM/OiBBcnJheTxzdHJpbmc+IHwgdW5kZWZpbmVkO1xyXG5cclxuICAvKipcclxuICAgKiBPcHRpb25hbCBjYWxsYmFjayBzdXBwb3J0ZWQgaWYgdGhlIGhvc3RpbmcgcGFnZSBuZWVkcyB0byBwcm9jZXNzIHRoZSBmaWxlIGJlZm9yZVxyXG4gICAqIHNldHRpbmcgdGhlIGZvcm1Nb2RlbCB3aXRoIHRoZSBmaWxlIGluZm9ybWF0aW9uLiBJZiB0aGUgcHJvbWlzZSByZXNvbHZlcyBpdCB3aWxsIGNvbnRpbnVlXHJcbiAgICogYW5kIHNldCB0aGUgZmlsZSBuYW1lIGFuZCBjb250ZW50cyB0byB0aGUgZm9ybU1vZGVsLCBvdGhlcndpc2Ugb24gZmFpbHVyZSBpdCdsbCBkbyBub3RoaW5nLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBvbkZpbGVTZWxlY3RlZD86IChmaWxlOiBGaWxlKSA9PiBQcm9taXNlPGFueT47XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wdGlvbmFsIGNhbGxiYWNrIHN1cHBvcnRlZCBmb3Igd2hlbiB0aGUgaG9zdGluZyBwYWdlIG5lZWRzIHRvIHByb2Nlc3MgbXVsdGlwbGUgZmlsZXNcclxuICAgKiBXZSBzaW1wbHkgbWFwIHRoZSBGaWxlTGlzdCB0byBhbiBhcnJheSBvZiBGaWxlIG9iamVjdHMgYW5kIHBhc3MgdGhhdCBhcnJheSB0byB0aGUgXHJcbiAgICogY2FsbGJhY2sgYW5kIGxldCB0aGUgaG9zdGluZyBwYWdlIGhhbmRsZSB0aGUgcHJvY2Vzc2luZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBvbk11bHRpcGxlRmlsZXNTZWxlY3RlZD86IChmaWxlczogRmlsZVtdKSA9PiBQcm9taXNlPGFueT47XHJcblxyXG4gIC8qKiBcclxuICAgKiBPcHRpb25hbCBkaXNwbGF5IHR5cGUgdGhhdCBjb250cm9scyB3aGV0aGVyIHRoZSBmaWxlIGlucHV0IHRleHRib3ggaXMgZGlzcGxheWVkIG9yXHJcbiAgICogc2ltcGx5IGEgYnV0dG9uIHRoZSB1c2VyIGNsaWNrcyB0byBsYXVuY2ggdGhlIE9TIGZpbGUgc3RvcmFnZSBkaWFsb2cuXHJcbiAgICogRGVmYXVsdDogZmlsZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNwbGF5VHlwZT86ICdmaWxlJyB8ICdidXR0b24nID0gJ2ZpbGUnO1xyXG5cclxuICAvKiogXHJcbiAgICogV2hlbiBkaXNwbGF5IHR5cGUgaXMgc2V0IHRvIGJ1dHRvbiB0aGlzIHByb3BlcnR5IHdpbGwgY29udHJvbCB0aGUgYnV0dG9uIGxhYmVsXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGJ1dHRvbkxhYmVsPzogc3RyaW5nO1xyXG5cclxuICAvKiogXHJcbiAgICogV2hlbiBkaXNwbGF5IHR5cGUgaXMgc2V0IHRvIGJ1dHRvbiB0aGlzIHByb3BlcnR5IHdpbGwgY29udHJvbCB0aGUgYnV0dG9uIHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgYnV0dG9uVHlwZT86IHN0cmluZyA9ICdwcmltYXJ5JztcclxuXHJcbiAgLyoqXHJcbiAgICogT3B0aW9uYWwgcHJvcGVydHkgdG8gY29udHJvbCB3aGV0aGVyIHRoZSB1c2VyIGNhbiBzZWxlY3QgbXVsdGlwbGUgZmlsZXNcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgbXVsdGlTZWxlY3Q/OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gdHJ1ZSwgdGhlIG9uRmlsZVNlbGVjdGVkIGNhbGxiYWNrIHdpbGwgbm90IGJlIGNhbGxlZCBpZiB0aGUgZm9ybSBpcyBpbnZhbGlkLlxyXG4gICAqIFRoaXMgaXMgdXNlZnVsIHdoZW4gdGhlIGZpbGUgbmVlZHMgdG8gYmUgdmFsaWRhdGVkIGJlZm9yZSBpdCBjYW4gYmUgdXBsb2FkZWQuXHJcbiAgICogRm9yIHNlcnZlci1zaWRlIHZhbGlkYXRpb24sIGxlYXZlIHRoaXMgYXMgZmFsc2UgYW5kIHVzZSB0aGUgb25GaWxlU2VsZWN0ZWQgY2FsbGJhY2tcclxuICAgKiB0byB1cGxvYWQgdGhlIGZpbGUgYW5kIGhhbmRsZSBhbnkgZXJyb3JzIHRocm93biBieSB0aGUgQVBJLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0ZUJlZm9yZVVwbG9hZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAVmlld0NoaWxkKFwiZmlsZUlucHV0XCIsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBmaWxlSW5wdXQ/OiBFbGVtZW50UmVmO1xyXG5cclxuICAvKiogUHJvcGVydHkgYm91bmQgdG8gdGhlIGZpbGUgaW5wdXQgdG8gZmlsdGVyIHdoYXQgZmlsZSB0eXBlcyBhcmUgc2hvd24gaW4gdGhlIGRpYWxvZyAqL1xyXG4gIHB1YmxpYyBmaWxlVHlwZUFjY2VwdDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCB2YWxpZGF0aW9uTWVzc2FnZVNlcnZpY2U6IFZhbGlkYXRpb25NZXNzYWdlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBmb3JtR3JvdXBIZWxwZXI6IEZvcm1Hcm91cEhlbHBlcixcclxuICApIHtcclxuICAgIHN1cGVyKHZhbGlkYXRpb25NZXNzYWdlU2VydmljZSwgZm9ybUdyb3VwSGVscGVyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcclxuXHJcbiAgICB0aGlzLnVwZGF0ZUZpbGVUeXBlQWNjZXB0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG5cclxuICAgIC8vIFdhdGNoIGZvciBuYW1lIHRvIGNoYW5nZSwgaWYgdGhlIHZhbHVlIGlzIGNsZWFyZWQgd2Ugd2lsbCBjbGVhciB0aGUgb3RoZXJcclxuICAgIC8vIHN1cHBvcnRpbmcgbW9kZWwgcHJvcGVydGllcy4gVGhlIG5hbWUgY2FuIGJlIGNsZWFyZWQgYnkgdGhlIHVzZXIgbWFudWFsbHkgb3IgdmlhXHJcbiAgICAvLyB0aGUgY2xlYXIgYnV0dG9uXHJcbiAgICB0aGlzLmZvcm1Nb2RlbD8uZ2V0KCduYW1lJyk/LnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpXHJcbiAgICApLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgICB0aGlzLmZvcm1Nb2RlbC5wYXRjaFZhbHVlKHtcclxuICAgICAgICAgIGZpbGU6IG51bGwsXHJcbiAgICAgICAgICBiYXNlNjRGaWxlU3RyaW5nOiBudWxsLFxyXG4gICAgICAgICAgdXBsb2FkUmVzdWx0OiBudWxsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIC8vIFN5bmMgZXJyb3JzIGZyb20gdGhlIGZpbGUgY29udHJvbCB0byB0aGUgbmFtZSBjb250cm9sIHdoZW5ldmVyIHRoZSBmaWxlIGNvbnRyb2wgc3RhdHVzIGNoYW5nZXMuXHJcbiAgICAvLyBUaGUgbmFtZSBjb250cm9sIGlzIHRoZSBvbmx5IG9uZSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIgc28gd2UgbmVlZCB0byBzaG93IHRoZSBlcnJvcnMgdGhlcmUuXHJcbiAgICB0aGlzLmZvcm1Nb2RlbC5nZXQoJ2ZpbGUnKT8uc3RhdHVzQ2hhbmdlcy5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpXHJcbiAgICApLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGVycm9ycyA9IHRoaXMuZm9ybU1vZGVsLmdldCgnZmlsZScpPy5lcnJvcnMgPz8gbnVsbDtcclxuICAgICAgdGhpcy5mb3JtTW9kZWwuZ2V0KCduYW1lJyk/LnNldEVycm9ycyhlcnJvcnMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZmlsZUNoYW5nZShmaWxlczogRmlsZUxpc3QpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLm11bHRpU2VsZWN0KSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlTXVsdGlwbGVGaWxlcyhmaWxlcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBmaWxlOiBGaWxlIHwgbnVsbCA9IGZpbGVzLml0ZW0oMCk7XHJcbiAgICAgIGlmIChmaWxlKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5yZWFkRmlsZShmaWxlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIENsZWFyIHRoZSBmaWxlIGlucHV0cyB2YWx1ZSwgdGhpcyB3aWxsIGFsbG93IHRoZSB1c2VyIHRvIHBpY2sgdGhlIHNhbWUgZmlsZW5hbWVzIGFnYWluXHJcbiAgICAvLyBhbmQgY2F1c2UgZmlsZUNoYW5nZSB0byByZS10cmlnZ2VyLlxyXG4gICAgaWYgKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrcyB0aGUgZmlsZSB0eXBlIGFuZCB1cGRhdGVzIHRoZSBmaWxlIHR5cGUgYWNjZXB0IHByb3BlcnR5LiBUaGlzIGlzIHdoYXQgZGV0ZXJtaW5lcyB0aGUgZmlsZVxyXG4gICAqIHR5cGUgY2hvaWNlcyB0aGF0IHRoZSB1c2VyIHdpbGwgYmUgbGltaXRlZCB0byBpbiB0aGUgZmlsZSBicm93c2UgZGlhbG9nXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1cGRhdGVGaWxlVHlwZUFjY2VwdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZpbGVUeXBlKSB7XHJcbiAgICAgIGlmICh0aGlzLmZpbGVUeXBlICE9PSBcImN1c3RvbVwiKSB7XHJcbiAgICAgICAgdGhpcy5maWxlVHlwZUFjY2VwdCA9IEZpbGVUeXBlRXh0ZW5zaW9uc1t0aGlzLmZpbGVUeXBlXS5qb2luKFwiLFwiKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodGhpcy5jdXN0b21FeHRlbnNpb25zKSB7XHJcbiAgICAgICAgICB0aGlzLmZpbGVUeXBlQWNjZXB0ID0gdGhpcy5jdXN0b21FeHRlbnNpb25zLmpvaW4oXCIsXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGFrZSBhIGZpbGUgdGhhdCB3YXMgc2VsZWN0ZWQgYnkgdGhlIHVzZXIgYW5kIHByb2Nlc3MvcGF0Y2ggb3VyIGZvcm0gbW9kZWxcclxuICAgKiBJZiB0aGUgaG9zdCBjb21wb25lbnQgcmVxdWlyZXMgYW4gYWN0aW9uIHRvIG9jY3VyIHdpdGggdGhlIGZpbGUgcHJpb3IgdG8gdGhlIHBhdGNoIGl0IHdpbGwgY2FsbFxyXG4gICAqIGFuZCB3YWl0IGZvciBpdCB0byByZXR1cm4uXHJcbiAgICogQHBhcmFtIGZpbGUgXHJcbiAgICogQHBhcmFtIGJhc2U2NEZpbGVTdHJpbmcgT3B0aW9uYWw6IFdpbGwgaGF2ZSBhIHZhbHVlIHByb3ZpZGVkIGlmIHRoZSBmaWxlT3V0cHV0IGlzIHNldCB0byBiYXNlNjRcclxuICAgKi9cclxuICBwcml2YXRlIGFzeW5jIHByb2Nlc3NGaWxlKGZpbGU6IEZpbGUsIGJhc2U2NEZpbGVTdHJpbmc6IHN0cmluZyB8IG51bGwgPSBudWxsKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvLyBJZiB3ZSBhcmUgdmFsaWRhdGluZyBiZWZvcmUgdXBsb2FkIHdlIG5lZWQgdG8gcGF0Y2ggdGhlIGZpbGUgdG8gdGhlIGZvcm0gdG8gdHJpZ2dlciB2YWxpZGF0aW9uIGJlZm9yZSBjYWxsaW5nIG9uRmlsZVNlbGVjdGVkXHJcbiAgICBpZiAodGhpcy52YWxpZGF0ZUJlZm9yZVVwbG9hZCkge1xyXG4gICAgICBhd2FpdCB0aGlzLnZhbGlkYXRlRmlsZShmaWxlLCBiYXNlNjRGaWxlU3RyaW5nKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgaWYgKHRoaXMub25GaWxlU2VsZWN0ZWQpIHtcclxuICAgICAgLy8gT25seSBjYWxsIHRoZSBvbkZpbGVTZWxlY3RlZCBjYWxsYmFjayB0byB1cGxvYWQgdGhlIGZpbGUgaWYgdGhlIGZvcm0gZ3JvdXAgaXMgdmFsaWQgb3Igd2UgYXJlIG5vdCB2YWxpZGF0aW5nIGJlZm9yZSB1cGxvYWRcclxuICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlQmVmb3JlVXBsb2FkIHx8IHRoaXMuZm9ybU1vZGVsLnZhbGlkKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLm9uRmlsZVNlbGVjdGVkKGZpbGUpO1xyXG4gIFxyXG4gICAgICAgICAgLy8gSWYgd2UgZGlkIHZhbGlkYXRpb24sIGp1c3QgcGF0Y2ggdGhlIGZvcm0gcmVzdWx0IGJlY2F1c2UgdGhlIGZpbGUgaXMgYWxyZWFkeSBpbiB0aGUgZm9ybVxyXG4gICAgICAgICAgaWYgKHRoaXMudmFsaWRhdGVCZWZvcmVVcGxvYWQpIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtTW9kZWwucGF0Y2hWYWx1ZSh7IHVwbG9hZFJlc3VsdDogcmVzdWx0ID8/IG51bGwgfSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1Nb2RlbC5wYXRjaFZhbHVlKHsgYmFzZTY0RmlsZVN0cmluZywgZmlsZSwgbmFtZTogZmlsZS5uYW1lLCB1cGxvYWRSZXN1bHQ6IHJlc3VsdCA/PyBudWxsIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgIC8vIEJ1bW1lciwgd2UncmUgbm90IGdvaW5nIHRvIGRvIGFueXRoaW5nIGFib3V0IGl0IHRob3VnaC5cclxuICAgICAgICAgIC8vIFdlIGFyZSBub3QgcGF0Y2hpbmcgYW55IG9mIHRoZSByZXN1bHQgc28gYW55IGV4aXN0aW5nIGluZm9ybWF0aW9uIHJlbWFpbnNcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYW4gb25GaWxlU2VsZWN0ZWQgY2FsbGJhY2sgd2UganVzdCBwYXRjaCB0aGUgZm9ybSBtb2RlbC5cclxuICAgIC8vIEluIHRoZSBjYXNlIG9mIHByZS11cGxvYWQgdmFsaWRhdGlvbiB0aGUgZm9ybSBhbHJlYWR5IGhhcyB0aGUgZmlsZSBzbyB3ZSBkb24ndCB3YW50IHRvIHBhdGNoIGFnYWluLlxyXG4gICAgfSBlbHNlIGlmICghdGhpcy52YWxpZGF0ZUJlZm9yZVVwbG9hZCkge1xyXG4gICAgICB0aGlzLmZvcm1Nb2RlbC5wYXRjaFZhbHVlKHsgYmFzZTY0RmlsZVN0cmluZywgZmlsZSwgbmFtZTogZmlsZS5uYW1lLCB1cGxvYWRSZXN1bHQ6IG51bGwgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogUGF0Y2hlcyB0aGUgZm9ybSB3aXRoIHRoZSBzZWxlY3RlZCBmaWxlIGluIG9yZGVyIHRvIHRyaWdnZXIgY29udHJvbCB2YWxpZGF0aW9uICovXHJcbiAgcHJpdmF0ZSBhc3luYyB2YWxpZGF0ZUZpbGUoZmlsZTogRmlsZSwgYmFzZTY0RmlsZVN0cmluZzogc3RyaW5nIHwgbnVsbCA9IG51bGwpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vIFBhdGNoIHRoZSBmaWxlIGZpcnN0IHRvIHRyaWdnZXIgYW55IGZpbGUgdmFsaWRhdG9yc1xyXG4gICAgdGhpcy5mb3JtTW9kZWwucGF0Y2hWYWx1ZSh7IGJhc2U2NEZpbGVTdHJpbmcsIGZpbGUsIG5hbWU6IGZpbGUubmFtZSwgdXBsb2FkUmVzdWx0OiBudWxsIH0pO1xyXG5cclxuICAgIC8vIElmIHdlIGhhdmUgYW55IGFzeW5jIHZhbGlkYXRvcnMgcGVuZGluZyB3ZSBuZWVkIHRvIHdhaXQgZm9yIHRoZW0gdG8gY29tcGxldGUgYmVmb3JlIHdlIGtub3cgaWYgdGhlIGZvcm0gaXMgdmFsaWRcclxuICAgIGlmICh0aGlzLmZvcm1Nb2RlbC5wZW5kaW5nKSB7XHJcbiAgICAgIGF3YWl0IGxhc3RWYWx1ZUZyb20odGhpcy5mb3JtTW9kZWwuc3RhdHVzQ2hhbmdlcy5waXBlKGZpbHRlcihzdGF0dXMgPT4gc3RhdHVzICE9PSAnUEVORElORycpLCB0YWtlKDEpLCB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTWFyayB0aGUgbmFtZSBjb250cm9sIGFzIHRvdWNoZWQgc28gdGhhdCBhbnkgdmFsaWRhdGlvbiBlcnJvcnMgd2lsbCBzaG93XHJcbiAgICB0aGlzLmZvcm1Nb2RlbC5jb250cm9scy5uYW1lLm1hcmtBc1RvdWNoZWQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJhc2VkIG9uIHRoZSBmaWxlT3V0cHV0IHJldHVybiB3aGV0aGVyIHRoaXMgY29tcG9uZW50IGlzIGV4cGVjdGVkIHRvIGRlbGl2ZXIgYSBiYXNlNjQgb3V0cHV0XHJcbiAgICogQHJldHVybnMgXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpc0Jhc2U2NEZpbGVPdXRwdXQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5maWxlT3V0cHV0ID09PSAnYmFzZTY0JztcclxuICB9XHJcblxyXG4gIC8qKiBNYXBzIHRoZSBmaWxlcyB0byBhbiBhcnJheSBvZiBGaWxlIG9iamVjdHMgYW5kIHNlbmRzIHRoZW0gYWxvbmdcclxuICAgKiB0byB0aGUgZGVyaXZlZCBvbk11bHRpcGxlRmlsZVNlbGVjdGVkIG1ldGhvZCBpbiB0aGUgaG9zdGluZyBjb21wb25lbnRcclxuICAgKi9cclxuICBwcml2YXRlIGFzeW5jIGhhbmRsZU11bHRpcGxlRmlsZXMoZmlsZXM6IEZpbGVMaXN0KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBmaWxlc0FycmF5ID0gQXJyYXkuZnJvbShmaWxlcyk7XHJcblxyXG4gICAgaWYgKHRoaXMub25NdWx0aXBsZUZpbGVzU2VsZWN0ZWQpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgdGhpcy5vbk11bHRpcGxlRmlsZXNTZWxlY3RlZChmaWxlc0FycmF5KTtcclxuICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdlcnJvcjogJywgZSk7XHJcbiAgICAgIH0gIFxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgcmVhZEZpbGUoZmlsZTogRmlsZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgcmVhZGVyOiBGaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuXHJcbiAgICByZWFkZXIub25sb2FkZW5kID0gYXN5bmMgZSA9PiB7XHJcbiAgICAgIGxldCBiYXNlNjRGaWxlU3RyaW5nOiBzdHJpbmcgfCB1bmRlZmluZWQgPSByZWFkZXI/LnJlc3VsdD8udG9TdHJpbmcoKS5zcGxpdChcIixcIilbMV07XHJcbiAgICAgIGF3YWl0IHRoaXMucHJvY2Vzc0ZpbGUoZmlsZSwgYmFzZTY0RmlsZVN0cmluZyk7XHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0aGlzLmlzQmFzZTY0RmlsZU91dHB1dCgpKSB7XHJcbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYXdhaXQgdGhpcy5wcm9jZXNzRmlsZShmaWxlKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGVjLWZvcm0tZ3JvdXAgW2xhYmVsXT1cImxhYmVsXCJcclxuICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtTW9kZWxcIlxyXG4gICAgICAgICAgICAgICBbaGVscFBvcG92ZXJdPVwiaGVscFBvcG92ZXJcIlxyXG4gICAgICAgICAgICAgICBbaGVscFBvcG92ZXJQb3NpdGlvbl09XCJoZWxwUG9wb3ZlclBvc2l0aW9uXCJcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJtYi0wXCI+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBjb250cm9sLWdyb3VwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtZ3JvdyBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICA8aW5wdXQgI2ZpbGVJbnB1dFxyXG4gICAgICAgICAgICAgaWQ9XCJ7e2lucHV0SWR9fV9pbnB1dFwiXHJcbiAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXHJcbiAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcclxuICAgICAgICAgICAgIFthdHRyLmFjY2VwdF09XCJmaWxlVHlwZUFjY2VwdFwiXHJcbiAgICAgICAgICAgICAoY2hhbmdlKT1cImZpbGVDaGFuZ2UoJGV2ZW50LnRhcmdldC5maWxlcylcIlxyXG4gICAgICAgICAgICAgW2NsYXNzLmhhcy12YWx1ZV09XCJkaXNwbGF5VHlwZSA9PT0gJ2ZpbGUnID8gZm9ybU1vZGVsPy5nZXQoJ25hbWUnKS52YWx1ZSA6IHVuZGVmaW5lZFwiXHJcbiAgICAgICAgICAgICBbYXR0ci5tdWx0aXBsZV09XCJtdWx0aVNlbGVjdCA/ICdtdWx0aXBsZScgOiB1bmRlZmluZWRcIj5cclxuICAgICAgPGVjLWZvcm0tY29udHJvbCAqbmdJZj1cImRpc3BsYXlUeXBlID09PSAnZmlsZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGlkPVwie3tpbnB1dElkfX1fZm9ybUNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcGVuZGluZ109XCJwZW5kaW5nIHx8IGZvcm1Nb2RlbD8ucGVuZGluZ1wiPlxyXG4gICAgICAgIDxpbnB1dCBpZD1cInt7aW5wdXRJZH19X25hbWVcIlxyXG4gICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybU1vZGVsPy5nZXQoJ25hbWUnKVwiXHJcbiAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cIi0xXCI+XHJcbiAgICAgIDwvZWMtZm9ybS1jb250cm9sPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZWMtYnV0dG9uICpuZ0lmPVwiZGlzcGxheVR5cGUgPT09ICdmaWxlJ1wiXHJcbiAgICAgICAgICAgICAgICNicm93c2VCdG5cclxuICAgICAgICAgICAgICAgaWQ9XCJ7e2lucHV0SWR9fV9icm93c2VCdG5cIlxyXG4gICAgICAgICAgICAgICAoY2xpY2tlZCk9XCJmaWxlSW5wdXQuY2xpY2soKVwiXHJcbiAgICAgICAgICAgICAgIHR5cGU9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIlxyXG4gICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybU1vZGVsPy5nZXQoJ25hbWUnKS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgIGxhYmVsPVwiQnJvd3NlXCJcclxuICAgICAgICAgICAgICAgW2F1dG9mb2N1c109XCJhdXRvZm9jdXNcIj5cclxuICAgIDwvZWMtYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxlYy1idXR0b24gKm5nSWY9XCJkaXNwbGF5VHlwZSA9PT0gJ2J1dHRvbidcIlxyXG4gICAgICAgICAgICAgaWQ9XCJ7e2lucHV0SWR9fV9idG5cIlxyXG4gICAgICAgICAgICAgW3BlbmRpbmddPVwicGVuZGluZ1wiXHJcbiAgICAgICAgICAgICBbdHlwZV09XCJidXR0b25UeXBlXCJcclxuICAgICAgICAgICAgIFtsYWJlbF09XCJidXR0b25MYWJlbCA/PyAnQnJvd3NlX1RDJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAoY2xpY2tlZCk9XCJmaWxlSW5wdXQuY2xpY2soKVwiXHJcbiAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxyXG4gIDwvZWMtYnV0dG9uPlxyXG48L2VjLWZvcm0tZ3JvdXA+Il19
@@ -49,10 +49,10 @@ export class FormControlComponent {
49
49
  }
50
50
  }
51
51
  FormControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FormControlComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
52
- FormControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FormControlComponent, selector: "ec-form-control", inputs: { id: "id", icon: "icon", actionIcon: "actionIcon", showClear: "showClear", formModelInput: ["formModel", "formModelInput"], autofocus: "autofocus", pending: "pending", required: "required", readonly: "readonly" }, outputs: { actionClicked: "actionClicked", actionKeydown: "actionKeydown" }, host: { listeners: { "click": "onClick()" }, properties: { "class.is-pending": "this.pending", "class.is-required": "this.required", "class.is-readonly": "this.readonly", "class.is-empty": "this.empty", "class.is-invalid": "this.invalid", "class.is-disabled": "this.disabled" } }, queries: [{ propertyName: "formControlDirective", first: true, predicate: FormControlDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\r\n<i id=\"{{id + '_icon'}}\" class=\"ec-form-control-icon ec-icon {{icon}}\"></i>\r\n<i id=\"{{id + '_loading'}}\" class=\"ec-form-control-icon ec-icon icon-loading\"></i>\r\n<i id=\"{{id + '_required'}}\" class=\"ec-form-control-icon ec-icon icon-required\"></i>\r\n<i id=\"{{id + '_invalid'}}\" class=\"ec-form-control-icon ec-icon icon-invalid\"></i>\r\n<button *ngIf=\"showClear\"\r\n id=\"{{id + '_clear'}}\"\r\n [attr.disabled]=\"disabled || undefined\"\r\n class=\"ec-form-control-clear\"\r\n (click)=\"clear()\">\r\n <i class=\"ec-icon icon-cancel\"></i>\r\n</button>\r\n<button *ngIf=\"actionIcon\"\r\n id=\"{{id + '_action'}}\"\r\n [attr.disabled]=\"disabled || undefined\"\r\n class=\"ec-form-control-action\"\r\n (click)=\"actionClicked.emit($event)\"\r\n (keydown)=\"actionKeydown.emit($event)\">\r\n <i class=\"ec-icon {{actionIcon}}\"></i>\r\n</button>\r\n<div class=\"ec-focus-ring\"></div>", styles: ["ec-form-control{background-color:var(--ec-form-control-background-color);background-clip:padding-box;border:1px solid var(--ec-form-control-border-color);border-radius:var(--ec-border-radius);padding:0 .5rem;position:relative;color:var(--ec-form-control-color);display:flex;font-size:var(--ec-form-control-font-size);min-height:2rem;width:100%}ec-form-control>input,ec-form-control>select,ec-form-control>textarea,ec-form-control>div[contenteditable=true]{color:inherit;flex:1 1;min-width:0;border:0;background-color:transparent;order:2}ec-form-control>input::selection,ec-form-control>select::selection,ec-form-control>textarea::selection,ec-form-control>div[contenteditable=true]::selection{background-color:var(--ec-form-control-background-color-selection);color:var(--ec-form-control-color-selection)}ec-form-control>input::-webkit-input-placeholder,ec-form-control>select::-webkit-input-placeholder,ec-form-control>textarea::-webkit-input-placeholder,ec-form-control>div[contenteditable=true]::-webkit-input-placeholder{color:var(--ec-form-control-color-placeholder)}ec-form-control>input::-moz-placeholder,ec-form-control>select::-moz-placeholder,ec-form-control>textarea::-moz-placeholder,ec-form-control>div[contenteditable=true]::-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}ec-form-control>input:-ms-input-placeholder,ec-form-control>select:-ms-input-placeholder,ec-form-control>textarea:-ms-input-placeholder,ec-form-control>div[contenteditable=true]:-ms-input-placeholder{color:var(--ec-form-control-color-placeholder)}ec-form-control>input:-moz-placeholder,ec-form-control>select:-moz-placeholder,ec-form-control>textarea:-moz-placeholder,ec-form-control>div[contenteditable=true]:-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}ec-form-control>input:focus,ec-form-control>select:focus,ec-form-control>textarea:focus,ec-form-control>div[contenteditable=true]:focus{outline:none}ec-form-control>input:focus~.ec-focus-ring,ec-form-control>select:focus~.ec-focus-ring,ec-form-control>textarea:focus~.ec-focus-ring,ec-form-control>div[contenteditable=true]:focus~.ec-focus-ring{display:block}ec-form-control>input,ec-form-control>textarea,ec-form-control>select,ec-form-control>div[contenteditable=true],ec-form-control .ec-form-control-prefix,ec-form-control .ec-form-control-suffix{padding:calc((1.875rem - (var(--ec-font-size-body) * 1.25)) / 2) 0;line-height:1.25;font-size:inherit}ec-form-control>textarea{resize:none;padding:.3125rem 0}ec-form-control .ec-form-control-icon{margin-top:.4375rem;margin-right:.25rem;order:1}ec-form-control .ec-form-control-icon:not([class*=icon-]){display:none}ec-form-control .icon-required,ec-form-control .icon-invalid{color:var(--ec-form-control-border-color-invalid)}ec-form-control .ec-form-control-clear,ec-form-control .ec-form-control-action{font-size:var(--ec-font-size-action);height:2rem;line-height:1.25rem;padding:.3125rem .5rem;border-radius:var(--ec-border-radius);display:flex;cursor:pointer;flex:none;height:1.875rem;width:2rem;order:3;background-color:transparent;border:0;border-radius:0;display:inline-flex;align-items:center;justify-content:center;outline:none}ec-form-control .ec-form-control-clear .label,ec-form-control .ec-form-control-action .label{display:flex;align-items:center;justify-content:center;white-space:nowrap;flex:auto}ec-form-control .ec-form-control-clear .ec-icon,ec-form-control .ec-form-control-action .ec-icon{flex:none}ec-form-control .ec-form-control-clear .ec-icon+.label,ec-form-control .ec-form-control-action .ec-icon+.label{flex:none;margin-left:.25rem}ec-form-control .ec-form-control-clear.has-badge,ec-form-control .ec-form-control-action.has-badge{padding-right:.0625rem}ec-form-control .ec-form-control-clear:focus,ec-form-control .ec-form-control-action:focus{outline:none;position:relative;z-index:1}ec-form-control .ec-form-control-clear:disabled,ec-form-control .ec-form-control-action:disabled{background-color:var(--ec-background-color-disabled);border:1px solid var(--ec-form-control-border-color-disabled);color:var(--ec-color-disabled-dark);opacity:var(--ec-form-control-opacity-disabled);cursor:default}ec-form-control .ec-form-control-clear:disabled,ec-form-control .ec-form-control-action:disabled{border:0;background-color:transparent;border-color:transparent}ec-form-control .ec-form-control-clear:last-of-type,ec-form-control .ec-form-control-action:last-of-type{margin-right:-.5rem}ec-form-control .ec-form-control-clear:hover:not(:disabled),ec-form-control .ec-form-control-action:hover:not(:disabled){cursor:pointer;background-color:var(--ec-background-color-hover)}ec-form-control .ec-form-control-clear:active:not(:disabled),ec-form-control .ec-form-control-action:active:not(:disabled){background-color:var(--ec-background-color-selected);font-weight:700}ec-form-control .ec-form-control-clear:focus:not(:disabled),ec-form-control .ec-form-control-action:focus:not(:disabled){box-shadow:var(--ec-button-box-shadow-active, 0 0 0 2px var(--ec-border-color-focus))}ec-form-control button:last-of-type{border-top-right-radius:calc(var(--ec-form-control-border-radius) - .0625rem);border-bottom-right-radius:calc(var(--ec-form-control-border-radius) - .0625rem)}ec-form-control .ec-form-control-clear{width:1.5rem}ec-form-control .ec-form-control-prefix,ec-form-control .ec-form-control-suffix{color:var(--ec-color-secondary-dark);flex:none;cursor:default}ec-form-control .ec-form-control-prefix{margin-right:.125rem;order:2}ec-form-control .ec-form-control-suffix{margin-left:.125rem;order:3}ec-form-control .ec-focus-ring{position:absolute;inset:-1px;border:.125rem solid var(--ec-color-interactive);pointer-events:none;display:none;border-radius:var(--ec-form-control-border-radius);z-index:1}ec-form-control.is-pending .icon-invalid,ec-form-control.is-pending .icon-required{display:none}ec-form-control.is-invalid{border-color:var(--ec-form-control-border-color-invalid);background-color:var(--ec-form-control-background-color-invalid)}ec-form-control.is-invalid .icon-required{display:none}ec-form-control.is-empty .ec-form-control-clear{display:none}ec-form-control.is-required.is-empty .ec-form-control-icon:first-of-type{display:none}ec-form-control:not(.is-pending) .icon-loading{display:none}ec-form-control:not(.is-required) .icon-required,ec-form-control:not(.is-empty) .icon-required{display:none}ec-form-control:not(.is-invalid) .icon-invalid{display:none}ec-form-control.is-readonly,ec-form-control.is-disabled{background-color:var(--ec-form-control-background-color-disabled)}ec-form-control.is-readonly .icon-loading,ec-form-control.is-readonly .icon-invalid,ec-form-control.is-readonly .icon-required,ec-form-control.is-readonly .ec-form-control-clear,ec-form-control.is-disabled .icon-loading,ec-form-control.is-disabled .icon-invalid,ec-form-control.is-disabled .icon-required,ec-form-control.is-disabled .ec-form-control-clear{display:none}ec-form-control.is-readonly{border-color:var(--ec-form-control-border-color-readonly);color:var(--ec-form-control-color-readonly)}ec-form-control.is-readonly .ec-form-control-action{display:none}ec-form-control.is-disabled:not(.is-readonly){color:var(--ec-form-control-color-disabled);opacity:.6}ec-form-control.is-disabled:not(.is-readonly) .ec-form-control-prefix,ec-form-control.is-disabled:not(.is-readonly) .ec-form-control-suffix{color:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
52
+ FormControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FormControlComponent, selector: "ec-form-control", inputs: { id: "id", icon: "icon", actionIcon: "actionIcon", showClear: "showClear", formModelInput: ["formModel", "formModelInput"], autofocus: "autofocus", pending: "pending", required: "required", readonly: "readonly" }, outputs: { actionClicked: "actionClicked", actionKeydown: "actionKeydown" }, host: { listeners: { "click": "onClick()" }, properties: { "class.is-pending": "this.pending", "class.is-required": "this.required", "class.is-readonly": "this.readonly", "class.is-empty": "this.empty", "class.is-invalid": "this.invalid", "class.is-disabled": "this.disabled" } }, queries: [{ propertyName: "formControlDirective", first: true, predicate: FormControlDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\r\n<i id=\"{{id + '_icon'}}\" class=\"ec-form-control-icon ec-icon {{icon}}\"></i>\r\n<i id=\"{{id + '_loading'}}\" class=\"ec-form-control-icon ec-icon icon-loading\"></i>\r\n<i id=\"{{id + '_required'}}\" class=\"ec-form-control-icon ec-icon icon-required\"></i>\r\n<i id=\"{{id + '_invalid'}}\" class=\"ec-form-control-icon ec-icon icon-invalid\"></i>\r\n<button *ngIf=\"showClear\"\r\n id=\"{{id + '_clear'}}\"\r\n [attr.disabled]=\"disabled || undefined\"\r\n class=\"ec-form-control-clear\"\r\n (click)=\"clear()\">\r\n <i class=\"ec-icon icon-cancel\"></i>\r\n</button>\r\n<button *ngIf=\"actionIcon\"\r\n id=\"{{id + '_action'}}\"\r\n [attr.disabled]=\"disabled || undefined\"\r\n class=\"ec-form-control-action\"\r\n (click)=\"actionClicked.emit($event)\"\r\n (keydown)=\"actionKeydown.emit($event)\">\r\n <i class=\"ec-icon {{actionIcon}}\"></i>\r\n</button>\r\n<div class=\"ec-focus-ring\"></div>", styles: ["ec-form-control{background-color:var(--ec-form-control-background-color);background-clip:padding-box;border:1px solid var(--ec-form-control-border-color);border-radius:var(--ec-border-radius);padding:0 .5rem;position:relative;color:var(--ec-form-control-color);display:flex;font-size:var(--ec-form-control-font-size);min-height:2rem;width:100%}ec-form-control>input,ec-form-control>select,ec-form-control>textarea,ec-form-control>div[contenteditable=true]{color:inherit;flex:1 1;min-width:0;border:0;background-color:transparent;order:2}ec-form-control>input::selection,ec-form-control>select::selection,ec-form-control>textarea::selection,ec-form-control>div[contenteditable=true]::selection{background-color:var(--ec-form-control-background-color-selection);color:var(--ec-form-control-color-selection)}ec-form-control>input::-webkit-input-placeholder,ec-form-control>select::-webkit-input-placeholder,ec-form-control>textarea::-webkit-input-placeholder,ec-form-control>div[contenteditable=true]::-webkit-input-placeholder{color:var(--ec-form-control-color-placeholder)}ec-form-control>input::-moz-placeholder,ec-form-control>select::-moz-placeholder,ec-form-control>textarea::-moz-placeholder,ec-form-control>div[contenteditable=true]::-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}ec-form-control>input:-ms-input-placeholder,ec-form-control>select:-ms-input-placeholder,ec-form-control>textarea:-ms-input-placeholder,ec-form-control>div[contenteditable=true]:-ms-input-placeholder{color:var(--ec-form-control-color-placeholder)}ec-form-control>input:-moz-placeholder,ec-form-control>select:-moz-placeholder,ec-form-control>textarea:-moz-placeholder,ec-form-control>div[contenteditable=true]:-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}ec-form-control>input:focus,ec-form-control>select:focus,ec-form-control>textarea:focus,ec-form-control>div[contenteditable=true]:focus{outline:none}ec-form-control>input:focus~.ec-focus-ring,ec-form-control>select:focus~.ec-focus-ring,ec-form-control>textarea:focus~.ec-focus-ring,ec-form-control>div[contenteditable=true]:focus~.ec-focus-ring{display:block}ec-form-control>input,ec-form-control>textarea,ec-form-control>select,ec-form-control>div[contenteditable=true],ec-form-control .ec-form-control-prefix,ec-form-control .ec-form-control-suffix{padding:calc((1.875rem - var(--ec-font-size-body) * 1.25) / 2) 0;line-height:1.25;font-size:inherit}ec-form-control>textarea{resize:none;padding:.3125rem 0}ec-form-control .ec-form-control-icon{margin-top:.4375rem;margin-right:.25rem;order:1}ec-form-control .ec-form-control-icon:not([class*=icon-]){display:none}ec-form-control .icon-required,ec-form-control .icon-invalid{color:var(--ec-form-control-border-color-invalid)}ec-form-control .ec-form-control-clear,ec-form-control .ec-form-control-action{font-size:var(--ec-font-size-action);height:2rem;line-height:1.25rem;padding:.3125rem .5rem;border-radius:var(--ec-border-radius);display:flex;cursor:pointer;flex:none;height:1.875rem;width:2rem;order:3;background-color:transparent;border:0;border-radius:0;display:inline-flex;align-items:center;justify-content:center;outline:none}ec-form-control .ec-form-control-clear .label,ec-form-control .ec-form-control-action .label{display:flex;align-items:center;justify-content:center;white-space:nowrap;flex:auto}ec-form-control .ec-form-control-clear .ec-icon,ec-form-control .ec-form-control-action .ec-icon{flex:none}ec-form-control .ec-form-control-clear .ec-icon+.label,ec-form-control .ec-form-control-action .ec-icon+.label{flex:none;margin-left:.25rem}ec-form-control .ec-form-control-clear.has-badge,ec-form-control .ec-form-control-action.has-badge{padding-right:.0625rem}ec-form-control .ec-form-control-clear:focus,ec-form-control .ec-form-control-action:focus{outline:none;position:relative;z-index:1}ec-form-control .ec-form-control-clear:disabled,ec-form-control .ec-form-control-action:disabled{background-color:var(--ec-background-color-disabled);border:1px solid var(--ec-form-control-border-color-disabled);color:var(--ec-color-disabled-dark);opacity:var(--ec-form-control-opacity-disabled);cursor:default}ec-form-control .ec-form-control-clear:disabled,ec-form-control .ec-form-control-action:disabled{border:0;background-color:transparent;border-color:transparent}ec-form-control .ec-form-control-clear:last-of-type,ec-form-control .ec-form-control-action:last-of-type{margin-right:-.5rem}ec-form-control .ec-form-control-clear:hover:not(:disabled),ec-form-control .ec-form-control-action:hover:not(:disabled){cursor:pointer;background-color:var(--ec-background-color-hover)}ec-form-control .ec-form-control-clear:active:not(:disabled),ec-form-control .ec-form-control-action:active:not(:disabled){background-color:var(--ec-background-color-selected);font-weight:700}ec-form-control .ec-form-control-clear:focus:not(:disabled),ec-form-control .ec-form-control-action:focus:not(:disabled){box-shadow:var(--ec-button-box-shadow-active, 0 0 0 2px var(--ec-border-color-focus))}ec-form-control button:last-of-type{border-top-right-radius:calc(var(--ec-form-control-border-radius) - .0625rem);border-bottom-right-radius:calc(var(--ec-form-control-border-radius) - .0625rem)}ec-form-control .ec-form-control-clear{width:1.5rem}ec-form-control .ec-form-control-prefix,ec-form-control .ec-form-control-suffix{color:var(--ec-color-secondary-dark);flex:none;cursor:default}ec-form-control .ec-form-control-prefix{margin-right:.125rem;order:2}ec-form-control .ec-form-control-suffix{margin-left:.125rem;order:3}ec-form-control .ec-focus-ring{position:absolute;inset:-1px;border:.125rem solid var(--ec-color-interactive);pointer-events:none;display:none;border-radius:var(--ec-form-control-border-radius);z-index:1}ec-form-control.is-pending .icon-invalid,ec-form-control.is-pending .icon-required{display:none}ec-form-control.is-invalid{border-color:var(--ec-form-control-border-color-invalid);background-color:var(--ec-form-control-background-color-invalid)}ec-form-control.is-invalid .icon-required{display:none}ec-form-control.is-empty .ec-form-control-clear{display:none}ec-form-control.is-required.is-empty .ec-form-control-icon:first-of-type{display:none}ec-form-control:not(.is-pending) .icon-loading{display:none}ec-form-control:not(.is-required) .icon-required,ec-form-control:not(.is-empty) .icon-required{display:none}ec-form-control:not(.is-invalid) .icon-invalid{display:none}ec-form-control.is-readonly,ec-form-control.is-disabled{background-color:var(--ec-form-control-background-color-disabled)}ec-form-control.is-readonly .icon-loading,ec-form-control.is-readonly .icon-invalid,ec-form-control.is-readonly .icon-required,ec-form-control.is-readonly .ec-form-control-clear,ec-form-control.is-disabled .icon-loading,ec-form-control.is-disabled .icon-invalid,ec-form-control.is-disabled .icon-required,ec-form-control.is-disabled .ec-form-control-clear{display:none}ec-form-control.is-readonly{border-color:var(--ec-form-control-border-color-readonly);color:var(--ec-form-control-color-readonly)}ec-form-control.is-readonly .ec-form-control-action{display:none}ec-form-control.is-disabled:not(.is-readonly){color:var(--ec-form-control-color-disabled);opacity:.6}ec-form-control.is-disabled:not(.is-readonly) .ec-form-control-prefix,ec-form-control.is-disabled:not(.is-readonly) .ec-form-control-suffix{color:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
53
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FormControlComponent, decorators: [{
54
54
  type: Component,
55
- args: [{ selector: 'ec-form-control', encapsulation: ViewEncapsulation.None, template: "<ng-content></ng-content>\r\n<i id=\"{{id + '_icon'}}\" class=\"ec-form-control-icon ec-icon {{icon}}\"></i>\r\n<i id=\"{{id + '_loading'}}\" class=\"ec-form-control-icon ec-icon icon-loading\"></i>\r\n<i id=\"{{id + '_required'}}\" class=\"ec-form-control-icon ec-icon icon-required\"></i>\r\n<i id=\"{{id + '_invalid'}}\" class=\"ec-form-control-icon ec-icon icon-invalid\"></i>\r\n<button *ngIf=\"showClear\"\r\n id=\"{{id + '_clear'}}\"\r\n [attr.disabled]=\"disabled || undefined\"\r\n class=\"ec-form-control-clear\"\r\n (click)=\"clear()\">\r\n <i class=\"ec-icon icon-cancel\"></i>\r\n</button>\r\n<button *ngIf=\"actionIcon\"\r\n id=\"{{id + '_action'}}\"\r\n [attr.disabled]=\"disabled || undefined\"\r\n class=\"ec-form-control-action\"\r\n (click)=\"actionClicked.emit($event)\"\r\n (keydown)=\"actionKeydown.emit($event)\">\r\n <i class=\"ec-icon {{actionIcon}}\"></i>\r\n</button>\r\n<div class=\"ec-focus-ring\"></div>", styles: ["ec-form-control{background-color:var(--ec-form-control-background-color);background-clip:padding-box;border:1px solid var(--ec-form-control-border-color);border-radius:var(--ec-border-radius);padding:0 .5rem;position:relative;color:var(--ec-form-control-color);display:flex;font-size:var(--ec-form-control-font-size);min-height:2rem;width:100%}ec-form-control>input,ec-form-control>select,ec-form-control>textarea,ec-form-control>div[contenteditable=true]{color:inherit;flex:1 1;min-width:0;border:0;background-color:transparent;order:2}ec-form-control>input::selection,ec-form-control>select::selection,ec-form-control>textarea::selection,ec-form-control>div[contenteditable=true]::selection{background-color:var(--ec-form-control-background-color-selection);color:var(--ec-form-control-color-selection)}ec-form-control>input::-webkit-input-placeholder,ec-form-control>select::-webkit-input-placeholder,ec-form-control>textarea::-webkit-input-placeholder,ec-form-control>div[contenteditable=true]::-webkit-input-placeholder{color:var(--ec-form-control-color-placeholder)}ec-form-control>input::-moz-placeholder,ec-form-control>select::-moz-placeholder,ec-form-control>textarea::-moz-placeholder,ec-form-control>div[contenteditable=true]::-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}ec-form-control>input:-ms-input-placeholder,ec-form-control>select:-ms-input-placeholder,ec-form-control>textarea:-ms-input-placeholder,ec-form-control>div[contenteditable=true]:-ms-input-placeholder{color:var(--ec-form-control-color-placeholder)}ec-form-control>input:-moz-placeholder,ec-form-control>select:-moz-placeholder,ec-form-control>textarea:-moz-placeholder,ec-form-control>div[contenteditable=true]:-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}ec-form-control>input:focus,ec-form-control>select:focus,ec-form-control>textarea:focus,ec-form-control>div[contenteditable=true]:focus{outline:none}ec-form-control>input:focus~.ec-focus-ring,ec-form-control>select:focus~.ec-focus-ring,ec-form-control>textarea:focus~.ec-focus-ring,ec-form-control>div[contenteditable=true]:focus~.ec-focus-ring{display:block}ec-form-control>input,ec-form-control>textarea,ec-form-control>select,ec-form-control>div[contenteditable=true],ec-form-control .ec-form-control-prefix,ec-form-control .ec-form-control-suffix{padding:calc((1.875rem - (var(--ec-font-size-body) * 1.25)) / 2) 0;line-height:1.25;font-size:inherit}ec-form-control>textarea{resize:none;padding:.3125rem 0}ec-form-control .ec-form-control-icon{margin-top:.4375rem;margin-right:.25rem;order:1}ec-form-control .ec-form-control-icon:not([class*=icon-]){display:none}ec-form-control .icon-required,ec-form-control .icon-invalid{color:var(--ec-form-control-border-color-invalid)}ec-form-control .ec-form-control-clear,ec-form-control .ec-form-control-action{font-size:var(--ec-font-size-action);height:2rem;line-height:1.25rem;padding:.3125rem .5rem;border-radius:var(--ec-border-radius);display:flex;cursor:pointer;flex:none;height:1.875rem;width:2rem;order:3;background-color:transparent;border:0;border-radius:0;display:inline-flex;align-items:center;justify-content:center;outline:none}ec-form-control .ec-form-control-clear .label,ec-form-control .ec-form-control-action .label{display:flex;align-items:center;justify-content:center;white-space:nowrap;flex:auto}ec-form-control .ec-form-control-clear .ec-icon,ec-form-control .ec-form-control-action .ec-icon{flex:none}ec-form-control .ec-form-control-clear .ec-icon+.label,ec-form-control .ec-form-control-action .ec-icon+.label{flex:none;margin-left:.25rem}ec-form-control .ec-form-control-clear.has-badge,ec-form-control .ec-form-control-action.has-badge{padding-right:.0625rem}ec-form-control .ec-form-control-clear:focus,ec-form-control .ec-form-control-action:focus{outline:none;position:relative;z-index:1}ec-form-control .ec-form-control-clear:disabled,ec-form-control .ec-form-control-action:disabled{background-color:var(--ec-background-color-disabled);border:1px solid var(--ec-form-control-border-color-disabled);color:var(--ec-color-disabled-dark);opacity:var(--ec-form-control-opacity-disabled);cursor:default}ec-form-control .ec-form-control-clear:disabled,ec-form-control .ec-form-control-action:disabled{border:0;background-color:transparent;border-color:transparent}ec-form-control .ec-form-control-clear:last-of-type,ec-form-control .ec-form-control-action:last-of-type{margin-right:-.5rem}ec-form-control .ec-form-control-clear:hover:not(:disabled),ec-form-control .ec-form-control-action:hover:not(:disabled){cursor:pointer;background-color:var(--ec-background-color-hover)}ec-form-control .ec-form-control-clear:active:not(:disabled),ec-form-control .ec-form-control-action:active:not(:disabled){background-color:var(--ec-background-color-selected);font-weight:700}ec-form-control .ec-form-control-clear:focus:not(:disabled),ec-form-control .ec-form-control-action:focus:not(:disabled){box-shadow:var(--ec-button-box-shadow-active, 0 0 0 2px var(--ec-border-color-focus))}ec-form-control button:last-of-type{border-top-right-radius:calc(var(--ec-form-control-border-radius) - .0625rem);border-bottom-right-radius:calc(var(--ec-form-control-border-radius) - .0625rem)}ec-form-control .ec-form-control-clear{width:1.5rem}ec-form-control .ec-form-control-prefix,ec-form-control .ec-form-control-suffix{color:var(--ec-color-secondary-dark);flex:none;cursor:default}ec-form-control .ec-form-control-prefix{margin-right:.125rem;order:2}ec-form-control .ec-form-control-suffix{margin-left:.125rem;order:3}ec-form-control .ec-focus-ring{position:absolute;inset:-1px;border:.125rem solid var(--ec-color-interactive);pointer-events:none;display:none;border-radius:var(--ec-form-control-border-radius);z-index:1}ec-form-control.is-pending .icon-invalid,ec-form-control.is-pending .icon-required{display:none}ec-form-control.is-invalid{border-color:var(--ec-form-control-border-color-invalid);background-color:var(--ec-form-control-background-color-invalid)}ec-form-control.is-invalid .icon-required{display:none}ec-form-control.is-empty .ec-form-control-clear{display:none}ec-form-control.is-required.is-empty .ec-form-control-icon:first-of-type{display:none}ec-form-control:not(.is-pending) .icon-loading{display:none}ec-form-control:not(.is-required) .icon-required,ec-form-control:not(.is-empty) .icon-required{display:none}ec-form-control:not(.is-invalid) .icon-invalid{display:none}ec-form-control.is-readonly,ec-form-control.is-disabled{background-color:var(--ec-form-control-background-color-disabled)}ec-form-control.is-readonly .icon-loading,ec-form-control.is-readonly .icon-invalid,ec-form-control.is-readonly .icon-required,ec-form-control.is-readonly .ec-form-control-clear,ec-form-control.is-disabled .icon-loading,ec-form-control.is-disabled .icon-invalid,ec-form-control.is-disabled .icon-required,ec-form-control.is-disabled .ec-form-control-clear{display:none}ec-form-control.is-readonly{border-color:var(--ec-form-control-border-color-readonly);color:var(--ec-form-control-color-readonly)}ec-form-control.is-readonly .ec-form-control-action{display:none}ec-form-control.is-disabled:not(.is-readonly){color:var(--ec-form-control-color-disabled);opacity:.6}ec-form-control.is-disabled:not(.is-readonly) .ec-form-control-prefix,ec-form-control.is-disabled:not(.is-readonly) .ec-form-control-suffix{color:inherit}\n"] }]
55
+ args: [{ selector: 'ec-form-control', encapsulation: ViewEncapsulation.None, template: "<ng-content></ng-content>\r\n<i id=\"{{id + '_icon'}}\" class=\"ec-form-control-icon ec-icon {{icon}}\"></i>\r\n<i id=\"{{id + '_loading'}}\" class=\"ec-form-control-icon ec-icon icon-loading\"></i>\r\n<i id=\"{{id + '_required'}}\" class=\"ec-form-control-icon ec-icon icon-required\"></i>\r\n<i id=\"{{id + '_invalid'}}\" class=\"ec-form-control-icon ec-icon icon-invalid\"></i>\r\n<button *ngIf=\"showClear\"\r\n id=\"{{id + '_clear'}}\"\r\n [attr.disabled]=\"disabled || undefined\"\r\n class=\"ec-form-control-clear\"\r\n (click)=\"clear()\">\r\n <i class=\"ec-icon icon-cancel\"></i>\r\n</button>\r\n<button *ngIf=\"actionIcon\"\r\n id=\"{{id + '_action'}}\"\r\n [attr.disabled]=\"disabled || undefined\"\r\n class=\"ec-form-control-action\"\r\n (click)=\"actionClicked.emit($event)\"\r\n (keydown)=\"actionKeydown.emit($event)\">\r\n <i class=\"ec-icon {{actionIcon}}\"></i>\r\n</button>\r\n<div class=\"ec-focus-ring\"></div>", styles: ["ec-form-control{background-color:var(--ec-form-control-background-color);background-clip:padding-box;border:1px solid var(--ec-form-control-border-color);border-radius:var(--ec-border-radius);padding:0 .5rem;position:relative;color:var(--ec-form-control-color);display:flex;font-size:var(--ec-form-control-font-size);min-height:2rem;width:100%}ec-form-control>input,ec-form-control>select,ec-form-control>textarea,ec-form-control>div[contenteditable=true]{color:inherit;flex:1 1;min-width:0;border:0;background-color:transparent;order:2}ec-form-control>input::selection,ec-form-control>select::selection,ec-form-control>textarea::selection,ec-form-control>div[contenteditable=true]::selection{background-color:var(--ec-form-control-background-color-selection);color:var(--ec-form-control-color-selection)}ec-form-control>input::-webkit-input-placeholder,ec-form-control>select::-webkit-input-placeholder,ec-form-control>textarea::-webkit-input-placeholder,ec-form-control>div[contenteditable=true]::-webkit-input-placeholder{color:var(--ec-form-control-color-placeholder)}ec-form-control>input::-moz-placeholder,ec-form-control>select::-moz-placeholder,ec-form-control>textarea::-moz-placeholder,ec-form-control>div[contenteditable=true]::-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}ec-form-control>input:-ms-input-placeholder,ec-form-control>select:-ms-input-placeholder,ec-form-control>textarea:-ms-input-placeholder,ec-form-control>div[contenteditable=true]:-ms-input-placeholder{color:var(--ec-form-control-color-placeholder)}ec-form-control>input:-moz-placeholder,ec-form-control>select:-moz-placeholder,ec-form-control>textarea:-moz-placeholder,ec-form-control>div[contenteditable=true]:-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}ec-form-control>input:focus,ec-form-control>select:focus,ec-form-control>textarea:focus,ec-form-control>div[contenteditable=true]:focus{outline:none}ec-form-control>input:focus~.ec-focus-ring,ec-form-control>select:focus~.ec-focus-ring,ec-form-control>textarea:focus~.ec-focus-ring,ec-form-control>div[contenteditable=true]:focus~.ec-focus-ring{display:block}ec-form-control>input,ec-form-control>textarea,ec-form-control>select,ec-form-control>div[contenteditable=true],ec-form-control .ec-form-control-prefix,ec-form-control .ec-form-control-suffix{padding:calc((1.875rem - var(--ec-font-size-body) * 1.25) / 2) 0;line-height:1.25;font-size:inherit}ec-form-control>textarea{resize:none;padding:.3125rem 0}ec-form-control .ec-form-control-icon{margin-top:.4375rem;margin-right:.25rem;order:1}ec-form-control .ec-form-control-icon:not([class*=icon-]){display:none}ec-form-control .icon-required,ec-form-control .icon-invalid{color:var(--ec-form-control-border-color-invalid)}ec-form-control .ec-form-control-clear,ec-form-control .ec-form-control-action{font-size:var(--ec-font-size-action);height:2rem;line-height:1.25rem;padding:.3125rem .5rem;border-radius:var(--ec-border-radius);display:flex;cursor:pointer;flex:none;height:1.875rem;width:2rem;order:3;background-color:transparent;border:0;border-radius:0;display:inline-flex;align-items:center;justify-content:center;outline:none}ec-form-control .ec-form-control-clear .label,ec-form-control .ec-form-control-action .label{display:flex;align-items:center;justify-content:center;white-space:nowrap;flex:auto}ec-form-control .ec-form-control-clear .ec-icon,ec-form-control .ec-form-control-action .ec-icon{flex:none}ec-form-control .ec-form-control-clear .ec-icon+.label,ec-form-control .ec-form-control-action .ec-icon+.label{flex:none;margin-left:.25rem}ec-form-control .ec-form-control-clear.has-badge,ec-form-control .ec-form-control-action.has-badge{padding-right:.0625rem}ec-form-control .ec-form-control-clear:focus,ec-form-control .ec-form-control-action:focus{outline:none;position:relative;z-index:1}ec-form-control .ec-form-control-clear:disabled,ec-form-control .ec-form-control-action:disabled{background-color:var(--ec-background-color-disabled);border:1px solid var(--ec-form-control-border-color-disabled);color:var(--ec-color-disabled-dark);opacity:var(--ec-form-control-opacity-disabled);cursor:default}ec-form-control .ec-form-control-clear:disabled,ec-form-control .ec-form-control-action:disabled{border:0;background-color:transparent;border-color:transparent}ec-form-control .ec-form-control-clear:last-of-type,ec-form-control .ec-form-control-action:last-of-type{margin-right:-.5rem}ec-form-control .ec-form-control-clear:hover:not(:disabled),ec-form-control .ec-form-control-action:hover:not(:disabled){cursor:pointer;background-color:var(--ec-background-color-hover)}ec-form-control .ec-form-control-clear:active:not(:disabled),ec-form-control .ec-form-control-action:active:not(:disabled){background-color:var(--ec-background-color-selected);font-weight:700}ec-form-control .ec-form-control-clear:focus:not(:disabled),ec-form-control .ec-form-control-action:focus:not(:disabled){box-shadow:var(--ec-button-box-shadow-active, 0 0 0 2px var(--ec-border-color-focus))}ec-form-control button:last-of-type{border-top-right-radius:calc(var(--ec-form-control-border-radius) - .0625rem);border-bottom-right-radius:calc(var(--ec-form-control-border-radius) - .0625rem)}ec-form-control .ec-form-control-clear{width:1.5rem}ec-form-control .ec-form-control-prefix,ec-form-control .ec-form-control-suffix{color:var(--ec-color-secondary-dark);flex:none;cursor:default}ec-form-control .ec-form-control-prefix{margin-right:.125rem;order:2}ec-form-control .ec-form-control-suffix{margin-left:.125rem;order:3}ec-form-control .ec-focus-ring{position:absolute;inset:-1px;border:.125rem solid var(--ec-color-interactive);pointer-events:none;display:none;border-radius:var(--ec-form-control-border-radius);z-index:1}ec-form-control.is-pending .icon-invalid,ec-form-control.is-pending .icon-required{display:none}ec-form-control.is-invalid{border-color:var(--ec-form-control-border-color-invalid);background-color:var(--ec-form-control-background-color-invalid)}ec-form-control.is-invalid .icon-required{display:none}ec-form-control.is-empty .ec-form-control-clear{display:none}ec-form-control.is-required.is-empty .ec-form-control-icon:first-of-type{display:none}ec-form-control:not(.is-pending) .icon-loading{display:none}ec-form-control:not(.is-required) .icon-required,ec-form-control:not(.is-empty) .icon-required{display:none}ec-form-control:not(.is-invalid) .icon-invalid{display:none}ec-form-control.is-readonly,ec-form-control.is-disabled{background-color:var(--ec-form-control-background-color-disabled)}ec-form-control.is-readonly .icon-loading,ec-form-control.is-readonly .icon-invalid,ec-form-control.is-readonly .icon-required,ec-form-control.is-readonly .ec-form-control-clear,ec-form-control.is-disabled .icon-loading,ec-form-control.is-disabled .icon-invalid,ec-form-control.is-disabled .icon-required,ec-form-control.is-disabled .ec-form-control-clear{display:none}ec-form-control.is-readonly{border-color:var(--ec-form-control-border-color-readonly);color:var(--ec-form-control-color-readonly)}ec-form-control.is-readonly .ec-form-control-action{display:none}ec-form-control.is-disabled:not(.is-readonly){color:var(--ec-form-control-color-disabled);opacity:.6}ec-form-control.is-disabled:not(.is-readonly) .ec-form-control-prefix,ec-form-control.is-disabled:not(.is-readonly) .ec-form-control-suffix{color:inherit}\n"] }]
56
56
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { formControlDirective: [{
57
57
  type: ContentChild,
58
58
  args: [FormControlDirective]
@@ -1,4 +1,4 @@
1
- import { Input, Directive } from '@angular/core';
1
+ import { Directive, Input } from '@angular/core';
2
2
  import { Subject } from "rxjs";
3
3
  import { takeUntil } from 'rxjs/operators';
4
4
  import * as i0 from "@angular/core";
@@ -148,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
148
148
  }], helpPopoverPosition: [{
149
149
  type: Input
150
150
  }] } });
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb250cm9sLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvZm9ybS1jb250cm9sLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBK0MsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBUTNDOztHQUVHO0FBRUgsTUFBTSxPQUFnQixlQUFlO0lBc0duQzs7T0FFRztJQUNILFlBQ1ksd0JBQWtELEVBQ2xELGVBQWdDO1FBRGhDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBeEc1Qzs7V0FFRztRQUNhLGNBQVMsR0FBYSxLQUFLLENBQUM7UUFnQjVDOztXQUVHO1FBQ2Esa0JBQWEsR0FBMEIsS0FBSyxDQUFDO1FBRzdEOztXQUVHO1FBQ2EsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQUdoQzs7O1dBR0c7UUFDYSxZQUFPLEdBQWEsS0FBSyxDQUFDO1FBRzFDOzs7V0FHRztRQUNhLGFBQVEsR0FBYSxLQUFLLENBQUM7UUFHM0M7O1dBRUc7UUFDYSxhQUFRLEdBQVksQ0FBQyxDQUFDO1FBb0J0Qzs7V0FFRztRQUNhLHdCQUFtQixHQUE0QixVQUFVLENBQUM7UUFFMUU7O1dBRUc7UUFDSSxxQkFBZ0IsR0FBVyxFQUFFLENBQUM7UUFHckM7O1dBRUc7UUFDSSxZQUFPLEdBQVcsRUFBRSxDQUFDO1FBRzdCOzs7Ozs7Ozs7O1dBVUc7UUFDUSx1QkFBa0IsR0FBaUIsSUFBSSxPQUFPLEVBQU8sQ0FBQztJQVM1RCxDQUFDO0lBRUw7O09BRUc7SUFDSSxXQUFXLENBQUMsT0FBcUI7UUFDdEMsSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBRTtZQUNuRSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxLQUFLLElBQUksRUFBRTtnQkFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUMxQjtpQkFBTSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxLQUFLLEtBQUssRUFBRTtnQkFDbEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUN6QjtTQUNGO1FBRUQsSUFBSSxPQUFPLENBQUMsRUFBRSxJQUFJLE9BQU8sQ0FBQyxFQUFFLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBQztZQUN0RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN6RDtJQUNILENBQUM7SUFHRDs7T0FFRztJQUNJLFFBQVE7UUFDYixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV4RCw0RUFBNEU7UUFDNUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUMvQixTQUFTLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQ25DLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2pCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN4QyxDQUFDLENBQUMsQ0FBQztRQUVILDhCQUE4QjtRQUM5QixJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztJQUdyQyxDQUFDO0lBR0Q7OztPQUdHO0lBQ0ksV0FBVztRQUNoQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFHRDs7O09BR0c7SUFDTyxLQUFLLENBQUMsMkJBQTJCLENBQUMsSUFBVTtRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUFFLE9BQU87U0FBRTtRQUNoQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBRTVCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakYsSUFBSSxRQUFRLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDN0M7U0FDRjtJQUNILENBQUM7OzRHQTlLbUIsZUFBZTtnR0FBZixlQUFlOzJGQUFmLGVBQWU7a0JBRHBDLFNBQVM7NklBT1EsU0FBUztzQkFBeEIsS0FBSztnQkFPVSxTQUFTO3NCQUF4QixLQUFLO2dCQU1VLEtBQUs7c0JBQXBCLEtBQUs7Z0JBTVUsYUFBYTtzQkFBNUIsS0FBSztnQkFNVSxFQUFFO3NCQUFqQixLQUFLO2dCQU9VLE9BQU87c0JBQXRCLEtBQUs7Z0JBT1UsUUFBUTtzQkFBdkIsS0FBSztnQkFNVSxRQUFRO3NCQUF2QixLQUFLO2dCQU1VLFFBQVE7c0JBQXZCLEtBQUs7Z0JBTVUsT0FBTztzQkFBdEIsS0FBSztnQkFNVSxXQUFXO3NCQUExQixLQUFLO2dCQUtVLG1CQUFtQjtzQkFBbEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwiLi4vY29yZS92YWxpZGF0aW9uLW1lc3NhZ2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXBIZWxwZXIgfSBmcm9tICcuLi9zaGFyZWQvZm9ybS1ncm91cC5oZWxwZXInO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFBvcG92ZXJDb250ZW50UG9zaXRpb24gfSBmcm9tICcuL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQnO1xyXG5cclxuXHJcblxyXG5leHBvcnQgdHlwZSBDb250cm9sTGFiZWxQb3NpdGlvbiA9IFwidG9wXCIgfCBcImJvdHRvbVwiIHwgXCJsZWZ0XCI7XHJcblxyXG5cclxuLyoqXHJcbiAqIEJhc2UgY2xhc3MgZm9yIFJlYWN0aXZlIEZvcm0gQ29udHJvbHMsIGNvbnRhaW5pbmcgRUNJLXNwZWNpZmljIHNoYXJlZCBwcm9wZXJ0aWVzXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZvcm1Db250cm9sQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xyXG4gIFxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIElmIHRydWUsIHdpbGwgZm9jdXMgdGhlIGNvbnRyb2wncyBpbnB1dCB3aGVuIHRoZSB2aWV3IGlzIGludGlhbGl6ZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgYXV0b2ZvY3VzPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogVUktb3JpZW50ZWQgZm9ybSBtb2RlbCB0aGF0IHJldGFpbnMgdGhlIHN0YXRlcyBhbmQgdmFsdWVzIG9mIHRoZSBIVE1MIGNvbnRyb2xzIG9uIHNjcmVlbi5cclxuICAgKiBDYW4gYmUgYSB7QGxpbmsgRm9ybUNvbnRyb2x9IG9yIGEge0BsaW5rIEZvcm1Hcm91cH1cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgZm9ybU1vZGVsITogQWJzdHJhY3RDb250cm9sO1xyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGZvcm0gY29udHJvbCBsYWJlbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbD86IHN0cmluZztcclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBwb3NpdGlvbiBvZiB0aGUgZm9ybSBjb250cm9sIGxhYmVsICh0b3B8Ym90dG9tKVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbFBvc2l0aW9uPzogQ29udHJvbExhYmVsUG9zaXRpb24gPSBcInRvcFwiO1xyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGlkIG9mIHRoZSBjb21wb25lbnQuIFdlIHVzZSB0aGlzIHRvIGlkZW50aWZ5IGEgY29udHJvbCBvbiBmb2N1cyBldmVudHMgYW5kIGhlbHAuXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGlkOiBzdHJpbmcgPSAnJztcclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBwZW5kaW5nIHN0YXR1cyBvZiB0aGUgY29udHJvbCwgY2FuIGJlIHVzZWQgdG8gdGVsbCB0aGUgdXNlciB0aGUgY29udHJvbCBpc1xyXG4gICAqIGF3YWl0aW5nIGRhdGEgdmlhIGEgc3Bpbm5lciBvciBhbmltYXRpb25cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgcGVuZGluZz86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgdGhlIGlucHV0IGlzIGEgcmVxdWlyZWQgZmllbGQgb3Igbm90XHJcbiAgICogQHRvZG86IFNvbWV0aW1lIGluIHRoZSBmdXR1cmUgQW5ndWxhciBtYWtlcyBpdCBzb3VuZCBsaWtlIHRoaXMgd2lsbCBiZSBoYW5kbGVkIHZpYSB0aGUgUmVhY3RpdmUgZm9ybSBXaGVuIHRoYXQgaGFwcGVucyB0aGlzIHByb3BlcnR5IGNhbiBiZSByZW1vdmVkXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHRhYmluZGV4IG9mIHRoZSBjb250cm9sXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHRhYmluZGV4PzogbnVtYmVyID0gMDtcclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIERpc2FibGUgdGhlIGNvbnRyb2wgYW5kIGRpc3BsYXkgdGhlIHZhbHVlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHJlYWRvbmx5PzogYm9vbGVhbjtcclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIENvbmRpdGlvbmFsbHkgc2hvdyBhIHRvb2x0aXAgb24gdGhlIGZvcm0gY29udHJvbCdzIGlucHV0LlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0b29sdGlwPzogc3RyaW5nO1xyXG5cclxuICBcclxuICAvKipcclxuICAgKiBDb25kaXRpb25hbGx5IHNob3cgYSBoZWxwIHBvcG92ZXIgbmV4dCB0byB0aGUgY29udHJvbHMgbGFiZWwuXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGhlbHBQb3BvdmVyPzogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBXaGVuIGEgaGVscCBwb3BvdmVyIGlzIHByZXNlbnQsIGFsbG93cyB0aGUgcG9wb3ZlciB0byBiZSBwb3NpdGlvbmVkIGluIGRpZmZlcmVudCBsb2NhdGlvbnMuXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGhlbHBQb3BvdmVyUG9zaXRpb24/OiBQb3BvdmVyQ29udGVudFBvc2l0aW9uID0gJ3RvcC1sZWZ0JztcclxuXHJcbiAgLyoqXHJcbiAgICogQWxsIGN1cnJlbnQgdmFsaWRhdGlvbiBlcnJvcnNcclxuICAgKi9cclxuICBwdWJsaWMgdmFsaWRhdGlvbkVycm9yczogc3RyaW5nID0gXCJcIjtcclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBpZCBvZiB0aGUgZm9ybSBjb250cm9scyBpbnB1dCwgZ2V0bmVyYXRlZCBmcm9tIHRoZSBjb21wb25lbnRzIGlkLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBpbnB1dElkOiBzdHJpbmcgPSAnJztcclxuXHJcblxyXG4gLyoqXHJcbiAgKiBOb3RpZmllcyBjb21wb25lbnQgc3Vic2NyaXB0aW9ucyB0aGF0IGNvbXBvbmVudCBpcyBkZXN0cm95ZWQuXHJcbiAgKiBVc2Ugd2l0aCBgdGFrZVVudGlsKClgIHdoZW4gc3Vic2NyaWJpbmcgdG8gY29tcGxldGUgc3Vic2NyaXB0aW9uc1xyXG4gICogYXV0b21hdGljYWxseS5cclxuICAqXHJcbiAgKiBTZWU6XHJcbiAgKiBbUnhKc117QGxpbmsgaHR0cDovL3JlYWN0aXZleC5pby9yeGpzL2NsYXNzL2VzNi9PYnNlcnZhYmxlLmpzfk9ic2VydmFibGUuaHRtbCNpbnN0YW5jZS1tZXRob2QtdGFrZVVudGlsfVxyXG4gICogW2FuZCB0aGlzXXtAbGluayBodHRwczovL21lZGl1bS5jb20vQGJlbmxlc2gvcnhqcy1kb250LXVuc3Vic2NyaWJlLTY3NTNlZDRmZGE4N31cclxuICAqIFthbmQgdGhpc117QGxpbmsgaHR0cHM6Ly9uZXRiYXNhbC5jb20vd2hlbi10by11bnN1YnNjcmliZS1pbi1hbmd1bGFyLWQ2MWM2YjIxYmFkM31cclxuICAqIFthbmQgdGhpc117QGxpbmsgaHR0cDovL2JyaWFuZmxvdmUuY29tLzIwMTYvMTIvMTEvYW5ndWFyLTItdW5zdWJzY3JpYmUtb2JzZXJ2YWJsZXMvfVxyXG4gICovXHJcbiAgcHJvdGVjdGVkIGNvbXBvbmVudERlc3Ryb3llZDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBGb3JtQ29udHJvbEJhc2UuXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlOiBWYWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgZm9ybUdyb3VwSGVscGVyOiBGb3JtR3JvdXBIZWxwZXJcclxuICApIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBBbmd1bGFyIG9uQ2hhbmdlIGxpZmVjeWxlIGhvb2tcclxuICAgKi9cclxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczpTaW1wbGVDaGFuZ2VzKTp2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzLnJlYWRvbmx5ICYmIGNoYW5nZXMucmVhZG9ubHkuY3VycmVudFZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgaWYgKGNoYW5nZXMucmVhZG9ubHkuY3VycmVudFZhbHVlID09PSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtTW9kZWwuZGlzYWJsZSgpO1xyXG4gICAgICB9IGVsc2UgaWYgKGNoYW5nZXMucmVhZG9ubHkuY3VycmVudFZhbHVlID09PSBmYWxzZSkge1xyXG4gICAgICAgIHRoaXMuZm9ybU1vZGVsLmVuYWJsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNoYW5nZXMuaWQgJiYgY2hhbmdlcy5pZC5jdXJyZW50VmFsdWUgIT09IHVuZGVmaW5lZCl7XHJcbiAgICAgIHRoaXMuaW5wdXRJZCA9IHRoaXMuZm9ybUdyb3VwSGVscGVyLmdldElucHV0SWQodGhpcy5pZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBcclxuICAvKipcclxuICAgKiBBbmd1bGFyIG9uSW5pdCBsaWZlY3ljbGUgaG9vay5cclxuICAgKi9cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlucHV0SWQgPSB0aGlzLmZvcm1Hcm91cEhlbHBlci5nZXRJbnB1dElkKHRoaXMuaWQpO1xyXG4gICAgXHJcbiAgICAvLyBzdWJzY3JpYmUgdG8gdmFsdWVDaGFuZ2VzIE9ic2VydmFibGUgdG8gdGFrZSBhbnkgZXJyb3MgYW5kIHRyYW5zbGF0ZSB0aGVtXHJcbiAgICB0aGlzLmZvcm1Nb2RlbC5zdGF0dXNDaGFuZ2VzLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZClcclxuICAgICkuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICB0aGlzLnRyYW5zbGF0ZVZhbGlkYXRpb25NZXNzYWdlcyhkYXRhKVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gKHJlKXNldCB2YWxpZGF0aW9uIG1lc3NhZ2VzXHJcbiAgICB0aGlzLnRyYW5zbGF0ZVZhbGlkYXRpb25NZXNzYWdlcygpO1xyXG5cclxuICAgIFxyXG4gIH1cclxuICAgIFxyXG5cclxuICAvKipcclxuICAgKiBBbmd1bGFyIG9uRGVzdHJveSBsaWZlY3lsZSBob29rLiBcclxuICAgKiBVbnN1YnNjcmliZSBmcm9tIGFueSBvYnNlcnZhYmxlc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29tcG9uZW50RGVzdHJveWVkLm5leHQoKTtcclxuICAgIHRoaXMuY29tcG9uZW50RGVzdHJveWVkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogRnVuY3Rpb24gdGhhdCBzdWJzY3JpYmVzIHRvIHRoZSBmb3JtTW9kZWwncyB2YWx1ZUNoYW5nZXMgT2JzZXJ2YWJsZVxyXG4gICAqIHRvIHRha2UgYW55IGVycm9zIGFuZCB0cmFuc2xhdGUgdGhlbVxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBhc3luYyB0cmFuc2xhdGVWYWxpZGF0aW9uTWVzc2FnZXMoZGF0YT86IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLmZvcm1Nb2RlbCkgeyByZXR1cm47IH1cclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1Nb2RlbDtcclxuXHJcbiAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMgPSAnJztcclxuXHJcbiAgICBpZiAoIWZvcm0udmFsaWQpIHtcclxuICAgICAgbGV0IG1lc3NhZ2VzID0gYXdhaXQgdGhpcy52YWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UuZ2V0RXJyb3JNZXNzYWdlcyhmb3JtLmVycm9ycyk7XHJcbiAgICAgIGlmIChtZXNzYWdlcykge1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IG1lc3NhZ2VzLmpvaW4oJzsgJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59Il19
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb250cm9sLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvZm9ybS1jb250cm9sLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQStDLE1BQU0sZUFBZSxDQUFDO0FBRTlGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBVTNDOztHQUVHO0FBRUgsTUFBTSxPQUFnQixlQUFlO0lBc0duQzs7T0FFRztJQUNILFlBQ1ksd0JBQWtELEVBQ2xELGVBQWdDO1FBRGhDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBeEc1Qzs7V0FFRztRQUNhLGNBQVMsR0FBYSxLQUFLLENBQUM7UUFnQjVDOztXQUVHO1FBQ2Esa0JBQWEsR0FBMEIsS0FBSyxDQUFDO1FBRzdEOztXQUVHO1FBQ2EsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQUdoQzs7O1dBR0c7UUFDYSxZQUFPLEdBQWEsS0FBSyxDQUFDO1FBRzFDOzs7V0FHRztRQUNhLGFBQVEsR0FBYSxLQUFLLENBQUM7UUFHM0M7O1dBRUc7UUFDYSxhQUFRLEdBQVksQ0FBQyxDQUFDO1FBb0J0Qzs7V0FFRztRQUNhLHdCQUFtQixHQUE0QixVQUFVLENBQUM7UUFFMUU7O1dBRUc7UUFDSSxxQkFBZ0IsR0FBVyxFQUFFLENBQUM7UUFHckM7O1dBRUc7UUFDSSxZQUFPLEdBQVcsRUFBRSxDQUFDO1FBRzdCOzs7Ozs7Ozs7O1dBVUc7UUFDUSx1QkFBa0IsR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQVM5RCxDQUFDO0lBRUw7O09BRUc7SUFDSSxXQUFXLENBQUMsT0FBcUI7UUFDdEMsSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBRTtZQUNuRSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxLQUFLLElBQUksRUFBRTtnQkFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUMxQjtpQkFBTSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxLQUFLLEtBQUssRUFBRTtnQkFDbEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUN6QjtTQUNGO1FBRUQsSUFBSSxPQUFPLENBQUMsRUFBRSxJQUFJLE9BQU8sQ0FBQyxFQUFFLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBQztZQUN0RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN6RDtJQUNILENBQUM7SUFHRDs7T0FFRztJQUNJLFFBQVE7UUFDYixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV4RCw0RUFBNEU7UUFDNUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUMvQixTQUFTLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQ25DLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2pCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN4QyxDQUFDLENBQUMsQ0FBQztRQUVILDhCQUE4QjtRQUM5QixJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztJQUdyQyxDQUFDO0lBR0Q7OztPQUdHO0lBQ0ksV0FBVztRQUNoQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFHRDs7O09BR0c7SUFDTyxLQUFLLENBQUMsMkJBQTJCLENBQUMsSUFBVTtRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUFFLE9BQU87U0FBRTtRQUNoQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBRTVCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakYsSUFBSSxRQUFRLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDN0M7U0FDRjtJQUNILENBQUM7OzRHQTlLbUIsZUFBZTtnR0FBZixlQUFlOzJGQUFmLGVBQWU7a0JBRHBDLFNBQVM7NklBT1EsU0FBUztzQkFBeEIsS0FBSztnQkFPVSxTQUFTO3NCQUF4QixLQUFLO2dCQU1VLEtBQUs7c0JBQXBCLEtBQUs7Z0JBTVUsYUFBYTtzQkFBNUIsS0FBSztnQkFNVSxFQUFFO3NCQUFqQixLQUFLO2dCQU9VLE9BQU87c0JBQXRCLEtBQUs7Z0JBT1UsUUFBUTtzQkFBdkIsS0FBSztnQkFNVSxRQUFRO3NCQUF2QixLQUFLO2dCQU1VLFFBQVE7c0JBQXZCLEtBQUs7Z0JBTVUsT0FBTztzQkFBdEIsS0FBSztnQkFNVSxXQUFXO3NCQUExQixLQUFLO2dCQUtVLG1CQUFtQjtzQkFBbEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25NZXNzYWdlU2VydmljZSB9IGZyb20gXCIuLi9jb3JlL3ZhbGlkYXRpb24tbWVzc2FnZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEZvcm1Hcm91cEhlbHBlciB9IGZyb20gJy4uL3NoYXJlZC9mb3JtLWdyb3VwLmhlbHBlcic7XHJcbmltcG9ydCB7IFBvcG92ZXJDb250ZW50UG9zaXRpb24gfSBmcm9tICcuL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQnO1xyXG5cclxuXHJcblxyXG5leHBvcnQgdHlwZSBDb250cm9sTGFiZWxQb3NpdGlvbiA9IFwidG9wXCIgfCBcImJvdHRvbVwiIHwgXCJsZWZ0XCI7XHJcblxyXG5cclxuLyoqXHJcbiAqIEJhc2UgY2xhc3MgZm9yIFJlYWN0aXZlIEZvcm0gQ29udHJvbHMsIGNvbnRhaW5pbmcgRUNJLXNwZWNpZmljIHNoYXJlZCBwcm9wZXJ0aWVzXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZvcm1Db250cm9sQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xyXG4gIFxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIElmIHRydWUsIHdpbGwgZm9jdXMgdGhlIGNvbnRyb2wncyBpbnB1dCB3aGVuIHRoZSB2aWV3IGlzIGludGlhbGl6ZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgYXV0b2ZvY3VzPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogVUktb3JpZW50ZWQgZm9ybSBtb2RlbCB0aGF0IHJldGFpbnMgdGhlIHN0YXRlcyBhbmQgdmFsdWVzIG9mIHRoZSBIVE1MIGNvbnRyb2xzIG9uIHNjcmVlbi5cclxuICAgKiBDYW4gYmUgYSB7QGxpbmsgRm9ybUNvbnRyb2x9IG9yIGEge0BsaW5rIEZvcm1Hcm91cH1cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgZm9ybU1vZGVsITogQWJzdHJhY3RDb250cm9sO1xyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGZvcm0gY29udHJvbCBsYWJlbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbD86IHN0cmluZztcclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBwb3NpdGlvbiBvZiB0aGUgZm9ybSBjb250cm9sIGxhYmVsICh0b3B8Ym90dG9tKVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbFBvc2l0aW9uPzogQ29udHJvbExhYmVsUG9zaXRpb24gPSBcInRvcFwiO1xyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGlkIG9mIHRoZSBjb21wb25lbnQuIFdlIHVzZSB0aGlzIHRvIGlkZW50aWZ5IGEgY29udHJvbCBvbiBmb2N1cyBldmVudHMgYW5kIGhlbHAuXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGlkOiBzdHJpbmcgPSAnJztcclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBwZW5kaW5nIHN0YXR1cyBvZiB0aGUgY29udHJvbCwgY2FuIGJlIHVzZWQgdG8gdGVsbCB0aGUgdXNlciB0aGUgY29udHJvbCBpc1xyXG4gICAqIGF3YWl0aW5nIGRhdGEgdmlhIGEgc3Bpbm5lciBvciBhbmltYXRpb25cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgcGVuZGluZz86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgdGhlIGlucHV0IGlzIGEgcmVxdWlyZWQgZmllbGQgb3Igbm90XHJcbiAgICogQHRvZG86IFNvbWV0aW1lIGluIHRoZSBmdXR1cmUgQW5ndWxhciBtYWtlcyBpdCBzb3VuZCBsaWtlIHRoaXMgd2lsbCBiZSBoYW5kbGVkIHZpYSB0aGUgUmVhY3RpdmUgZm9ybSBXaGVuIHRoYXQgaGFwcGVucyB0aGlzIHByb3BlcnR5IGNhbiBiZSByZW1vdmVkXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHRhYmluZGV4IG9mIHRoZSBjb250cm9sXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHRhYmluZGV4PzogbnVtYmVyID0gMDtcclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIERpc2FibGUgdGhlIGNvbnRyb2wgYW5kIGRpc3BsYXkgdGhlIHZhbHVlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHJlYWRvbmx5PzogYm9vbGVhbjtcclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIENvbmRpdGlvbmFsbHkgc2hvdyBhIHRvb2x0aXAgb24gdGhlIGZvcm0gY29udHJvbCdzIGlucHV0LlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0b29sdGlwPzogc3RyaW5nO1xyXG5cclxuICBcclxuICAvKipcclxuICAgKiBDb25kaXRpb25hbGx5IHNob3cgYSBoZWxwIHBvcG92ZXIgbmV4dCB0byB0aGUgY29udHJvbHMgbGFiZWwuXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGhlbHBQb3BvdmVyPzogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBXaGVuIGEgaGVscCBwb3BvdmVyIGlzIHByZXNlbnQsIGFsbG93cyB0aGUgcG9wb3ZlciB0byBiZSBwb3NpdGlvbmVkIGluIGRpZmZlcmVudCBsb2NhdGlvbnMuXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGhlbHBQb3BvdmVyUG9zaXRpb24/OiBQb3BvdmVyQ29udGVudFBvc2l0aW9uID0gJ3RvcC1sZWZ0JztcclxuXHJcbiAgLyoqXHJcbiAgICogQWxsIGN1cnJlbnQgdmFsaWRhdGlvbiBlcnJvcnNcclxuICAgKi9cclxuICBwdWJsaWMgdmFsaWRhdGlvbkVycm9yczogc3RyaW5nID0gXCJcIjtcclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBpZCBvZiB0aGUgZm9ybSBjb250cm9scyBpbnB1dCwgZ2V0bmVyYXRlZCBmcm9tIHRoZSBjb21wb25lbnRzIGlkLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBpbnB1dElkOiBzdHJpbmcgPSAnJztcclxuXHJcblxyXG4gLyoqXHJcbiAgKiBOb3RpZmllcyBjb21wb25lbnQgc3Vic2NyaXB0aW9ucyB0aGF0IGNvbXBvbmVudCBpcyBkZXN0cm95ZWQuXHJcbiAgKiBVc2Ugd2l0aCBgdGFrZVVudGlsKClgIHdoZW4gc3Vic2NyaWJpbmcgdG8gY29tcGxldGUgc3Vic2NyaXB0aW9uc1xyXG4gICogYXV0b21hdGljYWxseS5cclxuICAqXHJcbiAgKiBTZWU6XHJcbiAgKiBbUnhKc117QGxpbmsgaHR0cDovL3JlYWN0aXZleC5pby9yeGpzL2NsYXNzL2VzNi9PYnNlcnZhYmxlLmpzfk9ic2VydmFibGUuaHRtbCNpbnN0YW5jZS1tZXRob2QtdGFrZVVudGlsfVxyXG4gICogW2FuZCB0aGlzXXtAbGluayBodHRwczovL21lZGl1bS5jb20vQGJlbmxlc2gvcnhqcy1kb250LXVuc3Vic2NyaWJlLTY3NTNlZDRmZGE4N31cclxuICAqIFthbmQgdGhpc117QGxpbmsgaHR0cHM6Ly9uZXRiYXNhbC5jb20vd2hlbi10by11bnN1YnNjcmliZS1pbi1hbmd1bGFyLWQ2MWM2YjIxYmFkM31cclxuICAqIFthbmQgdGhpc117QGxpbmsgaHR0cDovL2JyaWFuZmxvdmUuY29tLzIwMTYvMTIvMTEvYW5ndWFyLTItdW5zdWJzY3JpYmUtb2JzZXJ2YWJsZXMvfVxyXG4gICovXHJcbiAgcHJvdGVjdGVkIGNvbXBvbmVudERlc3Ryb3llZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIEZvcm1Db250cm9sQmFzZS5cclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCB2YWxpZGF0aW9uTWVzc2FnZVNlcnZpY2U6IFZhbGlkYXRpb25NZXNzYWdlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBmb3JtR3JvdXBIZWxwZXI6IEZvcm1Hcm91cEhlbHBlclxyXG4gICkgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFuZ3VsYXIgb25DaGFuZ2UgbGlmZWN5bGUgaG9va1xyXG4gICAqL1xyXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOlNpbXBsZUNoYW5nZXMpOnZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMucmVhZG9ubHkgJiYgY2hhbmdlcy5yZWFkb25seS5jdXJyZW50VmFsdWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBpZiAoY2hhbmdlcy5yZWFkb25seS5jdXJyZW50VmFsdWUgPT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLmZvcm1Nb2RlbC5kaXNhYmxlKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoY2hhbmdlcy5yZWFkb25seS5jdXJyZW50VmFsdWUgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtTW9kZWwuZW5hYmxlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoY2hhbmdlcy5pZCAmJiBjaGFuZ2VzLmlkLmN1cnJlbnRWYWx1ZSAhPT0gdW5kZWZpbmVkKXtcclxuICAgICAgdGhpcy5pbnB1dElkID0gdGhpcy5mb3JtR3JvdXBIZWxwZXIuZ2V0SW5wdXRJZCh0aGlzLmlkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIEFuZ3VsYXIgb25Jbml0IGxpZmVjeWNsZSBob29rLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5wdXRJZCA9IHRoaXMuZm9ybUdyb3VwSGVscGVyLmdldElucHV0SWQodGhpcy5pZCk7XHJcbiAgICBcclxuICAgIC8vIHN1YnNjcmliZSB0byB2YWx1ZUNoYW5nZXMgT2JzZXJ2YWJsZSB0byB0YWtlIGFueSBlcnJvcyBhbmQgdHJhbnNsYXRlIHRoZW1cclxuICAgIHRoaXMuZm9ybU1vZGVsLnN0YXR1c0NoYW5nZXMucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKVxyXG4gICAgKS5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgIHRoaXMudHJhbnNsYXRlVmFsaWRhdGlvbk1lc3NhZ2VzKGRhdGEpXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyAocmUpc2V0IHZhbGlkYXRpb24gbWVzc2FnZXNcclxuICAgIHRoaXMudHJhbnNsYXRlVmFsaWRhdGlvbk1lc3NhZ2VzKCk7XHJcblxyXG4gICAgXHJcbiAgfVxyXG4gICAgXHJcblxyXG4gIC8qKlxyXG4gICAqIEFuZ3VsYXIgb25EZXN0cm95IGxpZmVjeWxlIGhvb2suIFxyXG4gICAqIFVuc3Vic2NyaWJlIGZyb20gYW55IG9ic2VydmFibGVzXHJcbiAgICovXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb21wb25lbnREZXN0cm95ZWQubmV4dCgpO1xyXG4gICAgdGhpcy5jb21wb25lbnREZXN0cm95ZWQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBGdW5jdGlvbiB0aGF0IHN1YnNjcmliZXMgdG8gdGhlIGZvcm1Nb2RlbCdzIHZhbHVlQ2hhbmdlcyBPYnNlcnZhYmxlXHJcbiAgICogdG8gdGFrZSBhbnkgZXJyb3MgYW5kIHRyYW5zbGF0ZSB0aGVtXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGFzeW5jIHRyYW5zbGF0ZVZhbGlkYXRpb25NZXNzYWdlcyhkYXRhPzogYW55KSB7XHJcbiAgICBpZiAoIXRoaXMuZm9ybU1vZGVsKSB7IHJldHVybjsgfVxyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybU1vZGVsO1xyXG5cclxuICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9ICcnO1xyXG5cclxuICAgIGlmICghZm9ybS52YWxpZCkge1xyXG4gICAgICBsZXQgbWVzc2FnZXMgPSBhd2FpdCB0aGlzLnZhbGlkYXRpb25NZXNzYWdlU2VydmljZS5nZXRFcnJvck1lc3NhZ2VzKGZvcm0uZXJyb3JzKTtcclxuICAgICAgaWYgKG1lc3NhZ2VzKSB7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzID0gbWVzc2FnZXMuam9pbignOyAnKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn0iXX0=
@@ -133,4 +133,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
133
133
  }], hideValidationMessage: [{
134
134
  type: Input
135
135
  }] } });
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb250cm9sLWxhYmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9mb3JtLWNvbnRyb2wtbGFiZWwvZm9ybS1jb250cm9sLWxhYmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9mb3JtLWNvbnRyb2wtbGFiZWwvZm9ybS1jb250cm9sLWxhYmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUd0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUczQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7QUFPeEUsTUFBTSxPQUFPLHlCQUF5QjtJQW9EcEMsWUFDWSx3QkFBa0QsRUFDcEQsZ0JBQWtDO1FBRGhDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDcEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQTFDNUM7O1dBRUc7UUFDYSxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBV25DOzthQUVLO1FBQ1csa0JBQWEsR0FBMEIsS0FBSyxDQUFDO1FBRzdEOztXQUVHO1FBQ2EsNEJBQXVCLEdBQVksRUFBRSxDQUFDO1FBRXREO1dBQ0c7UUFDYSwwQkFBcUIsR0FBWSxLQUFLLENBQUM7UUFDdkQ7Ozs7O1dBS0c7UUFDSSxxQkFBZ0IsR0FBVyxFQUFFLENBQUM7UUFFOUIsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBRW5DLHVCQUFrQixHQUFpQixJQUFJLE9BQU8sRUFBTyxDQUFDO0lB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QkFBeUI7MEdBQXpCLHlCQUF5QiwrU0NkdEMsd1lBT007MkZET08seUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHVCQUF1Qjs4SUFTakIsRUFBRTtzQkFBakIsS0FBSztnQkFLeUIsTUFBTTtzQkFBcEMsV0FBVzt1QkFBQyxTQUFTO2dCQUtOLEtBQUs7c0JBQXBCLEtBQUs7Z0JBU1UsT0FBTztzQkFBdEIsS0FBSztnQkFLVSxhQUFhO3NCQUE1QixLQUFLO2dCQU1VLHVCQUF1QjtzQkFBdEMsS0FBSztnQkFJVSxxQkFBcUI7c0JBQXBDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS92YWxpZGF0aW9uLW1lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbnRyb2xMYWJlbFBvc2l0aW9uIH0gZnJvbSAnLi4vZm9ybS1jb250cm9sLWJhc2UnO1xyXG5pbXBvcnQgeyBmb3JFYWNoRm9ybUNvbnRyb2wgfSBmcm9tICcuLi9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWMtZm9ybS1jb250cm9sLWxhYmVsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1jb250cm9sLWxhYmVsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWNvbnRyb2wtbGFiZWwuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUNvbnRyb2xMYWJlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIC8qKlxyXG4gICAqIElkXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGlkPzogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBCaW5kIGlkIHRvIGhvc3QgZWxlbWVudFxyXG4gICAqL1xyXG4gIEBIb3N0QmluZGluZygnYXR0ci5pZCcpIHB1YmxpYyBhdHRySWQ/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBmb3JtIGNvbnRyb2wgbGFiZWxcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgbGFiZWw6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvKipcclxuICAgKiBVSS1vcmllbnRlZCBmb3JtIG1vZGVsIHRoYXQgcmV0YWlucyB0aGUgc3RhdGVzIGFuZCB2YWx1ZXMgb2YgdGhlIEhUTUwgY29udHJvbHMgb24gc2NyZWVuLlxyXG4gICAqIENhbiBiZSBhIHtAbGluayBGb3JtQ29udHJvbH0sIGEge0BsaW5rIEZvcm1Hcm91cH0gb3IgYSB7QGxpbmsgRm9ybUFycmF5fVxyXG4gICAqXHJcbiAgICogQHR5cGUge0Fic3RyYWN0Q29udHJvbH1cclxuICAgKiBAbWVtYmVyb2YgRm9ybUNvbnRyb2xCYXNlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGNvbnRyb2w/OiBBYnN0cmFjdENvbnRyb2w7XHJcblxyXG4gIC8qKlxyXG4gICAgICogVGhlIHBvc2l0aW9uIG9mIHRoZSBmb3JtIGNvbnRyb2wgbGFiZWwgKHRvcHxib3R0b218bGVmdClcclxuICAgICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbFBvc2l0aW9uPzogQ29udHJvbExhYmVsUG9zaXRpb24gPSBcInRvcFwiO1xyXG5cclxuXHJcbiAgLyoqQW4gb3B0aW9uYWwgc3RyaW5nIHRvIHNob3cgaWYgYW55IG9mIHRoZSB1bmRlcmx5aW5nIGNvbnRyb2xzIGhhcyBhbiBlcnJvci4gSWYgZmFsc3ksIG9uZSBvZiB0aGVcclxuICAgKiBlcnJvcnMgZnJvbSB0aGUgdW5kZXJseWluZyBjb250cm9scyB3aWxsIGJlIHVzZWQuXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIG92ZXJyaWRlVmFsaWRhdGlvbkVycm9yPzogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgLyoqQW4gb3B0aW9uYWwgZmxhZyB0byBoaWRlIHRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBoaWRlVmFsaWRhdGlvbk1lc3NhZ2U/OmJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBBbGwgY3VycmVudCB2YWxpZGF0aW9uIGVycm9yc1xyXG4gICAqXHJcbiAgICogQHR5cGUge3N0cmluZ31cclxuICAgKiBAbWVtYmVyb2YgRm9ybUNvbnRyb2xCYXNlXHJcbiAgICovXHJcbiAgcHVibGljIHZhbGlkYXRpb25FcnJvcnM6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIHB1YmxpYyBhbGxDb250cm9sc1RvdWNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBjb21wb25lbnREZXN0cm95ZWQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlOiBWYWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICAvLyBzdWJzY3JpYmUgdG8gc3RhdHVzQ2hhbmdlcyBPYnNlcnZhYmxlIHRvIHRha2UgYW55IGVycm9ycyBhbmQgdHJhbnNsYXRlIHRoZW1cclxuICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcclxuICAgICAgdGhpcy5jb250cm9sLnN0YXR1c0NoYW5nZXNcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGVWYWxpZGF0aW9uTWVzc2FnZXModGhpcy5nZXRFcnJvcnModGhpcy5jb250cm9sISkpXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAvLyAocmUpc2V0IHZhbGlkYXRpb24gbWVzc2FnZXNcclxuICAgICAgdGhpcy50cmFuc2xhdGVWYWxpZGF0aW9uTWVzc2FnZXModGhpcy5nZXRFcnJvcnModGhpcy5jb250cm9sKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaWQpIHtcclxuICAgICAgdGhpcy5hdHRySWQgPSB0aGlzLmlkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQW5ndWxhciBvbkRlc3Ryb3kgbGlmZWN5bGUgaG9vay5cclxuICAgKiBVbnN1YnNjcmliZSBmcm9tIGFueSBvYnNlcnZhYmxlc1xyXG4gICAqXHJcbiAgICogQHNlZSBodHRwczovL2FuZ3VsYXIuaW8vZ3VpZGUvbGlmZWN5Y2xlLWhvb2tzXHJcbiAgICogQG1lbWJlcm9mIEZvcm1Db250cm9sQmFzZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29tcG9uZW50RGVzdHJveWVkLm5leHQoKTtcclxuICAgIHRoaXMuY29tcG9uZW50RGVzdHJveWVkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEVycm9ycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBjb250cm9sLm1hcmtBc1VudG91Y2hlZCgpO1xyXG5cclxuICAgIGxldCBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcclxuICAgIGxldCBhbGxUb3VjaGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIGxldCBjb250cm9sRm91bmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBmb3JFYWNoRm9ybUNvbnRyb2woY29udHJvbCwgKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xyXG4gICAgICBlcnJvcnMgPSB0aGlzLmFzc2lnbkVycm9ycyhjb250cm9sLCBlcnJvcnMpO1xyXG4gICAgICBpZiAoY29udHJvbC51bnRvdWNoZWQpIHtcclxuICAgICAgICBhbGxUb3VjaGVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgY29udHJvbEZvdW5kID0gdHJ1ZTtcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChjb250cm9sLmVycm9ycykge1xyXG4gICAgICBlcnJvcnMgPSBPYmplY3QuYXNzaWduKGVycm9ycyB8fCB7fSwgY29udHJvbC5lcnJvcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChhbGxUb3VjaGVkICYmIGNvbnRyb2xGb3VuZCkge1xyXG4gICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZXJyb3JzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3NpZ25FcnJvcnMoY29udHJvbDogQWJzdHJhY3RDb250cm9sLCBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgaWYgKGNvbnRyb2wuZXJyb3JzKSB7XHJcbiAgICAgIGVycm9ycyA9IE9iamVjdC5hc3NpZ24oZXJyb3JzIHx8IHt9LCBjb250cm9sLmVycm9ycyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGVycm9yc1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRnVuY3Rpb24gdGhhdCBzdWJzY3JpYmVzIHRvIHRoZSBjb250cm9scyB2YWx1ZUNoYW5nZXMgT2JzZXJ2YWJsZVxyXG4gICAqIHRvIHRha2UgYW55IGVycm9zIGFuZCB0cmFuc2xhdGUgdGhlbVxyXG4gICAqXHJcbiAgICogQHBhcmFtIHsqfSBbZGF0YV1cclxuICAgKiBAcmV0dXJuc1xyXG4gICAqIEBtZW1iZXJvZiBGb3JtQ29udHJvbEJhc2VcclxuICAgKi9cclxuICBwcml2YXRlIGFzeW5jIHRyYW5zbGF0ZVZhbGlkYXRpb25NZXNzYWdlcyhlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsKSB7XHJcbiAgICBpZiAoZXJyb3JzKSB7XHJcbiAgICAgIGlmKHRoaXMub3ZlcnJpZGVWYWxpZGF0aW9uRXJyb3Ipe1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMub3ZlcnJpZGVWYWxpZGF0aW9uRXJyb3IpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBtZXNzYWdlcyA9IGF3YWl0IHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlLmdldEVycm9yTWVzc2FnZXMoZXJyb3JzKTtcclxuICAgICAgICBpZiAobWVzc2FnZXMpIHtcclxuICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IG1lc3NhZ2VzLmpvaW4oJzsgJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMgPSAnJztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRyb2wgY29udHJvbC1sYWJlbC17e2xhYmVsUG9zaXRpb259fVwiIFtjbGFzcy5lYy11bnRvdWNoZWRdPVwiY29udHJvbD8udW50b3VjaGVkXCI+XHJcbiAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIiBuZ1ByZXNlcnZlV2hpdGVzcGFjZXM+XHJcblxyXG4gICAgPHNwYW4gaWQ9XCJ7e2lkfX1fbGFiZWxcIj57e2xhYmVsIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcblxyXG4gICAgPHNwYW4gKm5nSWY9XCIhaGlkZVZhbGlkYXRpb25NZXNzYWdlICYmIHZhbGlkYXRpb25FcnJvcnMgJiYgY29udHJvbD8udG91Y2hlZCAmJiBjb250cm9sPy5pbnZhbGlkXCI+e3t2YWxpZGF0aW9uRXJyb3JzIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgPC9sYWJlbD5cclxuPC9kaXY+Il19
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb250cm9sLWxhYmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9mb3JtLWNvbnRyb2wtbGFiZWwvZm9ybS1jb250cm9sLWxhYmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9mb3JtLWNvbnRyb2wtbGFiZWwvZm9ybS1jb250cm9sLWxhYmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUd0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUczQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7QUFPeEUsTUFBTSxPQUFPLHlCQUF5QjtJQW9EcEMsWUFDWSx3QkFBa0QsRUFDcEQsZ0JBQWtDO1FBRGhDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDcEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQTFDNUM7O1dBRUc7UUFDYSxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBV25DOzthQUVLO1FBQ1csa0JBQWEsR0FBMEIsS0FBSyxDQUFDO1FBRzdEOztXQUVHO1FBQ2EsNEJBQXVCLEdBQVksRUFBRSxDQUFDO1FBRXREO1dBQ0c7UUFDYSwwQkFBcUIsR0FBWSxLQUFLLENBQUM7UUFDdkQ7Ozs7O1dBS0c7UUFDSSxxQkFBZ0IsR0FBVyxFQUFFLENBQUM7UUFFOUIsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBRW5DLHVCQUFrQixHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO0lB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QkFBeUI7MEdBQXpCLHlCQUF5QiwrU0NkdEMsd1lBT007MkZET08seUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHVCQUF1Qjs4SUFTakIsRUFBRTtzQkFBakIsS0FBSztnQkFLeUIsTUFBTTtzQkFBcEMsV0FBVzt1QkFBQyxTQUFTO2dCQUtOLEtBQUs7c0JBQXBCLEtBQUs7Z0JBU1UsT0FBTztzQkFBdEIsS0FBSztnQkFLVSxhQUFhO3NCQUE1QixLQUFLO2dCQU1VLHVCQUF1QjtzQkFBdEMsS0FBSztnQkFJVSxxQkFBcUI7c0JBQXBDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS92YWxpZGF0aW9uLW1lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbnRyb2xMYWJlbFBvc2l0aW9uIH0gZnJvbSAnLi4vZm9ybS1jb250cm9sLWJhc2UnO1xyXG5pbXBvcnQgeyBmb3JFYWNoRm9ybUNvbnRyb2wgfSBmcm9tICcuLi9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWMtZm9ybS1jb250cm9sLWxhYmVsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1jb250cm9sLWxhYmVsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWNvbnRyb2wtbGFiZWwuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUNvbnRyb2xMYWJlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIC8qKlxyXG4gICAqIElkXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGlkPzogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBCaW5kIGlkIHRvIGhvc3QgZWxlbWVudFxyXG4gICAqL1xyXG4gIEBIb3N0QmluZGluZygnYXR0ci5pZCcpIHB1YmxpYyBhdHRySWQ/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBmb3JtIGNvbnRyb2wgbGFiZWxcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgbGFiZWw6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvKipcclxuICAgKiBVSS1vcmllbnRlZCBmb3JtIG1vZGVsIHRoYXQgcmV0YWlucyB0aGUgc3RhdGVzIGFuZCB2YWx1ZXMgb2YgdGhlIEhUTUwgY29udHJvbHMgb24gc2NyZWVuLlxyXG4gICAqIENhbiBiZSBhIHtAbGluayBGb3JtQ29udHJvbH0sIGEge0BsaW5rIEZvcm1Hcm91cH0gb3IgYSB7QGxpbmsgRm9ybUFycmF5fVxyXG4gICAqXHJcbiAgICogQHR5cGUge0Fic3RyYWN0Q29udHJvbH1cclxuICAgKiBAbWVtYmVyb2YgRm9ybUNvbnRyb2xCYXNlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGNvbnRyb2w/OiBBYnN0cmFjdENvbnRyb2w7XHJcblxyXG4gIC8qKlxyXG4gICAgICogVGhlIHBvc2l0aW9uIG9mIHRoZSBmb3JtIGNvbnRyb2wgbGFiZWwgKHRvcHxib3R0b218bGVmdClcclxuICAgICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbFBvc2l0aW9uPzogQ29udHJvbExhYmVsUG9zaXRpb24gPSBcInRvcFwiO1xyXG5cclxuXHJcbiAgLyoqQW4gb3B0aW9uYWwgc3RyaW5nIHRvIHNob3cgaWYgYW55IG9mIHRoZSB1bmRlcmx5aW5nIGNvbnRyb2xzIGhhcyBhbiBlcnJvci4gSWYgZmFsc3ksIG9uZSBvZiB0aGVcclxuICAgKiBlcnJvcnMgZnJvbSB0aGUgdW5kZXJseWluZyBjb250cm9scyB3aWxsIGJlIHVzZWQuXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIG92ZXJyaWRlVmFsaWRhdGlvbkVycm9yPzogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgLyoqQW4gb3B0aW9uYWwgZmxhZyB0byBoaWRlIHRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBoaWRlVmFsaWRhdGlvbk1lc3NhZ2U/OmJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBBbGwgY3VycmVudCB2YWxpZGF0aW9uIGVycm9yc1xyXG4gICAqXHJcbiAgICogQHR5cGUge3N0cmluZ31cclxuICAgKiBAbWVtYmVyb2YgRm9ybUNvbnRyb2xCYXNlXHJcbiAgICovXHJcbiAgcHVibGljIHZhbGlkYXRpb25FcnJvcnM6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIHB1YmxpYyBhbGxDb250cm9sc1RvdWNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBjb21wb25lbnREZXN0cm95ZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCB2YWxpZGF0aW9uTWVzc2FnZVNlcnZpY2U6IFZhbGlkYXRpb25NZXNzYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBuZ09uSW5pdCgpIHtcclxuICAgIC8vIHN1YnNjcmliZSB0byBzdGF0dXNDaGFuZ2VzIE9ic2VydmFibGUgdG8gdGFrZSBhbnkgZXJyb3JzIGFuZCB0cmFuc2xhdGUgdGhlbVxyXG4gICAgaWYgKHRoaXMuY29udHJvbCkge1xyXG4gICAgICB0aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlc1xyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVZhbGlkYXRpb25NZXNzYWdlcyh0aGlzLmdldEVycm9ycyh0aGlzLmNvbnRyb2whKSlcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIC8vIChyZSlzZXQgdmFsaWRhdGlvbiBtZXNzYWdlc1xyXG4gICAgICB0aGlzLnRyYW5zbGF0ZVZhbGlkYXRpb25NZXNzYWdlcyh0aGlzLmdldEVycm9ycyh0aGlzLmNvbnRyb2wpKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pZCkge1xyXG4gICAgICB0aGlzLmF0dHJJZCA9IHRoaXMuaWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBbmd1bGFyIG9uRGVzdHJveSBsaWZlY3lsZSBob29rLlxyXG4gICAqIFVuc3Vic2NyaWJlIGZyb20gYW55IG9ic2VydmFibGVzXHJcbiAgICpcclxuICAgKiBAc2VlIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9saWZlY3ljbGUtaG9va3NcclxuICAgKiBAbWVtYmVyb2YgRm9ybUNvbnRyb2xCYXNlXHJcbiAgICovXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb21wb25lbnREZXN0cm95ZWQubmV4dCgpO1xyXG4gICAgdGhpcy5jb21wb25lbnREZXN0cm95ZWQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RXJyb3JzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIGNvbnRyb2wubWFya0FzVW50b3VjaGVkKCk7XHJcblxyXG4gICAgbGV0IGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xyXG4gICAgbGV0IGFsbFRvdWNoZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgbGV0IGNvbnRyb2xGb3VuZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGZvckVhY2hGb3JtQ29udHJvbChjb250cm9sLCAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XHJcbiAgICAgIGVycm9ycyA9IHRoaXMuYXNzaWduRXJyb3JzKGNvbnRyb2wsIGVycm9ycyk7XHJcbiAgICAgIGlmIChjb250cm9sLnVudG91Y2hlZCkge1xyXG4gICAgICAgIGFsbFRvdWNoZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBjb250cm9sRm91bmQgPSB0cnVlO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGNvbnRyb2wuZXJyb3JzKSB7XHJcbiAgICAgIGVycm9ycyA9IE9iamVjdC5hc3NpZ24oZXJyb3JzIHx8IHt9LCBjb250cm9sLmVycm9ycyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGFsbFRvdWNoZWQgJiYgY29udHJvbEZvdW5kKSB7XHJcbiAgICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlcnJvcnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzc2lnbkVycm9ycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBpZiAoY29udHJvbC5lcnJvcnMpIHtcclxuICAgICAgZXJyb3JzID0gT2JqZWN0LmFzc2lnbihlcnJvcnMgfHwge30sIGNvbnRyb2wuZXJyb3JzKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZXJyb3JzXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGdW5jdGlvbiB0aGF0IHN1YnNjcmliZXMgdG8gdGhlIGNvbnRyb2xzIHZhbHVlQ2hhbmdlcyBPYnNlcnZhYmxlXHJcbiAgICogdG8gdGFrZSBhbnkgZXJyb3MgYW5kIHRyYW5zbGF0ZSB0aGVtXHJcbiAgICpcclxuICAgKiBAcGFyYW0geyp9IFtkYXRhXVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICogQG1lbWJlcm9mIEZvcm1Db250cm9sQmFzZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgYXN5bmMgdHJhbnNsYXRlVmFsaWRhdGlvbk1lc3NhZ2VzKGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwpIHtcclxuICAgIGlmIChlcnJvcnMpIHtcclxuICAgICAgaWYodGhpcy5vdmVycmlkZVZhbGlkYXRpb25FcnJvcil7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy5vdmVycmlkZVZhbGlkYXRpb25FcnJvcik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbGV0IG1lc3NhZ2VzID0gYXdhaXQgdGhpcy52YWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UuZ2V0RXJyb3JNZXNzYWdlcyhlcnJvcnMpO1xyXG4gICAgICAgIGlmIChtZXNzYWdlcykge1xyXG4gICAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzID0gbWVzc2FnZXMuam9pbignOyAnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29udHJvbCBjb250cm9sLWxhYmVsLXt7bGFiZWxQb3NpdGlvbn19XCIgW2NsYXNzLmVjLXVudG91Y2hlZF09XCJjb250cm9sPy51bnRvdWNoZWRcIj5cclxuICA8bGFiZWwgKm5nSWY9XCJsYWJlbFwiIG5nUHJlc2VydmVXaGl0ZXNwYWNlcz5cclxuXHJcbiAgICA8c3BhbiBpZD1cInt7aWR9fV9sYWJlbFwiPnt7bGFiZWwgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuXHJcbiAgICA8c3BhbiAqbmdJZj1cIiFoaWRlVmFsaWRhdGlvbk1lc3NhZ2UgJiYgdmFsaWRhdGlvbkVycm9ycyAmJiBjb250cm9sPy50b3VjaGVkICYmIGNvbnRyb2w/LmludmFsaWRcIj57e3ZhbGlkYXRpb25FcnJvcnMgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICA8L2xhYmVsPlxyXG48L2Rpdj4iXX0=
@@ -1,5 +1,5 @@
1
- import { Component, Input, HostBinding } from "@angular/core";
2
- import { UntypedFormGroup, UntypedFormArray, UntypedFormControl } from "@angular/forms";
1
+ import { Component, HostBinding, Input } from "@angular/core";
2
+ import { UntypedFormArray, UntypedFormControl, UntypedFormGroup } from "@angular/forms";
3
3
  import { cloneDeep } from "lodash";
4
4
  import { Subject } from "rxjs";
5
5
  import { takeUntil } from "rxjs/operators";
@@ -258,4 +258,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
258
258
  }], helpPopoverPosition: [{
259
259
  type: Input
260
260
  }] } });
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBbUIsa0JBQWtCLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNuQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBTTNDOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLENBQUMsRUFBdUMsRUFBRSxnQkFBK0IsT0FBTyxFQUFFLFdBQW9CLEVBQVEsRUFBRTtJQUM5SixJQUFJLGlCQUFpQixHQUE0QixFQUFFLENBQUM7SUFFcEQsbUVBQW1FO0lBQ25FLHNDQUFzQztJQUN0QyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUF3QixFQUFFLEVBQUU7UUFDbEQsSUFBSSxZQUFZLEdBQVEsZUFBZSxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFN0UsSUFBSSxZQUFZLEtBQUssSUFBSSxJQUFJLFlBQVksS0FBSyxFQUFFLEVBQUU7WUFDaEQsSUFBSSxPQUFPLFlBQVksS0FBSyxRQUFR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QkFDNUUsSUFBSSxRQUFRLEVBQUU7b0JBQ1osSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQzdDO2FBQ0Y7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7OytHQXpKVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixtWENySS9CLDh0QkFlTTsyRkRzSE8sa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGVBQWU7OElBU1QsRUFBRTtzQkFBakIsS0FBSztnQkFLeUIsTUFBTTtzQkFBcEMsV0FBVzt1QkFBQyxTQUFTO2dCQUtOLEtBQUs7c0JBQXBCLEtBQUs7Z0JBU1UsU0FBUztzQkFBeEIsS0FBSztnQkFLVSxhQUFhO3NCQUE1QixLQUFLO2dCQU1VLHVCQUF1QjtzQkFBdEMsS0FBSztnQkFJVSxxQkFBcUI7c0JBQXBDLEtBQUs7Z0JBS1UsV0FBVztzQkFBMUIsS0FBSztnQkFLVyxtQkFBbUI7c0JBQWxDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIEhvc3RCaW5kaW5nIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCwgVW50eXBlZEZvcm1BcnJheSwgQWJzdHJhY3RDb250cm9sLCBVbnR5cGVkRm9ybUNvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gXCJsb2Rhc2hcIjtcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS92YWxpZGF0aW9uLW1lc3NhZ2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDb250cm9sTGFiZWxQb3NpdGlvbiB9IGZyb20gXCIuLi9mb3JtLWNvbnRyb2wtYmFzZVwiO1xyXG5pbXBvcnQgeyBQb3BvdmVyQ29udGVudFBvc2l0aW9uIH0gZnJvbSBcIi4uL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnRcIjtcclxuXHJcblxyXG4vKiogRnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGZvcm0gY29udHJvbHMgYW5kXHJcbiAqICBlbnN1cmUgdGhleSBjb250YWluIHVuaXF1ZSB2YWx1ZXMuICBJZiBhbnkgYXJlIGR1cGxpY2F0ZWQgYWxsIG9mZmVuZGluZ1xyXG4gKiAgZm9ybSBjb250cm9scyB3aWxsIGJlIG1hcmtlZCBhcyBpbnZhbGlkXHJcbiAqXHJcbiAqIEBwYXJhbSB2YWx1ZVByb3BlcnR5IC0gdGhlIHN1Yi1wcm9wZXJ0eSBvZiB0aGUgb2JqZWN0IHJlcHJlc2VudGVkIGJ5IGVhY2ggZm9ybSBjb250cm9sXHJcbiAqICAgICAgICBpdCBpcyBkZXJlZmVyZW5jZWQgYXMgZm9ybUdyb3VwLmNvbnRyb2wudmFsdWVbdmFsdWVQcm9wZXJ0eV0uXHJcbiAqICAgICAgICBkZWZhdWx0cyB0byBcInZhbHVlXCIsIHdoaWNoIG1hdGNoZXMgdGhlIGZvcm0gY29udHJvbHMgdXNlZCB0byBiYWNrIGNvbWJvYm94ZXNcclxuICogICAgICAgIGlmIGV4cGxpY2l0bHkgbnVsbCwgdGhpcyBmdW5jdGlvbiBhc3N1bWVzIHZhbHVlIGlzIG5vdCBhIGNvbXBsZXggb2JqZWN0IGFuZCBqdXN0IGV4dHJhY3RzXHJcbiAqICAgICAgICBmb3JtR3JvdXAuY29udHJvbC52YWx1ZVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlRm9ybUdyb3VwVmFsdWVzQXJlVW5pcXVlID0gKGZnOiBVbnR5cGVkRm9ybUdyb3VwIHwgVW50eXBlZEZvcm1BcnJheSwgdmFsdWVQcm9wZXJ0eTogc3RyaW5nIHwgbnVsbCA9IFwidmFsdWVcIiwgc3ViUHJvcGVydHk/OiBzdHJpbmcpOiB2b2lkID0+IHtcclxuICBsZXQgZm9ybUNvbnRyb2xWYWx1ZXM6IHtba2V5OiBzdHJpbmddOiBudW1iZXJ9ID0ge307XHJcblxyXG4gIC8vIEZpcnN0IGdldCBhbGwgb2YgdGhlIHZhbHVlcyBhbmQgaWYgdGhleSBoYXZlIGJlZW4gZm91bmQgYWxyZWFkeSxcclxuICAvLyBpbmNyZW1lbnQgdGhlIG51bWJlciBvZiB0aW1lcyBmb3VuZFxyXG4gIGZvckVhY2hGb3JtQ29udHJvbChmZywgKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xyXG4gICAgbGV0IGNvbnRyb2xWYWx1ZTogYW55ID0gZ2V0Q29udHJvbFZhbHVlKGNvbnRyb2wsIHZhbHVlUHJvcGVydHksIHN1YlByb3BlcnR5KTtcclxuXHJcbiAgICBpZiAoY29udHJvbFZhbHVlICE9PSBudWxsICYmIGNvbnRyb2xWYWx1ZSAhPT0gJycpIHtcclxuICAgICAgaWYgKHR5cGVvZiBjb250cm9sVmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgY29udHJvbFZhbHVlID0gY29udHJvbFZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGZvcm1Db250cm9sVmFsdWVzLmhhc093blByb3BlcnR5KGNvbnRyb2xWYWx1ZSkpIHtcclxuICAgICAgICBmb3JtQ29udHJvbFZhbHVlc1tjb250cm9sVmFsdWVdID0gZm9ybUNvbnRyb2xWYWx1ZXNbY29udHJvbFZhbHVlXSArIDE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZm9ybUNvbnRyb2xWYWx1ZXNbY29udHJvbFZhbHVlXSA9IDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgLy8gTm93IGdvIGJhY2sgb3ZlciB0aGUgY29udHJvbHMgYW5kIGlmIHRoZWlyIHZhbHVlIHdhcyBmb3VuZCBtb3JlIHRoYW4gb25jZSBmbGFnIHRoZW0gYXMgaW52YWxpZFxyXG4gIGZvckVhY2hGb3JtQ29udHJvbChmZywgKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xyXG4gICAgbGV0IGNvbnRyb2xWYWx1ZTogYW55ID0gZ2V0Q29udHJvbFZhbHVlKGNvbnRyb2wsIHZhbHVlUHJvcGVydHksIHN1YlByb3BlcnR5KTtcclxuXHJcbiAgICAvLyBJZiB0aGUgY29udHJvbCB2YWx1ZSBpcyBudWxsIHdlIHdpbGwgbGV0IGFueSByZXF1aXJlZCB2YWxpZGF0b3JzIGhhbmRsZSB0aGVtXHJcbiAgICBpZiAoY29udHJvbFZhbHVlICE9PSBudWxsICYmIGNvbnRyb2xWYWx1ZSAhPT0gJycpIHtcclxuICAgICAgaWYgKHR5cGVvZiBjb250cm9sVmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgY29udHJvbFZhbHVlID0gY29udHJvbFZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGZvcm1Db250cm9sVmFsdWVzW2NvbnRyb2xWYWx1ZV0gPiAxKSB7XHJcbiAgICAgICAgY29udHJvbC5zZXRFcnJvcnMoT2JqZWN0LmFzc2lnbih7IG5vdFVuaXF1ZTogdHJ1ZSB9LCBjb250cm9sLmVycm9ycykpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIEdldCBhIGNvcHkgb2YgdGhlIGV4aXN0aW5nIGZvcm0gY29udHJvbCBlcnJvcnMsIGlmIGFueVxyXG4gICAgICAgIGxldCBlcnJvcnMgPSBjbG9uZURlZXAoY29udHJvbC5lcnJvcnMpO1xyXG5cclxuICAgICAgICAvLyBJZiB0aGVyZSBhcmUgZXJyb3JzIGFuZCBwcmV2aW91c2x5IGhhZCB0aGUgbm90VW5pcXVlIGVycm9yIHdlIHdhbnQgdG8gcmVtb3ZlXHJcbiAgICAgICAgLy8gdGhhdCBwcm9wZXJ0eVxyXG4gICAgICAgIGlmIChlcnJvcnMgJiYgZXJyb3JzLmhhc093blByb3BlcnR5KFwibm90VW5pcXVlXCIpKSB7XHJcbiAgICAgICAgICBkZWxldGUgZXJyb3JzLm5vdFVuaXF1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIElmIHRoYXQgd2FzIHRoZSBvbmx5IGVycm9yIGluIHRoZSBvYmplY3QsIHNldCB0byBudWxsIHNvIHZhbGlkYXRpb24gcGFzc2VzXHJcbiAgICAgICAgaWYgKGVycm9ycyAmJiBPYmplY3Qua2V5cyhlcnJvcnMpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgZXJyb3JzID0gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnRyb2wuc2V0RXJyb3JzKGVycm9ycyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBGdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgZm9yIGNvbnRyb2xzIGFuZCBpbnZva2UgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHdoZW4gdGhleSBhcmUgZm91bmQuXHJcbiAqIFJlY3Vyc2l2ZWx5IGNhbGxzIGl0c2VsZiB3aGVuIGl0IGVuY291bnRlcnMgc3ViIGZvcm0gZ3JvdXBzIGFuZCBpdGVyYXRlcyBvdmVyIGZvcm0gYXJyYXlzLlxyXG4gKiBAcGFyYW0gY1xyXG4gKiBAcGFyYW0gY2FsbGJhY2tcclxuICovXHJcbmV4cG9ydCBjb25zdCBmb3JFYWNoRm9ybUNvbnRyb2wgPSAoYzogQWJzdHJhY3RDb250cm9sLCBjYWxsYmFjazogKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4gdm9pZCk6IHZvaWQgPT4ge1xyXG4gIGxldCBjb250cm9sczogQWJzdHJhY3RDb250cm9sW10gPSBbXTtcclxuXHJcbiAgLy8gTm9ybWFsaXplIHRvIGFuIGFycmF5IGZvciBlYXNlIG9mIHByb2Nlc3NpbmdcclxuICBpZiAoYyBpbnN0YW5jZW9mIFVudHlwZWRGb3JtQ29udHJvbCkge1xyXG4gICAgY29udHJvbHMucHVzaChjKTtcclxuICB9IGVsc2UgaWYgKGMgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUdyb3VwKSB7XHJcbiAgICBmb3IgKHZhciBrZXkgaW4gYy5jb250cm9scykge1xyXG4gICAgICBjb250cm9scy5wdXNoKGMuY29udHJvbHNba2V5XSk7XHJcbiAgICB9XHJcbiAgfSBlbHNlIGlmIChjIGluc3RhbmNlb2YgVW50eXBlZEZvcm1BcnJheSkge1xyXG4gICAgY29udHJvbHMgPSBjLmNvbnRyb2xzO1xyXG4gIH1cclxuXHJcbiAgY29udHJvbHMuZm9yRWFjaChjb250cm9sID0+IHtcclxuICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgVW50eXBlZEZvcm1BcnJheSkge1xyXG4gICAgICBjb250cm9sLmNvbnRyb2xzLmZvckVhY2goY3RybCA9PiB7XHJcbiAgICAgICAgaWYgKGN0cmwgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUdyb3VwIHx8IGN0cmwgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUFycmF5KSB7XHJcbiAgICAgICAgICBmb3JFYWNoRm9ybUNvbnRyb2woY3RybCwgY2FsbGJhY2spO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjYWxsYmFjayhjdHJsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Hcm91cCkge1xyXG4gICAgICBmb3JFYWNoRm9ybUNvbnRyb2woY29udHJvbCxjYWxsYmFjayk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjYWxsYmFjayhjb250cm9sKTtcclxuICAgIH1cclxuICB9KTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBGdW5jdGlvbiB0byByZXR1cm4gdGhlIHZhbHVlIGlmIGl0IGlzIGVuYWJsZWQgYW5kIHNldFxyXG4gKiBAcGFyYW0gY29udHJvbFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGdldENvbnRyb2xWYWx1ZSA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIHZhbHVlUHJvcGVydHk6IHN0cmluZyB8IG51bGwgPSBcInZhbHVlXCIsIHN1YlByb3BlcnR5Pzogc3RyaW5nKTogYW55IHwgbnVsbCA9PiB7XHJcbiAgaWYgKGNvbnRyb2wuZW5hYmxlZCAmJiAoY29udHJvbC52YWx1ZSAhPT0gbnVsbCAmJiBjb250cm9sLnZhbHVlICE9PSB1bmRlZmluZWQpKSB7XHJcbiAgICBpZiAodmFsdWVQcm9wZXJ0eSA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gY29udHJvbC52YWx1ZTtcclxuICAgIH0gZWxzZSBpZiAoc3ViUHJvcGVydHkpIHtcclxuICAgICAgcmV0dXJuIGNvbnRyb2wudmFsdWVbdmFsdWVQcm9wZXJ0eV1bc3ViUHJvcGVydHldO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGNvbnRyb2wudmFsdWVbdmFsdWVQcm9wZXJ0eV07XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlYy1mb3JtLWdyb3VwJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1ncm91cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1ncm91cC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAvKipcclxuICAgKiBJZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpZD86IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogQmluZCBpZCB0byBob3N0IGVsZW1lbnRcclxuICAgKi9cclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBwdWJsaWMgYXR0cklkPzogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgZm9ybSBjb250cm9sIGxhYmVsXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGxhYmVsOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogVUktb3JpZW50ZWQgZm9ybSBtb2RlbCB0aGF0IHJldGFpbnMgdGhlIHN0YXRlcyBhbmQgdmFsdWVzIG9mIHRoZSBIVE1MIGNvbnRyb2xzIG9uIHNjcmVlbi5cclxuICAgKiBDYW4gYmUgYSB7QGxpbmsgRm9ybUNvbnRyb2x9IG9yIGEge0BsaW5rIEZvcm1Hcm91cH1cclxuICAgKlxyXG4gICAqIEB0eXBlIHtGb3JtR3JvdXB9XHJcbiAgICogQG1lbWJlcm9mIEZvcm1Db250cm9sQmFzZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtR3JvdXA/OiBVbnR5cGVkRm9ybUdyb3VwO1xyXG5cclxuICAvKipcclxuICAgICAqIFRoZSBwb3NpdGlvbiBvZiB0aGUgZm9ybSBjb250cm9sIGxhYmVsICh0b3B8Ym90dG9tfGxlZnQpXHJcbiAgICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgbGFiZWxQb3NpdGlvbj86IENvbnRyb2xMYWJlbFBvc2l0aW9uID0gXCJ0b3BcIjtcclxuXHJcblxyXG4gIC8qKkFuIG9wdGlvbmFsIHN0cmluZyB0byBzaG93IGlmIGFueSBvZiB0aGUgdW5kZXJseWluZyBjb250cm9scyBoYXMgYW4gZXJyb3IuIElmIGZhbHN5LCBvbmUgb2YgdGhlXHJcbiAgICogZXJyb3JzIGZyb20gdGhlIHVuZGVybHlpbmcgY29udHJvbHMgd2lsbCBiZSB1c2VkLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBvdmVycmlkZVZhbGlkYXRpb25FcnJvcj86IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIC8qKkFuIG9wdGlvbmFsIGZsYWcgdG8gaGlkZSB0aGUgdmFsaWRhdGlvbiBtZXNzYWdlcy5cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgaGlkZVZhbGlkYXRpb25NZXNzYWdlPzpib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbmRpdGlvbmFsbHkgc2hvdyBhIGhlbHAgcG9wb3ZlciBuZXh0IHRvIHRoZSBjb250cm9scyBsYWJlbC5cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgaGVscFBvcG92ZXI/OiBzdHJpbmc7XHJcblxyXG4gICAvKipcclxuICAgKiBXaGVuIGEgaGVscCBwb3BvdmVyIGlzIHByZXNlbnQsIGFsbG93cyB0aGUgcG9wb3ZlciB0byBiZSBwb3NpdGlvbmVkIGluIGRpZmZlcmVudCBsb2NhdGlvbnMuXHJcbiAgICovXHJcbiAgIEBJbnB1dCgpIHB1YmxpYyBoZWxwUG9wb3ZlclBvc2l0aW9uPzogUG9wb3ZlckNvbnRlbnRQb3NpdGlvbiA9ICd0b3AtbGVmdCc7XHJcbiAgIFxyXG4gIC8qKlxyXG4gICAqIEFsbCBjdXJyZW50IHZhbGlkYXRpb24gZXJyb3JzXHJcbiAgICpcclxuICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAqIEBtZW1iZXJvZiBGb3JtQ29udHJvbEJhc2VcclxuICAgKi9cclxuICBwdWJsaWMgdmFsaWRhdGlvbkVycm9yczogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgcHVibGljIGFsbENvbnRyb2xzVG91Y2hlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIGNvbXBvbmVudERlc3Ryb3llZDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCB2YWxpZGF0aW9uTWVzc2FnZVNlcnZpY2U6IFZhbGlkYXRpb25NZXNzYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBuZ09uSW5pdCgpIHtcclxuICAgIC8vIHN1YnNjcmliZSB0byBzdGF0dXNDaGFuZ2VzIE9ic2VydmFibGUgdG8gdGFrZSBhbnkgZXJyb3JzIGFuZCB0cmFuc2xhdGUgdGhlbVxyXG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwKSB7XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnN0YXR1c0NoYW5nZXNcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGVWYWxpZGF0aW9uTWVzc2FnZXModGhpcy5nZXRFcnJvcnModGhpcy5mb3JtR3JvdXAhKSlcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIC8vIChyZSlzZXQgdmFsaWRhdGlvbiBtZXNzYWdlc1xyXG4gICAgICB0aGlzLnRyYW5zbGF0ZVZhbGlkYXRpb25NZXNzYWdlcyh0aGlzLmdldEVycm9ycyh0aGlzLmZvcm1Hcm91cCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlkKSB7XHJcbiAgICAgIHRoaXMuYXR0cklkID0gdGhpcy5pZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFuZ3VsYXIgb25EZXN0cm95IGxpZmVjeWxlIGhvb2suXHJcbiAgICogVW5zdWJzY3JpYmUgZnJvbSBhbnkgb2JzZXJ2YWJsZXNcclxuICAgKlxyXG4gICAqIEBzZWUgaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL2xpZmVjeWNsZS1ob29rc1xyXG4gICAqIEBtZW1iZXJvZiBGb3JtQ29udHJvbEJhc2VcclxuICAgKi9cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbXBvbmVudERlc3Ryb3llZC5uZXh0KCk7XHJcbiAgICB0aGlzLmNvbXBvbmVudERlc3Ryb3llZC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFcnJvcnMoZm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgZm9ybUdyb3VwLm1hcmtBc1VudG91Y2hlZCgpO1xyXG5cclxuICAgIGxldCBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcclxuICAgIGxldCBhbGxUb3VjaGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIGxldCBjb250cm9sRm91bmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBmb3JFYWNoRm9ybUNvbnRyb2woZm9ybUdyb3VwLCAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XHJcbiAgICAgIGVycm9ycyA9IHRoaXMuYXNzaWduRXJyb3JzKGNvbnRyb2wsIGVycm9ycyk7XHJcbiAgICAgIGlmIChjb250cm9sLnVudG91Y2hlZCkge1xyXG4gICAgICAgIGFsbFRvdWNoZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBjb250cm9sRm91bmQgPSB0cnVlO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGZvcm1Hcm91cC5lcnJvcnMpIHtcclxuICAgICAgZXJyb3JzID0gT2JqZWN0LmFzc2lnbihlcnJvcnMgfHwge30sIGZvcm1Hcm91cC5lcnJvcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChhbGxUb3VjaGVkICYmIGNvbnRyb2xGb3VuZCkge1xyXG4gICAgICBmb3JtR3JvdXAubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlcnJvcnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzc2lnbkVycm9ycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBpZiAoY29udHJvbC5lcnJvcnMpIHtcclxuICAgICAgZXJyb3JzID0gT2JqZWN0LmFzc2lnbihlcnJvcnMgfHwge30sIGNvbnRyb2wuZXJyb3JzKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZXJyb3JzXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGdW5jdGlvbiB0aGF0IHN1YnNjcmliZXMgdG8gdGhlIGZvcm1Hcm91cCdzIHZhbHVlQ2hhbmdlcyBPYnNlcnZhYmxlXHJcbiAgICogdG8gdGFrZSBhbnkgZXJyb3MgYW5kIHRyYW5zbGF0ZSB0aGVtXHJcbiAgICpcclxuICAgKiBAcGFyYW0geyp9IFtkYXRhXVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICogQG1lbWJlcm9mIEZvcm1Db250cm9sQmFzZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgYXN5bmMgdHJhbnNsYXRlVmFsaWRhdGlvbk1lc3NhZ2VzKGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwpIHtcclxuICAgIGlmIChlcnJvcnMpIHtcclxuICAgICAgaWYodGhpcy5vdmVycmlkZVZhbGlkYXRpb25FcnJvcil7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy5vdmVycmlkZVZhbGlkYXRpb25FcnJvcik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbGV0IG1lc3NhZ2VzID0gYXdhaXQgdGhpcy52YWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UuZ2V0RXJyb3JNZXNzYWdlcyhlcnJvcnMpO1xyXG4gICAgICAgIGlmIChtZXNzYWdlcykge1xyXG4gICAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzID0gbWVzc2FnZXMuam9pbignOyAnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29udHJvbCBjb250cm9sLWxhYmVsLXt7bGFiZWxQb3NpdGlvbn19XCJcclxuICAgICBbY2xhc3MuZWMtdW50b3VjaGVkXT1cImZvcm1Hcm91cD8udW50b3VjaGVkXCI+XHJcblxyXG4gIDxsYWJlbCAqbmdJZj1cImxhYmVsXCI+XHJcbiAgICA8c3BhbiBpZD1cInt7aWR9fV9sYWJlbFwiPnt7bGFiZWwgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgIDxzcGFuICpuZ0lmPVwiIWhpZGVWYWxpZGF0aW9uTWVzc2FnZSAmJiB2YWxpZGF0aW9uRXJyb3JzICYmIGZvcm1Hcm91cD8udG91Y2hlZCAmJiBmb3JtR3JvdXA/LmludmFsaWRcIj4mbmJzcDt7e3ZhbGlkYXRpb25FcnJvcnMgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgIDxlYy1oZWxwLXBvcG92ZXIgaWQ9XCJ7e2lkfX1faGVscFBvcG92ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhlbHBQb3BvdmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWlubGluZS1ibG9jayBteS1uMyBteC1uMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIHRleHQ9XCJ7e2hlbHBQb3BvdmVyIHwgdHJhbnNsYXRlfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICBjb250ZW50UG9zaXRpb249XCJ7e2hlbHBQb3BvdmVyUG9zaXRpb259fVwiPlxyXG4gICAgPC9lYy1oZWxwLXBvcG92ZXI+XHJcbiAgPC9sYWJlbD5cclxuXHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG48L2Rpdj4iXX0=
261
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBbUIsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNuQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBTTNDOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLENBQUMsRUFBdUMsRUFBRSxnQkFBK0IsT0FBTyxFQUFFLFdBQW9CLEVBQVEsRUFBRTtJQUM5SixJQUFJLGlCQUFpQixHQUE0QixFQUFFLENBQUM7SUFFcEQsbUVBQW1FO0lBQ25FLHNDQUFzQztJQUN0QyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUF3QixFQUFFLEVBQUU7UUFDbEQsSUFBSSxZQUFZLEdBQVEsZUFBZSxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFN0UsSUFBSSxZQUFZLEtBQUssSUFBSSxJQUFJLFlBQVksS0FBSyxFQUFFLEVBQUU7WUFDaEQsSUFBSSxPQUFPLFlBQVksS0FBSyxRQUFR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QkFDNUUsSUFBSSxRQUFRLEVBQUU7b0JBQ1osSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQzdDO2FBQ0Y7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7OytHQXpKVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixtWENySS9CLDh0QkFlTTsyRkRzSE8sa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGVBQWU7OElBU1QsRUFBRTtzQkFBakIsS0FBSztnQkFLeUIsTUFBTTtzQkFBcEMsV0FBVzt1QkFBQyxTQUFTO2dCQUtOLEtBQUs7c0JBQXBCLEtBQUs7Z0JBU1UsU0FBUztzQkFBeEIsS0FBSztnQkFLVSxhQUFhO3NCQUE1QixLQUFLO2dCQU1VLHVCQUF1QjtzQkFBdEMsS0FBSztnQkFJVSxxQkFBcUI7c0JBQXBDLEtBQUs7Z0JBS1UsV0FBVztzQkFBMUIsS0FBSztnQkFLVyxtQkFBbUI7c0JBQWxDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBVbnR5cGVkRm9ybUFycmF5LCBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gXCJsb2Rhc2hcIjtcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS92YWxpZGF0aW9uLW1lc3NhZ2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDb250cm9sTGFiZWxQb3NpdGlvbiB9IGZyb20gXCIuLi9mb3JtLWNvbnRyb2wtYmFzZVwiO1xyXG5pbXBvcnQgeyBQb3BvdmVyQ29udGVudFBvc2l0aW9uIH0gZnJvbSBcIi4uL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnRcIjtcclxuXHJcblxyXG4vKiogRnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGZvcm0gY29udHJvbHMgYW5kXHJcbiAqICBlbnN1cmUgdGhleSBjb250YWluIHVuaXF1ZSB2YWx1ZXMuICBJZiBhbnkgYXJlIGR1cGxpY2F0ZWQgYWxsIG9mZmVuZGluZ1xyXG4gKiAgZm9ybSBjb250cm9scyB3aWxsIGJlIG1hcmtlZCBhcyBpbnZhbGlkXHJcbiAqXHJcbiAqIEBwYXJhbSB2YWx1ZVByb3BlcnR5IC0gdGhlIHN1Yi1wcm9wZXJ0eSBvZiB0aGUgb2JqZWN0IHJlcHJlc2VudGVkIGJ5IGVhY2ggZm9ybSBjb250cm9sXHJcbiAqICAgICAgICBpdCBpcyBkZXJlZmVyZW5jZWQgYXMgZm9ybUdyb3VwLmNvbnRyb2wudmFsdWVbdmFsdWVQcm9wZXJ0eV0uXHJcbiAqICAgICAgICBkZWZhdWx0cyB0byBcInZhbHVlXCIsIHdoaWNoIG1hdGNoZXMgdGhlIGZvcm0gY29udHJvbHMgdXNlZCB0byBiYWNrIGNvbWJvYm94ZXNcclxuICogICAgICAgIGlmIGV4cGxpY2l0bHkgbnVsbCwgdGhpcyBmdW5jdGlvbiBhc3N1bWVzIHZhbHVlIGlzIG5vdCBhIGNvbXBsZXggb2JqZWN0IGFuZCBqdXN0IGV4dHJhY3RzXHJcbiAqICAgICAgICBmb3JtR3JvdXAuY29udHJvbC52YWx1ZVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlRm9ybUdyb3VwVmFsdWVzQXJlVW5pcXVlID0gKGZnOiBVbnR5cGVkRm9ybUdyb3VwIHwgVW50eXBlZEZvcm1BcnJheSwgdmFsdWVQcm9wZXJ0eTogc3RyaW5nIHwgbnVsbCA9IFwidmFsdWVcIiwgc3ViUHJvcGVydHk/OiBzdHJpbmcpOiB2b2lkID0+IHtcclxuICBsZXQgZm9ybUNvbnRyb2xWYWx1ZXM6IHtba2V5OiBzdHJpbmddOiBudW1iZXJ9ID0ge307XHJcblxyXG4gIC8vIEZpcnN0IGdldCBhbGwgb2YgdGhlIHZhbHVlcyBhbmQgaWYgdGhleSBoYXZlIGJlZW4gZm91bmQgYWxyZWFkeSxcclxuICAvLyBpbmNyZW1lbnQgdGhlIG51bWJlciBvZiB0aW1lcyBmb3VuZFxyXG4gIGZvckVhY2hGb3JtQ29udHJvbChmZywgKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xyXG4gICAgbGV0IGNvbnRyb2xWYWx1ZTogYW55ID0gZ2V0Q29udHJvbFZhbHVlKGNvbnRyb2wsIHZhbHVlUHJvcGVydHksIHN1YlByb3BlcnR5KTtcclxuXHJcbiAgICBpZiAoY29udHJvbFZhbHVlICE9PSBudWxsICYmIGNvbnRyb2xWYWx1ZSAhPT0gJycpIHtcclxuICAgICAgaWYgKHR5cGVvZiBjb250cm9sVmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgY29udHJvbFZhbHVlID0gY29udHJvbFZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGZvcm1Db250cm9sVmFsdWVzLmhhc093blByb3BlcnR5KGNvbnRyb2xWYWx1ZSkpIHtcclxuICAgICAgICBmb3JtQ29udHJvbFZhbHVlc1tjb250cm9sVmFsdWVdID0gZm9ybUNvbnRyb2xWYWx1ZXNbY29udHJvbFZhbHVlXSArIDE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZm9ybUNvbnRyb2xWYWx1ZXNbY29udHJvbFZhbHVlXSA9IDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgLy8gTm93IGdvIGJhY2sgb3ZlciB0aGUgY29udHJvbHMgYW5kIGlmIHRoZWlyIHZhbHVlIHdhcyBmb3VuZCBtb3JlIHRoYW4gb25jZSBmbGFnIHRoZW0gYXMgaW52YWxpZFxyXG4gIGZvckVhY2hGb3JtQ29udHJvbChmZywgKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xyXG4gICAgbGV0IGNvbnRyb2xWYWx1ZTogYW55ID0gZ2V0Q29udHJvbFZhbHVlKGNvbnRyb2wsIHZhbHVlUHJvcGVydHksIHN1YlByb3BlcnR5KTtcclxuXHJcbiAgICAvLyBJZiB0aGUgY29udHJvbCB2YWx1ZSBpcyBudWxsIHdlIHdpbGwgbGV0IGFueSByZXF1aXJlZCB2YWxpZGF0b3JzIGhhbmRsZSB0aGVtXHJcbiAgICBpZiAoY29udHJvbFZhbHVlICE9PSBudWxsICYmIGNvbnRyb2xWYWx1ZSAhPT0gJycpIHtcclxuICAgICAgaWYgKHR5cGVvZiBjb250cm9sVmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgY29udHJvbFZhbHVlID0gY29udHJvbFZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGZvcm1Db250cm9sVmFsdWVzW2NvbnRyb2xWYWx1ZV0gPiAxKSB7XHJcbiAgICAgICAgY29udHJvbC5zZXRFcnJvcnMoT2JqZWN0LmFzc2lnbih7IG5vdFVuaXF1ZTogdHJ1ZSB9LCBjb250cm9sLmVycm9ycykpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIEdldCBhIGNvcHkgb2YgdGhlIGV4aXN0aW5nIGZvcm0gY29udHJvbCBlcnJvcnMsIGlmIGFueVxyXG4gICAgICAgIGxldCBlcnJvcnMgPSBjbG9uZURlZXAoY29udHJvbC5lcnJvcnMpO1xyXG5cclxuICAgICAgICAvLyBJZiB0aGVyZSBhcmUgZXJyb3JzIGFuZCBwcmV2aW91c2x5IGhhZCB0aGUgbm90VW5pcXVlIGVycm9yIHdlIHdhbnQgdG8gcmVtb3ZlXHJcbiAgICAgICAgLy8gdGhhdCBwcm9wZXJ0eVxyXG4gICAgICAgIGlmIChlcnJvcnMgJiYgZXJyb3JzLmhhc093blByb3BlcnR5KFwibm90VW5pcXVlXCIpKSB7XHJcbiAgICAgICAgICBkZWxldGUgZXJyb3JzLm5vdFVuaXF1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIElmIHRoYXQgd2FzIHRoZSBvbmx5IGVycm9yIGluIHRoZSBvYmplY3QsIHNldCB0byBudWxsIHNvIHZhbGlkYXRpb24gcGFzc2VzXHJcbiAgICAgICAgaWYgKGVycm9ycyAmJiBPYmplY3Qua2V5cyhlcnJvcnMpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgZXJyb3JzID0gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnRyb2wuc2V0RXJyb3JzKGVycm9ycyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBGdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgZm9yIGNvbnRyb2xzIGFuZCBpbnZva2UgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHdoZW4gdGhleSBhcmUgZm91bmQuXHJcbiAqIFJlY3Vyc2l2ZWx5IGNhbGxzIGl0c2VsZiB3aGVuIGl0IGVuY291bnRlcnMgc3ViIGZvcm0gZ3JvdXBzIGFuZCBpdGVyYXRlcyBvdmVyIGZvcm0gYXJyYXlzLlxyXG4gKiBAcGFyYW0gY1xyXG4gKiBAcGFyYW0gY2FsbGJhY2tcclxuICovXHJcbmV4cG9ydCBjb25zdCBmb3JFYWNoRm9ybUNvbnRyb2wgPSAoYzogQWJzdHJhY3RDb250cm9sLCBjYWxsYmFjazogKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4gdm9pZCk6IHZvaWQgPT4ge1xyXG4gIGxldCBjb250cm9sczogQWJzdHJhY3RDb250cm9sW10gPSBbXTtcclxuXHJcbiAgLy8gTm9ybWFsaXplIHRvIGFuIGFycmF5IGZvciBlYXNlIG9mIHByb2Nlc3NpbmdcclxuICBpZiAoYyBpbnN0YW5jZW9mIFVudHlwZWRGb3JtQ29udHJvbCkge1xyXG4gICAgY29udHJvbHMucHVzaChjKTtcclxuICB9IGVsc2UgaWYgKGMgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUdyb3VwKSB7XHJcbiAgICBmb3IgKHZhciBrZXkgaW4gYy5jb250cm9scykge1xyXG4gICAgICBjb250cm9scy5wdXNoKGMuY29udHJvbHNba2V5XSk7XHJcbiAgICB9XHJcbiAgfSBlbHNlIGlmIChjIGluc3RhbmNlb2YgVW50eXBlZEZvcm1BcnJheSkge1xyXG4gICAgY29udHJvbHMgPSBjLmNvbnRyb2xzO1xyXG4gIH1cclxuXHJcbiAgY29udHJvbHMuZm9yRWFjaChjb250cm9sID0+IHtcclxuICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgVW50eXBlZEZvcm1BcnJheSkge1xyXG4gICAgICBjb250cm9sLmNvbnRyb2xzLmZvckVhY2goY3RybCA9PiB7XHJcbiAgICAgICAgaWYgKGN0cmwgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUdyb3VwIHx8IGN0cmwgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUFycmF5KSB7XHJcbiAgICAgICAgICBmb3JFYWNoRm9ybUNvbnRyb2woY3RybCwgY2FsbGJhY2spO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjYWxsYmFjayhjdHJsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Hcm91cCkge1xyXG4gICAgICBmb3JFYWNoRm9ybUNvbnRyb2woY29udHJvbCxjYWxsYmFjayk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjYWxsYmFjayhjb250cm9sKTtcclxuICAgIH1cclxuICB9KTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBGdW5jdGlvbiB0byByZXR1cm4gdGhlIHZhbHVlIGlmIGl0IGlzIGVuYWJsZWQgYW5kIHNldFxyXG4gKiBAcGFyYW0gY29udHJvbFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGdldENvbnRyb2xWYWx1ZSA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIHZhbHVlUHJvcGVydHk6IHN0cmluZyB8IG51bGwgPSBcInZhbHVlXCIsIHN1YlByb3BlcnR5Pzogc3RyaW5nKTogYW55IHwgbnVsbCA9PiB7XHJcbiAgaWYgKGNvbnRyb2wuZW5hYmxlZCAmJiAoY29udHJvbC52YWx1ZSAhPT0gbnVsbCAmJiBjb250cm9sLnZhbHVlICE9PSB1bmRlZmluZWQpKSB7XHJcbiAgICBpZiAodmFsdWVQcm9wZXJ0eSA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gY29udHJvbC52YWx1ZTtcclxuICAgIH0gZWxzZSBpZiAoc3ViUHJvcGVydHkpIHtcclxuICAgICAgcmV0dXJuIGNvbnRyb2wudmFsdWVbdmFsdWVQcm9wZXJ0eV1bc3ViUHJvcGVydHldO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGNvbnRyb2wudmFsdWVbdmFsdWVQcm9wZXJ0eV07XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlYy1mb3JtLWdyb3VwJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1ncm91cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1ncm91cC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAvKipcclxuICAgKiBJZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpZD86IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogQmluZCBpZCB0byBob3N0IGVsZW1lbnRcclxuICAgKi9cclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBwdWJsaWMgYXR0cklkPzogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgZm9ybSBjb250cm9sIGxhYmVsXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGxhYmVsOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogVUktb3JpZW50ZWQgZm9ybSBtb2RlbCB0aGF0IHJldGFpbnMgdGhlIHN0YXRlcyBhbmQgdmFsdWVzIG9mIHRoZSBIVE1MIGNvbnRyb2xzIG9uIHNjcmVlbi5cclxuICAgKiBDYW4gYmUgYSB7QGxpbmsgRm9ybUNvbnRyb2x9IG9yIGEge0BsaW5rIEZvcm1Hcm91cH1cclxuICAgKlxyXG4gICAqIEB0eXBlIHtGb3JtR3JvdXB9XHJcbiAgICogQG1lbWJlcm9mIEZvcm1Db250cm9sQmFzZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtR3JvdXA/OiBVbnR5cGVkRm9ybUdyb3VwO1xyXG5cclxuICAvKipcclxuICAgICAqIFRoZSBwb3NpdGlvbiBvZiB0aGUgZm9ybSBjb250cm9sIGxhYmVsICh0b3B8Ym90dG9tfGxlZnQpXHJcbiAgICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgbGFiZWxQb3NpdGlvbj86IENvbnRyb2xMYWJlbFBvc2l0aW9uID0gXCJ0b3BcIjtcclxuXHJcblxyXG4gIC8qKkFuIG9wdGlvbmFsIHN0cmluZyB0byBzaG93IGlmIGFueSBvZiB0aGUgdW5kZXJseWluZyBjb250cm9scyBoYXMgYW4gZXJyb3IuIElmIGZhbHN5LCBvbmUgb2YgdGhlXHJcbiAgICogZXJyb3JzIGZyb20gdGhlIHVuZGVybHlpbmcgY29udHJvbHMgd2lsbCBiZSB1c2VkLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBvdmVycmlkZVZhbGlkYXRpb25FcnJvcj86IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIC8qKkFuIG9wdGlvbmFsIGZsYWcgdG8gaGlkZSB0aGUgdmFsaWRhdGlvbiBtZXNzYWdlcy5cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgaGlkZVZhbGlkYXRpb25NZXNzYWdlPzpib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbmRpdGlvbmFsbHkgc2hvdyBhIGhlbHAgcG9wb3ZlciBuZXh0IHRvIHRoZSBjb250cm9scyBsYWJlbC5cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgaGVscFBvcG92ZXI/OiBzdHJpbmc7XHJcblxyXG4gICAvKipcclxuICAgKiBXaGVuIGEgaGVscCBwb3BvdmVyIGlzIHByZXNlbnQsIGFsbG93cyB0aGUgcG9wb3ZlciB0byBiZSBwb3NpdGlvbmVkIGluIGRpZmZlcmVudCBsb2NhdGlvbnMuXHJcbiAgICovXHJcbiAgIEBJbnB1dCgpIHB1YmxpYyBoZWxwUG9wb3ZlclBvc2l0aW9uPzogUG9wb3ZlckNvbnRlbnRQb3NpdGlvbiA9ICd0b3AtbGVmdCc7XHJcbiAgIFxyXG4gIC8qKlxyXG4gICAqIEFsbCBjdXJyZW50IHZhbGlkYXRpb24gZXJyb3JzXHJcbiAgICpcclxuICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAqIEBtZW1iZXJvZiBGb3JtQ29udHJvbEJhc2VcclxuICAgKi9cclxuICBwdWJsaWMgdmFsaWRhdGlvbkVycm9yczogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgcHVibGljIGFsbENvbnRyb2xzVG91Y2hlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIGNvbXBvbmVudERlc3Ryb3llZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIHZhbGlkYXRpb25NZXNzYWdlU2VydmljZTogVmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgcHVibGljIGFzeW5jIG5nT25Jbml0KCkge1xyXG4gICAgLy8gc3Vic2NyaWJlIHRvIHN0YXR1c0NoYW5nZXMgT2JzZXJ2YWJsZSB0byB0YWtlIGFueSBlcnJvcnMgYW5kIHRyYW5zbGF0ZSB0aGVtXHJcbiAgICBpZiAodGhpcy5mb3JtR3JvdXApIHtcclxuICAgICAgdGhpcy5mb3JtR3JvdXAuc3RhdHVzQ2hhbmdlc1xyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVZhbGlkYXRpb25NZXNzYWdlcyh0aGlzLmdldEVycm9ycyh0aGlzLmZvcm1Hcm91cCEpKVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgLy8gKHJlKXNldCB2YWxpZGF0aW9uIG1lc3NhZ2VzXHJcbiAgICAgIHRoaXMudHJhbnNsYXRlVmFsaWRhdGlvbk1lc3NhZ2VzKHRoaXMuZ2V0RXJyb3JzKHRoaXMuZm9ybUdyb3VwKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaWQpIHtcclxuICAgICAgdGhpcy5hdHRySWQgPSB0aGlzLmlkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQW5ndWxhciBvbkRlc3Ryb3kgbGlmZWN5bGUgaG9vay5cclxuICAgKiBVbnN1YnNjcmliZSBmcm9tIGFueSBvYnNlcnZhYmxlc1xyXG4gICAqXHJcbiAgICogQHNlZSBodHRwczovL2FuZ3VsYXIuaW8vZ3VpZGUvbGlmZWN5Y2xlLWhvb2tzXHJcbiAgICogQG1lbWJlcm9mIEZvcm1Db250cm9sQmFzZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29tcG9uZW50RGVzdHJveWVkLm5leHQoKTtcclxuICAgIHRoaXMuY29tcG9uZW50RGVzdHJveWVkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEVycm9ycyhmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXApOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBmb3JtR3JvdXAubWFya0FzVW50b3VjaGVkKCk7XHJcblxyXG4gICAgbGV0IGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xyXG4gICAgbGV0IGFsbFRvdWNoZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgbGV0IGNvbnRyb2xGb3VuZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGZvckVhY2hGb3JtQ29udHJvbChmb3JtR3JvdXAsIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcclxuICAgICAgZXJyb3JzID0gdGhpcy5hc3NpZ25FcnJvcnMoY29udHJvbCwgZXJyb3JzKTtcclxuICAgICAgaWYgKGNvbnRyb2wudW50b3VjaGVkKSB7XHJcbiAgICAgICAgYWxsVG91Y2hlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnRyb2xGb3VuZCA9IHRydWU7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoZm9ybUdyb3VwLmVycm9ycykge1xyXG4gICAgICBlcnJvcnMgPSBPYmplY3QuYXNzaWduKGVycm9ycyB8fCB7fSwgZm9ybUdyb3VwLmVycm9ycyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGFsbFRvdWNoZWQgJiYgY29udHJvbEZvdW5kKSB7XHJcbiAgICAgIGZvcm1Hcm91cC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGVycm9ycztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXNzaWduRXJyb3JzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIGlmIChjb250cm9sLmVycm9ycykge1xyXG4gICAgICBlcnJvcnMgPSBPYmplY3QuYXNzaWduKGVycm9ycyB8fCB7fSwgY29udHJvbC5lcnJvcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlcnJvcnNcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZ1bmN0aW9uIHRoYXQgc3Vic2NyaWJlcyB0byB0aGUgZm9ybUdyb3VwJ3MgdmFsdWVDaGFuZ2VzIE9ic2VydmFibGVcclxuICAgKiB0byB0YWtlIGFueSBlcnJvcyBhbmQgdHJhbnNsYXRlIHRoZW1cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7Kn0gW2RhdGFdXHJcbiAgICogQHJldHVybnNcclxuICAgKiBAbWVtYmVyb2YgRm9ybUNvbnRyb2xCYXNlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhc3luYyB0cmFuc2xhdGVWYWxpZGF0aW9uTWVzc2FnZXMoZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCkge1xyXG4gICAgaWYgKGVycm9ycykge1xyXG4gICAgICBpZih0aGlzLm92ZXJyaWRlVmFsaWRhdGlvbkVycm9yKXtcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLm92ZXJyaWRlVmFsaWRhdGlvbkVycm9yKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBsZXQgbWVzc2FnZXMgPSBhd2FpdCB0aGlzLnZhbGlkYXRpb25NZXNzYWdlU2VydmljZS5nZXRFcnJvck1lc3NhZ2VzKGVycm9ycyk7XHJcbiAgICAgICAgaWYgKG1lc3NhZ2VzKSB7XHJcbiAgICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMgPSBtZXNzYWdlcy5qb2luKCc7ICcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb250cm9sIGNvbnRyb2wtbGFiZWwte3tsYWJlbFBvc2l0aW9ufX1cIlxyXG4gICAgIFtjbGFzcy5lYy11bnRvdWNoZWRdPVwiZm9ybUdyb3VwPy51bnRvdWNoZWRcIj5cclxuXHJcbiAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIj5cclxuICAgIDxzcGFuIGlkPVwie3tpZH19X2xhYmVsXCI+e3tsYWJlbCB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgPHNwYW4gKm5nSWY9XCIhaGlkZVZhbGlkYXRpb25NZXNzYWdlICYmIHZhbGlkYXRpb25FcnJvcnMgJiYgZm9ybUdyb3VwPy50b3VjaGVkICYmIGZvcm1Hcm91cD8uaW52YWxpZFwiPiZuYnNwO3t7dmFsaWRhdGlvbkVycm9ycyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgPGVjLWhlbHAtcG9wb3ZlciBpZD1cInt7aWR9fV9oZWxwUG9wb3ZlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVscFBvcG92ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtaW5saW5lLWJsb2NrIG15LW4zIG14LW4xXCJcclxuICAgICAgICAgICAgICAgICAgICAgdGV4dD1cInt7aGVscFBvcG92ZXIgfCB0cmFuc2xhdGV9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRQb3NpdGlvbj1cInt7aGVscFBvcG92ZXJQb3NpdGlvbn19XCI+XHJcbiAgICA8L2VjLWhlbHAtcG9wb3Zlcj5cclxuICA8L2xhYmVsPlxyXG5cclxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbjwvZGl2PiJdfQ==