@sbb-esta/lyne-elements-dev 5.0.0-next-dev.1776924015 → 5.0.0-next-dev.1776934572

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 (75) hide show
  1. package/chip-label/chip-label.component.js +1 -1
  2. package/chip-label.component-zRiHSxbn.js +77 -0
  3. package/chip-label.js +1 -1
  4. package/chip-label.pure.js +1 -1
  5. package/core/styles/_index.scss +0 -1
  6. package/custom-elements.json +1560 -1560
  7. package/development/block-link-common-qMULXu4g.js +1 -1
  8. package/development/breadcrumb-group.component-BC1mWiQE.js +1 -1
  9. package/development/button-common-ChY47M8t.js +1 -1
  10. package/development/calendar-cell-base-element-DDNYX7UQ.js +1 -1
  11. package/development/calendar.component-B5dz7mau.js +1 -1
  12. package/development/card-action-common-HYrFMTkA.js +1 -1
  13. package/development/carousel-list.component-z40-4ANn.js +1 -1
  14. package/development/carousel.component-BHYBvOm7.js +1 -1
  15. package/development/checkbox-common-DOoEKgML.js +1 -1
  16. package/development/checkbox-group/checkbox-group.component.js +1 -1
  17. package/development/chip-group.component-B4Mjcep2.js +1 -1
  18. package/development/chip-label/chip-label.component.d.ts +1 -1
  19. package/development/chip-label/chip-label.component.d.ts.map +1 -1
  20. package/development/chip-label/chip-label.component.js +1 -1
  21. package/development/chip-label.component-Cx8mfi0y.js +100 -0
  22. package/development/chip-label.js +1 -1
  23. package/development/chip-label.pure.js +1 -1
  24. package/development/core/a11y/input-modality-detector.js +1 -1
  25. package/development/core/base-elements/element.js +1 -1
  26. package/development/core/controllers/media-matchers-controller.js +1 -1
  27. package/development/core/datetime/date-adapter.js +1 -1
  28. package/development/core/datetime/native-date-adapter.js +1 -1
  29. package/development/core/datetime/temporal-date-adapter.js +1 -1
  30. package/development/core/mixins/disabled-mixin.js +1 -1
  31. package/development/core/mixins/form-associated-checkbox-mixin.js +1 -1
  32. package/development/core/mixins/form-associated-input-mixin.js +1 -1
  33. package/development/core/mixins/form-associated-mixin.js +1 -1
  34. package/development/core/mixins/form-associated-radio-button-mixin.js +1 -1
  35. package/development/core/mixins/named-slot-list-mixin.js +1 -1
  36. package/development/core/mixins/negative-mixin.js +1 -1
  37. package/development/core/mixins/readonly-mixin.js +1 -1
  38. package/development/core/mixins/required-mixin.js +1 -1
  39. package/development/core/testing/event-spy.js +1 -1
  40. package/development/datepicker-button-BI5R118p.js +1 -1
  41. package/development/file-selector-common-DE_jT1fa.js +1 -1
  42. package/development/header-action-common-BEnsweEr.js +1 -1
  43. package/development/icon/icon-name-mixin.js +1 -1
  44. package/development/image.component-BuAPmhIt.js +1 -1
  45. package/development/link-list-base-B7vidwUW.js +1 -1
  46. package/development/mini-calendar.component-Ddxgy4Tj.js +1 -1
  47. package/development/navigation-action-common-B2soWZWW.js +1 -1
  48. package/development/navigation-section.component-VwCJlOfE.js +1 -1
  49. package/development/navigation.component-lgvLMF5e.js +1 -1
  50. package/development/option/option/option-base-element.js +1 -1
  51. package/development/paginator/common/paginator-common.js +1 -1
  52. package/development/panel-mixin-CKHxLmjh.js +1 -1
  53. package/development/popover.component-C-zVDwjc.js +1 -1
  54. package/development/radio-button-common-ZMs5IFm2.js +1 -1
  55. package/development/radio-button-panel/radio-button-panel.component.js +1 -1
  56. package/development/sidebar-container.component-CC9TtB6I.js +1 -1
  57. package/development/sidebar.component-zMWbdz0h.js +1 -1
  58. package/development/stepper.component-BTwJttZt.js +1 -1
  59. package/development/sticky-bar.component-MMBSPa2B.js +1 -1
  60. package/development/tab-group.component-DX7BY7Xy.js +1 -1
  61. package/development/teaser/teaser.component.js +1 -1
  62. package/development/teaser-product-common-DasV_SDa.js +1 -1
  63. package/development/{teaser.component-DwM26tMt.js → teaser.component-C7uXEaPK.js} +2 -2
  64. package/development/teaser.js +1 -1
  65. package/development/teaser.pure.js +1 -1
  66. package/development/time-input.component-x-QOtbwE.js +1 -1
  67. package/development/toggle.component-CQYpVyvs.js +1 -1
  68. package/package.json +2 -2
  69. package/teaser/teaser.component.js +1 -1
  70. package/{teaser.component-Bl_Myx2h.js → teaser.component-B2y2AlAx.js} +1 -1
  71. package/teaser.js +1 -1
  72. package/teaser.pure.js +1 -1
  73. package/chip-label.component-CUJTTb1-.js +0 -79
  74. package/core/styles/mixins/chip.scss +0 -95
  75. package/development/chip-label.component-C1CGL8zb.js +0 -102
