@mediusinc/mng-commons 0.2.8 → 0.2.9

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 (49) hide show
  1. package/README.md +46 -0
  2. package/assets/i18n/en.json +202 -151
  3. package/assets/i18n/sl.json +202 -151
  4. package/esm2020/lib/api/utils/object-serializer.util.mjs +12 -7
  5. package/esm2020/lib/components/action/dialog/action-dialog.component.mjs +2 -2
  6. package/esm2020/lib/components/form/editor/form-editor.component.mjs +1 -1
  7. package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +3 -3
  8. package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +3 -3
  9. package/esm2020/lib/components/tableview/services/tableview.component.service.mjs +1 -1
  10. package/esm2020/lib/components/tableview/table/table.component.mjs +5 -4
  11. package/esm2020/lib/components/tableview/tableview.component.mjs +1 -1
  12. package/esm2020/lib/data-providers/base.data-provider.mjs +1 -8
  13. package/esm2020/lib/descriptors/editor.descriptor.mjs +87 -66
  14. package/esm2020/lib/descriptors/table.descriptor.mjs +51 -42
  15. package/esm2020/lib/descriptors/tableview.descriptor.mjs +6 -6
  16. package/esm2020/lib/mng-commons.module.mjs +5 -2
  17. package/esm2020/lib/models/enum.model.mjs +2 -0
  18. package/esm2020/lib/models/index.mjs +2 -1
  19. package/esm2020/lib/pipes/i18n-property.pipe.mjs +18 -0
  20. package/esm2020/lib/pipes/index.mjs +2 -1
  21. package/esm2020/lib/types/type.decorator.mjs +7 -1
  22. package/esm2020/lib/types/type.model.mjs +1 -1
  23. package/esm2020/lib/utils/editor-formly.util.mjs +4 -1
  24. package/esm2020/lib/utils/enum.util.mjs +61 -0
  25. package/esm2020/lib/utils/i18n.util.mjs +38 -26
  26. package/esm2020/lib/utils/index.mjs +2 -1
  27. package/esm2020/lib/utils/type.util.mjs +39 -2
  28. package/fesm2015/mediusinc-mng-commons.mjs +321 -154
  29. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
  30. package/fesm2020/mediusinc-mng-commons.mjs +320 -154
  31. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
  32. package/lib/api/utils/object-serializer.util.d.ts +1 -0
  33. package/lib/data-providers/base.data-provider.d.ts +0 -3
  34. package/lib/descriptors/editor.descriptor.d.ts +32 -27
  35. package/lib/descriptors/table.descriptor.d.ts +15 -12
  36. package/lib/descriptors/tableview.descriptor.d.ts +8 -8
  37. package/lib/mng-commons.module.d.ts +68 -67
  38. package/lib/models/enum.model.d.ts +5 -0
  39. package/lib/models/index.d.ts +1 -0
  40. package/lib/pipes/i18n-property.pipe.d.ts +8 -0
  41. package/lib/pipes/index.d.ts +1 -0
  42. package/lib/types/type.decorator.d.ts +2 -0
  43. package/lib/types/type.model.d.ts +2 -2
  44. package/lib/utils/enum.util.d.ts +39 -0
  45. package/lib/utils/i18n.util.d.ts +6 -2
  46. package/lib/utils/index.d.ts +1 -0
  47. package/lib/utils/type.util.d.ts +22 -1
  48. package/package.json +2 -2
  49. package/scss/mng-overrides/_layout_forms.scss +5 -0
@@ -135,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
135
135
  type: ViewChild,
136
136
  args: ['submitButton']
137
137
  }] } });
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZWRpdG9yL2Zvcm0tZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2VkaXRvci9mb3JtLWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWEsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BLLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUt6QyxPQUFPLEVBQUMsVUFBVSxFQUFFLEVBQUUsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUdsRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sV0FBVyxDQUFDOzs7Ozs7OztBQU9uRCxNQUFNLE9BQU8sc0JBQXNCO0lBbUMvQixZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQWhDdEMsa0JBQWEsR0FBa0MsS0FBSyxDQUFDO1FBS3JFLHVCQUF1QjtRQUNQLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUM5QixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUV0QyxnQkFBZ0I7UUFDYSwyQkFBc0IsR0FBRyxJQUFJLFlBQVksRUFBK0IsQ0FBQztRQU0vRixTQUFJLEdBQWMsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEMsZ0JBQVcsR0FBc0I7WUFDcEMsU0FBUyxFQUFFO2dCQUNQLEdBQUcsRUFBRSxLQUFLO2dCQUNWLElBQUksRUFBRSxLQUFLO2dCQUNYLFFBQVEsRUFBRSxLQUFLO2FBQ2xCO1NBQ0osQ0FBQztRQUdLLGNBQVMsR0FBUSxFQUFFLENBQUM7UUFDcEIsaUJBQVksR0FBYyxFQUFFLENBQUM7UUFHNUIsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO0lBRWMsQ0FBQztJQUVuRCxRQUFRO1FBQ1gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxZQUFZLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUU3Ryx5QkFBeUI7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckYsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sTUFBTTtRQUNULElBQUksQ0FBQyxzQkFBc0IsRUFBRSxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVELDZEQUE2RDtJQUN0RCxRQUFRLENBQUMsS0FBWTtRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3BELElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBRXZCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMzQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSx3QkFBd0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1NBQ2xGO2FBQU07WUFDSCw2QkFBNkI7WUFDN0IsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUU7Z0JBQ3JFLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUU7b0JBQzdDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ3pELElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsU0FBUyxDQUFDO2lCQUNoSDthQUNKO1lBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSx3QkFBd0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUMzRCxLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGlDQUFpQyxFQUFFLG1DQUFtQyxDQUFDLENBQUMsQ0FBQztZQUM3SixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzNDO0lBQ0wsQ0FBQztJQUVNLFlBQVk7UUFDZixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBTyxDQUFDO1FBQy9DLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNuQyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO2dCQUN2QixLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQzthQUM1RDtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFNBQThCLEVBQUU7UUFDdEQsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUU7WUFDeEIsSUFBSSxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ2pDLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQzNEO2lCQUFNLElBQUksT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFdBQVcsRUFBRTtnQkFDMUMsWUFBWSxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUM7YUFDNUM7WUFDRCxJQUFJLFlBQVksRUFBRTtnQkFDZCxPQUFPLElBQUksQ0FBQzthQUNmO1NBQ0o7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRU8sZUFBZSxDQUFDLElBQVE7UUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsZ0ZBQWdGO1FBQ2hGLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV6RCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbkMsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRTtnQkFDdEIsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2xEO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFO1lBQ25ELDZCQUE2QjtZQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDL0M7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUMvQixDQUFDO0lBRU8sZUFBZTtRQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztJQUNqSSxDQUFDOzttSEF6SFEsc0JBQXNCO3VHQUF0QixzQkFBc0IsMFNBZ0JkLG9CQUFvQixxSkNsQ3pDLG1jQUtBOzJGRGFhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDSSxpQkFBaUIsbUJBRVYsdUJBQXVCLENBQUMsTUFBTTt1R0FJL0IsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUdVLElBQUk7c0JBQW5CLEtBQUs7Z0JBR1UscUJBQXFCO3NCQUFwQyxLQUFLO2dCQUNVLGNBQWM7c0JBQTdCLEtBQUs7Z0JBR3VCLHNCQUFzQjtzQkFBbEQsTUFBTTt1QkFBQyxZQUFZO2dCQUcwQixTQUFTO3NCQUF0RCxlQUFlO3VCQUFDLG9CQUFvQjtnQkFDSCxzQkFBc0I7c0JBQXZELFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQge0Zvcm1seUZpZWxkQ29uZmlnLCBGb3JtbHlGb3JtT3B0aW9uc30gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtNZXNzYWdlfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQge09ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0VkaXRvckRlc2NyaXB0b3J9IGZyb20gJy4uLy4uLy4uL2Rlc2NyaXB0b3JzJztcbmltcG9ydCB7TW5nVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtFZGl0b3JGb3JtbHlVdGlsLCBUb2FzdFV0aWx9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7TW5nRm9ybUVkaXRvclN1Ym1pdEV2ZW50fSBmcm9tICcuLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21uZy1mb3JtLWVkaXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNbmdGb3JtRWRpdG9yQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIC8vIG1ldGFkYXRhIGFuZCBlZGl0b3IgbW9kZSBpbnB1dFxuICAgIEBJbnB1dCgpIHB1YmxpYyBkZXNjcmlwdG9yITogRWRpdG9yRGVzY3JpcHRvcjxUPjtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VibWl0TG9hZGluZzogT2JzZXJ2YWJsZTxib29sZWFuPiB8IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIGRhdGEgc291cmNlIGlucHV0cztcbiAgICBASW5wdXQoKSBwdWJsaWMgaXRlbT86IFQ7XG5cbiAgICAvLyBleHRyYSBmZWF0dXJlcyBpbnB1dFxuICAgIEBJbnB1dCgpIHB1YmxpYyBpc1N1Ym1pdEJ1dHRvblZpc2libGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNGb3JtRGlzYWJsZWQgPSBudWxsO1xuXG4gICAgLy8gZXZlbnQgb3V0cHV0c1xuICAgIEBPdXRwdXQoJ2Zvcm1TdWJtaXQnKSBwdWJsaWMgZm9ybVN1Ym1pdEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8TW5nRm9ybUVkaXRvclN1Ym1pdEV2ZW50PFQ+PigpO1xuXG4gICAgLy8gY29udGVudCBhbmQgdmlldyBxdWVyaWVzXG4gICAgQENvbnRlbnRDaGlsZHJlbihNbmdUZW1wbGF0ZURpcmVjdGl2ZSkgcHVibGljIHRlbXBsYXRlcyE6IFF1ZXJ5TGlzdDxNbmdUZW1wbGF0ZURpcmVjdGl2ZT47XG4gICAgQFZpZXdDaGlsZCgnc3VibWl0QnV0dG9uJykgcHVibGljIHN1Ym1pdEJ1dHRvbkVsZW1lbnRSZWY/OiBFbGVtZW50UmVmO1xuXG4gICAgcHVibGljIGZvcm06IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAgIHB1YmxpYyBmb3JtT3B0aW9uczogRm9ybWx5Rm9ybU9wdGlvbnMgPSB7XG4gICAgICAgIGZvcm1TdGF0ZToge1xuICAgICAgICAgICAgYWRkOiBmYWxzZSxcbiAgICAgICAgICAgIGVkaXQ6IGZhbHNlLFxuICAgICAgICAgICAgZGlzYWJsZWQ6IGZhbHNlXG4gICAgICAgIH1cbiAgICB9O1xuICAgIHB1YmxpYyBmb3JtRmllbGRzITogRm9ybWx5RmllbGRDb25maWdbXTtcbiAgICBwdWJsaWMgZm9ybU9yaWdJdGVtPzogVDtcbiAgICBwdWJsaWMgZm9ybU1vZGVsOiBhbnkgPSB7fTtcbiAgICBwdWJsaWMgZm9ybU1lc3NhZ2VzOiBNZXNzYWdlW10gPSBbXTtcbiAgICBwdWJsaWMgc3VibWl0TG9hZGluZyQhOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1Nb2RlbCh0aGlzLml0ZW0pO1xuICAgICAgICB0aGlzLnN1Ym1pdExvYWRpbmckID0gdGhpcy5zdWJtaXRMb2FkaW5nIGluc3RhbmNlb2YgT2JzZXJ2YWJsZSA/IHRoaXMuc3VibWl0TG9hZGluZyA6IG9mKHRoaXMuc3VibWl0TG9hZGluZyk7XG5cbiAgICAgICAgLy8gaW5pdCBmaWVsZHMgZm9yIGZvcm1seVxuICAgICAgICB0aGlzLmZvcm1GaWVsZHMgPSBFZGl0b3JGb3JtbHlVdGlsLmNyZWF0ZUZvcm1seUNvbmZpZ0Zyb21EZXNjcmlwdG9yKHRoaXMuZGVzY3JpcHRvcik7XG4gICAgICAgIHRoaXMudXBkYXRlRm9ybVN0YXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN1Ym1pdCgpIHtcbiAgICAgICAgdGhpcy5zdWJtaXRCdXR0b25FbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIHB1YmxpYyBvblN1Ym1pdChldmVudDogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5mb3JtT3B0aW9ucy5mb3JtU3RhdGUuc3VibWl0dGVkT24gPSBEYXRlLm5vdygpO1xuICAgICAgICB0aGlzLmZvcm1NZXNzYWdlcyA9IFtdO1xuXG4gICAgICAgIGNvbnN0IGZvcm1TdWJtaXRJdGVtID0gdGhpcy5nZXRGb3JtVmFsdWUoKTtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5mb3JtU3VibWl0RXZlbnRFbWl0dGVyLm5leHQobmV3IE1uZ0Zvcm1FZGl0b3JTdWJtaXRFdmVudChmb3JtU3VibWl0SXRlbSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gZmluZCBhbmQgbWFyayBpbnZhbGlkIHRhYnNcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1GaWVsZHNbMF0udHlwZSA9PT0gJ3RhYnMnICYmIHRoaXMuZm9ybUZpZWxkc1swXS5maWVsZEdyb3VwKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB0YWIgb2YgdGhpcy5mb3JtRmllbGRzWzBdLmZpZWxkR3JvdXApIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNJbnZhbGlkID0gdGhpcy5pc0FueUZpZWxkSW52YWxpZCh0YWIuZmllbGRHcm91cCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybU9wdGlvbnMuZm9ybVN0YXRlWyd0YWJfJyArICh0YWIuaWQgPyB0YWIuaWQgOiB0YWIudGVtcGxhdGVPcHRpb25zPy5sYWJlbCkgKyAnX2ludmFsaWQnXSA9IGlzSW52YWxpZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBldmVudCA9IG5ldyBNbmdGb3JtRWRpdG9yU3VibWl0RXZlbnQoZm9ybVN1Ym1pdEl0ZW0pO1xuICAgICAgICAgICAgZXZlbnQuc3VjY2VzcyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5mb3JtTWVzc2FnZXMucHVzaChUb2FzdFV0aWwuZ2V0Rm9ybUVkaXRvcldhcm5pbmdNZXNzYWdlKHRoaXMudHJhbnNsYXRlU2VydmljZSwgJ21uZ0VkaXRvci5pbnZhbGlkRm9ybVRvYXN0VGl0bGUnLCAnbW5nRWRpdG9yLmludmFsaWRGb3JtVG9hc3RNZXNzYWdlJykpO1xuICAgICAgICAgICAgdGhpcy5mb3JtU3VibWl0RXZlbnRFbWl0dGVyLm5leHQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZvcm1WYWx1ZSgpOiBUIHtcbiAgICAgICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5mb3JtLmdldFJhd1ZhbHVlKCkgYXMgVDtcbiAgICAgICAgdGhpcy5kZXNjcmlwdG9yLmZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICAgIGlmIChmaWVsZCAmJiBmaWVsZC5zZXR0ZXIpIHtcbiAgICAgICAgICAgICAgICBmaWVsZC5zZXR0ZXIoZm9ybVZhbHVlLCB0aGlzLmZvcm0udmFsdWVbZmllbGQucHJvcGVydHldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBmb3JtVmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0FueUZpZWxkSW52YWxpZChmaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXSk6IGJvb2xlYW4ge1xuICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkcykge1xuICAgICAgICAgICAgbGV0IGZpZWxkSW52YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGQuZmllbGRHcm91cCkpIHtcbiAgICAgICAgICAgICAgICBmaWVsZEludmFsaWQgPSB0aGlzLmlzQW55RmllbGRJbnZhbGlkKGZpZWxkLmZpZWxkR3JvdXApO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmllbGQudHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBmaWVsZEludmFsaWQgPSAhZmllbGQuZm9ybUNvbnRyb2w/LnZhbGlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGZpZWxkSW52YWxpZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUZvcm1Nb2RlbChpdGVtPzogVCkge1xuICAgICAgICB0aGlzLmZvcm1PcmlnSXRlbSA9IGl0ZW07XG4gICAgICAgIC8vIFRPRE86IHRvIGNoZWNrIGlmIHRoaXMgaXMgb2ssIGNvdWxkIGJlIHByb2JsZW1zIHdpdGggZGF0ZXMsIGlmIHNvLCB0cnkgbG9kYXNoXG4gICAgICAgIGNvbnN0IGZvcm1Nb2RlbCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoaXRlbSA/PyB7fSkpO1xuXG4gICAgICAgIHRoaXMuZGVzY3JpcHRvci5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICBpZiAoZmllbGQuZ2V0dGVyICYmIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICBmb3JtTW9kZWxbZmllbGQucHJvcGVydHldID0gZmllbGQuZ2V0dGVyKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZvcm1PcHRpb25zLnJlc2V0TW9kZWwgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIC8vIGNvdWxkIG5vdCBiZSBpbml0aWF0ZWQgeWV0XG4gICAgICAgICAgICB0aGlzLmZvcm1PcHRpb25zLnJlc2V0TW9kZWwodGhpcy5mb3JtTW9kZWwpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9ybU1vZGVsID0gZm9ybU1vZGVsO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRm9ybVN0YXRlKCkge1xuICAgICAgICB0aGlzLmZvcm1PcHRpb25zLmZvcm1TdGF0ZS5kaXNhYmxlZCA9IHRoaXMuaXNGb3JtRGlzYWJsZWQgIT09IG51bGwgPyB0aGlzLmlzRm9ybURpc2FibGVkID09PSB0cnVlIDogdGhpcy5kZXNjcmlwdG9yLmRpc2FibGVkO1xuICAgIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCgkZXZlbnQpXCI+XG4gICAgPGZvcm1seS1mb3JtIFtmb3JtXT1cImZvcm1cIiBbZmllbGRzXT1cImZvcm1GaWVsZHNcIiBbb3B0aW9uc109XCJmb3JtT3B0aW9uc1wiIFttb2RlbF09XCJmb3JtTW9kZWxcIj48L2Zvcm1seS1mb3JtPlxuICAgIDxidXR0b24gI3N1Ym1pdEJ1dHRvbiBwQnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBbY2xhc3MuaGlkZGVuXT1cIiFpc1N1Ym1pdEJ1dHRvblZpc2libGVcIiBbZGlzYWJsZWRdPVwiZm9ybS5kaXNhYmxlZFwiIFtsb2FkaW5nXT1cIihzdWJtaXRMb2FkaW5nJCB8IGFzeW5jKSA/PyBmYWxzZVwiPjwvYnV0dG9uPlxuPC9mb3JtPlxuPHAtbWVzc2FnZXMgW3ZhbHVlXT1cImZvcm1NZXNzYWdlc1wiIFtlbmFibGVTZXJ2aWNlXT1cImZhbHNlXCI+PC9wLW1lc3NhZ2VzPlxuIl19
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZWRpdG9yL2Zvcm0tZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2VkaXRvci9mb3JtLWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWEsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BLLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUt6QyxPQUFPLEVBQUMsVUFBVSxFQUFnQixFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHbEQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFDLGdCQUFnQixFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7QUFPbkQsTUFBTSxPQUFPLHNCQUFzQjtJQW1DL0IsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFoQ3RDLGtCQUFhLEdBQWtDLEtBQUssQ0FBQztRQUtyRSx1QkFBdUI7UUFDUCwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDOUIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFFdEMsZ0JBQWdCO1FBQ2EsMkJBQXNCLEdBQUcsSUFBSSxZQUFZLEVBQStCLENBQUM7UUFNL0YsU0FBSSxHQUFjLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLGdCQUFXLEdBQXNCO1lBQ3BDLFNBQVMsRUFB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LFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNsRDtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBRTtZQUNuRCw2QkFBNkI7WUFDN0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDL0IsQ0FBQztJQUVPLGVBQWU7UUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7SUFDakksQ0FBQzs7bUhBekhRLHNCQUFzQjt1R0FBdEIsc0JBQXNCLDBTQWdCZCxvQkFBb0IscUpDbEN6QyxtY0FLQTsyRkRhYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0ksaUJBQWlCLG1CQUVWLHVCQUF1QixDQUFDLE1BQU07dUdBSS9CLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFHVSxJQUFJO3NCQUFuQixLQUFLO2dCQUdVLHFCQUFxQjtzQkFBcEMsS0FBSztnQkFDVSxjQUFjO3NCQUE3QixLQUFLO2dCQUd1QixzQkFBc0I7c0JBQWxELE1BQU07dUJBQUMsWUFBWTtnQkFHMEIsU0FBUztzQkFBdEQsZUFBZTt1QkFBQyxvQkFBb0I7Z0JBQ0gsc0JBQXNCO3NCQUF2RCxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5Rm9ybU9wdGlvbnN9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7TWVzc2FnZX0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIG9mfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtFZGl0b3JEZXNjcmlwdG9yfSBmcm9tICcuLi8uLi8uLi9kZXNjcmlwdG9ycyc7XG5pbXBvcnQge01uZ1RlbXBsYXRlRGlyZWN0aXZlfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7RWRpdG9yRm9ybWx5VXRpbCwgVG9hc3RVdGlsfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQge01uZ0Zvcm1FZGl0b3JTdWJtaXRFdmVudH0gZnJvbSAnLi4vbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtbmctZm9ybS1lZGl0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTW5nRm9ybUVkaXRvckNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICAvLyBtZXRhZGF0YSBhbmQgZWRpdG9yIG1vZGUgaW5wdXRcbiAgICBASW5wdXQoKSBwdWJsaWMgZGVzY3JpcHRvciE6IEVkaXRvckRlc2NyaXB0b3I8VD47XG4gICAgQElucHV0KCkgcHVibGljIHN1Ym1pdExvYWRpbmc6IE9ic2VydmFibGU8Ym9vbGVhbj4gfCBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyBkYXRhIHNvdXJjZSBpbnB1dHM7XG4gICAgQElucHV0KCkgcHVibGljIGl0ZW0/OiBUO1xuXG4gICAgLy8gZXh0cmEgZmVhdHVyZXMgaW5wdXRcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNTdWJtaXRCdXR0b25WaXNpYmxlID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIGlzRm9ybURpc2FibGVkID0gbnVsbDtcblxuICAgIC8vIGV2ZW50IG91dHB1dHNcbiAgICBAT3V0cHV0KCdmb3JtU3VibWl0JykgcHVibGljIGZvcm1TdWJtaXRFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPE1uZ0Zvcm1FZGl0b3JTdWJtaXRFdmVudDxUPj4oKTtcblxuICAgIC8vIGNvbnRlbnQgYW5kIHZpZXcgcXVlcmllc1xuICAgIEBDb250ZW50Q2hpbGRyZW4oTW5nVGVtcGxhdGVEaXJlY3RpdmUpIHB1YmxpYyB0ZW1wbGF0ZXMhOiBRdWVyeUxpc3Q8TW5nVGVtcGxhdGVEaXJlY3RpdmU+O1xuICAgIEBWaWV3Q2hpbGQoJ3N1Ym1pdEJ1dHRvbicpIHB1YmxpYyBzdWJtaXRCdXR0b25FbGVtZW50UmVmPzogRWxlbWVudFJlZjtcblxuICAgIHB1YmxpYyBmb3JtOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICBwdWJsaWMgZm9ybU9wdGlvbnM6IEZvcm1seUZvcm1PcHRpb25zID0ge1xuICAgICAgICBmb3JtU3RhdGU6IHtcbiAgICAgICAgICAgIGFkZDogZmFsc2UsXG4gICAgICAgICAgICBlZGl0OiBmYWxzZSxcbiAgICAgICAgICAgIGRpc2FibGVkOiBmYWxzZVxuICAgICAgICB9XG4gICAgfTtcbiAgICBwdWJsaWMgZm9ybUZpZWxkcyE6IEZvcm1seUZpZWxkQ29uZmlnW107XG4gICAgcHVibGljIGZvcm1PcmlnSXRlbT86IFQ7XG4gICAgcHVibGljIGZvcm1Nb2RlbDogYW55ID0ge307XG4gICAgcHVibGljIGZvcm1NZXNzYWdlczogTWVzc2FnZVtdID0gW107XG4gICAgcHVibGljIHN1Ym1pdExvYWRpbmckITogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkge31cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb3JtTW9kZWwodGhpcy5pdGVtKTtcbiAgICAgICAgdGhpcy5zdWJtaXRMb2FkaW5nJCA9IHRoaXMuc3VibWl0TG9hZGluZyBpbnN0YW5jZW9mIE9ic2VydmFibGUgPyB0aGlzLnN1Ym1pdExvYWRpbmcgOiBvZih0aGlzLnN1Ym1pdExvYWRpbmcpO1xuXG4gICAgICAgIC8vIGluaXQgZmllbGRzIGZvciBmb3JtbHlcbiAgICAgICAgdGhpcy5mb3JtRmllbGRzID0gRWRpdG9yRm9ybWx5VXRpbC5jcmVhdGVGb3JtbHlDb25maWdGcm9tRGVzY3JpcHRvcih0aGlzLmRlc2NyaXB0b3IpO1xuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1TdGF0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdWJtaXQoKSB7XG4gICAgICAgIHRoaXMuc3VibWl0QnV0dG9uRWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBwdWJsaWMgb25TdWJtaXQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMuZm9ybU9wdGlvbnMuZm9ybVN0YXRlLnN1Ym1pdHRlZE9uID0gRGF0ZS5ub3coKTtcbiAgICAgICAgdGhpcy5mb3JtTWVzc2FnZXMgPSBbXTtcblxuICAgICAgICBjb25zdCBmb3JtU3VibWl0SXRlbSA9IHRoaXMuZ2V0Rm9ybVZhbHVlKCk7XG4gICAgICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybVN1Ym1pdEV2ZW50RW1pdHRlci5uZXh0KG5ldyBNbmdGb3JtRWRpdG9yU3VibWl0RXZlbnQoZm9ybVN1Ym1pdEl0ZW0pKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGZpbmQgYW5kIG1hcmsgaW52YWxpZCB0YWJzXG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtRmllbGRzWzBdLnR5cGUgPT09ICd0YWJzJyAmJiB0aGlzLmZvcm1GaWVsZHNbMF0uZmllbGRHcm91cCkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgdGFiIG9mIHRoaXMuZm9ybUZpZWxkc1swXS5maWVsZEdyb3VwKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzSW52YWxpZCA9IHRoaXMuaXNBbnlGaWVsZEludmFsaWQodGFiLmZpZWxkR3JvdXApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1PcHRpb25zLmZvcm1TdGF0ZVsndGFiXycgKyAodGFiLmlkID8gdGFiLmlkIDogdGFiLnRlbXBsYXRlT3B0aW9ucz8ubGFiZWwpICsgJ19pbnZhbGlkJ10gPSBpc0ludmFsaWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgTW5nRm9ybUVkaXRvclN1Ym1pdEV2ZW50KGZvcm1TdWJtaXRJdGVtKTtcbiAgICAgICAgICAgIGV2ZW50LnN1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZm9ybU1lc3NhZ2VzLnB1c2goVG9hc3RVdGlsLmdldEZvcm1FZGl0b3JXYXJuaW5nTWVzc2FnZSh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UsICdtbmdFZGl0b3IuaW52YWxpZEZvcm1Ub2FzdFRpdGxlJywgJ21uZ0VkaXRvci5pbnZhbGlkRm9ybVRvYXN0TWVzc2FnZScpKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybVN1Ym1pdEV2ZW50RW1pdHRlci5uZXh0KGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGb3JtVmFsdWUoKTogVCB7XG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpIGFzIFQ7XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvci5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICBpZiAoZmllbGQgJiYgZmllbGQuc2V0dGVyKSB7XG4gICAgICAgICAgICAgICAgZmllbGQuc2V0dGVyKGZvcm1WYWx1ZSwgdGhpcy5mb3JtLnZhbHVlW2ZpZWxkLnByb3BlcnR5XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZm9ybVZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNBbnlGaWVsZEludmFsaWQoZmllbGRzOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW10pOiBib29sZWFuIHtcbiAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZHMpIHtcbiAgICAgICAgICAgIGxldCBmaWVsZEludmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkLmZpZWxkR3JvdXApKSB7XG4gICAgICAgICAgICAgICAgZmllbGRJbnZhbGlkID0gdGhpcy5pc0FueUZpZWxkSW52YWxpZChmaWVsZC5maWVsZEdyb3VwKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGZpZWxkLnR5cGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgZmllbGRJbnZhbGlkID0gIWZpZWxkLmZvcm1Db250cm9sPy52YWxpZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChmaWVsZEludmFsaWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVGb3JtTW9kZWwoaXRlbT86IFQpIHtcbiAgICAgICAgdGhpcy5mb3JtT3JpZ0l0ZW0gPSBpdGVtO1xuICAgICAgICAvLyBUT0RPOiB0byBjaGVjayBpZiB0aGlzIGlzIG9rLCBjb3VsZCBiZSBwcm9ibGVtcyB3aXRoIGRhdGVzLCBpZiBzbywgdHJ5IGxvZGFzaFxuICAgICAgICBjb25zdCBmb3JtTW9kZWwgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGl0ZW0gPz8ge30pKTtcblxuICAgICAgICB0aGlzLmRlc2NyaXB0b3IuZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgICAgaWYgKGZpZWxkLmdldHRlciAmJiBpdGVtKSB7XG4gICAgICAgICAgICAgICAgZm9ybU1vZGVsW2ZpZWxkLnByb3BlcnR5XSA9IGZpZWxkLmdldHRlcihpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5mb3JtT3B0aW9ucy5yZXNldE1vZGVsID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAvLyBjb3VsZCBub3QgYmUgaW5pdGlhdGVkIHlldFxuICAgICAgICAgICAgdGhpcy5mb3JtT3B0aW9ucy5yZXNldE1vZGVsKHRoaXMuZm9ybU1vZGVsKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZvcm1Nb2RlbCA9IGZvcm1Nb2RlbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUZvcm1TdGF0ZSgpIHtcbiAgICAgICAgdGhpcy5mb3JtT3B0aW9ucy5mb3JtU3RhdGUuZGlzYWJsZWQgPSB0aGlzLmlzRm9ybURpc2FibGVkICE9PSBudWxsID8gdGhpcy5pc0Zvcm1EaXNhYmxlZCA9PT0gdHJ1ZSA6IHRoaXMuZGVzY3JpcHRvci5kaXNhYmxlZDtcbiAgICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwib25TdWJtaXQoJGV2ZW50KVwiPlxuICAgIDxmb3JtbHktZm9ybSBbZm9ybV09XCJmb3JtXCIgW2ZpZWxkc109XCJmb3JtRmllbGRzXCIgW29wdGlvbnNdPVwiZm9ybU9wdGlvbnNcIiBbbW9kZWxdPVwiZm9ybU1vZGVsXCI+PC9mb3JtbHktZm9ybT5cbiAgICA8YnV0dG9uICNzdWJtaXRCdXR0b24gcEJ1dHRvbiB0eXBlPVwic3VibWl0XCIgW2NsYXNzLmhpZGRlbl09XCIhaXNTdWJtaXRCdXR0b25WaXNpYmxlXCIgW2Rpc2FibGVkXT1cImZvcm0uZGlzYWJsZWRcIiBbbG9hZGluZ109XCIoc3VibWl0TG9hZGluZyQgfCBhc3luYykgPz8gZmFsc2VcIj48L2J1dHRvbj5cbjwvZm9ybT5cbjxwLW1lc3NhZ2VzIFt2YWx1ZV09XCJmb3JtTWVzc2FnZXNcIiBbZW5hYmxlU2VydmljZV09XCJmYWxzZVwiPjwvcC1tZXNzYWdlcz5cbiJdfQ==
@@ -22,9 +22,9 @@ export class MngFormlyFieldInputComponent extends FieldType {
22
22
  }
23
23
  }
24
24
  MngFormlyFieldInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
25
- MngFormlyFieldInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldInputComponent, selector: "mng-formly-field-input", usesInheritance: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"to.type\">\n <p-inputNumber\n *ngSwitchCase=\"'number'\"\n [id]=\"$any(key)\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [min]=\"$any(descriptor.numberMin)\"\n [max]=\"$any(descriptor.numberMax)\"\n [step]=\"$any(descriptor.numberStep)\"\n [minFractionDigits]=\"descriptor.numberMinFractionDigits || 0\"\n [maxFractionDigits]=\"descriptor.numberMaxFractionDigits || 0\">\n </p-inputNumber>\n\n <div *ngSwitchCase=\"'switch'\" class=\"flex flex-column\">\n <label [for]=\"key\">{{ to?.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <p-inputSwitch [id]=\"$any(key)\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\"> </p-inputSwitch>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n </div>\n\n <ng-container *ngSwitchCase=\"'radio'\">\n <div *ngFor=\"let category of descriptor.radioOptions\" [id]=\"$any(key)\" class=\"p-field-radiobutton\">\n <p-radioButton [name]=\"$any(key)\" [value]=\"category\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\"></p-radioButton>\n <label [for]=\"category\" class=\"mng-radio-button-label\">{{ category }}</label>\n </div>\n </ng-container>\n\n <textarea *ngSwitchCase=\"'textarea'\" [id]=\"$any(key)\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\" [rows]=\"descriptor.rows ?? 3\" pInputTextarea> </textarea>\n\n <p-calendar\n *ngSwitchCase=\"'datepicker'\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [dateFormat]=\"$any(descriptor.datePickerFormat)\"\n [minDate]=\"$any(descriptor.datePickerMin)\"\n [maxDate]=\"$any(descriptor.datePickerMax)\"\n [showTime]=\"descriptor.datePickerShowTime\"\n [showIcon]=\"true\">\n </p-calendar>\n\n <input *ngSwitchDefault pInputText [id]=\"$any(key)\" [type]=\"to.type || 'text'\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\" />\n</ng-container>\n", components: [{ type: i1.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }, { type: i2.InputSwitch, selector: "p-inputSwitch", inputs: ["style", "styleClass", "tabindex", "inputId", "name", "disabled", "readonly", "trueValue", "falseValue", "ariaLabelledBy"], outputs: ["onChange"] }, { type: i3.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { type: i4.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i5.Calendar, selector: "p-calendar", inputs: ["style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "view", "defaultDate", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }], directives: [{ type: i6.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i6.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i8.InputTextarea, selector: "[pInputTextarea]", inputs: ["autoResize"], outputs: ["onResize"] }, { type: i6.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i9.InputText, selector: "[pInputText]" }], pipes: { "translate": i10.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
25
+ MngFormlyFieldInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldInputComponent, selector: "mng-formly-field-input", usesInheritance: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"to.type\">\n <p-inputNumber\n *ngSwitchCase=\"'number'\"\n [id]=\"$any(key)\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [min]=\"$any(descriptor.numberMin)\"\n [max]=\"$any(descriptor.numberMax)\"\n [step]=\"$any(descriptor.numberStep)\"\n [minFractionDigits]=\"descriptor.numberMinFractionDigits || 0\"\n [maxFractionDigits]=\"descriptor.numberMaxFractionDigits || 0\">\n </p-inputNumber>\n\n <div *ngSwitchCase=\"'switch'\" class=\"flex flex-column\">\n <label [for]=\"key\">{{ to?.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <p-inputSwitch [id]=\"$any(key)\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\"></p-inputSwitch>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n </div>\n\n <ng-container *ngSwitchCase=\"'radio'\">\n <div *ngFor=\"let option of descriptor.radioOptions\" [id]=\"$any(key)\" class=\"field-radiobutton\">\n <p-radioButton [name]=\"$any(key)\" [value]=\"option.value\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\"></p-radioButton>\n <label [for]=\"option.value\" class=\"mng-radio-button-label\">{{ option.title | translate }}</label>\n </div>\n </ng-container>\n\n <textarea *ngSwitchCase=\"'textarea'\" [id]=\"$any(key)\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\" [rows]=\"descriptor.rows ?? 3\" pInputTextarea> </textarea>\n\n <p-calendar\n *ngSwitchCase=\"'datepicker'\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [dateFormat]=\"$any(descriptor.datePickerFormat)\"\n [minDate]=\"$any(descriptor.datePickerMin)\"\n [maxDate]=\"$any(descriptor.datePickerMax)\"\n [showTime]=\"descriptor.datePickerShowTime\"\n [showIcon]=\"true\">\n </p-calendar>\n\n <input *ngSwitchDefault pInputText [id]=\"$any(key)\" [type]=\"to.type || 'text'\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\" />\n</ng-container>\n", components: [{ type: i1.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }, { type: i2.InputSwitch, selector: "p-inputSwitch", inputs: ["style", "styleClass", "tabindex", "inputId", "name", "disabled", "readonly", "trueValue", "falseValue", "ariaLabelledBy"], outputs: ["onChange"] }, { type: i3.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { type: i4.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i5.Calendar, selector: "p-calendar", inputs: ["style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "view", "defaultDate", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }], directives: [{ type: i6.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i6.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i8.InputTextarea, selector: "[pInputTextarea]", inputs: ["autoResize"], outputs: ["onResize"] }, { type: i6.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i9.InputText, selector: "[pInputText]" }], pipes: { "translate": i10.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
26
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldInputComponent, decorators: [{
27
27
  type: Component,
28
- args: [{ selector: 'mng-formly-field-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"to.type\">\n <p-inputNumber\n *ngSwitchCase=\"'number'\"\n [id]=\"$any(key)\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [min]=\"$any(descriptor.numberMin)\"\n [max]=\"$any(descriptor.numberMax)\"\n [step]=\"$any(descriptor.numberStep)\"\n [minFractionDigits]=\"descriptor.numberMinFractionDigits || 0\"\n [maxFractionDigits]=\"descriptor.numberMaxFractionDigits || 0\">\n </p-inputNumber>\n\n <div *ngSwitchCase=\"'switch'\" class=\"flex flex-column\">\n <label [for]=\"key\">{{ to?.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <p-inputSwitch [id]=\"$any(key)\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\"> </p-inputSwitch>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n </div>\n\n <ng-container *ngSwitchCase=\"'radio'\">\n <div *ngFor=\"let category of descriptor.radioOptions\" [id]=\"$any(key)\" class=\"p-field-radiobutton\">\n <p-radioButton [name]=\"$any(key)\" [value]=\"category\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\"></p-radioButton>\n <label [for]=\"category\" class=\"mng-radio-button-label\">{{ category }}</label>\n </div>\n </ng-container>\n\n <textarea *ngSwitchCase=\"'textarea'\" [id]=\"$any(key)\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\" [rows]=\"descriptor.rows ?? 3\" pInputTextarea> </textarea>\n\n <p-calendar\n *ngSwitchCase=\"'datepicker'\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [dateFormat]=\"$any(descriptor.datePickerFormat)\"\n [minDate]=\"$any(descriptor.datePickerMin)\"\n [maxDate]=\"$any(descriptor.datePickerMax)\"\n [showTime]=\"descriptor.datePickerShowTime\"\n [showIcon]=\"true\">\n </p-calendar>\n\n <input *ngSwitchDefault pInputText [id]=\"$any(key)\" [type]=\"to.type || 'text'\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\" />\n</ng-container>\n" }]
28
+ args: [{ selector: 'mng-formly-field-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"to.type\">\n <p-inputNumber\n *ngSwitchCase=\"'number'\"\n [id]=\"$any(key)\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [min]=\"$any(descriptor.numberMin)\"\n [max]=\"$any(descriptor.numberMax)\"\n [step]=\"$any(descriptor.numberStep)\"\n [minFractionDigits]=\"descriptor.numberMinFractionDigits || 0\"\n [maxFractionDigits]=\"descriptor.numberMaxFractionDigits || 0\">\n </p-inputNumber>\n\n <div *ngSwitchCase=\"'switch'\" class=\"flex flex-column\">\n <label [for]=\"key\">{{ to?.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <p-inputSwitch [id]=\"$any(key)\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\"></p-inputSwitch>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n </div>\n\n <ng-container *ngSwitchCase=\"'radio'\">\n <div *ngFor=\"let option of descriptor.radioOptions\" [id]=\"$any(key)\" class=\"field-radiobutton\">\n <p-radioButton [name]=\"$any(key)\" [value]=\"option.value\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\"></p-radioButton>\n <label [for]=\"option.value\" class=\"mng-radio-button-label\">{{ option.title | translate }}</label>\n </div>\n </ng-container>\n\n <textarea *ngSwitchCase=\"'textarea'\" [id]=\"$any(key)\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\" [rows]=\"descriptor.rows ?? 3\" pInputTextarea> </textarea>\n\n <p-calendar\n *ngSwitchCase=\"'datepicker'\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [dateFormat]=\"$any(descriptor.datePickerFormat)\"\n [minDate]=\"$any(descriptor.datePickerMin)\"\n [maxDate]=\"$any(descriptor.datePickerMax)\"\n [showTime]=\"descriptor.datePickerShowTime\"\n [showIcon]=\"true\">\n </p-calendar>\n\n <input *ngSwitchDefault pInputText [id]=\"$any(key)\" [type]=\"to.type || 'text'\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\" />\n</ng-container>\n" }]
29
29
  }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2Zvcm1seS9maWVsZHMvZm9ybWx5LWZpZWxkLWlucHV0L2Zvcm1seS1maWVsZC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtbHkvZmllbGRzL2Zvcm1seS1maWVsZC1pbnB1dC9mb3JtbHktZmllbGQtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUd6RSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7Ozs7OztBQVMzQyxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsU0FBUztJQUl2RCxRQUFRO1FBQ0osSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBMEIsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFeEMsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxZQUFZLElBQUksT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDOUUsTUFBTSxVQUFVLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUMxQztJQUNMLENBQUM7O3lIQVpRLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLHFGQ1p6QywwcUVBMkNBOzJGRC9CYSw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0ksd0JBQXdCLG1CQUVqQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQge0ZpZWxkVHlwZX0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5cbmltcG9ydCB7RmllbGRJbnB1dERlc2NyaXB0b3J9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2Rlc2NyaXB0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtbmctZm9ybWx5LWZpZWxkLWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybWx5LWZpZWxkLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNbmdGb3JtbHlGaWVsZElucHV0Q29tcG9uZW50IGV4dGVuZHMgRmllbGRUeXBlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwdWJsaWMgaUZvcm1Db250cm9sITogRm9ybUNvbnRyb2w7XG4gICAgcHVibGljIGRlc2NyaXB0b3IhOiBGaWVsZElucHV0RGVzY3JpcHRvcjxhbnk+O1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaUZvcm1Db250cm9sID0gdGhpcy5mb3JtQ29udHJvbCBhcyBGb3JtQ29udHJvbDtcbiAgICAgICAgdGhpcy5kZXNjcmlwdG9yID0gdGhpcy50b1snZGVzY3JpcHRvciddO1xuXG4gICAgICAgIGlmICh0aGlzLnRvLnR5cGUgPT09ICdkYXRlcGlja2VyJyAmJiB0eXBlb2YgdGhpcy5pRm9ybUNvbnRyb2wudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRlT2JqZWN0ID0gbmV3IERhdGUodGhpcy5pRm9ybUNvbnRyb2wudmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5pRm9ybUNvbnRyb2wuc2V0VmFsdWUoZGF0ZU9iamVjdCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJ0by50eXBlXCI+XG4gICAgPHAtaW5wdXROdW1iZXJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCJcbiAgICAgICAgW2lkXT1cIiRhbnkoa2V5KVwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJpRm9ybUNvbnRyb2xcIlxuICAgICAgICBbZm9ybWx5QXR0cmlidXRlc109XCJmaWVsZFwiXG4gICAgICAgIFttaW5dPVwiJGFueShkZXNjcmlwdG9yLm51bWJlck1pbilcIlxuICAgICAgICBbbWF4XT1cIiRhbnkoZGVzY3JpcHRvci5udW1iZXJNYXgpXCJcbiAgICAgICAgW3N0ZXBdPVwiJGFueShkZXNjcmlwdG9yLm51bWJlclN0ZXApXCJcbiAgICAgICAgW21pbkZyYWN0aW9uRGlnaXRzXT1cImRlc2NyaXB0b3IubnVtYmVyTWluRnJhY3Rpb25EaWdpdHMgfHwgMFwiXG4gICAgICAgIFttYXhGcmFjdGlvbkRpZ2l0c109XCJkZXNjcmlwdG9yLm51bWJlck1heEZyYWN0aW9uRGlnaXRzIHx8IDBcIj5cbiAgICA8L3AtaW5wdXROdW1iZXI+XG5cbiAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInc3dpdGNoJ1wiIGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtblwiPlxuICAgICAgICA8bGFiZWwgW2Zvcl09XCJrZXlcIj57eyB0bz8ubGFiZWwhIHwgdHJhbnNsYXRlIH19IDxzcGFuICpuZ0lmPVwidG8ucmVxdWlyZWQgJiYgdG9bJ2hpZGVSZXF1aXJlZE1hcmtlciddICE9PSB0cnVlXCI+Kjwvc3Bhbj48L2xhYmVsPlxuICAgICAgICA8cC1pbnB1dFN3aXRjaCBbaWRdPVwiJGFueShrZXkpXCIgW2Zvcm1Db250cm9sXT1cImlGb3JtQ29udHJvbFwiIFtmb3JtbHlBdHRyaWJ1dGVzXT1cImZpZWxkXCI+IDwvcC1pbnB1dFN3aXRjaD5cbiAgICAgICAgPHNtYWxsICpuZ0lmPVwic2hvd0Vycm9yXCIgY2xhc3M9XCJwLWVycm9yXCI+XG4gICAgICAgICAgICA8Zm9ybWx5LXZhbGlkYXRpb24tbWVzc2FnZSBbZmllbGRdPVwiZmllbGRcIj48L2Zvcm1seS12YWxpZGF0aW9uLW1lc3NhZ2U+XG4gICAgICAgIDwvc21hbGw+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncmFkaW8nXCI+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIGRlc2NyaXB0b3IucmFkaW9PcHRpb25zXCIgW2lkXT1cIiRhbnkoa2V5KVwiIGNsYXNzPVwicC1maWVsZC1yYWRpb2J1dHRvblwiPlxuICAgICAgICAgICAgPHAtcmFkaW9CdXR0b24gW25hbWVdPVwiJGFueShrZXkpXCIgW3ZhbHVlXT1cImNhdGVnb3J5XCIgW2Zvcm1Db250cm9sXT1cImlGb3JtQ29udHJvbFwiIFtmb3JtbHlBdHRyaWJ1dGVzXT1cImZpZWxkXCI+PC9wLXJhZGlvQnV0dG9uPlxuICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiY2F0ZWdvcnlcIiBjbGFzcz1cIm1uZy1yYWRpby1idXR0b24tbGFiZWxcIj57eyBjYXRlZ29yeSB9fTwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPHRleHRhcmVhICpuZ1N3aXRjaENhc2U9XCIndGV4dGFyZWEnXCIgW2lkXT1cIiRhbnkoa2V5KVwiIFtmb3JtQ29udHJvbF09XCJpRm9ybUNvbnRyb2xcIiBbZm9ybWx5QXR0cmlidXRlc109XCJmaWVsZFwiIFtyb3dzXT1cImRlc2NyaXB0b3Iucm93cyA/PyAzXCIgcElucHV0VGV4dGFyZWE+IDwvdGV4dGFyZWE+XG5cbiAgICA8cC1jYWxlbmRhclxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGVwaWNrZXInXCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImlGb3JtQ29udHJvbFwiXG4gICAgICAgIFtmb3JtbHlBdHRyaWJ1dGVzXT1cImZpZWxkXCJcbiAgICAgICAgW2RhdGVGb3JtYXRdPVwiJGFueShkZXNjcmlwdG9yLmRhdGVQaWNrZXJGb3JtYXQpXCJcbiAgICAgICAgW21pbkRhdGVdPVwiJGFueShkZXNjcmlwdG9yLmRhdGVQaWNrZXJNaW4pXCJcbiAgICAgICAgW21heERhdGVdPVwiJGFueShkZXNjcmlwdG9yLmRhdGVQaWNrZXJNYXgpXCJcbiAgICAgICAgW3Nob3dUaW1lXT1cImRlc2NyaXB0b3IuZGF0ZVBpY2tlclNob3dUaW1lXCJcbiAgICAgICAgW3Nob3dJY29uXT1cInRydWVcIj5cbiAgICA8L3AtY2FsZW5kYXI+XG5cbiAgICA8aW5wdXQgKm5nU3dpdGNoRGVmYXVsdCBwSW5wdXRUZXh0IFtpZF09XCIkYW55KGtleSlcIiBbdHlwZV09XCJ0by50eXBlIHx8ICd0ZXh0J1wiIFtmb3JtQ29udHJvbF09XCJpRm9ybUNvbnRyb2xcIiBbZm9ybWx5QXR0cmlidXRlc109XCJmaWVsZFwiIC8+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2Zvcm1seS9maWVsZHMvZm9ybWx5LWZpZWxkLWlucHV0L2Zvcm1seS1maWVsZC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtbHkvZmllbGRzL2Zvcm1seS1maWVsZC1pbnB1dC9mb3JtbHktZmllbGQtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUd6RSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7Ozs7OztBQVMzQyxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsU0FBUztJQUl2RCxRQUFRO1FBQ0osSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBMEIsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFeEMsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxZQUFZLElBQUksT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDOUUsTUFBTSxVQUFVLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUMxQztJQUNMLENBQUM7O3lIQVpRLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLHFGQ1p6Qyw2ckVBMkNBOzJGRC9CYSw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0ksd0JBQXdCLG1CQUVqQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQge0ZpZWxkVHlwZX0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5cbmltcG9ydCB7RmllbGRJbnB1dERlc2NyaXB0b3J9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2Rlc2NyaXB0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtbmctZm9ybWx5LWZpZWxkLWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybWx5LWZpZWxkLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNbmdGb3JtbHlGaWVsZElucHV0Q29tcG9uZW50IGV4dGVuZHMgRmllbGRUeXBlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwdWJsaWMgaUZvcm1Db250cm9sITogRm9ybUNvbnRyb2w7XG4gICAgcHVibGljIGRlc2NyaXB0b3IhOiBGaWVsZElucHV0RGVzY3JpcHRvcjxhbnk+O1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaUZvcm1Db250cm9sID0gdGhpcy5mb3JtQ29udHJvbCBhcyBGb3JtQ29udHJvbDtcbiAgICAgICAgdGhpcy5kZXNjcmlwdG9yID0gdGhpcy50b1snZGVzY3JpcHRvciddO1xuXG4gICAgICAgIGlmICh0aGlzLnRvLnR5cGUgPT09ICdkYXRlcGlja2VyJyAmJiB0eXBlb2YgdGhpcy5pRm9ybUNvbnRyb2wudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRlT2JqZWN0ID0gbmV3IERhdGUodGhpcy5pRm9ybUNvbnRyb2wudmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5pRm9ybUNvbnRyb2wuc2V0VmFsdWUoZGF0ZU9iamVjdCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJ0by50eXBlXCI+XG4gICAgPHAtaW5wdXROdW1iZXJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCJcbiAgICAgICAgW2lkXT1cIiRhbnkoa2V5KVwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJpRm9ybUNvbnRyb2xcIlxuICAgICAgICBbZm9ybWx5QXR0cmlidXRlc109XCJmaWVsZFwiXG4gICAgICAgIFttaW5dPVwiJGFueShkZXNjcmlwdG9yLm51bWJlck1pbilcIlxuICAgICAgICBbbWF4XT1cIiRhbnkoZGVzY3JpcHRvci5udW1iZXJNYXgpXCJcbiAgICAgICAgW3N0ZXBdPVwiJGFueShkZXNjcmlwdG9yLm51bWJlclN0ZXApXCJcbiAgICAgICAgW21pbkZyYWN0aW9uRGlnaXRzXT1cImRlc2NyaXB0b3IubnVtYmVyTWluRnJhY3Rpb25EaWdpdHMgfHwgMFwiXG4gICAgICAgIFttYXhGcmFjdGlvbkRpZ2l0c109XCJkZXNjcmlwdG9yLm51bWJlck1heEZyYWN0aW9uRGlnaXRzIHx8IDBcIj5cbiAgICA8L3AtaW5wdXROdW1iZXI+XG5cbiAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInc3dpdGNoJ1wiIGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtblwiPlxuICAgICAgICA8bGFiZWwgW2Zvcl09XCJrZXlcIj57eyB0bz8ubGFiZWwhIHwgdHJhbnNsYXRlIH19IDxzcGFuICpuZ0lmPVwidG8ucmVxdWlyZWQgJiYgdG9bJ2hpZGVSZXF1aXJlZE1hcmtlciddICE9PSB0cnVlXCI+Kjwvc3Bhbj48L2xhYmVsPlxuICAgICAgICA8cC1pbnB1dFN3aXRjaCBbaWRdPVwiJGFueShrZXkpXCIgW2Zvcm1Db250cm9sXT1cImlGb3JtQ29udHJvbFwiIFtmb3JtbHlBdHRyaWJ1dGVzXT1cImZpZWxkXCI+PC9wLWlucHV0U3dpdGNoPlxuICAgICAgICA8c21hbGwgKm5nSWY9XCJzaG93RXJyb3JcIiBjbGFzcz1cInAtZXJyb3JcIj5cbiAgICAgICAgICAgIDxmb3JtbHktdmFsaWRhdGlvbi1tZXNzYWdlIFtmaWVsZF09XCJmaWVsZFwiPjwvZm9ybWx5LXZhbGlkYXRpb24tbWVzc2FnZT5cbiAgICAgICAgPC9zbWFsbD5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidyYWRpbydcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGRlc2NyaXB0b3IucmFkaW9PcHRpb25zXCIgW2lkXT1cIiRhbnkoa2V5KVwiIGNsYXNzPVwiZmllbGQtcmFkaW9idXR0b25cIj5cbiAgICAgICAgICAgIDxwLXJhZGlvQnV0dG9uIFtuYW1lXT1cIiRhbnkoa2V5KVwiIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIiBbZm9ybUNvbnRyb2xdPVwiaUZvcm1Db250cm9sXCIgW2Zvcm1seUF0dHJpYnV0ZXNdPVwiZmllbGRcIj48L3AtcmFkaW9CdXR0b24+XG4gICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJvcHRpb24udmFsdWVcIiBjbGFzcz1cIm1uZy1yYWRpby1idXR0b24tbGFiZWxcIj57eyBvcHRpb24udGl0bGUgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDx0ZXh0YXJlYSAqbmdTd2l0Y2hDYXNlPVwiJ3RleHRhcmVhJ1wiIFtpZF09XCIkYW55KGtleSlcIiBbZm9ybUNvbnRyb2xdPVwiaUZvcm1Db250cm9sXCIgW2Zvcm1seUF0dHJpYnV0ZXNdPVwiZmllbGRcIiBbcm93c109XCJkZXNjcmlwdG9yLnJvd3MgPz8gM1wiIHBJbnB1dFRleHRhcmVhPiA8L3RleHRhcmVhPlxuXG4gICAgPHAtY2FsZW5kYXJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidkYXRlcGlja2VyJ1wiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJpRm9ybUNvbnRyb2xcIlxuICAgICAgICBbZm9ybWx5QXR0cmlidXRlc109XCJmaWVsZFwiXG4gICAgICAgIFtkYXRlRm9ybWF0XT1cIiRhbnkoZGVzY3JpcHRvci5kYXRlUGlja2VyRm9ybWF0KVwiXG4gICAgICAgIFttaW5EYXRlXT1cIiRhbnkoZGVzY3JpcHRvci5kYXRlUGlja2VyTWluKVwiXG4gICAgICAgIFttYXhEYXRlXT1cIiRhbnkoZGVzY3JpcHRvci5kYXRlUGlja2VyTWF4KVwiXG4gICAgICAgIFtzaG93VGltZV09XCJkZXNjcmlwdG9yLmRhdGVQaWNrZXJTaG93VGltZVwiXG4gICAgICAgIFtzaG93SWNvbl09XCJ0cnVlXCI+XG4gICAgPC9wLWNhbGVuZGFyPlxuXG4gICAgPGlucHV0ICpuZ1N3aXRjaERlZmF1bHQgcElucHV0VGV4dCBbaWRdPVwiJGFueShrZXkpXCIgW3R5cGVdPVwidG8udHlwZSB8fCAndGV4dCdcIiBbZm9ybUNvbnRyb2xdPVwiaUZvcm1Db250cm9sXCIgW2Zvcm1seUF0dHJpYnV0ZXNdPVwiZmllbGRcIiAvPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -9,9 +9,9 @@ import * as i5 from "@ngx-translate/core";
9
9
  export class MngFormlyFieldTabsComponent extends FieldType {
10
10
  }
11
11
  MngFormlyFieldTabsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldTabsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
12
- MngFormlyFieldTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldTabsComponent, selector: "mng-formly-field-tabs", usesInheritance: true, ngImport: i0, template: "<p-tabView>\n <p-tabPanel\n *ngFor=\"let tab of field.fieldGroup; let i = index; let last = last\"\n [header]=\"tab.templateOptions?.label!\"\n [headerStyleClass]=\"$any(formControl!.valid ? 'p-tabview-title' : null)\">\n <ng-template pTemplate=\"header\">\n <span\n class=\"p-tabview-title\"\n [class.p-tabview-title-error]=\"formState.submittedOn && formState['tab_' + (tab.id ? tab.id : tab.templateOptions?.label!) + '_invalid']\"\n >{{ tab.templateOptions?.label! | translate }}</span\n >\n </ng-template>\n <formly-field [field]=\"tab\"></formly-field>\n </p-tabPanel>\n</p-tabView>\n", components: [{ type: i1.TabView, selector: "p-tabView", inputs: ["orientation", "style", "styleClass", "controlClose", "scrollable", "activeIndex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { type: i1.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { type: i2.FormlyField, selector: "formly-field", inputs: ["field"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }], pipes: { "translate": i5.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
12
+ MngFormlyFieldTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldTabsComponent, selector: "mng-formly-field-tabs", usesInheritance: true, ngImport: i0, template: "<p-tabView>\n <p-tabPanel\n *ngFor=\"let tab of field.fieldGroup; let i = index; let last = last\"\n [header]=\"tab.templateOptions?.label! | translate\"\n [headerStyleClass]=\"$any(formControl!.valid ? 'p-tabview-title' : null)\">\n <ng-template pTemplate=\"header\">\n <span\n class=\"p-tabview-title\"\n [class.p-tabview-title-error]=\"formState.submittedOn && formState['tab_' + (tab.id ? tab.id : tab.templateOptions?.label!) + '_invalid']\"\n >{{ tab.templateOptions?.label! | translate }}</span\n >\n </ng-template>\n <formly-field [field]=\"tab\"></formly-field>\n </p-tabPanel>\n</p-tabView>\n", components: [{ type: i1.TabView, selector: "p-tabView", inputs: ["orientation", "style", "styleClass", "controlClose", "scrollable", "activeIndex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { type: i1.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { type: i2.FormlyField, selector: "formly-field", inputs: ["field"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }], pipes: { "translate": i5.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
13
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldTabsComponent, decorators: [{
14
14
  type: Component,
15
- args: [{ selector: 'mng-formly-field-tabs', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-tabView>\n <p-tabPanel\n *ngFor=\"let tab of field.fieldGroup; let i = index; let last = last\"\n [header]=\"tab.templateOptions?.label!\"\n [headerStyleClass]=\"$any(formControl!.valid ? 'p-tabview-title' : null)\">\n <ng-template pTemplate=\"header\">\n <span\n class=\"p-tabview-title\"\n [class.p-tabview-title-error]=\"formState.submittedOn && formState['tab_' + (tab.id ? tab.id : tab.templateOptions?.label!) + '_invalid']\"\n >{{ tab.templateOptions?.label! | translate }}</span\n >\n </ng-template>\n <formly-field [field]=\"tab\"></formly-field>\n </p-tabPanel>\n</p-tabView>\n" }]
15
+ args: [{ selector: 'mng-formly-field-tabs', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-tabView>\n <p-tabPanel\n *ngFor=\"let tab of field.fieldGroup; let i = index; let last = last\"\n [header]=\"tab.templateOptions?.label! | translate\"\n [headerStyleClass]=\"$any(formControl!.valid ? 'p-tabview-title' : null)\">\n <ng-template pTemplate=\"header\">\n <span\n class=\"p-tabview-title\"\n [class.p-tabview-title-error]=\"formState.submittedOn && formState['tab_' + (tab.id ? tab.id : tab.templateOptions?.label!) + '_invalid']\"\n >{{ tab.templateOptions?.label! | translate }}</span\n >\n </ng-template>\n <formly-field [field]=\"tab\"></formly-field>\n </p-tabPanel>\n</p-tabView>\n" }]
16
16
  }] });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybWx5L2ZpZWxkcy9mb3JtbHktZmllbGQtdGFicy9mb3JtbHktZmllbGQtdGFicy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtbHkvZmllbGRzL2Zvcm1seS1maWVsZC10YWJzL2Zvcm1seS1maWVsZC10YWJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7O0FBTzNDLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxTQUFTOzt3SEFBN0MsMkJBQTJCOzRHQUEzQiwyQkFBMkIsb0ZDVHhDLG1zQkFlQTsyRkROYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0ksdUJBQXVCLG1CQUVoQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtGaWVsZFR5cGV9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21uZy1mb3JtbHktZmllbGQtdGFicycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm1seS1maWVsZC10YWJzLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNbmdGb3JtbHlGaWVsZFRhYnNDb21wb25lbnQgZXh0ZW5kcyBGaWVsZFR5cGUge31cbiIsIjxwLXRhYlZpZXc+XG4gICAgPHAtdGFiUGFuZWxcbiAgICAgICAgKm5nRm9yPVwibGV0IHRhYiBvZiBmaWVsZC5maWVsZEdyb3VwOyBsZXQgaSA9IGluZGV4OyBsZXQgbGFzdCA9IGxhc3RcIlxuICAgICAgICBbaGVhZGVyXT1cInRhYi50ZW1wbGF0ZU9wdGlvbnM/LmxhYmVsIVwiXG4gICAgICAgIFtoZWFkZXJTdHlsZUNsYXNzXT1cIiRhbnkoZm9ybUNvbnRyb2whLnZhbGlkID8gJ3AtdGFidmlldy10aXRsZScgOiBudWxsKVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwicC10YWJ2aWV3LXRpdGxlXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MucC10YWJ2aWV3LXRpdGxlLWVycm9yXT1cImZvcm1TdGF0ZS5zdWJtaXR0ZWRPbiAmJiBmb3JtU3RhdGVbJ3RhYl8nICsgKHRhYi5pZCA/IHRhYi5pZCA6IHRhYi50ZW1wbGF0ZU9wdGlvbnM/LmxhYmVsISkgKyAnX2ludmFsaWQnXVwiXG4gICAgICAgICAgICAgICAgPnt7IHRhYi50ZW1wbGF0ZU9wdGlvbnM/LmxhYmVsISB8IHRyYW5zbGF0ZSB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8Zm9ybWx5LWZpZWxkIFtmaWVsZF09XCJ0YWJcIj48L2Zvcm1seS1maWVsZD5cbiAgICA8L3AtdGFiUGFuZWw+XG48L3AtdGFiVmlldz5cbiJdfQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybWx5L2ZpZWxkcy9mb3JtbHktZmllbGQtdGFicy9mb3JtbHktZmllbGQtdGFicy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtbHkvZmllbGRzL2Zvcm1seS1maWVsZC10YWJzL2Zvcm1seS1maWVsZC10YWJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7O0FBTzNDLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxTQUFTOzt3SEFBN0MsMkJBQTJCOzRHQUEzQiwyQkFBMkIsb0ZDVHhDLCtzQkFlQTsyRkROYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0ksdUJBQXVCLG1CQUVoQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtGaWVsZFR5cGV9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21uZy1mb3JtbHktZmllbGQtdGFicycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm1seS1maWVsZC10YWJzLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNbmdGb3JtbHlGaWVsZFRhYnNDb21wb25lbnQgZXh0ZW5kcyBGaWVsZFR5cGUge31cbiIsIjxwLXRhYlZpZXc+XG4gICAgPHAtdGFiUGFuZWxcbiAgICAgICAgKm5nRm9yPVwibGV0IHRhYiBvZiBmaWVsZC5maWVsZEdyb3VwOyBsZXQgaSA9IGluZGV4OyBsZXQgbGFzdCA9IGxhc3RcIlxuICAgICAgICBbaGVhZGVyXT1cInRhYi50ZW1wbGF0ZU9wdGlvbnM/LmxhYmVsISB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtoZWFkZXJTdHlsZUNsYXNzXT1cIiRhbnkoZm9ybUNvbnRyb2whLnZhbGlkID8gJ3AtdGFidmlldy10aXRsZScgOiBudWxsKVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwicC10YWJ2aWV3LXRpdGxlXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MucC10YWJ2aWV3LXRpdGxlLWVycm9yXT1cImZvcm1TdGF0ZS5zdWJtaXR0ZWRPbiAmJiBmb3JtU3RhdGVbJ3RhYl8nICsgKHRhYi5pZCA/IHRhYi5pZCA6IHRhYi50ZW1wbGF0ZU9wdGlvbnM/LmxhYmVsISkgKyAnX2ludmFsaWQnXVwiXG4gICAgICAgICAgICAgICAgPnt7IHRhYi50ZW1wbGF0ZU9wdGlvbnM/LmxhYmVsISB8IHRyYW5zbGF0ZSB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8Zm9ybWx5LWZpZWxkIFtmaWVsZF09XCJ0YWJcIj48L2Zvcm1seS1maWVsZD5cbiAgICA8L3AtdGFiUGFuZWw+XG48L3AtdGFiVmlldz5cbiJdfQ==
@@ -18,4 +18,4 @@ TableviewComponentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.
18
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TableviewComponentService, decorators: [{
19
19
  type: Injectable
20
20
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LmNvbXBvbmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL3RhYmxldmlldy9zZXJ2aWNlcy90YWJsZXZpZXcuY29tcG9uZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQU16QyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDOztBQUc3QixNQUFNLE9BQU8seUJBQXlCO0lBRHRDO1FBSVcsWUFBTyxHQUErQixFQUFFLENBQUM7UUFFeEMsd0JBQW1CLEdBQWlCLElBQUksT0FBTyxFQUFFLENBQUM7S0FTN0Q7SUFQRyxJQUFXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVNLGtCQUFrQixDQUFDLEtBQVU7UUFDaEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDOztzSEFiUSx5QkFBeUI7MEhBQXpCLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtNZXNzYWdlU2VydmljZX0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG5pbXBvcnQge0lUYWJsZXZpZXdEYXRhUHJvdmlkZXJ9IGZyb20gJy4uLy4uLy4uL2RhdGEtcHJvdmlkZXJzJztcbmltcG9ydCB7QWN0aW9uRGVzY3JpcHRvcn0gZnJvbSAnLi4vLi4vLi4vZGVzY3JpcHRvcnMnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRhYmxldmlld0NvbXBvbmVudFNlcnZpY2U8VCwgUz4ge1xuICAgIHB1YmxpYyBkYXRhUHJvdmlkZXI/OiBJVGFibGV2aWV3RGF0YVByb3ZpZGVyPFQsIFM+O1xuICAgIHB1YmxpYyBtZXNzYWdlU2VydmljZT86IE1lc3NhZ2VTZXJ2aWNlO1xuICAgIHB1YmxpYyBhY3Rpb25zOiBBcnJheTxBY3Rpb25EZXNjcmlwdG9yPFQ+PiA9IFtdO1xuXG4gICAgcHJpdmF0ZSBfcmVsb2FkVGFibGVTdWJqZWN0OiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgcHVibGljIGdldCByZWxvYWRUYWJsZSQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZWxvYWRUYWJsZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHRyaWdnZXJUYWJsZVJlbG9hZChldmVudDogYW55KSB7XG4gICAgICAgIHRoaXMuX3JlbG9hZFRhYmxlU3ViamVjdC5uZXh0KGV2ZW50KTtcbiAgICB9XG59XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LmNvbXBvbmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL3RhYmxldmlldy9zZXJ2aWNlcy90YWJsZXZpZXcuY29tcG9uZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd6QyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDOztBQU03QixNQUFNLE9BQU8seUJBQXlCO0lBRHRDO1FBSVcsWUFBTyxHQUErQixFQUFFLENBQUM7UUFFeEMsd0JBQW1CLEdBQWlCLElBQUksT0FBTyxFQUFFLENBQUM7S0FTN0Q7SUFQRyxJQUFXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVNLGtCQUFrQixDQUFDLEtBQVU7UUFDaEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDOztzSEFiUSx5QkFBeUI7MEhBQXpCLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtNZXNzYWdlU2VydmljZX0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtJVGFibGV2aWV3RGF0YVByb3ZpZGVyfSBmcm9tICcuLi8uLi8uLi9kYXRhLXByb3ZpZGVycyc7XG5pbXBvcnQge0FjdGlvbkRlc2NyaXB0b3J9IGZyb20gJy4uLy4uLy4uL2Rlc2NyaXB0b3JzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRhYmxldmlld0NvbXBvbmVudFNlcnZpY2U8VCwgUz4ge1xuICAgIHB1YmxpYyBkYXRhUHJvdmlkZXI/OiBJVGFibGV2aWV3RGF0YVByb3ZpZGVyPFQsIFM+O1xuICAgIHB1YmxpYyBtZXNzYWdlU2VydmljZT86IE1lc3NhZ2VTZXJ2aWNlO1xuICAgIHB1YmxpYyBhY3Rpb25zOiBBcnJheTxBY3Rpb25EZXNjcmlwdG9yPFQ+PiA9IFtdO1xuXG4gICAgcHJpdmF0ZSBfcmVsb2FkVGFibGVTdWJqZWN0OiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgcHVibGljIGdldCByZWxvYWRUYWJsZSQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZWxvYWRUYWJsZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHRyaWdnZXJUYWJsZVJlbG9hZChldmVudDogYW55KSB7XG4gICAgICAgIHRoaXMuX3JlbG9hZFRhYmxlU3ViamVjdC5uZXh0KGV2ZW50KTtcbiAgICB9XG59XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Optional, Output, ViewChild } from '@angular/core';
2
2
  import { Table } from 'primeng/table';
3
- import { Observable, of, ReplaySubject } from 'rxjs';
3
+ import { Observable, ReplaySubject, of } from 'rxjs';
4
4
  import { finalize, first, map } from 'rxjs/operators';
5
5
  import { MediusQueryParam, MediusQueryParamBuilder, MediusQueryResult } from '../../../api/models';
6
6
  import { MediusRestUtil } from '../../../api/utils';
@@ -20,6 +20,7 @@ import * as i6 from "./column-value/column-value.component";
20
20
  import * as i7 from "primeng/skeleton";
21
21
  import * as i8 from "@angular/common";
22
22
  import * as i9 from "primeng/api";
23
+ import * as i10 from "../../../pipes/i18n-property.pipe";
23
24
  export class MngTableComponent {
24
25
  constructor(injector, router, activatedRoute, translate, tableviewService) {
25
26
  this.injector = injector;
@@ -269,10 +270,10 @@ export class MngTableComponent {
269
270
  }
270
271
  }
271
272
  MngTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTableComponent, deps: [{ token: i0.Injector }, { token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.TranslateService }, { token: i3.TableviewComponentService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
272
- MngTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngTableComponent, selector: "mng-table", inputs: { descriptor: "descriptor", items: "items", queryResult: "queryResult", loading: "loading", dataProvider: "dataProvider", useQueryParams: "useQueryParams", selectionEnabled: "selectionEnabled" }, outputs: { loadEventEmitter: "tableLoad", cellClickEventEmitter: "cellClick", selectionChangeEventEmitter: "selectionChange" }, queries: [{ propertyName: "templates", predicate: MngTemplateDirective }], viewQueries: [{ propertyName: "primeTable", first: true, predicate: Table, descendants: true }], ngImport: i0, template: "<div [style.height]=\"scrollHeight === 'flex' ? 'calc(100vh - ' + descriptor.tableFullHeightOffset + 'px)' : null\">\n <!-- MUST NOT use observable for value when using virtual scroll - does not work for some reason -->\n <p-table\n *ngIf=\"!useQueryParams || useQueryParamsInitialized\"\n [value]=\"infiniteScroll ? dataProviderInfiniteScrollItems : (queryResult$ | async)?.pageData ?? []\"\n [dataKey]=\"$any(descriptor.dataKeyProperty)\"\n [lazy]=\"useDataProvider\"\n [loading]=\"(loading$ | async) ?? false\"\n [paginator]=\"useDataProvider && !infiniteScroll\"\n [rows]=\"$any(infiniteScroll ? 20 : rows)\"\n [first]=\"$any(infiniteScroll ? 0 : offset)\"\n [totalRecords]=\"$any(infiniteScroll ? null : (queryResult$ | async)?.allDataCount ?? 0)\"\n [rowsPerPageOptions]=\"$any(infiniteScroll ? null : rowsPerPageOptions)\"\n [showCurrentPageReport]=\"!infiniteScroll\"\n [currentPageReportTemplate]=\"'mngTable.paginationMsg' | translate\"\n [multiSortMeta]=\"$any(multiSortMeta)\"\n [filters]=\"filterMetadata\"\n [(selection)]=\"selection\"\n (selectionChange)=\"onSelectionChange($event)\"\n [scrollable]=\"infiniteScroll\"\n [virtualScroll]=\"infiniteScroll\"\n [virtualRowHeight]=\"$any(rowHeight)\"\n [scrollHeight]=\"$any(scrollHeight)\"\n [rowHover]=\"true\"\n (onLazyLoad)=\"onTableLazyLoad($event)\"\n (onSort)=\"onTableSort($event)\"\n (onFilter)=\"onTableFilter($event)\"\n sortMode=\"multiple\"\n responsiveLayout=\"scroll\">\n <ng-template *ngIf=\"captionTemplate || descriptor.title\" pTemplate=\"caption\">\n <ng-container *ngIf=\"captionTemplate; else defaultCaption\">\n <ng-container *ngTemplateOutlet=\"captionTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultCaption>\n <h5 class=\"p-m-0\">{{ descriptor.title }}</h5>\n </ng-template>\n </ng-template>\n\n <ng-template pTemplate=\"header\">\n <tr>\n <th *ngIf=\"selectionEnabled\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <ng-container *ngFor=\"let col of descriptor.columns\">\n <th *ngIf=\"col.isSortEnabled\" [pSortableColumn]=\"col.property\">\n <div class=\"flex justify-content-between align-items-center\">\n {{ descriptor.model.typeName + '.properties.' + col.property | translate }}\n <p-sortIcon [field]=\"col.property\"></p-sortIcon>\n <mng-table-column-filter\n *ngIf=\"col.filterDescriptor && descriptor.filterDisplay === filterDisplayMenu\"\n class=\"ml-auto\"\n [display]=\"descriptor.filterDisplay\"\n [descriptor]=\"col.filterDescriptor\">\n </mng-table-column-filter>\n </div>\n </th>\n <th *ngIf=\"!col.isSortEnabled\">\n {{ descriptor.model.typeName + '.properties.' + col.property | translate }}\n <ng-container>\n <mng-table-column-filter\n *ngIf=\"col.filterDescriptor && descriptor.filterDisplay === filterDisplayMenu\"\n class=\"ml-auto\"\n [display]=\"descriptor.filterDisplay\"\n [descriptor]=\"col.filterDescriptor\">\n </mng-table-column-filter>\n </ng-container>\n </th>\n </ng-container>\n <th *ngIf=\"columnActionTemplate\"></th>\n </tr>\n <tr *ngIf=\"descriptor.filterDisplay === filterDisplayRow\">\n <th *ngFor=\"let col of descriptor.columns\">\n <div class=\"flex\" *ngIf=\"col.filterDescriptor\">\n <mng-table-column-filter [display]=\"descriptor.filterDisplay\" [descriptor]=\"col.filterDescriptor\"></mng-table-column-filter>\n </div>\n </th>\n <th *ngIf=\"columnActionTemplate\"></th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-item let-idx=\"rowIndex\">\n <tr [style.height.px]=\"descriptor.rowHeight\">\n <td *ngIf=\"selectionEnabled\">\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\n </td>\n <td *ngFor=\"let col of descriptor.columns\" (click)=\"onCellClick(col, item, idx)\" class=\"clickable\">\n <mng-table-column-value [descriptor]=\"col\" [item]=\"item\"></mng-table-column-value>\n </td>\n <td *ngIf=\"columnActionTemplate\" class=\"text-right\">\n <ng-container *ngTemplateOutlet=\"columnActionTemplate; context: {rowItem: item, rowIndex: idx}\"></ng-container>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"loadingbody\">\n <tr [style.height.px]=\"descriptor.rowHeight\">\n <td [attr.colspan]=\"descriptor.columns.length + (columnActionTemplate ? 1 : 0) + (selectionEnabled ? 1 : 0)\">\n <div class=\"loading-text\"></div>\n <p-skeleton [ngStyle]=\"{width: '100%'}\"></p-skeleton>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"emptymessage\">\n <tr [style.height.px]=\"rowHeight\">\n <td [attr.colspan]=\"descriptor.columns.length + (columnActionTemplate ? 1 : 0) + (selectionEnabled ? 1 : 0)\">\n {{ 'mngTable.noItems' | translate }}\n </td>\n </tr>\n </ng-template>\n </p-table>\n</div>\n", components: [{ type: i4.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollDelay", "virtualRowHeight", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "minBufferPx", "maxBufferPx", "responsiveLayout", "breakpoint", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { type: i4.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { type: i4.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { type: i5.MngTableColumnFilterComponent, selector: "mng-table-column-filter", inputs: ["descriptor", "display"] }, { type: i4.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { type: i6.MngTableColumnValueComponent, selector: "mng-table-column-value", inputs: ["descriptor", "item"] }, { type: i7.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { type: i8.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "async": i8.AsyncPipe, "translate": i2.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
273
+ MngTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngTableComponent, selector: "mng-table", inputs: { descriptor: "descriptor", items: "items", queryResult: "queryResult", loading: "loading", dataProvider: "dataProvider", useQueryParams: "useQueryParams", selectionEnabled: "selectionEnabled" }, outputs: { loadEventEmitter: "tableLoad", cellClickEventEmitter: "cellClick", selectionChangeEventEmitter: "selectionChange" }, queries: [{ propertyName: "templates", predicate: MngTemplateDirective }], viewQueries: [{ propertyName: "primeTable", first: true, predicate: Table, descendants: true }], ngImport: i0, template: "<div [style.height]=\"scrollHeight === 'flex' ? 'calc(100vh - ' + descriptor.tableFullHeightOffset + 'px)' : null\">\n <!-- MUST NOT use observable for value when using virtual scroll - does not work for some reason -->\n <p-table\n *ngIf=\"!useQueryParams || useQueryParamsInitialized\"\n [value]=\"infiniteScroll ? dataProviderInfiniteScrollItems : (queryResult$ | async)?.pageData ?? []\"\n [dataKey]=\"$any(descriptor.dataKeyProperty)\"\n [lazy]=\"useDataProvider\"\n [loading]=\"(loading$ | async) ?? false\"\n [paginator]=\"useDataProvider && !infiniteScroll\"\n [rows]=\"$any(infiniteScroll ? 20 : rows)\"\n [first]=\"$any(infiniteScroll ? 0 : offset)\"\n [totalRecords]=\"$any(infiniteScroll ? null : (queryResult$ | async)?.allDataCount ?? 0)\"\n [rowsPerPageOptions]=\"$any(infiniteScroll ? null : rowsPerPageOptions)\"\n [showCurrentPageReport]=\"!infiniteScroll\"\n [currentPageReportTemplate]=\"'mngTable.paginationMsg' | translate\"\n [multiSortMeta]=\"$any(multiSortMeta)\"\n [filters]=\"filterMetadata\"\n [(selection)]=\"selection\"\n (selectionChange)=\"onSelectionChange($event)\"\n [scrollable]=\"infiniteScroll\"\n [virtualScroll]=\"infiniteScroll\"\n [virtualRowHeight]=\"$any(rowHeight)\"\n [scrollHeight]=\"$any(scrollHeight)\"\n [rowHover]=\"true\"\n (onLazyLoad)=\"onTableLazyLoad($event)\"\n (onSort)=\"onTableSort($event)\"\n (onFilter)=\"onTableFilter($event)\"\n sortMode=\"multiple\"\n responsiveLayout=\"scroll\">\n <ng-template *ngIf=\"captionTemplate || descriptor.title\" pTemplate=\"caption\">\n <ng-container *ngIf=\"captionTemplate; else defaultCaption\">\n <ng-container *ngTemplateOutlet=\"captionTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultCaption>\n <h5 class=\"p-m-0\">{{ descriptor.title }}</h5>\n </ng-template>\n </ng-template>\n\n <ng-template pTemplate=\"header\">\n <tr *ngIf=\"!descriptor.hideHeader\">\n <th *ngIf=\"selectionEnabled\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <ng-container *ngFor=\"let col of descriptor.columns\">\n <th *ngIf=\"col.isSortEnabled\" [pSortableColumn]=\"col.property\">\n <div class=\"flex justify-content-between align-items-center\">\n {{ col.property | i18nProperty: descriptor.model | translate }}\n <p-sortIcon [field]=\"col.property\"></p-sortIcon>\n <mng-table-column-filter\n *ngIf=\"col.filterDescriptor && descriptor.filterDisplay === filterDisplayMenu\"\n class=\"ml-auto\"\n [display]=\"descriptor.filterDisplay\"\n [descriptor]=\"col.filterDescriptor\">\n </mng-table-column-filter>\n </div>\n </th>\n <th *ngIf=\"!col.isSortEnabled\">\n {{ col.property | i18nProperty: descriptor.model | translate }}\n <ng-container>\n <mng-table-column-filter\n *ngIf=\"col.filterDescriptor && descriptor.filterDisplay === filterDisplayMenu\"\n class=\"ml-auto\"\n [display]=\"descriptor.filterDisplay\"\n [descriptor]=\"col.filterDescriptor\">\n </mng-table-column-filter>\n </ng-container>\n </th>\n </ng-container>\n <th *ngIf=\"columnActionTemplate\"></th>\n </tr>\n <tr *ngIf=\"descriptor.filterDisplay === filterDisplayRow\">\n <th *ngFor=\"let col of descriptor.columns\">\n <div class=\"flex\" *ngIf=\"col.filterDescriptor\">\n <mng-table-column-filter [display]=\"descriptor.filterDisplay\" [descriptor]=\"col.filterDescriptor\"></mng-table-column-filter>\n </div>\n </th>\n <th *ngIf=\"columnActionTemplate\"></th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-item let-idx=\"rowIndex\">\n <tr [style.height.px]=\"descriptor.rowHeight\">\n <td *ngIf=\"selectionEnabled\">\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\n </td>\n <td *ngFor=\"let col of descriptor.columns\" (click)=\"onCellClick(col, item, idx)\" class=\"clickable\">\n <mng-table-column-value [descriptor]=\"col\" [item]=\"item\"></mng-table-column-value>\n </td>\n <td *ngIf=\"columnActionTemplate\" class=\"text-right\">\n <ng-container *ngTemplateOutlet=\"columnActionTemplate; context: {rowItem: item, rowIndex: idx}\"></ng-container>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"loadingbody\">\n <tr [style.height.px]=\"descriptor.rowHeight\">\n <td [attr.colspan]=\"descriptor.columns.length + (columnActionTemplate ? 1 : 0) + (selectionEnabled ? 1 : 0)\">\n <div class=\"loading-text\"></div>\n <p-skeleton [ngStyle]=\"{width: '100%'}\"></p-skeleton>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"emptymessage\">\n <tr [style.height.px]=\"rowHeight\">\n <td [attr.colspan]=\"descriptor.columns.length + (columnActionTemplate ? 1 : 0) + (selectionEnabled ? 1 : 0)\">\n {{ 'mngTable.noItems' | translate }}\n </td>\n </tr>\n </ng-template>\n </p-table>\n</div>\n", components: [{ type: i4.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollDelay", "virtualRowHeight", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "minBufferPx", "maxBufferPx", "responsiveLayout", "breakpoint", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { type: i4.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { type: i4.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { type: i5.MngTableColumnFilterComponent, selector: "mng-table-column-filter", inputs: ["descriptor", "display"] }, { type: i4.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { type: i6.MngTableColumnValueComponent, selector: "mng-table-column-value", inputs: ["descriptor", "item"] }, { type: i7.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { type: i8.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "async": i8.AsyncPipe, "translate": i2.TranslatePipe, "i18nProperty": i10.MngI18nPropertyPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
273
274
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTableComponent, decorators: [{
274
275
  type: Component,
275
- args: [{ selector: 'mng-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [style.height]=\"scrollHeight === 'flex' ? 'calc(100vh - ' + descriptor.tableFullHeightOffset + 'px)' : null\">\n <!-- MUST NOT use observable for value when using virtual scroll - does not work for some reason -->\n <p-table\n *ngIf=\"!useQueryParams || useQueryParamsInitialized\"\n [value]=\"infiniteScroll ? dataProviderInfiniteScrollItems : (queryResult$ | async)?.pageData ?? []\"\n [dataKey]=\"$any(descriptor.dataKeyProperty)\"\n [lazy]=\"useDataProvider\"\n [loading]=\"(loading$ | async) ?? false\"\n [paginator]=\"useDataProvider && !infiniteScroll\"\n [rows]=\"$any(infiniteScroll ? 20 : rows)\"\n [first]=\"$any(infiniteScroll ? 0 : offset)\"\n [totalRecords]=\"$any(infiniteScroll ? null : (queryResult$ | async)?.allDataCount ?? 0)\"\n [rowsPerPageOptions]=\"$any(infiniteScroll ? null : rowsPerPageOptions)\"\n [showCurrentPageReport]=\"!infiniteScroll\"\n [currentPageReportTemplate]=\"'mngTable.paginationMsg' | translate\"\n [multiSortMeta]=\"$any(multiSortMeta)\"\n [filters]=\"filterMetadata\"\n [(selection)]=\"selection\"\n (selectionChange)=\"onSelectionChange($event)\"\n [scrollable]=\"infiniteScroll\"\n [virtualScroll]=\"infiniteScroll\"\n [virtualRowHeight]=\"$any(rowHeight)\"\n [scrollHeight]=\"$any(scrollHeight)\"\n [rowHover]=\"true\"\n (onLazyLoad)=\"onTableLazyLoad($event)\"\n (onSort)=\"onTableSort($event)\"\n (onFilter)=\"onTableFilter($event)\"\n sortMode=\"multiple\"\n responsiveLayout=\"scroll\">\n <ng-template *ngIf=\"captionTemplate || descriptor.title\" pTemplate=\"caption\">\n <ng-container *ngIf=\"captionTemplate; else defaultCaption\">\n <ng-container *ngTemplateOutlet=\"captionTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultCaption>\n <h5 class=\"p-m-0\">{{ descriptor.title }}</h5>\n </ng-template>\n </ng-template>\n\n <ng-template pTemplate=\"header\">\n <tr>\n <th *ngIf=\"selectionEnabled\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <ng-container *ngFor=\"let col of descriptor.columns\">\n <th *ngIf=\"col.isSortEnabled\" [pSortableColumn]=\"col.property\">\n <div class=\"flex justify-content-between align-items-center\">\n {{ descriptor.model.typeName + '.properties.' + col.property | translate }}\n <p-sortIcon [field]=\"col.property\"></p-sortIcon>\n <mng-table-column-filter\n *ngIf=\"col.filterDescriptor && descriptor.filterDisplay === filterDisplayMenu\"\n class=\"ml-auto\"\n [display]=\"descriptor.filterDisplay\"\n [descriptor]=\"col.filterDescriptor\">\n </mng-table-column-filter>\n </div>\n </th>\n <th *ngIf=\"!col.isSortEnabled\">\n {{ descriptor.model.typeName + '.properties.' + col.property | translate }}\n <ng-container>\n <mng-table-column-filter\n *ngIf=\"col.filterDescriptor && descriptor.filterDisplay === filterDisplayMenu\"\n class=\"ml-auto\"\n [display]=\"descriptor.filterDisplay\"\n [descriptor]=\"col.filterDescriptor\">\n </mng-table-column-filter>\n </ng-container>\n </th>\n </ng-container>\n <th *ngIf=\"columnActionTemplate\"></th>\n </tr>\n <tr *ngIf=\"descriptor.filterDisplay === filterDisplayRow\">\n <th *ngFor=\"let col of descriptor.columns\">\n <div class=\"flex\" *ngIf=\"col.filterDescriptor\">\n <mng-table-column-filter [display]=\"descriptor.filterDisplay\" [descriptor]=\"col.filterDescriptor\"></mng-table-column-filter>\n </div>\n </th>\n <th *ngIf=\"columnActionTemplate\"></th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-item let-idx=\"rowIndex\">\n <tr [style.height.px]=\"descriptor.rowHeight\">\n <td *ngIf=\"selectionEnabled\">\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\n </td>\n <td *ngFor=\"let col of descriptor.columns\" (click)=\"onCellClick(col, item, idx)\" class=\"clickable\">\n <mng-table-column-value [descriptor]=\"col\" [item]=\"item\"></mng-table-column-value>\n </td>\n <td *ngIf=\"columnActionTemplate\" class=\"text-right\">\n <ng-container *ngTemplateOutlet=\"columnActionTemplate; context: {rowItem: item, rowIndex: idx}\"></ng-container>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"loadingbody\">\n <tr [style.height.px]=\"descriptor.rowHeight\">\n <td [attr.colspan]=\"descriptor.columns.length + (columnActionTemplate ? 1 : 0) + (selectionEnabled ? 1 : 0)\">\n <div class=\"loading-text\"></div>\n <p-skeleton [ngStyle]=\"{width: '100%'}\"></p-skeleton>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"emptymessage\">\n <tr [style.height.px]=\"rowHeight\">\n <td [attr.colspan]=\"descriptor.columns.length + (columnActionTemplate ? 1 : 0) + (selectionEnabled ? 1 : 0)\">\n {{ 'mngTable.noItems' | translate }}\n </td>\n </tr>\n </ng-template>\n </p-table>\n</div>\n" }]
276
+ args: [{ selector: 'mng-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [style.height]=\"scrollHeight === 'flex' ? 'calc(100vh - ' + descriptor.tableFullHeightOffset + 'px)' : null\">\n <!-- MUST NOT use observable for value when using virtual scroll - does not work for some reason -->\n <p-table\n *ngIf=\"!useQueryParams || useQueryParamsInitialized\"\n [value]=\"infiniteScroll ? dataProviderInfiniteScrollItems : (queryResult$ | async)?.pageData ?? []\"\n [dataKey]=\"$any(descriptor.dataKeyProperty)\"\n [lazy]=\"useDataProvider\"\n [loading]=\"(loading$ | async) ?? false\"\n [paginator]=\"useDataProvider && !infiniteScroll\"\n [rows]=\"$any(infiniteScroll ? 20 : rows)\"\n [first]=\"$any(infiniteScroll ? 0 : offset)\"\n [totalRecords]=\"$any(infiniteScroll ? null : (queryResult$ | async)?.allDataCount ?? 0)\"\n [rowsPerPageOptions]=\"$any(infiniteScroll ? null : rowsPerPageOptions)\"\n [showCurrentPageReport]=\"!infiniteScroll\"\n [currentPageReportTemplate]=\"'mngTable.paginationMsg' | translate\"\n [multiSortMeta]=\"$any(multiSortMeta)\"\n [filters]=\"filterMetadata\"\n [(selection)]=\"selection\"\n (selectionChange)=\"onSelectionChange($event)\"\n [scrollable]=\"infiniteScroll\"\n [virtualScroll]=\"infiniteScroll\"\n [virtualRowHeight]=\"$any(rowHeight)\"\n [scrollHeight]=\"$any(scrollHeight)\"\n [rowHover]=\"true\"\n (onLazyLoad)=\"onTableLazyLoad($event)\"\n (onSort)=\"onTableSort($event)\"\n (onFilter)=\"onTableFilter($event)\"\n sortMode=\"multiple\"\n responsiveLayout=\"scroll\">\n <ng-template *ngIf=\"captionTemplate || descriptor.title\" pTemplate=\"caption\">\n <ng-container *ngIf=\"captionTemplate; else defaultCaption\">\n <ng-container *ngTemplateOutlet=\"captionTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultCaption>\n <h5 class=\"p-m-0\">{{ descriptor.title }}</h5>\n </ng-template>\n </ng-template>\n\n <ng-template pTemplate=\"header\">\n <tr *ngIf=\"!descriptor.hideHeader\">\n <th *ngIf=\"selectionEnabled\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <ng-container *ngFor=\"let col of descriptor.columns\">\n <th *ngIf=\"col.isSortEnabled\" [pSortableColumn]=\"col.property\">\n <div class=\"flex justify-content-between align-items-center\">\n {{ col.property | i18nProperty: descriptor.model | translate }}\n <p-sortIcon [field]=\"col.property\"></p-sortIcon>\n <mng-table-column-filter\n *ngIf=\"col.filterDescriptor && descriptor.filterDisplay === filterDisplayMenu\"\n class=\"ml-auto\"\n [display]=\"descriptor.filterDisplay\"\n [descriptor]=\"col.filterDescriptor\">\n </mng-table-column-filter>\n </div>\n </th>\n <th *ngIf=\"!col.isSortEnabled\">\n {{ col.property | i18nProperty: descriptor.model | translate }}\n <ng-container>\n <mng-table-column-filter\n *ngIf=\"col.filterDescriptor && descriptor.filterDisplay === filterDisplayMenu\"\n class=\"ml-auto\"\n [display]=\"descriptor.filterDisplay\"\n [descriptor]=\"col.filterDescriptor\">\n </mng-table-column-filter>\n </ng-container>\n </th>\n </ng-container>\n <th *ngIf=\"columnActionTemplate\"></th>\n </tr>\n <tr *ngIf=\"descriptor.filterDisplay === filterDisplayRow\">\n <th *ngFor=\"let col of descriptor.columns\">\n <div class=\"flex\" *ngIf=\"col.filterDescriptor\">\n <mng-table-column-filter [display]=\"descriptor.filterDisplay\" [descriptor]=\"col.filterDescriptor\"></mng-table-column-filter>\n </div>\n </th>\n <th *ngIf=\"columnActionTemplate\"></th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-item let-idx=\"rowIndex\">\n <tr [style.height.px]=\"descriptor.rowHeight\">\n <td *ngIf=\"selectionEnabled\">\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\n </td>\n <td *ngFor=\"let col of descriptor.columns\" (click)=\"onCellClick(col, item, idx)\" class=\"clickable\">\n <mng-table-column-value [descriptor]=\"col\" [item]=\"item\"></mng-table-column-value>\n </td>\n <td *ngIf=\"columnActionTemplate\" class=\"text-right\">\n <ng-container *ngTemplateOutlet=\"columnActionTemplate; context: {rowItem: item, rowIndex: idx}\"></ng-container>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"loadingbody\">\n <tr [style.height.px]=\"descriptor.rowHeight\">\n <td [attr.colspan]=\"descriptor.columns.length + (columnActionTemplate ? 1 : 0) + (selectionEnabled ? 1 : 0)\">\n <div class=\"loading-text\"></div>\n <p-skeleton [ngStyle]=\"{width: '100%'}\"></p-skeleton>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"emptymessage\">\n <tr [style.height.px]=\"rowHeight\">\n <td [attr.colspan]=\"descriptor.columns.length + (columnActionTemplate ? 1 : 0) + (selectionEnabled ? 1 : 0)\">\n {{ 'mngTable.noItems' | translate }}\n </td>\n </tr>\n </ng-template>\n </p-table>\n</div>\n" }]
276
277
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.TranslateService }, { type: i3.TableviewComponentService, decorators: [{
277
278
  type: Optional
278
279
  }] }]; }, propDecorators: { descriptor: [{
@@ -305,4 +306,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
305
306
  type: ViewChild,
306
307
  args: [Table]
307
308
  }] } });
308
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL3RhYmxldmlldy90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdGFibGV2aWV3L3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBRVosS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBR04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBTXZCLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDcEMsT0FBTyxFQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXBELE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ2pHLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRCxPQUFPLEVBQW1CLGdCQUFnQixFQUFFLGVBQWUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3pGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsc0JBQXNCLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFHcEUsSUFBTyxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO0FBQzVDLElBQU8sa0JBQWtCLEdBQUcsZUFB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RSxDQUFDO1NBQ2I7SUFDTCxDQUFDOzs4R0F2VFEsaUJBQWlCO2tHQUFqQixpQkFBaUIsdVpBdUJULG9CQUFvQix5RUFDMUIsS0FBSyxnRENsRXBCLHMvTEFnSEE7MkZEdEVhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDSSxXQUFXLG1CQUVKLHVCQUF1QixDQUFDLE1BQU07OzBCQTRFMUMsUUFBUTs0Q0FyRUcsVUFBVTtzQkFBekIsS0FBSztnQkFHVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLGNBQWM7c0JBQTdCLEtBQUs7Z0JBR1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQUdzQixnQkFBZ0I7c0JBQTNDLE1BQU07dUJBQUMsV0FBVztnQkFDUyxxQkFBcUI7c0JBQWhELE1BQU07dUJBQUMsV0FBVztnQkFDZSwyQkFBMkI7c0JBQTVELE1BQU07dUJBQUMsaUJBQWlCO2dCQUdxQixTQUFTO3NCQUF0RCxlQUFlO3VCQUFDLG9CQUFvQjtnQkFDWixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFBhcmFtcywgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtMYXp5TG9hZEV2ZW50LCBTb3J0TWV0YX0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHtGaWx0ZXJNZXRhZGF0YX0gZnJvbSAncHJpbWVuZy9hcGkvZmlsdGVybWV0YWRhdGEnO1xuaW1wb3J0IHtUYWJsZX0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5pbXBvcnQge09ic2VydmFibGUsIG9mLCBSZXBsYXlTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaW5hbGl6ZSwgZmlyc3QsIG1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge01lZGl1c1F1ZXJ5UGFyYW0sIE1lZGl1c1F1ZXJ5UGFyYW1CdWlsZGVyLCBNZWRpdXNRdWVyeVJlc3VsdH0gZnJvbSAnLi4vLi4vLi4vYXBpL21vZGVscyc7XG5pbXBvcnQge01lZGl1c1Jlc3RVdGlsfSBmcm9tICcuLi8uLi8uLi9hcGkvdXRpbHMnO1xuaW1wb3J0IHtJVGFibGVEYXRhUHJvdmlkZXJ9IGZyb20gJy4uLy4uLy4uL2RhdGEtcHJvdmlkZXJzJztcbmltcG9ydCB7Q29sdW1uRGVzY3JpcHRvciwgRmlsdGVyRGVzY3JpcHRvciwgVGFibGVEZXNjcmlwdG9yfSBmcm9tICcuLi8uLi8uLi9kZXNjcmlwdG9ycyc7XG5pbXBvcnQge01uZ1RlbXBsYXRlRGlyZWN0aXZlfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7VG9hc3RVdGlsfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQge01uZ1RhYmxlQ2VsbENsaWNrRXZlbnQsIE1uZ1RhYmxlTG9hZEV2ZW50fSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHtUYWJsZXZpZXdDb21wb25lbnRTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5cbmltcG9ydCBUeXBlRW51bSA9IEZpbHRlckRlc2NyaXB0b3IuVHlwZUVudW07XG5pbXBvcnQgUGFnaW5hdGlvbk1vZGVFbnVtID0gVGFibGVEZXNjcmlwdG9yLlBhZ2luYXRpb25Nb2RlRW51bTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtbmctdGFibGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTW5nVGFibGVDb21wb25lbnQ8VCwgUz4gaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIHJlYWRvbmx5IGZpbHRlckRpc3BsYXlSb3c6IFRhYmxlRGVzY3JpcHRvci5GaWx0ZXJEaXNwbGF5RW51bSA9IFRhYmxlRGVzY3JpcHRvci5GaWx0ZXJEaXNwbGF5RW51bS5Sb3c7XG4gICAgcHVibGljIHJlYWRvbmx5IGZpbHRlckRpc3BsYXlNZW51OiBUYWJsZURlc2NyaXB0b3IuRmlsdGVyRGlzcGxheUVudW0gPSBUYWJsZURlc2NyaXB0b3IuRmlsdGVyRGlzcGxheUVudW0uTWVudTtcblxuICAgIC8vIG1ldGFkYXRhIGlucHV0XG4gICAgQElucHV0KCkgcHVibGljIGRlc2NyaXB0b3IhOiBUYWJsZURlc2NyaXB0b3I8VD47XG5cbiAgICAvLyBkYXRhIHNvdXJjZSBpbnB1dHNcbiAgICBASW5wdXQoKSBwdWJsaWMgaXRlbXM/OiBPYnNlcnZhYmxlPEFycmF5PFQ+PiB8IEFycmF5PFQ+O1xuICAgIEBJbnB1dCgpIHB1YmxpYyBxdWVyeVJlc3VsdD86IE9ic2VydmFibGU8TWVkaXVzUXVlcnlSZXN1bHQ8VD4+IHwgTWVkaXVzUXVlcnlSZXN1bHQ8VD47XG4gICAgQElucHV0KCkgcHVibGljIGxvYWRpbmc/OiBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgYm9vbGVhbjtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGF0YVByb3ZpZGVyPzogSVRhYmxlRGF0YVByb3ZpZGVyPFQsIGFueT47XG4gICAgQElucHV0KCkgcHVibGljIHVzZVF1ZXJ5UGFyYW1zID0gZmFsc2U7XG5cbiAgICAvLyBleHRyYSBmZWF0dXJlcyBpbnB1dFxuICAgIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3Rpb25FbmFibGVkID0gZmFsc2U7XG5cbiAgICAvLyBldmVudCBvdXRwdXRzXG4gICAgQE91dHB1dCgndGFibGVMb2FkJykgcHVibGljIGxvYWRFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPE1uZ1RhYmxlTG9hZEV2ZW50PigpO1xuICAgIEBPdXRwdXQoJ2NlbGxDbGljaycpIHB1YmxpYyBjZWxsQ2xpY2tFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPE1uZ1RhYmxlQ2VsbENsaWNrRXZlbnQ8VD4+KCk7XG4gICAgQE91dHB1dCgnc2VsZWN0aW9uQ2hhbmdlJykgcHVibGljIHNlbGVjdGlvbkNoYW5nZUV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8VD4+KCk7XG5cbiAgICAvLyBjb250ZW50IGFuZCB2aWV3IHF1ZXJpZXNcbiAgICBAQ29udGVudENoaWxkcmVuKE1uZ1RlbXBsYXRlRGlyZWN0aXZlKSBwdWJsaWMgdGVtcGxhdGVzITogUXVlcnlMaXN0PE1uZ1RlbXBsYXRlRGlyZWN0aXZlPjtcbiAgICBAVmlld0NoaWxkKFRhYmxlKSBwdWJsaWMgcHJpbWVUYWJsZSE6IFRhYmxlO1xuXG4gICAgLy8gdGVtcGxhdGVzXG4gICAgcHVibGljIGNhcHRpb25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcHVibGljIGNvbHVtbkFjdGlvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8vIGRhdGEgcHJvdmlkZXIgYW5kIGl0ZW1zXG4gICAgcHVibGljIHVzZURhdGFQcm92aWRlciA9IGZhbHNlO1xuICAgIHB1YmxpYyB1c2VRdWVyeVBhcmFtc0luaXRpYWxpemVkID0gZmFsc2U7XG4gICAgcHVibGljIHF1ZXJ5UmVzdWx0JD86IE9ic2VydmFibGU8TWVkaXVzUXVlcnlSZXN1bHQ8VD4+O1xuICAgIHB1YmxpYyBsb2FkaW5nJD86IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgcHVibGljIGRhdGFQcm92aWRlckluZmluaXRlU2Nyb2xsSXRlbXM6IEFycmF5PFQ+ID0gW107XG5cbiAgICAvLyBwYWdpbmF0aW9uLCBzb3J0IGFuZCBmaWx0ZXJzXG4gICAgcHVibGljIHJlYWRvbmx5IHJvd3NQZXJQYWdlT3B0aW9ucyA9IFsyNSwgNTAsIDEwMF07XG4gICAgcHVibGljIHJvd3MgPSB0aGlzLnJvd3NQZXJQYWdlT3B0aW9uc1swXTtcbiAgICBwdWJsaWMgb2Zmc2V0ID0gMDtcbiAgICBwdWJsaWMgbXVsdGlTb3J0TWV0YTogU29ydE1ldGFbXSB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyBmaWx0ZXJNZXRhZGF0YToge1tzOiBzdHJpbmddOiBGaWx0ZXJNZXRhZGF0YSB8IEZpbHRlck1ldGFkYXRhW119ID0ge307XG5cbiAgICAvLyBpbmZpbml0ZSBzY3JvbGxcbiAgICBwdWJsaWMgaW5maW5pdGVTY3JvbGwgPSBmYWxzZTtcbiAgICBwdWJsaWMgc2Nyb2xsSGVpZ2h0OiAnZmxleCcgfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgcm93SGVpZ2h0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8vIHNlbGVjdGlvblxuICAgIHB1YmxpYyBzZWxlY3Rpb246IEFycmF5PFQ+ID0gW107XG5cbiAgICAvLyBkYXRhIHByb3ZpZGVyXG4gICAgcHJpdmF0ZSBkYXRhUHJvdmlkZXJTZXJ2aWNlOiBhbnkgPSBudWxsO1xuICAgIHByaXZhdGUgZGF0YVByb3ZpZGVyUXVlcnlSZXN1bHRTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8TWVkaXVzUXVlcnlSZXN1bHQ8VD4+KDEpO1xuICAgIHByaXZhdGUgZGF0YVByb3ZpZGVyTG9hZGluZ1N1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcbiAgICBwcml2YXRlIGRhdGFQcm92aWRlckxhdGVzdExhenlMb2FkRXZlbnQ/OiBMYXp5TG9hZEV2ZW50O1xuICAgIHByaXZhdGUgZGF0YVByb3ZpZGVyTGF0ZXN0TGF6eUxvYWRFdmVudFZlcnNpb24gPSAwO1xuICAgIHByaXZhdGUgZGF0YVByb3ZpZGVyTGF0ZXN0UXVlcnlQYXJhbT86IE1lZGl1c1F1ZXJ5UGFyYW07XG4gICAgcHJpdmF0ZSBkYXRhUHJvdmlkZXJMYXRlc3RRdWVyeVBhcmFtVmVyc2lvbiA9IDA7XG4gICAgcHJpdmF0ZSBkYXRhUHJvdmlkZXJTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgICAvLyBmaWx0ZXIsIHNvcnRcbiAgICBwcml2YXRlIGlzRmlsdGVyQ2hhbmdlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgaXNTb3J0Q2hhbmdlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgZmlsdGVyRGVzY3JpcHRvcnM6IEFycmF5PEZpbHRlckRlc2NyaXB0b3I8YW55Pj4gPSBbXTtcblxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHRhYmxldmlld1NlcnZpY2U6IFRhYmxldmlld0NvbXBvbmVudFNlcnZpY2U8VCwgUz5cbiAgICApIHt9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyRGVzY3JpcHRvcnMgPSB0aGlzLmRlc2NyaXB0b3IuY29sdW1ucy5maWx0ZXIoYyA9PiB0eXBlb2YgYy5maWx0ZXJEZXNjcmlwdG9yICE9PSAndW5kZWZpbmVkJykubWFwKGMgPT4gYy5maWx0ZXJEZXNjcmlwdG9yISk7XG5cbiAgICAgICAgaWYgKHRoaXMuZGVzY3JpcHRvci5wYWdpbmF0aW9uTW9kZSA9PT0gUGFnaW5hdGlvbk1vZGVFbnVtLkluZmluaXRlU2Nyb2xsKSB7XG4gICAgICAgICAgICB0aGlzLmluZmluaXRlU2Nyb2xsID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsSGVpZ2h0ID0gJ2ZsZXgnO1xuICAgICAgICAgICAgdGhpcy5yb3dIZWlnaHQgPSB0aGlzLmRlc2NyaXB0b3Iucm93SGVpZ2h0O1xuICAgICAgICAgICAgdGhpcy51c2VRdWVyeVBhcmFtcyA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY2hlY2sgaWYgZGF0YSBwcm92aWRlciBpcyBzdXBwbGllZCwgaWYgaXMsIHVzZSBpdCBwcmltYXJpbHlcbiAgICAgICAgaWYgKHRoaXMuZGF0YVByb3ZpZGVyKSB7XG4gICAgICAgICAgICAvLyBtYXAgc3ViamVjdHMgdG8gb2JzZXJ2YWJsZXMgYW5kIGluaXRpYXRlIGRhdGFcbiAgICAgICAgICAgIHRoaXMudXNlRGF0YVByb3ZpZGVyID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMucXVlcnlSZXN1bHQkID0gdGhpcy5kYXRhUHJvdmlkZXJRdWVyeVJlc3VsdFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmckID0gdGhpcy5kYXRhUHJvdmlkZXJMb2FkaW5nU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICAgICAgICAgIGNvbnN0IGVtcHR5UXVlcnlSZXN1bHQgPSBuZXcgTWVkaXVzUXVlcnlSZXN1bHQ8VD4oKTtcbiAgICAgICAgICAgIGVtcHR5UXVlcnlSZXN1bHQucGFnZURhdGEgPSBbXTtcbiAgICAgICAgICAgIGVtcHR5UXVlcnlSZXN1bHQuYWxsRGF0YUNvdW50ID0gMDtcbiAgICAgICAgICAgIHRoaXMuZGF0YVByb3ZpZGVyTG9hZGluZ1N1YmplY3QubmV4dChmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLmRhdGFQcm92aWRlclF1ZXJ5UmVzdWx0U3ViamVjdC5uZXh0KGVtcHR5UXVlcnlSZXN1bHQpO1xuXG4gICAgICAgICAgICAvLyBpbmplY3Qgc2VydmljZVxuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YVByb3ZpZGVyLnNlcnZpY2VUeXBlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhUHJvdmlkZXJTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8YW55Pih0aGlzLmRhdGFQcm92aWRlci5zZXJ2aWNlVHlwZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBpZiBxdWVyeSByZXN1bHQgaXMgcHJvdmlkZWQsIHVzZSBpdCBhcyBzZWNvbmRhcnkgc291cmNlIG9yIGVsc2UgdHJ5IHRvIHVzZSBpdGVtc1xuICAgICAgICAgICAgaWYgKHRoaXMucXVlcnlSZXN1bHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnF1ZXJ5UmVzdWx0JCA9IHRoaXMucXVlcnlSZXN1bHQgaW5zdGFuY2VvZiBPYnNlcnZhYmxlID8gdGhpcy5xdWVyeVJlc3VsdCA6IG9mKHRoaXMucXVlcnlSZXN1bHQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5xdWVyeVJlc3VsdCAmJiB0aGlzLml0ZW1zKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5xdWVyeVJlc3VsdCQgPSAodGhpcy5pdGVtcyBpbnN0YW5jZW9mIE9ic2VydmFibGUgPyB0aGlzLml0ZW1zIDogb2YodGhpcy5pdGVtcykpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIC8vIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCh2MSwgdjIpID0+IHYxLmxlbmd0aCA9PT0gdjIubGVuZ3RoICYmXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICB2MS5ldmVyeSgodjFpLCBpZHgpID0+IHYxaVt0aGlzLmRlc2NyaXB0b3IuZGF0YUtleVByb3BlcnR5XSA9PT0gdjJbaWR4XVt0aGlzLmRlc2NyaXB0b3IuZGF0YUtleVByb3BlcnR5XSkpLFxuICAgICAgICAgICAgICAgICAgICBtYXAoaXRlbXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcXVlcnlSZXN1bHQgPSBuZXcgTWVkaXVzUXVlcnlSZXN1bHQ8VD4oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5UmVzdWx0LnBhZ2VEYXRhID0gaXRlbXM7XG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVJlc3VsdC5hbGxEYXRhQ291bnQgPSBpdGVtcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcXVlcnlSZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5sb2FkaW5nICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyQgPSB0aGlzLmxvYWRpbmcgaW5zdGFuY2VvZiBPYnNlcnZhYmxlID8gdGhpcy5sb2FkaW5nIDogb2YodGhpcy5sb2FkaW5nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnVzZVF1ZXJ5UGFyYW1zKSB7XG4gICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZShxcCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkVGFibGVGcm9tUm91dGVVcGRhdGUocXApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJzY3JpcHRpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZSBkZWZhdWx0IHNvcnQgaWYgcHJlc2VudFxuICAgICAgICAgICAgY29uc3QgZGVmYXVsdFNvcnQgPSB0aGlzLmdldERlZmF1bHRTb3J0TWV0YSgpO1xuICAgICAgICAgICAgaWYgKGRlZmF1bHRTb3J0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLm11bHRpU29ydE1ldGEgPSBkZWZhdWx0U29ydDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMudGVtcGxhdGVzLmZvckVhY2godGVtcGxhdGUgPT4ge1xuICAgICAgICAgICAgc3dpdGNoICh0ZW1wbGF0ZS5nZXRUeXBlKCkpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdjYXB0aW9uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYXB0aW9uVGVtcGxhdGUgPSB0ZW1wbGF0ZS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnY29sdW1uQWN0aW9uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2x1bW5BY3Rpb25UZW1wbGF0ZSA9IHRlbXBsYXRlLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbG9hZChlbWl0RXZlbnQgPSBmYWxzZSwgcmVzZXRQYXJhbXMgPSBmYWxzZSkge1xuICAgICAgICB0aGlzLmxvYWRUYWJsZVdpdGhEYXRhUHJvdmlkZXIoXG4gICAgICAgICAgICByZXNldFBhcmFtcyA/IE1lZGl1c1F1ZXJ5UGFyYW1CdWlsZGVyLmNyZWF0ZSh0aGlzLnJvd3NQZXJQYWdlT3B0aW9uc1swXSwgMCkuYnVpbGQoKSA6IHRoaXMuZGF0YVByb3ZpZGVyTGF0ZXN0UXVlcnlQYXJhbSA/PyBuZXcgTWVkaXVzUXVlcnlQYXJhbSgpLFxuICAgICAgICAgICAgZW1pdEV2ZW50XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVGFibGVMYXp5TG9hZChldmVudDogTGF6eUxvYWRFdmVudCkge1xuICAgICAgICB0aGlzLmRhdGFQcm92aWRlckxhdGVzdExhenlMb2FkRXZlbnQgPSBldmVudDtcbiAgICAgICAgdGhpcy5kYXRhUHJvdmlkZXJMYXRlc3RMYXp5TG9hZEV2ZW50VmVyc2lvbisrO1xuXG4gICAgICAgIGlmICh0aGlzLnVzZVF1ZXJ5UGFyYW1zKSB7XG4gICAgICAgICAgICBpZiAoIWV2ZW50Lm11bHRpU29ydE1ldGEgfHwgZXZlbnQubXVsdGlTb3J0TWV0YS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAvLyBhZGQgZGVmYXVsdCBzb3J0IG1ldGEgdG8gZXZlbnQgaWYgbm90IG11bHRpc29ydCBtZXRhIGlzIHByZXNlbnRcbiAgICAgICAgICAgICAgICBldmVudC5tdWx0aVNvcnRNZXRhID0gdGhpcy5nZXREZWZhdWx0U29ydE1ldGEoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICAgICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICAgICAgICByZXBsYWNlVXJsOiB0cnVlLFxuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiBNZWRpdXNSZXN0VXRpbC5mcm9tUHJpbWVMYXp5TG9hZEV2ZW50VG9Bbmd1bGFyUXVlcnlQYXJhbXMoZXZlbnQsIHRoaXMucm93c1BlclBhZ2VPcHRpb25zWzBdKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBtZWRpdXNRdWVyeVBhcmFtcyA9IGV2ZW50ID8gTWVkaXVzUmVzdFV0aWwuZnJvbVByaW1lTGF6eUxvYWRFdmVudFRvTWVkaXVzUXVlcnlQYXJhbXMoZXZlbnQpIDogbmV3IE1lZGl1c1F1ZXJ5UGFyYW0oKTtcbiAgICAgICAgICAgIHRoaXMubG9hZFRhYmxlV2l0aERhdGFQcm92aWRlcihtZWRpdXNRdWVyeVBhcmFtcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgcHVibGljIG9uVGFibGVTb3J0KGV2ZW50OiBhbnkpIHtcbiAgICAgICAgdGhpcy5pc1NvcnRDaGFuZ2VkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgcHVibGljIG9uVGFibGVGaWx0ZXIoZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLmlzRmlsdGVyQ2hhbmdlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2VsbENsaWNrKGNvbDogQ29sdW1uRGVzY3JpcHRvcjxhbnksIFQ+LCBpdGVtOiBULCBpZHg6IG51bWJlcikge1xuICAgICAgICBjb25zdCBtbmdFdmVudCA9IG5ldyBNbmdUYWJsZUNlbGxDbGlja0V2ZW50PFQ+KGNvbCwgaXRlbSwgaWR4KTtcbiAgICAgICAgdGhpcy5jZWxsQ2xpY2tFdmVudEVtaXR0ZXIubmV4dChtbmdFdmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uU2VsZWN0aW9uQ2hhbmdlKGV2ZW50OiBBcnJheTxUPikge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZUV2ZW50RW1pdHRlci5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRUYWJsZVdpdGhEYXRhUHJvdmlkZXIocXVlcnlQYXJhbTogTWVkaXVzUXVlcnlQYXJhbSB8IG51bGwgPSBudWxsLCBlbWl0RXZlbnQgPSB0cnVlKSB7XG4gICAgICAgIGlmICghdGhpcy51c2VEYXRhUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kYXRhUHJvdmlkZXJTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YVByb3ZpZGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRhdGFQcm92aWRlckxvYWRpbmdTdWJqZWN0Lm5leHQodHJ1ZSk7XG5cbiAgICAgICAgaWYgKCFxdWVyeVBhcmFtKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtID0gTWVkaXVzUXVlcnlQYXJhbUJ1aWxkZXIuY3JlYXRlKHRoaXMucm93c1BlclBhZ2VPcHRpb25zWzBdKS5idWlsZCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGF0YVByb3ZpZGVyTGF0ZXN0UXVlcnlQYXJhbSA9IHF1ZXJ5UGFyYW07XG4gICAgICAgIHRoaXMuZGF0YVByb3ZpZGVyTGF0ZXN0UXVlcnlQYXJhbVZlcnNpb24rKztcblxuICAgICAgICB0aGlzLmRhdGFQcm92aWRlclN1YnNjcmlwdGlvbiA9IHRoaXMuZGF0YVByb3ZpZGVyXG4gICAgICAgICAgICA/LmdldEFsbChxdWVyeVBhcmFtLCB0aGlzLmRhdGFQcm92aWRlclNlcnZpY2UpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuZGF0YVByb3ZpZGVyTG9hZGluZ1N1YmplY3QubmV4dChmYWxzZSkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmluZmluaXRlU2Nyb2xsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0ZpbHRlckNoYW5nZWQgfHwgdGhpcy5pc1NvcnRDaGFuZ2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhUHJvdmlkZXJJbmZpbml0ZVNjcm9sbEl0ZW1zID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFQcm92aWRlckluZmluaXRlU2Nyb2xsSXRlbXMuc3BsaWNlKHF1ZXJ5UGFyYW0hLml0ZW1zT2Zmc2V0ID8/IDAsIHF1ZXJ5UGFyYW0hLml0ZW1zUGVyUGFnZSA/PyB0aGlzLnJvd3MsIC4uLihyZXMucGFnZURhdGEgPz8gW10pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YVByb3ZpZGVySW5maW5pdGVTY3JvbGxJdGVtcyA9IFsuLi50aGlzLmRhdGFQcm92aWRlckluZmluaXRlU2Nyb2xsSXRlbXNdO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhUHJvdmlkZXJRdWVyeVJlc3VsdFN1YmplY3QubmV4dChyZXMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNGaWx0ZXJDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTb3J0Q2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgVG9hc3RVdGlsLnRhYmxlTm90aWZpY2F0aW9uRXJyb3IodGhpcy50cmFuc2xhdGUsIHRoaXMuZGVzY3JpcHRvciwgZXJyLCB0aGlzLnRhYmxldmlld1NlcnZpY2UpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbXB0eVF1ZXJ5UmVzdWx0ID0gbmV3IE1lZGl1c1F1ZXJ5UmVzdWx0PFQ+KCk7XG4gICAgICAgICAgICAgICAgICAgIGVtcHR5UXVlcnlSZXN1bHQucGFnZURhdGEgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgZW1wdHlRdWVyeVJlc3VsdC5hbGxEYXRhQ291bnQgPSAwO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFQcm92aWRlclF1ZXJ5UmVzdWx0U3ViamVjdC5uZXh0KGVtcHR5UXVlcnlSZXN1bHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgaWYgKGVtaXRFdmVudCkge1xuICAgICAgICAgICAgY29uc3QgbW5nRXZlbnQgPSBuZXcgTW5nVGFibGVMb2FkRXZlbnQoKTtcbiAgICAgICAgICAgIG1uZ0V2ZW50Lm9yaWdpbmFsRXZlbnQgPSB0aGlzLmRhdGFQcm92aWRlckxhdGVzdExhenlMb2FkRXZlbnQgPz8gdW5kZWZpbmVkO1xuICAgICAgICAgICAgbW5nRXZlbnQucXVlcnlQYXJhbSA9IHF1ZXJ5UGFyYW07XG4gICAgICAgICAgICB0aGlzLmxvYWRFdmVudEVtaXR0ZXIubmV4dChtbmdFdmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRUYWJsZUZyb21Sb3V0ZVVwZGF0ZShwYXJhbXM6IFBhcmFtcykge1xuICAgICAgICBjb25zdCBtZWRpdXNRdWVyeVBhcmFtID0gTWVkaXVzUmVzdFV0aWwuZnJvbUFuZ3VsYXJRdWVyeVBhcmFtc1RvTWVkaXVzUXVlcnlQYXJhbXMocGFyYW1zLCB0aGlzLmZpbHRlckRlc2NyaXB0b3JzLCB0aGlzLnJvd3NQZXJQYWdlT3B0aW9uc1swXSk7XG4gICAgICAgIGlmICh0aGlzLmRhdGFQcm92aWRlckxhdGVzdExhenlMb2FkRXZlbnRWZXJzaW9uIDwgdGhpcy5kYXRhUHJvdmlkZXJMYXRlc3RRdWVyeVBhcmFtVmVyc2lvbiArIDEpIHtcbiAgICAgICAgICAgIC8vIHVwZGF0ZSBvbmx5IGlmIG5ldyB2ZXJzaW9uIGZyb20gcXVlcnkgcGFyYW1zIHdpbGwgYmUgaGlnaGVyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVByaW1lU29ydEFuZEZpbHRlcihtZWRpdXNRdWVyeVBhcmFtKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVzZVF1ZXJ5UGFyYW1zSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmxvYWRUYWJsZVdpdGhEYXRhUHJvdmlkZXIobWVkaXVzUXVlcnlQYXJhbSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVQcmltZVNvcnRBbmRGaWx0ZXIobWVkaXVzUXVlcnlQYXJhbTogTWVkaXVzUXVlcnlQYXJhbSkge1xuICAgICAgICBjb25zdCBwcmltZVNvcnRNZXRhOiBTb3J0TWV0YVtdID0gW107XG4gICAgICAgIGNvbnN0IHByaW1lRmlsdGVyTWV0YToge1tzOiBzdHJpbmddOiBGaWx0ZXJNZXRhZGF0YSB8IEZpbHRlck1ldGFkYXRhW119ID0ge307XG5cbiAgICAgICAgdGhpcy5maWx0ZXJEZXNjcmlwdG9ycy5mb3JFYWNoKGYgPT4ge1xuICAgICAgICAgICAgcHJpbWVGaWx0ZXJNZXRhW2YucHJvcGVydHldID0ge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgICAgICAgICAgIG1hdGNoTW9kZTogZi5maWx0ZXJUeXBlID09PSBUeXBlRW51bS5TdHJpbmcgPyAnY29udGFpbnMnIDogJ2VxdWFscydcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIG1lZGl1c1F1ZXJ5UGFyYW0/LnNvcnRQcm9wZXJ0eT8uZm9yRWFjaCgocywgaWR4KSA9PiB7XG4gICAgICAgICAgICBwcmltZVNvcnRNZXRhLnB1c2goe1xuICAgICAgICAgICAgICAgIGZpZWxkOiBzLFxuICAgICAgICAgICAgICAgIG9yZGVyOiBtZWRpdXNRdWVyeVBhcmFtPy5zb3J0QXNjPy5baWR4XSA/PyB0cnVlID8gMSA6IC0xXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbWVkaXVzUXVlcnlQYXJhbT8uZmlsdGVyUGFyYW1zPy5mb3JFYWNoKGYgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGVzY3JpcHRvciA9IHRoaXMuZmlsdGVyRGVzY3JpcHRvcnMuZmluZChmZCA9PiBmZC5maWx0ZXJQcm9wZXJ0eSA9PT0gZi5wcm9wZXJ0eSB8fCBmZC5wcm9wZXJ0eSA9PT0gZi5wcm9wZXJ0eSk7XG4gICAgICAgICAgICBjb25zdCBvcGVyYXRvciA9IE1lZGl1c1Jlc3RVdGlsLm1hdGNoTW9kZU1hcHBpbmcuZmluZChtYXBwaW5nID0+IG1hcHBpbmdbMl0gPT09IGYuZmlsdGVyTWF0Y2hUeXBlKTtcbiAgICAgICAgICAgIGlmIChkZXNjcmlwdG9yICYmIG9wZXJhdG9yKSB7XG4gICAgICAgICAgICAgICAgcHJpbWVGaWx0ZXJNZXRhW2Rlc2NyaXB0b3IucHJvcGVydHldID0ge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZi5maWx0ZXJWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgbWF0Y2hNb2RlOiBvcGVyYXRvclswXVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubXVsdGlTb3J0TWV0YSA9IHByaW1lU29ydE1ldGE7XG4gICAgICAgIHRoaXMuZmlsdGVyTWV0YWRhdGEgPSBwcmltZUZpbHRlck1ldGE7XG4gICAgICAgIHRoaXMucm93cyA9IG1lZGl1c1F1ZXJ5UGFyYW0/Lml0ZW1zUGVyUGFnZSA/PyB0aGlzLnJvd3NQZXJQYWdlT3B0aW9uc1swXTtcbiAgICAgICAgdGhpcy5vZmZzZXQgPSBtZWRpdXNRdWVyeVBhcmFtPy5pdGVtc09mZnNldCA/PyAwO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGVmYXVsdFNvcnRNZXRhKCk6IFNvcnRNZXRhW10ge1xuICAgICAgICBpZiAodGhpcy5kZXNjcmlwdG9yLmhhc0RlZmF1bHRTb3J0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kZXNjcmlwdG9yLmRlZmF1bHRTb3J0UHJvcGVydHkubWFwKFxuICAgICAgICAgICAgICAgIChwLCBpZHgpID0+XG4gICAgICAgICAgICAgICAgICAgIDxTb3J0TWV0YT57XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZDogcCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyOiB0aGlzLmRlc2NyaXB0b3IuZGVmYXVsdFNvcnRBc2NbaWR4XSA/IDEgOiAtMVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBbc3R5bGUuaGVpZ2h0XT1cInNjcm9sbEhlaWdodCA9PT0gJ2ZsZXgnID8gJ2NhbGMoMTAwdmggLSAnICsgZGVzY3JpcHRvci50YWJsZUZ1bGxIZWlnaHRPZmZzZXQgKyAncHgpJyA6IG51bGxcIj5cbiAgICA8IS0tIE1VU1QgTk9UIHVzZSBvYnNlcnZhYmxlIGZvciB2YWx1ZSB3aGVuIHVzaW5nIHZpcnR1YWwgc2Nyb2xsIC0gZG9lcyBub3Qgd29yayBmb3Igc29tZSByZWFzb24gLS0+XG4gICAgPHAtdGFibGVcbiAgICAgICAgKm5nSWY9XCIhdXNlUXVlcnlQYXJhbXMgfHwgdXNlUXVlcnlQYXJhbXNJbml0aWFsaXplZFwiXG4gICAgICAgIFt2YWx1ZV09XCJpbmZpbml0ZVNjcm9sbCA/IGRhdGFQcm92aWRlckluZmluaXRlU2Nyb2xsSXRlbXMgOiAocXVlcnlSZXN1bHQkIHwgYXN5bmMpPy5wYWdlRGF0YSA/PyBbXVwiXG4gICAgICAgIFtkYXRhS2V5XT1cIiRhbnkoZGVzY3JpcHRvci5kYXRhS2V5UHJvcGVydHkpXCJcbiAgICAgICAgW2xhenldPVwidXNlRGF0YVByb3ZpZGVyXCJcbiAgICAgICAgW2xvYWRpbmddPVwiKGxvYWRpbmckIHwgYXN5bmMpID8/IGZhbHNlXCJcbiAgICAgICAgW3BhZ2luYXRvcl09XCJ1c2VEYXRhUHJvdmlkZXIgJiYgIWluZmluaXRlU2Nyb2xsXCJcbiAgICAgICAgW3Jvd3NdPVwiJGFueShpbmZpbml0ZVNjcm9sbCA/IDIwIDogcm93cylcIlxuICAgICAgICBbZmlyc3RdPVwiJGFueShpbmZpbml0ZVNjcm9sbCA/IDAgOiBvZmZzZXQpXCJcbiAgICAgICAgW3RvdGFsUmVjb3Jkc109XCIkYW55KGluZmluaXRlU2Nyb2xsID8gbnVsbCA6IChxdWVyeVJlc3VsdCQgfCBhc3luYyk/LmFsbERhdGFDb3VudCA/PyAwKVwiXG4gICAgICAgIFtyb3dzUGVyUGFnZU9wdGlvbnNdPVwiJGFueShpbmZpbml0ZVNjcm9sbCA/IG51bGwgOiByb3dzUGVyUGFnZU9wdGlvbnMpXCJcbiAgICAgICAgW3Nob3dDdXJyZW50UGFnZVJlcG9ydF09XCIhaW5maW5pdGVTY3JvbGxcIlxuICAgICAgICBbY3VycmVudFBhZ2VSZXBvcnRUZW1wbGF0ZV09XCInbW5nVGFibGUucGFnaW5hdGlvbk1zZycgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbbXVsdGlTb3J0TWV0YV09XCIkYW55KG11bHRpU29ydE1ldGEpXCJcbiAgICAgICAgW2ZpbHRlcnNdPVwiZmlsdGVyTWV0YWRhdGFcIlxuICAgICAgICBbKHNlbGVjdGlvbildPVwic2VsZWN0aW9uXCJcbiAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW3Njcm9sbGFibGVdPVwiaW5maW5pdGVTY3JvbGxcIlxuICAgICAgICBbdmlydHVhbFNjcm9sbF09XCJpbmZpbml0ZVNjcm9sbFwiXG4gICAgICAgIFt2aXJ0dWFsUm93SGVpZ2h0XT1cIiRhbnkocm93SGVpZ2h0KVwiXG4gICAgICAgIFtzY3JvbGxIZWlnaHRdPVwiJGFueShzY3JvbGxIZWlnaHQpXCJcbiAgICAgICAgW3Jvd0hvdmVyXT1cInRydWVcIlxuICAgICAgICAob25MYXp5TG9hZCk9XCJvblRhYmxlTGF6eUxvYWQoJGV2ZW50KVwiXG4gICAgICAgIChvblNvcnQpPVwib25UYWJsZVNvcnQoJGV2ZW50KVwiXG4gICAgICAgIChvbkZpbHRlcik9XCJvblRhYmxlRmlsdGVyKCRldmVudClcIlxuICAgICAgICBzb3J0TW9kZT1cIm11bHRpcGxlXCJcbiAgICAgICAgcmVzcG9uc2l2ZUxheW91dD1cInNjcm9sbFwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJjYXB0aW9uVGVtcGxhdGUgfHwgZGVzY3JpcHRvci50aXRsZVwiIHBUZW1wbGF0ZT1cImNhcHRpb25cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYXB0aW9uVGVtcGxhdGU7IGVsc2UgZGVmYXVsdENhcHRpb25cIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FwdGlvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdENhcHRpb24+XG4gICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwicC1tLTBcIj57eyBkZXNjcmlwdG9yLnRpdGxlIH19PC9oNT5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgIDx0aCAqbmdJZj1cInNlbGVjdGlvbkVuYWJsZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAtdGFibGVIZWFkZXJDaGVja2JveD48L3AtdGFibGVIZWFkZXJDaGVja2JveD5cbiAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbCBvZiBkZXNjcmlwdG9yLmNvbHVtbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRoICpuZ0lmPVwiY29sLmlzU29ydEVuYWJsZWRcIiBbcFNvcnRhYmxlQ29sdW1uXT1cImNvbC5wcm9wZXJ0eVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGVzY3JpcHRvci5tb2RlbC50eXBlTmFtZSArICcucHJvcGVydGllcy4nICsgY29sLnByb3BlcnR5IHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtc29ydEljb24gW2ZpZWxkXT1cImNvbC5wcm9wZXJ0eVwiPjwvcC1zb3J0SWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW5nLXRhYmxlLWNvbHVtbi1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb2wuZmlsdGVyRGVzY3JpcHRvciAmJiBkZXNjcmlwdG9yLmZpbHRlckRpc3BsYXkgPT09IGZpbHRlckRpc3BsYXlNZW51XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtbC1hdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc3BsYXldPVwiZGVzY3JpcHRvci5maWx0ZXJEaXNwbGF5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rlc2NyaXB0b3JdPVwiY29sLmZpbHRlckRlc2NyaXB0b3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21uZy10YWJsZS1jb2x1bW4tZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDx0aCAqbmdJZj1cIiFjb2wuaXNTb3J0RW5hYmxlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZGVzY3JpcHRvci5tb2RlbC50eXBlTmFtZSArICcucHJvcGVydGllcy4nICsgY29sLnByb3BlcnR5IHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtbmctdGFibGUtY29sdW1uLWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbC5maWx0ZXJEZXNjcmlwdG9yICYmIGRlc2NyaXB0b3IuZmlsdGVyRGlzcGxheSA9PT0gZmlsdGVyRGlzcGxheU1lbnVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1sLWF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzcGxheV09XCJkZXNjcmlwdG9yLmZpbHRlckRpc3BsYXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVzY3JpcHRvcl09XCJjb2wuZmlsdGVyRGVzY3JpcHRvclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbW5nLXRhYmxlLWNvbHVtbi1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8dGggKm5nSWY9XCJjb2x1bW5BY3Rpb25UZW1wbGF0ZVwiPjwvdGg+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgPHRyICpuZ0lmPVwiZGVzY3JpcHRvci5maWx0ZXJEaXNwbGF5ID09PSBmaWx0ZXJEaXNwbGF5Um93XCI+XG4gICAgICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2wgb2YgZGVzY3JpcHRvci5jb2x1bW5zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4XCIgKm5nSWY9XCJjb2wuZmlsdGVyRGVzY3JpcHRvclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1uZy10YWJsZS1jb2x1bW4tZmlsdGVyIFtkaXNwbGF5XT1cImRlc2NyaXB0b3IuZmlsdGVyRGlzcGxheVwiIFtkZXNjcmlwdG9yXT1cImNvbC5maWx0ZXJEZXNjcmlwdG9yXCI+PC9tbmctdGFibGUtY29sdW1uLWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICA8dGggKm5nSWY9XCJjb2x1bW5BY3Rpb25UZW1wbGF0ZVwiPjwvdGg+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWl0ZW0gbGV0LWlkeD1cInJvd0luZGV4XCI+XG4gICAgICAgICAgICA8dHIgW3N0eWxlLmhlaWdodC5weF09XCJkZXNjcmlwdG9yLnJvd0hlaWdodFwiPlxuICAgICAgICAgICAgICAgIDx0ZCAqbmdJZj1cInNlbGVjdGlvbkVuYWJsZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAtdGFibGVDaGVja2JveCBbdmFsdWVdPVwiaXRlbVwiPjwvcC10YWJsZUNoZWNrYm94PlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBjb2wgb2YgZGVzY3JpcHRvci5jb2x1bW5zXCIgKGNsaWNrKT1cIm9uQ2VsbENsaWNrKGNvbCwgaXRlbSwgaWR4KVwiIGNsYXNzPVwiY2xpY2thYmxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtbmctdGFibGUtY29sdW1uLXZhbHVlIFtkZXNjcmlwdG9yXT1cImNvbFwiIFtpdGVtXT1cIml0ZW1cIj48L21uZy10YWJsZS1jb2x1bW4tdmFsdWU+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgKm5nSWY9XCJjb2x1bW5BY3Rpb25UZW1wbGF0ZVwiIGNsYXNzPVwidGV4dC1yaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uQWN0aW9uVGVtcGxhdGU7IGNvbnRleHQ6IHtyb3dJdGVtOiBpdGVtLCByb3dJbmRleDogaWR4fVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJsb2FkaW5nYm9keVwiPlxuICAgICAgICAgICAgPHRyIFtzdHlsZS5oZWlnaHQucHhdPVwiZGVzY3JpcHRvci5yb3dIZWlnaHRcIj5cbiAgICAgICAgICAgICAgICA8dGQgW2F0dHIuY29sc3Bhbl09XCJkZXNjcmlwdG9yLmNvbHVtbnMubGVuZ3RoICsgKGNvbHVtbkFjdGlvblRlbXBsYXRlID8gMSA6IDApICsgKHNlbGVjdGlvbkVuYWJsZWQgPyAxIDogMClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmctdGV4dFwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8cC1za2VsZXRvbiBbbmdTdHlsZV09XCJ7d2lkdGg6ICcxMDAlJ31cIj48L3Atc2tlbGV0b24+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiPlxuICAgICAgICAgICAgPHRyIFtzdHlsZS5oZWlnaHQucHhdPVwicm93SGVpZ2h0XCI+XG4gICAgICAgICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiZGVzY3JpcHRvci5jb2x1bW5zLmxlbmd0aCArIChjb2x1bW5BY3Rpb25UZW1wbGF0ZSA/IDEgOiAwKSArIChzZWxlY3Rpb25FbmFibGVkID8gMSA6IDApXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdtbmdUYWJsZS5ub0l0ZW1zJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvcC10YWJsZT5cbjwvZGl2PlxuIl19
309
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL3RhYmxldmlldy90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdGFibGV2aWV3L3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBRVosS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBR04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBTXZCLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDcEMsT0FBTyxFQUFDLFVBQVUsRUFBRSxhQUFhLEVBQWdCLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQsT0FBTyxFQUFtQixnQkFBZ0IsRUFBRSxlQUFlLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLHNCQUFzQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sV0FBVyxDQUFDO0FBR3BFLElBQU8sUUFBUSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztBQUM1QyxJQUFPLGtCQUFrQixHQUFHLGVB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QUFFLENBQUM7U0FDYjtJQUNMLENBQUM7OzhHQXZUUSxpQkFBaUI7a0dBQWpCLGlCQUFpQix1WkF1QlQsb0JBQW9CLHlFQUMxQixLQUFLLGdEQ2xFcEIsKy9MQWdIQTsyRkR0RWEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNJLFdBQVcsbUJBRUosdUJBQXVCLENBQUMsTUFBTTs7MEJBNEUxQyxRQUFROzRDQXJFRyxVQUFVO3NCQUF6QixLQUFLO2dCQUdVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ1UsY0FBYztzQkFBN0IsS0FBSztnQkFHVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBR3NCLGdCQUFnQjtzQkFBM0MsTUFBTTt1QkFBQyxXQUFXO2dCQUNTLHFCQUFxQjtzQkFBaEQsTUFBTTt1QkFBQyxXQUFXO2dCQUNlLDJCQUEyQjtzQkFBNUQsTUFBTTt1QkFBQyxpQkFBaUI7Z0JBR3FCLFNBQVM7c0JBQXRELGVBQWU7dUJBQUMsb0JBQW9CO2dCQUNaLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1zLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0xhenlMb2FkRXZlbnQsIFNvcnRNZXRhfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQge0ZpbHRlck1ldGFkYXRhfSBmcm9tICdwcmltZW5nL2FwaS9maWx0ZXJtZXRhZGF0YSc7XG5pbXBvcnQge1RhYmxlfSBmcm9tICdwcmltZW5nL3RhYmxlJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3Vic2NyaXB0aW9uLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbmFsaXplLCBmaXJzdCwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7TWVkaXVzUXVlcnlQYXJhbSwgTWVkaXVzUXVlcnlQYXJhbUJ1aWxkZXIsIE1lZGl1c1F1ZXJ5UmVzdWx0fSBmcm9tICcuLi8uLi8uLi9hcGkvbW9kZWxzJztcbmltcG9ydCB7TWVkaXVzUmVzdFV0aWx9IGZyb20gJy4uLy4uLy4uL2FwaS91dGlscyc7XG5pbXBvcnQge0lUYWJsZURhdGFQcm92aWRlcn0gZnJvbSAnLi4vLi4vLi4vZGF0YS1wcm92aWRlcnMnO1xuaW1wb3J0IHtDb2x1bW5EZXNjcmlwdG9yLCBGaWx0ZXJEZXNjcmlwdG9yLCBUYWJsZURlc2NyaXB0b3J9IGZyb20gJy4uLy4uLy4uL2Rlc2NyaXB0b3JzJztcbmltcG9ydCB7TW5nVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtUb2FzdFV0aWx9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7TW5nVGFibGVDZWxsQ2xpY2tFdmVudCwgTW5nVGFibGVMb2FkRXZlbnR9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQge1RhYmxldmlld0NvbXBvbmVudFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzJztcblxuaW1wb3J0IFR5cGVFbnVtID0gRmlsdGVyRGVzY3JpcHRvci5UeXBlRW51bTtcbmltcG9ydCBQYWdpbmF0aW9uTW9kZUVudW0gPSBUYWJsZURlc2NyaXB0b3IuUGFnaW5hdGlvbk1vZGVFbnVtO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21uZy10YWJsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNbmdUYWJsZUNvbXBvbmVudDxULCBTPiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZmlsdGVyRGlzcGxheVJvdzogVGFibGVEZXNjcmlwdG9yLkZpbHRlckRpc3BsYXlFbnVtID0gVGFibGVEZXNjcmlwdG9yLkZpbHRlckRpc3BsYXlFbnVtLlJvdztcbiAgICBwdWJsaWMgcmVhZG9ubHkgZmlsdGVyRGlzcGxheU1lbnU6IFRhYmxlRGVzY3JpcHRvci5GaWx0ZXJEaXNwbGF5RW51bSA9IFRhYmxlRGVzY3JpcHRvci5GaWx0ZXJEaXNwbGF5RW51bS5NZW51O1xuXG4gICAgLy8gbWV0YWRhdGEgaW5wdXRcbiAgICBASW5wdXQoKSBwdWJsaWMgZGVzY3JpcHRvciE6IFRhYmxlRGVzY3JpcHRvcjxUPjtcblxuICAgIC8vIGRhdGEgc291cmNlIGlucHV0c1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpdGVtcz86IE9ic2VydmFibGU8QXJyYXk8VD4+IHwgQXJyYXk8VD47XG4gICAgQElucHV0KCkgcHVibGljIHF1ZXJ5UmVzdWx0PzogT2JzZXJ2YWJsZTxNZWRpdXNRdWVyeVJlc3VsdDxUPj4gfCBNZWRpdXNRdWVyeVJlc3VsdDxUPjtcbiAgICBASW5wdXQoKSBwdWJsaWMgbG9hZGluZz86IE9ic2VydmFibGU8Ym9vbGVhbj4gfCBib29sZWFuO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkYXRhUHJvdmlkZXI/OiBJVGFibGVEYXRhUHJvdmlkZXI8VCwgYW55PjtcbiAgICBASW5wdXQoKSBwdWJsaWMgdXNlUXVlcnlQYXJhbXMgPSBmYWxzZTtcblxuICAgIC8vIGV4dHJhIGZlYXR1cmVzIGlucHV0XG4gICAgQElucHV0KCkgcHVibGljIHNlbGVjdGlvbkVuYWJsZWQgPSBmYWxzZTtcblxuICAgIC8vIGV2ZW50IG91dHB1dHNcbiAgICBAT3V0cHV0KCd0YWJsZUxvYWQnKSBwdWJsaWMgbG9hZEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8TW5nVGFibGVMb2FkRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgnY2VsbENsaWNrJykgcHVibGljIGNlbGxDbGlja0V2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8TW5nVGFibGVDZWxsQ2xpY2tFdmVudDxUPj4oKTtcbiAgICBAT3V0cHV0KCdzZWxlY3Rpb25DaGFuZ2UnKSBwdWJsaWMgc2VsZWN0aW9uQ2hhbmdlRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxBcnJheTxUPj4oKTtcblxuICAgIC8vIGNvbnRlbnQgYW5kIHZpZXcgcXVlcmllc1xuICAgIEBDb250ZW50Q2hpbGRyZW4oTW5nVGVtcGxhdGVEaXJlY3RpdmUpIHB1YmxpYyB0ZW1wbGF0ZXMhOiBRdWVyeUxpc3Q8TW5nVGVtcGxhdGVEaXJlY3RpdmU+O1xuICAgIEBWaWV3Q2hpbGQoVGFibGUpIHB1YmxpYyBwcmltZVRhYmxlITogVGFibGU7XG5cbiAgICAvLyB0ZW1wbGF0ZXNcbiAgICBwdWJsaWMgY2FwdGlvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBwdWJsaWMgY29sdW1uQWN0aW9uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLy8gZGF0YSBwcm92aWRlciBhbmQgaXRlbXNcbiAgICBwdWJsaWMgdXNlRGF0YVByb3ZpZGVyID0gZmFsc2U7XG4gICAgcHVibGljIHVzZVF1ZXJ5UGFyYW1zSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgcXVlcnlSZXN1bHQkPzogT2JzZXJ2YWJsZTxNZWRpdXNRdWVyeVJlc3VsdDxUPj47XG4gICAgcHVibGljIGxvYWRpbmckPzogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBwdWJsaWMgZGF0YVByb3ZpZGVySW5maW5pdGVTY3JvbGxJdGVtczogQXJyYXk8VD4gPSBbXTtcblxuICAgIC8vIHBhZ2luYXRpb24sIHNvcnQgYW5kIGZpbHRlcnNcbiAgICBwdWJsaWMgcmVhZG9ubHkgcm93c1BlclBhZ2VPcHRpb25zID0gWzI1LCA1MCwgMTAwXTtcbiAgICBwdWJsaWMgcm93cyA9IHRoaXMucm93c1BlclBhZ2VPcHRpb25zWzBdO1xuICAgIHB1YmxpYyBvZmZzZXQgPSAwO1xuICAgIHB1YmxpYyBtdWx0aVNvcnRNZXRhOiBTb3J0TWV0YVtdIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIGZpbHRlck1ldGFkYXRhOiB7W3M6IHN0cmluZ106IEZpbHRlck1ldGFkYXRhIHwgRmlsdGVyTWV0YWRhdGFbXX0gPSB7fTtcblxuICAgIC8vIGluZmluaXRlIHNjcm9sbFxuICAgIHB1YmxpYyBpbmZpbml0ZVNjcm9sbCA9IGZhbHNlO1xuICAgIHB1YmxpYyBzY3JvbGxIZWlnaHQ6ICdmbGV4JyB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyByb3dIZWlnaHQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLy8gc2VsZWN0aW9uXG4gICAgcHVibGljIHNlbGVjdGlvbjogQXJyYXk8VD4gPSBbXTtcblxuICAgIC8vIGRhdGEgcHJvdmlkZXJcbiAgICBwcml2YXRlIGRhdGFQcm92aWRlclNlcnZpY2U6IGFueSA9IG51bGw7XG4gICAgcHJpdmF0ZSBkYXRhUHJvdmlkZXJRdWVyeVJlc3VsdFN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxNZWRpdXNRdWVyeVJlc3VsdDxUPj4oMSk7XG4gICAgcHJpdmF0ZSBkYXRhUHJvdmlkZXJMb2FkaW5nU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuICAgIHByaXZhdGUgZGF0YVByb3ZpZGVyTGF0ZXN0TGF6eUxvYWRFdmVudD86IExhenlMb2FkRXZlbnQ7XG4gICAgcHJpdmF0ZSBkYXRhUHJvdmlkZXJMYXRlc3RMYXp5TG9hZEV2ZW50VmVyc2lvbiA9IDA7XG4gICAgcHJpdmF0ZSBkYXRhUHJvdmlkZXJMYXRlc3RRdWVyeVBhcmFtPzogTWVkaXVzUXVlcnlQYXJhbTtcbiAgICBwcml2YXRlIGRhdGFQcm92aWRlckxhdGVzdFF1ZXJ5UGFyYW1WZXJzaW9uID0gMDtcbiAgICBwcml2YXRlIGRhdGFQcm92aWRlclN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICAgIC8vIGZpbHRlciwgc29ydFxuICAgIHByaXZhdGUgaXNGaWx0ZXJDaGFuZ2VkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBpc1NvcnRDaGFuZ2VkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBmaWx0ZXJEZXNjcmlwdG9yczogQXJyYXk8RmlsdGVyRGVzY3JpcHRvcjxhbnk+PiA9IFtdO1xuXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgdGFibGV2aWV3U2VydmljZTogVGFibGV2aWV3Q29tcG9uZW50U2VydmljZTxULCBTPlxuICAgICkge31cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJEZXNjcmlwdG9ycyA9IHRoaXMuZGVzY3JpcHRvci5jb2x1bW5zLmZpbHRlcihjID0+IHR5cGVvZiBjLmZpbHRlckRlc2NyaXB0b3IgIT09ICd1bmRlZmluZWQnKS5tYXAoYyA9PiBjLmZpbHRlckRlc2NyaXB0b3IhKTtcblxuICAgICAgICBpZiAodGhpcy5kZXNjcmlwdG9yLnBhZ2luYXRpb25Nb2RlID09PSBQYWdpbmF0aW9uTW9kZUVudW0uSW5maW5pdGVTY3JvbGwpIHtcbiAgICAgICAgICAgIHRoaXMuaW5maW5pdGVTY3JvbGwgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxIZWlnaHQgPSAnZmxleCc7XG4gICAgICAgICAgICB0aGlzLnJvd0hlaWdodCA9IHRoaXMuZGVzY3JpcHRvci5yb3dIZWlnaHQ7XG4gICAgICAgICAgICB0aGlzLnVzZVF1ZXJ5UGFyYW1zID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjaGVjayBpZiBkYXRhIHByb3ZpZGVyIGlzIHN1cHBsaWVkLCBpZiBpcywgdXNlIGl0IHByaW1hcmlseVxuICAgICAgICBpZiAodGhpcy5kYXRhUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIC8vIG1hcCBzdWJqZWN0cyB0byBvYnNlcnZhYmxlcyBhbmQgaW5pdGlhdGUgZGF0YVxuICAgICAgICAgICAgdGhpcy51c2VEYXRhUHJvdmlkZXIgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5xdWVyeVJlc3VsdCQgPSB0aGlzLmRhdGFQcm92aWRlclF1ZXJ5UmVzdWx0U3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyQgPSB0aGlzLmRhdGFQcm92aWRlckxvYWRpbmdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgICAgICAgY29uc3QgZW1wdHlRdWVyeVJlc3VsdCA9IG5ldyBNZWRpdXNRdWVyeVJlc3VsdDxUPigpO1xuICAgICAgICAgICAgZW1wdHlRdWVyeVJlc3VsdC5wYWdlRGF0YSA9IFtdO1xuICAgICAgICAgICAgZW1wdHlRdWVyeVJlc3VsdC5hbGxEYXRhQ291bnQgPSAwO1xuICAgICAgICAgICAgdGhpcy5kYXRhUHJvdmlkZXJMb2FkaW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuZGF0YVByb3ZpZGVyUXVlcnlSZXN1bHRTdWJqZWN0Lm5leHQoZW1wdHlRdWVyeVJlc3VsdCk7XG5cbiAgICAgICAgICAgIC8vIGluamVjdCBzZXJ2aWNlXG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhUHJvdmlkZXIuc2VydmljZVR5cGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFQcm92aWRlclNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldDxhbnk+KHRoaXMuZGF0YVByb3ZpZGVyLnNlcnZpY2VUeXBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGlmIHF1ZXJ5IHJlc3VsdCBpcyBwcm92aWRlZCwgdXNlIGl0IGFzIHNlY29uZGFyeSBzb3VyY2Ugb3IgZWxzZSB0cnkgdG8gdXNlIGl0ZW1zXG4gICAgICAgICAgICBpZiAodGhpcy5xdWVyeVJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHRoaXMucXVlcnlSZXN1bHQkID0gdGhpcy5xdWVyeVJlc3VsdCBpbnN0YW5jZW9mIE9ic2VydmFibGUgPyB0aGlzLnF1ZXJ5UmVzdWx0IDogb2YodGhpcy5xdWVyeVJlc3VsdCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLnF1ZXJ5UmVzdWx0ICYmIHRoaXMuaXRlbXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnF1ZXJ5UmVzdWx0JCA9ICh0aGlzLml0ZW1zIGluc3RhbmNlb2YgT2JzZXJ2YWJsZSA/IHRoaXMuaXRlbXMgOiBvZih0aGlzLml0ZW1zKSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgLy8gZGlzdGluY3RVbnRpbENoYW5nZWQoKHYxLCB2MikgPT4gdjEubGVuZ3RoID09PSB2Mi5sZW5ndGggJiZcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgIHYxLmV2ZXJ5KCh2MWksIGlkeCkgPT4gdjFpW3RoaXMuZGVzY3JpcHRvci5kYXRhS2V5UHJvcGVydHldID09PSB2MltpZHhdW3RoaXMuZGVzY3JpcHRvci5kYXRhS2V5UHJvcGVydHldKSksXG4gICAgICAgICAgICAgICAgICAgIG1hcChpdGVtcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBxdWVyeVJlc3VsdCA9IG5ldyBNZWRpdXNRdWVyeVJlc3VsdDxUPigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlSZXN1bHQucGFnZURhdGEgPSBpdGVtcztcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5UmVzdWx0LmFsbERhdGFDb3VudCA9IGl0ZW1zLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBxdWVyeVJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmxvYWRpbmcgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nJCA9IHRoaXMubG9hZGluZyBpbnN0YW5jZW9mIE9ic2VydmFibGUgPyB0aGlzLmxvYWRpbmcgOiBvZih0aGlzLmxvYWRpbmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudXNlUXVlcnlQYXJhbXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuYWN0aXZhdGVkUm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKHFwID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRUYWJsZUZyb21Sb3V0ZVVwZGF0ZShxcCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHN1YnNjcmlwdGlvbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBpbml0aWFsaXplIGRlZmF1bHQgc29ydCBpZiBwcmVzZW50XG4gICAgICAgICAgICBjb25zdCBkZWZhdWx0U29ydCA9IHRoaXMuZ2V0RGVmYXVsdFNvcnRNZXRhKCk7XG4gICAgICAgICAgICBpZiAoZGVmYXVsdFNvcnQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMubXVsdGlTb3J0TWV0YSA9IGRlZmF1bHRTb3J0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXMuZm9yRWFjaCh0ZW1wbGF0ZSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKHRlbXBsYXRlLmdldFR5cGUoKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2NhcHRpb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhcHRpb25UZW1wbGF0ZSA9IHRlbXBsYXRlLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdjb2x1bW5BY3Rpb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbHVtbkFjdGlvblRlbXBsYXRlID0gdGVtcGxhdGUudGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVsb2FkKGVtaXRFdmVudCA9IGZhbHNlLCByZXNldFBhcmFtcyA9IGZhbHNlKSB7XG4gICAgICAgIHRoaXMubG9hZFRhYmxlV2l0aERhdGFQcm92aWRlcihcbiAgICAgICAgICAgIHJlc2V0UGFyYW1zID8gTWVkaXVzUXVlcnlQYXJhbUJ1aWxkZXIuY3JlYXRlKHRoaXMucm93c1BlclBhZ2VPcHRpb25zWzBdLCAwKS5idWlsZCgpIDogdGhpcy5kYXRhUHJvdmlkZXJMYXRlc3RRdWVyeVBhcmFtID8/IG5ldyBNZWRpdXNRdWVyeVBhcmFtKCksXG4gICAgICAgICAgICBlbWl0RXZlbnRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25UYWJsZUxhenlMb2FkKGV2ZW50OiBMYXp5TG9hZEV2ZW50KSB7XG4gICAgICAgIHRoaXMuZGF0YVByb3ZpZGVyTGF0ZXN0TGF6eUxvYWRFdmVudCA9IGV2ZW50O1xuICAgICAgICB0aGlzLmRhdGFQcm92aWRlckxhdGVzdExhenlMb2FkRXZlbnRWZXJzaW9uKys7XG5cbiAgICAgICAgaWYgKHRoaXMudXNlUXVlcnlQYXJhbXMpIHtcbiAgICAgICAgICAgIGlmICghZXZlbnQubXVsdGlTb3J0TWV0YSB8fCBldmVudC5tdWx0aVNvcnRNZXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIC8vIGFkZCBkZWZhdWx0IHNvcnQgbWV0YSB0byBldmVudCBpZiBub3QgbXVsdGlzb3J0IG1ldGEgaXMgcHJlc2VudFxuICAgICAgICAgICAgICAgIGV2ZW50Lm11bHRpU29ydE1ldGEgPSB0aGlzLmdldERlZmF1bHRTb3J0TWV0YSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHtcbiAgICAgICAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlLFxuICAgICAgICAgICAgICAgIHJlcGxhY2VVcmw6IHRydWUsXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbXM6IE1lZGl1c1Jlc3RVdGlsLmZyb21QcmltZUxhenlMb2FkRXZlbnRUb0FuZ3VsYXJRdWVyeVBhcmFtcyhldmVudCwgdGhpcy5yb3dzUGVyUGFnZU9wdGlvbnNbMF0pXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG1lZGl1c1F1ZXJ5UGFyYW1zID0gZXZlbnQgPyBNZWRpdXNSZXN0VXRpbC5mcm9tUHJpbWVMYXp5TG9hZEV2ZW50VG9NZWRpdXNRdWVyeVBhcmFtcyhldmVudCkgOiBuZXcgTWVkaXVzUXVlcnlQYXJhbSgpO1xuICAgICAgICAgICAgdGhpcy5sb2FkVGFibGVXaXRoRGF0YVByb3ZpZGVyKG1lZGl1c1F1ZXJ5UGFyYW1zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBwdWJsaWMgb25UYWJsZVNvcnQoZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLmlzU29ydENoYW5nZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBwdWJsaWMgb25UYWJsZUZpbHRlcihldmVudDogYW55KSB7XG4gICAgICAgIHRoaXMuaXNGaWx0ZXJDaGFuZ2VkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25DZWxsQ2xpY2soY29sOiBDb2x1bW5EZXNjcmlwdG9yPGFueSwgVD4sIGl0ZW06IFQsIGlkeDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IG1uZ0V2ZW50ID0gbmV3IE1uZ1RhYmxlQ2VsbENsaWNrRXZlbnQ8VD4oY29sLCBpdGVtLCBpZHgpO1xuICAgICAgICB0aGlzLmNlbGxDbGlja0V2ZW50RW1pdHRlci5uZXh0KG1uZ0V2ZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25TZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IEFycmF5PFQ+KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlRXZlbnRFbWl0dGVyLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZFRhYmxlV2l0aERhdGFQcm92aWRlcihxdWVyeVBhcmFtOiBNZWRpdXNRdWVyeVBhcmFtIHwgbnVsbCA9IG51bGwsIGVtaXRFdmVudCA9IHRydWUpIHtcbiAgICAgICAgaWYgKCF0aGlzLnVzZURhdGFQcm92aWRlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRhdGFQcm92aWRlclN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5kYXRhUHJvdmlkZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGF0YVByb3ZpZGVyTG9hZGluZ1N1YmplY3QubmV4dCh0cnVlKTtcblxuICAgICAgICBpZiAoIXF1ZXJ5UGFyYW0pIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW0gPSBNZWRpdXNRdWVyeVBhcmFtQnVpbGRlci5jcmVhdGUodGhpcy5yb3dzUGVyUGFnZU9wdGlvbnNbMF0pLmJ1aWxkKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kYXRhUHJvdmlkZXJMYXRlc3RRdWVyeVBhcmFtID0gcXVlcnlQYXJhbTtcbiAgICAgICAgdGhpcy5kYXRhUHJvdmlkZXJMYXRlc3RRdWVyeVBhcmFtVmVyc2lvbisrO1xuXG4gICAgICAgIHRoaXMuZGF0YVByb3ZpZGVyU3Vic2NyaXB0aW9uID0gdGhpcy5kYXRhUHJvdmlkZXJcbiAgICAgICAgICAgID8uZ2V0QWxsKHF1ZXJ5UGFyYW0sIHRoaXMuZGF0YVByb3ZpZGVyU2VydmljZSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5kYXRhUHJvdmlkZXJMb2FkaW5nU3ViamVjdC5uZXh0KGZhbHNlKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaW5maW5pdGVTY3JvbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzRmlsdGVyQ2hhbmdlZCB8fCB0aGlzLmlzU29ydENoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFQcm92aWRlckluZmluaXRlU2Nyb2xsSXRlbXMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YVByb3ZpZGVySW5maW5pdGVTY3JvbGxJdGVtcy5zcGxpY2UocXVlcnlQYXJhbSEuaXRlbXNPZmZzZXQgPz8gMCwgcXVlcnlQYXJhbSEuaXRlbXNQZXJQYWdlID8/IHRoaXMucm93cywgLi4uKHJlcy5wYWdlRGF0YSA/PyBbXSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhUHJvdmlkZXJJbmZpbml0ZVNjcm9sbEl0ZW1zID0gWy4uLnRoaXMuZGF0YVByb3ZpZGVySW5maW5pdGVTY3JvbGxJdGVtc107XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFQcm92aWRlclF1ZXJ5UmVzdWx0U3ViamVjdC5uZXh0KHJlcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0ZpbHRlckNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1NvcnRDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgICAgICAgICAgICBUb2FzdFV0aWwudGFibGVOb3RpZmljYXRpb25FcnJvcih0aGlzLnRyYW5zbGF0ZSwgdGhpcy5kZXNjcmlwdG9yLCBlcnIsIHRoaXMudGFibGV2aWV3U2VydmljZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVtcHR5UXVlcnlSZXN1bHQgPSBuZXcgTWVkaXVzUXVlcnlSZXN1bHQ8VD4oKTtcbiAgICAgICAgICAgICAgICAgICAgZW1wdHlRdWVyeVJlc3VsdC5wYWdlRGF0YSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBlbXB0eVF1ZXJ5UmVzdWx0LmFsbERhdGFDb3VudCA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YVByb3ZpZGVyUXVlcnlSZXN1bHRTdWJqZWN0Lm5leHQoZW1wdHlRdWVyeVJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcblxuICAgICAgICBpZiAoZW1pdEV2ZW50KSB7XG4gICAgICAgICAgICBjb25zdCBtbmdFdmVudCA9IG5ldyBNbmdUYWJsZUxvYWRFdmVudCgpO1xuICAgICAgICAgICAgbW5nRXZlbnQub3JpZ2luYWxFdmVudCA9IHRoaXMuZGF0YVByb3ZpZGVyTGF0ZXN0TGF6eUxvYWRFdmVudCA/PyB1bmRlZmluZWQ7XG4gICAgICAgICAgICBtbmdFdmVudC5xdWVyeVBhcmFtID0gcXVlcnlQYXJhbTtcbiAgICAgICAgICAgIHRoaXMubG9hZEV2ZW50RW1pdHRlci5uZXh0KG1uZ0V2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZFRhYmxlRnJvbVJvdXRlVXBkYXRlKHBhcmFtczogUGFyYW1zKSB7XG4gICAgICAgIGNvbnN0IG1lZGl1c1F1ZXJ5UGFyYW0gPSBNZWRpdXNSZXN0VXRpbC5mcm9tQW5ndWxhclF1ZXJ5UGFyYW1zVG9NZWRpdXNRdWVyeVBhcmFtcyhwYXJhbXMsIHRoaXMuZmlsdGVyRGVzY3JpcHRvcnMsIHRoaXMucm93c1BlclBhZ2VPcHRpb25zWzBdKTtcbiAgICAgICAgaWYgKHRoaXMuZGF0YVByb3ZpZGVyTGF0ZXN0TGF6eUxvYWRFdmVudFZlcnNpb24gPCB0aGlzLmRhdGFQcm92aWRlckxhdGVzdFF1ZXJ5UGFyYW1WZXJzaW9uICsgMSkge1xuICAgICAgICAgICAgLy8gdXBkYXRlIG9ubHkgaWYgbmV3IHZlcnNpb24gZnJvbSBxdWVyeSBwYXJhbXMgd2lsbCBiZSBoaWdoZXJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUHJpbWVTb3J0QW5kRmlsdGVyKG1lZGl1c1F1ZXJ5UGFyYW0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXNlUXVlcnlQYXJhbXNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIHRoaXMubG9hZFRhYmxlV2l0aERhdGFQcm92aWRlcihtZWRpdXNRdWVyeVBhcmFtKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVByaW1lU29ydEFuZEZpbHRlcihtZWRpdXNRdWVyeVBhcmFtOiBNZWRpdXNRdWVyeVBhcmFtKSB7XG4gICAgICAgIGNvbnN0IHByaW1lU29ydE1ldGE6IFNvcnRNZXRhW10gPSBbXTtcbiAgICAgICAgY29uc3QgcHJpbWVGaWx0ZXJNZXRhOiB7W3M6IHN0cmluZ106IEZpbHRlck1ldGFkYXRhIHwgRmlsdGVyTWV0YWRhdGFbXX0gPSB7fTtcblxuICAgICAgICB0aGlzLmZpbHRlckRlc2NyaXB0b3JzLmZvckVhY2goZiA9PiB7XG4gICAgICAgICAgICBwcmltZUZpbHRlck1ldGFbZi5wcm9wZXJ0eV0gPSB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgICAgICAgbWF0Y2hNb2RlOiBmLmZpbHRlclR5cGUgPT09IFR5cGVFbnVtLlN0cmluZyA/ICdjb250YWlucycgOiAnZXF1YWxzJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbWVkaXVzUXVlcnlQYXJhbT8uc29ydFByb3BlcnR5Py5mb3JFYWNoKChzLCBpZHgpID0+IHtcbiAgICAgICAgICAgIHByaW1lU29ydE1ldGEucHVzaCh7XG4gICAgICAgICAgICAgICAgZmllbGQ6IHMsXG4gICAgICAgICAgICAgICAgb3JkZXI6IG1lZGl1c1F1ZXJ5UGFyYW0/LnNvcnRBc2M/LltpZHhdID8/IHRydWUgPyAxIDogLTFcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBtZWRpdXNRdWVyeVBhcmFtPy5maWx0ZXJQYXJhbXM/LmZvckVhY2goZiA9PiB7XG4gICAgICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gdGhpcy5maWx0ZXJEZXNjcmlwdG9ycy5maW5kKGZkID0+IGZkLmZpbHRlclByb3BlcnR5ID09PSBmLnByb3BlcnR5IHx8IGZkLnByb3BlcnR5ID09PSBmLnByb3BlcnR5KTtcbiAgICAgICAgICAgIGNvbnN0IG9wZXJhdG9yID0gTWVkaXVzUmVzdFV0aWwubWF0Y2hNb2RlTWFwcGluZy5maW5kKG1hcHBpbmcgPT4gbWFwcGluZ1syXSA9PT0gZi5maWx0ZXJNYXRjaFR5cGUpO1xuICAgICAgICAgICAgaWYgKGRlc2NyaXB0b3IgJiYgb3BlcmF0b3IpIHtcbiAgICAgICAgICAgICAgICBwcmltZUZpbHRlck1ldGFbZGVzY3JpcHRvci5wcm9wZXJ0eV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBmLmZpbHRlclZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBtYXRjaE1vZGU6IG9wZXJhdG9yWzBdXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5tdWx0aVNvcnRNZXRhID0gcHJpbWVTb3J0TWV0YTtcbiAgICAgICAgdGhpcy5maWx0ZXJNZXRhZGF0YSA9IHByaW1lRmlsdGVyTWV0YTtcbiAgICAgICAgdGhpcy5yb3dzID0gbWVkaXVzUXVlcnlQYXJhbT8uaXRlbXNQZXJQYWdlID8/IHRoaXMucm93c1BlclBhZ2VPcHRpb25zWzBdO1xuICAgICAgICB0aGlzLm9mZnNldCA9IG1lZGl1c1F1ZXJ5UGFyYW0/Lml0ZW1zT2Zmc2V0ID8/IDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREZWZhdWx0U29ydE1ldGEoKTogU29ydE1ldGFbXSB7XG4gICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IuaGFzRGVmYXVsdFNvcnQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRlc2NyaXB0b3IuZGVmYXVsdFNvcnRQcm9wZXJ0eS5tYXAoXG4gICAgICAgICAgICAgICAgKHAsIGlkeCkgPT5cbiAgICAgICAgICAgICAgICAgICAgPFNvcnRNZXRhPntcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkOiBwLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXI6IHRoaXMuZGVzY3JpcHRvci5kZWZhdWx0U29ydEFzY1tpZHhdID8gMSA6IC0xXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IFtzdHlsZS5oZWlnaHRdPVwic2Nyb2xsSGVpZ2h0ID09PSAnZmxleCcgPyAnY2FsYygxMDB2aCAtICcgKyBkZXNjcmlwdG9yLnRhYmxlRnVsbEhlaWdodE9mZnNldCArICdweCknIDogbnVsbFwiPlxuICAgIDwhLS0gTVVTVCBOT1QgdXNlIG9ic2VydmFibGUgZm9yIHZhbHVlIHdoZW4gdXNpbmcgdmlydHVhbCBzY3JvbGwgLSBkb2VzIG5vdCB3b3JrIGZvciBzb21lIHJlYXNvbiAtLT5cbiAgICA8cC10YWJsZVxuICAgICAgICAqbmdJZj1cIiF1c2VRdWVyeVBhcmFtcyB8fCB1c2VRdWVyeVBhcmFtc0luaXRpYWxpemVkXCJcbiAgICAgICAgW3ZhbHVlXT1cImluZmluaXRlU2Nyb2xsID8gZGF0YVByb3ZpZGVySW5maW5pdGVTY3JvbGxJdGVtcyA6IChxdWVyeVJlc3VsdCQgfCBhc3luYyk/LnBhZ2VEYXRhID8/IFtdXCJcbiAgICAgICAgW2RhdGFLZXldPVwiJGFueShkZXNjcmlwdG9yLmRhdGFLZXlQcm9wZXJ0eSlcIlxuICAgICAgICBbbGF6eV09XCJ1c2VEYXRhUHJvdmlkZXJcIlxuICAgICAgICBbbG9hZGluZ109XCIobG9hZGluZyQgfCBhc3luYykgPz8gZmFsc2VcIlxuICAgICAgICBbcGFnaW5hdG9yXT1cInVzZURhdGFQcm92aWRlciAmJiAhaW5maW5pdGVTY3JvbGxcIlxuICAgICAgICBbcm93c109XCIkYW55KGluZmluaXRlU2Nyb2xsID8gMjAgOiByb3dzKVwiXG4gICAgICAgIFtmaXJzdF09XCIkYW55KGluZmluaXRlU2Nyb2xsID8gMCA6IG9mZnNldClcIlxuICAgICAgICBbdG90YWxSZWNvcmRzXT1cIiRhbnkoaW5maW5pdGVTY3JvbGwgPyBudWxsIDogKHF1ZXJ5UmVzdWx0JCB8IGFzeW5jKT8uYWxsRGF0YUNvdW50ID8/IDApXCJcbiAgICAgICAgW3Jvd3NQZXJQYWdlT3B0aW9uc109XCIkYW55KGluZmluaXRlU2Nyb2xsID8gbnVsbCA6IHJvd3NQZXJQYWdlT3B0aW9ucylcIlxuICAgICAgICBbc2hvd0N1cnJlbnRQYWdlUmVwb3J0XT1cIiFpbmZpbml0ZVNjcm9sbFwiXG4gICAgICAgIFtjdXJyZW50UGFnZVJlcG9ydFRlbXBsYXRlXT1cIidtbmdUYWJsZS5wYWdpbmF0aW9uTXNnJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFttdWx0aVNvcnRNZXRhXT1cIiRhbnkobXVsdGlTb3J0TWV0YSlcIlxuICAgICAgICBbZmlsdGVyc109XCJmaWx0ZXJNZXRhZGF0YVwiXG4gICAgICAgIFsoc2VsZWN0aW9uKV09XCJzZWxlY3Rpb25cIlxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbc2Nyb2xsYWJsZV09XCJpbmZpbml0ZVNjcm9sbFwiXG4gICAgICAgIFt2aXJ0dWFsU2Nyb2xsXT1cImluZmluaXRlU2Nyb2xsXCJcbiAgICAgICAgW3ZpcnR1YWxSb3dIZWlnaHRdPVwiJGFueShyb3dIZWlnaHQpXCJcbiAgICAgICAgW3Njcm9sbEhlaWdodF09XCIkYW55KHNjcm9sbEhlaWdodClcIlxuICAgICAgICBbcm93SG92ZXJdPVwidHJ1ZVwiXG4gICAgICAgIChvbkxhenlMb2FkKT1cIm9uVGFibGVMYXp5TG9hZCgkZXZlbnQpXCJcbiAgICAgICAgKG9uU29ydCk9XCJvblRhYmxlU29ydCgkZXZlbnQpXCJcbiAgICAgICAgKG9uRmlsdGVyKT1cIm9uVGFibGVGaWx0ZXIoJGV2ZW50KVwiXG4gICAgICAgIHNvcnRNb2RlPVwibXVsdGlwbGVcIlxuICAgICAgICByZXNwb25zaXZlTGF5b3V0PVwic2Nyb2xsXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cImNhcHRpb25UZW1wbGF0ZSB8fCBkZXNjcmlwdG9yLnRpdGxlXCIgcFRlbXBsYXRlPVwiY2FwdGlvblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhcHRpb25UZW1wbGF0ZTsgZWxzZSBkZWZhdWx0Q2FwdGlvblwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjYXB0aW9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0Q2FwdGlvbj5cbiAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJwLW0tMFwiPnt7IGRlc2NyaXB0b3IudGl0bGUgfX08L2g1PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8dHIgKm5nSWY9XCIhZGVzY3JpcHRvci5oaWRlSGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPHRoICpuZ0lmPVwic2VsZWN0aW9uRW5hYmxlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8cC10YWJsZUhlYWRlckNoZWNrYm94PjwvcC10YWJsZUhlYWRlckNoZWNrYm94PlxuICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sIG9mIGRlc2NyaXB0b3IuY29sdW1uc1wiPlxuICAgICAgICAgICAgICAgICAgICA8dGggKm5nSWY9XCJjb2wuaXNTb3J0RW5hYmxlZFwiIFtwU29ydGFibGVDb2x1bW5dPVwiY29sLnByb3BlcnR5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjb2wucHJvcGVydHkgfCBpMThuUHJvcGVydHk6IGRlc2NyaXB0b3IubW9kZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1zb3J0SWNvbiBbZmllbGRdPVwiY29sLnByb3BlcnR5XCI+PC9wLXNvcnRJY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtbmctdGFibGUtY29sdW1uLWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbC5maWx0ZXJEZXNjcmlwdG9yICYmIGRlc2NyaXB0b3IuZmlsdGVyRGlzcGxheSA9PT0gZmlsdGVyRGlzcGxheU1lbnVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1sLWF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzcGxheV09XCJkZXNjcmlwdG9yLmZpbHRlckRpc3BsYXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVzY3JpcHRvcl09XCJjb2wuZmlsdGVyRGVzY3JpcHRvclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbW5nLXRhYmxlLWNvbHVtbi1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoICpuZ0lmPVwiIWNvbC5pc1NvcnRFbmFibGVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBjb2wucHJvcGVydHkgfCBpMThuUHJvcGVydHk6IGRlc2NyaXB0b3IubW9kZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1uZy10YWJsZS1jb2x1bW4tZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29sLmZpbHRlckRlc2NyaXB0b3IgJiYgZGVzY3JpcHRvci5maWx0ZXJEaXNwbGF5ID09PSBmaWx0ZXJEaXNwbGF5TWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWwtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5XT1cImRlc2NyaXB0b3IuZmlsdGVyRGlzcGxheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZXNjcmlwdG9yXT1cImNvbC5maWx0ZXJEZXNjcmlwdG9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tbmctdGFibGUtY29sdW1uLWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDx0aCAqbmdJZj1cImNvbHVtbkFjdGlvblRlbXBsYXRlXCI+PC90aD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8dHIgKm5nSWY9XCJkZXNjcmlwdG9yLmZpbHRlckRpc3BsYXkgPT09IGZpbHRlckRpc3BsYXlSb3dcIj5cbiAgICAgICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IGNvbCBvZiBkZXNjcmlwdG9yLmNvbHVtbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIiAqbmdJZj1cImNvbC5maWx0ZXJEZXNjcmlwdG9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bW5nLXRhYmxlLWNvbHVtbi1maWx0ZXIgW2Rpc3BsYXldPVwiZGVzY3JpcHRvci5maWx0ZXJEaXNwbGF5XCIgW2Rlc2NyaXB0b3JdPVwiY29sLmZpbHRlckRlc2NyaXB0b3JcIj48L21uZy10YWJsZS1jb2x1bW4tZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgIDx0aCAqbmdJZj1cImNvbHVtbkFjdGlvblRlbXBsYXRlXCI+PC90aD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtaXRlbSBsZXQtaWR4PVwicm93SW5kZXhcIj5cbiAgICAgICAgICAgIDx0ciBbc3R5bGUuaGVpZ2h0LnB4XT1cImRlc2NyaXB0b3Iucm93SGVpZ2h0XCI+XG4gICAgICAgICAgICAgICAgPHRkICpuZ0lmPVwic2VsZWN0aW9uRW5hYmxlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8cC10YWJsZUNoZWNrYm94IFt2YWx1ZV09XCJpdGVtXCI+PC9wLXRhYmxlQ2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbCBvZiBkZXNjcmlwdG9yLmNvbHVtbnNcIiAoY2xpY2spPVwib25DZWxsQ2xpY2soY29sLCBpdGVtLCBpZHgpXCIgY2xhc3M9XCJjbGlja2FibGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1uZy10YWJsZS1jb2x1bW4tdmFsdWUgW2Rlc2NyaXB0b3JdPVwiY29sXCIgW2l0ZW1dPVwiaXRlbVwiPjwvbW5nLXRhYmxlLWNvbHVtbi12YWx1ZT5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZCAqbmdJZj1cImNvbHVtbkFjdGlvblRlbXBsYXRlXCIgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW5BY3Rpb25UZW1wbGF0ZTsgY29udGV4dDoge3Jvd0l0ZW06IGl0ZW0sIHJvd0luZGV4OiBpZHh9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImxvYWRpbmdib2R5XCI+XG4gICAgICAgICAgICA8dHIgW3N0eWxlLmhlaWdodC5weF09XCJkZXNjcmlwdG9yLnJvd0hlaWdodFwiPlxuICAgICAgICAgICAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cImRlc2NyaXB0b3IuY29sdW1ucy5sZW5ndGggKyAoY29sdW1uQWN0aW9uVGVtcGxhdGUgPyAxIDogMCkgKyAoc2VsZWN0aW9uRW5hYmxlZCA/IDEgOiAwKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9hZGluZy10ZXh0XCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxwLXNrZWxldG9uIFtuZ1N0eWxlXT1cInt3aWR0aDogJzEwMCUnfVwiPjwvcC1za2VsZXRvbj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZW1wdHltZXNzYWdlXCI+XG4gICAgICAgICAgICA8dHIgW3N0eWxlLmhlaWdodC5weF09XCJyb3dIZWlnaHRcIj5cbiAgICAgICAgICAgICAgICA8dGQgW2F0dHIuY29sc3Bhbl09XCJkZXNjcmlwdG9yLmNvbHVtbnMubGVuZ3RoICsgKGNvbHVtbkFjdGlvblRlbXBsYXRlID8gMSA6IDApICsgKHNlbGVjdGlvbkVuYWJsZWQgPyAxIDogMClcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgJ21uZ1RhYmxlLm5vSXRlbXMnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9wLXRhYmxlPlxuPC9kaXY+XG4iXX0=
@@ -87,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
87
87
  type: ViewChild,
88
88
  args: [MngTableComponent]
89
89
  }] } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXZpZXcvdGFibGV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXZpZXcvdGFibGV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFxQixTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJN0UsT0FBTyxFQUFDLG1CQUFtQixFQUFFLGNBQWMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUloRSxPQUFPLEVBQW1CLGtCQUFrQixFQUFzQixNQUFNLG1CQUFtQixDQUFDO0FBRzVGLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNyRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFRMUQsTUFBTSxPQUFPLHFCQUFxQjtJQWM5QixZQUNZLEtBQXFCLEVBQ3JCLGNBQThCLEVBQzlCLGdCQUFrQyxFQUNsQyxhQUE0QixFQUM1QixtQkFBd0MsRUFDeEMsYUFBK0IsRUFDL0IsZ0JBQWlEO1FBTmpELFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQy9CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUM7UUFsQjdDLFlBQU8sR0FBK0IsRUFBRSxDQUFDO1FBRXBCLG1CQUFjLEdBQW1DLElBQUksQ0FBQztRQUVwRixvQkFBZSxHQUEwQixFQUFFLENBQUM7UUFDNUMscUJBQWdCLEdBQTBCLEVBQUUsQ0FBQztRQUM3Qyx1QkFBa0IsR0FBMEIsRUFBRSxDQUFDO1FBQy9DLHdCQUFtQixHQUEwQixFQUFFLENBQUM7UUFFL0Msa0JBQWEsR0FBbUIsRUFBRSxDQUFDO0lBVXhDLENBQUM7SUFFSixRQUFRO1FBQ0osSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzdDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN2RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDM0QsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDOUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUVqRCxLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDL0IsUUFBUSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUNyQixLQUFLLGtCQUFrQixDQUFDLFFBQVE7b0JBQzVCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNsQyxNQUFNO2dCQUNWLEtBQUssa0JBQWtCLENBQUMsU0FBUztvQkFDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDbkMsTUFBTTtnQkFDVixLQUFLLGtCQUFrQixDQUFDLFdBQVc7b0JBQy9CLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3JDLE1BQU07Z0JBQ1YsS0FBSyxrQkFBa0IsQ0FBQyxZQUFZO29CQUNoQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN0QyxNQUFNO2FBQ2I7U0FDSjtJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEtBQWdDO1FBQ3BELElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUU7WUFDN0IsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUN2QyxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3ZFO1NBQ0o7SUFDTCxDQUFDOztrSEFqRVEscUJBQXFCO3NHQUFyQixxQkFBcUIsZ0lBRm5CLENBQUMsY0FBYyxFQUFFLG1CQUFtQixFQUFFLHlCQUF5QixDQUFDLDBFQU9oRSxpQkFBaUIsZ0RDekJoQyxtZ0RBaUNBOzJGRGJhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDSSxlQUFlLGFBRWQsQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLEVBQUUseUJBQXlCLENBQUM7c1NBRzNELFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUUrQixjQUFjO3NCQUFsRCxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtDb25maXJtYXRpb25TZXJ2aWNlLCBNZXNzYWdlU2VydmljZX0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHtEaWFsb2dTZXJ2aWNlfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xuXG5pbXBvcnQge0lUYWJsZXZpZXdEYXRhUHJvdmlkZXJ9IGZyb20gJy4uLy4uL2RhdGEtcHJvdmlkZXJzJztcbmltcG9ydCB7QWN0aW9uRGVzY3JpcHRvciwgQWN0aW9uUG9zaXRpb25FbnVtLCBUYWJsZXZpZXdEZXNjcmlwdG9yfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9ycyc7XG5pbXBvcnQge01uZ0FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7TW5nVGFibGVDZWxsQ2xpY2tFdmVudH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHtUYWJsZXZpZXdDb21wb25lbnRTZXJ2aWNlfSBmcm9tICcuL3NlcnZpY2VzJztcbmltcG9ydCB7TW5nVGFibGVDb21wb25lbnR9IGZyb20gJy4vdGFibGUvdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtbmctdGFibGV2aWV3JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGV2aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtNZXNzYWdlU2VydmljZSwgQ29uZmlybWF0aW9uU2VydmljZSwgVGFibGV2aWV3Q29tcG9uZW50U2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgTW5nVGFibGV2aWV3Q29tcG9uZW50PFQsIFM+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkZXNjcmlwdG9yITogVGFibGV2aWV3RGVzY3JpcHRvcjxUPjtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGF0YVByb3ZpZGVyPzogSVRhYmxldmlld0RhdGFQcm92aWRlcjxULCBTPjtcbiAgICBASW5wdXQoKSBwdWJsaWMgYWN0aW9uczogQXJyYXk8QWN0aW9uRGVzY3JpcHRvcjxUPj4gPSBbXTtcblxuICAgIEBWaWV3Q2hpbGQoTW5nVGFibGVDb21wb25lbnQpIHB1YmxpYyB0YWJsZUNvbXBvbmVudDogTW5nVGFibGVDb21wb25lbnQ8VCwgUz4gfCBudWxsID0gbnVsbDtcblxuICAgIHB1YmxpYyByb3dDbGlja0FjdGlvbnM6IEFjdGlvbkRlc2NyaXB0b3I8VD5bXSA9IFtdO1xuICAgIHB1YmxpYyByb3dJbmxpbmVBY3Rpb25zOiBBY3Rpb25EZXNjcmlwdG9yPFQ+W10gPSBbXTtcbiAgICBwdWJsaWMgdG9vbGJhckxlZnRBY3Rpb25zOiBBY3Rpb25EZXNjcmlwdG9yPFQ+W10gPSBbXTtcbiAgICBwdWJsaWMgdG9vbGJhclJpZ2h0QWN0aW9uczogQWN0aW9uRGVzY3JpcHRvcjxUPltdID0gW107XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFjdGlvblNlcnZpY2U6IE1uZ0FjdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdGFibGV2aWV3U2VydmljZTogVGFibGV2aWV3Q29tcG9uZW50U2VydmljZTxULCBTPlxuICAgICkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnRhYmxldmlld1NlcnZpY2UuYWN0aW9ucyA9IHRoaXMuYWN0aW9ucztcbiAgICAgICAgdGhpcy50YWJsZXZpZXdTZXJ2aWNlLmRhdGFQcm92aWRlciA9IHRoaXMuZGF0YVByb3ZpZGVyO1xuICAgICAgICB0aGlzLnRhYmxldmlld1NlcnZpY2UubWVzc2FnZVNlcnZpY2UgPSB0aGlzLm1lc3NhZ2VTZXJ2aWNlO1xuICAgICAgICBjb25zdCByZWxvYWRUYWJsZVN1YnNjcmlwdGlvbiA9IHRoaXMudGFibGV2aWV3U2VydmljZS5yZWxvYWRUYWJsZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVsb2FkVGFibGUoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHJlbG9hZFRhYmxlU3Vic2NyaXB0aW9uKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGFjdGlvbiBvZiB0aGlzLmFjdGlvbnMpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uLnBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25Qb3NpdGlvbkVudW0uUm93Q2xpY2s6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm93Q2xpY2tBY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25Qb3NpdGlvbkVudW0uUm93SW5saW5lOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvd0lubGluZUFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEFjdGlvblBvc2l0aW9uRW51bS5Ub29sYmFyTGVmdDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sYmFyTGVmdEFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEFjdGlvblBvc2l0aW9uRW51bS5Ub29sYmFyUmlnaHQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbGJhclJpZ2h0QWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVsb2FkVGFibGUoKSB7XG4gICAgICAgIHRoaXMudGFibGVDb21wb25lbnQ/LnJlbG9hZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblRhYmxlQ2VsbENsaWNrKGV2ZW50OiBNbmdUYWJsZUNlbGxDbGlja0V2ZW50PFQ+KSB7XG4gICAgICAgIGlmICh0aGlzLnJvd0NsaWNrQWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIHRoaXMucm93Q2xpY2tBY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3Rpb25TZXJ2aWNlLnRyaWdnZXJSb3dDbGlja0FjdGlvbihhY3Rpb24sIGV2ZW50LCB0aGlzLnJvdXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtbmctdGFibGV2aWV3XCI+XG4gICAgPHAtdG9hc3Q+PC9wLXRvYXN0PlxuXG4gICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cbiAgICAgICAgPHAtdG9vbGJhciBzdHlsZUNsYXNzPVwibWItNFwiICpuZ0lmPVwidG9vbGJhckxlZnRBY3Rpb25zLmxlbmd0aCA+IDAgfHwgdG9vbGJhclJpZ2h0QWN0aW9ucy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwibGVmdFwiPlxuICAgICAgICAgICAgICAgIDxtbmctYWN0aW9uICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgdG9vbGJhckxlZnRBY3Rpb25zXCIgW2FjdGlvbl09XCJhY3Rpb25cIj4gPC9tbmctYWN0aW9uPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cInJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgPG1uZy1hY3Rpb24gKm5nRm9yPVwibGV0IGFjdGlvbiBvZiB0b29sYmFyUmlnaHRBY3Rpb25zXCIgW2FjdGlvbl09XCJhY3Rpb25cIj4gPC9tbmctYWN0aW9uPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9wLXRvb2xiYXI+XG5cbiAgICAgICAgPG1uZy10YWJsZSBbZGVzY3JpcHRvcl09XCJkZXNjcmlwdG9yLnRhYmxlXCIgW2RhdGFQcm92aWRlcl09XCJkYXRhUHJvdmlkZXJcIiBbdXNlUXVlcnlQYXJhbXNdPVwidHJ1ZVwiIChjZWxsQ2xpY2spPVwib25UYWJsZUNlbGxDbGljaygkZXZlbnQpXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbW5nVGVtcGxhdGU9XCJjYXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gbWQ6ZmxleC1yb3cgbWQ6anVzdGlmeS1jb250ZW50LWJldHdlZW4gdGFibGUtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cInAtbS0wXCI+e3sgZGVzY3JpcHRvci50YWJsZVRpdGxlIHwgdHJhbnNsYXRlIH19PC9oNT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbW5nVGVtcGxhdGU9XCJjb2x1bW5BY3Rpb25cIiBsZXQtaXRlbT1cInJvd0l0ZW1cIj5cbiAgICAgICAgICAgICAgICA8bW5nLWFjdGlvblxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHJvd0lubGluZUFjdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICBbYWN0aW9uXT1cImFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIFtpdGVtXT1cIml0ZW1cIlxuICAgICAgICAgICAgICAgICAgICBbaXRlbUlkXT1cImRlc2NyaXB0b3IubW9kZWwuaWRQcm9wZXJ0eU5hbWUgPyBpdGVtW2Rlc2NyaXB0b3IubW9kZWwuaWRQcm9wZXJ0eU5hbWVdIDogbnVsbFwiPlxuICAgICAgICAgICAgICAgIDwvbW5nLWFjdGlvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbW5nLXRhYmxlPlxuICAgIDwvZGl2PlxuXG4gICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuPC9kaXY+XG4iXX0=
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXZpZXcvdGFibGV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXZpZXcvdGFibGV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFxQixTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJN0UsT0FBTyxFQUFDLG1CQUFtQixFQUFFLGNBQWMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUtoRSxPQUFPLEVBQW1CLGtCQUFrQixFQUFzQixNQUFNLG1CQUFtQixDQUFDO0FBRzVGLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNyRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFPMUQsTUFBTSxPQUFPLHFCQUFxQjtJQWM5QixZQUNZLEtBQXFCLEVBQ3JCLGNBQThCLEVBQzlCLGdCQUFrQyxFQUNsQyxhQUE0QixFQUM1QixtQkFBd0MsRUFDeEMsYUFBK0IsRUFDL0IsZ0JBQWlEO1FBTmpELFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQy9CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUM7UUFsQjdDLFlBQU8sR0FBK0IsRUFBRSxDQUFDO1FBRXBCLG1CQUFjLEdBQW1DLElBQUksQ0FBQztRQUVwRixvQkFBZSxHQUEwQixFQUFFLENBQUM7UUFDNUMscUJBQWdCLEdBQTBCLEVBQUUsQ0FBQztRQUM3Qyx1QkFBa0IsR0FBMEIsRUFBRSxDQUFDO1FBQy9DLHdCQUFtQixHQUEwQixFQUFFLENBQUM7UUFFL0Msa0JBQWEsR0FBbUIsRUFBRSxDQUFDO0lBVXhDLENBQUM7SUFFSixRQUFRO1FBQ0osSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzdDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN2RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDM0QsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDOUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUVqRCxLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDL0IsUUFBUSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUNyQixLQUFLLGtCQUFrQixDQUFDLFFBQVE7b0JBQzVCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNsQyxNQUFNO2dCQUNWLEtBQUssa0JBQWtCLENBQUMsU0FBUztvQkFDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDbkMsTUFBTTtnQkFDVixLQUFLLGtCQUFrQixDQUFDLFdBQVc7b0JBQy9CLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3JDLE1BQU07Z0JBQ1YsS0FBSyxrQkFBa0IsQ0FBQyxZQUFZO29CQUNoQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN0QyxNQUFNO2FBQ2I7U0FDSjtJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEtBQWdDO1FBQ3BELElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUU7WUFDN0IsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUN2QyxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3ZFO1NBQ0o7SUFDTCxDQUFDOztrSEFqRVEscUJBQXFCO3NHQUFyQixxQkFBcUIsZ0lBRm5CLENBQUMsY0FBYyxFQUFFLG1CQUFtQixFQUFFLHlCQUF5QixDQUFDLDBFQU9oRSxpQkFBaUIsZ0RDekJoQyxtZ0RBaUNBOzJGRGJhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDSSxlQUFlLGFBRWQsQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLEVBQUUseUJBQXlCLENBQUM7c1NBRzNELFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUUrQixjQUFjO3NCQUFsRCxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtDb25maXJtYXRpb25TZXJ2aWNlLCBNZXNzYWdlU2VydmljZX0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHtEaWFsb2dTZXJ2aWNlfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0lUYWJsZXZpZXdEYXRhUHJvdmlkZXJ9IGZyb20gJy4uLy4uL2RhdGEtcHJvdmlkZXJzJztcbmltcG9ydCB7QWN0aW9uRGVzY3JpcHRvciwgQWN0aW9uUG9zaXRpb25FbnVtLCBUYWJsZXZpZXdEZXNjcmlwdG9yfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9ycyc7XG5pbXBvcnQge01uZ0FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7TW5nVGFibGVDZWxsQ2xpY2tFdmVudH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHtUYWJsZXZpZXdDb21wb25lbnRTZXJ2aWNlfSBmcm9tICcuL3NlcnZpY2VzJztcbmltcG9ydCB7TW5nVGFibGVDb21wb25lbnR9IGZyb20gJy4vdGFibGUvdGFibGUuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtbmctdGFibGV2aWV3JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGV2aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtNZXNzYWdlU2VydmljZSwgQ29uZmlybWF0aW9uU2VydmljZSwgVGFibGV2aWV3Q29tcG9uZW50U2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgTW5nVGFibGV2aWV3Q29tcG9uZW50PFQsIFM+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkZXNjcmlwdG9yITogVGFibGV2aWV3RGVzY3JpcHRvcjxUPjtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGF0YVByb3ZpZGVyPzogSVRhYmxldmlld0RhdGFQcm92aWRlcjxULCBTPjtcbiAgICBASW5wdXQoKSBwdWJsaWMgYWN0aW9uczogQXJyYXk8QWN0aW9uRGVzY3JpcHRvcjxUPj4gPSBbXTtcblxuICAgIEBWaWV3Q2hpbGQoTW5nVGFibGVDb21wb25lbnQpIHB1YmxpYyB0YWJsZUNvbXBvbmVudDogTW5nVGFibGVDb21wb25lbnQ8VCwgUz4gfCBudWxsID0gbnVsbDtcblxuICAgIHB1YmxpYyByb3dDbGlja0FjdGlvbnM6IEFjdGlvbkRlc2NyaXB0b3I8VD5bXSA9IFtdO1xuICAgIHB1YmxpYyByb3dJbmxpbmVBY3Rpb25zOiBBY3Rpb25EZXNjcmlwdG9yPFQ+W10gPSBbXTtcbiAgICBwdWJsaWMgdG9vbGJhckxlZnRBY3Rpb25zOiBBY3Rpb25EZXNjcmlwdG9yPFQ+W10gPSBbXTtcbiAgICBwdWJsaWMgdG9vbGJhclJpZ2h0QWN0aW9uczogQWN0aW9uRGVzY3JpcHRvcjxUPltdID0gW107XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFjdGlvblNlcnZpY2U6IE1uZ0FjdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdGFibGV2aWV3U2VydmljZTogVGFibGV2aWV3Q29tcG9uZW50U2VydmljZTxULCBTPlxuICAgICkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnRhYmxldmlld1NlcnZpY2UuYWN0aW9ucyA9IHRoaXMuYWN0aW9ucztcbiAgICAgICAgdGhpcy50YWJsZXZpZXdTZXJ2aWNlLmRhdGFQcm92aWRlciA9IHRoaXMuZGF0YVByb3ZpZGVyO1xuICAgICAgICB0aGlzLnRhYmxldmlld1NlcnZpY2UubWVzc2FnZVNlcnZpY2UgPSB0aGlzLm1lc3NhZ2VTZXJ2aWNlO1xuICAgICAgICBjb25zdCByZWxvYWRUYWJsZVN1YnNjcmlwdGlvbiA9IHRoaXMudGFibGV2aWV3U2VydmljZS5yZWxvYWRUYWJsZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVsb2FkVGFibGUoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHJlbG9hZFRhYmxlU3Vic2NyaXB0aW9uKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGFjdGlvbiBvZiB0aGlzLmFjdGlvbnMpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uLnBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25Qb3NpdGlvbkVudW0uUm93Q2xpY2s6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm93Q2xpY2tBY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25Qb3NpdGlvbkVudW0uUm93SW5saW5lOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvd0lubGluZUFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEFjdGlvblBvc2l0aW9uRW51bS5Ub29sYmFyTGVmdDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sYmFyTGVmdEFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEFjdGlvblBvc2l0aW9uRW51bS5Ub29sYmFyUmlnaHQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbGJhclJpZ2h0QWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVsb2FkVGFibGUoKSB7XG4gICAgICAgIHRoaXMudGFibGVDb21wb25lbnQ/LnJlbG9hZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblRhYmxlQ2VsbENsaWNrKGV2ZW50OiBNbmdUYWJsZUNlbGxDbGlja0V2ZW50PFQ+KSB7XG4gICAgICAgIGlmICh0aGlzLnJvd0NsaWNrQWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIHRoaXMucm93Q2xpY2tBY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3Rpb25TZXJ2aWNlLnRyaWdnZXJSb3dDbGlja0FjdGlvbihhY3Rpb24sIGV2ZW50LCB0aGlzLnJvdXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtbmctdGFibGV2aWV3XCI+XG4gICAgPHAtdG9hc3Q+PC9wLXRvYXN0PlxuXG4gICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cbiAgICAgICAgPHAtdG9vbGJhciBzdHlsZUNsYXNzPVwibWItNFwiICpuZ0lmPVwidG9vbGJhckxlZnRBY3Rpb25zLmxlbmd0aCA+IDAgfHwgdG9vbGJhclJpZ2h0QWN0aW9ucy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwibGVmdFwiPlxuICAgICAgICAgICAgICAgIDxtbmctYWN0aW9uICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgdG9vbGJhckxlZnRBY3Rpb25zXCIgW2FjdGlvbl09XCJhY3Rpb25cIj4gPC9tbmctYWN0aW9uPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cInJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgPG1uZy1hY3Rpb24gKm5nRm9yPVwibGV0IGFjdGlvbiBvZiB0b29sYmFyUmlnaHRBY3Rpb25zXCIgW2FjdGlvbl09XCJhY3Rpb25cIj4gPC9tbmctYWN0aW9uPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9wLXRvb2xiYXI+XG5cbiAgICAgICAgPG1uZy10YWJsZSBbZGVzY3JpcHRvcl09XCJkZXNjcmlwdG9yLnRhYmxlXCIgW2RhdGFQcm92aWRlcl09XCJkYXRhUHJvdmlkZXJcIiBbdXNlUXVlcnlQYXJhbXNdPVwidHJ1ZVwiIChjZWxsQ2xpY2spPVwib25UYWJsZUNlbGxDbGljaygkZXZlbnQpXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbW5nVGVtcGxhdGU9XCJjYXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gbWQ6ZmxleC1yb3cgbWQ6anVzdGlmeS1jb250ZW50LWJldHdlZW4gdGFibGUtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cInAtbS0wXCI+e3sgZGVzY3JpcHRvci50YWJsZVRpdGxlIHwgdHJhbnNsYXRlIH19PC9oNT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbW5nVGVtcGxhdGU9XCJjb2x1bW5BY3Rpb25cIiBsZXQtaXRlbT1cInJvd0l0ZW1cIj5cbiAgICAgICAgICAgICAgICA8bW5nLWFjdGlvblxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHJvd0lubGluZUFjdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICBbYWN0aW9uXT1cImFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIFtpdGVtXT1cIml0ZW1cIlxuICAgICAgICAgICAgICAgICAgICBbaXRlbUlkXT1cImRlc2NyaXB0b3IubW9kZWwuaWRQcm9wZXJ0eU5hbWUgPyBpdGVtW2Rlc2NyaXB0b3IubW9kZWwuaWRQcm9wZXJ0eU5hbWVdIDogbnVsbFwiPlxuICAgICAgICAgICAgICAgIDwvbW5nLWFjdGlvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbW5nLXRhYmxlPlxuICAgIDwvZGl2PlxuXG4gICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuPC9kaXY+XG4iXX0=