@@ -346,4 +346,4 @@ var SbbSidebarElement = (() => {
346
346
  //#endregion
347
347
  export { SbbSidebarElement as t };
348
348
 
349
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQtek1XYmR6MGguanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3NpZGViYXIvc2lkZWJhci9zaWRlYmFyLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3NpZGViYXIvc2lkZWJhci9zaWRlYmFyLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLWxpbmstdGV4dC1kZWNvcmF0aW9uLWxpbmU6IG5vbmU7XG4gIC0tc2JiLXNpZGViYXItYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMSk7XG4gIC0tc2JiLXNpZGViYXItc2Nyb2xsYmFyLXBsYWNlaG9sZGVyLXdpZHRoOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0zeCk7XG4gIC0tX3NiYi1zaWRlYmFyLW1hcmdpbjogMDtcbiAgLS1fc2JiLXNpZGViYXItbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1zYmItc2lkZWJhci1tYXJnaW4pO1xuICAtLV9zYmItc2lkZWJhci10cmFuc2xhdGUteDogLTEwMCU7XG4gIC0tX3NiYi1zaWRlYmFyLXotaW5kZXg6IDI7XG4gIC0tX3NiYi1zaWRlYmFyLXBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tc2JiLXNpZGViYXItcGFkZGluZyk7XG4gIC0tX3NiYi1zaWRlYmFyLXBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLXNiYi1zaWRlYmFyLXBhZGRpbmcpO1xuICAtLV9zYmItc2lkZWJhci1ib3JkZXItcmFkaXVzLXN0YXJ0OiB2YXIoLS1zYmItc2lkZWJhci1ib3JkZXItcmFkaXVzKTtcbiAgLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1lbmQ6IDA7XG4gIC0tX3NiYi1zaWRlYmFyLWNsb3NlLWJ1dHRvbi1zaXplOiB2YXIoLS1zYmItc2l6ZS1lbGVtZW50LXhzKTtcbiAgLS1fc2JiLXNpZGViYXItbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAyICogdmFyKC0tX3NiYi1zaWRlYmFyLW1hcmdpbikpO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDMyMCl9O1xuXG4gIC8vIFN1YnRyYWN0IHRoZSB3aWR0aCBvZiB0aGUgc2Nyb2xsYmFyIGZyb20gdGhlIHBhZGRpbmcgKEV4Y2x1ZGUgaU9TIGJyb3dzZXJzIGJlY2F1c2UgdGhleSB1c2Ugb3ZlcmxheSBzY3JvbGxiYXJzKVxuICBAc3VwcG9ydHMgKHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZSkgYW5kIChub3QgKC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZSkpIHtcbiAgICAtLV9zYmItc2lkZWJhci1wYWRkaW5nLWlubGluZS1lbmQ6IGNhbGMoXG4gICAgICB2YXIoLS1zYmItc2lkZWJhci1wYWRkaW5nKSAtIHZhcigtLXNiYi1zaWRlYmFyLXNjcm9sbGJhci1wbGFjZWhvbGRlci13aWR0aClcbiAgICApO1xuICB9XG59XG5cbjpob3N0KFtjb2xvcj0nd2hpdGUnXSkge1xuICAtLXNiYi1zaWRlYmFyLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTEpO1xufVxuXG46aG9zdChbY29sb3I9J21pbGsnXSkge1xuICAtLXNiYi1zaWRlYmFyLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTMpO1xufVxuXG46aG9zdCg6aXMoW21vZGU9J292ZXInXSwgOnN0YXRlKG1vZGUtb3Zlci1mb3JjZWQpOm5vdCg6c3RhdGUobW9kZS1vdmVyLWZvcmNlZC1jbG9zaW5nKSkpKSB7XG4gIC0tX3NiYi1zaWRlYmFyLW1hcmdpbjogdmFyKC0tc2JiLXNpZGViYXItbWFyZ2luKTtcbiAgLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1lbmQ6IHZhcigtLXNiYi1zaWRlYmFyLWJvcmRlci1yYWRpdXMpO1xuICAtLV9zYmItc2lkZWJhci16LWluZGV4OiAzO1xufVxuXG46aG9zdCg6aXMoOmRpcihydGwpLCBbcG9zaXRpb249J2VuZCddKSkge1xuICAtLV9zYmItc2lkZWJhci10cmFuc2xhdGUteDogMTAwJTtcbn1cblxuOmhvc3QoOmRpcihydGwpW3Bvc2l0aW9uPSdlbmQnXSkge1xuICAtLV9zYmItc2lkZWJhci10cmFuc2xhdGUteDogLTEwMCU7XG59XG5cbi5zYmItc2lkZWJhciB7XG4gIHdpZHRoOiBpbmhlcml0O1xuICBtYXgtd2lkdGg6IHZhcigtLV9zYmItc2lkZWJhci1tYXgtd2lkdGgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc2lkZWJhci1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBpbnNldC1ibG9jazogMDtcbiAgei1pbmRleDogdmFyKC0tX3NiYi1zaWRlYmFyLXotaW5kZXgpO1xuICBib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOiB2YXIoLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1zdGFydCk7XG4gIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1zdGFydCk7XG4gIGJvcmRlci1lbmQtc3RhcnQtcmFkaXVzOiB2YXIoLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1lbmQpO1xuICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IHZhcigtLV9zYmItc2lkZWJhci1ib3JkZXItcmFkaXVzLWVuZCk7XG4gIG1hcmdpbjogdmFyKC0tX3NiYi1zaWRlYmFyLW1hcmdpbik7XG4gIG1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tX3NiYi1zaWRlYmFyLW1hcmdpbi1ibG9jay1zdGFydCk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXNiYi1zaWRlYmFyLWNvbnRhaW5lci1hbmltYXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLXNpZGViYXItY29udGFpbmVyLWFuaW1hdGlvbi1lYXNpbmcpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB3aWR0aCwgdHJhbnNsYXRlO1xuICB0cmFuc2xhdGU6IG5vbmU7XG5cbiAgOmhvc3QoW3Bvc2l0aW9uPSdlbmQnXSkgJiB7XG4gICAgaW5zZXQtaW5saW5lLWVuZDogMDtcbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShzdGF0ZS1jbG9zZWQpKSAmIHtcbiAgICAvLyBTdG9wcyB0aGUgc2lkZW5hdiBmcm9tIHBva2luZyBvdXQgKGUuZy4gd2l0aCB0aGUgYm94IHNoYWRvdykgd2hpbGUgaXQncyBvZmYtc2NyZWVuLlxuICAgIC8vIFdlIGNhbid0IHVzZSBgZGlzcGxheWAgYmVjYXVzZSBpdCBpbnRlcnJ1cHRzIHRoZSB0cmFuc2l0aW9uIGFuZCBgdHJhbnNpdGlvbi1iZWhhdmlvcmBcbiAgICAvLyBpc24ndCBhdmFpbGFibGUgaW4gYWxsIGJyb3dzZXJzLlxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIDpob3N0KDppcyg6c3RhdGUoc3RhdGUtY2xvc2luZyksIDpzdGF0ZShzdGF0ZS1jbG9zZWQpKSkgJiB7XG4gICAgdHJhbnNsYXRlOiB2YXIoLS1fc2JiLXNpZGViYXItdHJhbnNsYXRlLXgpIDA7XG4gIH1cbn1cblxuLnNiYi1zaWRlYmFyLXRpdGxlLXNlY3Rpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgZ2FwOiB2YXIoLS1zYmItc2lkZWJhci10aXRsZS1nYXApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc2lkZWJhci1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zaWRlYmFyLXBhZGRpbmcpO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IHZhcigtLXNiYi1hbmltYXRpb24tZWFzaW5nKSB2YXIoLS1zYmItc2lkZWJhci1jb250YWluZXItYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgYm94LXNoYWRvdzogbm9uZTtcblxuICA6aG9zdCg6c3RhdGUoc2Nyb2xsZWQpKSAmIHtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zYmItYm94LXNoYWRvdy1sZXZlbC01LXNvZnQpO1xuICB9XG59XG5cbi5zYmItc2lkZWJhci1jb250ZW50LXNlY3Rpb24ge1xuICBAaW5jbHVkZSBzYmIuc2Nyb2xsYmFyO1xuXG4gIHBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLV9zYmItc2lkZWJhci1wYWRkaW5nLWJsb2NrLXN0YXJ0KTtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zaWRlYmFyLXBhZGRpbmcpIHZhcigtLV9zYmItc2lkZWJhci1wYWRkaW5nLWlubGluZS1lbmQpO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBmbGV4LWdyb3c6IDE7XG5cbiAgLy8gSWYgdGhlIGVsZW1lbnQgaXMgc2Nyb2xsYWJsZSBhbmQgaGFzIG5vIGZvY3VzYWJsZSBjb250ZW50LCBpdCBnZXRzIGZvY3VzZWQuXG4gIC8vIFRvIGFkYXB0IHRvIGx5bmUgc3R5bGVzIHdlIGNvbG9yaXplIGl0XG4gIG91dGxpbmUtY29sb3I6IHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yKTtcblxuICBAc3VwcG9ydHMgKHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZSkge1xuICAgIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTtcbiAgfVxufVxuXG46OnNsb3R0ZWQoc2JiLXNpZGViYXItdGl0bGUpIHtcbiAgZmxleC1ncm93OiAxO1xuICBtYXJnaW4tYmxvY2s6IHZhcigtLXNiYi1zaWRlYmFyLXRpdGxlLXBhZGRpbmctYmxvY2spO1xufVxuXG46OnNsb3R0ZWQoc2JiLXNpZGViYXItY2xvc2UtYnV0dG9uKSB7XG4gIG9yZGVyOiAxO1xuXG4gIC8vIER1ZSB0byBkZXNpZ24gbmVlZHMsIHdlIGhhdmUgdG8gdHJhbnNsYXRlIHRoZSBjbG9zZSBidXR0b24gdG8gdGhlIHJpZ2h0XG4gIG1hcmdpbi1pbmxpbmUtZW5kOiBjYWxjKFxuICAgIC0xICogKHZhcigtLXNiYi1zaWRlYmFyLXBhZGRpbmcpIC0gdmFyKC0tc2JiLXNpZGViYXItdGl0bGUtcGFkZGluZy1ibG9jaykpXG4gICk7XG4gIG1hcmdpbi1ibG9jazogdmFyKC0tc2JiLXNpZGViYXItdGl0bGUtcGFkZGluZy1ibG9jayk7XG4gIGluc2V0LWlubGluZS1lbmQ6IHZhcigtLXNiYi1zaWRlYmFyLXBhZGRpbmcpO1xufVxuIiwiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGV2ZW50T3B0aW9ucywgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7XG4gIGJveFNpemluZ1N0eWxlcyxcbiAgZm9yY2VUeXBlLFxuICBoYW5kbGVEaXN0aW5jdENoYW5nZSxcbiAgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24sXG4gIFNiYkFuaW1hdGlvbkNvbXBsZXRlTWl4aW4sXG4gIFNiYkVzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLFxuICBTYmJGb2N1c1RyYXBDb250cm9sbGVyLFxuICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlNpZGViYXJDb250YWluZXJFbGVtZW50IH0gZnJvbSAnLi4vc2lkZWJhci1jb250YWluZXIvc2lkZWJhci1jb250YWluZXIuY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vc2lkZWJhci5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgY29ycmVzcG9uZHMgdG8gYSBzaWRlYmFyIHRoYXQgY2FuIGJlIG9wZW5lZCBvbiB0aGUgc2lkZWJhciBjb250YWluZXIuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBzbG90IGFueSBjb250ZW50IGludG8gdGhlIHNpZGViYXIuXG4gKiBAc2xvdCB0aXRsZSAtIFVzZSB0aGUgdGl0bGUgc2xvdCB0byBhZGQgYW4gPHNiYi10aXRsZT4uXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTaWRlYmFyRWxlbWVudCBleHRlbmRzIFNiYkFuaW1hdGlvbkNvbXBsZXRlTWl4aW4oU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1zaWRlYmFyJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgLyoqIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIHNpZGViYXIuIEVpdGhlciBgd2hpdGVgIG9yIGBtaWxrYC4gKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgY29sb3I6ICd3aGl0ZScgfCAnbWlsaycgPSAnd2hpdGUnO1xuXG4gIC8qKiBNb2RlIG9mIHRoZSBzaWRlYmFyOyBvbmUgb2YgJ3NpZGUnIG9yICdvdmVyJy4gKi9cbiAgQGZvcmNlVHlwZSgodikgPT4gKHYgPT09ICdvdmVyJyA/ICdvdmVyJyA6ICdzaWRlJykpXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIG1vZGU6ICdzaWRlJyB8ICdvdmVyJyA9ICdzaWRlJztcblxuICAvKiogVGhlIHNpZGUgdGhhdCB0aGUgc2lkZWJhciBpcyBhdHRhY2hlZCB0by4gKi9cbiAgQGZvcmNlVHlwZSgodikgPT4gKHYgPT09ICdlbmQnID8gJ2VuZCcgOiAnc3RhcnQnKSlcbiAgQGhhbmRsZURpc3RpbmN0Q2hhbmdlKChpbnN0YW5jZSwgX25ld1ZhbHVlLCBvbGRWYWx1ZSkgPT4gaW5zdGFuY2UuX3VwZGF0ZVNpZGViYXJXaWR0aChvbGRWYWx1ZSkpXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIHBvc2l0aW9uOiAnc3RhcnQnIHwgJ2VuZCcgPSAnc3RhcnQnO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBzaWRlYmFyIGlzIG9wZW5lZCBvciBjbG9zZWQuXG4gICAqIENhbiBiZSB1c2VkIHRvIGluaXRpYWxseSBzZXQgdGhlIG9wZW5lZCBzdGF0ZSwgd2hlcmVcbiAgICogdGhlIGFuaW1hdGlvbiB3aWxsIGJlIHNraXBwZWQuXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3Igb3BlbmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHNpZGViYXIgc2hvdWxkIGZvY3VzIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudCBhdXRvbWF0aWNhbGx5IHdoZW4gb3BlbmVkLlxuICAgKiBEZWZhdWx0cyB0byBmYWxzZSBpbiB3aGVuIG1vZGUgaXMgc2V0IHRvIGBzaWRlYCwgb3RoZXJ3aXNlIGRlZmF1bHRzIHRvIHRydWUuXG4gICAqIElmIGV4cGxpY2l0bHkgZW5hYmxlZCwgZm9jdXMgd2lsbCBiZSBtb3ZlZCBpbnRvIHRoZSBzaWRlYmFyIGluIGBzaWRlYCBtb2RlIGFzIHdlbGwuXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiAnZm9jdXMtb24tb3BlbicgfSlcbiAgcHVibGljIGFjY2Vzc29yIGZvY3VzT25PcGVuOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFJldHVybnMgdGhlIFNiYlNpZGViYXJDb250YWluZXJFbGVtZW50IHdoZXJlIHRoaXMgc2lkZWJhciBpcyBjb250YWluZWQuICovXG4gIHB1YmxpYyBnZXQgY29udGFpbmVyKCk6IFNiYlNpZGViYXJDb250YWluZXJFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRhaW5lcjtcbiAgfVxuICBwcml2YXRlIF9jb250YWluZXI6IFNiYlNpZGViYXJDb250YWluZXJFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfbGFzdEZvY3VzZWRFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9mb2N1c1RyYXBDb250cm9sbGVyID0gbmV3IFNiYkZvY3VzVHJhcENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyID0gbmV3IFNiYkVzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyKHRoaXMpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkQ29udHJvbGxlcihcbiAgICAgIG5ldyBSZXNpemVDb250cm9sbGVyKHRoaXMsIHtcbiAgICAgICAgc2tpcEluaXRpYWw6IHRydWUsXG4gICAgICAgIGNhbGxiYWNrOiAoKSA9PiB0aGlzLl91cGRhdGVTaWRlYmFyV2lkdGgoKSxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoZSkgPT4ge1xuICAgICAgaWYgKChlLnRhcmdldCBhcyBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCk/LmxvY2FsTmFtZSA9PT0gJ3NiYi1zaWRlYmFyLWNsb3NlLWJ1dHRvbicpIHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICB0aGlzLl9jb250YWluZXIgPSB0aGlzLmNsb3Nlc3Q/Lignc2JiLXNpZGViYXItY29udGFpbmVyJyk7XG4gICAgdGhpcy5fdXBkYXRlU2lkZWJhcldpZHRoKCk7XG5cbiAgICBpZiAodGhpcy5pc09wZW4gJiYgdGhpcy5faXNNb2RlT3ZlcigpKSB7XG4gICAgICB0aGlzLl90YWtlRm9jdXMoKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzU2VydmVyKSB7XG4gICAgICBpZiAod2luZG93Lm5hdmlnYXRpb24pIHtcbiAgICAgICAgd2luZG93Lm5hdmlnYXRpb24uYWRkRXZlbnRMaXN0ZW5lcignbmF2aWdhdGUnLCB0aGlzLl9jbG9zZU9uTmF2aWdhdGlvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCB0aGlzLl9jbG9zZU9uTmF2aWdhdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5jb250YWluZXI/LnN0eWxlLnJlbW92ZVByb3BlcnR5KHRoaXMuX2J1aWxkQ3NzV2lkdGhWYXIoKSk7XG4gICAgdGhpcy5fY29udGFpbmVyID0gbnVsbDtcblxuICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgIGlmICh3aW5kb3cubmF2aWdhdGlvbikge1xuICAgICAgICB3aW5kb3cubmF2aWdhdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKCduYXZpZ2F0ZScsIHRoaXMuX2Nsb3NlT25OYXZpZ2F0aW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsIHRoaXMuX2Nsb3NlT25OYXZpZ2F0aW9uKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jbG9zZU9uTmF2aWdhdGlvbiA9ICgpOiB2b2lkID0+IHtcbiAgICBpZiAodGhpcy5faXNNb2RlT3ZlcigpICYmIHRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9O1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnb3BlbmVkJykpIHtcbiAgICAgIGlmICh0aGlzLm9wZW5lZCkge1xuICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgIH0gZWxzZSBpZiAoIXRoaXMub3BlbmVkKSB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdtb2RlJykpIHtcbiAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdvdmVyJyAmJiB0aGlzLmlzT3Blbikge1xuICAgICAgICB0aGlzLl90YWtlRm9jdXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2VkZUZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgdGhpcy5fdXBkYXRlU2lkZWJhcldpZHRoKCk7XG4gIH1cblxuICAvKiogVG9nZ2xlcyB0aGUgc2lkZWJhciB2aXNpYmlsaXR5LiAqL1xuICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSAnb3BlbmluZycgfHwgdGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCcpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIE9wZW5zIHRoZSBzaWRlYmFyLiAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnIHx8IHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnIHx8ICF0aGlzLmRpc3BhdGNoQmVmb3JlT3BlbkV2ZW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXJ0QW5pbWF0aW9uKCk7XG5cbiAgICBpZiAoIWlzU2VydmVyICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmxvY2FsTmFtZSAhPT0gJ2JvZHknKSB7XG4gICAgICB0aGlzLl9sYXN0Rm9jdXNlZEVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIH1cblxuICAgIHRoaXMub3BlbmVkID0gdHJ1ZTtcbiAgICB0aGlzLnN0YXRlID0gJ29wZW5pbmcnO1xuXG4gICAgY29uc3QgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24gPSB0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpIHx8ICF0aGlzLmlzQ29ubmVjdGVkO1xuICAgIGNvbnN0IGlzRHVyaW5nSW5pdGlhbGl6YXRpb24gPSAhdGhpcy5oYXNVcGRhdGVkO1xuXG4gICAgaWYgKCEoaXNEdXJpbmdJbml0aWFsaXphdGlvbiB8fCBpc1plcm9BbmltYXRpb25EdXJhdGlvbikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnc2tpcC1hbmltYXRpb24nKTtcblxuICAgIC8vIFdlIGhhdmUgdG8gd2FpdCBmb3IgdGhlIGZpcnN0IHVwZGF0ZSB0byBiZSBjb21wbGV0ZWRcbiAgICAvLyBpbiBvcmRlciB0byBoYXZlIHRoZSBzaXplIG9mIHRoZSBzaWRlYmFyIHJlYWR5IGZvciB0aGUgYW5pbWF0aW9uLlxuICAgIGlmIChpc0R1cmluZ0luaXRpYWxpemF0aW9uKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4gdGhpcy5faGFuZGxlT3BlbmluZygpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLXNpZGViYXItY29udGFpbmVyLWFuaW1hdGlvbi1kdXJhdGlvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlT3BlbmluZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ29wZW5lZCc7XG5cbiAgICAvLyBXZSBoYXZlIHRvIGVuc3VyZSB0aGF0IHJlbW92aW5nIHRoZSBhbmltYXRpb24gc2tpcCBpbnN0cnVjdGlvbiBpcyBkb25lIGEgdGljayBsYXRlci5cbiAgICAvLyBPdGhlcndpc2UsIGl0J3MgcmVtb3ZlZCB0b28gZWFybHkgYW5kIGl0IGRvZXNuJ3QgaGF2ZSBhbnkgZWZmZWN0LlxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnc2tpcC1hbmltYXRpb24nKSk7XG5cbiAgICB0aGlzLl90YWtlRm9jdXMoKTtcbiAgICB0aGlzLnN0b3BBbmltYXRpb24oKTtcbiAgICB0aGlzLmRpc3BhdGNoT3BlbkV2ZW50KCk7XG4gIH1cblxuICAvKiogQ2xvc2VzIHRoZSBzaWRlYmFyLiAqL1xuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdjbG9zaW5nJyB8fCB0aGlzLnN0YXRlID09PSAnY2xvc2VkJyB8fCAhdGhpcy5kaXNwYXRjaEJlZm9yZUNsb3NlRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RhcnRBbmltYXRpb24oKTtcblxuICAgIGNvbnN0IGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uID0gdGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTtcblxuICAgIGlmICghdGhpcy5oYXNVcGRhdGVkIHx8IGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKCdza2lwLWFuaW1hdGlvbicpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0YXRlID0gJ2Nsb3NpbmcnO1xuICAgIH1cblxuICAgIHRoaXMub3BlbmVkID0gZmFsc2U7XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICBpZiAoIXRoaXMuaGFzVXBkYXRlZCB8fCBpc1plcm9BbmltYXRpb25EdXJhdGlvbikge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIC8vIFdlIGhhdmUgdG8gZW5zdXJlIHRoYXQgcmVtb3ZpbmcgdGhlIGFuaW1hdGlvbiBza2lwIGluc3RydWN0aW9uIGlzIGRvbmUgYSB0aWNrIGxhdGVyLlxuICAgIC8vIE90aGVyd2lzZSwgaXQncyByZW1vdmVkIHRvbyBlYXJseSBhbmQgaXQgZG9lc24ndCBoYXZlIGFueSBlZmZlY3QuXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKCdza2lwLWFuaW1hdGlvbicpKTtcbiAgICB0aGlzLmNlZGVGb2N1cygpO1xuXG4gICAgaWYgKCFpc1NlcnZlciAmJiAodGhpcy5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB8fCB0aGlzLl9pc01vZGVPdmVyKCkpKSB7XG4gICAgICBpZiAodGhpcy5fbGFzdEZvY3VzZWRFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuX2xhc3RGb2N1c2VkRWxlbWVudD8uZm9jdXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFdlIGRvbid0IGtub3cgd2hlcmUgdG8gc2V0IHRoZSBmb2N1cywgYnV0IGhhdmUgdG8gcmVtb3ZlIGl0LCBzbyB3ZSBjYWxsIGJsdXJcbiAgICAgICAgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmJsdXIoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fbGFzdEZvY3VzZWRFbGVtZW50ID0gbnVsbDtcblxuICAgIHRoaXMuc3RvcEFuaW1hdGlvbigpO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KCk7XG4gIH1cblxuICBwcml2YXRlIF90YWtlRm9jdXMoKTogdm9pZCB7XG4gICAgLy8gV2UgcHJldmVudCBjYWxsaW5nIHRoZSBmb2N1cyBzdHVmZiB3aGVuIG5vdCBuZWVkZWRcbiAgICBpZiAoIXRoaXMuaXNDb25uZWN0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgaXNNb2RlT3ZlciA9IHRoaXMuX2lzTW9kZU92ZXIoKTtcblxuICAgIGlmIChpc01vZGVPdmVyIHx8IHRoaXMuZm9jdXNPbk9wZW4pIHtcbiAgICAgIHRoaXMuX2ZvY3VzVHJhcENvbnRyb2xsZXIuZm9jdXNJbml0aWFsRWxlbWVudCgpO1xuICAgIH1cblxuICAgIGlmIChpc01vZGVPdmVyKSB7XG4gICAgICB0aGlzLl9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5jb25uZWN0KCk7XG4gICAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8vIEludGVybmFsIG1ldGhvZCB0aGF0IHdlIHVzZSBleHRlcm5hbGx5LiBgcHJvdGVjdGVkYCBwcmVzZXJ2ZXMgdHlwZSBpbmZvcm1hdGlvbiBmb3IgdHlwZSBzYWZlIGFjY2Vzcy5cbiAgcHJvdGVjdGVkIGNlZGVGb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLl9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTaWRlYmFyV2lkdGgob2xkUG9zaXRpb24/OiB0aGlzWydwb3NpdGlvbiddKTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAob2xkUG9zaXRpb24pIHtcbiAgICAgIGNvbnRhaW5lci5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0aGlzLl9idWlsZENzc1dpZHRoVmFyKG9sZFBvc2l0aW9uKSk7XG4gICAgfVxuXG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLm9mZnNldFdpZHRoO1xuICAgIGlmICghd2lkdGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdWYWx1ZSA9IGAke3dpZHRofXB4YDtcbiAgICBjb25zdCBhY3R1YWxWYWx1ZSA9IGNvbnRhaW5lci5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHRoaXMuX2J1aWxkQ3NzV2lkdGhWYXIoKSk7XG5cbiAgICBpZiAoYWN0dWFsVmFsdWUgPT09IG5ld1ZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29udGFpbmVyLnN0eWxlLnNldFByb3BlcnR5KHRoaXMuX2J1aWxkQ3NzV2lkdGhWYXIoKSwgbmV3VmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYnVpbGRDc3NXaWR0aFZhcihwb3NpdGlvbiA9IHRoaXMucG9zaXRpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBgLS1fc2JiLXNpZGViYXItY29udGFpbmVyLSR7cG9zaXRpb259LXdpZHRoYDtcbiAgfVxuXG4gIHByaXZhdGUgX2lzTW9kZU92ZXIoKTogYm9vbGVhbiB7XG4gICAgLy8gSWYgdGhlIG1pbmltdW0gc3BhY2UgYXR0cmlidXRlIGlzIHNldCwgdGhlIHNpZGViYXIgc2hvdWxkIGJlaGF2ZSBsaWtlIGluIG1vZGUgb3Zlci5cbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnb3ZlcicgfHwgdGhpcy5tYXRjaGVzKCc6c3RhdGUobW9kZS1vdmVyLWZvcmNlZCknKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uVHJhbnNpdGlvbkVuZChldmVudDogVHJhbnNpdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgLy8gV2UgZW5zdXJlIHRoYXQgd2UgcmVhY3QgdG8gdGhlIGZhZGUgaW4gdHJhbnNpdGlvbiBvbiB0aGUgc2JiLXNpZGViYXIgZGl2XG4gICAgaWYgKGV2ZW50LnByb3BlcnR5TmFtZSAhPT0gJ3RyYW5zbGF0ZScgfHwgZXZlbnQudGFyZ2V0ICE9PSBldmVudC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgQGV2ZW50T3B0aW9ucyh7IHBhc3NpdmU6IHRydWUgfSlcbiAgcHJpdmF0ZSBfZGV0ZWN0U2Nyb2xsZWRTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKFxuICAgICAgJ3Njcm9sbGVkJyxcbiAgICAgICh0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5zYmItc2lkZWJhci1jb250ZW50LXNlY3Rpb24nKT8uc2Nyb2xsVG9wID8/IDApID4gMCxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cInNiYi1zaWRlYmFyXCIgQHRyYW5zaXRpb25lbmQ9JHt0aGlzLl9vblRyYW5zaXRpb25FbmR9PlxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1zaWRlYmFyLXRpdGxlLXNlY3Rpb25cIj48c2xvdCBuYW1lPVwidGl0bGUtc2VjdGlvblwiPjwvc2xvdD48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2lkZWJhci1jb250ZW50LXNlY3Rpb25cIiBAc2Nyb2xsPSR7KCkgPT4gdGhpcy5fZGV0ZWN0U2Nyb2xsZWRTdGF0ZSgpfT5cbiAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+YDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNpZGViYXInOiBTYmJTaWRlYmFyRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7SUMrQmEsMkJBQWlCO21CQUFTLDBCQUEwQix3QkFBd0I7Ozs7Ozs7Ozs7Ozs7Ozs7OztjQUE1RSwwQkFBMEIsWUFBa0Q7Ozt3QkFLdEYsU0FBUyxFQUFFLFNBQVMsTUFBTSxDQUFDLENBQUE7dUJBSTNCLFdBQVcsTUFBTyxNQUFN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
349
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQtek1XYmR6MGguanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3NpZGViYXIvc2lkZWJhci9zaWRlYmFyLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3NpZGViYXIvc2lkZWJhci9zaWRlYmFyLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLWxpbmstdGV4dC1kZWNvcmF0aW9uLWxpbmU6IG5vbmU7XG4gIC0tc2JiLXNpZGViYXItYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMSk7XG4gIC0tc2JiLXNpZGViYXItc2Nyb2xsYmFyLXBsYWNlaG9sZGVyLXdpZHRoOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0zeCk7XG4gIC0tX3NiYi1zaWRlYmFyLW1hcmdpbjogMDtcbiAgLS1fc2JiLXNpZGViYXItbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1zYmItc2lkZWJhci1tYXJnaW4pO1xuICAtLV9zYmItc2lkZWJhci10cmFuc2xhdGUteDogLTEwMCU7XG4gIC0tX3NiYi1zaWRlYmFyLXotaW5kZXg6IDI7XG4gIC0tX3NiYi1zaWRlYmFyLXBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tc2JiLXNpZGViYXItcGFkZGluZyk7XG4gIC0tX3NiYi1zaWRlYmFyLXBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLXNiYi1zaWRlYmFyLXBhZGRpbmcpO1xuICAtLV9zYmItc2lkZWJhci1ib3JkZXItcmFkaXVzLXN0YXJ0OiB2YXIoLS1zYmItc2lkZWJhci1ib3JkZXItcmFkaXVzKTtcbiAgLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1lbmQ6IDA7XG4gIC0tX3NiYi1zaWRlYmFyLWNsb3NlLWJ1dHRvbi1zaXplOiB2YXIoLS1zYmItc2l6ZS1lbGVtZW50LXhzKTtcbiAgLS1fc2JiLXNpZGViYXItbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAyICogdmFyKC0tX3NiYi1zaWRlYmFyLW1hcmdpbikpO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDMyMCl9O1xuXG4gIC8vIFN1YnRyYWN0IHRoZSB3aWR0aCBvZiB0aGUgc2Nyb2xsYmFyIGZyb20gdGhlIHBhZGRpbmcgKEV4Y2x1ZGUgaU9TIGJyb3dzZXJzIGJlY2F1c2UgdGhleSB1c2Ugb3ZlcmxheSBzY3JvbGxiYXJzKVxuICBAc3VwcG9ydHMgKHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZSkgYW5kIChub3QgKC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZSkpIHtcbiAgICAtLV9zYmItc2lkZWJhci1wYWRkaW5nLWlubGluZS1lbmQ6IGNhbGMoXG4gICAgICB2YXIoLS1zYmItc2lkZWJhci1wYWRkaW5nKSAtIHZhcigtLXNiYi1zaWRlYmFyLXNjcm9sbGJhci1wbGFjZWhvbGRlci13aWR0aClcbiAgICApO1xuICB9XG59XG5cbjpob3N0KFtjb2xvcj0nd2hpdGUnXSkge1xuICAtLXNiYi1zaWRlYmFyLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTEpO1xufVxuXG46aG9zdChbY29sb3I9J21pbGsnXSkge1xuICAtLXNiYi1zaWRlYmFyLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTMpO1xufVxuXG46aG9zdCg6aXMoW21vZGU9J292ZXInXSwgOnN0YXRlKG1vZGUtb3Zlci1mb3JjZWQpOm5vdCg6c3RhdGUobW9kZS1vdmVyLWZvcmNlZC1jbG9zaW5nKSkpKSB7XG4gIC0tX3NiYi1zaWRlYmFyLW1hcmdpbjogdmFyKC0tc2JiLXNpZGViYXItbWFyZ2luKTtcbiAgLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1lbmQ6IHZhcigtLXNiYi1zaWRlYmFyLWJvcmRlci1yYWRpdXMpO1xuICAtLV9zYmItc2lkZWJhci16LWluZGV4OiAzO1xufVxuXG46aG9zdCg6aXMoOmRpcihydGwpLCBbcG9zaXRpb249J2VuZCddKSkge1xuICAtLV9zYmItc2lkZWJhci10cmFuc2xhdGUteDogMTAwJTtcbn1cblxuOmhvc3QoOmRpcihydGwpW3Bvc2l0aW9uPSdlbmQnXSkge1xuICAtLV9zYmItc2lkZWJhci10cmFuc2xhdGUteDogLTEwMCU7XG59XG5cbi5zYmItc2lkZWJhciB7XG4gIHdpZHRoOiBpbmhlcml0O1xuICBtYXgtd2lkdGg6IHZhcigtLV9zYmItc2lkZWJhci1tYXgtd2lkdGgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc2lkZWJhci1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBpbnNldC1ibG9jazogMDtcbiAgei1pbmRleDogdmFyKC0tX3NiYi1zaWRlYmFyLXotaW5kZXgpO1xuICBib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOiB2YXIoLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1zdGFydCk7XG4gIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1zdGFydCk7XG4gIGJvcmRlci1lbmQtc3RhcnQtcmFkaXVzOiB2YXIoLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1lbmQpO1xuICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IHZhcigtLV9zYmItc2lkZWJhci1ib3JkZXItcmFkaXVzLWVuZCk7XG4gIG1hcmdpbjogdmFyKC0tX3NiYi1zaWRlYmFyLW1hcmdpbik7XG4gIG1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tX3NiYi1zaWRlYmFyLW1hcmdpbi1ibG9jay1zdGFydCk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXNiYi1zaWRlYmFyLWNvbnRhaW5lci1hbmltYXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLXNpZGViYXItY29udGFpbmVyLWFuaW1hdGlvbi1lYXNpbmcpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB3aWR0aCwgdHJhbnNsYXRlO1xuICB0cmFuc2xhdGU6IG5vbmU7XG5cbiAgOmhvc3QoW3Bvc2l0aW9uPSdlbmQnXSkgJiB7XG4gICAgaW5zZXQtaW5saW5lLWVuZDogMDtcbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShzdGF0ZS1jbG9zZWQpKSAmIHtcbiAgICAvLyBTdG9wcyB0aGUgc2lkZW5hdiBmcm9tIHBva2luZyBvdXQgKGUuZy4gd2l0aCB0aGUgYm94IHNoYWRvdykgd2hpbGUgaXQncyBvZmYtc2NyZWVuLlxuICAgIC8vIFdlIGNhbid0IHVzZSBgZGlzcGxheWAgYmVjYXVzZSBpdCBpbnRlcnJ1cHRzIHRoZSB0cmFuc2l0aW9uIGFuZCBgdHJhbnNpdGlvbi1iZWhhdmlvcmBcbiAgICAvLyBpc24ndCBhdmFpbGFibGUgaW4gYWxsIGJyb3dzZXJzLlxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIDpob3N0KDppcyg6c3RhdGUoc3RhdGUtY2xvc2luZyksIDpzdGF0ZShzdGF0ZS1jbG9zZWQpKSkgJiB7XG4gICAgdHJhbnNsYXRlOiB2YXIoLS1fc2JiLXNpZGViYXItdHJhbnNsYXRlLXgpIDA7XG4gIH1cbn1cblxuLnNiYi1zaWRlYmFyLXRpdGxlLXNlY3Rpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgZ2FwOiB2YXIoLS1zYmItc2lkZWJhci10aXRsZS1nYXApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc2lkZWJhci1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zaWRlYmFyLXBhZGRpbmcpO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IHZhcigtLXNiYi1hbmltYXRpb24tZWFzaW5nKSB2YXIoLS1zYmItc2lkZWJhci1jb250YWluZXItYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgYm94LXNoYWRvdzogbm9uZTtcblxuICA6aG9zdCg6c3RhdGUoc2Nyb2xsZWQpKSAmIHtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zYmItYm94LXNoYWRvdy1sZXZlbC01LXNvZnQpO1xuICB9XG59XG5cbi5zYmItc2lkZWJhci1jb250ZW50LXNlY3Rpb24ge1xuICBAaW5jbHVkZSBzYmIuc2Nyb2xsYmFyO1xuXG4gIHBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLV9zYmItc2lkZWJhci1wYWRkaW5nLWJsb2NrLXN0YXJ0KTtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zaWRlYmFyLXBhZGRpbmcpIHZhcigtLV9zYmItc2lkZWJhci1wYWRkaW5nLWlubGluZS1lbmQpO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBmbGV4LWdyb3c6IDE7XG5cbiAgLy8gSWYgdGhlIGVsZW1lbnQgaXMgc2Nyb2xsYWJsZSBhbmQgaGFzIG5vIGZvY3VzYWJsZSBjb250ZW50LCBpdCBnZXRzIGZvY3VzZWQuXG4gIC8vIFRvIGFkYXB0IHRvIGx5bmUgc3R5bGVzIHdlIGNvbG9yaXplIGl0XG4gIG91dGxpbmUtY29sb3I6IHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yKTtcblxuICBAc3VwcG9ydHMgKHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZSkge1xuICAgIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTtcbiAgfVxufVxuXG46OnNsb3R0ZWQoc2JiLXNpZGViYXItdGl0bGUpIHtcbiAgZmxleC1ncm93OiAxO1xuICBtYXJnaW4tYmxvY2s6IHZhcigtLXNiYi1zaWRlYmFyLXRpdGxlLXBhZGRpbmctYmxvY2spO1xufVxuXG46OnNsb3R0ZWQoc2JiLXNpZGViYXItY2xvc2UtYnV0dG9uKSB7XG4gIG9yZGVyOiAxO1xuXG4gIC8vIER1ZSB0byBkZXNpZ24gbmVlZHMsIHdlIGhhdmUgdG8gdHJhbnNsYXRlIHRoZSBjbG9zZSBidXR0b24gdG8gdGhlIHJpZ2h0XG4gIG1hcmdpbi1pbmxpbmUtZW5kOiBjYWxjKFxuICAgIC0xICogKHZhcigtLXNiYi1zaWRlYmFyLXBhZGRpbmcpIC0gdmFyKC0tc2JiLXNpZGViYXItdGl0bGUtcGFkZGluZy1ibG9jaykpXG4gICk7XG4gIG1hcmdpbi1ibG9jazogdmFyKC0tc2JiLXNpZGViYXItdGl0bGUtcGFkZGluZy1ibG9jayk7XG4gIGluc2V0LWlubGluZS1lbmQ6IHZhcigtLXNiYi1zaWRlYmFyLXBhZGRpbmcpO1xufVxuIiwiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGV2ZW50T3B0aW9ucywgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7XG4gIGJveFNpemluZ1N0eWxlcyxcbiAgZm9yY2VUeXBlLFxuICBoYW5kbGVEaXN0aW5jdENoYW5nZSxcbiAgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24sXG4gIFNiYkFuaW1hdGlvbkNvbXBsZXRlTWl4aW4sXG4gIFNiYkVzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLFxuICBTYmJGb2N1c1RyYXBDb250cm9sbGVyLFxuICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlNpZGViYXJDb250YWluZXJFbGVtZW50IH0gZnJvbSAnLi4vc2lkZWJhci1jb250YWluZXIvc2lkZWJhci1jb250YWluZXIuY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vc2lkZWJhci5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgY29ycmVzcG9uZHMgdG8gYSBzaWRlYmFyIHRoYXQgY2FuIGJlIG9wZW5lZCBvbiB0aGUgc2lkZWJhciBjb250YWluZXIuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBzbG90IGFueSBjb250ZW50IGludG8gdGhlIHNpZGViYXIuXG4gKiBAc2xvdCB0aXRsZSAtIFVzZSB0aGUgdGl0bGUgc2xvdCB0byBhZGQgYW4gPHNiYi10aXRsZT4uXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTaWRlYmFyRWxlbWVudCBleHRlbmRzIFNiYkFuaW1hdGlvbkNvbXBsZXRlTWl4aW4oU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1zaWRlYmFyJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgLyoqIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIHNpZGViYXIuIEVpdGhlciBgd2hpdGVgIG9yIGBtaWxrYC4gKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgY29sb3I6ICd3aGl0ZScgfCAnbWlsaycgPSAnd2hpdGUnO1xuXG4gIC8qKiBNb2RlIG9mIHRoZSBzaWRlYmFyOyBvbmUgb2YgJ3NpZGUnIG9yICdvdmVyJy4gKi9cbiAgQGZvcmNlVHlwZSgodikgPT4gKHYgPT09ICdvdmVyJyA/ICdvdmVyJyA6ICdzaWRlJykpXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIG1vZGU6ICdzaWRlJyB8ICdvdmVyJyA9ICdzaWRlJztcblxuICAvKiogVGhlIHNpZGUgdGhhdCB0aGUgc2lkZWJhciBpcyBhdHRhY2hlZCB0by4gKi9cbiAgQGZvcmNlVHlwZSgodikgPT4gKHYgPT09ICdlbmQnID8gJ2VuZCcgOiAnc3RhcnQnKSlcbiAgQGhhbmRsZURpc3RpbmN0Q2hhbmdlKChpbnN0YW5jZSwgX25ld1ZhbHVlLCBvbGRWYWx1ZSkgPT4gaW5zdGFuY2UuX3VwZGF0ZVNpZGViYXJXaWR0aChvbGRWYWx1ZSkpXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIHBvc2l0aW9uOiAnc3RhcnQnIHwgJ2VuZCcgPSAnc3RhcnQnO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBzaWRlYmFyIGlzIG9wZW5lZCBvciBjbG9zZWQuXG4gICAqIENhbiBiZSB1c2VkIHRvIGluaXRpYWxseSBzZXQgdGhlIG9wZW5lZCBzdGF0ZSwgd2hlcmVcbiAgICogdGhlIGFuaW1hdGlvbiB3aWxsIGJlIHNraXBwZWQuXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3Igb3BlbmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHNpZGViYXIgc2hvdWxkIGZvY3VzIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudCBhdXRvbWF0aWNhbGx5IHdoZW4gb3BlbmVkLlxuICAgKiBEZWZhdWx0cyB0byBmYWxzZSBpbiB3aGVuIG1vZGUgaXMgc2V0IHRvIGBzaWRlYCwgb3RoZXJ3aXNlIGRlZmF1bHRzIHRvIHRydWUuXG4gICAqIElmIGV4cGxpY2l0bHkgZW5hYmxlZCwgZm9jdXMgd2lsbCBiZSBtb3ZlZCBpbnRvIHRoZSBzaWRlYmFyIGluIGBzaWRlYCBtb2RlIGFzIHdlbGwuXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiAnZm9jdXMtb24tb3BlbicgfSlcbiAgcHVibGljIGFjY2Vzc29yIGZvY3VzT25PcGVuOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFJldHVybnMgdGhlIFNiYlNpZGViYXJDb250YWluZXJFbGVtZW50IHdoZXJlIHRoaXMgc2lkZWJhciBpcyBjb250YWluZWQuICovXG4gIHB1YmxpYyBnZXQgY29udGFpbmVyKCk6IFNiYlNpZGViYXJDb250YWluZXJFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRhaW5lcjtcbiAgfVxuICBwcml2YXRlIF9jb250YWluZXI6IFNiYlNpZGViYXJDb250YWluZXJFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfbGFzdEZvY3VzZWRFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9mb2N1c1RyYXBDb250cm9sbGVyID0gbmV3IFNiYkZvY3VzVHJhcENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyID0gbmV3IFNiYkVzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyKHRoaXMpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkQ29udHJvbGxlcihcbiAgICAgIG5ldyBSZXNpemVDb250cm9sbGVyKHRoaXMsIHtcbiAgICAgICAgc2tpcEluaXRpYWw6IHRydWUsXG4gICAgICAgIGNhbGxiYWNrOiAoKSA9PiB0aGlzLl91cGRhdGVTaWRlYmFyV2lkdGgoKSxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoZSkgPT4ge1xuICAgICAgaWYgKChlLnRhcmdldCBhcyBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCk/LmxvY2FsTmFtZSA9PT0gJ3NiYi1zaWRlYmFyLWNsb3NlLWJ1dHRvbicpIHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICB0aGlzLl9jb250YWluZXIgPSB0aGlzLmNsb3Nlc3Q/Lignc2JiLXNpZGViYXItY29udGFpbmVyJyk7XG4gICAgdGhpcy5fdXBkYXRlU2lkZWJhcldpZHRoKCk7XG5cbiAgICBpZiAodGhpcy5pc09wZW4gJiYgdGhpcy5faXNNb2RlT3ZlcigpKSB7XG4gICAgICB0aGlzLl90YWtlRm9jdXMoKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzU2VydmVyKSB7XG4gICAgICBpZiAod2luZG93Lm5hdmlnYXRpb24pIHtcbiAgICAgICAgd2luZG93Lm5hdmlnYXRpb24uYWRkRXZlbnRMaXN0ZW5lcignbmF2aWdhdGUnLCB0aGlzLl9jbG9zZU9uTmF2aWdhdGlvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCB0aGlzLl9jbG9zZU9uTmF2aWdhdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5jb250YWluZXI/LnN0eWxlLnJlbW92ZVByb3BlcnR5KHRoaXMuX2J1aWxkQ3NzV2lkdGhWYXIoKSk7XG4gICAgdGhpcy5fY29udGFpbmVyID0gbnVsbDtcblxuICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgIGlmICh3aW5kb3cubmF2aWdhdGlvbikge1xuICAgICAgICB3aW5kb3cubmF2aWdhdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKCduYXZpZ2F0ZScsIHRoaXMuX2Nsb3NlT25OYXZpZ2F0aW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsIHRoaXMuX2Nsb3NlT25OYXZpZ2F0aW9uKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jbG9zZU9uTmF2aWdhdGlvbiA9ICgpOiB2b2lkID0+IHtcbiAgICBpZiAodGhpcy5faXNNb2RlT3ZlcigpICYmIHRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9O1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnb3BlbmVkJykpIHtcbiAgICAgIGlmICh0aGlzLm9wZW5lZCkge1xuICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgIH0gZWxzZSBpZiAoIXRoaXMub3BlbmVkKSB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdtb2RlJykpIHtcbiAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdvdmVyJyAmJiB0aGlzLmlzT3Blbikge1xuICAgICAgICB0aGlzLl90YWtlRm9jdXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2VkZUZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgdGhpcy5fdXBkYXRlU2lkZWJhcldpZHRoKCk7XG4gIH1cblxuICAvKiogVG9nZ2xlcyB0aGUgc2lkZWJhciB2aXNpYmlsaXR5LiAqL1xuICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSAnb3BlbmluZycgfHwgdGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCcpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIE9wZW5zIHRoZSBzaWRlYmFyLiAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnIHx8IHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnIHx8ICF0aGlzLmRpc3BhdGNoQmVmb3JlT3BlbkV2ZW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXJ0QW5pbWF0aW9uKCk7XG5cbiAgICBpZiAoIWlzU2VydmVyICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmxvY2FsTmFtZSAhPT0gJ2JvZHknKSB7XG4gICAgICB0aGlzLl9sYXN0Rm9jdXNlZEVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIH1cblxuICAgIHRoaXMub3BlbmVkID0gdHJ1ZTtcbiAgICB0aGlzLnN0YXRlID0gJ29wZW5pbmcnO1xuXG4gICAgY29uc3QgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24gPSB0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpIHx8ICF0aGlzLmlzQ29ubmVjdGVkO1xuICAgIGNvbnN0IGlzRHVyaW5nSW5pdGlhbGl6YXRpb24gPSAhdGhpcy5oYXNVcGRhdGVkO1xuXG4gICAgaWYgKCEoaXNEdXJpbmdJbml0aWFsaXphdGlvbiB8fCBpc1plcm9BbmltYXRpb25EdXJhdGlvbikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnc2tpcC1hbmltYXRpb24nKTtcblxuICAgIC8vIFdlIGhhdmUgdG8gd2FpdCBmb3IgdGhlIGZpcnN0IHVwZGF0ZSB0byBiZSBjb21wbGV0ZWRcbiAgICAvLyBpbiBvcmRlciB0byBoYXZlIHRoZSBzaXplIG9mIHRoZSBzaWRlYmFyIHJlYWR5IGZvciB0aGUgYW5pbWF0aW9uLlxuICAgIGlmIChpc0R1cmluZ0luaXRpYWxpemF0aW9uKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4gdGhpcy5faGFuZGxlT3BlbmluZygpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLXNpZGViYXItY29udGFpbmVyLWFuaW1hdGlvbi1kdXJhdGlvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlT3BlbmluZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ29wZW5lZCc7XG5cbiAgICAvLyBXZSBoYXZlIHRvIGVuc3VyZSB0aGF0IHJlbW92aW5nIHRoZSBhbmltYXRpb24gc2tpcCBpbnN0cnVjdGlvbiBpcyBkb25lIGEgdGljayBsYXRlci5cbiAgICAvLyBPdGhlcndpc2UsIGl0J3MgcmVtb3ZlZCB0b28gZWFybHkgYW5kIGl0IGRvZXNuJ3QgaGF2ZSBhbnkgZWZmZWN0LlxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnc2tpcC1hbmltYXRpb24nKSk7XG5cbiAgICB0aGlzLl90YWtlRm9jdXMoKTtcbiAgICB0aGlzLnN0b3BBbmltYXRpb24oKTtcbiAgICB0aGlzLmRpc3BhdGNoT3BlbkV2ZW50KCk7XG4gIH1cblxuICAvKiogQ2xvc2VzIHRoZSBzaWRlYmFyLiAqL1xuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdjbG9zaW5nJyB8fCB0aGlzLnN0YXRlID09PSAnY2xvc2VkJyB8fCAhdGhpcy5kaXNwYXRjaEJlZm9yZUNsb3NlRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RhcnRBbmltYXRpb24oKTtcblxuICAgIGNvbnN0IGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uID0gdGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTtcblxuICAgIGlmICghdGhpcy5oYXNVcGRhdGVkIHx8IGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKCdza2lwLWFuaW1hdGlvbicpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0YXRlID0gJ2Nsb3NpbmcnO1xuICAgIH1cblxuICAgIHRoaXMub3BlbmVkID0gZmFsc2U7XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICBpZiAoIXRoaXMuaGFzVXBkYXRlZCB8fCBpc1plcm9BbmltYXRpb25EdXJhdGlvbikge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIC8vIFdlIGhhdmUgdG8gZW5zdXJlIHRoYXQgcmVtb3ZpbmcgdGhlIGFuaW1hdGlvbiBza2lwIGluc3RydWN0aW9uIGlzIGRvbmUgYSB0aWNrIGxhdGVyLlxuICAgIC8vIE90aGVyd2lzZSwgaXQncyByZW1vdmVkIHRvbyBlYXJseSBhbmQgaXQgZG9lc24ndCBoYXZlIGFueSBlZmZlY3QuXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKCdza2lwLWFuaW1hdGlvbicpKTtcbiAgICB0aGlzLmNlZGVGb2N1cygpO1xuXG4gICAgaWYgKCFpc1NlcnZlciAmJiAodGhpcy5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB8fCB0aGlzLl9pc01vZGVPdmVyKCkpKSB7XG4gICAgICBpZiAodGhpcy5fbGFzdEZvY3VzZWRFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuX2xhc3RGb2N1c2VkRWxlbWVudD8uZm9jdXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFdlIGRvbid0IGtub3cgd2hlcmUgdG8gc2V0IHRoZSBmb2N1cywgYnV0IGhhdmUgdG8gcmVtb3ZlIGl0LCBzbyB3ZSBjYWxsIGJsdXJcbiAgICAgICAgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmJsdXIoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fbGFzdEZvY3VzZWRFbGVtZW50ID0gbnVsbDtcblxuICAgIHRoaXMuc3RvcEFuaW1hdGlvbigpO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KCk7XG4gIH1cblxuICBwcml2YXRlIF90YWtlRm9jdXMoKTogdm9pZCB7XG4gICAgLy8gV2UgcHJldmVudCBjYWxsaW5nIHRoZSBmb2N1cyBzdHVmZiB3aGVuIG5vdCBuZWVkZWRcbiAgICBpZiAoIXRoaXMuaXNDb25uZWN0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgaXNNb2RlT3ZlciA9IHRoaXMuX2lzTW9kZU92ZXIoKTtcblxuICAgIGlmIChpc01vZGVPdmVyIHx8IHRoaXMuZm9jdXNPbk9wZW4pIHtcbiAgICAgIHRoaXMuX2ZvY3VzVHJhcENvbnRyb2xsZXIuZm9jdXNJbml0aWFsRWxlbWVudCgpO1xuICAgIH1cblxuICAgIGlmIChpc01vZGVPdmVyKSB7XG4gICAgICB0aGlzLl9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5jb25uZWN0KCk7XG4gICAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8vIEludGVybmFsIG1ldGhvZCB0aGF0IHdlIHVzZSBleHRlcm5hbGx5LiBgcHJvdGVjdGVkYCBwcmVzZXJ2ZXMgdHlwZSBpbmZvcm1hdGlvbiBmb3IgdHlwZSBzYWZlIGFjY2Vzcy5cbiAgcHJvdGVjdGVkIGNlZGVGb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLl9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTaWRlYmFyV2lkdGgob2xkUG9zaXRpb24/OiB0aGlzWydwb3NpdGlvbiddKTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAob2xkUG9zaXRpb24pIHtcbiAgICAgIGNvbnRhaW5lci5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0aGlzLl9idWlsZENzc1dpZHRoVmFyKG9sZFBvc2l0aW9uKSk7XG4gICAgfVxuXG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLm9mZnNldFdpZHRoO1xuICAgIGlmICghd2lkdGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdWYWx1ZSA9IGAke3dpZHRofXB4YDtcbiAgICBjb25zdCBhY3R1YWxWYWx1ZSA9IGNvbnRhaW5lci5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHRoaXMuX2J1aWxkQ3NzV2lkdGhWYXIoKSk7XG5cbiAgICBpZiAoYWN0dWFsVmFsdWUgPT09IG5ld1ZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29udGFpbmVyLnN0eWxlLnNldFByb3BlcnR5KHRoaXMuX2J1aWxkQ3NzV2lkdGhWYXIoKSwgbmV3VmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYnVpbGRDc3NXaWR0aFZhcihwb3NpdGlvbiA9IHRoaXMucG9zaXRpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBgLS1fc2JiLXNpZGViYXItY29udGFpbmVyLSR7cG9zaXRpb259LXdpZHRoYDtcbiAgfVxuXG4gIHByaXZhdGUgX2lzTW9kZU92ZXIoKTogYm9vbGVhbiB7XG4gICAgLy8gSWYgdGhlIG1pbmltdW0gc3BhY2UgYXR0cmlidXRlIGlzIHNldCwgdGhlIHNpZGViYXIgc2hvdWxkIGJlaGF2ZSBsaWtlIGluIG1vZGUgb3Zlci5cbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnb3ZlcicgfHwgdGhpcy5tYXRjaGVzKCc6c3RhdGUobW9kZS1vdmVyLWZvcmNlZCknKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uVHJhbnNpdGlvbkVuZChldmVudDogVHJhbnNpdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgLy8gV2UgZW5zdXJlIHRoYXQgd2UgcmVhY3QgdG8gdGhlIGZhZGUgaW4gdHJhbnNpdGlvbiBvbiB0aGUgc2JiLXNpZGViYXIgZGl2XG4gICAgaWYgKGV2ZW50LnByb3BlcnR5TmFtZSAhPT0gJ3RyYW5zbGF0ZScgfHwgZXZlbnQudGFyZ2V0ICE9PSBldmVudC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgQGV2ZW50T3B0aW9ucyh7IHBhc3NpdmU6IHRydWUgfSlcbiAgcHJpdmF0ZSBfZGV0ZWN0U2Nyb2xsZWRTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKFxuICAgICAgJ3Njcm9sbGVkJyxcbiAgICAgICh0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5zYmItc2lkZWJhci1jb250ZW50LXNlY3Rpb24nKT8uc2Nyb2xsVG9wID8/IDApID4gMCxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cInNiYi1zaWRlYmFyXCIgQHRyYW5zaXRpb25lbmQ9JHt0aGlzLl9vblRyYW5zaXRpb25FbmR9PlxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1zaWRlYmFyLXRpdGxlLXNlY3Rpb25cIj48c2xvdCBuYW1lPVwidGl0bGUtc2VjdGlvblwiPjwvc2xvdD48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2lkZWJhci1jb250ZW50LXNlY3Rpb25cIiBAc2Nyb2xsPSR7KCkgPT4gdGhpcy5fZGV0ZWN0U2Nyb2xsZWRTdGF0ZSgpfT5cbiAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+YDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNpZGViYXInOiBTYmJTaWRlYmFyRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7SUMrQmEsMkJBQWlCO21CQUFTLDBCQUEwQix3QkFBd0I7Ozs7Ozs7Ozs7Ozs7Ozs7OztjQUE1RSwwQkFBMEIsWUFBa0Q7Ozt3QkFLdEYsU0FBUyxFQUFFLFNBQVMsTUFBTSxDQUFDLENBQUE7dUJBSTNCLFdBQVcsTUFBTyxNQUFN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
@@ -420,4 +420,4 @@ var SbbStepperElement = (() => {
420
420
  //#endregion
421
421
  export { SbbStepperElement as n, SbbStepChangeEvent as t };
422
422
 
423
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQtQlR3SnR0WnQuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3N0ZXBwZXIvc3RlcHBlci9zdGVwcGVyLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3N0ZXBwZXIvc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLXN0ZXBwZXItYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi02eClcbiAgKTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjb3VudGVyLXJlc2V0OiBzdGVwLWxhYmVsO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAtLXNiYi1zdGVwcGVyLW1hcmtlci1jb2xvcjogQnV0dG9uVGV4dDtcbiAgfVxufVxuXG46aG9zdCg6c3RhdGUoZGlzYWJsZS1hbmltYXRpb24pKSB7XG4gIEBpbmNsdWRlIHNiYi5kaXNhYmxlLWFuaW1hdGlvbjtcbn1cblxuOmhvc3QoW29yaWVudGF0aW9uPSd2ZXJ0aWNhbCddKSB7XG4gIC0tc2JiLXN0ZXBwZXItb3JpZW50YXRpb246IGNvbHVtbjtcbn1cblxuLnNiYi1zdGVwcGVyX19sYWJlbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogdmFyKC0tc2JiLXN0ZXBwZXItb3JpZW50YXRpb24pO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gIG1hcmdpbi1ibG9jay1lbmQ6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUtbSk7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQtaW5saW5lLXN0YXJ0OiBjYWxjKHZhcigtLXNiYi1zdGVwcGVyLWJvcmRlci13aWR0aCkgKiAtMSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXN0ZXBwZXItbWFya2VyLWNvbG9yKTtcbiAgfVxuXG4gIDpob3N0KFtvcmllbnRhdGlvbj0naG9yaXpvbnRhbCddKSAmIHtcbiAgICBnYXA6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUtbSk7XG4gICAgcGFkZGluZy1ibG9jay1lbmQ6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTR4KTtcbiAgICBib3JkZXItYmxvY2stZW5kOiB2YXIoLS1zYmItc3RlcHBlci1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXNiYi1ib3JkZXItY29sb3ItNC1pbnZlcnRlZCk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgaW5zZXQtYmxvY2stZW5kOiBjYWxjKHZhcigtLXNiYi1zdGVwcGVyLWJvcmRlci13aWR0aCkgKiAtMSk7XG4gICAgICBoZWlnaHQ6IHZhcigtLXNiYi1zdGVwcGVyLW1hcmtlci13aWR0aCk7XG4gICAgICB3aWR0aDogdmFyKC0tc2JiLXN0ZXBwZXItbWFya2VyLXNpemUsIDApO1xuICAgICAgdHJhbnNpdGlvbjogd2lkdGggdmFyKC0tc2JiLXN0ZXBwZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1zYmItYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgfVxuICB9XG5cbiAgOmhvc3QoW29yaWVudGF0aW9uPSd2ZXJ0aWNhbCddKSAmIHtcbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtNHgpO1xuICAgIGJvcmRlci1pbmxpbmUtc3RhcnQ6IHZhcigtLXNiYi1zdGVwcGVyLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tc2JiLWJvcmRlci1jb2xvci00LWludmVydGVkKTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgIHdpZHRoOiB2YXIoLS1zYmItc3RlcHBlci1tYXJrZXItd2lkdGgpO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1zYmItc3RlcHBlci1tYXJrZXItc2l6ZSwgMCk7XG4gICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgdmFyKC0tc2JiLXN0ZXBwZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1zYmItYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgfVxuICB9XG59XG5cbi5zYmItc3RlcHBlcl9fc3RlcHMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgOmhvc3QoW29yaWVudGF0aW9uPSdob3Jpem9udGFsJ10pICYge1xuICAgIGhlaWdodDogdmFyKC0tc2JiLXN0ZXBwZXItY29udGVudC1oZWlnaHQpO1xuICAgIHRyYW5zaXRpb246IGhlaWdodCB2YXIoLS1zYmItc3RlcHBlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLXNiYi1hbmltYXRpb24tZWFzaW5nKTtcbiAgfVxufVxuXG46OnNsb3R0ZWQoc2JiLXN0ZXAtbGFiZWwpOjpiZWZvcmUge1xuICBjb250ZW50OiBjb3VudGVyKHN0ZXAtbGFiZWwpO1xuICBjb3VudGVyLWluY3JlbWVudDogc3RlcC1sYWJlbDtcbn1cbiIsImltcG9ydCB7IEludGVyc2VjdGlvbkNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL2ludGVyc2VjdGlvbi1jb250cm9sbGVyLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYkhvcml6b250YWxGcm9tLCBTYmJPcmllbnRhdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHtcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBmb3JjZVR5cGUsXG4gIGdldE5leHRFbGVtZW50SW5kZXgsXG4gIGlzQXJyb3dLZXlQcmVzc2VkLFxuICBpc0xlYW4sXG4gIFNiYkVsZW1lbnQsXG4gIFNiYk1lZGlhTWF0Y2hlckNvbnRyb2xsZXIsXG4gIFNiYk1lZGlhUXVlcnlCcmVha3BvaW50TGFyZ2VBbmRBYm92ZSxcbiAgU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRTbWFsbEFuZEFib3ZlLFxuICBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludFVsdHJhQW5kQWJvdmUsXG4gIFNiYk1lZGlhUXVlcnlCcmVha3BvaW50WmVyb0FuZEFib3ZlLFxufSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiU3RlcEVsZW1lbnQsIFNiYlN0ZXBWYWxpZGF0ZUV2ZW50RGV0YWlscyB9IGZyb20gJy4uL3N0ZXAvc3RlcC5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zdGVwcGVyLnNjc3M/aW5saW5lJztcblxuY29uc3QgREVCT1VOQ0VfVElNRSA9IDE1MDtcblxuY29uc3QgYnJlYWtwb2ludE1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgemVybzogU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRaZXJvQW5kQWJvdmUsXG4gIHNtYWxsOiBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludFNtYWxsQW5kQWJvdmUsXG4gIGxhcmdlOiBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludExhcmdlQW5kQWJvdmUsXG4gIHVsdHJhOiBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludFVsdHJhQW5kQWJvdmUsXG59O1xuXG5leHBvcnQgY2xhc3MgU2JiU3RlcENoYW5nZUV2ZW50IGV4dGVuZHMgRXZlbnQge1xuICAvKiogVGhlIGluZGV4IG9mIHRoZSBuZXdseSBzZWxlY3RlZCBzdGVwLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRJbmRleDogbnVtYmVyIHwgbnVsbDtcblxuICAvKiogVGhlIGluZGV4IG9mIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIHN0ZXAuICovXG4gIHB1YmxpYyByZWFkb25seSBwcmV2aW91c0luZGV4OiBudW1iZXIgfCBudWxsO1xuXG4gIC8qKiBUaGUgbmV3bHkgc2VsZWN0ZWQgc3RlcCBlbGVtZW50LiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRTdGVwOiBTYmJTdGVwRWxlbWVudCB8IG51bGw7XG5cbiAgLyoqIFRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIHN0ZXAgZWxlbWVudC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHByZXZpb3VzU3RlcDogU2JiU3RlcEVsZW1lbnQgfCBudWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBzZWxlY3RlZEluZGV4OiBudW1iZXIgfCBudWxsLFxuICAgIHByZXZpb3VzSW5kZXg6IG51bWJlciB8IG51bGwsXG4gICAgc2VsZWN0ZWRTdGVwOiBTYmJTdGVwRWxlbWVudCB8IG51bGwsXG4gICAgcHJldmlvdXNTdGVwOiBTYmJTdGVwRWxlbWVudCB8IG51bGwsXG4gICkge1xuICAgIHN1cGVyKCdzdGVwY2hhbmdlJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KTtcbiAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSBzZWxlY3RlZEluZGV4O1xuICAgIHRoaXMucHJldmlvdXNJbmRleCA9IHByZXZpb3VzSW5kZXg7XG4gICAgdGhpcy5zZWxlY3RlZFN0ZXAgPSBzZWxlY3RlZFN0ZXA7XG4gICAgdGhpcy5wcmV2aW91c1N0ZXAgPSBwcmV2aW91c1N0ZXA7XG4gIH1cbn1cbi8qKlxuICogUHJvdmlkZXMgYSBzdHJ1Y3R1cmVkLCBzdGVwLWJ5LXN0ZXAgd29ya2Zsb3cgZm9yIHVzZXIgaW50ZXJhY3Rpb25zLlxuICogQHNsb3QgLSBQcm92aWRlIGEgYHNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyYCBhbmQgYSBgc2JiLWV4cGFuc2lvbi1wYW5lbC1jb250ZW50YCB0byB0aGUgc3RlcHBlci5cbiAqIEBzbG90IHN0ZXAtbGFiZWwgLSBVc2UgdGhpcyBzbG90IHRvIHByb3ZpZGUgYW4gYHNiYi1zdGVwLWxhYmVsYC5cbiAqIEBzbG90IHN0ZXAgLSBVc2UgdGhpcyBzbG90IHRvIHByb3ZpZGUgYW4gYHNiYi1zdGVwYC5cbiAqIEBldmVudCB7U2JiU3RlcENoYW5nZUV2ZW50fSBzdGVwY2hhbmdlIC0gRW1pdHMgd2hlbmV2ZXIgYSBzdGVwIHdhcyBjaGFuZ2VkLlxuICovXG5leHBvcnQgY2xhc3MgU2JiU3RlcHBlckVsZW1lbnQgZXh0ZW5kcyBTYmJFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1zdGVwcGVyJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHN0ZXBjaGFuZ2U6ICdzdGVwY2hhbmdlJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKipcbiAgICogSWYgdGhlIHNiYi1zdGVwcGVyIGlzIHVzZWQgaW4gYSBzYmItZGlhbG9nLCB0aGUgbWFya2VyIG9uIHRoZSBzZWxlY3RlZCBlbGVtZW50IHdpbGwgbm90IGFwcGVhcixcbiAgICogYmVjYXVzZSB0aGUgY2FsY3VsYXRpb25zIGFyZSBkb25lIHdoZW4gdGhlIGRpYWxvZyBpcyBjbG9zZWQsIHNvIHRoZSBtYXJrZXIgaGFzIGEgd2lkdGggb2YgMDtcbiAgICogdGhlIHNhbWUgaGFwcGVucyBmb3IgdGhlIHN0ZXBwZXIgaGVpZ2h0LlxuICAgKiBXZSBuZWVkIHRvIHJlY2FsY3VsYXRlIGl0IHdoZW4gdGhlIGVsZW1lbnQgYmVjb21lcyB2aXNpYmxlLlxuICAgKi9cbiAgcHJpdmF0ZSBfb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uQ29udHJvbGxlcih0aGlzLCB7XG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIGNhbGxiYWNrOiAoZW50cmllcykgPT4ge1xuICAgICAgZW50cmllcy5mb3JFYWNoKChlKSA9PiB7XG4gICAgICAgIGlmIChlLmludGVyc2VjdGlvblJhdGlvID4gMCkge1xuICAgICAgICAgIHRoaXMuX3NldFN0ZXBwZXJIZWlnaHQodGhpcy5zZWxlY3RlZCk7XG4gICAgICAgICAgdGhpcy5fc2V0TWFya2VyU2l6ZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICB9KTtcblxuICAvKiogSWYgc2V0IHRvIHRydWUsIG9ubHkgdGhlIGN1cnJlbnQgYW5kIHByZXZpb3VzIGxhYmVscyBjYW4gYmUgY2xpY2tlZCBhbmQgc2VsZWN0ZWQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBsaW5lYXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogT3ZlcnJpZGVzIHRoZSBiZWhhdmlvciBvZiBgb3JpZW50YXRpb25gIHByb3BlcnR5LiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdob3Jpem9udGFsLWZyb20nLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBzZXQgaG9yaXpvbnRhbEZyb20odmFsdWU6IFNiYkhvcml6b250YWxGcm9tIHwgbnVsbCkge1xuICAgIHRoaXMuX2hvcml6b250YWxGcm9tID0gdmFsdWUgJiYgYnJlYWtwb2ludE1hcFt2YWx1ZV0gPyB2YWx1ZSA6IG51bGw7XG4gICAgaWYgKHRoaXMuX2hvcml6b250YWxGcm9tICYmIHRoaXMuX2xvYWRlZCkge1xuICAgICAgdGhpcy5fY2hlY2tPcmllbnRhdGlvbigpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IGhvcml6b250YWxGcm9tKCk6IFNiYkhvcml6b250YWxGcm9tIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2hvcml6b250YWxGcm9tO1xuICB9XG4gIHByaXZhdGUgX2hvcml6b250YWxGcm9tOiBTYmJIb3Jpem9udGFsRnJvbSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBTdGVwcyBvcmllbnRhdGlvbiwgZWl0aGVyIGhvcml6b250YWwgb3IgdmVydGljYWwuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIG9yaWVudGF0aW9uOiBTYmJPcmllbnRhdGlvbiA9ICdob3Jpem9udGFsJztcblxuICAvKipcbiAgICogU2l6ZSB2YXJpYW50LCBlaXRoZXIgcyBvciBtLlxuICAgKiBAZGVmYXVsdCAnbScgLyAncycgKGxlYW4pXG4gICAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBzaXplOiAncycgfCAnbScgPSBpc0xlYW4oKSA/ICdzJyA6ICdtJztcblxuICAvKiogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCBzdGVwLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWQoc3RlcDogU2JiU3RlcEVsZW1lbnQgfCBudWxsKSB7XG4gICAgaWYgKHRoaXMuX2xvYWRlZCkge1xuICAgICAgdGhpcy5fc2VsZWN0KHN0ZXApO1xuICAgIH1cbiAgICB0aGlzLl9yZXF1ZXN0ZWRTZWxlY3RlZCA9IHN0ZXA7XG4gIH1cbiAgcHVibGljIGdldCBzZWxlY3RlZCgpOiBTYmJTdGVwRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3I/LjxTYmJTdGVwRWxlbWVudD4oJ3NiYi1zdGVwOnN0YXRlKHNlbGVjdGVkKScpID8/IG51bGw7XG4gIH1cbiAgcHJpdmF0ZSBfcmVxdWVzdGVkU2VsZWN0ZWQ6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgc3RlcCBpbmRleC4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnc2VsZWN0ZWQtaW5kZXgnLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIHNldCBzZWxlY3RlZEluZGV4KGluZGV4OiBudW1iZXIgfCBudWxsKSB7XG4gICAgaWYgKHRoaXMuX2xvYWRlZCAmJiBpbmRleCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5fc2VsZWN0KHRoaXMuc3RlcHNbaW5kZXhdKTtcbiAgICB9XG4gICAgdGhpcy5fcmVxdWVzdGVkU2VsZWN0ZWRJbmRleCA9IGluZGV4O1xuICB9XG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRJbmRleCgpOiBudW1iZXIgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZCA/IHRoaXMuc3RlcHMuaW5kZXhPZih0aGlzLnNlbGVjdGVkKSA6IG51bGw7XG4gIH1cbiAgcHJpdmF0ZSBfcmVxdWVzdGVkU2VsZWN0ZWRJbmRleDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFRoZSBzdGVwcyBvZiB0aGUgc3RlcHBlci4gKi9cbiAgcHVibGljIGdldCBzdGVwcygpOiBTYmJTdGVwRWxlbWVudFtdIHtcbiAgICBjb25zdCBzdGVwczogU2JiU3RlcEVsZW1lbnRbXSA9IFtdO1xuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbD8uKCdzYmItc3RlcCcpLmZvckVhY2goKHN0ZXApID0+IHtcbiAgICAgIGN1c3RvbUVsZW1lbnRzLnVwZ3JhZGUoc3RlcCk7XG4gICAgICBzdGVwcy5wdXNoKHN0ZXApO1xuICAgIH0pO1xuICAgIHJldHVybiBzdGVwcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF9lbmFibGVkU3RlcHMoKTogU2JiU3RlcEVsZW1lbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuc3RlcHMuZmlsdGVyKChzKSA9PiB7XG4gICAgICBpZiAocy5sYWJlbCkge1xuICAgICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKHMubGFiZWwpO1xuICAgICAgICByZXR1cm4gIXMubGFiZWwuZGlzYWJsZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9sb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXJUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9tZWRpYU1hdGNoZXIgPSBuZXcgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcih0aGlzLCB7fSk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2tleWRvd24nLCAoZSkgPT4gdGhpcy5faGFuZGxlS2V5RG93bihlKSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3Jlc2l6ZWNoYW5nZScsIChlOiBFdmVudCkgPT4gdGhpcy5fb25TZWxlY3RlZFN0ZXBSZXNpemUoZSkpO1xuICB9XG5cbiAgLyoqIFNlbGVjdHMgdGhlIG5leHQgc3RlcC4gKi9cbiAgcHVibGljIG5leHQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5fc2VsZWN0KHRoaXMuc3RlcHNbdGhpcy5zZWxlY3RlZEluZGV4ICsgMV0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBTZWxlY3RzIHRoZSBwcmV2aW91cyBzdGVwLiAqL1xuICBwdWJsaWMgcHJldmlvdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5fc2VsZWN0KHRoaXMuc3RlcHNbdGhpcy5zZWxlY3RlZEluZGV4IC0gMV0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZXNldHMgdGhlIGZvcm0gaW4gd2hpY2ggdGhlIHN0ZXBwZXIgaXMgbmVzdGVkIG9yIGV2ZXJ5IGZvcm0gb2YgZWFjaCBzdGVwLCBpZiBhbnkuICovXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICBjb25zdCBjbG9zZXN0Rm9ybSA9IHRoaXMuY2xvc2VzdCgnZm9ybScpO1xuICAgIGlmIChjbG9zZXN0Rm9ybSkge1xuICAgICAgY2xvc2VzdEZvcm0ucmVzZXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsKCdmb3JtJykuZm9yRWFjaCgoZm9ybSkgPT4gZm9ybS5yZXNldCgpKTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gMDtcbiAgICAvLyBJbiBjYXNlIHRoZSBmb2N1cyBpcyBjdXJyZW50bHkgaW5zaWRlIHRoZSBzdGVwcGVyLCB3ZSByZXNldCB0aGUgZm9jdXMgdG8gdGhlIGZpcnN0L3NlbGVjdGVkIHN0ZXAgbGFiZWwuXG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmNsb3Nlc3QoJ3NiYi1zdGVwcGVyJykgPT09IHRoaXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQ/LmxhYmVsPy5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzU2VsZWN0YWJsZShzdGVwOiBTYmJTdGVwRWxlbWVudCB8IG51bGwpOiBzdGVwIGlzIFNiYlN0ZXBFbGVtZW50IHtcbiAgICBpZiAoc3RlcCkge1xuICAgICAgY3VzdG9tRWxlbWVudHMudXBncmFkZShzdGVwKTtcbiAgICAgIGlmIChzdGVwLmxhYmVsKSB7XG4gICAgICAgIGN1c3RvbUVsZW1lbnRzLnVwZ3JhZGUoc3RlcC5sYWJlbCk7XG4gICAgICAgIGlmICghdGhpcy5saW5lYXIgJiYgc3RlcC5sYWJlbC5kaXNhYmxlZCkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZWxlY3Qoc3RlcDogU2JiU3RlcEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pc1NlbGVjdGFibGUoc3RlcCkgfHwgc3RlcCA9PT0gdGhpcy5zZWxlY3RlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLnNlbGVjdGVkSW5kZXg7XG4gICAgY29uc3QgY3VycmVudFN0ZXAgPSB0aGlzLnNlbGVjdGVkO1xuICAgIGNvbnN0IHZhbGlkYXRlUGF5bG9hZDogU2JiU3RlcFZhbGlkYXRlRXZlbnREZXRhaWxzID0ge1xuICAgICAgY3VycmVudEluZGV4LFxuICAgICAgY3VycmVudFN0ZXAsXG4gICAgICBuZXh0SW5kZXg6IHRoaXMuc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCA/IHRoaXMuc2VsZWN0ZWRJbmRleCArIDEgOiBudWxsLFxuICAgICAgbmV4dFN0ZXA6IHRoaXMuc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCA/IHRoaXMuc3RlcHNbdGhpcy5zZWxlY3RlZEluZGV4ICsgMV0gOiBudWxsLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZCAmJiAhdGhpcy5zZWxlY3RlZC52YWxpZGF0ZSh2YWxpZGF0ZVBheWxvYWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuc2VsZWN0ZWQ7XG4gICAgY3VycmVudD8uZGVzZWxlY3QoKTtcbiAgICBzdGVwLnNlbGVjdCgpO1xuXG4gICAgLyoqIEBpbnRlcm5hbCBvbmx5IHRvIHByb3ZpZGUgZG91YmxlIGVudHJ5IGluIGRvY3MuIEl0IGlzIGEgcHVibGljIGV2ZW50ISAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBTYmJTdGVwQ2hhbmdlRXZlbnQodGhpcy5zZWxlY3RlZEluZGV4LCBjdXJyZW50SW5kZXgsIHRoaXMuc2VsZWN0ZWQsIGN1cnJlbnRTdGVwKSxcbiAgICApO1xuXG4gICAgdGhpcy5fc2V0TWFya2VyU2l6ZSgpO1xuICAgIHRoaXMuX3NldFN0ZXBwZXJIZWlnaHQoc3RlcCk7XG4gICAgdGhpcy5fY29uZmlndXJlTGluZWFyTW9kZSgpO1xuICAgIC8vIEluIGNhc2UgdGhlIGZvY3VzIGlzIGN1cnJlbnRseSBpbnNpZGUgdGhlIHN0ZXBwZXIsIHdlIGZvY3VzIHRoZSBzZWxlY3RlZCBzdGVwIGxhYmVsLlxuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50Py5jbG9zZXN0KCdzYmItc3RlcHBlcicpID09PSB0aGlzKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkPy5sYWJlbD8uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXRNYXJrZXJTaXplKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICF0aGlzLl9sb2FkZWQgfHxcbiAgICAgICF0aGlzLnNlbGVjdGVkIHx8XG4gICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPT09IHVuZGVmaW5lZCB8fFxuICAgICAgIXRoaXMuc2VsZWN0ZWQubGFiZWxcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgb2Zmc2V0ID1cbiAgICAgIHRoaXMub3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJ1xuICAgICAgICA/IHRoaXMuc2VsZWN0ZWQubGFiZWwub2Zmc2V0TGVmdCArIHRoaXMuc2VsZWN0ZWQubGFiZWwub2Zmc2V0V2lkdGhcbiAgICAgICAgOiB0aGlzLl9jYWxjdWxhdGVMYWJlbE9mZnNldFRvcCgpO1xuXG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItc3RlcHBlci1tYXJrZXItc2l6ZScsIGAke29mZnNldH1weGApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHN0ZXBwZXIgaGVpZ2h0IGJhc2VkIG9uIHRoZSBoZWlnaHQgb2YgdGhlIHByb3ZpZGVkIHN0ZXAuXG4gICAqL1xuICBwcml2YXRlIF9zZXRTdGVwcGVySGVpZ2h0KHN0ZXA6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChzdGVwICYmIHN0ZXAuc2hhZG93Um9vdCkge1xuICAgICAgY29uc3QgaW5uZXJFbGVtZW50OiBTYmJTdGVwRWxlbWVudCB8IG51bGwgPSBzdGVwLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnNiYi1zdGVwJyk7XG4gICAgICBpZiAoaW5uZXJFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuc3R5bGU/LnNldFByb3BlcnR5KCctLXNiYi1zdGVwcGVyLWNvbnRlbnQtaGVpZ2h0JywgYCR7aW5uZXJFbGVtZW50Lm9mZnNldEhlaWdodH1weGApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NhbGN1bGF0ZUxhYmVsT2Zmc2V0VG9wKCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICBmb3IgKGNvbnN0IHN0ZXAgb2YgdGhpcy5zdGVwcykge1xuICAgICAgaWYgKHN0ZXAgPT09IHRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBvZmZzZXQgPSBzdGVwLmxhYmVsIS5vZmZzZXRIZWlnaHQgKyBvZmZzZXQ7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICBvZmZzZXQgK1xuICAgICAgdGhpcy5zZWxlY3RlZCEubGFiZWwhLm9mZnNldEhlaWdodCEgK1xuICAgICAgcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKHRoaXMpLmdldFByb3BlcnR5VmFsdWUoJy0tc2JiLXNwYWNpbmctZml4ZWQtNngnKSkgKlxuICAgICAgICAxNiAqXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9vblNlbGVjdGVkU3RlcFJlc2l6ZShlOiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuX3NldFN0ZXBwZXJIZWlnaHQoZS50YXJnZXQgYXMgU2JiU3RlcEVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29uZmlndXJlKCk6IHZvaWQge1xuICAgIHRoaXMuc3RlcHMuZm9yRWFjaCgoc3RlcCwgaSwgYXJyYXkpID0+IHtcbiAgICAgIHN0ZXAuY29uZmlndXJlKHRoaXMuX2xvYWRlZCk7XG4gICAgICBzdGVwLmxhYmVsPy5jb25maWd1cmUoaSArIDEsIGFycmF5Lmxlbmd0aCwgdGhpcy5fbG9hZGVkKTtcbiAgICB9KTtcbiAgICB0aGlzLl9zZWxlY3QodGhpcy5zZWxlY3RlZCB8fCB0aGlzLl9lbmFibGVkU3RlcHNbMF0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlTGFiZWxzKCk6IHZvaWQge1xuICAgIHRoaXMuc3RlcHMuZm9yRWFjaCgoc3RlcCkgPT4ge1xuICAgICAgc3RlcC5zbG90ID0gdGhpcy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnID8gJ3N0ZXAnIDogJ3N0ZXAtbGFiZWwnO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tPcmllbnRhdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ob3Jpem9udGFsRnJvbSkge1xuICAgICAgdGhpcy5vcmllbnRhdGlvbiA9IHRoaXMuX21lZGlhTWF0Y2hlci5tYXRjaGVzKGJyZWFrcG9pbnRNYXBbdGhpcy5ob3Jpem9udGFsRnJvbV0pXG4gICAgICAgID8gJ2hvcml6b250YWwnXG4gICAgICAgIDogJ3ZlcnRpY2FsJztcbiAgICAgIHRoaXMuX3VwZGF0ZUxhYmVscygpO1xuICAgIH1cbiAgICAvLyBUaGUgdGltZW91dCBpcyBuZWVkZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIG1hcmtlciB0YWtlcyB0aGUgY29ycmVjdCBzdGVwLWxhYmVsIHNpemUuXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl9zZXRNYXJrZXJTaXplKCksIDApO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25TdGVwcGVyUmVzaXplID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX2NoZWNrT3JpZW50YXRpb24oKTtcbiAgICB0aGlzLl9zZXRTdGVwcGVySGVpZ2h0KHRoaXMuc2VsZWN0ZWQpO1xuICAgIGNsZWFyVGltZW91dCh0aGlzLl9yZXNpemVPYnNlcnZlclRpbWVvdXQhKTtcbiAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKCdkaXNhYmxlLWFuaW1hdGlvbicpO1xuXG4gICAgLy8gRGlzYWJsZSB0aGUgYW5pbWF0aW9uIHdoZW4gcmVzaXppbmcgdG8gYXZvaWQgc3RyYW5nZSB0cmFuc2l0aW9uIGVmZmVjdHMuXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXJUaW1lb3V0ID0gc2V0VGltZW91dChcbiAgICAgICgpID0+IHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ2Rpc2FibGUtYW5pbWF0aW9uJyksXG4gICAgICBERUJPVU5DRV9USU1FLFxuICAgICk7XG4gIH07XG5cbiAgcHJpdmF0ZSBfY29uZmlndXJlTGluZWFyTW9kZSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0ZXBzLmZvckVhY2goKHN0ZXAsIGluZGV4KSA9PiB7XG4gICAgICBpZiAoIXN0ZXAubGFiZWwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY3VzdG9tRWxlbWVudHMudXBncmFkZShzdGVwLmxhYmVsKTtcblxuICAgICAgc3RlcC5sYWJlbC5kaXNhYmxlKFxuICAgICAgICAodGhpcy5saW5lYXIgJiYgaW5kZXggPiB0aGlzLnNlbGVjdGVkSW5kZXghKSB8fFxuICAgICAgICAgICghdGhpcy5saW5lYXIgJiYgc3RlcC5sYWJlbC5tYXRjaGVzKCc6c3RhdGUodXNlci1kaXNhYmxlZCknKSksXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuX29uU3RlcHBlclJlc2l6ZSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdkaXNhYmxlLWFuaW1hdGlvbicsICF0aGlzLl9sb2FkZWQpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuX29uU3RlcHBlclJlc2l6ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XG4gICAgICB0aGlzLl9jb25maWd1cmUoKTtcblxuICAgICAgaWYgKHRoaXMuX3JlcXVlc3RlZFNlbGVjdGVkICYmIHRoaXMuc3RlcHMuaW5kZXhPZih0aGlzLl9yZXF1ZXN0ZWRTZWxlY3RlZCkgIT09IC0xKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IHRoaXMuc3RlcHMuaW5kZXhPZih0aGlzLl9yZXF1ZXN0ZWRTZWxlY3RlZCk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX3JlcXVlc3RlZFNlbGVjdGVkSW5kZXgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gdGhpcy5fcmVxdWVzdGVkU2VsZWN0ZWRJbmRleDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IDA7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcyk7XG4gICAgICB0aGlzLl9jaGVja09yaWVudGF0aW9uKCk7XG4gICAgICAvLyBSZW1vdmUgZGlzYWJsZS1hbmltYXRpb24gc3RhdGUgYWZ0ZXIgY29tcG9uZW50IGluaXRcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnZGlzYWJsZS1hbmltYXRpb24nKSwgREVCT1VOQ0VfVElNRSk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdvcmllbnRhdGlvbicpICYmICF0aGlzLmhvcml6b250YWxGcm9tKSB7XG4gICAgICB0aGlzLl91cGRhdGVMYWJlbHMoKTtcbiAgICAgIHRoaXMuX3NldE1hcmtlclNpemUoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbGluZWFyJykgJiYgdGhpcy5fbG9hZGVkKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVMaW5lYXJNb2RlKCk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2l6ZScpKSB7XG4gICAgICB0aGlzLl9zZXRNYXJrZXJTaXplKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlS2V5RG93bihldnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlbmFibGVkU3RlcHM6IFNiYlN0ZXBFbGVtZW50W10gPSB0aGlzLl9lbmFibGVkU3RlcHM7XG5cbiAgICBpZiAoXG4gICAgICAhZW5hYmxlZFN0ZXBzIHx8XG4gICAgICAvLyBkb24ndCB0cmFwIG5lc3RlZCBoYW5kbGluZ1xuICAgICAgKChldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAhPT0gdGhpcyAmJiAoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkucGFyZW50RWxlbWVudCAhPT0gdGhpcylcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaXNBcnJvd0tleVByZXNzZWQoZXZ0KSkge1xuICAgICAgY29uc3QgY3VycmVudDogbnVtYmVyID0gZW5hYmxlZFN0ZXBzLmluZGV4T2YodGhpcy5zZWxlY3RlZCEpO1xuICAgICAgY29uc3QgbmV4dEluZGV4OiBudW1iZXIgPSBnZXROZXh0RWxlbWVudEluZGV4KGV2dCwgY3VycmVudCwgZW5hYmxlZFN0ZXBzLmxlbmd0aCk7XG4gICAgICB0aGlzLl9zZWxlY3QoZW5hYmxlZFN0ZXBzW25leHRJbmRleF0pO1xuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXN0ZXBwZXJfX2xhYmVsc1wiIHJvbGU9XCJ0YWJsaXN0XCI+XG4gICAgICAgIDxzbG90IG5hbWU9XCJzdGVwLWxhYmVsXCIgQHNsb3RjaGFuZ2U9JHt0aGlzLl9jb25maWd1cmV9Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1zdGVwcGVyX19zdGVwc1wiPlxuICAgICAgICA8c2xvdCBuYW1lPVwic3RlcFwiIEBzbG90Y2hhbmdlPSR7dGhpcy5fY29uZmlndXJlfT48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc3RlcHBlcic6IFNiYlN0ZXBwZXJFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQzRCQSxJQUFNLGdCQUFnQjtBQUV0QixJQUFNLGdCQUF3QztDQUM1QyxNQUFNO0NBQ04sT0FBTztDQUNQLE9BQU87Q0FDUCxPQUFPO0NBQ1I7QUFFRCxJQUFhLHFCQUFiLGNB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
423
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQtQlR3SnR0WnQuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3N0ZXBwZXIvc3RlcHBlci9zdGVwcGVyLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3N0ZXBwZXIvc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLXN0ZXBwZXItYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi02eClcbiAgKTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjb3VudGVyLXJlc2V0OiBzdGVwLWxhYmVsO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAtLXNiYi1zdGVwcGVyLW1hcmtlci1jb2xvcjogQnV0dG9uVGV4dDtcbiAgfVxufVxuXG46aG9zdCg6c3RhdGUoZGlzYWJsZS1hbmltYXRpb24pKSB7XG4gIEBpbmNsdWRlIHNiYi5kaXNhYmxlLWFuaW1hdGlvbjtcbn1cblxuOmhvc3QoW29yaWVudGF0aW9uPSd2ZXJ0aWNhbCddKSB7XG4gIC0tc2JiLXN0ZXBwZXItb3JpZW50YXRpb246IGNvbHVtbjtcbn1cblxuLnNiYi1zdGVwcGVyX19sYWJlbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogdmFyKC0tc2JiLXN0ZXBwZXItb3JpZW50YXRpb24pO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gIG1hcmdpbi1ibG9jay1lbmQ6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUtbSk7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQtaW5saW5lLXN0YXJ0OiBjYWxjKHZhcigtLXNiYi1zdGVwcGVyLWJvcmRlci13aWR0aCkgKiAtMSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXN0ZXBwZXItbWFya2VyLWNvbG9yKTtcbiAgfVxuXG4gIDpob3N0KFtvcmllbnRhdGlvbj0naG9yaXpvbnRhbCddKSAmIHtcbiAgICBnYXA6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUtbSk7XG4gICAgcGFkZGluZy1ibG9jay1lbmQ6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTR4KTtcbiAgICBib3JkZXItYmxvY2stZW5kOiB2YXIoLS1zYmItc3RlcHBlci1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXNiYi1ib3JkZXItY29sb3ItNC1pbnZlcnRlZCk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgaW5zZXQtYmxvY2stZW5kOiBjYWxjKHZhcigtLXNiYi1zdGVwcGVyLWJvcmRlci13aWR0aCkgKiAtMSk7XG4gICAgICBoZWlnaHQ6IHZhcigtLXNiYi1zdGVwcGVyLW1hcmtlci13aWR0aCk7XG4gICAgICB3aWR0aDogdmFyKC0tc2JiLXN0ZXBwZXItbWFya2VyLXNpemUsIDApO1xuICAgICAgdHJhbnNpdGlvbjogd2lkdGggdmFyKC0tc2JiLXN0ZXBwZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1zYmItYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgfVxuICB9XG5cbiAgOmhvc3QoW29yaWVudGF0aW9uPSd2ZXJ0aWNhbCddKSAmIHtcbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtNHgpO1xuICAgIGJvcmRlci1pbmxpbmUtc3RhcnQ6IHZhcigtLXNiYi1zdGVwcGVyLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tc2JiLWJvcmRlci1jb2xvci00LWludmVydGVkKTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgIHdpZHRoOiB2YXIoLS1zYmItc3RlcHBlci1tYXJrZXItd2lkdGgpO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1zYmItc3RlcHBlci1tYXJrZXItc2l6ZSwgMCk7XG4gICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgdmFyKC0tc2JiLXN0ZXBwZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1zYmItYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgfVxuICB9XG59XG5cbi5zYmItc3RlcHBlcl9fc3RlcHMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgOmhvc3QoW29yaWVudGF0aW9uPSdob3Jpem9udGFsJ10pICYge1xuICAgIGhlaWdodDogdmFyKC0tc2JiLXN0ZXBwZXItY29udGVudC1oZWlnaHQpO1xuICAgIHRyYW5zaXRpb246IGhlaWdodCB2YXIoLS1zYmItc3RlcHBlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLXNiYi1hbmltYXRpb24tZWFzaW5nKTtcbiAgfVxufVxuXG46OnNsb3R0ZWQoc2JiLXN0ZXAtbGFiZWwpOjpiZWZvcmUge1xuICBjb250ZW50OiBjb3VudGVyKHN0ZXAtbGFiZWwpO1xuICBjb3VudGVyLWluY3JlbWVudDogc3RlcC1sYWJlbDtcbn1cbiIsImltcG9ydCB7IEludGVyc2VjdGlvbkNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL2ludGVyc2VjdGlvbi1jb250cm9sbGVyLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYkhvcml6b250YWxGcm9tLCBTYmJPcmllbnRhdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHtcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBmb3JjZVR5cGUsXG4gIGdldE5leHRFbGVtZW50SW5kZXgsXG4gIGlzQXJyb3dLZXlQcmVzc2VkLFxuICBpc0xlYW4sXG4gIFNiYkVsZW1lbnQsXG4gIFNiYk1lZGlhTWF0Y2hlckNvbnRyb2xsZXIsXG4gIFNiYk1lZGlhUXVlcnlCcmVha3BvaW50TGFyZ2VBbmRBYm92ZSxcbiAgU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRTbWFsbEFuZEFib3ZlLFxuICBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludFVsdHJhQW5kQWJvdmUsXG4gIFNiYk1lZGlhUXVlcnlCcmVha3BvaW50WmVyb0FuZEFib3ZlLFxufSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiU3RlcEVsZW1lbnQsIFNiYlN0ZXBWYWxpZGF0ZUV2ZW50RGV0YWlscyB9IGZyb20gJy4uL3N0ZXAvc3RlcC5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zdGVwcGVyLnNjc3M/aW5saW5lJztcblxuY29uc3QgREVCT1VOQ0VfVElNRSA9IDE1MDtcblxuY29uc3QgYnJlYWtwb2ludE1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgemVybzogU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRaZXJvQW5kQWJvdmUsXG4gIHNtYWxsOiBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludFNtYWxsQW5kQWJvdmUsXG4gIGxhcmdlOiBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludExhcmdlQW5kQWJvdmUsXG4gIHVsdHJhOiBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludFVsdHJhQW5kQWJvdmUsXG59O1xuXG5leHBvcnQgY2xhc3MgU2JiU3RlcENoYW5nZUV2ZW50IGV4dGVuZHMgRXZlbnQge1xuICAvKiogVGhlIGluZGV4IG9mIHRoZSBuZXdseSBzZWxlY3RlZCBzdGVwLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRJbmRleDogbnVtYmVyIHwgbnVsbDtcblxuICAvKiogVGhlIGluZGV4IG9mIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIHN0ZXAuICovXG4gIHB1YmxpYyByZWFkb25seSBwcmV2aW91c0luZGV4OiBudW1iZXIgfCBudWxsO1xuXG4gIC8qKiBUaGUgbmV3bHkgc2VsZWN0ZWQgc3RlcCBlbGVtZW50LiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRTdGVwOiBTYmJTdGVwRWxlbWVudCB8IG51bGw7XG5cbiAgLyoqIFRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIHN0ZXAgZWxlbWVudC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHByZXZpb3VzU3RlcDogU2JiU3RlcEVsZW1lbnQgfCBudWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBzZWxlY3RlZEluZGV4OiBudW1iZXIgfCBudWxsLFxuICAgIHByZXZpb3VzSW5kZXg6IG51bWJlciB8IG51bGwsXG4gICAgc2VsZWN0ZWRTdGVwOiBTYmJTdGVwRWxlbWVudCB8IG51bGwsXG4gICAgcHJldmlvdXNTdGVwOiBTYmJTdGVwRWxlbWVudCB8IG51bGwsXG4gICkge1xuICAgIHN1cGVyKCdzdGVwY2hhbmdlJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KTtcbiAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSBzZWxlY3RlZEluZGV4O1xuICAgIHRoaXMucHJldmlvdXNJbmRleCA9IHByZXZpb3VzSW5kZXg7XG4gICAgdGhpcy5zZWxlY3RlZFN0ZXAgPSBzZWxlY3RlZFN0ZXA7XG4gICAgdGhpcy5wcmV2aW91c1N0ZXAgPSBwcmV2aW91c1N0ZXA7XG4gIH1cbn1cbi8qKlxuICogUHJvdmlkZXMgYSBzdHJ1Y3R1cmVkLCBzdGVwLWJ5LXN0ZXAgd29ya2Zsb3cgZm9yIHVzZXIgaW50ZXJhY3Rpb25zLlxuICogQHNsb3QgLSBQcm92aWRlIGEgYHNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyYCBhbmQgYSBgc2JiLWV4cGFuc2lvbi1wYW5lbC1jb250ZW50YCB0byB0aGUgc3RlcHBlci5cbiAqIEBzbG90IHN0ZXAtbGFiZWwgLSBVc2UgdGhpcyBzbG90IHRvIHByb3ZpZGUgYW4gYHNiYi1zdGVwLWxhYmVsYC5cbiAqIEBzbG90IHN0ZXAgLSBVc2UgdGhpcyBzbG90IHRvIHByb3ZpZGUgYW4gYHNiYi1zdGVwYC5cbiAqIEBldmVudCB7U2JiU3RlcENoYW5nZUV2ZW50fSBzdGVwY2hhbmdlIC0gRW1pdHMgd2hlbmV2ZXIgYSBzdGVwIHdhcyBjaGFuZ2VkLlxuICovXG5leHBvcnQgY2xhc3MgU2JiU3RlcHBlckVsZW1lbnQgZXh0ZW5kcyBTYmJFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1zdGVwcGVyJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHN0ZXBjaGFuZ2U6ICdzdGVwY2hhbmdlJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKipcbiAgICogSWYgdGhlIHNiYi1zdGVwcGVyIGlzIHVzZWQgaW4gYSBzYmItZGlhbG9nLCB0aGUgbWFya2VyIG9uIHRoZSBzZWxlY3RlZCBlbGVtZW50IHdpbGwgbm90IGFwcGVhcixcbiAgICogYmVjYXVzZSB0aGUgY2FsY3VsYXRpb25zIGFyZSBkb25lIHdoZW4gdGhlIGRpYWxvZyBpcyBjbG9zZWQsIHNvIHRoZSBtYXJrZXIgaGFzIGEgd2lkdGggb2YgMDtcbiAgICogdGhlIHNhbWUgaGFwcGVucyBmb3IgdGhlIHN0ZXBwZXIgaGVpZ2h0LlxuICAgKiBXZSBuZWVkIHRvIHJlY2FsY3VsYXRlIGl0IHdoZW4gdGhlIGVsZW1lbnQgYmVjb21lcyB2aXNpYmxlLlxuICAgKi9cbiAgcHJpdmF0ZSBfb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uQ29udHJvbGxlcih0aGlzLCB7XG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIGNhbGxiYWNrOiAoZW50cmllcykgPT4ge1xuICAgICAgZW50cmllcy5mb3JFYWNoKChlKSA9PiB7XG4gICAgICAgIGlmIChlLmludGVyc2VjdGlvblJhdGlvID4gMCkge1xuICAgICAgICAgIHRoaXMuX3NldFN0ZXBwZXJIZWlnaHQodGhpcy5zZWxlY3RlZCk7XG4gICAgICAgICAgdGhpcy5fc2V0TWFya2VyU2l6ZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICB9KTtcblxuICAvKiogSWYgc2V0IHRvIHRydWUsIG9ubHkgdGhlIGN1cnJlbnQgYW5kIHByZXZpb3VzIGxhYmVscyBjYW4gYmUgY2xpY2tlZCBhbmQgc2VsZWN0ZWQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBsaW5lYXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogT3ZlcnJpZGVzIHRoZSBiZWhhdmlvciBvZiBgb3JpZW50YXRpb25gIHByb3BlcnR5LiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdob3Jpem9udGFsLWZyb20nLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBzZXQgaG9yaXpvbnRhbEZyb20odmFsdWU6IFNiYkhvcml6b250YWxGcm9tIHwgbnVsbCkge1xuICAgIHRoaXMuX2hvcml6b250YWxGcm9tID0gdmFsdWUgJiYgYnJlYWtwb2ludE1hcFt2YWx1ZV0gPyB2YWx1ZSA6IG51bGw7XG4gICAgaWYgKHRoaXMuX2hvcml6b250YWxGcm9tICYmIHRoaXMuX2xvYWRlZCkge1xuICAgICAgdGhpcy5fY2hlY2tPcmllbnRhdGlvbigpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IGhvcml6b250YWxGcm9tKCk6IFNiYkhvcml6b250YWxGcm9tIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2hvcml6b250YWxGcm9tO1xuICB9XG4gIHByaXZhdGUgX2hvcml6b250YWxGcm9tOiBTYmJIb3Jpem9udGFsRnJvbSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBTdGVwcyBvcmllbnRhdGlvbiwgZWl0aGVyIGhvcml6b250YWwgb3IgdmVydGljYWwuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIG9yaWVudGF0aW9uOiBTYmJPcmllbnRhdGlvbiA9ICdob3Jpem9udGFsJztcblxuICAvKipcbiAgICogU2l6ZSB2YXJpYW50LCBlaXRoZXIgcyBvciBtLlxuICAgKiBAZGVmYXVsdCAnbScgLyAncycgKGxlYW4pXG4gICAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBzaXplOiAncycgfCAnbScgPSBpc0xlYW4oKSA/ICdzJyA6ICdtJztcblxuICAvKiogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCBzdGVwLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWQoc3RlcDogU2JiU3RlcEVsZW1lbnQgfCBudWxsKSB7XG4gICAgaWYgKHRoaXMuX2xvYWRlZCkge1xuICAgICAgdGhpcy5fc2VsZWN0KHN0ZXApO1xuICAgIH1cbiAgICB0aGlzLl9yZXF1ZXN0ZWRTZWxlY3RlZCA9IHN0ZXA7XG4gIH1cbiAgcHVibGljIGdldCBzZWxlY3RlZCgpOiBTYmJTdGVwRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3I/LjxTYmJTdGVwRWxlbWVudD4oJ3NiYi1zdGVwOnN0YXRlKHNlbGVjdGVkKScpID8/IG51bGw7XG4gIH1cbiAgcHJpdmF0ZSBfcmVxdWVzdGVkU2VsZWN0ZWQ6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgc3RlcCBpbmRleC4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnc2VsZWN0ZWQtaW5kZXgnLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIHNldCBzZWxlY3RlZEluZGV4KGluZGV4OiBudW1iZXIgfCBudWxsKSB7XG4gICAgaWYgKHRoaXMuX2xvYWRlZCAmJiBpbmRleCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5fc2VsZWN0KHRoaXMuc3RlcHNbaW5kZXhdKTtcbiAgICB9XG4gICAgdGhpcy5fcmVxdWVzdGVkU2VsZWN0ZWRJbmRleCA9IGluZGV4O1xuICB9XG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRJbmRleCgpOiBudW1iZXIgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZCA/IHRoaXMuc3RlcHMuaW5kZXhPZih0aGlzLnNlbGVjdGVkKSA6IG51bGw7XG4gIH1cbiAgcHJpdmF0ZSBfcmVxdWVzdGVkU2VsZWN0ZWRJbmRleDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFRoZSBzdGVwcyBvZiB0aGUgc3RlcHBlci4gKi9cbiAgcHVibGljIGdldCBzdGVwcygpOiBTYmJTdGVwRWxlbWVudFtdIHtcbiAgICBjb25zdCBzdGVwczogU2JiU3RlcEVsZW1lbnRbXSA9IFtdO1xuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbD8uKCdzYmItc3RlcCcpLmZvckVhY2goKHN0ZXApID0+IHtcbiAgICAgIGN1c3RvbUVsZW1lbnRzLnVwZ3JhZGUoc3RlcCk7XG4gICAgICBzdGVwcy5wdXNoKHN0ZXApO1xuICAgIH0pO1xuICAgIHJldHVybiBzdGVwcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF9lbmFibGVkU3RlcHMoKTogU2JiU3RlcEVsZW1lbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuc3RlcHMuZmlsdGVyKChzKSA9PiB7XG4gICAgICBpZiAocy5sYWJlbCkge1xuICAgICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKHMubGFiZWwpO1xuICAgICAgICByZXR1cm4gIXMubGFiZWwuZGlzYWJsZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9sb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXJUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9tZWRpYU1hdGNoZXIgPSBuZXcgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcih0aGlzLCB7fSk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2tleWRvd24nLCAoZSkgPT4gdGhpcy5faGFuZGxlS2V5RG93bihlKSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3Jlc2l6ZWNoYW5nZScsIChlOiBFdmVudCkgPT4gdGhpcy5fb25TZWxlY3RlZFN0ZXBSZXNpemUoZSkpO1xuICB9XG5cbiAgLyoqIFNlbGVjdHMgdGhlIG5leHQgc3RlcC4gKi9cbiAgcHVibGljIG5leHQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5fc2VsZWN0KHRoaXMuc3RlcHNbdGhpcy5zZWxlY3RlZEluZGV4ICsgMV0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBTZWxlY3RzIHRoZSBwcmV2aW91cyBzdGVwLiAqL1xuICBwdWJsaWMgcHJldmlvdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5fc2VsZWN0KHRoaXMuc3RlcHNbdGhpcy5zZWxlY3RlZEluZGV4IC0gMV0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZXNldHMgdGhlIGZvcm0gaW4gd2hpY2ggdGhlIHN0ZXBwZXIgaXMgbmVzdGVkIG9yIGV2ZXJ5IGZvcm0gb2YgZWFjaCBzdGVwLCBpZiBhbnkuICovXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICBjb25zdCBjbG9zZXN0Rm9ybSA9IHRoaXMuY2xvc2VzdCgnZm9ybScpO1xuICAgIGlmIChjbG9zZXN0Rm9ybSkge1xuICAgICAgY2xvc2VzdEZvcm0ucmVzZXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsKCdmb3JtJykuZm9yRWFjaCgoZm9ybSkgPT4gZm9ybS5yZXNldCgpKTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gMDtcbiAgICAvLyBJbiBjYXNlIHRoZSBmb2N1cyBpcyBjdXJyZW50bHkgaW5zaWRlIHRoZSBzdGVwcGVyLCB3ZSByZXNldCB0aGUgZm9jdXMgdG8gdGhlIGZpcnN0L3NlbGVjdGVkIHN0ZXAgbGFiZWwuXG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmNsb3Nlc3QoJ3NiYi1zdGVwcGVyJykgPT09IHRoaXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQ/LmxhYmVsPy5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzU2VsZWN0YWJsZShzdGVwOiBTYmJTdGVwRWxlbWVudCB8IG51bGwpOiBzdGVwIGlzIFNiYlN0ZXBFbGVtZW50IHtcbiAgICBpZiAoc3RlcCkge1xuICAgICAgY3VzdG9tRWxlbWVudHMudXBncmFkZShzdGVwKTtcbiAgICAgIGlmIChzdGVwLmxhYmVsKSB7XG4gICAgICAgIGN1c3RvbUVsZW1lbnRzLnVwZ3JhZGUoc3RlcC5sYWJlbCk7XG4gICAgICAgIGlmICghdGhpcy5saW5lYXIgJiYgc3RlcC5sYWJlbC5kaXNhYmxlZCkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZWxlY3Qoc3RlcDogU2JiU3RlcEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pc1NlbGVjdGFibGUoc3RlcCkgfHwgc3RlcCA9PT0gdGhpcy5zZWxlY3RlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLnNlbGVjdGVkSW5kZXg7XG4gICAgY29uc3QgY3VycmVudFN0ZXAgPSB0aGlzLnNlbGVjdGVkO1xuICAgIGNvbnN0IHZhbGlkYXRlUGF5bG9hZDogU2JiU3RlcFZhbGlkYXRlRXZlbnREZXRhaWxzID0ge1xuICAgICAgY3VycmVudEluZGV4LFxuICAgICAgY3VycmVudFN0ZXAsXG4gICAgICBuZXh0SW5kZXg6IHRoaXMuc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCA/IHRoaXMuc2VsZWN0ZWRJbmRleCArIDEgOiBudWxsLFxuICAgICAgbmV4dFN0ZXA6IHRoaXMuc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCA/IHRoaXMuc3RlcHNbdGhpcy5zZWxlY3RlZEluZGV4ICsgMV0gOiBudWxsLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZCAmJiAhdGhpcy5zZWxlY3RlZC52YWxpZGF0ZSh2YWxpZGF0ZVBheWxvYWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuc2VsZWN0ZWQ7XG4gICAgY3VycmVudD8uZGVzZWxlY3QoKTtcbiAgICBzdGVwLnNlbGVjdCgpO1xuXG4gICAgLyoqIEBpbnRlcm5hbCBvbmx5IHRvIHByb3ZpZGUgZG91YmxlIGVudHJ5IGluIGRvY3MuIEl0IGlzIGEgcHVibGljIGV2ZW50ISAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBTYmJTdGVwQ2hhbmdlRXZlbnQodGhpcy5zZWxlY3RlZEluZGV4LCBjdXJyZW50SW5kZXgsIHRoaXMuc2VsZWN0ZWQsIGN1cnJlbnRTdGVwKSxcbiAgICApO1xuXG4gICAgdGhpcy5fc2V0TWFya2VyU2l6ZSgpO1xuICAgIHRoaXMuX3NldFN0ZXBwZXJIZWlnaHQoc3RlcCk7XG4gICAgdGhpcy5fY29uZmlndXJlTGluZWFyTW9kZSgpO1xuICAgIC8vIEluIGNhc2UgdGhlIGZvY3VzIGlzIGN1cnJlbnRseSBpbnNpZGUgdGhlIHN0ZXBwZXIsIHdlIGZvY3VzIHRoZSBzZWxlY3RlZCBzdGVwIGxhYmVsLlxuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50Py5jbG9zZXN0KCdzYmItc3RlcHBlcicpID09PSB0aGlzKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkPy5sYWJlbD8uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXRNYXJrZXJTaXplKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICF0aGlzLl9sb2FkZWQgfHxcbiAgICAgICF0aGlzLnNlbGVjdGVkIHx8XG4gICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPT09IHVuZGVmaW5lZCB8fFxuICAgICAgIXRoaXMuc2VsZWN0ZWQubGFiZWxcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgb2Zmc2V0ID1cbiAgICAgIHRoaXMub3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJ1xuICAgICAgICA/IHRoaXMuc2VsZWN0ZWQubGFiZWwub2Zmc2V0TGVmdCArIHRoaXMuc2VsZWN0ZWQubGFiZWwub2Zmc2V0V2lkdGhcbiAgICAgICAgOiB0aGlzLl9jYWxjdWxhdGVMYWJlbE9mZnNldFRvcCgpO1xuXG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItc3RlcHBlci1tYXJrZXItc2l6ZScsIGAke29mZnNldH1weGApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHN0ZXBwZXIgaGVpZ2h0IGJhc2VkIG9uIHRoZSBoZWlnaHQgb2YgdGhlIHByb3ZpZGVkIHN0ZXAuXG4gICAqL1xuICBwcml2YXRlIF9zZXRTdGVwcGVySGVpZ2h0KHN0ZXA6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChzdGVwICYmIHN0ZXAuc2hhZG93Um9vdCkge1xuICAgICAgY29uc3QgaW5uZXJFbGVtZW50OiBTYmJTdGVwRWxlbWVudCB8IG51bGwgPSBzdGVwLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnNiYi1zdGVwJyk7XG4gICAgICBpZiAoaW5uZXJFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuc3R5bGU/LnNldFByb3BlcnR5KCctLXNiYi1zdGVwcGVyLWNvbnRlbnQtaGVpZ2h0JywgYCR7aW5uZXJFbGVtZW50Lm9mZnNldEhlaWdodH1weGApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NhbGN1bGF0ZUxhYmVsT2Zmc2V0VG9wKCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICBmb3IgKGNvbnN0IHN0ZXAgb2YgdGhpcy5zdGVwcykge1xuICAgICAgaWYgKHN0ZXAgPT09IHRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBvZmZzZXQgPSBzdGVwLmxhYmVsIS5vZmZzZXRIZWlnaHQgKyBvZmZzZXQ7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICBvZmZzZXQgK1xuICAgICAgdGhpcy5zZWxlY3RlZCEubGFiZWwhLm9mZnNldEhlaWdodCEgK1xuICAgICAgcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKHRoaXMpLmdldFByb3BlcnR5VmFsdWUoJy0tc2JiLXNwYWNpbmctZml4ZWQtNngnKSkgKlxuICAgICAgICAxNiAqXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9vblNlbGVjdGVkU3RlcFJlc2l6ZShlOiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuX3NldFN0ZXBwZXJIZWlnaHQoZS50YXJnZXQgYXMgU2JiU3RlcEVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29uZmlndXJlKCk6IHZvaWQge1xuICAgIHRoaXMuc3RlcHMuZm9yRWFjaCgoc3RlcCwgaSwgYXJyYXkpID0+IHtcbiAgICAgIHN0ZXAuY29uZmlndXJlKHRoaXMuX2xvYWRlZCk7XG4gICAgICBzdGVwLmxhYmVsPy5jb25maWd1cmUoaSArIDEsIGFycmF5Lmxlbmd0aCwgdGhpcy5fbG9hZGVkKTtcbiAgICB9KTtcbiAgICB0aGlzLl9zZWxlY3QodGhpcy5zZWxlY3RlZCB8fCB0aGlzLl9lbmFibGVkU3RlcHNbMF0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlTGFiZWxzKCk6IHZvaWQge1xuICAgIHRoaXMuc3RlcHMuZm9yRWFjaCgoc3RlcCkgPT4ge1xuICAgICAgc3RlcC5zbG90ID0gdGhpcy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnID8gJ3N0ZXAnIDogJ3N0ZXAtbGFiZWwnO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tPcmllbnRhdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ob3Jpem9udGFsRnJvbSkge1xuICAgICAgdGhpcy5vcmllbnRhdGlvbiA9IHRoaXMuX21lZGlhTWF0Y2hlci5tYXRjaGVzKGJyZWFrcG9pbnRNYXBbdGhpcy5ob3Jpem9udGFsRnJvbV0pXG4gICAgICAgID8gJ2hvcml6b250YWwnXG4gICAgICAgIDogJ3ZlcnRpY2FsJztcbiAgICAgIHRoaXMuX3VwZGF0ZUxhYmVscygpO1xuICAgIH1cbiAgICAvLyBUaGUgdGltZW91dCBpcyBuZWVkZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIG1hcmtlciB0YWtlcyB0aGUgY29ycmVjdCBzdGVwLWxhYmVsIHNpemUuXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl9zZXRNYXJrZXJTaXplKCksIDApO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25TdGVwcGVyUmVzaXplID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX2NoZWNrT3JpZW50YXRpb24oKTtcbiAgICB0aGlzLl9zZXRTdGVwcGVySGVpZ2h0KHRoaXMuc2VsZWN0ZWQpO1xuICAgIGNsZWFyVGltZW91dCh0aGlzLl9yZXNpemVPYnNlcnZlclRpbWVvdXQhKTtcbiAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKCdkaXNhYmxlLWFuaW1hdGlvbicpO1xuXG4gICAgLy8gRGlzYWJsZSB0aGUgYW5pbWF0aW9uIHdoZW4gcmVzaXppbmcgdG8gYXZvaWQgc3RyYW5nZSB0cmFuc2l0aW9uIGVmZmVjdHMuXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXJUaW1lb3V0ID0gc2V0VGltZW91dChcbiAgICAgICgpID0+IHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ2Rpc2FibGUtYW5pbWF0aW9uJyksXG4gICAgICBERUJPVU5DRV9USU1FLFxuICAgICk7XG4gIH07XG5cbiAgcHJpdmF0ZSBfY29uZmlndXJlTGluZWFyTW9kZSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0ZXBzLmZvckVhY2goKHN0ZXAsIGluZGV4KSA9PiB7XG4gICAgICBpZiAoIXN0ZXAubGFiZWwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY3VzdG9tRWxlbWVudHMudXBncmFkZShzdGVwLmxhYmVsKTtcblxuICAgICAgc3RlcC5sYWJlbC5kaXNhYmxlKFxuICAgICAgICAodGhpcy5saW5lYXIgJiYgaW5kZXggPiB0aGlzLnNlbGVjdGVkSW5kZXghKSB8fFxuICAgICAgICAgICghdGhpcy5saW5lYXIgJiYgc3RlcC5sYWJlbC5tYXRjaGVzKCc6c3RhdGUodXNlci1kaXNhYmxlZCknKSksXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuX29uU3RlcHBlclJlc2l6ZSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdkaXNhYmxlLWFuaW1hdGlvbicsICF0aGlzLl9sb2FkZWQpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuX29uU3RlcHBlclJlc2l6ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XG4gICAgICB0aGlzLl9jb25maWd1cmUoKTtcblxuICAgICAgaWYgKHRoaXMuX3JlcXVlc3RlZFNlbGVjdGVkICYmIHRoaXMuc3RlcHMuaW5kZXhPZih0aGlzLl9yZXF1ZXN0ZWRTZWxlY3RlZCkgIT09IC0xKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IHRoaXMuc3RlcHMuaW5kZXhPZih0aGlzLl9yZXF1ZXN0ZWRTZWxlY3RlZCk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX3JlcXVlc3RlZFNlbGVjdGVkSW5kZXgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gdGhpcy5fcmVxdWVzdGVkU2VsZWN0ZWRJbmRleDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IDA7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcyk7XG4gICAgICB0aGlzLl9jaGVja09yaWVudGF0aW9uKCk7XG4gICAgICAvLyBSZW1vdmUgZGlzYWJsZS1hbmltYXRpb24gc3RhdGUgYWZ0ZXIgY29tcG9uZW50IGluaXRcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnZGlzYWJsZS1hbmltYXRpb24nKSwgREVCT1VOQ0VfVElNRSk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdvcmllbnRhdGlvbicpICYmICF0aGlzLmhvcml6b250YWxGcm9tKSB7XG4gICAgICB0aGlzLl91cGRhdGVMYWJlbHMoKTtcbiAgICAgIHRoaXMuX3NldE1hcmtlclNpemUoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbGluZWFyJykgJiYgdGhpcy5fbG9hZGVkKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVMaW5lYXJNb2RlKCk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2l6ZScpKSB7XG4gICAgICB0aGlzLl9zZXRNYXJrZXJTaXplKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlS2V5RG93bihldnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlbmFibGVkU3RlcHM6IFNiYlN0ZXBFbGVtZW50W10gPSB0aGlzLl9lbmFibGVkU3RlcHM7XG5cbiAgICBpZiAoXG4gICAgICAhZW5hYmxlZFN0ZXBzIHx8XG4gICAgICAvLyBkb24ndCB0cmFwIG5lc3RlZCBoYW5kbGluZ1xuICAgICAgKChldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAhPT0gdGhpcyAmJiAoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkucGFyZW50RWxlbWVudCAhPT0gdGhpcylcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaXNBcnJvd0tleVByZXNzZWQoZXZ0KSkge1xuICAgICAgY29uc3QgY3VycmVudDogbnVtYmVyID0gZW5hYmxlZFN0ZXBzLmluZGV4T2YodGhpcy5zZWxlY3RlZCEpO1xuICAgICAgY29uc3QgbmV4dEluZGV4OiBudW1iZXIgPSBnZXROZXh0RWxlbWVudEluZGV4KGV2dCwgY3VycmVudCwgZW5hYmxlZFN0ZXBzLmxlbmd0aCk7XG4gICAgICB0aGlzLl9zZWxlY3QoZW5hYmxlZFN0ZXBzW25leHRJbmRleF0pO1xuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXN0ZXBwZXJfX2xhYmVsc1wiIHJvbGU9XCJ0YWJsaXN0XCI+XG4gICAgICAgIDxzbG90IG5hbWU9XCJzdGVwLWxhYmVsXCIgQHNsb3RjaGFuZ2U9JHt0aGlzLl9jb25maWd1cmV9Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1zdGVwcGVyX19zdGVwc1wiPlxuICAgICAgICA8c2xvdCBuYW1lPVwic3RlcFwiIEBzbG90Y2hhbmdlPSR7dGhpcy5fY29uZmlndXJlfT48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc3RlcHBlcic6IFNiYlN0ZXBwZXJFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQzRCQSxJQUFNLGdCQUFnQjtBQUV0QixJQUFNLGdCQUF3QztDQUM1QyxNQUFNO0NBQ04sT0FBTztDQUNQLE9BQU87Q0FDUCxPQUFPO0NBQ1I7QUFFRCxJQUFhLHFCQUFiLGNB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
@@ -200,4 +200,4 @@ var SbbStickyBarElement = (() => {
200
200
  //#endregion
201
201
  export { SbbStickyBarElement as t };
202
202
 
203
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RpY2t5LWJhci5jb21wb25lbnQtTU1CU1BhMkIuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvbnRhaW5lci9zdGlja3ktYmFyL3N0aWNreS1iYXIuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvY29udGFpbmVyL3N0aWNreS1iYXIvc3RpY2t5LWJhci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuJGludGVyc2VjdG9yLW92ZXJsYXBwaW5nOiAxcHg7XG5cbi8vIGA6c3RhdGUoc3RpY2tpbmcpYCB2LnMuIGA6c3RhdGUoc3RhdGUtc3RpY2t5KWA6XG4vLyBXaGlsZSBgOnN0YXRlKHN0aWNraW5nKWAgaXMgcmVwcmVzZW50aW5nIHdoZXRoZXIgdGhlIHN0aWNreSBiYXIgaXMgY3VycmVudGx5IHN0aWNraW5nIChkdWUgc2Nyb2xsaW5nKSxcbi8vIHRoZSBgOnN0YXRlKHN0YXRlLXh5KWAgaG9sZHMgaW5mb3JtYXRpb24gd2hldGhlciB0aGUgYHBvc2l0aW9uOiBzdGlja3lgIGlzIGFwcGxpZWQgb3Igbm90XG4vLyBidXQgbm90IGNvbnNpZGVyaW5nIHRoZSByZWFsIHN0aWNraW5nIHN0YXRlLlxuXG46aG9zdCB7XG4gIC0tc2JiLXN0aWNreS1iYXItZmFkZS1pbi1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTV4KVxuICApO1xuICAtLXNiYi1zdGlja3ktYmFyLWZhZGUtb3V0LWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tMngpXG4gICk7XG4gIC0tc2JiLXN0aWNreS1iYXItc2xpZGUtdmVydGljYWxseS1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KVxuICApO1xuICAtLV9zYmItc3RpY2t5LWJhci1iYWNrZ3JvdW5kLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLXN0aWNreS1iYXItZmFkZS1vdXQtYW5pbWF0aW9uLWR1cmF0aW9uXG4gICk7XG5cbiAgLy8gRGlzcGxheSBjb250ZW50cyBuZWVkZWQgdG8gZ2V0IHRoZSBzdGlja3kgYmFyIHN0aWNreS5cbiAgZGlzcGxheTogY29udGVudHM7XG59XG5cbjpob3N0KFtzaXplPSdzJ10pIHtcbiAgLS1zYmItc3RpY2t5LWJhci1wYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXh4eHMpO1xufVxuXG46aG9zdChbc2l6ZT0nbSddKSB7XG4gIC0tc2JiLXN0aWNreS1iYXItcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14cyk7XG59XG5cbjpob3N0KDpzdGF0ZShzdGlja2luZyk6bm90KDpzdGF0ZShzdGF0ZS11bnN0aWNreSkpKSB7XG4gIC0tc2JiLXN0aWNreS1iYXItc3RpY2t5LWJhY2tncm91bmQtY29sb3I6IHZhcihcbiAgICAtLXNiYi1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcixcbiAgICB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci0xKVxuICApO1xuICAtLV9zYmItc3RpY2t5LWJhci1pbnRlcnNlY3Rvci1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc3RpY2t5LWJhci1zdGlja3ktYmFja2dyb3VuZC1jb2xvcik7XG4gIC0tX3NiYi1zdGlja3ktYmFyLWJhY2tncm91bmQtYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1zYmItc3RpY2t5LWJhci1mYWRlLWluLWFuaW1hdGlvbi1kdXJhdGlvbik7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIC0tX3NiYi1zdGlja3ktYmFyLWZvcmNlZC1jb2xvcnMtYm9yZGVyOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KSBzb2xpZCBDYW52YXNUZXh0O1xuICB9XG59XG5cbjpob3N0KDpzdGF0ZShzdGlja2luZyk6bm90KDpzdGF0ZShzdGF0ZS11bnN0aWNreSkpW2NvbG9yPSd3aGl0ZSddKSB7XG4gIC0tc2JiLXN0aWNreS1iYXItc3RpY2t5LWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTEpO1xufVxuXG46aG9zdCg6c3RhdGUoc3RpY2tpbmcpOm5vdCg6c3RhdGUoc3RhdGUtdW5zdGlja3kpKVtjb2xvcj0nbWlsayddKSB7XG4gIC0tc2JiLXN0aWNreS1iYXItc3RpY2t5LWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTMpO1xufVxuXG46aG9zdCg6c3RhdGUoc3RpY2tpbmcpOm5vdCg6c3RhdGUoc3RhdGUtdW5zdGlja3kpKVtjb2xvcj0nbWlkbmlnaHQnXSkge1xuICAtLXNiYi1zdGlja3ktYmFyLXN0aWNreS1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci0xLW5lZ2F0aXZlKTtcbn1cblxuOmhvc3QoOnN0YXRlKHN0aWNraW5nKTpub3QoOnN0YXRlKHN0YXRlLXVuc3RpY2t5KSlbY29sb3I9J2NoYXJjb2FsJ10pIHtcbiAgLS1zYmItc3RpY2t5LWJhci1zdGlja3ktYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMi1uZWdhdGl2ZSk7XG59XG5cbjpob3N0KFxuICA6aXMoXG4gICAgOnN0YXRlKHN0aWNraW5nKTppcyg6c3RhdGUoc2xpZGUtdmVydGljYWxseSksIDpzdGF0ZShzdGF0ZS1zdGlja2luZyksIDpzdGF0ZShzdGF0ZS11bnN0aWNraW5nKSksXG4gICAgOnN0YXRlKHN0YXRlLXVuc3RpY2t5KVxuICApXG4pIHtcbiAgLS1fc2JiLXN0aWNreS1iYXItYmFja2dyb3VuZC1hbmltYXRpb24tZHVyYXRpb246IDBzO1xufVxuXG46aG9zdChcbiAgOnN0YXRlKHN0aWNraW5nKTppcyhcbiAgICA6c3RhdGUoc2xpZGUtdmVydGljYWxseSk6bm90KDpzdGF0ZShzdGF0ZS11bnN0aWNreSksIDpzdGF0ZShzdGF0ZS11bnN0aWNraW5nKSksXG4gICAgOnN0YXRlKHN0YXRlLXN0aWNraW5nKVxuICApXG4pIHtcbiAgLS1zYmItc3RpY2t5LWJhci1zbGlkZS12ZXJ0aWNhbGx5LWFuaW1hdGlvbi1uYW1lOiBzbGlkZS1pbjtcbn1cblxuOmhvc3QoOnN0YXRlKHN0aWNraW5nKTpzdGF0ZShzdGF0ZS11bnN0aWNraW5nKSkge1xuICAtLXNiYi1zdGlja3ktYmFyLXNsaWRlLXZlcnRpY2FsbHktYW5pbWF0aW9uLW5hbWU6IHNsaWRlLW91dDtcbn1cblxuOmhvc3QoOmlzKDpub3QoOnN0YXRlKGluaXRpYWxpemVkKSksIDpzdGF0ZShzdGF0ZS11bnN0aWNreSkpKSB7XG4gIC0tc2JiLXN0aWNreS1iYXItcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uc2JiLXN0aWNreS1iYXJfX3dyYXBwZXIge1xuICBwb3NpdGlvbjogdmFyKC0tc2JiLXN0aWNreS1iYXItcG9zaXRpb24pO1xuICBpbnNldC1ibG9jay1lbmQ6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB6LWluZGV4OiB2YXIoLS1zYmItc3RpY2t5LWJhci16LWluZGV4KTtcblxuICBhbmltYXRpb246IHtcbiAgICBuYW1lOiB2YXIoLS1zYmItc3RpY2t5LWJhci1zbGlkZS12ZXJ0aWNhbGx5LWFuaW1hdGlvbi1uYW1lLCB1bnNldCk7XG4gICAgZHVyYXRpb246IHZhcigtLXNiYi1zdGlja3ktYmFyLXNsaWRlLXZlcnRpY2FsbHktYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICB0aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi1zdGlja3ktYmFyLXNsaWRlLXZlcnRpY2FsbHktYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgZGVsYXk6IDBzO1xuXG4gICAgLy8gRmlsbCBtb2RlIG5lZWRlZCB0byBlbmFibGUgZGVsYXlcbiAgICBmaWxsLW1vZGU6IGJhY2t3YXJkcztcbiAgfVxuXG4gICY6OmFmdGVyLFxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGluc2V0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB6LWluZGV4OiAtMTtcbiAgfVxuXG4gIC8vIENvbnRhaW5lciBiYWNrZ3JvdW5kIGNvbG9yIChjb3B5aW5nIGNvbnRhaW5lcilcbiAgJjo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItY29udGFpbmVyLWJhY2tncm91bmQtY29sb3IpO1xuXG4gICAgLy8gTmVlZGVkIGJlY2F1c2UgdGhlcmUgaXMgbm8gY29udGVudCBhbmQgRmlyZWZveFxuICAgIC8vIGhhcyB0cm91YmxlcyBkaXNwbGF5aW5nIGNvcnJlY3QgcGFkZGluZyB3aGVuIHRoZXJlIGlzIG5vIGNvbnRlbnQuXG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuXG4gICAgOmhvc3QoOm5vdCg6c3RhdGUoZXhwYW5kZWQpKSkgJiB7XG4gICAgICBAaW5jbHVkZSBzYmIucGFnZS1zcGFjaW5nO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbG9yIGFuZCBib3JkZXIgcmFkaXVzIHdoZW4gc3RpY2t5XG4gICY6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc3RpY2t5LWJhci1zdGlja3ktYmFja2dyb3VuZC1jb2xvciwgdHJhbnNwYXJlbnQpO1xuICAgIGJvcmRlci1zdGFydC1zdGFydC1yYWRpdXM6IHZhcigtLXNiYi1zdGlja3ktYmFyLWJvcmRlci1yYWRpdXMpO1xuICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1zYmItc3RpY2t5LWJhci1ib3JkZXItcmFkaXVzKTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLV9zYmItc3RpY2t5LWJhci1iYWNrZ3JvdW5kLWFuaW1hdGlvbi1kdXJhdGlvbilcbiAgICAgIHZhcigtLXNiYi1zdGlja3ktYmFyLWFuaW1hdGlvbi1lYXNpbmcpO1xuXG4gICAgLy8gRGlzcGxheSBhIGJvcmRlciBvbiBoaWdoIGNvbnRyYXN0IG1vZGUuXG4gICAgYm9yZGVyOiB2YXIoLS1fc2JiLXN0aWNreS1iYXItZm9yY2VkLWNvbG9ycy1ib3JkZXIsIG5vbmUpO1xuICB9XG59XG5cbi5zYmItc3RpY2t5LWJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi1zdGlja3ktYmFyLXBhZGRpbmctYmxvY2spO1xuXG4gIC8vIFRvIHB1c2ggdGhlIC5zYmItc3RpY2t5LWJhcl9faW50ZXJzZWN0b3IgdXAgd2l0aG91dCB1c2luZyBhYnNvbHV0ZSBwb3NpdGlvbiB3ZSBuZWVkIGEgbmVnYXRpdmUgYmxvY2sgbWFyZ2luLlxuICBtYXJnaW4tYmxvY2stZW5kOiAtJGludGVyc2VjdG9yLW92ZXJsYXBwaW5nO1xuXG4gIC8vIFNoYWRvdyB3aXRoIGJvcmRlciByYWRpdXMgYW5kIGNsaXBwZWQgc2hhZG93IGF0IHRoZSBib3R0b21cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgei1pbmRleDogLTE7XG4gICAgYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czogdmFyKC0tc2JiLXN0aWNreS1iYXItYm9yZGVyLXJhZGl1cyk7XG4gICAgYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6IHZhcigtLXNiYi1zdGlja3ktYmFyLWJvcmRlci1yYWRpdXMpO1xuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgdmFyKC0tX3NiYi1zdGlja3ktYmFyLWJhY2tncm91bmQtYW5pbWF0aW9uLWR1cmF0aW9uKVxuICAgICAgdmFyKC0tc2JiLXN0aWNreS1iYXItYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKFxuICAgICAgLTEwMCUgY2FsYygtMSAqIHZhcigtLXNiYi1zaGFkb3ctZWxldmF0aW9uLWxldmVsLTExLXNoYWRvdy0xLWJsdXIpKSxcbiAgICAgIDE1MCUgY2FsYygtMSAqIHZhcigtLXNiYi1zaGFkb3ctZWxldmF0aW9uLWxldmVsLTExLXNoYWRvdy0xLWJsdXIpKSxcbiAgICAgIDE1MCUgMTAwJSxcbiAgICAgIC0xMDAlIDEwMCVcbiAgICApO1xuXG4gICAgOmhvc3QoOnN0YXRlKHN0aWNraW5nKTpub3QoOnN0YXRlKHN0YXRlLXVuc3RpY2t5KSkpICYge1xuICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2JiLWJveC1zaGFkb3ctbGV2ZWwtMTEtc29mdCk7XG4gICAgfVxuICB9XG5cbiAgOmhvc3QoOm5vdCg6c3RhdGUoZXhwYW5kZWQpKSkgJiB7XG4gICAgQGluY2x1ZGUgc2JiLnBhZ2Utc3BhY2luZztcbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShleHBhbmRlZCkpICYge1xuICAgIEBpbmNsdWRlIHNiYi5wYWdlLXNwYWNpbmctZXhwYW5kZWQ7XG4gIH1cbn1cblxuLnNiYi1zdGlja3ktYmFyX19pbnRlcnNlY3RvciB7XG4gIC8vIEluIG9yZGVyIHRvIG1ha2UgdGhlIGludGVyc2VjdGlvbiBvYnNlcnZlciB3b3JrIHByb3Blcmx5IG9uIHdpbmRvd3MgdGhlIGludGVyc2VjdG9yIG5lZWRzIHRvIGhhdmUgYSBkZWZpbmVkIGhlaWdodFxuICBoZWlnaHQ6ICRpbnRlcnNlY3Rvci1vdmVybGFwcGluZztcblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogY2FsYyh2YXIoLS1zYmItc3RpY2t5LWJhci1ib3R0b20tb3ZlcmxhcHBpbmctaGVpZ2h0LCAwKSArICRpbnRlcnNlY3Rvci1vdmVybGFwcGluZyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tX3NiYi1zdGlja3ktYmFyLWludGVyc2VjdG9yLWJhY2tncm91bmQtY29sb3IsIHRyYW5zcGFyZW50KTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLV9zYmItc3RpY2t5LWJhci1iYWNrZ3JvdW5kLWFuaW1hdGlvbi1kdXJhdGlvbilcbiAgICAgIHZhcigtLXNiYi1zdGlja3ktYmFyLWFuaW1hdGlvbi1lYXNpbmcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGUtaW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlLW91dCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBJbnRlcnNlY3Rpb25Db250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9pbnRlcnNlY3Rpb24tY29udHJvbGxlci5qcyc7XG5pbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHtcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBpc0xlYW4sXG4gIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uLFxuICBTYmJFbGVtZW50LFxuICBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbixcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3N0aWNreS1iYXIuc2Nzcz9pbmxpbmUnO1xuXG50eXBlIFN0aWNreVN0YXRlID0gJ3N0aWNraW5nJyB8ICdzdGlja3knIHwgJ3Vuc3RpY2tpbmcnIHwgJ3Vuc3RpY2t5JztcblxuLyoqXG4gKiBBIGNvbnRhaW5lciB0aGF0IHN0aWNrcyB0byB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGlmIHNsb3R0ZWQgaW50byBgc2JiLWNvbnRhaW5lcmAuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgc3RpY2t5IGJhci5cbiAqIEBjc3Nwcm9wIFstLXNiYi1zdGlja3ktYmFyLXBhZGRpbmctYmxvY2s9dmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14cyldIC0gQmxvY2sgcGFkZGluZyBvZiB0aGUgc3RpY2t5IGJhci5cbiAqIEBjc3Nwcm9wIFstLXNiYi1zdGlja3ktYmFyLWJvdHRvbS1vdmVybGFwcGluZy1oZWlnaHQ9MHB4XSAtIERlZmluZSBhbiBhZGRpdGlvbmFsIGFyZWEgd2hlcmVcbiAqIHRoZSBzdGlja3kgYmFyIG92ZXJsYXBzIHRoZSBmb2xsb3dpbmcgY29udGVudCBvbiB0aGUgYm90dG9tLlxuICogVGhpcyBhcmVhIGJlY29tZXMgdmlzaWJsZSB3aGVuIHRoZSBzdGlja3kgYmFyIHRyYW5zaXRpb25zIGZyb20gc3RpY2t5IHRvIHRoZSBub3JtYWwgZG9jdW1lbnQgZmxvdy5cbiAqIEBjc3Nwcm9wIFstLXNiYi1zdGlja3ktYmFyLXotaW5kZXhdIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTdGlja3lCYXJFbGVtZW50IGV4dGVuZHMgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW4oU2JiRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXN0aWNreS1iYXInO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCB1bnNhZmVDU1Moc3R5bGUpXTtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBiZWZvcmVzdGljazogJ2JlZm9yZXN0aWNrJyxcbiAgICBzdGljazogJ3N0aWNrJyxcbiAgICBiZWZvcmV1bnN0aWNrOiAnYmVmb3JldW5zdGljaycsXG4gICAgdW5zdGljazogJ3Vuc3RpY2snLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBDb2xvciBvZiB0aGUgY29udGFpbmVyLCBsaWtlIHRyYW5zcGFyZW50LCB3aGl0ZSBldGMuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIGNvbG9yOlxuICAgIHwgJ3doaXRlJ1xuICAgIHwgJ21pbGsnXG4gICAgfCAnbWlkbmlnaHQnXG4gICAgfCAnY2hhcmNvYWwnXG4gICAgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogU2l6ZSBvZiB0aGUgY29udGFpbmVyLlxuICAgKiBAZGVmYXVsdCAnbScgLyAncycgKGxlYW4pXG4gICAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBzaXplOiAnbScgfCAncycgPSBpc0xlYW4oKSA/ICdzJyA6ICdtJztcblxuICAvKiogVGhlIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuICovXG4gIHByaXZhdGUgc2V0IF9zdGF0ZShzdGF0ZTogU3RpY2t5U3RhdGUpIHtcbiAgICBpZiAodGhpcy5fc3RhdGVJbnRlcm5hbCkge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShgc3RhdGUtJHt0aGlzLl9zdGF0ZUludGVybmFsfWApO1xuICAgIH1cbiAgICB0aGlzLl9zdGF0ZUludGVybmFsID0gc3RhdGU7XG4gICAgaWYgKHRoaXMuX3N0YXRlSW50ZXJuYWwpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoYHN0YXRlLSR7dGhpcy5fc3RhdGVJbnRlcm5hbH1gKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXQgX3N0YXRlKCk6IFN0aWNreVN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGVJbnRlcm5hbDtcbiAgfVxuICBwcml2YXRlIF9zdGF0ZUludGVybmFsITogU3RpY2t5U3RhdGU7XG5cbiAgcHJpdmF0ZSBfaW50ZXJzZWN0b3I/OiBIVE1MU3BhbkVsZW1lbnQ7XG4gIHByaXZhdGUgX29ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbkNvbnRyb2xsZXIodGhpcywge1xuICAgIC8vIEFsdGhvdWdoIGB0aGlzYCBpcyBvYnNlcnZlZCwgd2UgaGF2ZSB0byBwb3N0cG9uZSBvYnNlcnZpbmdcbiAgICAvLyBpbnRvIGZpcnN0VXBkYXRlZCgpIHRvIGFjaGlldmUgYSBjb3JyZWN0IGluaXRpYWwgc3RhdGUuXG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIGNhbGxiYWNrOiAoZW50cmllcykgPT4gdGhpcy5fZGV0ZWN0U3RpY2t5U3RhdGUoZW50cmllc1swXSksXG4gIH0pO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5fc3RhdGUgPSAnc3RpY2t5JztcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuc2xvdCB8fD0gJ3N0aWNreS1iYXInO1xuXG4gICAgLy8gU3RpY2t5IGJhciBuZWVkcyB0byBiZSBoaWRkZW4gdW50aWwgZmlyc3Qgb2JzZXJ2ZXIgY2FsbGJhY2tcbiAgICB0aGlzLnN0YXJ0VXBkYXRlKCk7XG5cbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNsb3Nlc3QoJ3NiYi1jb250YWluZXInKTtcbiAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICB0aGlzLnRvZ2dsZVN0YXRlKCdleHBhbmRlZCcsIGNvbnRhaW5lci5leHBhbmRlZCk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9pbnRlcnNlY3Rvcikge1xuICAgICAgdGhpcy5fb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9pbnRlcnNlY3Rvcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnaW5pdGlhbGl6ZWQnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmICghdGhpcy5faW50ZXJzZWN0b3IpIHtcbiAgICAgIHRoaXMuX2ludGVyc2VjdG9yID0gdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCcuc2JiLXN0aWNreS1iYXJfX2ludGVyc2VjdG9yJykhO1xuICAgICAgdGhpcy5fb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9pbnRlcnNlY3Rvcik7XG4gICAgfVxuICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcyk7XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLXN0aWNreS1iYXItc2xpZGUtdmVydGljYWxseS1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RldGVjdFN0aWNreVN0YXRlKGVudHJ5OiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5KTogdm9pZCB7XG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnaW5pdGlhbGl6ZWQnKTtcblxuICAgIGNvbnN0IGlzU3RpY2t5ID0gIWVudHJ5LmlzSW50ZXJzZWN0aW5nICYmIGVudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC50b3AgPiAwO1xuXG4gICAgLy8gVG8gb3B0aW1pemUgdGhlIHZpc3VhbCBwZXJjZXB0aW9uIG9mIHRoZSBzdGlja3kgYmFyLCB3ZSBoYXZlIGNlcnRhaW4gY2FzZXMgKGUuZy4gb24gcGFnZSBsb2FkKVxuICAgIC8vIHdoZXJlIHdlIHdhbnQgdGhlIHN0aWNreSBiYXIgdG8gc2xpZGUgaW4gZnJvbSB0aGUgYm90dG9tLlxuICAgIC8vIFRvIGRlY2lkZSB3aGV0aGVyIHRvIHNsaWRlIGluIGZyb20gdGhlIGJvdHRvbSB1cCxcbiAgICAvLyB3ZSBjaGVjayBob3cgZmFyIGF3YXkgdGhlIHN0aWNreSBiYXIgaXMgZnJvbSB0aGUgaW50ZXJzZWN0b3IgZWxlbWVudC4gV2hlbiBzY3JvbGxpbmcgZmFzdCwgdGhlXG4gICAgLy8gZGlmZmVyZW5jZSBjYW4gdmFyeSBzbGlnaHRseS4gVG8gYWNjb3VudCBmb3IgdGhpcyB3ZSBhZGQgYSBoZWlnaHQgdG9sZXJhbmNlLlxuICAgIC8vIFRoaXMgdmFsdWUgd2FzIGZvdW5kIGJ5IHRyaWFsIGFuZCBlcnJvci5cbiAgICBjb25zdCBpbnRlcnNlY3RvclJlY3QgPSB0aGlzLl9pbnRlcnNlY3Rvcj8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3Qgc3RpY2t5QmFyUmVjdCA9IHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcihcbiAgICAgICcuc2JiLXN0aWNreS1iYXJfX3dyYXBwZXInLFxuICAgICkhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IEhFSUdIVF9UT0xFUkFOQ0UgPSAzMDtcblxuICAgIHRoaXMudG9nZ2xlU3RhdGUoXG4gICAgICAnc2xpZGUtdmVydGljYWxseScsXG4gICAgICBpc1N0aWNreSAmJlxuICAgICAgICB0aGlzLl9pbnRlcnNlY3RvciAmJlxuICAgICAgICBNYXRoLmFicyhpbnRlcnNlY3RvclJlY3QhLmJvdHRvbSAtIHN0aWNreUJhclJlY3QuYm90dG9tKSA+IEhFSUdIVF9UT0xFUkFOQ0UsXG4gICAgKTtcblxuICAgIC8vIFRvZ2dsaW5nIHN0aWNraW5nIGhhcyB0byBiZSBhZnRlciBzbGlkZS12ZXJ0aWNhbGx5IChwcmV2ZW50cyBiYWNrZ3JvdW5kIGNvbG9yIHRyYW5zaXRpb24pXG4gICAgdGhpcy50b2dnbGVTdGF0ZSgnc3RpY2tpbmcnLCBpc1N0aWNreSk7XG5cbiAgICAvLyBTdGlja3kgYmFyIG5lZWRzIHRvIGJlIGhpZGRlbiB1bnRpbCBmaXJzdCBvYnNlcnZlciBjYWxsYmFja1xuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgfVxuXG4gIC8qKiBBbmltYXRlcyBmcm9tIG5vcm1hbCBjb250ZW50IGZsb3cgcG9zaXRpb24gdG8gYHBvc2l0aW9uOiBzdGlja3lgLiAqL1xuICBwdWJsaWMgc3RpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N0YXRlICE9PSAndW5zdGlja3knIHx8ICF0aGlzLl9kaXNwYXRjaEJlZm9yZVN0aWNrRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3N0YXRlID0gJ3N0aWNraW5nJztcbiAgICBpZiAoIXRoaXMuaW50ZXJuYWxzLnN0YXRlcy5oYXMoJ3N0aWNraW5nJykgfHwgdGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5fc3RpY2t5Q2FsbGJhY2soKTtcbiAgICB9XG4gIH1cblxuICAvKiogQW5pbWF0ZXMgYHBvc2l0aW9uOiBzdGlja3lgIHRvIG5vcm1hbCBjb250ZW50IGZsb3cgcG9zaXRpb24uICovXG4gIHB1YmxpYyB1bnN0aWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdGF0ZSAhPT0gJ3N0aWNreScgfHwgIXRoaXMuX2Rpc3BhdGNoQmVmb3JlVW5TdGlja0V2ZW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0ZSA9ICd1bnN0aWNraW5nJztcblxuICAgIGlmICghdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmhhcygnc3RpY2tpbmcnKSB8fCB0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl91bnN0aWNreUNhbGxiYWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc3RpY2t5Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUgPSAnc3RpY2t5JztcblxuICAgIC8qKiBFbWl0cyB3aGVuIHRoZSBhbmltYXRpb24gZnJvbSBub3JtYWwgY29udGVudCBmbG93IHRvIGBwb3NpdGlvbjogc3RpY2t5YCBlbmRzLiAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3N0aWNrJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdW5zdGlja3lDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAvKiogRW1pdHMgd2hlbiB0aGUgYW5pbWF0aW9uIGZyb20gYHBvc2l0aW9uOiBzdGlja3lgIHRvIG5vcm1hbCBjb250ZW50IGZsb3cgZW5kcy4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCd1bnN0aWNrJykpO1xuICAgIHRoaXMuX3N0YXRlID0gJ3Vuc3RpY2t5JztcbiAgfVxuXG4gIHByaXZhdGUgX29uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICh0aGlzLl9zdGF0ZSA9PT0gJ3N0aWNraW5nJyB8fCB0aGlzLl9zdGF0ZSA9PT0gJ3N0aWNreScpICYmXG4gICAgICBldmVudC5hbmltYXRpb25OYW1lID09PSAnc2xpZGUtaW4nXG4gICAgKSB7XG4gICAgICB0aGlzLl9zdGlja3lDYWxsYmFjaygpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fc3RhdGUgPT09ICd1bnN0aWNraW5nJyAmJiBldmVudC5hbmltYXRpb25OYW1lID09PSAnc2xpZGUtb3V0Jykge1xuICAgICAgdGhpcy5fdW5zdGlja3lDYWxsYmFjaygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2Rpc3BhdGNoQmVmb3JlU3RpY2tFdmVudCgpOiBib29sZWFuIHtcbiAgICAvKiogRW1pdHMgd2hlbiB0aGUgYW5pbWF0aW9uIGZyb20gbm9ybWFsIGNvbnRlbnQgZmxvdyB0byBgcG9zaXRpb246IHN0aWNreWAgc3RhcnRzLiBDYW4gYmUgY2FuY2VsZWQuICovXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2JlZm9yZXN0aWNrJywgeyBjYW5jZWxhYmxlOiB0cnVlIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Rpc3BhdGNoQmVmb3JlVW5TdGlja0V2ZW50KCk6IGJvb2xlYW4ge1xuICAgIC8qKiBFbWl0cyB3aGVuIHRoZSBhbmltYXRpb24gZnJvbSBgcG9zaXRpb246IHN0aWNreWAgdG8gbm9ybWFsIGNvbnRlbnQgZmxvdyBzdGFydHMuIENhbiBiZSBjYW5jZWxlZC4gKi9cbiAgICByZXR1cm4gdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnYmVmb3JldW5zdGljaycsIHsgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3RpY2t5LWJhcl9fd3JhcHBlclwiIEBhbmltYXRpb25lbmQ9JHt0aGlzLl9vbkFuaW1hdGlvbkVuZH0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3RpY2t5LWJhclwiPlxuICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3RpY2t5LWJhcl9faW50ZXJzZWN0b3JcIj48L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc3RpY2t5LWJhcic6IFNiYlN0aWNreUJhckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNpQ2EsNkJBQW1CO21CQUFTLHdCQUF3QixXQUFXOzs7Ozs7O2NBQS9ELDRCQUE0QixZQUFtQzs7O3dCQVl6RSxTQUFTLEVBQUUsU0FBUyxNQUFNLENBQUMsQ0FBQTt1QkFXM0IsU0FBUyxFQUFFLFNBQVMsTUFBTSxDQUFDLENBQUE7QUFYQyxnQkFBQSxNQUFBLE1BQUEsbUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxXQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQUssTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFMLFFBQUs7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSxxQkFBQSx5QkFBQTtBQVdyQixnQkFBQSxNQUFBLE1BQUEsa0JBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxVQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQUksTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFKLE9BQUk7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSxvQkFBQSx3QkFBQTs7Ozs7Ozs7O0FBdEJqQixRQUFBLGNBQXNCOzs7QUFDL0IsUUFBQSxTQUF5QixDQUFDLGlCQUFpQixVQUFVLG1CQUFNLENBQUM7OztBQUU1RCxRQUFBLFNB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
203
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RpY2t5LWJhci5jb21wb25lbnQtTU1CU1BhMkIuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvbnRhaW5lci9zdGlja3ktYmFyL3N0aWNreS1iYXIuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvY29udGFpbmVyL3N0aWNreS1iYXIvc3RpY2t5LWJhci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuJGludGVyc2VjdG9yLW92ZXJsYXBwaW5nOiAxcHg7XG5cbi8vIGA6c3RhdGUoc3RpY2tpbmcpYCB2LnMuIGA6c3RhdGUoc3RhdGUtc3RpY2t5KWA6XG4vLyBXaGlsZSBgOnN0YXRlKHN0aWNraW5nKWAgaXMgcmVwcmVzZW50aW5nIHdoZXRoZXIgdGhlIHN0aWNreSBiYXIgaXMgY3VycmVudGx5IHN0aWNraW5nIChkdWUgc2Nyb2xsaW5nKSxcbi8vIHRoZSBgOnN0YXRlKHN0YXRlLXh5KWAgaG9sZHMgaW5mb3JtYXRpb24gd2hldGhlciB0aGUgYHBvc2l0aW9uOiBzdGlja3lgIGlzIGFwcGxpZWQgb3Igbm90XG4vLyBidXQgbm90IGNvbnNpZGVyaW5nIHRoZSByZWFsIHN0aWNraW5nIHN0YXRlLlxuXG46aG9zdCB7XG4gIC0tc2JiLXN0aWNreS1iYXItZmFkZS1pbi1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTV4KVxuICApO1xuICAtLXNiYi1zdGlja3ktYmFyLWZhZGUtb3V0LWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tMngpXG4gICk7XG4gIC0tc2JiLXN0aWNreS1iYXItc2xpZGUtdmVydGljYWxseS1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KVxuICApO1xuICAtLV9zYmItc3RpY2t5LWJhci1iYWNrZ3JvdW5kLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLXN0aWNreS1iYXItZmFkZS1vdXQtYW5pbWF0aW9uLWR1cmF0aW9uXG4gICk7XG5cbiAgLy8gRGlzcGxheSBjb250ZW50cyBuZWVkZWQgdG8gZ2V0IHRoZSBzdGlja3kgYmFyIHN0aWNreS5cbiAgZGlzcGxheTogY29udGVudHM7XG59XG5cbjpob3N0KFtzaXplPSdzJ10pIHtcbiAgLS1zYmItc3RpY2t5LWJhci1wYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXh4eHMpO1xufVxuXG46aG9zdChbc2l6ZT0nbSddKSB7XG4gIC0tc2JiLXN0aWNreS1iYXItcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14cyk7XG59XG5cbjpob3N0KDpzdGF0ZShzdGlja2luZyk6bm90KDpzdGF0ZShzdGF0ZS11bnN0aWNreSkpKSB7XG4gIC0tc2JiLXN0aWNreS1iYXItc3RpY2t5LWJhY2tncm91bmQtY29sb3I6IHZhcihcbiAgICAtLXNiYi1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcixcbiAgICB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci0xKVxuICApO1xuICAtLV9zYmItc3RpY2t5LWJhci1pbnRlcnNlY3Rvci1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc3RpY2t5LWJhci1zdGlja3ktYmFja2dyb3VuZC1jb2xvcik7XG4gIC0tX3NiYi1zdGlja3ktYmFyLWJhY2tncm91bmQtYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1zYmItc3RpY2t5LWJhci1mYWRlLWluLWFuaW1hdGlvbi1kdXJhdGlvbik7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIC0tX3NiYi1zdGlja3ktYmFyLWZvcmNlZC1jb2xvcnMtYm9yZGVyOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KSBzb2xpZCBDYW52YXNUZXh0O1xuICB9XG59XG5cbjpob3N0KDpzdGF0ZShzdGlja2luZyk6bm90KDpzdGF0ZShzdGF0ZS11bnN0aWNreSkpW2NvbG9yPSd3aGl0ZSddKSB7XG4gIC0tc2JiLXN0aWNreS1iYXItc3RpY2t5LWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTEpO1xufVxuXG46aG9zdCg6c3RhdGUoc3RpY2tpbmcpOm5vdCg6c3RhdGUoc3RhdGUtdW5zdGlja3kpKVtjb2xvcj0nbWlsayddKSB7XG4gIC0tc2JiLXN0aWNreS1iYXItc3RpY2t5LWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTMpO1xufVxuXG46aG9zdCg6c3RhdGUoc3RpY2tpbmcpOm5vdCg6c3RhdGUoc3RhdGUtdW5zdGlja3kpKVtjb2xvcj0nbWlkbmlnaHQnXSkge1xuICAtLXNiYi1zdGlja3ktYmFyLXN0aWNreS1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci0xLW5lZ2F0aXZlKTtcbn1cblxuOmhvc3QoOnN0YXRlKHN0aWNraW5nKTpub3QoOnN0YXRlKHN0YXRlLXVuc3RpY2t5KSlbY29sb3I9J2NoYXJjb2FsJ10pIHtcbiAgLS1zYmItc3RpY2t5LWJhci1zdGlja3ktYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMi1uZWdhdGl2ZSk7XG59XG5cbjpob3N0KFxuICA6aXMoXG4gICAgOnN0YXRlKHN0aWNraW5nKTppcyg6c3RhdGUoc2xpZGUtdmVydGljYWxseSksIDpzdGF0ZShzdGF0ZS1zdGlja2luZyksIDpzdGF0ZShzdGF0ZS11bnN0aWNraW5nKSksXG4gICAgOnN0YXRlKHN0YXRlLXVuc3RpY2t5KVxuICApXG4pIHtcbiAgLS1fc2JiLXN0aWNreS1iYXItYmFja2dyb3VuZC1hbmltYXRpb24tZHVyYXRpb246IDBzO1xufVxuXG46aG9zdChcbiAgOnN0YXRlKHN0aWNraW5nKTppcyhcbiAgICA6c3RhdGUoc2xpZGUtdmVydGljYWxseSk6bm90KDpzdGF0ZShzdGF0ZS11bnN0aWNreSksIDpzdGF0ZShzdGF0ZS11bnN0aWNraW5nKSksXG4gICAgOnN0YXRlKHN0YXRlLXN0aWNraW5nKVxuICApXG4pIHtcbiAgLS1zYmItc3RpY2t5LWJhci1zbGlkZS12ZXJ0aWNhbGx5LWFuaW1hdGlvbi1uYW1lOiBzbGlkZS1pbjtcbn1cblxuOmhvc3QoOnN0YXRlKHN0aWNraW5nKTpzdGF0ZShzdGF0ZS11bnN0aWNraW5nKSkge1xuICAtLXNiYi1zdGlja3ktYmFyLXNsaWRlLXZlcnRpY2FsbHktYW5pbWF0aW9uLW5hbWU6IHNsaWRlLW91dDtcbn1cblxuOmhvc3QoOmlzKDpub3QoOnN0YXRlKGluaXRpYWxpemVkKSksIDpzdGF0ZShzdGF0ZS11bnN0aWNreSkpKSB7XG4gIC0tc2JiLXN0aWNreS1iYXItcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uc2JiLXN0aWNreS1iYXJfX3dyYXBwZXIge1xuICBwb3NpdGlvbjogdmFyKC0tc2JiLXN0aWNreS1iYXItcG9zaXRpb24pO1xuICBpbnNldC1ibG9jay1lbmQ6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB6LWluZGV4OiB2YXIoLS1zYmItc3RpY2t5LWJhci16LWluZGV4KTtcblxuICBhbmltYXRpb246IHtcbiAgICBuYW1lOiB2YXIoLS1zYmItc3RpY2t5LWJhci1zbGlkZS12ZXJ0aWNhbGx5LWFuaW1hdGlvbi1uYW1lLCB1bnNldCk7XG4gICAgZHVyYXRpb246IHZhcigtLXNiYi1zdGlja3ktYmFyLXNsaWRlLXZlcnRpY2FsbHktYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICB0aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi1zdGlja3ktYmFyLXNsaWRlLXZlcnRpY2FsbHktYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgZGVsYXk6IDBzO1xuXG4gICAgLy8gRmlsbCBtb2RlIG5lZWRlZCB0byBlbmFibGUgZGVsYXlcbiAgICBmaWxsLW1vZGU6IGJhY2t3YXJkcztcbiAgfVxuXG4gICY6OmFmdGVyLFxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGluc2V0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB6LWluZGV4OiAtMTtcbiAgfVxuXG4gIC8vIENvbnRhaW5lciBiYWNrZ3JvdW5kIGNvbG9yIChjb3B5aW5nIGNvbnRhaW5lcilcbiAgJjo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItY29udGFpbmVyLWJhY2tncm91bmQtY29sb3IpO1xuXG4gICAgLy8gTmVlZGVkIGJlY2F1c2UgdGhlcmUgaXMgbm8gY29udGVudCBhbmQgRmlyZWZveFxuICAgIC8vIGhhcyB0cm91YmxlcyBkaXNwbGF5aW5nIGNvcnJlY3QgcGFkZGluZyB3aGVuIHRoZXJlIGlzIG5vIGNvbnRlbnQuXG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuXG4gICAgOmhvc3QoOm5vdCg6c3RhdGUoZXhwYW5kZWQpKSkgJiB7XG4gICAgICBAaW5jbHVkZSBzYmIucGFnZS1zcGFjaW5nO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbG9yIGFuZCBib3JkZXIgcmFkaXVzIHdoZW4gc3RpY2t5XG4gICY6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc3RpY2t5LWJhci1zdGlja3ktYmFja2dyb3VuZC1jb2xvciwgdHJhbnNwYXJlbnQpO1xuICAgIGJvcmRlci1zdGFydC1zdGFydC1yYWRpdXM6IHZhcigtLXNiYi1zdGlja3ktYmFyLWJvcmRlci1yYWRpdXMpO1xuICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1zYmItc3RpY2t5LWJhci1ib3JkZXItcmFkaXVzKTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLV9zYmItc3RpY2t5LWJhci1iYWNrZ3JvdW5kLWFuaW1hdGlvbi1kdXJhdGlvbilcbiAgICAgIHZhcigtLXNiYi1zdGlja3ktYmFyLWFuaW1hdGlvbi1lYXNpbmcpO1xuXG4gICAgLy8gRGlzcGxheSBhIGJvcmRlciBvbiBoaWdoIGNvbnRyYXN0IG1vZGUuXG4gICAgYm9yZGVyOiB2YXIoLS1fc2JiLXN0aWNreS1iYXItZm9yY2VkLWNvbG9ycy1ib3JkZXIsIG5vbmUpO1xuICB9XG59XG5cbi5zYmItc3RpY2t5LWJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi1zdGlja3ktYmFyLXBhZGRpbmctYmxvY2spO1xuXG4gIC8vIFRvIHB1c2ggdGhlIC5zYmItc3RpY2t5LWJhcl9faW50ZXJzZWN0b3IgdXAgd2l0aG91dCB1c2luZyBhYnNvbHV0ZSBwb3NpdGlvbiB3ZSBuZWVkIGEgbmVnYXRpdmUgYmxvY2sgbWFyZ2luLlxuICBtYXJnaW4tYmxvY2stZW5kOiAtJGludGVyc2VjdG9yLW92ZXJsYXBwaW5nO1xuXG4gIC8vIFNoYWRvdyB3aXRoIGJvcmRlciByYWRpdXMgYW5kIGNsaXBwZWQgc2hhZG93IGF0IHRoZSBib3R0b21cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgei1pbmRleDogLTE7XG4gICAgYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czogdmFyKC0tc2JiLXN0aWNreS1iYXItYm9yZGVyLXJhZGl1cyk7XG4gICAgYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6IHZhcigtLXNiYi1zdGlja3ktYmFyLWJvcmRlci1yYWRpdXMpO1xuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgdmFyKC0tX3NiYi1zdGlja3ktYmFyLWJhY2tncm91bmQtYW5pbWF0aW9uLWR1cmF0aW9uKVxuICAgICAgdmFyKC0tc2JiLXN0aWNreS1iYXItYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKFxuICAgICAgLTEwMCUgY2FsYygtMSAqIHZhcigtLXNiYi1zaGFkb3ctZWxldmF0aW9uLWxldmVsLTExLXNoYWRvdy0xLWJsdXIpKSxcbiAgICAgIDE1MCUgY2FsYygtMSAqIHZhcigtLXNiYi1zaGFkb3ctZWxldmF0aW9uLWxldmVsLTExLXNoYWRvdy0xLWJsdXIpKSxcbiAgICAgIDE1MCUgMTAwJSxcbiAgICAgIC0xMDAlIDEwMCVcbiAgICApO1xuXG4gICAgOmhvc3QoOnN0YXRlKHN0aWNraW5nKTpub3QoOnN0YXRlKHN0YXRlLXVuc3RpY2t5KSkpICYge1xuICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2JiLWJveC1zaGFkb3ctbGV2ZWwtMTEtc29mdCk7XG4gICAgfVxuICB9XG5cbiAgOmhvc3QoOm5vdCg6c3RhdGUoZXhwYW5kZWQpKSkgJiB7XG4gICAgQGluY2x1ZGUgc2JiLnBhZ2Utc3BhY2luZztcbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShleHBhbmRlZCkpICYge1xuICAgIEBpbmNsdWRlIHNiYi5wYWdlLXNwYWNpbmctZXhwYW5kZWQ7XG4gIH1cbn1cblxuLnNiYi1zdGlja3ktYmFyX19pbnRlcnNlY3RvciB7XG4gIC8vIEluIG9yZGVyIHRvIG1ha2UgdGhlIGludGVyc2VjdGlvbiBvYnNlcnZlciB3b3JrIHByb3Blcmx5IG9uIHdpbmRvd3MgdGhlIGludGVyc2VjdG9yIG5lZWRzIHRvIGhhdmUgYSBkZWZpbmVkIGhlaWdodFxuICBoZWlnaHQ6ICRpbnRlcnNlY3Rvci1vdmVybGFwcGluZztcblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogY2FsYyh2YXIoLS1zYmItc3RpY2t5LWJhci1ib3R0b20tb3ZlcmxhcHBpbmctaGVpZ2h0LCAwKSArICRpbnRlcnNlY3Rvci1vdmVybGFwcGluZyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tX3NiYi1zdGlja3ktYmFyLWludGVyc2VjdG9yLWJhY2tncm91bmQtY29sb3IsIHRyYW5zcGFyZW50KTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLV9zYmItc3RpY2t5LWJhci1iYWNrZ3JvdW5kLWFuaW1hdGlvbi1kdXJhdGlvbilcbiAgICAgIHZhcigtLXNiYi1zdGlja3ktYmFyLWFuaW1hdGlvbi1lYXNpbmcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGUtaW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlLW91dCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBJbnRlcnNlY3Rpb25Db250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9pbnRlcnNlY3Rpb24tY29udHJvbGxlci5qcyc7XG5pbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHtcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBpc0xlYW4sXG4gIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uLFxuICBTYmJFbGVtZW50LFxuICBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbixcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3N0aWNreS1iYXIuc2Nzcz9pbmxpbmUnO1xuXG50eXBlIFN0aWNreVN0YXRlID0gJ3N0aWNraW5nJyB8ICdzdGlja3knIHwgJ3Vuc3RpY2tpbmcnIHwgJ3Vuc3RpY2t5JztcblxuLyoqXG4gKiBBIGNvbnRhaW5lciB0aGF0IHN0aWNrcyB0byB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGlmIHNsb3R0ZWQgaW50byBgc2JiLWNvbnRhaW5lcmAuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgc3RpY2t5IGJhci5cbiAqIEBjc3Nwcm9wIFstLXNiYi1zdGlja3ktYmFyLXBhZGRpbmctYmxvY2s9dmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14cyldIC0gQmxvY2sgcGFkZGluZyBvZiB0aGUgc3RpY2t5IGJhci5cbiAqIEBjc3Nwcm9wIFstLXNiYi1zdGlja3ktYmFyLWJvdHRvbS1vdmVybGFwcGluZy1oZWlnaHQ9MHB4XSAtIERlZmluZSBhbiBhZGRpdGlvbmFsIGFyZWEgd2hlcmVcbiAqIHRoZSBzdGlja3kgYmFyIG92ZXJsYXBzIHRoZSBmb2xsb3dpbmcgY29udGVudCBvbiB0aGUgYm90dG9tLlxuICogVGhpcyBhcmVhIGJlY29tZXMgdmlzaWJsZSB3aGVuIHRoZSBzdGlja3kgYmFyIHRyYW5zaXRpb25zIGZyb20gc3RpY2t5IHRvIHRoZSBub3JtYWwgZG9jdW1lbnQgZmxvdy5cbiAqIEBjc3Nwcm9wIFstLXNiYi1zdGlja3ktYmFyLXotaW5kZXhdIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTdGlja3lCYXJFbGVtZW50IGV4dGVuZHMgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW4oU2JiRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXN0aWNreS1iYXInO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCB1bnNhZmVDU1Moc3R5bGUpXTtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBiZWZvcmVzdGljazogJ2JlZm9yZXN0aWNrJyxcbiAgICBzdGljazogJ3N0aWNrJyxcbiAgICBiZWZvcmV1bnN0aWNrOiAnYmVmb3JldW5zdGljaycsXG4gICAgdW5zdGljazogJ3Vuc3RpY2snLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBDb2xvciBvZiB0aGUgY29udGFpbmVyLCBsaWtlIHRyYW5zcGFyZW50LCB3aGl0ZSBldGMuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIGNvbG9yOlxuICAgIHwgJ3doaXRlJ1xuICAgIHwgJ21pbGsnXG4gICAgfCAnbWlkbmlnaHQnXG4gICAgfCAnY2hhcmNvYWwnXG4gICAgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogU2l6ZSBvZiB0aGUgY29udGFpbmVyLlxuICAgKiBAZGVmYXVsdCAnbScgLyAncycgKGxlYW4pXG4gICAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBzaXplOiAnbScgfCAncycgPSBpc0xlYW4oKSA/ICdzJyA6ICdtJztcblxuICAvKiogVGhlIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuICovXG4gIHByaXZhdGUgc2V0IF9zdGF0ZShzdGF0ZTogU3RpY2t5U3RhdGUpIHtcbiAgICBpZiAodGhpcy5fc3RhdGVJbnRlcm5hbCkge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShgc3RhdGUtJHt0aGlzLl9zdGF0ZUludGVybmFsfWApO1xuICAgIH1cbiAgICB0aGlzLl9zdGF0ZUludGVybmFsID0gc3RhdGU7XG4gICAgaWYgKHRoaXMuX3N0YXRlSW50ZXJuYWwpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoYHN0YXRlLSR7dGhpcy5fc3RhdGVJbnRlcm5hbH1gKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXQgX3N0YXRlKCk6IFN0aWNreVN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGVJbnRlcm5hbDtcbiAgfVxuICBwcml2YXRlIF9zdGF0ZUludGVybmFsITogU3RpY2t5U3RhdGU7XG5cbiAgcHJpdmF0ZSBfaW50ZXJzZWN0b3I/OiBIVE1MU3BhbkVsZW1lbnQ7XG4gIHByaXZhdGUgX29ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbkNvbnRyb2xsZXIodGhpcywge1xuICAgIC8vIEFsdGhvdWdoIGB0aGlzYCBpcyBvYnNlcnZlZCwgd2UgaGF2ZSB0byBwb3N0cG9uZSBvYnNlcnZpbmdcbiAgICAvLyBpbnRvIGZpcnN0VXBkYXRlZCgpIHRvIGFjaGlldmUgYSBjb3JyZWN0IGluaXRpYWwgc3RhdGUuXG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIGNhbGxiYWNrOiAoZW50cmllcykgPT4gdGhpcy5fZGV0ZWN0U3RpY2t5U3RhdGUoZW50cmllc1swXSksXG4gIH0pO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5fc3RhdGUgPSAnc3RpY2t5JztcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuc2xvdCB8fD0gJ3N0aWNreS1iYXInO1xuXG4gICAgLy8gU3RpY2t5IGJhciBuZWVkcyB0byBiZSBoaWRkZW4gdW50aWwgZmlyc3Qgb2JzZXJ2ZXIgY2FsbGJhY2tcbiAgICB0aGlzLnN0YXJ0VXBkYXRlKCk7XG5cbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNsb3Nlc3QoJ3NiYi1jb250YWluZXInKTtcbiAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICB0aGlzLnRvZ2dsZVN0YXRlKCdleHBhbmRlZCcsIGNvbnRhaW5lci5leHBhbmRlZCk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9pbnRlcnNlY3Rvcikge1xuICAgICAgdGhpcy5fb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9pbnRlcnNlY3Rvcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnaW5pdGlhbGl6ZWQnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmICghdGhpcy5faW50ZXJzZWN0b3IpIHtcbiAgICAgIHRoaXMuX2ludGVyc2VjdG9yID0gdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCcuc2JiLXN0aWNreS1iYXJfX2ludGVyc2VjdG9yJykhO1xuICAgICAgdGhpcy5fb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9pbnRlcnNlY3Rvcik7XG4gICAgfVxuICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcyk7XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLXN0aWNreS1iYXItc2xpZGUtdmVydGljYWxseS1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RldGVjdFN0aWNreVN0YXRlKGVudHJ5OiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5KTogdm9pZCB7XG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnaW5pdGlhbGl6ZWQnKTtcblxuICAgIGNvbnN0IGlzU3RpY2t5ID0gIWVudHJ5LmlzSW50ZXJzZWN0aW5nICYmIGVudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC50b3AgPiAwO1xuXG4gICAgLy8gVG8gb3B0aW1pemUgdGhlIHZpc3VhbCBwZXJjZXB0aW9uIG9mIHRoZSBzdGlja3kgYmFyLCB3ZSBoYXZlIGNlcnRhaW4gY2FzZXMgKGUuZy4gb24gcGFnZSBsb2FkKVxuICAgIC8vIHdoZXJlIHdlIHdhbnQgdGhlIHN0aWNreSBiYXIgdG8gc2xpZGUgaW4gZnJvbSB0aGUgYm90dG9tLlxuICAgIC8vIFRvIGRlY2lkZSB3aGV0aGVyIHRvIHNsaWRlIGluIGZyb20gdGhlIGJvdHRvbSB1cCxcbiAgICAvLyB3ZSBjaGVjayBob3cgZmFyIGF3YXkgdGhlIHN0aWNreSBiYXIgaXMgZnJvbSB0aGUgaW50ZXJzZWN0b3IgZWxlbWVudC4gV2hlbiBzY3JvbGxpbmcgZmFzdCwgdGhlXG4gICAgLy8gZGlmZmVyZW5jZSBjYW4gdmFyeSBzbGlnaHRseS4gVG8gYWNjb3VudCBmb3IgdGhpcyB3ZSBhZGQgYSBoZWlnaHQgdG9sZXJhbmNlLlxuICAgIC8vIFRoaXMgdmFsdWUgd2FzIGZvdW5kIGJ5IHRyaWFsIGFuZCBlcnJvci5cbiAgICBjb25zdCBpbnRlcnNlY3RvclJlY3QgPSB0aGlzLl9pbnRlcnNlY3Rvcj8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3Qgc3RpY2t5QmFyUmVjdCA9IHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcihcbiAgICAgICcuc2JiLXN0aWNreS1iYXJfX3dyYXBwZXInLFxuICAgICkhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IEhFSUdIVF9UT0xFUkFOQ0UgPSAzMDtcblxuICAgIHRoaXMudG9nZ2xlU3RhdGUoXG4gICAgICAnc2xpZGUtdmVydGljYWxseScsXG4gICAgICBpc1N0aWNreSAmJlxuICAgICAgICB0aGlzLl9pbnRlcnNlY3RvciAmJlxuICAgICAgICBNYXRoLmFicyhpbnRlcnNlY3RvclJlY3QhLmJvdHRvbSAtIHN0aWNreUJhclJlY3QuYm90dG9tKSA+IEhFSUdIVF9UT0xFUkFOQ0UsXG4gICAgKTtcblxuICAgIC8vIFRvZ2dsaW5nIHN0aWNraW5nIGhhcyB0byBiZSBhZnRlciBzbGlkZS12ZXJ0aWNhbGx5IChwcmV2ZW50cyBiYWNrZ3JvdW5kIGNvbG9yIHRyYW5zaXRpb24pXG4gICAgdGhpcy50b2dnbGVTdGF0ZSgnc3RpY2tpbmcnLCBpc1N0aWNreSk7XG5cbiAgICAvLyBTdGlja3kgYmFyIG5lZWRzIHRvIGJlIGhpZGRlbiB1bnRpbCBmaXJzdCBvYnNlcnZlciBjYWxsYmFja1xuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgfVxuXG4gIC8qKiBBbmltYXRlcyBmcm9tIG5vcm1hbCBjb250ZW50IGZsb3cgcG9zaXRpb24gdG8gYHBvc2l0aW9uOiBzdGlja3lgLiAqL1xuICBwdWJsaWMgc3RpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N0YXRlICE9PSAndW5zdGlja3knIHx8ICF0aGlzLl9kaXNwYXRjaEJlZm9yZVN0aWNrRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3N0YXRlID0gJ3N0aWNraW5nJztcbiAgICBpZiAoIXRoaXMuaW50ZXJuYWxzLnN0YXRlcy5oYXMoJ3N0aWNraW5nJykgfHwgdGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5fc3RpY2t5Q2FsbGJhY2soKTtcbiAgICB9XG4gIH1cblxuICAvKiogQW5pbWF0ZXMgYHBvc2l0aW9uOiBzdGlja3lgIHRvIG5vcm1hbCBjb250ZW50IGZsb3cgcG9zaXRpb24uICovXG4gIHB1YmxpYyB1bnN0aWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdGF0ZSAhPT0gJ3N0aWNreScgfHwgIXRoaXMuX2Rpc3BhdGNoQmVmb3JlVW5TdGlja0V2ZW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0ZSA9ICd1bnN0aWNraW5nJztcblxuICAgIGlmICghdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmhhcygnc3RpY2tpbmcnKSB8fCB0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl91bnN0aWNreUNhbGxiYWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc3RpY2t5Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUgPSAnc3RpY2t5JztcblxuICAgIC8qKiBFbWl0cyB3aGVuIHRoZSBhbmltYXRpb24gZnJvbSBub3JtYWwgY29udGVudCBmbG93IHRvIGBwb3NpdGlvbjogc3RpY2t5YCBlbmRzLiAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3N0aWNrJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdW5zdGlja3lDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAvKiogRW1pdHMgd2hlbiB0aGUgYW5pbWF0aW9uIGZyb20gYHBvc2l0aW9uOiBzdGlja3lgIHRvIG5vcm1hbCBjb250ZW50IGZsb3cgZW5kcy4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCd1bnN0aWNrJykpO1xuICAgIHRoaXMuX3N0YXRlID0gJ3Vuc3RpY2t5JztcbiAgfVxuXG4gIHByaXZhdGUgX29uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICh0aGlzLl9zdGF0ZSA9PT0gJ3N0aWNraW5nJyB8fCB0aGlzLl9zdGF0ZSA9PT0gJ3N0aWNreScpICYmXG4gICAgICBldmVudC5hbmltYXRpb25OYW1lID09PSAnc2xpZGUtaW4nXG4gICAgKSB7XG4gICAgICB0aGlzLl9zdGlja3lDYWxsYmFjaygpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fc3RhdGUgPT09ICd1bnN0aWNraW5nJyAmJiBldmVudC5hbmltYXRpb25OYW1lID09PSAnc2xpZGUtb3V0Jykge1xuICAgICAgdGhpcy5fdW5zdGlja3lDYWxsYmFjaygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2Rpc3BhdGNoQmVmb3JlU3RpY2tFdmVudCgpOiBib29sZWFuIHtcbiAgICAvKiogRW1pdHMgd2hlbiB0aGUgYW5pbWF0aW9uIGZyb20gbm9ybWFsIGNvbnRlbnQgZmxvdyB0byBgcG9zaXRpb246IHN0aWNreWAgc3RhcnRzLiBDYW4gYmUgY2FuY2VsZWQuICovXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2JlZm9yZXN0aWNrJywgeyBjYW5jZWxhYmxlOiB0cnVlIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Rpc3BhdGNoQmVmb3JlVW5TdGlja0V2ZW50KCk6IGJvb2xlYW4ge1xuICAgIC8qKiBFbWl0cyB3aGVuIHRoZSBhbmltYXRpb24gZnJvbSBgcG9zaXRpb246IHN0aWNreWAgdG8gbm9ybWFsIGNvbnRlbnQgZmxvdyBzdGFydHMuIENhbiBiZSBjYW5jZWxlZC4gKi9cbiAgICByZXR1cm4gdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnYmVmb3JldW5zdGljaycsIHsgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3RpY2t5LWJhcl9fd3JhcHBlclwiIEBhbmltYXRpb25lbmQ9JHt0aGlzLl9vbkFuaW1hdGlvbkVuZH0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3RpY2t5LWJhclwiPlxuICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3RpY2t5LWJhcl9faW50ZXJzZWN0b3JcIj48L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc3RpY2t5LWJhcic6IFNiYlN0aWNreUJhckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNpQ2EsNkJBQW1CO21CQUFTLHdCQUF3QixXQUFXOzs7Ozs7O2NBQS9ELDRCQUE0QixZQUFtQzs7O3dCQVl6RSxTQUFTLEVBQUUsU0FBUyxNQUFNLENBQUMsQ0FBQTt1QkFXM0IsU0FBUyxFQUFFLFNBQVMsTUFBTSxDQUFDLENBQUE7QUFYQyxnQkFBQSxNQUFBLE1BQUEsbUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxXQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQUssTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFMLFFBQUs7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSxxQkFBQSx5QkFBQTtBQVdyQixnQkFBQSxNQUFBLE1BQUEsa0JBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxVQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQUksTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFKLE9BQUk7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSxvQkFBQSx3QkFBQTs7Ozs7Ozs7O0FBdEJqQixRQUFBLGNBQXNCOzs7QUFDL0IsUUFBQSxTQUF5QixDQUFDLGlCQUFpQixVQUFVLG1CQUFNLENBQUM7OztBQUU1RCxRQUFBLFNB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
@@ -267,4 +267,4 @@ var SbbTabGroupElement = (() => {
267
267
  //#endregion
268
268
  export { SbbTabGroupElement as t };
269
269
 
270
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdyb3VwLmNvbXBvbmVudC1EWDdCWTdYeS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdGFicy90YWItZ3JvdXAvdGFiLWdyb3VwLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RhYnMvdGFiLWdyb3VwL3RhYi1ncm91cC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi10YWItZ3JvdXAtYW5pbWF0aW9uLWR1cmF0aW9uOiAwcztcblxuICBnYXA6IHZhcigtLXNiYi10YWItZ3JvdXAtY29udGVudC1nYXApO1xufVxuXG46aG9zdCg6c3RhdGUoaW5pdGlhbGl6ZWQpKSB7XG4gIC0tc2JiLXRhYi1ncm91cC1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KVxuICApO1xufVxuXG4uc2JiLXRhYi1ncm91cC1jb250ZW50IHtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItdGFiLWNvbnRlbnQtaGVpZ2h0KTtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IHZhcigtLXNiYi10YWItZ3JvdXAtYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1zYmItYW5pbWF0aW9uLWVhc2luZyk7XG59XG5cbjo6c2xvdHRlZChzYmItdGFiKSB7XG4gIDpob3N0KFtmaXhlZC1oZWlnaHRdKSAmIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cbn1cbiIsImltcG9ydCB7IFJlc2l6ZUNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL3Jlc2l6ZS1jb250cm9sbGVyLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcblxuaW1wb3J0IHtcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBmb3JjZVR5cGUsXG4gIGdldE5leHRFbGVtZW50SW5kZXgsXG4gIGlzQXJyb3dLZXlQcmVzc2VkLFxuICBpc0xlYW4sXG4gIFNiYkVsZW1lbnQsXG4gIMm1c3RhdGVDb250cm9sbGVyLFxufSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IHRhYkdyb3VwQ29tbW9uU3R5bGVzIH0gZnJvbSAnLi4vY29tbW9uL3N0eWxlcy50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRhYkVsZW1lbnQgfSBmcm9tICcuLi90YWIvdGFiLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRhYkxhYmVsRWxlbWVudCB9IGZyb20gJy4uL3RhYi1sYWJlbC90YWItbGFiZWwuY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdGFiLWdyb3VwLnNjc3M/aW5saW5lJztcblxuZXhwb3J0IGludGVyZmFjZSBTYmJUYWJDaGFuZ2VkRXZlbnREZXRhaWxzIHtcbiAgYWN0aXZlSW5kZXg6IG51bWJlcjtcbiAgYWN0aXZlVGFiTGFiZWw6IFNiYlRhYkxhYmVsRWxlbWVudDtcbiAgYWN0aXZlVGFiOiBTYmJUYWJFbGVtZW50O1xuICBwcmV2aW91c0luZGV4OiBudW1iZXI7XG4gIHByZXZpb3VzVGFiTGFiZWw6IFNiYlRhYkxhYmVsRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgcHJldmlvdXNUYWI6IFNiYlRhYkVsZW1lbnQgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogSXQgZGlzcGxheXMgb25lIG9yIG1vcmUgdGFicywgZWFjaCBvbmUgd2l0aCBhIGxhYmVsIGFuZCBzb21lIGNvbnRlbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgYHNiYi10YWItZ3JvdXBgIHZpYSBgc2JiLXRhYi1sYWJlbGAgYW5kIGBzYmItdGFiYCBpbnN0YW5jZXMuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PFNiYlRhYkNoYW5nZWRFdmVudERldGFpbHM+fSB0YWJjaGFuZ2UgLSBUaGUgdGFiY2hhbmdlIGV2ZW50IGlzIGRpc3BhdGNoZWQgd2hlbiBhIHRhYiBpcyBzZWxlY3RlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlRhYkdyb3VwRWxlbWVudCBleHRlbmRzIFNiYkVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXRhYi1ncm91cCc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtcbiAgICBib3hTaXppbmdTdHlsZXMsXG4gICAgdGFiR3JvdXBDb21tb25TdHlsZXMsXG4gICAgdW5zYWZlQ1NTKHN0eWxlKSxcbiAgXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgdGFiY2hhbmdlOiAndGFiY2hhbmdlJyxcbiAgfSBhcyBjb25zdDtcblxuICBwcml2YXRlIF90YWJHcm91cEVsZW1lbnQhOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfdGFiR3JvdXBSZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVDb250cm9sbGVyKHRoaXMsIHtcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgc2tpcEluaXRpYWw6IHRydWUsXG4gICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuX29uVGFiR3JvdXBFbGVtZW50UmVzaXplKCksXG4gIH0pO1xuICBwcml2YXRlIF9jb250ZW50U2xvdENoYW5nZURlYm91bmNlSWQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcblxuICAvKipcbiAgICogU2l6ZSB2YXJpYW50LCBlaXRoZXIgcywgbCBvciB4bC5cbiAgICogQGRlZmF1bHQgJ2wnIC8gJ3MnIChsZWFuKVxuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHNpemU6ICdzJyB8ICdsJyB8ICd4bCcgPSBpc0xlYW4oKSA/ICdzJyA6ICdsJztcblxuICAvKipcbiAgICogU2V0cyB0aGUgaW5pdGlhbCB0YWIuIElmIGl0IG1hdGNoZXMgYSBkaXNhYmxlZCB0YWIgb3IgZXhjZWVkcyB0aGUgbGVuZ3RoIG9mXG4gICAqIHRoZSB0YWIgZ3JvdXAsIHRoZSBmaXJzdCBlbmFibGVkIHRhYiB3aWxsIGJlIHNlbGVjdGVkLlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2luaXRpYWwtc2VsZWN0ZWQtaW5kZXgnLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIGluaXRpYWxTZWxlY3RlZEluZGV4OiBudW1iZXIgPSAwO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIGBzYmItdGFiYCBlbGVtZW50cyB0YWtlIDEwMCUgaGVpZ2h0IG9mIHRoZSBgc2JiLXRhYi1ncm91cGAuXG4gICAqIEl0IGVuYWJsZXMgY29udHJvbGxpbmcgdGhlIGhlaWdodCBvbiB0aGUgYHNiYi10YWItZ3JvdXBgIGVsZW1lbnQuXG4gICAqIFRoZSBjb250ZW50IGJlY29tZXMgc2Nyb2xsYWJsZSBvbiBvdmVyZmxvdy5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdmaXhlZC1oZWlnaHQnLCB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBmaXhlZEhlaWdodDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBHZXRzIHRoZSBzbG90dGVkIGBzYmItdGFiLWxhYmVsYHMuICovXG4gIHB1YmxpYyBnZXQgbGFiZWxzKCk6IFNiYlRhYkxhYmVsRWxlbWVudFtdIHtcbiAgICAvKipcbiAgICAgKiBUaGUgcXVlcnlTZWxlY3RvciBBUEkgaXMgbm90IHVzZWQgYmVjYXVzZSB3aGVuIG5lc3RlZCB0YWJzIGFyZSB1c2VkLFxuICAgICAqIHRoZSByZXR1cm5lZCBhcnJheSBjb250YWlucyB0aGUgaW5uZXIgdGFicyB0b28sIGFuZCB0aGlzIGJyZWFrcyB0aGUga2V5Ym9hcmQgbmF2aWdhdGlvbi5cbiAgICAgKi9cbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmNoaWxkcmVuID8/IFtdKS5maWx0ZXIoKGNoaWxkKSA9PlxuICAgICAgL15zYmItdGFiLWxhYmVsJC91LnRlc3QoY2hpbGQubG9jYWxOYW1lKSxcbiAgICApIGFzIFNiYlRhYkxhYmVsRWxlbWVudFtdO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIHNsb3R0ZWQgYHNiYi10YWJgcy4gKi9cbiAgcHVibGljIGdldCB0YWJzKCk6IFNiYlRhYkVsZW1lbnRbXSB7XG4gICAgLyoqXG4gICAgICogVGhlIHF1ZXJ5U2VsZWN0b3IgQVBJIGlzIG5vdCB1c2VkIGJlY2F1c2Ugd2hlbiBuZXN0ZWQgdGFicyBhcmUgdXNlZCxcbiAgICAgKiB0aGUgcmV0dXJuZWQgYXJyYXkgY29udGFpbnMgdGhlIGlubmVyIHRhYnMgdG9vLCBhbmQgdGhpcyBicmVha3MgdGhlIGtleWJvYXJkIG5hdmlnYXRpb24uXG4gICAgICovXG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5jaGlsZHJlbiA/PyBbXSkuZmlsdGVyKChjaGlsZCkgPT5cbiAgICAgIC9ec2JiLXRhYiQvdS50ZXN0KGNoaWxkLmxvY2FsTmFtZSksXG4gICAgKSBhcyBTYmJUYWJFbGVtZW50W107XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVLZXlEb3duKGUpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMubGFiZWxzLmZvckVhY2goKHRhYkxhYmVsKSA9PiB0YWJMYWJlbFsnbGlua1RvVGFiJ10oKSk7XG4gICAgdGhpcy5faW5pdFNlbGVjdGlvbigpO1xuXG4gICAgLy8gVG8gYXZvaWQgYW5pbWF0aW9ucyBvbiBpbml0aWFsaXphdGlvbiwgd2UgaGF2ZSB0byBtYXJrIHRoZSBjb21wb25lbnQgYXMgaW5pdGlhbGl6ZWQgYW5kIHdhaXQgYSB0aWNrLlxuICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4gdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnaW5pdGlhbGl6ZWQnKSk7XG4gICAgdGhpcy5fdGFiR3JvdXBSZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuX3RhYkdyb3VwRWxlbWVudCk7XG4gIH1cblxuICAvKipcbiAgICogRGlzYWJsZXMgYSB0YWIgYnkgaW5kZXguXG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIHRhYiB5b3Ugd2FudCB0byBkaXNhYmxlLlxuICAgKi9cbiAgcHVibGljIGRpc2FibGVUYWIoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmxhYmVsc1tpbmRleF0pIHtcbiAgICAgIHRoaXMubGFiZWxzW2luZGV4XS5kaXNhYmxlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgYSB0YWIgYnkgaW5kZXguXG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIHRhYiB5b3Ugd2FudCB0byBlbmFibGUuXG4gICAqL1xuICBwdWJsaWMgZW5hYmxlVGFiKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sYWJlbHNbaW5kZXhdKSB7XG4gICAgICB0aGlzLmxhYmVsc1tpbmRleF0uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGVzIGEgdGFiIGJ5IGluZGV4LlxuICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IG9mIHRoZSB0YWIgeW91IHdhbnQgdG8gYWN0aXZhdGUuXG4gICAqL1xuICBwdWJsaWMgYWN0aXZhdGVUYWIoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMubGFiZWxzW2luZGV4XT8uYWN0aXZhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2VuYWJsZWRUYWJzKCk6IFNiYlRhYkxhYmVsRWxlbWVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbHMuZmlsdGVyKCh0KSA9PiB7XG4gICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKHQpO1xuICAgICAgcmV0dXJuICF0LmRpc2FibGVkO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25Db250ZW50U2xvdENoYW5nZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fY29udGVudFNsb3RDaGFuZ2VEZWJvdW5jZUlkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fY29udGVudFNsb3RDaGFuZ2VEZWJvdW5jZUlkKTtcbiAgICB9XG4gICAgdGhpcy5fY29udGVudFNsb3RDaGFuZ2VEZWJvdW5jZUlkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmxhYmVscy5mb3JFYWNoKCh0YWJMYWJlbCkgPT4gdGFiTGFiZWxbJ2xpbmtUb1RhYiddKCkpO1xuICAgICAgdGhpcy5sYWJlbHMuZmluZCgodGFiTGFiZWwpID0+IHRhYkxhYmVsLmFjdGl2ZSk/LmFjdGl2YXRlKCk7XG4gICAgfSwgMTUwKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uTGFiZWxTbG90Q2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMubGFiZWxzLmZvckVhY2goKHRhYkxhYmVsKSA9PiB0YWJMYWJlbFsnbGlua1RvVGFiJ10oKSk7XG4gICAgdGhpcy5fZW5zdXJlQWN0aXZlVGFiKCk7XG4gIH1cblxuICBwcml2YXRlIF9lbnN1cmVBY3RpdmVUYWIoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmhhcygnaW5pdGlhbGl6ZWQnKSAmJlxuICAgICAgIXRoaXMubGFiZWxzLnNvbWUoKHRhYkxhYmVsKSA9PiB0YWJMYWJlbC5hY3RpdmUpXG4gICAgKSB7XG4gICAgICB0aGlzLl9pbml0U2VsZWN0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdFNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZFRhYkxhYmVsID0gdGhpcy5sYWJlbHNbdGhpcy5pbml0aWFsU2VsZWN0ZWRJbmRleF07XG4gICAgaWYgKHNlbGVjdGVkVGFiTGFiZWwpIHtcbiAgICAgIGN1c3RvbUVsZW1lbnRzLnVwZ3JhZGUoc2VsZWN0ZWRUYWJMYWJlbCk7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuaW5pdGlhbFNlbGVjdGVkSW5kZXggPj0gMCAmJlxuICAgICAgICB0aGlzLmluaXRpYWxTZWxlY3RlZEluZGV4IDwgdGhpcy5sYWJlbHMubGVuZ3RoICYmXG4gICAgICAgICFzZWxlY3RlZFRhYkxhYmVsLmRpc2FibGVkXG4gICAgICApIHtcbiAgICAgICAgc2VsZWN0ZWRUYWJMYWJlbC5hY3RpdmF0ZSgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX2VuYWJsZWRUYWJzKClbMF0/LmFjdGl2YXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9vblRhYkdyb3VwRWxlbWVudFJlc2l6ZSgpOiB2b2lkIHtcbiAgICBjb25zdCB0YWJMYWJlbHMgPSB0aGlzLmxhYmVscztcbiAgICB0YWJMYWJlbHMuZm9yRWFjaCgodGFiTGFiZWwpID0+IHtcbiAgICAgIMm1c3RhdGVDb250cm9sbGVyKHRhYkxhYmVsKT8udG9nZ2xlKFxuICAgICAgICAnaGFzLWRpdmlkZXInLFxuICAgICAgICB0YWJMYWJlbCA9PT0gdGFiTGFiZWxzWzBdIHx8IHRhYkxhYmVsLm9mZnNldExlZnQgPT09IHRhYkxhYmVsc1swXS5vZmZzZXRMZWZ0LFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLXRhYi1ncm91cC13aWR0aCcsIGAke3RoaXMuX3RhYkdyb3VwRWxlbWVudC5jbGllbnRXaWR0aH1weGApO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlS2V5RG93bihldnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlbmFibGVkVGFiczogU2JiVGFiTGFiZWxFbGVtZW50W10gPSB0aGlzLl9lbmFibGVkVGFicygpO1xuXG4gICAgaWYgKFxuICAgICAgIWVuYWJsZWRUYWJzIHx8XG4gICAgICAvLyBkb24ndCB0cmFwIG5lc3RlZCBoYW5kbGluZ1xuICAgICAgKChldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAhPT0gdGhpcyAmJiAoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkucGFyZW50RWxlbWVudCAhPT0gdGhpcylcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaXNBcnJvd0tleVByZXNzZWQoZXZ0KSkge1xuICAgICAgY29uc3QgY3VycmVudDogbnVtYmVyID0gZW5hYmxlZFRhYnMuZmluZEluZGV4KCh0KSA9PiB0LmFjdGl2ZSk7XG4gICAgICBjb25zdCBuZXh0SW5kZXg6IG51bWJlciA9IGdldE5leHRFbGVtZW50SW5kZXgoZXZ0LCBjdXJyZW50LCBlbmFibGVkVGFicy5sZW5ndGgpO1xuICAgICAgZW5hYmxlZFRhYnNbbmV4dEluZGV4XT8uYWN0aXZhdGUoKTtcbiAgICAgIGVuYWJsZWRUYWJzW25leHRJbmRleF0/LmZvY3VzKCk7XG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0VGFiQ29udGVudEhlaWdodChjb250ZW50SGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi10YWItY29udGVudC1oZWlnaHQnLCBgJHtjb250ZW50SGVpZ2h0fXB4YCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzYmItdGFiLWdyb3VwXCJcbiAgICAgICAgcm9sZT1cInRhYmxpc3RcIlxuICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KSA9PiAodGhpcy5fdGFiR3JvdXBFbGVtZW50ID0gZWwgYXMgSFRNTEVsZW1lbnQpKX1cbiAgICAgID5cbiAgICAgICAgPHNsb3QgbmFtZT1cInRhYi1iYXJcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX29uTGFiZWxTbG90Q2hhbmdlfT48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICAgICR7IXRoaXMuZml4ZWRIZWlnaHRcbiAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi10YWItZ3JvdXAtY29udGVudFwiPlxuICAgICAgICAgICAgICA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX29uQ29udGVudFNsb3RDaGFuZ2V9Pjwvc2xvdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIGBcbiAgICAgICAgOiBodG1sYDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5fb25Db250ZW50U2xvdENoYW5nZX0+PC9zbG90PmB9XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRhYi1ncm91cCc6IFNiYlRhYkdyb3Vw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
270
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdyb3VwLmNvbXBvbmVudC1EWDdCWTdYeS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdGFicy90YWItZ3JvdXAvdGFiLWdyb3VwLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RhYnMvdGFiLWdyb3VwL3RhYi1ncm91cC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi10YWItZ3JvdXAtYW5pbWF0aW9uLWR1cmF0aW9uOiAwcztcblxuICBnYXA6IHZhcigtLXNiYi10YWItZ3JvdXAtY29udGVudC1nYXApO1xufVxuXG46aG9zdCg6c3RhdGUoaW5pdGlhbGl6ZWQpKSB7XG4gIC0tc2JiLXRhYi1ncm91cC1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KVxuICApO1xufVxuXG4uc2JiLXRhYi1ncm91cC1jb250ZW50IHtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItdGFiLWNvbnRlbnQtaGVpZ2h0KTtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IHZhcigtLXNiYi10YWItZ3JvdXAtYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1zYmItYW5pbWF0aW9uLWVhc2luZyk7XG59XG5cbjo6c2xvdHRlZChzYmItdGFiKSB7XG4gIDpob3N0KFtmaXhlZC1oZWlnaHRdKSAmIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cbn1cbiIsImltcG9ydCB7IFJlc2l6ZUNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL3Jlc2l6ZS1jb250cm9sbGVyLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcblxuaW1wb3J0IHtcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBmb3JjZVR5cGUsXG4gIGdldE5leHRFbGVtZW50SW5kZXgsXG4gIGlzQXJyb3dLZXlQcmVzc2VkLFxuICBpc0xlYW4sXG4gIFNiYkVsZW1lbnQsXG4gIMm1c3RhdGVDb250cm9sbGVyLFxufSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IHRhYkdyb3VwQ29tbW9uU3R5bGVzIH0gZnJvbSAnLi4vY29tbW9uL3N0eWxlcy50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRhYkVsZW1lbnQgfSBmcm9tICcuLi90YWIvdGFiLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRhYkxhYmVsRWxlbWVudCB9IGZyb20gJy4uL3RhYi1sYWJlbC90YWItbGFiZWwuY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdGFiLWdyb3VwLnNjc3M/aW5saW5lJztcblxuZXhwb3J0IGludGVyZmFjZSBTYmJUYWJDaGFuZ2VkRXZlbnREZXRhaWxzIHtcbiAgYWN0aXZlSW5kZXg6IG51bWJlcjtcbiAgYWN0aXZlVGFiTGFiZWw6IFNiYlRhYkxhYmVsRWxlbWVudDtcbiAgYWN0aXZlVGFiOiBTYmJUYWJFbGVtZW50O1xuICBwcmV2aW91c0luZGV4OiBudW1iZXI7XG4gIHByZXZpb3VzVGFiTGFiZWw6IFNiYlRhYkxhYmVsRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgcHJldmlvdXNUYWI6IFNiYlRhYkVsZW1lbnQgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogSXQgZGlzcGxheXMgb25lIG9yIG1vcmUgdGFicywgZWFjaCBvbmUgd2l0aCBhIGxhYmVsIGFuZCBzb21lIGNvbnRlbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgYHNiYi10YWItZ3JvdXBgIHZpYSBgc2JiLXRhYi1sYWJlbGAgYW5kIGBzYmItdGFiYCBpbnN0YW5jZXMuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PFNiYlRhYkNoYW5nZWRFdmVudERldGFpbHM+fSB0YWJjaGFuZ2UgLSBUaGUgdGFiY2hhbmdlIGV2ZW50IGlzIGRpc3BhdGNoZWQgd2hlbiBhIHRhYiBpcyBzZWxlY3RlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlRhYkdyb3VwRWxlbWVudCBleHRlbmRzIFNiYkVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXRhYi1ncm91cCc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtcbiAgICBib3hTaXppbmdTdHlsZXMsXG4gICAgdGFiR3JvdXBDb21tb25TdHlsZXMsXG4gICAgdW5zYWZlQ1NTKHN0eWxlKSxcbiAgXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgdGFiY2hhbmdlOiAndGFiY2hhbmdlJyxcbiAgfSBhcyBjb25zdDtcblxuICBwcml2YXRlIF90YWJHcm91cEVsZW1lbnQhOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfdGFiR3JvdXBSZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVDb250cm9sbGVyKHRoaXMsIHtcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgc2tpcEluaXRpYWw6IHRydWUsXG4gICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuX29uVGFiR3JvdXBFbGVtZW50UmVzaXplKCksXG4gIH0pO1xuICBwcml2YXRlIF9jb250ZW50U2xvdENoYW5nZURlYm91bmNlSWQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcblxuICAvKipcbiAgICogU2l6ZSB2YXJpYW50LCBlaXRoZXIgcywgbCBvciB4bC5cbiAgICogQGRlZmF1bHQgJ2wnIC8gJ3MnIChsZWFuKVxuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHNpemU6ICdzJyB8ICdsJyB8ICd4bCcgPSBpc0xlYW4oKSA/ICdzJyA6ICdsJztcblxuICAvKipcbiAgICogU2V0cyB0aGUgaW5pdGlhbCB0YWIuIElmIGl0IG1hdGNoZXMgYSBkaXNhYmxlZCB0YWIgb3IgZXhjZWVkcyB0aGUgbGVuZ3RoIG9mXG4gICAqIHRoZSB0YWIgZ3JvdXAsIHRoZSBmaXJzdCBlbmFibGVkIHRhYiB3aWxsIGJlIHNlbGVjdGVkLlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2luaXRpYWwtc2VsZWN0ZWQtaW5kZXgnLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIGluaXRpYWxTZWxlY3RlZEluZGV4OiBudW1iZXIgPSAwO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIGBzYmItdGFiYCBlbGVtZW50cyB0YWtlIDEwMCUgaGVpZ2h0IG9mIHRoZSBgc2JiLXRhYi1ncm91cGAuXG4gICAqIEl0IGVuYWJsZXMgY29udHJvbGxpbmcgdGhlIGhlaWdodCBvbiB0aGUgYHNiYi10YWItZ3JvdXBgIGVsZW1lbnQuXG4gICAqIFRoZSBjb250ZW50IGJlY29tZXMgc2Nyb2xsYWJsZSBvbiBvdmVyZmxvdy5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdmaXhlZC1oZWlnaHQnLCB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBmaXhlZEhlaWdodDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBHZXRzIHRoZSBzbG90dGVkIGBzYmItdGFiLWxhYmVsYHMuICovXG4gIHB1YmxpYyBnZXQgbGFiZWxzKCk6IFNiYlRhYkxhYmVsRWxlbWVudFtdIHtcbiAgICAvKipcbiAgICAgKiBUaGUgcXVlcnlTZWxlY3RvciBBUEkgaXMgbm90IHVzZWQgYmVjYXVzZSB3aGVuIG5lc3RlZCB0YWJzIGFyZSB1c2VkLFxuICAgICAqIHRoZSByZXR1cm5lZCBhcnJheSBjb250YWlucyB0aGUgaW5uZXIgdGFicyB0b28sIGFuZCB0aGlzIGJyZWFrcyB0aGUga2V5Ym9hcmQgbmF2aWdhdGlvbi5cbiAgICAgKi9cbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmNoaWxkcmVuID8/IFtdKS5maWx0ZXIoKGNoaWxkKSA9PlxuICAgICAgL15zYmItdGFiLWxhYmVsJC91LnRlc3QoY2hpbGQubG9jYWxOYW1lKSxcbiAgICApIGFzIFNiYlRhYkxhYmVsRWxlbWVudFtdO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIHNsb3R0ZWQgYHNiYi10YWJgcy4gKi9cbiAgcHVibGljIGdldCB0YWJzKCk6IFNiYlRhYkVsZW1lbnRbXSB7XG4gICAgLyoqXG4gICAgICogVGhlIHF1ZXJ5U2VsZWN0b3IgQVBJIGlzIG5vdCB1c2VkIGJlY2F1c2Ugd2hlbiBuZXN0ZWQgdGFicyBhcmUgdXNlZCxcbiAgICAgKiB0aGUgcmV0dXJuZWQgYXJyYXkgY29udGFpbnMgdGhlIGlubmVyIHRhYnMgdG9vLCBhbmQgdGhpcyBicmVha3MgdGhlIGtleWJvYXJkIG5hdmlnYXRpb24uXG4gICAgICovXG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5jaGlsZHJlbiA/PyBbXSkuZmlsdGVyKChjaGlsZCkgPT5cbiAgICAgIC9ec2JiLXRhYiQvdS50ZXN0KGNoaWxkLmxvY2FsTmFtZSksXG4gICAgKSBhcyBTYmJUYWJFbGVtZW50W107XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVLZXlEb3duKGUpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMubGFiZWxzLmZvckVhY2goKHRhYkxhYmVsKSA9PiB0YWJMYWJlbFsnbGlua1RvVGFiJ10oKSk7XG4gICAgdGhpcy5faW5pdFNlbGVjdGlvbigpO1xuXG4gICAgLy8gVG8gYXZvaWQgYW5pbWF0aW9ucyBvbiBpbml0aWFsaXphdGlvbiwgd2UgaGF2ZSB0byBtYXJrIHRoZSBjb21wb25lbnQgYXMgaW5pdGlhbGl6ZWQgYW5kIHdhaXQgYSB0aWNrLlxuICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4gdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnaW5pdGlhbGl6ZWQnKSk7XG4gICAgdGhpcy5fdGFiR3JvdXBSZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuX3RhYkdyb3VwRWxlbWVudCk7XG4gIH1cblxuICAvKipcbiAgICogRGlzYWJsZXMgYSB0YWIgYnkgaW5kZXguXG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIHRhYiB5b3Ugd2FudCB0byBkaXNhYmxlLlxuICAgKi9cbiAgcHVibGljIGRpc2FibGVUYWIoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmxhYmVsc1tpbmRleF0pIHtcbiAgICAgIHRoaXMubGFiZWxzW2luZGV4XS5kaXNhYmxlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgYSB0YWIgYnkgaW5kZXguXG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIHRhYiB5b3Ugd2FudCB0byBlbmFibGUuXG4gICAqL1xuICBwdWJsaWMgZW5hYmxlVGFiKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sYWJlbHNbaW5kZXhdKSB7XG4gICAgICB0aGlzLmxhYmVsc1tpbmRleF0uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGVzIGEgdGFiIGJ5IGluZGV4LlxuICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IG9mIHRoZSB0YWIgeW91IHdhbnQgdG8gYWN0aXZhdGUuXG4gICAqL1xuICBwdWJsaWMgYWN0aXZhdGVUYWIoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMubGFiZWxzW2luZGV4XT8uYWN0aXZhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2VuYWJsZWRUYWJzKCk6IFNiYlRhYkxhYmVsRWxlbWVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbHMuZmlsdGVyKCh0KSA9PiB7XG4gICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKHQpO1xuICAgICAgcmV0dXJuICF0LmRpc2FibGVkO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25Db250ZW50U2xvdENoYW5nZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fY29udGVudFNsb3RDaGFuZ2VEZWJvdW5jZUlkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fY29udGVudFNsb3RDaGFuZ2VEZWJvdW5jZUlkKTtcbiAgICB9XG4gICAgdGhpcy5fY29udGVudFNsb3RDaGFuZ2VEZWJvdW5jZUlkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmxhYmVscy5mb3JFYWNoKCh0YWJMYWJlbCkgPT4gdGFiTGFiZWxbJ2xpbmtUb1RhYiddKCkpO1xuICAgICAgdGhpcy5sYWJlbHMuZmluZCgodGFiTGFiZWwpID0+IHRhYkxhYmVsLmFjdGl2ZSk/LmFjdGl2YXRlKCk7XG4gICAgfSwgMTUwKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uTGFiZWxTbG90Q2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMubGFiZWxzLmZvckVhY2goKHRhYkxhYmVsKSA9PiB0YWJMYWJlbFsnbGlua1RvVGFiJ10oKSk7XG4gICAgdGhpcy5fZW5zdXJlQWN0aXZlVGFiKCk7XG4gIH1cblxuICBwcml2YXRlIF9lbnN1cmVBY3RpdmVUYWIoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmhhcygnaW5pdGlhbGl6ZWQnKSAmJlxuICAgICAgIXRoaXMubGFiZWxzLnNvbWUoKHRhYkxhYmVsKSA9PiB0YWJMYWJlbC5hY3RpdmUpXG4gICAgKSB7XG4gICAgICB0aGlzLl9pbml0U2VsZWN0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdFNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZFRhYkxhYmVsID0gdGhpcy5sYWJlbHNbdGhpcy5pbml0aWFsU2VsZWN0ZWRJbmRleF07XG4gICAgaWYgKHNlbGVjdGVkVGFiTGFiZWwpIHtcbiAgICAgIGN1c3RvbUVsZW1lbnRzLnVwZ3JhZGUoc2VsZWN0ZWRUYWJMYWJlbCk7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuaW5pdGlhbFNlbGVjdGVkSW5kZXggPj0gMCAmJlxuICAgICAgICB0aGlzLmluaXRpYWxTZWxlY3RlZEluZGV4IDwgdGhpcy5sYWJlbHMubGVuZ3RoICYmXG4gICAgICAgICFzZWxlY3RlZFRhYkxhYmVsLmRpc2FibGVkXG4gICAgICApIHtcbiAgICAgICAgc2VsZWN0ZWRUYWJMYWJlbC5hY3RpdmF0ZSgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX2VuYWJsZWRUYWJzKClbMF0/LmFjdGl2YXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9vblRhYkdyb3VwRWxlbWVudFJlc2l6ZSgpOiB2b2lkIHtcbiAgICBjb25zdCB0YWJMYWJlbHMgPSB0aGlzLmxhYmVscztcbiAgICB0YWJMYWJlbHMuZm9yRWFjaCgodGFiTGFiZWwpID0+IHtcbiAgICAgIMm1c3RhdGVDb250cm9sbGVyKHRhYkxhYmVsKT8udG9nZ2xlKFxuICAgICAgICAnaGFzLWRpdmlkZXInLFxuICAgICAgICB0YWJMYWJlbCA9PT0gdGFiTGFiZWxzWzBdIHx8IHRhYkxhYmVsLm9mZnNldExlZnQgPT09IHRhYkxhYmVsc1swXS5vZmZzZXRMZWZ0LFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLXRhYi1ncm91cC13aWR0aCcsIGAke3RoaXMuX3RhYkdyb3VwRWxlbWVudC5jbGllbnRXaWR0aH1weGApO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlS2V5RG93bihldnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlbmFibGVkVGFiczogU2JiVGFiTGFiZWxFbGVtZW50W10gPSB0aGlzLl9lbmFibGVkVGFicygpO1xuXG4gICAgaWYgKFxuICAgICAgIWVuYWJsZWRUYWJzIHx8XG4gICAgICAvLyBkb24ndCB0cmFwIG5lc3RlZCBoYW5kbGluZ1xuICAgICAgKChldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAhPT0gdGhpcyAmJiAoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkucGFyZW50RWxlbWVudCAhPT0gdGhpcylcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaXNBcnJvd0tleVByZXNzZWQoZXZ0KSkge1xuICAgICAgY29uc3QgY3VycmVudDogbnVtYmVyID0gZW5hYmxlZFRhYnMuZmluZEluZGV4KCh0KSA9PiB0LmFjdGl2ZSk7XG4gICAgICBjb25zdCBuZXh0SW5kZXg6IG51bWJlciA9IGdldE5leHRFbGVtZW50SW5kZXgoZXZ0LCBjdXJyZW50LCBlbmFibGVkVGFicy5sZW5ndGgpO1xuICAgICAgZW5hYmxlZFRhYnNbbmV4dEluZGV4XT8uYWN0aXZhdGUoKTtcbiAgICAgIGVuYWJsZWRUYWJzW25leHRJbmRleF0/LmZvY3VzKCk7XG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0VGFiQ29udGVudEhlaWdodChjb250ZW50SGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi10YWItY29udGVudC1oZWlnaHQnLCBgJHtjb250ZW50SGVpZ2h0fXB4YCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzYmItdGFiLWdyb3VwXCJcbiAgICAgICAgcm9sZT1cInRhYmxpc3RcIlxuICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KSA9PiAodGhpcy5fdGFiR3JvdXBFbGVtZW50ID0gZWwgYXMgSFRNTEVsZW1lbnQpKX1cbiAgICAgID5cbiAgICAgICAgPHNsb3QgbmFtZT1cInRhYi1iYXJcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX29uTGFiZWxTbG90Q2hhbmdlfT48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICAgICR7IXRoaXMuZml4ZWRIZWlnaHRcbiAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi10YWItZ3JvdXAtY29udGVudFwiPlxuICAgICAgICAgICAgICA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX29uQ29udGVudFNsb3RDaGFuZ2V9Pjwvc2xvdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIGBcbiAgICAgICAgOiBodG1sYDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5fb25Db250ZW50U2xvdENoYW5nZX0+PC9zbG90PmB9XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRhYi1ncm91cCc6IFNiYlRhYkdyb3Vw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
@@ -1,2 +1,2 @@
1
- import { t as SbbTeaserElement } from "../teaser.component-DwM26tMt.js";
1
+ import { t as SbbTeaserElement } from "../teaser.component-C7uXEaPK.js";
2
2
  export { SbbTeaserElement };
@@ -75,4 +75,4 @@ var SbbTeaserProductCommonElementMixin = (superClass) => {
75
75
  //#endregion
76
76
  export { teaserProductCommonStyle as n, SbbTeaserProductCommonElementMixin as t };
77
77
 
78
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhc2VyLXByb2R1Y3QtY29tbW9uLURhc1ZfU0RhLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90ZWFzZXItcHJvZHVjdC9jb21tb24vdGVhc2VyLXByb2R1Y3QtY29tbW9uLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RlYXNlci1wcm9kdWN0L2NvbW1vbi90ZWFzZXItcHJvZHVjdC1jb21tb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi10ZWFzZXItcHJvZHVjdC1iYWNrZ3JvdW5kOiB2YXIoLS1zYmItdGVhc2VyLXByb2R1Y3QtYmFja2dyb3VuZC1jb2xvcik7XG5cbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIC0tc2JiLXRlYXNlci1wcm9kdWN0LWNvbnRlbnQtbWluLWhlaWdodDogY2FsYyhcbiAgICAgIHZhcigtLXNiYi10ZWFzZXItcHJvZHVjdC1taW4taGVpZ2h0KSAtIDIgKiB2YXIoLS1zYmItdGVhc2VyLXByb2R1Y3QtY29udGFpbmVyLXNwYWNpbmcpXG4gICAgKTtcbiAgICAtLXNiYi10ZWFzZXItcHJvZHVjdC1iYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICB2YXIoLS1zYmItdGVhc2VyLXByb2R1Y3QtYmFja2dyb3VuZC1ncmFkaWVudC1kaXJlY3Rpb24pLFxuICAgICAgdmFyKC0tc2JiLXRlYXNlci1wcm9kdWN0LWJhY2tncm91bmQtY29sb3IpIHZhcigtLXNiYi10ZWFzZXItcHJvZHVjdC1iYWNrZ3JvdW5kLWdyYWRpZW50LXN0YXJ0KSxcbiAgICAgIHRyYW5zcGFyZW50IHZhcigtLXNiYi10ZWFzZXItcHJvZHVjdC1iYWNrZ3JvdW5kLWdyYWRpZW50LWVuZClcbiAgICApO1xuICB9XG59XG5cbjpob3N0KFtuZWdhdGl2ZV0pIHtcbiAgLS1zYmItdGVhc2VyLXByb2R1Y3QtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMS1uZWdhdGl2ZSk7XG4gIC0tc2JiLXRlYXNlci1wcm9kdWN0LWNvbnRlbnQtY29sb3I6IHZhcigtLXNiYi1jb2xvci00LW5lZ2F0aXZlKTtcbiAgLS1zYmItdGVhc2VyLXByb2R1Y3QtZm9vdGVyLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItNC1uZWdhdGl2ZSk7XG4gIC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3I6IHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRhcmspO1xuICAtLXNiYi10aXRsZS10ZXh0LWNvbG9yLW5vcm1hbC1vdmVycmlkZTogdmFyKC0tc2JiLWNvbG9yLTMtbmVnYXRpdmUpO1xufVxuXG46aG9zdChbaW1hZ2UtYWxpZ25tZW50PSdiZWZvcmUnXSkge1xuICAtLXNiYi10ZWFzZXItcHJvZHVjdC1iYWNrZ3JvdW5kLWdyYWRpZW50LWRpcmVjdGlvbjogdG8gbGVmdDtcbn1cblxuOmhvc3QoOm5vdCg6c3RhdGUoc2xvdHRlZC1mb290bm90ZSkpKSB7XG4gIC0tc2JiLXRlYXNlci1wcm9kdWN0LWZvb3Rlci1wYWRkaW5nLWJsb2NrLXN0YXJ0OiAwO1xufVxuXG4uc2JiLXRlYXNlci1wcm9kdWN0X19pbWFnZS1jb250YWluZXIge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIC8vIFdlIGhhdmUgdG8gcmVtb3ZlIHRoZSBpbWFnZSBib3R0b20gYm9yZGVyLXJhZGl1cyB3aGVuIHN0YWNrZWRcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLXRlYXNlci1wcm9kdWN0LWJvcmRlci1yYWRpdXMpIHZhcigtLXNiYi10ZWFzZXItcHJvZHVjdC1ib3JkZXItcmFkaXVzKSAwIDA7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItdGVhc2VyLXByb2R1Y3QtYm9yZGVyLXJhZGl1cyk7XG4gIH1cbn1cblxuOjpzbG90dGVkKHAuc2JiLXRlYXNlci1wcm9kdWN0LS1zcGFjaW5nKSB7XG4gIG1hcmdpbjogMDtcbn1cblxuOjpzbG90dGVkKHNiYi10aXRsZS5zYmItdGVhc2VyLXByb2R1Y3QtLXNwYWNpbmcpIHtcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiAwO1xufVxuXG46OnNsb3R0ZWQoOmlzKHNiYi1hY3Rpb24tZ3JvdXAsIDpzdGF0ZShhY3Rpb24pKS5zYmItdGVhc2VyLXByb2R1Y3QtLXNwYWNpbmcpIHtcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXh4cyk7XG59XG5cbjo6c2xvdHRlZChbc2xvdD0naW1hZ2UnXSkge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uc2JiLXRlYXNlci1wcm9kdWN0X19yb290IHtcbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIC8vIEFwcGx5IGEgdmlzdWFsIGJvcmRlciBmb3IgZm9yY2VkIGNvbG9yIG1vZGVcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaW5zZXQ6IDA7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGJvcmRlcjogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0yeCkgc29saWQgQ2FudmFzVGV4dDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10ZWFzZXItcHJvZHVjdC1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG4gIH1cbn1cblxuLnNiYi1hY3Rpb24tYmFzZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLnNiYi10ZWFzZXItcHJvZHVjdF9fY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2JiLXRlYXNlci1wcm9kdWN0LWJhY2tncm91bmQpO1xuICBib3JkZXItcmFkaXVzOiAwIDAgdmFyKC0tc2JiLXRlYXNlci1wcm9kdWN0LWJvcmRlci1yYWRpdXMpIHZhcigtLXNiYi10ZWFzZXItcHJvZHVjdC1ib3JkZXItcmFkaXVzKTtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLXRlYXNlci1wcm9kdWN0LWNvbnRhaW5lci1wYWRkaW5nLWJsb2NrKTtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi10ZWFzZXItcHJvZHVjdC1jb250YWluZXItcGFkZGluZy1pbmxpbmUpO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQ6XG4gICAgICAnY29udGVudCAuJyAxZnJcbiAgICAgICdmb290bm90ZSAuJyBhdXRvIC8gMWZyIDFmcjtcbiAgICBjb2x1bW4tZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXh4bCk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLXRlYXNlci1wcm9kdWN0LWJvcmRlci1yYWRpdXMpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIDpob3N0KFtpbWFnZS1hbGlnbm1lbnQ9J2JlZm9yZSddKSAmIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgICAgICcuIGNvbnRlbnQnXG4gICAgICAgICcuIGZvb3Rub3RlJztcbiAgICB9XG4gIH1cbn1cblxuLnNiYi10ZWFzZXItcHJvZHVjdF9fY29udGVudCB7XG4gIGdyaWQtYXJlYTogY29udGVudDtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiB2YXIoLS1zYmItdGVhc2VyLXByb2R1Y3QtY29udGVudC1jb2xvcik7XG4gIG1pbi1oZWlnaHQ6IHZhcigtLXNiYi10ZWFzZXItcHJvZHVjdC1jb250ZW50LW1pbi1oZWlnaHQsIDApO1xuICBhbGlnbi1jb250ZW50OiB2YXIoLS1zYmItdGVhc2VyLXByb2R1Y3QtY29udGVudC1hbGlnbi1jb250ZW50LCBub3JtYWwpO1xufVxuXG4uc2JiLXRlYXNlci1wcm9kdWN0X19mb290bm90ZSB7XG4gIGdyaWQtYXJlYTogZm9vdG5vdGU7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi10ZWFzZXItcHJvZHVjdC1mb290ZXItcGFkZGluZy1ibG9jay1zdGFydClcbiAgICB2YXIoLS1zYmItdGVhc2VyLXByb2R1Y3QtZm9vdGVyLXBhZGRpbmctYmxvY2stZW5kKTtcbiAgY29sb3I6IHZhcigtLXNiYi10ZWFzZXItcHJvZHVjdC1mb290ZXItY29sb3IpO1xuICBmb250LXNpemU6IHZhcigtLXNiYi10ZWFzZXItcHJvZHVjdC1mb290ZXItZm9udC1zaXplKTtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXNiYi10eXBvLWxldHRlci1zcGFjaW5nLXRleHQpO1xuICBtaW4taGVpZ2h0OiB2YXIoLS1zYmItdGVhc2VyLXByb2R1Y3QtZm9vdGVyLW1pbi1oZWlnaHQsIDApO1xufVxuIiwiaW1wb3J0IHsgaHRtbCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCwgdW5zYWZlQ1NTIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyB0eXBlIEFic3RyYWN0Q29uc3RydWN0b3IsIFNiYkFjdGlvbkJhc2VFbGVtZW50LCBTYmJOZWdhdGl2ZU1peGluIH0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5cbmltcG9ydCB0ZWFzZXJQcm9kdWN0Q29tbW9uU3R5bGVTdHJpbmcgZnJvbSAnLi90ZWFzZXItcHJvZHVjdC1jb21tb24uc2Nzcz9pbmxpbmUnO1xuXG5leHBvcnQgY29uc3QgdGVhc2VyUHJvZHVjdENvbW1vblN0eWxlID0gdW5zYWZlQ1NTKHRlYXNlclByb2R1Y3RDb21tb25TdHlsZVN0cmluZyk7XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFNiYlRlYXNlclByb2R1Y3RDb21tb25FbGVtZW50TWl4aW5UeXBlIGV4dGVuZHMgU2JiTmVnYXRpdmVNaXhpbihcbiAgU2JiQWN0aW9uQmFzZUVsZW1lbnQsXG4pIHtcbiAgcHVibGljIGFjY2Vzc29yIGltYWdlQWxpZ25tZW50OiAnYWZ0ZXInIHwgJ2JlZm9yZSc7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJUZWFzZXJQcm9kdWN0Q29tbW9uRWxlbWVudE1peGluID0gPFxuICBUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJBY3Rpb25CYXNlRWxlbWVudD4sXG4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJUZWFzZXJQcm9kdWN0Q29tbW9uRWxlbWVudE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiVGVhc2VyUHJvZHVjdENvbW1vbkVsZW1lbnRcbiAgICBleHRlbmRzIFNiYk5lZ2F0aXZlTWl4aW4oc3VwZXJDbGFzcylcbiAgICBpbXBsZW1lbnRzIFNiYlRlYXNlclByb2R1Y3RDb21tb25FbGVtZW50TWl4aW5UeXBlXG4gIHtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBmdWxseSB2aXNpYmxlIHBhcnQgb2YgdGhlIGltYWdlIGlzIGFsaWduZWQgJ2JlZm9yZScgb3IgJ2FmdGVyJyB0aGUgY29udGVudC5cbiAgICAgKiBPbmx5IHJlbGV2YW50IHN0YXJ0aW5nIGZyb20gbGFyZ2UgYnJlYWtwb2ludC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdpbWFnZS1hbGlnbm1lbnQnLCByZWZsZWN0OiB0cnVlIH0pXG4gICAgcHVibGljIGFjY2Vzc29yIGltYWdlQWxpZ25tZW50OiAnYWZ0ZXInIHwgJ2JlZm9yZScgPSAnYWZ0ZXInO1xuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXRlYXNlci1wcm9kdWN0X19yb290XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi10ZWFzZXItcHJvZHVjdF9faW1hZ2UtY29udGFpbmVyXCI+PHNsb3QgbmFtZT1cImltYWdlXCI+PC9zbG90PjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItdGVhc2VyLXByb2R1Y3RfX2NvbnRhaW5lclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItdGVhc2VyLXByb2R1Y3RfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi10ZWFzZXItcHJvZHVjdF9fZm9vdG5vdGVcIj5cbiAgICAgICAgICAgICAgPHNsb3QgbmFtZT1cImZvb3Rub3RlXCI+PC9zbG90PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgYDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFNiYlRlYXNlclByb2R1Y3RDb21tb25FbGVtZW50IGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiVGVhc2VyUHJvZHVjdENvbW1vbkVsZW1lbnRNaXhpblR5cGU+ICZcbiAgICBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FDT0EsSUFBYSwyQkFBMkIsK3dIQUF5QztBQVNqRixJQUFhLHNDQUdYLGVBQ21FO0FBNEJuRSxlQTNCNEM7b0JBQ2xDLGlCQUFpQixXQUFXOzs7O2VBRHZCLHNDQUNMLFlBQTRCOzs7a0NBT25DLFNBQVM7S0FBRSxXQUFXO0tBQW1CLFNBQVM7S0FBTSxDQUFDLENBQUE7QUFDMUQsaUJBQUEsTUFBQSxNQUFBLDRCQUFBO0tBQUEsTUFBQTtLQUFBLE1BQUE7S0FBQSxRQUFBO0tBQUEsU0FBQTtLQUFBLFFBQUE7TUFBQSxNQUFBLFFBQUEsb0JBQUE7TUFBQSxNQUFBLFFBQUEsSUFBZ0I7TUFBYyxNQUFBLEtBQUEsVUFBQTtBQUFBLFdBQWQsaUJBQWM7O01BQUE7S0FBQSxVQUFBO0tBQUEsRUFBQSw4QkFBQSxrQ0FBQTs7Ozs7Ozs7R0FBOUIsbUNBQUEsa0JBQUEsTUFBQSw4QkFBcUQsUUFBTzs7Ozs7R0FBNUQsSUFBZ0IsaUJBQWM7QUFBQSxXQUFBLE1BQUE7O0dBQTlCLElBQWdCLGVBQWMsT0FBQTtBQUFBLFVBQUEsa0NBQUE7O0dBRVgsaUJBQWM7QUFDL0IsV0FBTyxJQUFJIn0=
78
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhc2VyLXByb2R1Y3QtY29tbW9uLURhc1ZfU0RhLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90ZWFzZXItcHJvZHVjdC9jb21tb24vdGVhc2VyLXByb2R1Y3QtY29tbW9uLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RlYXNlci1wcm9kdWN0L2NvbW1vbi90ZWFzZXItcHJvZHVjdC1jb21tb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi10ZWFzZXItcHJvZHVjdC1iYWNrZ3JvdW5kOiB2YXIoLS1zYmItdGVhc2VyLXByb2R1Y3QtYmFja2dyb3VuZC1jb2xvcik7XG5cbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIC0tc2JiLXRlYXNlci1wcm9kdWN0LWNvbnRlbnQtbWluLWhlaWdodDogY2FsYyhcbiAgICAgIHZhcigtLXNiYi10ZWFzZXItcHJvZHVjdC1taW4taGVpZ2h0KSAtIDIgKiB2YXIoLS1zYmItdGVhc2VyLXByb2R1Y3QtY29udGFpbmVyLXNwYWNpbmcpXG4gICAgKTtcbiAgICAtLXNiYi10ZWFzZXItcHJvZHVjdC1iYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICB2YXIoLS1zYmItdGVhc2VyLXByb2R1Y3QtYmFja2dyb3VuZC1ncmFkaWVudC1kaXJlY3Rpb24pLFxuICAgICAgdmFyKC0tc2JiLXRlYXNlci1wcm9kdWN0LWJhY2tncm91bmQtY29sb3IpIHZhcigtLXNiYi10ZWFzZXItcHJvZHVjdC1iYWNrZ3JvdW5kLWdyYWRpZW50LXN0YXJ0KSxcbiAgICAgIHRyYW5zcGFyZW50IHZhcigtLXNiYi10ZWFzZXItcHJvZHVjdC1iYWNrZ3JvdW5kLWdyYWRpZW50LWVuZClcbiAgICApO1xuICB9XG59XG5cbjpob3N0KFtuZWdhdGl2ZV0pIHtcbiAgLS1zYmItdGVhc2VyLXByb2R1Y3QtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMS1uZWdhdGl2ZSk7XG4gIC0tc2JiLXRlYXNlci1wcm9kdWN0LWNvbnRlbnQtY29sb3I6IHZhcigtLXNiYi1jb2xvci00LW5lZ2F0aXZlKTtcbiAgLS1zYmItdGVhc2VyLXByb2R1Y3QtZm9vdGVyLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItNC1uZWdhdGl2ZSk7XG4gIC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3I6IHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRhcmspO1xuICAtLXNiYi10aXRsZS10ZXh0LWNvbG9yLW5vcm1hbC1vdmVycmlkZTogdmFyKC0tc2JiLWNvbG9yLTMtbmVnYXRpdmUpO1xufVxuXG46aG9zdChbaW1hZ2UtYWxpZ25tZW50PSdiZWZvcmUnXSkge1xuICAtLXNiYi10ZWFzZXItcHJvZHVjdC1iYWNrZ3JvdW5kLWdyYWRpZW50LWRpcmVjdGlvbjogdG8gbGVmdDtcbn1cblxuOmhvc3QoOm5vdCg6c3RhdGUoc2xvdHRlZC1mb290bm90ZSkpKSB7XG4gIC0tc2JiLXRlYXNlci1wcm9kdWN0LWZvb3Rlci1wYWRkaW5nLWJsb2NrLXN0YXJ0OiAwO1xufVxuXG4uc2JiLXRlYXNlci1wcm9kdWN0X19pbWFnZS1jb250YWluZXIge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIC8vIFdlIGhhdmUgdG8gcmVtb3ZlIHRoZSBpbWFnZSBib3R0b20gYm9yZGVyLXJhZGl1cyB3aGVuIHN0YWNrZWRcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLXRlYXNlci1wcm9kdWN0LWJvcmRlci1yYWRpdXMpIHZhcigtLXNiYi10ZWFzZXItcHJvZHVjdC1ib3JkZXItcmFkaXVzKSAwIDA7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItdGVhc2VyLXByb2R1Y3QtYm9yZGVyLXJhZGl1cyk7XG4gIH1cbn1cblxuOjpzbG90dGVkKHAuc2JiLXRlYXNlci1wcm9kdWN0LS1zcGFjaW5nKSB7XG4gIG1hcmdpbjogMDtcbn1cblxuOjpzbG90dGVkKHNiYi10aXRsZS5zYmItdGVhc2VyLXByb2R1Y3QtLXNwYWNpbmcpIHtcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiAwO1xufVxuXG46OnNsb3R0ZWQoOmlzKHNiYi1hY3Rpb24tZ3JvdXAsIDpzdGF0ZShhY3Rpb24pKS5zYmItdGVhc2VyLXByb2R1Y3QtLXNwYWNpbmcpIHtcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXh4cyk7XG59XG5cbjo6c2xvdHRlZChbc2xvdD0naW1hZ2UnXSkge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uc2JiLXRlYXNlci1wcm9kdWN0X19yb290IHtcbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIC8vIEFwcGx5IGEgdmlzdWFsIGJvcmRlciBmb3IgZm9yY2VkIGNvbG9yIG1vZGVcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaW5zZXQ6IDA7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGJvcmRlcjogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0yeCkgc29saWQgQ2FudmFzVGV4dDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10ZWFzZXItcHJvZHVjdC1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG4gIH1cbn1cblxuLnNiYi1hY3Rpb24tYmFzZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLnNiYi10ZWFzZXItcHJvZHVjdF9fY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2JiLXRlYXNlci1wcm9kdWN0LWJhY2tncm91bmQpO1xuICBib3JkZXItcmFkaXVzOiAwIDAgdmFyKC0tc2JiLXRlYXNlci1wcm9kdWN0LWJvcmRlci1yYWRpdXMpIHZhcigtLXNiYi10ZWFzZXItcHJvZHVjdC1ib3JkZXItcmFkaXVzKTtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLXRlYXNlci1wcm9kdWN0LWNvbnRhaW5lci1wYWRkaW5nLWJsb2NrKTtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi10ZWFzZXItcHJvZHVjdC1jb250YWluZXItcGFkZGluZy1pbmxpbmUpO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQ6XG4gICAgICAnY29udGVudCAuJyAxZnJcbiAgICAgICdmb290bm90ZSAuJyBhdXRvIC8gMWZyIDFmcjtcbiAgICBjb2x1bW4tZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXh4bCk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLXRlYXNlci1wcm9kdWN0LWJvcmRlci1yYWRpdXMpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIDpob3N0KFtpbWFnZS1hbGlnbm1lbnQ9J2JlZm9yZSddKSAmIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgICAgICcuIGNvbnRlbnQnXG4gICAgICAgICcuIGZvb3Rub3RlJztcbiAgICB9XG4gIH1cbn1cblxuLnNiYi10ZWFzZXItcHJvZHVjdF9fY29udGVudCB7XG4gIGdyaWQtYXJlYTogY29udGVudDtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiB2YXIoLS1zYmItdGVhc2VyLXByb2R1Y3QtY29udGVudC1jb2xvcik7XG4gIG1pbi1oZWlnaHQ6IHZhcigtLXNiYi10ZWFzZXItcHJvZHVjdC1jb250ZW50LW1pbi1oZWlnaHQsIDApO1xuICBhbGlnbi1jb250ZW50OiB2YXIoLS1zYmItdGVhc2VyLXByb2R1Y3QtY29udGVudC1hbGlnbi1jb250ZW50LCBub3JtYWwpO1xufVxuXG4uc2JiLXRlYXNlci1wcm9kdWN0X19mb290bm90ZSB7XG4gIGdyaWQtYXJlYTogZm9vdG5vdGU7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi10ZWFzZXItcHJvZHVjdC1mb290ZXItcGFkZGluZy1ibG9jay1zdGFydClcbiAgICB2YXIoLS1zYmItdGVhc2VyLXByb2R1Y3QtZm9vdGVyLXBhZGRpbmctYmxvY2stZW5kKTtcbiAgY29sb3I6IHZhcigtLXNiYi10ZWFzZXItcHJvZHVjdC1mb290ZXItY29sb3IpO1xuICBmb250LXNpemU6IHZhcigtLXNiYi10ZWFzZXItcHJvZHVjdC1mb290ZXItZm9udC1zaXplKTtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXNiYi10eXBvLWxldHRlci1zcGFjaW5nLXRleHQpO1xuICBtaW4taGVpZ2h0OiB2YXIoLS1zYmItdGVhc2VyLXByb2R1Y3QtZm9vdGVyLW1pbi1oZWlnaHQsIDApO1xufVxuIiwiaW1wb3J0IHsgaHRtbCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCwgdW5zYWZlQ1NTIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyB0eXBlIEFic3RyYWN0Q29uc3RydWN0b3IsIFNiYkFjdGlvbkJhc2VFbGVtZW50LCBTYmJOZWdhdGl2ZU1peGluIH0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5cbmltcG9ydCB0ZWFzZXJQcm9kdWN0Q29tbW9uU3R5bGVTdHJpbmcgZnJvbSAnLi90ZWFzZXItcHJvZHVjdC1jb21tb24uc2Nzcz9pbmxpbmUnO1xuXG5leHBvcnQgY29uc3QgdGVhc2VyUHJvZHVjdENvbW1vblN0eWxlID0gdW5zYWZlQ1NTKHRlYXNlclByb2R1Y3RDb21tb25TdHlsZVN0cmluZyk7XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFNiYlRlYXNlclByb2R1Y3RDb21tb25FbGVtZW50TWl4aW5UeXBlIGV4dGVuZHMgU2JiTmVnYXRpdmVNaXhpbihcbiAgU2JiQWN0aW9uQmFzZUVsZW1lbnQsXG4pIHtcbiAgcHVibGljIGFjY2Vzc29yIGltYWdlQWxpZ25tZW50OiAnYWZ0ZXInIHwgJ2JlZm9yZSc7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJUZWFzZXJQcm9kdWN0Q29tbW9uRWxlbWVudE1peGluID0gPFxuICBUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJBY3Rpb25CYXNlRWxlbWVudD4sXG4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJUZWFzZXJQcm9kdWN0Q29tbW9uRWxlbWVudE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiVGVhc2VyUHJvZHVjdENvbW1vbkVsZW1lbnRcbiAgICBleHRlbmRzIFNiYk5lZ2F0aXZlTWl4aW4oc3VwZXJDbGFzcylcbiAgICBpbXBsZW1lbnRzIFNiYlRlYXNlclByb2R1Y3RDb21tb25FbGVtZW50TWl4aW5UeXBlXG4gIHtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBmdWxseSB2aXNpYmxlIHBhcnQgb2YgdGhlIGltYWdlIGlzIGFsaWduZWQgJ2JlZm9yZScgb3IgJ2FmdGVyJyB0aGUgY29udGVudC5cbiAgICAgKiBPbmx5IHJlbGV2YW50IHN0YXJ0aW5nIGZyb20gbGFyZ2UgYnJlYWtwb2ludC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdpbWFnZS1hbGlnbm1lbnQnLCByZWZsZWN0OiB0cnVlIH0pXG4gICAgcHVibGljIGFjY2Vzc29yIGltYWdlQWxpZ25tZW50OiAnYWZ0ZXInIHwgJ2JlZm9yZScgPSAnYWZ0ZXInO1xuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXRlYXNlci1wcm9kdWN0X19yb290XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi10ZWFzZXItcHJvZHVjdF9faW1hZ2UtY29udGFpbmVyXCI+PHNsb3QgbmFtZT1cImltYWdlXCI+PC9zbG90PjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItdGVhc2VyLXByb2R1Y3RfX2NvbnRhaW5lclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItdGVhc2VyLXByb2R1Y3RfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi10ZWFzZXItcHJvZHVjdF9fZm9vdG5vdGVcIj5cbiAgICAgICAgICAgICAgPHNsb3QgbmFtZT1cImZvb3Rub3RlXCI+PC9zbG90PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgYDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFNiYlRlYXNlclByb2R1Y3RDb21tb25FbGVtZW50IGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiVGVhc2VyUHJvZHVjdENvbW1vbkVsZW1lbnRNaXhpblR5cGU+ICZcbiAgICBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FDT0EsSUFBYSwyQkFBMkIsVUFBVSxxd0hBQStCO0FBU2pGLElBQWEsc0NBR1gsZUFDbUU7QUE0Qm5FLGVBM0I0QztvQkFDbEMsaUJBQWlCLFdBQVc7Ozs7ZUFEdkIsc0NBQ0wsWUFBNEI7OztrQ0FPbkMsU0FBUztLQUFFLFdBQVc7S0FBbUIsU0FBUztLQUFNLENBQUMsQ0FBQTtBQUMxRCxpQkFBQSxNQUFBLE1BQUEsNEJBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQTtLQUFBLFFBQUE7S0FBQSxTQUFBO0tBQUEsUUFBQTtNQUFBLE1BQUEsUUFBQSxvQkFBQTtNQUFBLE1BQUEsUUFBQSxJQUFnQjtNQUFjLE1BQUEsS0FBQSxVQUFBO0FBQUEsV0FBZCxpQkFBYzs7TUFBQTtLQUFBLFVBQUE7S0FBQSxFQUFBLDhCQUFBLGtDQUFBOzs7Ozs7OztHQUE5QixtQ0FBQSxrQkFBQSxNQUFBLDhCQUFxRCxRQUFPOzs7OztHQUE1RCxJQUFnQixpQkFBYztBQUFBLFdBQUEsTUFBQTs7R0FBOUIsSUFBZ0IsZUFBYyxPQUFBO0FBQUEsVUFBQSxrQ0FBQTs7R0FFWCxpQkFBYztBQUMvQixXQUFPLElBQUk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FlUiJ9