@c8y/ngx-components 1021.25.5 → 1021.29.0

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 (113) hide show
  1. package/alarms/alarm-details.component.d.ts +8 -13
  2. package/alarms/alarm-details.component.d.ts.map +1 -1
  3. package/alarms/alarm-details.service.d.ts +3 -20
  4. package/alarms/alarm-details.service.d.ts.map +1 -1
  5. package/alarms/alarm-info.component.d.ts +0 -1
  6. package/alarms/alarm-info.component.d.ts.map +1 -1
  7. package/branding/shared/data/branding-version.service.d.ts.map +1 -1
  8. package/branding/shared/lazy/branding-theme-form/branding-theme-form.component.d.ts.map +1 -1
  9. package/core/bootstrap/bootstrap.component.d.ts.map +1 -1
  10. package/core/common/geo.service.d.ts.map +1 -1
  11. package/core/common/inter-app.service.d.ts +1 -0
  12. package/core/common/inter-app.service.d.ts.map +1 -1
  13. package/core/plugins/plugins.model.d.ts +3 -1
  14. package/core/plugins/plugins.model.d.ts.map +1 -1
  15. package/core/plugins/plugins.service.d.ts.map +1 -1
  16. package/device-map/bounds-resolver.service.d.ts +12 -0
  17. package/device-map/bounds-resolver.service.d.ts.map +1 -0
  18. package/device-map/c8y-ngx-components-device-map.d.ts.map +1 -0
  19. package/device-map/device-map-navigation.factory.d.ts +9 -0
  20. package/device-map/device-map-navigation.factory.d.ts.map +1 -0
  21. package/device-map/device-map.component.d.ts +10 -0
  22. package/device-map/device-map.component.d.ts.map +1 -0
  23. package/device-map/device-map.feature.d.ts +3 -0
  24. package/device-map/device-map.feature.d.ts.map +1 -0
  25. package/device-map/index.d.ts +6 -0
  26. package/device-map/index.d.ts.map +1 -0
  27. package/device-map/location-resolver.service.d.ts +8 -0
  28. package/device-map/location-resolver.service.d.ts.map +1 -0
  29. package/ecosystem/application-plugins/application-plugins.component.d.ts.map +1 -1
  30. package/ecosystem/application-plugins/orphaned-status-cell-renderer.component.d.ts.map +1 -1
  31. package/esm2022/alarms/alarm-details.component.mjs +14 -30
  32. package/esm2022/alarms/alarm-details.service.mjs +5 -25
  33. package/esm2022/alarms/alarm-info.component.mjs +1 -1
  34. package/esm2022/branding/shared/data/branding-version.service.mjs +9 -5
  35. package/esm2022/branding/shared/lazy/branding-theme-form/branding-theme-form.component.mjs +5 -2
  36. package/esm2022/core/bootstrap/bootstrap.component.mjs +4 -3
  37. package/esm2022/core/common/geo.service.mjs +2 -5
  38. package/esm2022/core/common/inter-app.service.mjs +3 -2
  39. package/esm2022/core/plugins/plugins.model.mjs +2 -1
  40. package/esm2022/core/plugins/plugins.service.mjs +7 -5
  41. package/esm2022/core/version/websdk-plugin-version.factory.mjs +2 -2
  42. package/esm2022/device-map/bounds-resolver.service.mjs +21 -0
  43. package/esm2022/device-map/c8y-ngx-components-device-map.mjs +5 -0
  44. package/esm2022/device-map/device-map-navigation.factory.mjs +25 -0
  45. package/esm2022/device-map/device-map.component.mjs +30 -0
  46. package/esm2022/device-map/device-map.feature.mjs +15 -0
  47. package/esm2022/device-map/index.mjs +6 -0
  48. package/esm2022/device-map/location-resolver.service.mjs +25 -0
  49. package/esm2022/ecosystem/application-plugins/application-plugins.component.mjs +66 -22
  50. package/esm2022/ecosystem/application-plugins/orphaned-status-cell-renderer.component.mjs +7 -1
  51. package/esm2022/location/location.component.mjs +3 -3
  52. package/esm2022/map/map-status.component.mjs +20 -7
  53. package/esm2022/map/map.component.mjs +15 -7
  54. package/esm2022/map/map.model.mjs +2 -2
  55. package/esm2022/map/map.module.mjs +25 -4
  56. package/esm2022/map/map.service.mjs +73 -7
  57. package/esm2022/repository/firmware/list/firmware-list.component.mjs +10 -10
  58. package/esm2022/repository/software/list/software-list.component.mjs +10 -10
  59. package/esm2022/tracking/tracking-marker-popup.component.mjs +10 -3
  60. package/esm2022/tracking/tracking.component.mjs +3 -4
  61. package/esm2022/tracking/tracking.service.mjs +6 -3
  62. package/fesm2022/c8y-ngx-components-alarms.mjs +18 -54
  63. package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
  64. package/fesm2022/c8y-ngx-components-branding-shared-data.mjs +8 -4
  65. package/fesm2022/c8y-ngx-components-branding-shared-data.mjs.map +1 -1
  66. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +4 -1
  67. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
  68. package/fesm2022/c8y-ngx-components-device-map.mjs +106 -0
  69. package/fesm2022/c8y-ngx-components-device-map.mjs.map +1 -0
  70. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +71 -21
  71. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
  72. package/fesm2022/c8y-ngx-components-ecosystem.mjs +71 -21
  73. package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
  74. package/fesm2022/c8y-ngx-components-location.mjs +2 -2
  75. package/fesm2022/c8y-ngx-components-location.mjs.map +1 -1
  76. package/fesm2022/c8y-ngx-components-map.mjs +122 -14
  77. package/fesm2022/c8y-ngx-components-map.mjs.map +1 -1
  78. package/fesm2022/c8y-ngx-components-repository-firmware.mjs +9 -9
  79. package/fesm2022/c8y-ngx-components-repository-firmware.mjs.map +1 -1
  80. package/fesm2022/c8y-ngx-components-repository-software.mjs +9 -9
  81. package/fesm2022/c8y-ngx-components-repository-software.mjs.map +1 -1
  82. package/fesm2022/c8y-ngx-components-tracking.mjs +16 -7
  83. package/fesm2022/c8y-ngx-components-tracking.mjs.map +1 -1
  84. package/fesm2022/c8y-ngx-components.mjs +14 -12
  85. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  86. package/locales/de.po +13 -1
  87. package/locales/es.po +13 -1
  88. package/locales/fr.po +13 -1
  89. package/locales/ja_JP.po +15 -3
  90. package/locales/ko.po +13 -1
  91. package/locales/locales.pot +12 -0
  92. package/locales/nl.po +13 -1
  93. package/locales/pl.po +13 -1
  94. package/locales/pt_BR.po +13 -1
  95. package/locales/zh_CN.po +13 -1
  96. package/locales/zh_TW.po +13 -1
  97. package/map/map-status.component.d.ts +3 -1
  98. package/map/map-status.component.d.ts.map +1 -1
  99. package/map/map.component.d.ts +2 -1
  100. package/map/map.component.d.ts.map +1 -1
  101. package/map/map.model.d.ts +1 -0
  102. package/map/map.model.d.ts.map +1 -1
  103. package/map/map.module.d.ts +2 -1
  104. package/map/map.module.d.ts.map +1 -1
  105. package/map/map.service.d.ts +27 -2
  106. package/map/map.service.d.ts.map +1 -1
  107. package/package.json +1 -1
  108. package/repository/firmware/list/firmware-list.component.d.ts.map +1 -1
  109. package/repository/software/list/software-list.component.d.ts.map +1 -1
  110. package/tracking/tracking-marker-popup.component.d.ts +5 -1
  111. package/tracking/tracking-marker-popup.component.d.ts.map +1 -1
  112. package/tracking/tracking.component.d.ts.map +1 -1
  113. package/tracking/tracking.service.d.ts.map +1 -1
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
39
39
  type: Component,
40
40
  args: [{ selector: 'c8y-alarm-info', template: "<ng-container *ngIf=\"!isContextRoute\">\n <c8y-title>{{ TITLE | translate }}</c8y-title>\n</ng-container>\n\n<div\n class=\"inner-scroll split-view__detail split-view__detail--selected\"\n *ngIf=\"selectedAlarm$ | async\"\n>\n <div class=\"sticky-top bg-component\">\n <div class=\"card-header gap-16 d-block-xs d-block-sm p-l-24 p-r-24 p-t-16 separator\">\n <button\n class=\"btn btn-clean text-primary visible-sm visible-xs\"\n [title]=\"'Back' | translate\"\n (click)=\"back()\"\n >\n <i c8yIcon=\"chevron-left\"></i>\n <span>{{ 'Back' | translate }}</span>\n </button>\n\n <div class=\"flex-no-shrink a-s-start\"></div>\n <div class=\"flex-grow d-col\">\n <div\n class=\"text-break-word flex-grow text-16\"\n data-cy=\"c8y-alarms-info--title\"\n >\n {{ (selectedAlarm$ | async)?.text | translate }}\n </div>\n </div>\n </div>\n <div class=\"p-relative\">\n <c8y-tabs-outlet\n outletName=\"alarms\"\n orientation=\"horizontal\"\n ></c8y-tabs-outlet>\n </div>\n <div class=\"card-block overflow-visible p-l-24 p-r-24\">\n <c8y-alarm-details [selectedAlarm]=\"selectedAlarm$ | async\"></c8y-alarm-details>\n </div>\n </div>\n</div>\n" }]
41
41
  }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.ContextRouteService }, { type: i3.AlarmsViewService }] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm0taW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9hbGFybXMvYWxhcm0taW5mby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi9hbGFybXMvYWxhcm0taW5mby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRixPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7OztBQU0xRCxNQUFNLE9BQU8sa0JBQWtCO0lBUTdCLFlBQ1MsY0FBOEIsRUFDN0IsTUFBYyxFQUNkLG1CQUF3QyxFQUN4QyxpQkFBb0M7UUFIckMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzdCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFQOUMsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDZCxVQUFLLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBT2hDLENBQUM7SUFFSixLQUFLLENBQUMsUUFBUTtRQUNaLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxXQUFxQixDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQzdFLFdBQVcsQ0FBQyxNQUFNO1lBQ2xCLFdBQVcsQ0FBQyxLQUFLO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJO1FBQ0YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakYsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQzs4R0E1QlUsa0JBQWtCO2tHQUFsQixrQkFBa0Isc0RDWC9CLHN4Q0F3Q0E7OzJGRDdCYSxrQkFBa0I7a0JBSjlCLFNBQVM7K0JBQ0UsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSUFsYXJtIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQ29udGV4dFJvdXRlU2VydmljZSwgZ2V0dGV4dCwgVmlld0NvbnRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbGFybXNWaWV3U2VydmljZSB9IGZyb20gJy4vYWxhcm1zLXZpZXcuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1hbGFybS1pbmZvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FsYXJtLWluZm8uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFsYXJtSW5mb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHNlbGVjdGVkQWxhcm0kOiBPYnNlcnZhYmxlPElBbGFybT47XG5cbiAgaGFzQW55Um9sZUFsbG93aW5nVG9DcmVhdGVTbWFydFJ1bGU6IGJvb2xlYW47XG4gIGlzU21hcnRSdWxlc1NlcnZpY2VTdWJzY3JpYmVkOiBib29sZWFuO1xuICBpc0NvbnRleHRSb3V0ZSA9IGZhbHNlO1xuICByZWFkb25seSBUSVRMRSA9IGdldHRleHQoJ0FsYXJtcycpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGNvbnRleHRSb3V0ZVNlcnZpY2U6IENvbnRleHRSb3V0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGFybXNWaWV3U2VydmljZTogQWxhcm1zVmlld1NlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGNvbnRleHREYXRhID0gdGhpcy5jb250ZXh0Um91dGVTZXJ2aWNlLmdldENvbnRleHREYXRhKHRoaXMuYWN0aXZhdGVkUm91dGUpO1xuICAgIHRoaXMuc2VsZWN0ZWRBbGFybSQgPSBvZihjb250ZXh0RGF0YS5jb250ZXh0RGF0YSBhcyBJQWxhcm0pO1xuICAgIHRoaXMuaXNDb250ZXh0Um91dGUgPSB0aGlzLmNvbnRleHRSb3V0ZVNlcnZpY2UuaXNDb250ZXh0Um91dGUodGhpcy5yb3V0ZXIudXJsLCBbXG4gICAgICBWaWV3Q29udGV4dC5EZXZpY2UsXG4gICAgICBWaWV3Q29udGV4dC5Hcm91cFxuICAgIF0pO1xuICB9XG5cbiAgYmFjaygpOiB2b2lkIHtcbiAgICBjb25zdCBjb250ZXh0RGF0YSA9IHRoaXMuY29udGV4dFJvdXRlU2VydmljZS5nZXRDb250ZXh0RGF0YSh0aGlzLmFjdGl2YXRlZFJvdXRlKTtcbiAgICBjb25zdCBiYWNrTGluayA9IHRoaXMuYWxhcm1zVmlld1NlcnZpY2UuZ2V0Um91dGVyTmF2aWdhdGlvbkFycmF5KGNvbnRleHREYXRhKTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShiYWNrTGluaywgeyBxdWVyeVBhcmFtc0hhbmRsaW5nOiAncHJlc2VydmUnIH0pO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzQ29udGV4dFJvdXRlXCI+XG4gIDxjOHktdGl0bGU+e3sgVElUTEUgfCB0cmFuc2xhdGUgfX08L2M4eS10aXRsZT5cbjwvbmctY29udGFpbmVyPlxuXG48ZGl2XG4gIGNsYXNzPVwiaW5uZXItc2Nyb2xsIHNwbGl0LXZpZXdfX2RldGFpbCBzcGxpdC12aWV3X19kZXRhaWwtLXNlbGVjdGVkXCJcbiAgKm5nSWY9XCJzZWxlY3RlZEFsYXJtJCB8IGFzeW5jXCJcbj5cbiAgPGRpdiBjbGFzcz1cInN0aWNreS10b3AgYmctY29tcG9uZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGdhcC0xNiBkLWJsb2NrLXhzIGQtYmxvY2stc20gcC1sLTI0IHAtci0yNCBwLXQtMTYgc2VwYXJhdG9yXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1jbGVhbiB0ZXh0LXByaW1hcnkgdmlzaWJsZS1zbSB2aXNpYmxlLXhzXCJcbiAgICAgICAgW3RpdGxlXT1cIidCYWNrJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIChjbGljayk9XCJiYWNrKClcIlxuICAgICAgPlxuICAgICAgICA8aSBjOHlJY29uPVwiY2hldnJvbi1sZWZ0XCI+PC9pPlxuICAgICAgICA8c3Bhbj57eyAnQmFjaycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgtbm8tc2hyaW5rIGEtcy1zdGFydFwiPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3JvdyBkLWNvbFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJyZWFrLXdvcmQgZmxleC1ncm93IHRleHQtMTZcIlxuICAgICAgICAgIGRhdGEtY3k9XCJjOHktYWxhcm1zLWluZm8tLXRpdGxlXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IChzZWxlY3RlZEFsYXJtJCB8IGFzeW5jKT8udGV4dCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJwLXJlbGF0aXZlXCI+XG4gICAgICA8Yzh5LXRhYnMtb3V0bGV0XG4gICAgICAgIG91dGxldE5hbWU9XCJhbGFybXNcIlxuICAgICAgICBvcmllbnRhdGlvbj1cImhvcml6b250YWxcIlxuICAgICAgPjwvYzh5LXRhYnMtb3V0bGV0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIG92ZXJmbG93LXZpc2libGUgcC1sLTI0IHAtci0yNFwiPlxuICAgICAgPGM4eS1hbGFybS1kZXRhaWxzIFtzZWxlY3RlZEFsYXJtXT1cInNlbGVjdGVkQWxhcm0kIHwgYXN5bmNcIj48L2M4eS1hbGFybS1kZXRhaWxzPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm0taW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9hbGFybXMvYWxhcm0taW5mby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi9hbGFybXMvYWxhcm0taW5mby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRixPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7OztBQU0xRCxNQUFNLE9BQU8sa0JBQWtCO0lBTzdCLFlBQ1MsY0FBOEIsRUFDN0IsTUFBYyxFQUNkLG1CQUF3QyxFQUN4QyxpQkFBb0M7UUFIckMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzdCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFQOUMsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDZCxVQUFLLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBT2hDLENBQUM7SUFFSixLQUFLLENBQUMsUUFBUTtRQUNaLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxXQUFxQixDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQzdFLFdBQVcsQ0FBQyxNQUFNO1lBQ2xCLFdBQVcsQ0FBQyxLQUFLO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJO1FBQ0YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakYsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQzs4R0EzQlUsa0JBQWtCO2tHQUFsQixrQkFBa0Isc0RDWC9CLHN4Q0F3Q0E7OzJGRDdCYSxrQkFBa0I7a0JBSjlCLFNBQVM7K0JBQ0UsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSUFsYXJtIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQ29udGV4dFJvdXRlU2VydmljZSwgZ2V0dGV4dCwgVmlld0NvbnRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbGFybXNWaWV3U2VydmljZSB9IGZyb20gJy4vYWxhcm1zLXZpZXcuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1hbGFybS1pbmZvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FsYXJtLWluZm8uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFsYXJtSW5mb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHNlbGVjdGVkQWxhcm0kOiBPYnNlcnZhYmxlPElBbGFybT47XG5cbiAgaGFzQW55Um9sZUFsbG93aW5nVG9DcmVhdGVTbWFydFJ1bGU6IGJvb2xlYW47XG4gIGlzQ29udGV4dFJvdXRlID0gZmFsc2U7XG4gIHJlYWRvbmx5IFRJVExFID0gZ2V0dGV4dCgnQWxhcm1zJyk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgY29udGV4dFJvdXRlU2VydmljZTogQ29udGV4dFJvdXRlU2VydmljZSxcbiAgICBwcml2YXRlIGFsYXJtc1ZpZXdTZXJ2aWNlOiBBbGFybXNWaWV3U2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgY29udGV4dERhdGEgPSB0aGlzLmNvbnRleHRSb3V0ZVNlcnZpY2UuZ2V0Q29udGV4dERhdGEodGhpcy5hY3RpdmF0ZWRSb3V0ZSk7XG4gICAgdGhpcy5zZWxlY3RlZEFsYXJtJCA9IG9mKGNvbnRleHREYXRhLmNvbnRleHREYXRhIGFzIElBbGFybSk7XG4gICAgdGhpcy5pc0NvbnRleHRSb3V0ZSA9IHRoaXMuY29udGV4dFJvdXRlU2VydmljZS5pc0NvbnRleHRSb3V0ZSh0aGlzLnJvdXRlci51cmwsIFtcbiAgICAgIFZpZXdDb250ZXh0LkRldmljZSxcbiAgICAgIFZpZXdDb250ZXh0Lkdyb3VwXG4gICAgXSk7XG4gIH1cblxuICBiYWNrKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRleHREYXRhID0gdGhpcy5jb250ZXh0Um91dGVTZXJ2aWNlLmdldENvbnRleHREYXRhKHRoaXMuYWN0aXZhdGVkUm91dGUpO1xuICAgIGNvbnN0IGJhY2tMaW5rID0gdGhpcy5hbGFybXNWaWV3U2VydmljZS5nZXRSb3V0ZXJOYXZpZ2F0aW9uQXJyYXkoY29udGV4dERhdGEpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKGJhY2tMaW5rLCB7IHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdwcmVzZXJ2ZScgfSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNDb250ZXh0Um91dGVcIj5cbiAgPGM4eS10aXRsZT57eyBUSVRMRSB8IHRyYW5zbGF0ZSB9fTwvYzh5LXRpdGxlPlxuPC9uZy1jb250YWluZXI+XG5cbjxkaXZcbiAgY2xhc3M9XCJpbm5lci1zY3JvbGwgc3BsaXQtdmlld19fZGV0YWlsIHNwbGl0LXZpZXdfX2RldGFpbC0tc2VsZWN0ZWRcIlxuICAqbmdJZj1cInNlbGVjdGVkQWxhcm0kIHwgYXN5bmNcIlxuPlxuICA8ZGl2IGNsYXNzPVwic3RpY2t5LXRvcCBiZy1jb21wb25lbnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgZ2FwLTE2IGQtYmxvY2steHMgZC1ibG9jay1zbSBwLWwtMjQgcC1yLTI0IHAtdC0xNiBzZXBhcmF0b3JcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLWNsZWFuIHRleHQtcHJpbWFyeSB2aXNpYmxlLXNtIHZpc2libGUteHNcIlxuICAgICAgICBbdGl0bGVdPVwiJ0JhY2snIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgKGNsaWNrKT1cImJhY2soKVwiXG4gICAgICA+XG4gICAgICAgIDxpIGM4eUljb249XCJjaGV2cm9uLWxlZnRcIj48L2k+XG4gICAgICAgIDxzcGFuPnt7ICdCYWNrJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleC1uby1zaHJpbmsgYS1zLXN0YXJ0XCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93IGQtY29sXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInRleHQtYnJlYWstd29yZCBmbGV4LWdyb3cgdGV4dC0xNlwiXG4gICAgICAgICAgZGF0YS1jeT1cImM4eS1hbGFybXMtaW5mby0tdGl0bGVcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgKHNlbGVjdGVkQWxhcm0kIHwgYXN5bmMpPy50ZXh0IHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInAtcmVsYXRpdmVcIj5cbiAgICAgIDxjOHktdGFicy1vdXRsZXRcbiAgICAgICAgb3V0bGV0TmFtZT1cImFsYXJtc1wiXG4gICAgICAgIG9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXG4gICAgICA+PC9jOHktdGFicy1vdXRsZXQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgb3ZlcmZsb3ctdmlzaWJsZSBwLWwtMjQgcC1yLTI0XCI+XG4gICAgICA8Yzh5LWFsYXJtLWRldGFpbHMgW3NlbGVjdGVkQWxhcm1dPVwic2VsZWN0ZWRBbGFybSQgfCBhc3luY1wiPjwvYzh5LWFsYXJtLWRldGFpbHM+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -22,14 +22,18 @@ export class BrandingVersionService {
22
22
  */
23
23
  splitBrandingIntoNameAndIteration(version) {
24
24
  const splitted = version.split(BrandingVersionService.nameAndIterationSeparator);
25
- if (splitted.length != 2) {
26
- throw Error(`A valid version should be splitted by exactly one '${BrandingVersionService.nameAndIterationSeparator}', this is not the case for '${version}'`);
25
+ if (splitted.length < 2) {
26
+ throw Error(`A valid version should at least conatin one '${BrandingVersionService.nameAndIterationSeparator}', this is not the case for '${version}'`);
27
27
  }
28
- const iteration = Number.parseInt(splitted[1]);
28
+ const lastValueOfSplittedArray = splitted[splitted.length - 1];
29
+ if (lastValueOfSplittedArray === '' || !/[0-9]+/.test(lastValueOfSplittedArray)) {
30
+ throw Error(`The second part of the version should be a positive integer, this is not the case for '${lastValueOfSplittedArray}' from '${version}'`);
31
+ }
32
+ const iteration = Number.parseInt(lastValueOfSplittedArray);
29
33
  if (Number.isNaN(iteration) && iteration <= 0) {
30
34
  throw Error(`The second part of the version should be a positive integer, this is not the case for '${iteration}' from '${version}'`);
31
35
  }
32
- const name = splitted[0];
36
+ const name = splitted.slice(0, -1).join(BrandingVersionService.nameAndIterationSeparator);
33
37
  if (!name) {
34
38
  throw Error(`The first part of the version should not be empty, this is the case for '${name}' from '${version}'`);
35
39
  }
@@ -55,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
55
59
  providedIn: 'root'
56
60
  }]
57
61
  }] });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmRpbmctdmVyc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYnJhbmRpbmcvc2hhcmVkL2RhdGEvYnJhbmRpbmctdmVyc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTNDOztHQUVHO0FBSUgsTUFBTSxPQUFPLHNCQUFzQjthQUNqQiw4QkFBeUIsR0FBRyxHQUFHLEFBQU4sQ0FBTztJQUVoRDs7OztPQUlHO0lBQ0gsNEJBQTRCLENBQW1CLElBQU87UUFDcEQsT0FBTyxHQUFHLElBQUksR0FBRyxzQkFBc0IsQ0FBQyx5QkFBeUIsR0FBRyxDQUFDLEVBQVcsQ0FBQztJQUNuRixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsaUNBQWlDLENBQUMsT0FBZTtRQUMvQyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDakYsSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sS0FBSyxDQUNULHNEQUFzRCxzQkFBc0IsQ0FBQyx5QkFBeUIsZ0NBQWdDLE9BQU8sR0FBRyxDQUNqSixDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0MsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM5QyxNQUFNLEtBQUssQ0FDVCwwRkFBMEYsU0FBUyxXQUFXLE9BQU8sR0FBRyxDQUN6SCxDQUFDO1FBQ0osQ0FBQztRQUNELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixNQUFNLEtBQUssQ0FDVCw0RUFBNEUsSUFBSSxXQUFXLE9BQU8sR0FBRyxDQUN0RyxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILHFCQUFxQixDQUFDLE9BQWU7UUFDbkMsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsaUNBQWlDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUUsT0FBTyxHQUFHLElBQUksR0FBRyxzQkFBc0IsQ0FBQyx5QkFBeUIsR0FBRyxTQUFTLEdBQUcsQ0FBQyxFQUFXLENBQUM7SUFDL0YsQ0FBQzs4R0FwRFUsc0JBQXNCO2tIQUF0QixzQkFBc0IsY0FGckIsTUFBTTs7MkZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBTZXJ2aWNlIGZvciBjcmVhdGluZyBhbmQgbWFuaXB1bGF0aW5nIGJyYW5kaW5nIHZlcnNpb25zLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCcmFuZGluZ1ZlcnNpb25TZXJ2aWNlIHtcbiAgc3RhdGljIHJlYWRvbmx5IG5hbWVBbmRJdGVyYXRpb25TZXBhcmF0b3IgPSAnLSc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIGluaXRpYWwgYnJhbmRpbmcgdmVyc2lvbiBmb3IgYSBnaXZlbiBuYW1lLlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgYnJhbmRpbmcuXG4gICAqIEByZXR1cm5zIFRoZSBpbml0aWFsIGJyYW5kaW5nIHZlcnNpb24uXG4gICAqL1xuICBjcmVhdGVJbml0aWFsQnJhbmRpbmdWZXJzaW9uPFQgZXh0ZW5kcyBzdHJpbmc+KG5hbWU6IFQpIHtcbiAgICByZXR1cm4gYCR7bmFtZX0ke0JyYW5kaW5nVmVyc2lvblNlcnZpY2UubmFtZUFuZEl0ZXJhdGlvblNlcGFyYXRvcn0kezF9YCBhcyBjb25zdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGxpdHMgYSBicmFuZGluZyB2ZXJzaW9uIGludG8gaXRzIG5hbWUgYW5kIGl0ZXJhdGlvbi5cbiAgICogQHBhcmFtIHZlcnNpb24gVGhlIGJyYW5kaW5nIHZlcnNpb24gdG8gc3BsaXQuXG4gICAqIEByZXR1cm5zIFRoZSBuYW1lIGFuZCBpdGVyYXRpb24gb2YgdGhlIGJyYW5kaW5nIHZlcnNpb24uXG4gICAqXG4gICAqIEVycm9ycyBhcmUgdGhyb3duIGlmIHRoZSB2ZXJzaW9uIGlzIG5vdCBpbiB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuICAgKi9cbiAgc3BsaXRCcmFuZGluZ0ludG9OYW1lQW5kSXRlcmF0aW9uKHZlcnNpb246IHN0cmluZyk6IHsgbmFtZTogc3RyaW5nOyBpdGVyYXRpb246IG51bWJlciB9IHtcbiAgICBjb25zdCBzcGxpdHRlZCA9IHZlcnNpb24uc3BsaXQoQnJhbmRpbmdWZXJzaW9uU2VydmljZS5uYW1lQW5kSXRlcmF0aW9uU2VwYXJhdG9yKTtcbiAgICBpZiAoc3BsaXR0ZWQubGVuZ3RoICE9IDIpIHtcbiAgICAgIHRocm93IEVycm9yKFxuICAgICAgICBgQSB2YWxpZCB2ZXJzaW9uIHNob3VsZCBiZSBzcGxpdHRlZCBieSBleGFjdGx5IG9uZSAnJHtCcmFuZGluZ1ZlcnNpb25TZXJ2aWNlLm5hbWVBbmRJdGVyYXRpb25TZXBhcmF0b3J9JywgdGhpcyBpcyBub3QgdGhlIGNhc2UgZm9yICcke3ZlcnNpb259J2BcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgaXRlcmF0aW9uID0gTnVtYmVyLnBhcnNlSW50KHNwbGl0dGVkWzFdKTtcbiAgICBpZiAoTnVtYmVyLmlzTmFOKGl0ZXJhdGlvbikgJiYgaXRlcmF0aW9uIDw9IDApIHtcbiAgICAgIHRocm93IEVycm9yKFxuICAgICAgICBgVGhlIHNlY29uZCBwYXJ0IG9mIHRoZSB2ZXJzaW9uIHNob3VsZCBiZSBhIHBvc2l0aXZlIGludGVnZXIsIHRoaXMgaXMgbm90IHRoZSBjYXNlIGZvciAnJHtpdGVyYXRpb259JyBmcm9tICcke3ZlcnNpb259J2BcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IG5hbWUgPSBzcGxpdHRlZFswXTtcbiAgICBpZiAoIW5hbWUpIHtcbiAgICAgIHRocm93IEVycm9yKFxuICAgICAgICBgVGhlIGZpcnN0IHBhcnQgb2YgdGhlIHZlcnNpb24gc2hvdWxkIG5vdCBiZSBlbXB0eSwgdGhpcyBpcyB0aGUgY2FzZSBmb3IgJyR7bmFtZX0nIGZyb20gJyR7dmVyc2lvbn0nYFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgaXRlcmF0aW9uLCBuYW1lIH07XG4gIH1cblxuICAvKipcbiAgICogQnVtcHMgdGhlIGl0ZXJhdGlvbiBvZiBhIGJyYW5kaW5nIHZlcnNpb24uXG4gICAqIEBwYXJhbSB2ZXJzaW9uIFRoZSBicmFuZGluZyB2ZXJzaW9uIHRvIGJ1bXAuXG4gICAqIEByZXR1cm5zIFRoZSBidW1wZWQgYnJhbmRpbmcgdmVyc2lvbi5cbiAgICpcbiAgICogRXJyb3JzIGFyZSB0aHJvd24gaWYgdGhlIHZlcnNpb24gaXMgbm90IGluIHRoZSBleHBlY3RlZCBmb3JtYXQuXG4gICAqL1xuICBidW1wQnJhbmRpbmdJdGVyYXRpb24odmVyc2lvbjogc3RyaW5nKSB7XG4gICAgY29uc3QgeyBuYW1lLCBpdGVyYXRpb24gfSA9IHRoaXMuc3BsaXRCcmFuZGluZ0ludG9OYW1lQW5kSXRlcmF0aW9uKHZlcnNpb24pO1xuICAgIHJldHVybiBgJHtuYW1lfSR7QnJhbmRpbmdWZXJzaW9uU2VydmljZS5uYW1lQW5kSXRlcmF0aW9uU2VwYXJhdG9yfSR7aXRlcmF0aW9uICsgMX1gIGFzIGNvbnN0O1xuICB9XG59XG4iXX0=
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmRpbmctdmVyc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYnJhbmRpbmcvc2hhcmVkL2RhdGEvYnJhbmRpbmctdmVyc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTNDOztHQUVHO0FBSUgsTUFBTSxPQUFPLHNCQUFzQjthQUNqQiw4QkFBeUIsR0FBRyxHQUFHLEFBQU4sQ0FBTztJQUVoRDs7OztPQUlHO0lBQ0gsNEJBQTRCLENBQW1CLElBQU87UUFDcEQsT0FBTyxHQUFHLElBQUksR0FBRyxzQkFBc0IsQ0FBQyx5QkFBeUIsR0FBRyxDQUFDLEVBQVcsQ0FBQztJQUNuRixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsaUNBQWlDLENBQUMsT0FBZTtRQUMvQyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDakYsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sS0FBSyxDQUNULGdEQUFnRCxzQkFBc0IsQ0FBQyx5QkFBeUIsZ0NBQWdDLE9BQU8sR0FBRyxDQUMzSSxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sd0JBQXdCLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDL0QsSUFBSSx3QkFBd0IsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsQ0FBQztZQUNoRixNQUFNLEtBQUssQ0FDVCwwRkFBMEYsd0JBQXdCLFdBQVcsT0FBTyxHQUFHLENBQ3hJLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzVELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDOUMsTUFBTSxLQUFLLENBQ1QsMEZBQTBGLFNBQVMsV0FBVyxPQUFPLEdBQUcsQ0FDekgsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzFGLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE1BQU0sS0FBSyxDQUNULDRFQUE0RSxJQUFJLFdBQVcsT0FBTyxHQUFHLENBQ3RHLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gscUJBQXFCLENBQUMsT0FBZTtRQUNuQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1RSxPQUFPLEdBQUcsSUFBSSxHQUFHLHNCQUFzQixDQUFDLHlCQUF5QixHQUFHLFNBQVMsR0FBRyxDQUFDLEVBQVcsQ0FBQztJQUMvRixDQUFDOzhHQTdEVSxzQkFBc0I7a0hBQXRCLHNCQUFzQixjQUZyQixNQUFNOzsyRkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFNlcnZpY2UgZm9yIGNyZWF0aW5nIGFuZCBtYW5pcHVsYXRpbmcgYnJhbmRpbmcgdmVyc2lvbnMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJyYW5kaW5nVmVyc2lvblNlcnZpY2Uge1xuICBzdGF0aWMgcmVhZG9ubHkgbmFtZUFuZEl0ZXJhdGlvblNlcGFyYXRvciA9ICctJztcblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgaW5pdGlhbCBicmFuZGluZyB2ZXJzaW9uIGZvciBhIGdpdmVuIG5hbWUuXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBicmFuZGluZy5cbiAgICogQHJldHVybnMgVGhlIGluaXRpYWwgYnJhbmRpbmcgdmVyc2lvbi5cbiAgICovXG4gIGNyZWF0ZUluaXRpYWxCcmFuZGluZ1ZlcnNpb248VCBleHRlbmRzIHN0cmluZz4obmFtZTogVCkge1xuICAgIHJldHVybiBgJHtuYW1lfSR7QnJhbmRpbmdWZXJzaW9uU2VydmljZS5uYW1lQW5kSXRlcmF0aW9uU2VwYXJhdG9yfSR7MX1gIGFzIGNvbnN0O1xuICB9XG5cbiAgLyoqXG4gICAqIFNwbGl0cyBhIGJyYW5kaW5nIHZlcnNpb24gaW50byBpdHMgbmFtZSBhbmQgaXRlcmF0aW9uLlxuICAgKiBAcGFyYW0gdmVyc2lvbiBUaGUgYnJhbmRpbmcgdmVyc2lvbiB0byBzcGxpdC5cbiAgICogQHJldHVybnMgVGhlIG5hbWUgYW5kIGl0ZXJhdGlvbiBvZiB0aGUgYnJhbmRpbmcgdmVyc2lvbi5cbiAgICpcbiAgICogRXJyb3JzIGFyZSB0aHJvd24gaWYgdGhlIHZlcnNpb24gaXMgbm90IGluIHRoZSBleHBlY3RlZCBmb3JtYXQuXG4gICAqL1xuICBzcGxpdEJyYW5kaW5nSW50b05hbWVBbmRJdGVyYXRpb24odmVyc2lvbjogc3RyaW5nKTogeyBuYW1lOiBzdHJpbmc7IGl0ZXJhdGlvbjogbnVtYmVyIH0ge1xuICAgIGNvbnN0IHNwbGl0dGVkID0gdmVyc2lvbi5zcGxpdChCcmFuZGluZ1ZlcnNpb25TZXJ2aWNlLm5hbWVBbmRJdGVyYXRpb25TZXBhcmF0b3IpO1xuICAgIGlmIChzcGxpdHRlZC5sZW5ndGggPCAyKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgYEEgdmFsaWQgdmVyc2lvbiBzaG91bGQgYXQgbGVhc3QgY29uYXRpbiBvbmUgJyR7QnJhbmRpbmdWZXJzaW9uU2VydmljZS5uYW1lQW5kSXRlcmF0aW9uU2VwYXJhdG9yfScsIHRoaXMgaXMgbm90IHRoZSBjYXNlIGZvciAnJHt2ZXJzaW9ufSdgXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGxhc3RWYWx1ZU9mU3BsaXR0ZWRBcnJheSA9IHNwbGl0dGVkW3NwbGl0dGVkLmxlbmd0aCAtIDFdO1xuICAgIGlmIChsYXN0VmFsdWVPZlNwbGl0dGVkQXJyYXkgPT09ICcnIHx8ICEvWzAtOV0rLy50ZXN0KGxhc3RWYWx1ZU9mU3BsaXR0ZWRBcnJheSkpIHtcbiAgICAgIHRocm93IEVycm9yKFxuICAgICAgICBgVGhlIHNlY29uZCBwYXJ0IG9mIHRoZSB2ZXJzaW9uIHNob3VsZCBiZSBhIHBvc2l0aXZlIGludGVnZXIsIHRoaXMgaXMgbm90IHRoZSBjYXNlIGZvciAnJHtsYXN0VmFsdWVPZlNwbGl0dGVkQXJyYXl9JyBmcm9tICcke3ZlcnNpb259J2BcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgaXRlcmF0aW9uID0gTnVtYmVyLnBhcnNlSW50KGxhc3RWYWx1ZU9mU3BsaXR0ZWRBcnJheSk7XG4gICAgaWYgKE51bWJlci5pc05hTihpdGVyYXRpb24pICYmIGl0ZXJhdGlvbiA8PSAwKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgYFRoZSBzZWNvbmQgcGFydCBvZiB0aGUgdmVyc2lvbiBzaG91bGQgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLCB0aGlzIGlzIG5vdCB0aGUgY2FzZSBmb3IgJyR7aXRlcmF0aW9ufScgZnJvbSAnJHt2ZXJzaW9ufSdgXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IG5hbWUgPSBzcGxpdHRlZC5zbGljZSgwLCAtMSkuam9pbihCcmFuZGluZ1ZlcnNpb25TZXJ2aWNlLm5hbWVBbmRJdGVyYXRpb25TZXBhcmF0b3IpO1xuICAgIGlmICghbmFtZSkge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgIGBUaGUgZmlyc3QgcGFydCBvZiB0aGUgdmVyc2lvbiBzaG91bGQgbm90IGJlIGVtcHR5LCB0aGlzIGlzIHRoZSBjYXNlIGZvciAnJHtuYW1lfScgZnJvbSAnJHt2ZXJzaW9ufSdgXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB7IGl0ZXJhdGlvbiwgbmFtZSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1bXBzIHRoZSBpdGVyYXRpb24gb2YgYSBicmFuZGluZyB2ZXJzaW9uLlxuICAgKiBAcGFyYW0gdmVyc2lvbiBUaGUgYnJhbmRpbmcgdmVyc2lvbiB0byBidW1wLlxuICAgKiBAcmV0dXJucyBUaGUgYnVtcGVkIGJyYW5kaW5nIHZlcnNpb24uXG4gICAqXG4gICAqIEVycm9ycyBhcmUgdGhyb3duIGlmIHRoZSB2ZXJzaW9uIGlzIG5vdCBpbiB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuICAgKi9cbiAgYnVtcEJyYW5kaW5nSXRlcmF0aW9uKHZlcnNpb246IHN0cmluZykge1xuICAgIGNvbnN0IHsgbmFtZSwgaXRlcmF0aW9uIH0gPSB0aGlzLnNwbGl0QnJhbmRpbmdJbnRvTmFtZUFuZEl0ZXJhdGlvbih2ZXJzaW9uKTtcbiAgICByZXR1cm4gYCR7bmFtZX0ke0JyYW5kaW5nVmVyc2lvblNlcnZpY2UubmFtZUFuZEl0ZXJhdGlvblNlcGFyYXRvcn0ke2l0ZXJhdGlvbiArIDF9YCBhcyBjb25zdDtcbiAgfVxufVxuIl19
@@ -25,7 +25,10 @@ export class BrandingThemeFormComponent {
25
25
  this.formStructure = formStructure;
26
26
  this.externalValue = {};
27
27
  this.addDarkThemePrefix = false;
28
- this.varsToConvertToHeight = ['navigator-platform-logo-height'];
28
+ this.varsToConvertToHeight = [
29
+ 'navigator-platform-logo-height',
30
+ 'dark-navigator-platform-logo-height'
31
+ ];
29
32
  this.addDarkThemePrefix = !!this.activatedRoute.snapshot.data.dark;
30
33
  this.themeSwitcher.temporaryChangeTheme(this.addDarkThemePrefix ? 'dark' : 'light');
31
34
  this.formGroup = this.initForm();
@@ -138,4 +141,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
138
141
  type: Component,
139
142
  args: [{ selector: 'c8y-branding-theme-form', standalone: true, host: { class: 'd-contents' }, imports: [CoreModule, FormsModule, StaticAssetsFilePickerComponent, ColorInputComponent], template: "<div\n class=\"inner-scroll\"\n [formGroup]=\"formGroup\"\n>\n <!-- Logos -->\n <div class=\"card-block\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Logos\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Brand logo</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"brand-logo-img\"\n translate\n >\n Brand logo file\n </label>\n <c8y-static-assets-file-picker\n name=\"brand-logo-img\"\n [supportedFileExtensions]=\"imageFileExtensions\"\n [isCSSURL]=\"true\"\n size=\"150\"\n formControlName=\"brand-logo-img\"\n ></c8y-static-assets-file-picker>\n <c8y-messages [helpMessage]=\"'Supported files: *.png, *.svg, *.jpg'\"></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"brand-logo-img-height\"\n for=\"brand-logo-img-height\"\n translate\n >\n Brand logo height\n </label>\n <input\n class=\"form-control\"\n id=\"brand-logo-img-height\"\n placeholder=\"{{ 'e.g. {{ example }}' | translate: { example: '50' } }}\"\n name=\"brand-logo-img-height\"\n type=\"number\"\n formControlName=\"brand-logo-img-height\"\n />\n <c8y-messages [helpMessage]=\"'Value is applied in px'\"></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Navigator logo</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"navigator-platform-logo\"\n translate\n >\n Navigator logo file\n </label>\n <c8y-static-assets-file-picker\n name=\"navigator-platform-logo\"\n [supportedFileExtensions]=\"imageFileExtensions\"\n [isCSSURL]=\"true\"\n size=\"150\"\n formControlName=\"navigator-platform-logo\"\n ></c8y-static-assets-file-picker>\n <c8y-messages [helpMessage]=\"'Supported files: *.png, *.svg, *.jpg'\"></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"navigator-platform-logo-height\"\n for=\"navigator-platform-logo-height\"\n translate\n >\n Navigator logo height\n </label>\n <input\n class=\"form-control\"\n id=\"navigator-platform-logo-height\"\n placeholder=\"{{ 'e.g. {{ example }}' | translate: { example: '50' } }}\"\n name=\"navigator-platform-logo-height\"\n type=\"number\"\n formControlName=\"navigator-platform-logo-height\"\n />\n <c8y-messages [helpMessage]=\"'Value is applied in px'\"></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Brand colors -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.brandColors.label | translate}}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-4\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ formStructure.brandColors.brandColors.label | translate}}</legend>\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of formStructure.brandColors.brandColors.colors\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n <div class=\"col-md-8\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ formStructure.brandColors.shades.label | translate }}</legend>\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let colorColumn of formStructure.brandColors.shades.colorColumn\">\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of colorColumn\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n <button\n class=\"btn btn-default btn-sm\"\n type=\"button\"\n data-cy=\"branding-reset-shades-button\"\n (click)=\"regenerateShadesBasedOnPrimaryColor()\"\n [disabled]=\"!(resetShadesButtonEnabled$ | async)\"\n >\n <i [c8yIcon]=\"'reset'\"></i>\n <span translate>Reset shades</span>\n </button>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Status colors -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.statusColors.label | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let subCategory of formStructure.statusColors.subCategories\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ subCategory.label | translate }}</legend>\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of subCategory.colors\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Generic -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Generic\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Generic colors</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"body-background-color\"\n for=\"body-background-color\"\n translate\n >\n Body background color\n </label>\n <c8y-color-input\n name=\"body-background-color\"\n formControlName=\"body-background-color\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"text-color\"\n for=\"text-color\"\n translate\n >\n Text color\n </label>\n <c8y-color-input\n name=\"text-color\"\n formControlName=\"text-color\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"text-muted\"\n for=\"text-muted\"\n translate\n >\n Text muted color\n </label>\n <c8y-color-input\n name=\"text-muted\"\n formControlName=\"text-muted\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Interactive</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"link-color\"\n for=\"link-color\"\n translate\n >\n Link color\n </label>\n <c8y-color-input\n name=\"link-color\"\n formControlName=\"link-color\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"link-hover-color\"\n for=\"link-hover-color\"\n translate\n >\n Link hover color\n </label>\n <c8y-color-input\n name=\"link-hover-color\"\n formControlName=\"link-hover-color\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"btn-border-radius-base\"\n for=\"btn-border-radius-base\"\n translate\n >\n Button border-radius\n </label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. 4' | translate }}\"\n name=\"btn-border-radius-base\"\n type=\"number\"\n formControlName=\"btn-border-radius-base\"\n />\n <c8y-messages [helpMessage]=\"'Value is applied in px'\"></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Action bar -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.actionBar.label | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <fieldset class=\"c8y-fieldset p-24\" *ngFor=\"let colorColumn of formStructure.actionBar.colorColumns\">\n <legend>{{ colorColumn.label | translate }}</legend>\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let subColorColumn of colorColumn.colorColumns\">\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of subColorColumn\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n <!-- Main header -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.mainHeader.label | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <fieldset class=\"c8y-fieldset p-24\" *ngFor=\"let colorColumn of formStructure.mainHeader.colorColumns\">\n <legend>{{ colorColumn.label | translate }}</legend>\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let subColorColumn of colorColumn.colorColumns\">\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of subColorColumn\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n <!-- Navigator -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.navigator.label }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-4\" *ngFor=\"let colorColumn of formStructure.navigator.colorColumns\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ colorColumn.label | translate }}</legend>\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of colorColumn.colors\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Right drawer -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.rightDrawer.label | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let colorColumn of formStructure.rightDrawer.colorColumns\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ colorColumn.label | translate }}</legend>\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of colorColumn.colors\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
140
143
  }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.FormBuilder }, { type: i3.FilesService }, { type: i4.BrandingShadesService }, { type: i3.ThemeSwitcherService }] });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmRpbmctdGhlbWUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9icmFuZGluZy9zaGFyZWQvbGF6eS9icmFuZGluZy10aGVtZS1mb3JtL2JyYW5kaW5nLXRoZW1lLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vYnJhbmRpbmcvc2hhcmVkL2xhenkvYnJhbmRpbmctdGhlbWUtZm9ybS9icmFuZGluZy10aGVtZS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUF3QixXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEYsT0FBTyxFQUNMLEdBQUcsRUFDSCxvQkFBb0IsRUFDcEIsUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxJQUFJLEVBQ0wsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsVUFBVSxFQUNWLFlBQVksRUFDWixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNwQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEYsT0FBTyxFQUVMLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbkIsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQWMsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FB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LENBQUM7UUFDL0UsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlELE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztRQUNqRixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzdDLE1BQU0sS0FBSyxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzlCLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQztZQUNqQyxDQUFDO1FBQ0gsQ0FBQztRQUNELGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLGlCQUFpQixDQUFDO1FBQ3JELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTyxTQUFTO1FBQ2YsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2hELENBQUM7OEdBL0pVLDBCQUEwQjtrR0FBMUIsMEJBQTBCLDJIQ3RDdkMsbXppQkFtY0EsMkNEL1pZLFVBQVUsazVEQUFFLFdBQVcsK0JBQUUsK0JBQStCOzsyRkFFdkQsMEJBQTBCO2tCQVB0QyxTQUFTOytCQUNFLHlCQUF5QixjQUV2QixJQUFJLFFBQ1YsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFdBQ3BCLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSwrQkFBK0IsRUFBRSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUJ1aWxkZXIsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgbWFwLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgcGFpcndpc2UsXG4gIGRlbGF5LFxuICBzd2l0Y2hNYXAsXG4gIGZpbHRlcixcbiAgc3RhcnRXaXRoLFxuICB0YWtlXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIENvcmVNb2R1bGUsXG4gIEZpbGVzU2VydmljZSxcbiAgR0VORVJJQ19GSUxFX1RZUEUsXG4gIFRoZW1lU3dpdGNoZXJTZXJ2aWNlLFxuICBDb2xvcklucHV0Q29tcG9uZW50XG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFN0YXRpY0Fzc2V0c0ZpbGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3N0YXRpYy1hc3NldHMnO1xuaW1wb3J0IHtcbiAgQnJhbmRpbmdPcHRpb25zSnNvbixcbiAgQnJhbmRpbmdTaGFkZXNTZXJ2aWNlLFxuICBjcmVhdGVCcmFuZGluZ0Zvcm1cbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9icmFuZGluZy9zaGFyZWQvZGF0YSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBkZWZlciwgaW50ZXJ2YWwsIG1lcmdlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZm9ybVN0cnVjdHVyZSB9IGZyb20gJy4vYnJhbmRpbmctdGhlbWUtZm9ybS1zdHJ1Y3R1cmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktYnJhbmRpbmctdGhlbWUtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9icmFuZGluZy10aGVtZS1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdDogeyBjbGFzczogJ2QtY29udGVudHMnIH0sXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBGb3Jtc01vZHVsZSwgU3RhdGljQXNzZXRzRmlsZVBpY2tlckNvbXBvbmVudCwgQ29sb3JJbnB1dENvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgQnJhbmRpbmdUaGVtZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgZm9ybVN0cnVjdHVyZSA9IGZvcm1TdHJ1Y3R1cmU7XG4gIGZvcm1Hcm91cDogUmV0dXJuVHlwZTxCcmFuZGluZ1RoZW1lRm9ybUNvbXBvbmVudFsnaW5pdEZvcm0nXT47XG4gIGltYWdlRmlsZUV4dGVuc2lvbnM6IHN0cmluZ1tdO1xuICByZXNldFNoYWRlc0J1dHRvbkVuYWJsZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gdm9pZDtcblxuICBwcml2YXRlIGV4dGVybmFsVmFsdWU6IEJyYW5kaW5nT3B0aW9uc0pzb24gPSB7fTtcbiAgcHJpdmF0ZSBmb3JtR3JvdXBWYWx1ZUNoYW5nZXMkOiBCcmFuZGluZ1RoZW1lRm9ybUNvbXBvbmVudFsnZm9ybUdyb3VwJ11bJ3ZhbHVlQ2hhbmdlcyddO1xuICBwcml2YXRlIGFkZERhcmtUaGVtZVByZWZpeCA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IHZhcnNUb0NvbnZlcnRUb0hlaWdodCA9IFsnbmF2aWdhdG9yLXBsYXRmb3JtLWxvZ28taGVpZ2h0J10gYXMgY29uc3Q7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBmaWxlc1NlcnZpY2U6IEZpbGVzU2VydmljZSxcbiAgICBwcml2YXRlIGJyYW5kaW5nU2hhZGVzOiBCcmFuZGluZ1NoYWRlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB0aGVtZVN3aXRjaGVyOiBUaGVtZVN3aXRjaGVyU2VydmljZVxuICApIHtcbiAgICB0aGlzLmFkZERhcmtUaGVtZVByZWZpeCA9ICEhdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5kYXRhLmRhcms7XG4gICAgdGhpcy50aGVtZVN3aXRjaGVyLnRlbXBvcmFyeUNoYW5nZVRoZW1lKHRoaXMuYWRkRGFya1RoZW1lUHJlZml4ID8gJ2RhcmsnIDogJ2xpZ2h0Jyk7XG4gICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmluaXRGb3JtKCk7XG4gICAgdGhpcy5mb3JtR3JvdXBWYWx1ZUNoYW5nZXMkID0gdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpO1xuICAgIHRoaXMuaW1hZ2VGaWxlRXh0ZW5zaW9ucyA9IHRoaXMuZmlsZXNTZXJ2aWNlXG4gICAgICAubWFwR2VuZXJpY0ZpbGVUeXBlc1RvRXh0ZW5zaW9ucyhbR0VORVJJQ19GSUxFX1RZUEUuSU1BR0VdKVxuICAgICAgLmZpbHRlcihleHQgPT4gZXh0ICE9PSAnaWNvJyk7XG5cbiAgICBjb25zdCBoYXNDdXN0b21TaGFkZXMkID0gbWVyZ2UoXG4gICAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMsXG4gICAgICBkZWZlcigoKSA9PiBvZih0aGlzLmZvcm1Hcm91cC52YWx1ZSkpXG4gICAgKS5waXBlKFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICBtYXAodG1wID0+IHRoaXMuYnJhbmRpbmdTaGFkZXMuaGFzQ3VzdG9tU2hhZGVzU2V0KHRtcFsnYnJhbmQtcHJpbWFyeSddLCB0bXApKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApO1xuICAgIHRoaXMucmVzZXRTaGFkZXNCdXR0b25FbmFibGVkJCA9IG1lcmdlKFxuICAgICAgZGVmZXIoKCkgPT4gb2YodGhpcy5mb3JtR3JvdXAuY29udHJvbHNbJ2JyYW5kLXByaW1hcnknXS5zdGF0dXMpKSxcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzWydicmFuZC1wcmltYXJ5J10uc3RhdHVzQ2hhbmdlc1xuICAgICkucGlwZShcbiAgICAgIC8vIHN0YXR1c0NoYW5nZXMgZW1pdHMgJ1BFTkRJTkcnIHdoZW4gdGhlIGZvcm0gY29udHJvbCBpcyBhc3luYyB2YWxpZGF0aW5nXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy80MTUxOVxuICAgICAgc3dpdGNoTWFwKHN0YXR1cyA9PiB7XG4gICAgICAgIGlmIChzdGF0dXMgPT09ICdQRU5ESU5HJykge1xuICAgICAgICAgIHJldHVybiBpbnRlcnZhbCgyMDApLnBpcGUoXG4gICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbJ2JyYW5kLXByaW1hcnknXS5zdGF0dXMpLFxuICAgICAgICAgICAgZmlsdGVyKHN0YXQgPT4gc3RhdCAhPT0gJ1BFTkRJTkcnKSxcbiAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICBzdGFydFdpdGgoc3RhdHVzKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9mKHN0YXR1cyk7XG4gICAgICB9KSxcbiAgICAgIHN3aXRjaE1hcChzdGF0dXMgPT4ge1xuICAgICAgICBpZiAoc3RhdHVzICE9PSAnVkFMSUQnKSB7XG4gICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaGFzQ3VzdG9tU2hhZGVzJDtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGNvbnN0IGJyYW5kUHJpbWFyeUZvcm1Db250cm9sID0gdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbJ2JyYW5kLXByaW1hcnknXTtcbiAgICBicmFuZFByaW1hcnlGb3JtQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoY29sb3IgPT4gdGhpcy5icmFuZGluZ1NoYWRlcy5pc1ZhbGlkU2hhZGVDb2xvcihjb2xvcikpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgcGFpcndpc2UoKSxcbiAgICAgICAgZGVsYXkoNSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKFtwcmV2LCBjdXJyXSkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmICghdGhpcy5icmFuZGluZ1NoYWRlcy5oYXNDdXN0b21TaGFkZXNTZXQocHJldiwgdGhpcy5mb3JtR3JvdXAudmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2VuZXJhdGVTaGFkZXNCYXNlZE9uUHJpbWFyeUNvbG9yKGN1cnIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudGhlbWVTd2l0Y2hlci5yZXNldFRlbXBvcmFyeVRoZW1lKCk7XG4gIH1cblxuICByZWdlbmVyYXRlU2hhZGVzQmFzZWRPblByaW1hcnlDb2xvcihjb2xvcj86IHN0cmluZykge1xuICAgIGNvbnN0IG5ld1NoYWRlcyA9IHRoaXMuYnJhbmRpbmdTaGFkZXMuZ2V0U2hhZGVDb2xvckJyYW5kaW5nQ3NzVmFycyhcbiAgICAgIGNvbG9yIHx8IHRoaXMuZm9ybUdyb3VwLnZhbHVlWydicmFuZC1wcmltYXJ5J11cbiAgICApO1xuICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUobmV3U2hhZGVzKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUob2JqOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcGFyc2VkT2JqID0gSlNPTi5wYXJzZShvYmopO1xuICAgICAgdGhpcy5leHRlcm5hbFZhbHVlID0gcGFyc2VkT2JqO1xuICAgICAgdGhpcy5hcHBseVN0YXRlVG9Gb3JtKHBhcnNlZE9iaik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gZmFpbGVkIHRvIHBhcnNlXG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1Hcm91cFZhbHVlQ2hhbmdlcyQuc3Vic2NyaWJlKHZhbHVlID0+IGZuKHRoaXMuY29udmVydEZvcm1Ub1N0YXRlKHZhbHVlKSkpO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgb25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICBpbml0Rm9ybSgpIHtcbiAgICByZXR1cm4gY3JlYXRlQnJhbmRpbmdGb3JtKHRoaXMuZm9ybUJ1aWxkZXIpO1xuICB9XG5cbiAgYXBwbHlTdGF0ZVRvRm9ybShicmFuZGluZzogQnJhbmRpbmdPcHRpb25zSnNvbikge1xuICAgIGlmICghYnJhbmRpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdG9CZVBhdGNoZWQgPSB7fTtcblxuICAgIGNvbnN0IHByZWZpeCA9IHRoaXMuZ2V0UHJlZml4KCk7XG4gICAgT2JqZWN0LmVudHJpZXMoYnJhbmRpbmcuYnJhbmRpbmdDc3NWYXJzIHx8IHt9KS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGlmIChwcmVmaXggJiYgIWtleS5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3Qga2V5SW5Gb3JtID0ga2V5LnJlcGxhY2UocHJlZml4LCAnJyk7XG4gICAgICBpZiAodGhpcy52YXJzVG9Db252ZXJ0VG9IZWlnaHQuaW5jbHVkZXMoa2V5SW5Gb3JtIGFzIGFueSkgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICB0b0JlUGF0Y2hlZFtrZXlJbkZvcm1dID0gTnVtYmVyLnBhcnNlSW50KHZhbHVlLnJlcGxhY2UoL1thLXpBLVolXS8sICcnKSB8fCAnMCcpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0b0JlUGF0Y2hlZFtrZXlJbkZvcm1dID0gdmFsdWU7XG4gICAgfSk7XG4gICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZSh0b0JlUGF0Y2hlZCk7XG4gIH1cblxuICBjb252ZXJ0Rm9ybVRvU3RhdGUodmFsdWU6IEJyYW5kaW5nVGhlbWVGb3JtQ29tcG9uZW50Wydmb3JtR3JvdXAnXVsndmFsdWUnXSk6IHN0cmluZyB7XG4gICAgY29uc3QgcHJlZml4ZWRCcmFuZGluZ0Nzc1ZhcnMgPSB7fTtcbiAgICBjb25zdCBwcmVmaXggPSB0aGlzLmdldFByZWZpeCgpO1xuICAgIE9iamVjdC5lbnRyaWVzKHZhbHVlKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIHByZWZpeGVkQnJhbmRpbmdDc3NWYXJzW2Ake3ByZWZpeH0ke2tleX1gXSA9IHZhbHVlO1xuICAgIH0pO1xuICAgIGNvbnN0IGV4dGVybmFsVmFsdWU6IEJyYW5kaW5nT3B0aW9uc0pzb24gPSBjbG9uZURlZXAodGhpcy5leHRlcm5hbFZhbHVlIHx8IHt9KTtcbiAgICBjb25zdCBjdXJyZW50Q1NTVmFycyA9IGV4dGVybmFsVmFsdWVbJ2JyYW5kaW5nQ3NzVmFycyddIHx8IHt9O1xuICAgIGNvbnN0IGFzc2lnbmVkTmV3VmFsdWVzID0gT2JqZWN0LmFzc2lnbihjdXJyZW50Q1NTVmFycywgcHJlZml4ZWRCcmFuZGluZ0Nzc1ZhcnMpO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIHRoaXMudmFyc1RvQ29udmVydFRvSGVpZ2h0KSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGFzc2lnbmVkTmV3VmFsdWVzW2tleV07XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICBhc3NpZ25lZE5ld1ZhbHVlc1trZXldICs9ICdweCc7XG4gICAgICB9XG4gICAgfVxuICAgIGV4dGVybmFsVmFsdWVbJ2JyYW5kaW5nQ3NzVmFycyddID0gYXNzaWduZWROZXdWYWx1ZXM7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGV4dGVybmFsVmFsdWUsIG51bGwsIDIpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQcmVmaXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRGFya1RoZW1lUHJlZml4ID8gJ2RhcmstJyA6ICcnO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiaW5uZXItc2Nyb2xsXCJcbiAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxuPlxuICA8IS0tICAgTG9nb3MgLS0+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMyBjb2wtbWQtMiBwLXQtMTZcIj5cbiAgICAgICAgPGg0XG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LW5vcm1hbCB0ZXh0LXJpZ2h0IHRleHQtbGVmdC14cyBtLWItMTZcIlxuICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICA+XG4gICAgICAgICAgTG9nb3NcbiAgICAgICAgPC9oND5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tOSBjb2wtbWQtMTBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMjRcIj5cbiAgICAgICAgICAgICAgPGxlZ2VuZCB0cmFuc2xhdGU+QnJhbmQgbG9nbzwvbGVnZW5kPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLWItMzJcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIHRpdGxlPVwiYnJhbmQtbG9nby1pbWdcIlxuICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgQnJhbmQgbG9nbyBmaWxlXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8Yzh5LXN0YXRpYy1hc3NldHMtZmlsZS1waWNrZXJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJicmFuZC1sb2dvLWltZ1wiXG4gICAgICAgICAgICAgICAgICBbc3VwcG9ydGVkRmlsZUV4dGVuc2lvbnNdPVwiaW1hZ2VGaWxlRXh0ZW5zaW9uc1wiXG4gICAgICAgICAgICAgICAgICBbaXNDU1NVUkxdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBzaXplPVwiMTUwXCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImJyYW5kLWxvZ28taW1nXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktc3RhdGljLWFzc2V0cy1maWxlLXBpY2tlcj5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzIFtoZWxwTWVzc2FnZV09XCInU3VwcG9ydGVkIGZpbGVzOiAqLnBuZywgKi5zdmcsICouanBnJ1wiPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLWItMzJcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIHRpdGxlPVwiYnJhbmQtbG9nby1pbWctaGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgIGZvcj1cImJyYW5kLWxvZ28taW1nLWhlaWdodFwiXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBCcmFuZCBsb2dvIGhlaWdodFxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICBpZD1cImJyYW5kLWxvZ28taW1nLWhlaWdodFwiXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdlLmcuIHt7IGV4YW1wbGUgfX0nIHwgdHJhbnNsYXRlOiB7IGV4YW1wbGU6ICc1MCcgfSB9fVwiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwiYnJhbmQtbG9nby1pbWctaGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYnJhbmQtbG9nby1pbWctaGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXMgW2hlbHBNZXNzYWdlXT1cIidWYWx1ZSBpcyBhcHBsaWVkIGluIHB4J1wiPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPC9maWVsZHNldD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldCBwLTI0XCI+XG4gICAgICAgICAgICAgIDxsZWdlbmQgdHJhbnNsYXRlPk5hdmlnYXRvciBsb2dvPC9sZWdlbmQ+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tYi0zMlwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJuYXZpZ2F0b3ItcGxhdGZvcm0tbG9nb1wiXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBOYXZpZ2F0b3IgbG9nbyBmaWxlXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8Yzh5LXN0YXRpYy1hc3NldHMtZmlsZS1waWNrZXJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJuYXZpZ2F0b3ItcGxhdGZvcm0tbG9nb1wiXG4gICAgICAgICAgICAgICAgICBbc3VwcG9ydGVkRmlsZUV4dGVuc2lvbnNdPVwiaW1hZ2VGaWxlRXh0ZW5zaW9uc1wiXG4gICAgICAgICAgICAgICAgICBbaXNDU1NVUkxdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBzaXplPVwiMTUwXCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5hdmlnYXRvci1wbGF0Zm9ybS1sb2dvXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktc3RhdGljLWFzc2V0cy1maWxlLXBpY2tlcj5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzIFtoZWxwTWVzc2FnZV09XCInU3VwcG9ydGVkIGZpbGVzOiAqLnBuZywgKi5zdmcsICouanBnJ1wiPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLWItMzJcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIHRpdGxlPVwibmF2aWdhdG9yLXBsYXRmb3JtLWxvZ28taGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgIGZvcj1cIm5hdmlnYXRvci1wbGF0Zm9ybS1sb2dvLWhlaWdodFwiXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBOYXZpZ2F0b3IgbG9nbyBoZWlnaHRcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJuYXZpZ2F0b3ItcGxhdGZvcm0tbG9nby1oZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZS5nLiB7eyBleGFtcGxlIH19JyB8IHRyYW5zbGF0ZTogeyBleGFtcGxlOiAnNTAnIH0gfX1cIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm5hdmlnYXRvci1wbGF0Zm9ybS1sb2dvLWhlaWdodFwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5hdmlnYXRvci1wbGF0Zm9ybS1sb2dvLWhlaWdodFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzIFtoZWxwTWVzc2FnZV09XCInVmFsdWUgaXMgYXBwbGllZCBpbiBweCdcIj48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8IS0tICBCcmFuZCBjb2xvcnMgLS0+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIHNlcGFyYXRvci10b3BcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zIGNvbC1tZC0yIHAtdC0xNlwiPlxuICAgICAgICA8aDRcbiAgICAgICAgICBjbGFzcz1cInRleHQtbm9ybWFsIHRleHQtcmlnaHQgdGV4dC1sZWZ0LXhzIG0tYi0xNlwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmb3JtU3RydWN0dXJlLmJyYW5kQ29sb3JzLmxhYmVsIHwgdHJhbnNsYXRlfX1cbiAgICAgICAgPC9oND5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tOSBjb2wtbWQtMTBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxuICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMjRcIj5cbiAgICAgICAgICAgICAgPGxlZ2VuZD57eyBmb3JtU3RydWN0dXJlLmJyYW5kQ29sb3JzLmJyYW5kQ29sb3JzLmxhYmVsIHwgdHJhbnNsYXRlfX08L2xlZ2VuZD5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwibS1iLTMyXCIgKm5nRm9yPVwibGV0IGNvbG9yIG9mIGZvcm1TdHJ1Y3R1cmUuYnJhbmRDb2xvcnMuYnJhbmRDb2xvcnMuY29sb3JzXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBjb2xvci5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGM4eS1jb2xvci1pbnB1dFxuICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jeV09XCInYnJhbmRpbmctdGhlbWUtZm9ybS1jb2xvci1pbnB1dC0nICsgY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktY29sb3ItaW5wdXQ+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlcz48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC04XCI+XG4gICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9XCJjOHktZmllbGRzZXQgcC0yNFwiPlxuICAgICAgICAgICAgICA8bGVnZW5kPnt7IGZvcm1TdHJ1Y3R1cmUuYnJhbmRDb2xvcnMuc2hhZGVzLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9sZWdlbmQ+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiAqbmdGb3I9XCJsZXQgY29sb3JDb2x1bW4gb2YgZm9ybVN0cnVjdHVyZS5icmFuZENvbG9ycy5zaGFkZXMuY29sb3JDb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tYi0zMlwiICpuZ0Zvcj1cImxldCBjb2xvciBvZiBjb2xvckNvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9yXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBjb2xvci5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8Yzh5LWNvbG9yLWlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jeV09XCInYnJhbmRpbmctdGhlbWUtZm9ybS1jb2xvci1pbnB1dC0nICsgY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgID48L2M4eS1jb2xvci1pbnB1dD5cbiAgICAgICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlcz48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXNtXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBkYXRhLWN5PVwiYnJhbmRpbmctcmVzZXQtc2hhZGVzLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlZ2VuZXJhdGVTaGFkZXNCYXNlZE9uUHJpbWFyeUNvbG9yKClcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhKHJlc2V0U2hhZGVzQnV0dG9uRW5hYmxlZCQgfCBhc3luYylcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGkgW2M4eUljb25dPVwiJ3Jlc2V0J1wiPjwvaT5cbiAgICAgICAgICAgICAgICA8c3BhbiB0cmFuc2xhdGU+UmVzZXQgc2hhZGVzPC9zcGFuPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8IS0tIFN0YXR1cyBjb2xvcnMgLS0+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIHNlcGFyYXRvci10b3BcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zIGNvbC1tZC0yIHAtdC0xNlwiPlxuICAgICAgICA8aDRcbiAgICAgICAgICBjbGFzcz1cInRleHQtbm9ybWFsIHRleHQtcmlnaHQgdGV4dC1sZWZ0LXhzIG0tYi0xNlwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmb3JtU3RydWN0dXJlLnN0YXR1c0NvbG9ycy5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2g0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS05IGNvbC1tZC0xMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nRm9yPVwibGV0IHN1YkNhdGVnb3J5IG9mIGZvcm1TdHJ1Y3R1cmUuc3RhdHVzQ29sb3JzLnN1YkNhdGVnb3JpZXNcIj5cbiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldCBwLTI0XCI+XG4gICAgICAgICAgICAgIDxsZWdlbmQ+e3sgc3ViQ2F0ZWdvcnkubGFiZWwgfCB0cmFuc2xhdGUgfX08L2xlZ2VuZD5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwibS1iLTMyXCIgKm5nRm9yPVwibGV0IGNvbG9yIG9mIHN1YkNhdGVnb3J5LmNvbG9yc1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICBbZm9yXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgY29sb3IubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxjOHktY29sb3ItaW5wdXRcbiAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ2JyYW5kaW5nLXRoZW1lLWZvcm0tY29sb3ItaW5wdXQtJyArIGNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgPjwvYzh5LWNvbG9yLWlucHV0PlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXM+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPCEtLSBHZW5lcmljIC0tPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBzZXBhcmF0b3ItdG9wXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMyBjb2wtbWQtMiBwLXQtMTZcIj5cbiAgICAgICAgPGg0XG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LW5vcm1hbCB0ZXh0LXJpZ2h0IHRleHQtbGVmdC14cyBtLWItMTZcIlxuICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICA+XG4gICAgICAgICAgR2VuZXJpY1xuICAgICAgICA8L2g0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS05IGNvbC1tZC0xMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9XCJjOHktZmllbGRzZXQgcC0yNFwiPlxuICAgICAgICAgICAgICA8bGVnZW5kIHRyYW5zbGF0ZT5HZW5lcmljIGNvbG9yczwvbGVnZW5kPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLWItMzJcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIHRpdGxlPVwiYm9keS1iYWNrZ3JvdW5kLWNvbG9yXCJcbiAgICAgICAgICAgICAgICAgIGZvcj1cImJvZHktYmFja2dyb3VuZC1jb2xvclwiXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBCb2R5IGJhY2tncm91bmQgY29sb3JcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxjOHktY29sb3ItaW5wdXRcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJib2R5LWJhY2tncm91bmQtY29sb3JcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYm9keS1iYWNrZ3JvdW5kLWNvbG9yXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktY29sb3ItaW5wdXQ+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlcz48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cblxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLWItMzJcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIHRpdGxlPVwidGV4dC1jb2xvclwiXG4gICAgICAgICAgICAgICAgICBmb3I9XCJ0ZXh0LWNvbG9yXCJcbiAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIFRleHQgY29sb3JcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxjOHktY29sb3ItaW5wdXRcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0ZXh0LWNvbG9yXCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRleHQtY29sb3JcIlxuICAgICAgICAgICAgICAgID48L2M4eS1jb2xvci1pbnB1dD5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLWItMzJcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIHRpdGxlPVwidGV4dC1tdXRlZFwiXG4gICAgICAgICAgICAgICAgICBmb3I9XCJ0ZXh0LW11dGVkXCJcbiAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIFRleHQgbXV0ZWQgY29sb3JcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxjOHktY29sb3ItaW5wdXRcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0ZXh0LW11dGVkXCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRleHQtbXV0ZWRcIlxuICAgICAgICAgICAgICAgID48L2M4eS1jb2xvci1pbnB1dD5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPC9maWVsZHNldD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldCBwLTI0XCI+XG4gICAgICAgICAgICAgIDxsZWdlbmQgdHJhbnNsYXRlPkludGVyYWN0aXZlPC9sZWdlbmQ+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tYi0zMlwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJsaW5rLWNvbG9yXCJcbiAgICAgICAgICAgICAgICAgIGZvcj1cImxpbmstY29sb3JcIlxuICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgTGluayBjb2xvclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGM4eS1jb2xvci1pbnB1dFxuICAgICAgICAgICAgICAgICAgbmFtZT1cImxpbmstY29sb3JcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGluay1jb2xvclwiXG4gICAgICAgICAgICAgICAgPjwvYzh5LWNvbG9yLWlucHV0PlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXM+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tYi0zMlwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJsaW5rLWhvdmVyLWNvbG9yXCJcbiAgICAgICAgICAgICAgICAgIGZvcj1cImxpbmstaG92ZXItY29sb3JcIlxuICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgTGluayBob3ZlciBjb2xvclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGM4eS1jb2xvci1pbnB1dFxuICAgICAgICAgICAgICAgICAgbmFtZT1cImxpbmstaG92ZXItY29sb3JcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGluay1ob3Zlci1jb2xvclwiXG4gICAgICAgICAgICAgICAgPjwvYzh5LWNvbG9yLWlucHV0PlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXM+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tYi0zMlwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJidG4tYm9yZGVyLXJhZGl1cy1iYXNlXCJcbiAgICAgICAgICAgICAgICAgIGZvcj1cImJ0bi1ib3JkZXItcmFkaXVzLWJhc2VcIlxuICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgQnV0dG9uIGJvcmRlci1yYWRpdXNcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZS5nLiA0JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwiYnRuLWJvcmRlci1yYWRpdXMtYmFzZVwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImJ0bi1ib3JkZXItcmFkaXVzLWJhc2VcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlcyBbaGVscE1lc3NhZ2VdPVwiJ1ZhbHVlIGlzIGFwcGxpZWQgaW4gcHgnXCI+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPCEtLSBBY3Rpb24gYmFyIC0tPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBzZXBhcmF0b3ItdG9wXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMyBjb2wtbWQtMiBwLXQtMTZcIj5cbiAgICAgICAgPGg0XG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LW5vcm1hbCB0ZXh0LXJpZ2h0IHRleHQtbGVmdC14cyBtLWItMTZcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgZm9ybVN0cnVjdHVyZS5hY3Rpb25CYXIubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9oND5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tOSBjb2wtbWQtMTBcIj5cbiAgICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMjRcIiAqbmdGb3I9XCJsZXQgY29sb3JDb2x1bW4gb2YgZm9ybVN0cnVjdHVyZS5hY3Rpb25CYXIuY29sb3JDb2x1bW5zXCI+XG4gICAgICAgICAgPGxlZ2VuZD57eyBjb2xvckNvbHVtbi5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvbGVnZW5kPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiICpuZ0Zvcj1cImxldCBzdWJDb2xvckNvbHVtbiBvZiBjb2xvckNvbHVtbi5jb2xvckNvbHVtbnNcIj5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwibS1iLTMyXCIgKm5nRm9yPVwibGV0IGNvbG9yIG9mIHN1YkNvbG9yQ29sdW1uXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBjb2xvci5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGM4eS1jb2xvci1pbnB1dFxuICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jeV09XCInYnJhbmRpbmctdGhlbWUtZm9ybS1jb2xvci1pbnB1dC0nICsgY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktY29sb3ItaW5wdXQ+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlcz48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8IS0tIE1haW4gaGVhZGVyIC0tPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBzZXBhcmF0b3ItdG9wXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMyBjb2wtbWQtMiBwLXQtMTZcIj5cbiAgICAgICAgPGg0XG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LW5vcm1hbCB0ZXh0LXJpZ2h0IHRleHQtbGVmdC14cyBtLWItMTZcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgZm9ybVN0cnVjdHVyZS5tYWluSGVhZGVyLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvaDQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTkgY29sLW1kLTEwXCI+XG4gICAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldCBwLTI0XCIgKm5nRm9yPVwibGV0IGNvbG9yQ29sdW1uIG9mIGZvcm1TdHJ1Y3R1cmUubWFpbkhlYWRlci5jb2xvckNvbHVtbnNcIj5cbiAgICAgICAgICA8bGVnZW5kPnt7IGNvbG9yQ29sdW1uLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9sZWdlbmQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nRm9yPVwibGV0IHN1YkNvbG9yQ29sdW1uIG9mIGNvbG9yQ29sdW1uLmNvbG9yQ29sdW1uc1wiPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLWItMzJcIiAqbmdGb3I9XCJsZXQgY29sb3Igb2Ygc3ViQ29sb3JDb2x1bW5cIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgW2Zvcl09XCJjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGNvbG9yLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8Yzh5LWNvbG9yLWlucHV0XG4gICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWN5XT1cIidicmFuZGluZy10aGVtZS1mb3JtLWNvbG9yLWlucHV0LScgKyBjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgID48L2M4eS1jb2xvci1pbnB1dD5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDwhLS0gTmF2aWdhdG9yIC0tPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBzZXBhcmF0b3ItdG9wXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMyBjb2wtbWQtMiBwLXQtMTZcIj5cbiAgICAgICAgPGg0XG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LW5vcm1hbCB0ZXh0LXJpZ2h0IHRleHQtbGVmdC14cyBtLWItMTZcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgZm9ybVN0cnVjdHVyZS5uYXZpZ2F0b3IubGFiZWwgfX1cbiAgICAgICAgPC9oND5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tOSBjb2wtbWQtMTBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiICpuZ0Zvcj1cImxldCBjb2xvckNvbHVtbiBvZiBmb3JtU3RydWN0dXJlLm5hdmlnYXRvci5jb2xvckNvbHVtbnNcIj5cbiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldCBwLTI0XCI+XG4gICAgICAgICAgICAgIDxsZWdlbmQ+e3sgY29sb3JDb2x1bW4ubGFiZWwgfCB0cmFuc2xhdGUgfX08L2xlZ2VuZD5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwibS1iLTMyXCIgKm5nRm9yPVwibGV0IGNvbG9yIG9mIGNvbG9yQ29sdW1uLmNvbG9yc1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICBbZm9yXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgY29sb3IubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxjOHktY29sb3ItaW5wdXRcbiAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ2JyYW5kaW5nLXRoZW1lLWZvcm0tY29sb3ItaW5wdXQtJyArIGNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgPjwvYzh5LWNvbG9yLWlucHV0PlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXM+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPCEtLSBSaWdodCBkcmF3ZXIgLS0+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIHNlcGFyYXRvci10b3BcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zIGNvbC1tZC0yIHAtdC0xNlwiPlxuICAgICAgICA8aDRcbiAgICAgICAgICBjbGFzcz1cInRleHQtbm9ybWFsIHRleHQtcmlnaHQgdGV4dC1sZWZ0LXhzIG0tYi0xNlwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmb3JtU3RydWN0dXJlLnJpZ2h0RHJhd2VyLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvaDQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTkgY29sLW1kLTEwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiAqbmdGb3I9XCJsZXQgY29sb3JDb2x1bW4gb2YgZm9ybVN0cnVjdHVyZS5yaWdodERyYXdlci5jb2xvckNvbHVtbnNcIj5cbiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldCBwLTI0XCI+XG4gICAgICAgICAgICAgIDxsZWdlbmQ+e3sgY29sb3JDb2x1bW4ubGFiZWwgfCB0cmFuc2xhdGUgfX08L2xlZ2VuZD5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwibS1iLTMyXCIgKm5nRm9yPVwibGV0IGNvbG9yIG9mIGNvbG9yQ29sdW1uLmNvbG9yc1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICBbZm9yXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgY29sb3IubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxjOHktY29sb3ItaW5wdXRcbiAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ2JyYW5kaW5nLXRoZW1lLWZvcm0tY29sb3ItaW5wdXQtJyArIGNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgPjwvYzh5LWNvbG9yLWlucHV0PlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXM+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmRpbmctdGhlbWUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9icmFuZGluZy9zaGFyZWQvbGF6eS9icmFuZGluZy10aGVtZS1mb3JtL2JyYW5kaW5nLXRoZW1lLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vYnJhbmRpbmcvc2hhcmVkL2xhenkvYnJhbmRpbmctdGhlbWUtZm9ybS9icmFuZGluZy10aGVtZS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUF3QixXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEYsT0FBTyxFQUNMLEdBQUcsRUFDSCxvQkFBb0IsRUFDcEIsUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxJQUFJLEVBQ0wsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsVUFBVSxFQUNWLFlBQVksRUFDWixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNwQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEYsT0FBTyxFQUVMLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbkIsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQWMsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FB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SUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvRSxNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUQsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1FBQ2pGLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDN0MsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDOUIsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDO1lBQ2pDLENBQUM7UUFDSCxDQUFDO1FBQ0QsYUFBYSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsaUJBQWlCLENBQUM7UUFDckQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVPLFNBQVM7UUFDZixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDaEQsQ0FBQzs4R0FsS1UsMEJBQTBCO2tHQUExQiwwQkFBMEIsMkhDdEN2QyxtemlCQW1jQSwyQ0QvWlksVUFBVSxrNURBQUUsV0FBVywrQkFBRSwrQkFBK0I7OzJGQUV2RCwwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0UseUJBQXlCLGNBRXZCLElBQUksUUFDVixFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsV0FDcEIsQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLCtCQUErQixFQUFFLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQnVpbGRlciwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBtYXAsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBwYWlyd2lzZSxcbiAgZGVsYXksXG4gIHN3aXRjaE1hcCxcbiAgZmlsdGVyLFxuICBzdGFydFdpdGgsXG4gIHRha2Vcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQ29yZU1vZHVsZSxcbiAgRmlsZXNTZXJ2aWNlLFxuICBHRU5FUklDX0ZJTEVfVFlQRSxcbiAgVGhlbWVTd2l0Y2hlclNlcnZpY2UsXG4gIENvbG9ySW5wdXRDb21wb25lbnRcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgU3RhdGljQXNzZXRzRmlsZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvc3RhdGljLWFzc2V0cyc7XG5pbXBvcnQge1xuICBCcmFuZGluZ09wdGlvbnNKc29uLFxuICBCcmFuZGluZ1NoYWRlc1NlcnZpY2UsXG4gIGNyZWF0ZUJyYW5kaW5nRm9ybVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2JyYW5kaW5nL3NoYXJlZC9kYXRhJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGRlZmVyLCBpbnRlcnZhbCwgbWVyZ2UsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmb3JtU3RydWN0dXJlIH0gZnJvbSAnLi9icmFuZGluZy10aGVtZS1mb3JtLXN0cnVjdHVyZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1icmFuZGluZy10aGVtZS1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JyYW5kaW5nLXRoZW1lLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBob3N0OiB7IGNsYXNzOiAnZC1jb250ZW50cycgfSxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIEZvcm1zTW9kdWxlLCBTdGF0aWNBc3NldHNGaWxlUGlja2VyQ29tcG9uZW50LCBDb2xvcklucHV0Q29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBCcmFuZGluZ1RoZW1lRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3kge1xuICByZWFkb25seSBmb3JtU3RydWN0dXJlID0gZm9ybVN0cnVjdHVyZTtcbiAgZm9ybUdyb3VwOiBSZXR1cm5UeXBlPEJyYW5kaW5nVGhlbWVGb3JtQ29tcG9uZW50Wydpbml0Rm9ybSddPjtcbiAgaW1hZ2VGaWxlRXh0ZW5zaW9uczogc3RyaW5nW107XG4gIHJlc2V0U2hhZGVzQnV0dG9uRW5hYmxlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgZXh0ZXJuYWxWYWx1ZTogQnJhbmRpbmdPcHRpb25zSnNvbiA9IHt9O1xuICBwcml2YXRlIGZvcm1Hcm91cFZhbHVlQ2hhbmdlcyQ6IEJyYW5kaW5nVGhlbWVGb3JtQ29tcG9uZW50Wydmb3JtR3JvdXAnXVsndmFsdWVDaGFuZ2VzJ107XG4gIHByaXZhdGUgYWRkRGFya1RoZW1lUHJlZml4ID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgdmFyc1RvQ29udmVydFRvSGVpZ2h0ID0gW1xuICAgICduYXZpZ2F0b3ItcGxhdGZvcm0tbG9nby1oZWlnaHQnLFxuICAgICdkYXJrLW5hdmlnYXRvci1wbGF0Zm9ybS1sb2dvLWhlaWdodCdcbiAgXSBhcyBjb25zdDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGZpbGVzU2VydmljZTogRmlsZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnJhbmRpbmdTaGFkZXM6IEJyYW5kaW5nU2hhZGVzU2VydmljZSxcbiAgICBwcml2YXRlIHRoZW1lU3dpdGNoZXI6IFRoZW1lU3dpdGNoZXJTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuYWRkRGFya1RoZW1lUHJlZml4ID0gISF0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LmRhdGEuZGFyaztcbiAgICB0aGlzLnRoZW1lU3dpdGNoZXIudGVtcG9yYXJ5Q2hhbmdlVGhlbWUodGhpcy5hZGREYXJrVGhlbWVQcmVmaXggPyAnZGFyaycgOiAnbGlnaHQnKTtcbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuaW5pdEZvcm0oKTtcbiAgICB0aGlzLmZvcm1Hcm91cFZhbHVlQ2hhbmdlcyQgPSB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSk7XG4gICAgdGhpcy5pbWFnZUZpbGVFeHRlbnNpb25zID0gdGhpcy5maWxlc1NlcnZpY2VcbiAgICAgIC5tYXBHZW5lcmljRmlsZVR5cGVzVG9FeHRlbnNpb25zKFtHRU5FUklDX0ZJTEVfVFlQRS5JTUFHRV0pXG4gICAgICAuZmlsdGVyKGV4dCA9PiBleHQgIT09ICdpY28nKTtcblxuICAgIGNvbnN0IGhhc0N1c3RvbVNoYWRlcyQgPSBtZXJnZShcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcyxcbiAgICAgIGRlZmVyKCgpID0+IG9mKHRoaXMuZm9ybUdyb3VwLnZhbHVlKSlcbiAgICApLnBpcGUoXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgIG1hcCh0bXAgPT4gdGhpcy5icmFuZGluZ1NoYWRlcy5oYXNDdXN0b21TaGFkZXNTZXQodG1wWydicmFuZC1wcmltYXJ5J10sIHRtcCkpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICk7XG4gICAgdGhpcy5yZXNldFNoYWRlc0J1dHRvbkVuYWJsZWQkID0gbWVyZ2UoXG4gICAgICBkZWZlcigoKSA9PiBvZih0aGlzLmZvcm1Hcm91cC5jb250cm9sc1snYnJhbmQtcHJpbWFyeSddLnN0YXR1cykpLFxuICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbJ2JyYW5kLXByaW1hcnknXS5zdGF0dXNDaGFuZ2VzXG4gICAgKS5waXBlKFxuICAgICAgLy8gc3RhdHVzQ2hhbmdlcyBlbWl0cyAnUEVORElORycgd2hlbiB0aGUgZm9ybSBjb250cm9sIGlzIGFzeW5jIHZhbGlkYXRpbmdcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzQxNTE5XG4gICAgICBzd2l0Y2hNYXAoc3RhdHVzID0+IHtcbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gJ1BFTkRJTkcnKSB7XG4gICAgICAgICAgcmV0dXJuIGludGVydmFsKDIwMCkucGlwZShcbiAgICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1snYnJhbmQtcHJpbWFyeSddLnN0YXR1cyksXG4gICAgICAgICAgICBmaWx0ZXIoc3RhdCA9PiBzdGF0ICE9PSAnUEVORElORycpLFxuICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgIHN0YXJ0V2l0aChzdGF0dXMpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2Yoc3RhdHVzKTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKHN0YXR1cyA9PiB7XG4gICAgICAgIGlmIChzdGF0dXMgIT09ICdWQUxJRCcpIHtcbiAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoYXNDdXN0b21TaGFkZXMkO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgY29uc3QgYnJhbmRQcmltYXJ5Rm9ybUNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1snYnJhbmQtcHJpbWFyeSddO1xuICAgIGJyYW5kUHJpbWFyeUZvcm1Db250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihjb2xvciA9PiB0aGlzLmJyYW5kaW5nU2hhZGVzLmlzVmFsaWRTaGFkZUNvbG9yKGNvbG9yKSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBwYWlyd2lzZSgpLFxuICAgICAgICBkZWxheSg1KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoW3ByZXYsIGN1cnJdKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgaWYgKCF0aGlzLmJyYW5kaW5nU2hhZGVzLmhhc0N1c3RvbVNoYWRlc1NldChwcmV2LCB0aGlzLmZvcm1Hcm91cC52YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMucmVnZW5lcmF0ZVNoYWRlc0Jhc2VkT25QcmltYXJ5Q29sb3IoY3Vycik7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy50aGVtZVN3aXRjaGVyLnJlc2V0VGVtcG9yYXJ5VGhlbWUoKTtcbiAgfVxuXG4gIHJlZ2VuZXJhdGVTaGFkZXNCYXNlZE9uUHJpbWFyeUNvbG9yKGNvbG9yPzogc3RyaW5nKSB7XG4gICAgY29uc3QgbmV3U2hhZGVzID0gdGhpcy5icmFuZGluZ1NoYWRlcy5nZXRTaGFkZUNvbG9yQnJhbmRpbmdDc3NWYXJzKFxuICAgICAgY29sb3IgfHwgdGhpcy5mb3JtR3JvdXAudmFsdWVbJ2JyYW5kLXByaW1hcnknXVxuICAgICk7XG4gICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZShuZXdTaGFkZXMpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZShvYmo6IHN0cmluZyk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYXJzZWRPYmogPSBKU09OLnBhcnNlKG9iaik7XG4gICAgICB0aGlzLmV4dGVybmFsVmFsdWUgPSBwYXJzZWRPYmo7XG4gICAgICB0aGlzLmFwcGx5U3RhdGVUb0Zvcm0ocGFyc2VkT2JqKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBmYWlsZWQgdG8gcGFyc2VcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUdyb3VwVmFsdWVDaGFuZ2VzJC5zdWJzY3JpYmUodmFsdWUgPT4gZm4odGhpcy5jb252ZXJ0Rm9ybVRvU3RhdGUodmFsdWUpKSk7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBvbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIGluaXRGb3JtKCkge1xuICAgIHJldHVybiBjcmVhdGVCcmFuZGluZ0Zvcm0odGhpcy5mb3JtQnVpbGRlcik7XG4gIH1cblxuICBhcHBseVN0YXRlVG9Gb3JtKGJyYW5kaW5nOiBCcmFuZGluZ09wdGlvbnNKc29uKSB7XG4gICAgaWYgKCFicmFuZGluZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0b0JlUGF0Y2hlZCA9IHt9O1xuXG4gICAgY29uc3QgcHJlZml4ID0gdGhpcy5nZXRQcmVmaXgoKTtcbiAgICBPYmplY3QuZW50cmllcyhicmFuZGluZy5icmFuZGluZ0Nzc1ZhcnMgfHwge30pLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgaWYgKHByZWZpeCAmJiAha2V5LnN0YXJ0c1dpdGgocHJlZml4KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBrZXlJbkZvcm0gPSBrZXkucmVwbGFjZShwcmVmaXgsICcnKTtcbiAgICAgIGlmICh0aGlzLnZhcnNUb0NvbnZlcnRUb0hlaWdodC5pbmNsdWRlcyhrZXlJbkZvcm0gYXMgYW55KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRvQmVQYXRjaGVkW2tleUluRm9ybV0gPSBOdW1iZXIucGFyc2VJbnQodmFsdWUucmVwbGFjZSgvW2EtekEtWiVdLywgJycpIHx8ICcwJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRvQmVQYXRjaGVkW2tleUluRm9ybV0gPSB2YWx1ZTtcbiAgICB9KTtcbiAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHRvQmVQYXRjaGVkKTtcbiAgfVxuXG4gIGNvbnZlcnRGb3JtVG9TdGF0ZSh2YWx1ZTogQnJhbmRpbmdUaGVtZUZvcm1Db21wb25lbnRbJ2Zvcm1Hcm91cCddWyd2YWx1ZSddKTogc3RyaW5nIHtcbiAgICBjb25zdCBwcmVmaXhlZEJyYW5kaW5nQ3NzVmFycyA9IHt9O1xuICAgIGNvbnN0IHByZWZpeCA9IHRoaXMuZ2V0UHJlZml4KCk7XG4gICAgT2JqZWN0LmVudHJpZXModmFsdWUpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgcHJlZml4ZWRCcmFuZGluZ0Nzc1ZhcnNbYCR7cHJlZml4fSR7a2V5fWBdID0gdmFsdWU7XG4gICAgfSk7XG4gICAgY29uc3QgZXh0ZXJuYWxWYWx1ZTogQnJhbmRpbmdPcHRpb25zSnNvbiA9IGNsb25lRGVlcCh0aGlzLmV4dGVybmFsVmFsdWUgfHwge30pO1xuICAgIGNvbnN0IGN1cnJlbnRDU1NWYXJzID0gZXh0ZXJuYWxWYWx1ZVsnYnJhbmRpbmdDc3NWYXJzJ10gfHwge307XG4gICAgY29uc3QgYXNzaWduZWROZXdWYWx1ZXMgPSBPYmplY3QuYXNzaWduKGN1cnJlbnRDU1NWYXJzLCBwcmVmaXhlZEJyYW5kaW5nQ3NzVmFycyk7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy52YXJzVG9Db252ZXJ0VG9IZWlnaHQpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gYXNzaWduZWROZXdWYWx1ZXNba2V5XTtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIGFzc2lnbmVkTmV3VmFsdWVzW2tleV0gKz0gJ3B4JztcbiAgICAgIH1cbiAgICB9XG4gICAgZXh0ZXJuYWxWYWx1ZVsnYnJhbmRpbmdDc3NWYXJzJ10gPSBhc3NpZ25lZE5ld1ZhbHVlcztcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZXh0ZXJuYWxWYWx1ZSwgbnVsbCwgMik7XG4gIH1cblxuICBwcml2YXRlIGdldFByZWZpeCgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGREYXJrVGhlbWVQcmVmaXggPyAnZGFyay0nIDogJyc7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJpbm5lci1zY3JvbGxcIlxuICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4+XG4gIDwhLS0gICBMb2dvcyAtLT5cbiAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2tcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zIGNvbC1tZC0yIHAtdC0xNlwiPlxuICAgICAgICA8aDRcbiAgICAgICAgICBjbGFzcz1cInRleHQtbm9ybWFsIHRleHQtcmlnaHQgdGV4dC1sZWZ0LXhzIG0tYi0xNlwiXG4gICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgID5cbiAgICAgICAgICBMb2dvc1xuICAgICAgICA8L2g0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS05IGNvbC1tZC0xMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9XCJjOHktZmllbGRzZXQgcC0yNFwiPlxuICAgICAgICAgICAgICA8bGVnZW5kIHRyYW5zbGF0ZT5CcmFuZCBsb2dvPC9sZWdlbmQ+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tYi0zMlwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJicmFuZC1sb2dvLWltZ1wiXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBCcmFuZCBsb2dvIGZpbGVcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxjOHktc3RhdGljLWFzc2V0cy1maWxlLXBpY2tlclxuICAgICAgICAgICAgICAgICAgbmFtZT1cImJyYW5kLWxvZ28taW1nXCJcbiAgICAgICAgICAgICAgICAgIFtzdXBwb3J0ZWRGaWxlRXh0ZW5zaW9uc109XCJpbWFnZUZpbGVFeHRlbnNpb25zXCJcbiAgICAgICAgICAgICAgICAgIFtpc0NTU1VSTF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCIxNTBcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYnJhbmQtbG9nby1pbWdcIlxuICAgICAgICAgICAgICAgID48L2M4eS1zdGF0aWMtYXNzZXRzLWZpbGUtcGlja2VyPlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXMgW2hlbHBNZXNzYWdlXT1cIidTdXBwb3J0ZWQgZmlsZXM6ICoucG5nLCAqLnN2ZywgKi5qcGcnXCI+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tYi0zMlwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJicmFuZC1sb2dvLWltZy1oZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgZm9yPVwiYnJhbmQtbG9nby1pbWctaGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIEJyYW5kIGxvZ28gaGVpZ2h0XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwiYnJhbmQtbG9nby1pbWctaGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2UuZy4ge3sgZXhhbXBsZSB9fScgfCB0cmFuc2xhdGU6IHsgZXhhbXBsZTogJzUwJyB9IH19XCJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJicmFuZC1sb2dvLWltZy1oZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJicmFuZC1sb2dvLWltZy1oZWlnaHRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlcyBbaGVscE1lc3NhZ2VdPVwiJ1ZhbHVlIGlzIGFwcGxpZWQgaW4gcHgnXCI+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMjRcIj5cbiAgICAgICAgICAgICAgPGxlZ2VuZCB0cmFuc2xhdGU+TmF2aWdhdG9yIGxvZ288L2xlZ2VuZD5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwibS1iLTMyXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICB0aXRsZT1cIm5hdmlnYXRvci1wbGF0Zm9ybS1sb2dvXCJcbiAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIE5hdmlnYXRvciBsb2dvIGZpbGVcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxjOHktc3RhdGljLWFzc2V0cy1maWxlLXBpY2tlclxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm5hdmlnYXRvci1wbGF0Zm9ybS1sb2dvXCJcbiAgICAgICAgICAgICAgICAgIFtzdXBwb3J0ZWRGaWxlRXh0ZW5zaW9uc109XCJpbWFnZUZpbGVFeHRlbnNpb25zXCJcbiAgICAgICAgICAgICAgICAgIFtpc0NTU1VSTF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCIxNTBcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmF2aWdhdG9yLXBsYXRmb3JtLWxvZ29cIlxuICAgICAgICAgICAgICAgID48L2M4eS1zdGF0aWMtYXNzZXRzLWZpbGUtcGlja2VyPlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXMgW2hlbHBNZXNzYWdlXT1cIidTdXBwb3J0ZWQgZmlsZXM6ICoucG5nLCAqLnN2ZywgKi5qcGcnXCI+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tYi0zMlwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJuYXZpZ2F0b3ItcGxhdGZvcm0tbG9nby1oZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgZm9yPVwibmF2aWdhdG9yLXBsYXRmb3JtLWxvZ28taGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIE5hdmlnYXRvciBsb2dvIGhlaWdodFxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICBpZD1cIm5hdmlnYXRvci1wbGF0Zm9ybS1sb2dvLWhlaWdodFwiXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdlLmcuIHt7IGV4YW1wbGUgfX0nIHwgdHJhbnNsYXRlOiB7IGV4YW1wbGU6ICc1MCcgfSB9fVwiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwibmF2aWdhdG9yLXBsYXRmb3JtLWxvZ28taGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmF2aWdhdG9yLXBsYXRmb3JtLWxvZ28taGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXMgW2hlbHBNZXNzYWdlXT1cIidWYWx1ZSBpcyBhcHBsaWVkIGluIHB4J1wiPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPC9maWVsZHNldD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDwhLS0gIEJyYW5kIGNvbG9ycyAtLT5cbiAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgc2VwYXJhdG9yLXRvcFwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTMgY29sLW1kLTIgcC10LTE2XCI+XG4gICAgICAgIDxoNFxuICAgICAgICAgIGNsYXNzPVwidGV4dC1ub3JtYWwgdGV4dC1yaWdodCB0ZXh0LWxlZnQteHMgbS1iLTE2XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGZvcm1TdHJ1Y3R1cmUuYnJhbmRDb2xvcnMubGFiZWwgfCB0cmFuc2xhdGV9fVxuICAgICAgICA8L2g0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS05IGNvbC1tZC0xMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XG4gICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9XCJjOHktZmllbGRzZXQgcC0yNFwiPlxuICAgICAgICAgICAgICA8bGVnZW5kPnt7IGZvcm1TdHJ1Y3R1cmUuYnJhbmRDb2xvcnMuYnJhbmRDb2xvcnMubGFiZWwgfCB0cmFuc2xhdGV9fTwvbGVnZW5kPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLWItMzJcIiAqbmdGb3I9XCJsZXQgY29sb3Igb2YgZm9ybVN0cnVjdHVyZS5icmFuZENvbG9ycy5icmFuZENvbG9ycy5jb2xvcnNcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgW2Zvcl09XCJjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGNvbG9yLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8Yzh5LWNvbG9yLWlucHV0XG4gICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWN5XT1cIidicmFuZGluZy10aGVtZS1mb3JtLWNvbG9yLWlucHV0LScgKyBjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgID48L2M4eS1jb2xvci1pbnB1dD5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPC9maWVsZHNldD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLThcIj5cbiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldCBwLTI0XCI+XG4gICAgICAgICAgICAgIDxsZWdlbmQ+e3sgZm9ybVN0cnVjdHVyZS5icmFuZENvbG9ycy5zaGFkZXMubGFiZWwgfCB0cmFuc2xhdGUgfX08L2xlZ2VuZD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiICpuZ0Zvcj1cImxldCBjb2xvckNvbHVtbiBvZiBmb3JtU3RydWN0dXJlLmJyYW5kQ29sb3JzLnNoYWRlcy5jb2xvckNvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwibS1iLTMyXCIgKm5nRm9yPVwibGV0IGNvbG9yIG9mIGNvbG9yQ29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgIFtmb3JdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGNvbG9yLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxjOHktY29sb3ItaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWN5XT1cIidicmFuZGluZy10aGVtZS1mb3JtLWNvbG9yLWlucHV0LScgKyBjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYzh5LWNvbG9yLWlucHV0PlxuICAgICAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tc21cIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGRhdGEtY3k9XCJicmFuZGluZy1yZXNldC1zaGFkZXMtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVnZW5lcmF0ZVNoYWRlc0Jhc2VkT25QcmltYXJ5Q29sb3IoKVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiEocmVzZXRTaGFkZXNCdXR0b25FbmFibGVkJCB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aSBbYzh5SWNvbl09XCIncmVzZXQnXCI+PC9pPlxuICAgICAgICAgICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5SZXNldCBzaGFkZXM8L3NwYW4+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9maWVsZHNldD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDwhLS0gU3RhdHVzIGNvbG9ycyAtLT5cbiAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgc2VwYXJhdG9yLXRvcFwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTMgY29sLW1kLTIgcC10LTE2XCI+XG4gICAgICAgIDxoNFxuICAgICAgICAgIGNsYXNzPVwidGV4dC1ub3JtYWwgdGV4dC1yaWdodCB0ZXh0LWxlZnQteHMgbS1iLTE2XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGZvcm1TdHJ1Y3R1cmUuc3RhdHVzQ29sb3JzLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvaDQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTkgY29sLW1kLTEwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiAqbmdGb3I9XCJsZXQgc3ViQ2F0ZWdvcnkgb2YgZm9ybVN0cnVjdHVyZS5zdGF0dXNDb2xvcnMuc3ViQ2F0ZWdvcmllc1wiPlxuICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMjRcIj5cbiAgICAgICAgICAgICAgPGxlZ2VuZD57eyBzdWJDYXRlZ29yeS5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvbGVnZW5kPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLWItMzJcIiAqbmdGb3I9XCJsZXQgY29sb3Igb2Ygc3ViQ2F0ZWdvcnkuY29sb3JzXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBjb2xvci5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGM4eS1jb2xvci1pbnB1dFxuICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jeV09XCInYnJhbmRpbmctdGhlbWUtZm9ybS1jb2xvci1pbnB1dC0nICsgY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktY29sb3ItaW5wdXQ+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlcz48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8IS0tIEdlbmVyaWMgLS0+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIHNlcGFyYXRvci10b3BcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zIGNvbC1tZC0yIHAtdC0xNlwiPlxuICAgICAgICA8aDRcbiAgICAgICAgICBjbGFzcz1cInRleHQtbm9ybWFsIHRleHQtcmlnaHQgdGV4dC1sZWZ0LXhzIG0tYi0xNlwiXG4gICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgID5cbiAgICAgICAgICBHZW5lcmljXG4gICAgICAgIDwvaDQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTkgY29sLW1kLTEwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldCBwLTI0XCI+XG4gICAgICAgICAgICAgIDxsZWdlbmQgdHJhbnNsYXRlPkdlbmVyaWMgY29sb3JzPC9sZWdlbmQ+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tYi0zMlwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJib2R5LWJhY2tncm91bmQtY29sb3JcIlxuICAgICAgICAgICAgICAgICAgZm9yPVwiYm9keS1iYWNrZ3JvdW5kLWNvbG9yXCJcbiAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIEJvZHkgYmFja2dyb3VuZCBjb2xvclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGM4eS1jb2xvci1pbnB1dFxuICAgICAgICAgICAgICAgICAgbmFtZT1cImJvZHktYmFja2dyb3VuZC1jb2xvclwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJib2R5LWJhY2tncm91bmQtY29sb3JcIlxuICAgICAgICAgICAgICAgID48L2M4eS1jb2xvci1pbnB1dD5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuXG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tYi0zMlwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJ0ZXh0LWNvbG9yXCJcbiAgICAgICAgICAgICAgICAgIGZvcj1cInRleHQtY29sb3JcIlxuICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgVGV4dCBjb2xvclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGM4eS1jb2xvci1pbnB1dFxuICAgICAgICAgICAgICAgICAgbmFtZT1cInRleHQtY29sb3JcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGV4dC1jb2xvclwiXG4gICAgICAgICAgICAgICAgPjwvYzh5LWNvbG9yLWlucHV0PlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXM+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tYi0zMlwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJ0ZXh0LW11dGVkXCJcbiAgICAgICAgICAgICAgICAgIGZvcj1cInRleHQtbXV0ZWRcIlxuICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgVGV4dCBtdXRlZCBjb2xvclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGM4eS1jb2xvci1pbnB1dFxuICAgICAgICAgICAgICAgICAgbmFtZT1cInRleHQtbXV0ZWRcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGV4dC1tdXRlZFwiXG4gICAgICAgICAgICAgICAgPjwvYzh5LWNvbG9yLWlucHV0PlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXM+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMjRcIj5cbiAgICAgICAgICAgICAgPGxlZ2VuZCB0cmFuc2xhdGU+SW50ZXJhY3RpdmU8L2xlZ2VuZD5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwibS1iLTMyXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICB0aXRsZT1cImxpbmstY29sb3JcIlxuICAgICAgICAgICAgICAgICAgZm9yPVwibGluay1jb2xvclwiXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBMaW5rIGNvbG9yXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8Yzh5LWNvbG9yLWlucHV0XG4gICAgICAgICAgICAgICAgICBuYW1lPVwibGluay1jb2xvclwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsaW5rLWNvbG9yXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktY29sb3ItaW5wdXQ+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlcz48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwibS1iLTMyXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICB0aXRsZT1cImxpbmstaG92ZXItY29sb3JcIlxuICAgICAgICAgICAgICAgICAgZm9yPVwibGluay1ob3Zlci1jb2xvclwiXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBMaW5rIGhvdmVyIGNvbG9yXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8Yzh5LWNvbG9yLWlucHV0XG4gICAgICAgICAgICAgICAgICBuYW1lPVwibGluay1ob3Zlci1jb2xvclwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsaW5rLWhvdmVyLWNvbG9yXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktY29sb3ItaW5wdXQ+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlcz48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwibS1iLTMyXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICB0aXRsZT1cImJ0bi1ib3JkZXItcmFkaXVzLWJhc2VcIlxuICAgICAgICAgICAgICAgICAgZm9yPVwiYnRuLWJvcmRlci1yYWRpdXMtYmFzZVwiXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBCdXR0b24gYm9yZGVyLXJhZGl1c1xuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdlLmcuIDQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJidG4tYm9yZGVyLXJhZGl1cy1iYXNlXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYnRuLWJvcmRlci1yYWRpdXMtYmFzZVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzIFtoZWxwTWVzc2FnZV09XCInVmFsdWUgaXMgYXBwbGllZCBpbiBweCdcIj48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8IS0tIEFjdGlvbiBiYXIgLS0+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIHNlcGFyYXRvci10b3BcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zIGNvbC1tZC0yIHAtdC0xNlwiPlxuICAgICAgICA8aDRcbiAgICAgICAgICBjbGFzcz1cInRleHQtbm9ybWFsIHRleHQtcmlnaHQgdGV4dC1sZWZ0LXhzIG0tYi0xNlwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmb3JtU3RydWN0dXJlLmFjdGlvbkJhci5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2g0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS05IGNvbC1tZC0xMFwiPlxuICAgICAgICA8ZmllbGRzZXQgY2xhc3M9XCJjOHktZmllbGRzZXQgcC0yNFwiICpuZ0Zvcj1cImxldCBjb2xvckNvbHVtbiBvZiBmb3JtU3RydWN0dXJlLmFjdGlvbkJhci5jb2xvckNvbHVtbnNcIj5cbiAgICAgICAgICA8bGVnZW5kPnt7IGNvbG9yQ29sdW1uLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9sZWdlbmQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nRm9yPVwibGV0IHN1YkNvbG9yQ29sdW1uIG9mIGNvbG9yQ29sdW1uLmNvbG9yQ29sdW1uc1wiPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLWItMzJcIiAqbmdGb3I9XCJsZXQgY29sb3Igb2Ygc3ViQ29sb3JDb2x1bW5cIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgW2Zvcl09XCJjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGNvbG9yLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8Yzh5LWNvbG9yLWlucHV0XG4gICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWN5XT1cIidicmFuZGluZy10aGVtZS1mb3JtLWNvbG9yLWlucHV0LScgKyBjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgID48L2M4eS1jb2xvci1pbnB1dD5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDwhLS0gTWFpbiBoZWFkZXIgLS0+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIHNlcGFyYXRvci10b3BcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zIGNvbC1tZC0yIHAtdC0xNlwiPlxuICAgICAgICA8aDRcbiAgICAgICAgICBjbGFzcz1cInRleHQtbm9ybWFsIHRleHQtcmlnaHQgdGV4dC1sZWZ0LXhzIG0tYi0xNlwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmb3JtU3RydWN0dXJlLm1haW5IZWFkZXIubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9oND5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tOSBjb2wtbWQtMTBcIj5cbiAgICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMjRcIiAqbmdGb3I9XCJsZXQgY29sb3JDb2x1bW4gb2YgZm9ybVN0cnVjdHVyZS5tYWluSGVhZGVyLmNvbG9yQ29sdW1uc1wiPlxuICAgICAgICAgIDxsZWdlbmQ+e3sgY29sb3JDb2x1bW4ubGFiZWwgfCB0cmFuc2xhdGUgfX08L2xlZ2VuZD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiAqbmdGb3I9XCJsZXQgc3ViQ29sb3JDb2x1bW4gb2YgY29sb3JDb2x1bW4uY29sb3JDb2x1bW5zXCI+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tYi0zMlwiICpuZ0Zvcj1cImxldCBjb2xvciBvZiBzdWJDb2xvckNvbHVtblwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICBbZm9yXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgY29sb3IubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxjOHktY29sb3ItaW5wdXRcbiAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ2JyYW5kaW5nLXRoZW1lLWZvcm0tY29sb3ItaW5wdXQtJyArIGNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgPjwvYzh5LWNvbG9yLWlucHV0PlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXM+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9maWVsZHNldD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPCEtLSBOYXZpZ2F0b3IgLS0+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIHNlcGFyYXRvci10b3BcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zIGNvbC1tZC0yIHAtdC0xNlwiPlxuICAgICAgICA8aDRcbiAgICAgICAgICBjbGFzcz1cInRleHQtbm9ybWFsIHRleHQtcmlnaHQgdGV4dC1sZWZ0LXhzIG0tYi0xNlwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmb3JtU3RydWN0dXJlLm5hdmlnYXRvci5sYWJlbCB9fVxuICAgICAgICA8L2g0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS05IGNvbC1tZC0xMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCIgKm5nRm9yPVwibGV0IGNvbG9yQ29sdW1uIG9mIGZvcm1TdHJ1Y3R1cmUubmF2aWdhdG9yLmNvbG9yQ29sdW1uc1wiPlxuICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMjRcIj5cbiAgICAgICAgICAgICAgPGxlZ2VuZD57eyBjb2xvckNvbHVtbi5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvbGVnZW5kPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLWItMzJcIiAqbmdGb3I9XCJsZXQgY29sb3Igb2YgY29sb3JDb2x1bW4uY29sb3JzXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBjb2xvci5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGM4eS1jb2xvci1pbnB1dFxuICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jeV09XCInYnJhbmRpbmctdGhlbWUtZm9ybS1jb2xvci1pbnB1dC0nICsgY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktY29sb3ItaW5wdXQ+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlcz48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8IS0tIFJpZ2h0IGRyYXdlciAtLT5cbiAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgc2VwYXJhdG9yLXRvcFwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTMgY29sLW1kLTIgcC10LTE2XCI+XG4gICAgICAgIDxoNFxuICAgICAgICAgIGNsYXNzPVwidGV4dC1ub3JtYWwgdGV4dC1yaWdodCB0ZXh0LWxlZnQteHMgbS1iLTE2XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGZvcm1TdHJ1Y3R1cmUucmlnaHREcmF3ZXIubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9oND5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tOSBjb2wtbWQtMTBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiICpuZ0Zvcj1cImxldCBjb2xvckNvbHVtbiBvZiBmb3JtU3RydWN0dXJlLnJpZ2h0RHJhd2VyLmNvbG9yQ29sdW1uc1wiPlxuICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMjRcIj5cbiAgICAgICAgICAgICAgPGxlZ2VuZD57eyBjb2xvckNvbHVtbi5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvbGVnZW5kPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLWItMzJcIiAqbmdGb3I9XCJsZXQgY29sb3Igb2YgY29sb3JDb2x1bW4uY29sb3JzXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBjb2xvci5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGM4eS1jb2xvci1pbnB1dFxuICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jeV09XCInYnJhbmRpbmctdGhlbWUtZm9ybS1jb2xvci1pbnB1dC0nICsgY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktY29sb3ItaW5wdXQ+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlcz48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -103,8 +103,9 @@ export class BootstrapComponent {
103
103
  // Remotes in the URL are used in the development process.
104
104
  let remotes = PluginsResolveService.mergeRemotes([
105
105
  selfRemotes,
106
- this.options?.remotes,
107
- config?.remotes,
106
+ // if the config remotes are not present we fall back to the application remotes
107
+ config?.remotes || this.options?.remotes || {},
108
+ // url remotes should always be loaded
108
109
  this.pluginsResolve.loadUrlRemotes()
109
110
  ]);
110
111
  // remove remotes that are on the exclude list
@@ -164,4 +165,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
164
165
  type: Component,
165
166
  args: [{ selector: 'c8y-bootstrap', template: "<c8y-message-banner\n *ngIf=\"!(showLogin$ | async)\"\n class=\"c8y-message-banner\"\n></c8y-message-banner>\n<c8y-login *ngIf=\"showLogin$ | async\"></c8y-login>\n\n<div\n class=\"init-load\"\n *ngIf=\"showLoadingIndicator$ | async\"\n>\n <div class=\"spinner-snake\"></div>\n <div class=\"mainlogo-placeholder mainlogo\"></div>\n</div>\n\n<div\n [class.head-open]=\"headerService.headerOpen\"\n *ngIf=\"showMainView$ | async\"\n>\n <c8y-header-bar\n *ngIf=\"!headerService.hideHeader\"\n #header\n ></c8y-header-bar>\n <c8y-drawer-outlet\n [tabindex]=\"(headerService.navigatorOpen$ | async) ? '0' : '-1'\"\n role=\"region\"\n position=\"left\"\n data-cy=\"bootstrap.template--c8y-drawer-outlet\"\n [open]=\"headerService.navigatorOpen$ | async\"\n ></c8y-drawer-outlet>\n\n <div class=\"alerts\">\n <c8y-alert-outlet></c8y-alert-outlet>\n </div>\n <c8y-tabs-outlet\n role=\"navigation\"\n #tabsComponent\n [tabs]=\"tabs.items$ | async\"\n [hasHeader]=\"tabsComponent.hasHeader\"\n [navigatorOpen]=\"headerService.navigatorOpen$ | async\"\n [orientation]=\"tabs.orientation$ | async\"\n ></c8y-tabs-outlet>\n <c8y-action-bar\n role=\"group\"\n #actionBarComponent\n [navigatorOpen]=\"headerService.navigatorOpen$ | async\"\n [hasTabs]=\"tabsComponent.hasTabs\"\n [hasHeader]=\"tabsComponent.hasHeader\"\n [isTabsHorizontal]=\"tabsComponent?.isHorizontal\"\n [items$]=\"actionBar.items$\"\n ></c8y-action-bar>\n\n <div\n class=\"mcontainer\"\n [ngClass]=\"{\n open: headerService.navigatorOpen$ | async,\n 'no-apps-margin': noAppsMargin$ | async,\n 'horizontal-tabs': tabsComponent.isHorizontal,\n 'vertical-tabs': !tabsComponent.isHorizontal,\n 'has-tabs': tabsComponent.hasTabs,\n 'has-action-bar': !actionBarComponent?.hidden,\n 'has-header': headerService.hideHeader\n }\"\n >\n <main\n class=\"container-fluid\"\n id=\"main-content\"\n tabindex=\"-1\"\n >\n <router-outlet></router-outlet>\n <ng-content select=\"#c8y-legacy-view\"></ng-content>\n <!-- legacy ng-view, will not be migrated atm -->\n </main>\n </div>\n</div>\n\n<div *ngIf=\"showSetup$ | async\">\n <c8y-header-bar\n *ngIf=\"!headerService.hideHeader\"\n [simple]=\"true\"\n ></c8y-header-bar>\n <div class=\"alerts\">\n <c8y-alert-outlet></c8y-alert-outlet>\n </div>\n <div\n class=\"mcontainer\"\n role=\"main\"\n >\n <div class=\"container-fluid\">\n <c8y-setup></c8y-setup>\n </div>\n </div>\n</div>\n\n<c8y-cookie-banner></c8y-cookie-banner>\n" }]
166
167
  }], ctorParameters: () => [{ type: i1.TabsService }, { type: i2.AppStateService }, { type: i3.NavigatorService }, { type: i4.ActionBarService }, { type: i5.HeaderService }, { type: i6.OptionsService }, { type: i7.PluginsResolveService }, { type: i8.SetupService }, { type: i9.LoginService }, { type: i10.TranslationLoaderService }] });
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvYm9vdHN0cmFwL2Jvb3RzdHJhcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2Jvb3RzdHJhcC9ib290c3RyYXAudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQWMsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUQsT0FBTyxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUUzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztB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SUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDeEMsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsRUFBRSxDQUFDLHdCQUF3QjthQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsQ0FBQyxNQUFxQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFTywyQkFBMkI7UUFDakMsb0VBQW9FO1FBQ3BFLElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM1QyxDQUFDOzhHQWhLVSxrQkFBa0I7a0dBQWxCLGtCQUFrQixxRENyQi9CLDhqRkE4RkE7OzJGRHpFYSxrQkFBa0I7a0JBSjlCLFNBQVM7K0JBQ0UsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucyB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFjdGlvbkJhclNlcnZpY2UgfSBmcm9tICcuLi9hY3Rpb24tYmFyL2FjdGlvbi1iYXIuc2VydmljZSc7XG5pbXBvcnQgeyBPcHRpb25zU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9vcHRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3VpLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGVhZGVyU2VydmljZSB9IGZyb20gJy4uL2hlYWRlci9oZWFkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBOYXZpZ2F0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vbmF2aWdhdG9yL25hdmlnYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFBsdWdpbnNSZXNvbHZlU2VydmljZSB9IGZyb20gJy4uL3BsdWdpbnMvcGx1Z2lucy1yZXNvbHZlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGx1Z2luc0NvbmZpZyB9IGZyb20gJy4uL3BsdWdpbnMvcGx1Z2lucy5tb2RlbCc7XG5pbXBvcnQgeyBTZXR1cFNlcnZpY2UgfSBmcm9tICcuLi9zZXR1cC9zZXR1cC5zZXJ2aWNlJztcbmltcG9ydCB7IFRhYnNTZXJ2aWNlIH0gZnJvbSAnLi4vdGFicy90YWJzLnNlcnZpY2UnO1xuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uTG9hZGVyU2VydmljZSB9IGZyb20gJy4uL2kxOG4vdHJhbnNsYXRpb24tbG9hZGVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktYm9vdHN0cmFwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Jvb3RzdHJhcC50ZW1wbGF0ZS5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBCb290c3RyYXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gIG5hdmlnYXRvck9wZW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBub0FwcHNNYXJnaW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICB0YWJzT3JpZW50YXRpb246IHN0cmluZztcbiAgc2hvd1Bvd2VyZWRCeSA9IHRydWU7XG4gIHNob3dMb2dpbiQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHNob3dMb2FkaW5nSW5kaWNhdG9yJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgc2hvd01haW5WaWV3JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgc2hvd1NldHVwJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgbG9hZGVkUmVtb3Rlc0NvbnRleHRQYXRoQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgYm9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdGFiczogVGFic1NlcnZpY2UsXG4gICAgcHVibGljIHVpOiBBcHBTdGF0ZVNlcnZpY2UsXG4gICAgcHVibGljIG5hdmlnYXRvcjogTmF2aWdhdG9yU2VydmljZSxcbiAgICBwdWJsaWMgYWN0aW9uQmFyOiBBY3Rpb25CYXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBoZWFkZXJTZXJ2aWNlOiBIZWFkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgb3B0aW9uczogT3B0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBwbHVnaW5zUmVzb2x2ZTogUGx1Z2luc1Jlc29sdmVTZXJ2aWNlLFxuICAgIHB1YmxpYyBzZXR1cFNlcnZpY2U6IFNldHVwU2VydmljZSxcbiAgICBwdWJsaWMgbG9naW5TZXJ2aWNlOiBMb2dpblNlcnZpY2UsXG4gICAgLy8gb25seSBoZXJlIHRvIGVuc3VyZSB0aGUgc2VydmljZSBpcyBpbnN0YW50aWF0ZWRcbiAgICBwdWJsaWMgdHJhbnNsYXRpb25Mb2FkZXJTZXJ2aWNlOiBUcmFuc2xhdGlvbkxvYWRlclNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5ub0FwcHNNYXJnaW4kID0gdGhpcy5oZWFkZXJTZXJ2aWNlLm1hcCgoeyBuYXYgfSkgPT4gIW5hdi5vcGVuICYmIG5hdi5oaWRkZW5PblN0YXJ0dXApO1xuICAgIHRoaXMudGFic09yaWVudGF0aW9uID0gdGhpcy5vcHRpb25zLnRhYnNIb3Jpem9udGFsID8gJ2hvcml6b250YWwnIDogJ3ZlcnRpY2FsJztcbiAgICB0aGlzLnVpXG4gICAgICAubWFwKCh7IGxhbmcgfSkgPT4gbGFuZylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmFjdGlvbkJhci5yZWZyZXNoKCk7XG4gICAgICB9KTtcbiAgICB0aGlzLnNob3dQb3dlcmVkQnkgPSAhdGhpcy5vcHRpb25zLmdldCgnaGlkZVBvd2VyZWQnKTtcbiAgICBjb25zdCBub0xvZ2luJCA9IG9mKHRoaXMub3B0aW9ucy5nZXQoJ25vTG9naW4nLCBmYWxzZSkpO1xuICAgIHRoaXMuc2hvd0xvZ2luJCA9IGNvbWJpbmVMYXRlc3QoW25vTG9naW4kLCB0aGlzLnVpLmN1cnJlbnRVc2VyXSkucGlwZShcbiAgICAgIG1hcCgoW25vTG9naW4sIGN1cnJlbnRVc2VyXSkgPT4gIW5vTG9naW4gJiYgIWN1cnJlbnRVc2VyKVxuICAgICk7XG4gICAgdGhpcy5zaG93TG9hZGluZ0luZGljYXRvciQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIG5vTG9naW4kLFxuICAgICAgdGhpcy51aS5jdXJyZW50VXNlcixcbiAgICAgIHRoaXMubG9naW5TZXJ2aWNlLmF1dG9tYXRpY0xvZ2luSW5Qcm9ncmVzcyQsXG4gICAgICB0aGlzLnBsdWdpbnNSZXNvbHZlLmFsbFBsdWdpbnNMb2FkZWQkXG4gICAgXSkucGlwZShcbiAgICAgIGRlbGF5KDApLCAvLyBkZWxheSB0byBhdm9pZCBFeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2tlZEVycm9yXG4gICAgICBtYXAoXG4gICAgICAgIChbbm9Mb2dpbiwgY3VycmVudFVzZXIsIGF1dG9tYXRpY0xvZ2luSW5Qcm9ncmVzcywgYWxsUGx1Z2luc0xvYWRlZF0pID0+XG4gICAgICAgICAgKCFub0xvZ2luICYmIGF1dG9tYXRpY0xvZ2luSW5Qcm9ncmVzcykgfHwgKGN1cnJlbnRVc2VyICYmICFhbGxQbHVnaW5zTG9hZGVkKVxuICAgICAgKSxcbiAgICAgIHN0YXJ0V2l0aCh0cnVlKVxuICAgICk7XG4gICAgdGhpcy5zaG93TWFpblZpZXckID0gbm9Mb2dpbiQucGlwZShcbiAgICAgIHN3aXRjaE1hcChub0xvZ2luID0+IHtcbiAgICAgICAgaWYgKG5vTG9naW4pIHtcbiAgICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgIHRoaXMudWkuY3VycmVudFVzZXIsXG4gICAgICAgICAgdGhpcy5zZXR1cFNlcnZpY2UuaXNTZXR1cE5lZWRlZCQsXG4gICAgICAgICAgdGhpcy5wbHVnaW5zUmVzb2x2ZS5hbGxQbHVnaW5zTG9hZGVkJFxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgIG1hcCgoW2N1cnJlbnRVc2VyLCBpc1NldHVwTmVlZGVkLCBhbGxQbHVnaW5zTG9hZGVkXSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRVc2VyICYmICFpc1NldHVwTmVlZGVkICYmIGFsbFBsdWdpbnNMb2FkZWQ7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnNob3dTZXR1cCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnVpLmN1cnJlbnRVc2VyLCB0aGlzLnNldHVwU2VydmljZS5pc1NldHVwTmVlZGVkJF0pLnBpcGUoXG4gICAgICBtYXAoKFtjdXJyZW50VXNlciwgaXNTZXR1cE5lZWRlZF0pID0+IGN1cnJlbnRVc2VyICYmIGlzU2V0dXBOZWVkZWQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc3Vic2NyaWJlVG9Mb2FkUmVtb3RlcygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZW1vdGVzKGNvbmZpZzogUGx1Z2luc0NvbmZpZyk6IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucyB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IHNlbGZSZW1vdGVzOiBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnM7XG5cbiAgICAvLyBXZSBuZWVkIHRvIGltcG9ydCB0aGUgc2VsZiBpbXBvcnRzLCBhcyB0aGlzIGFwcCBpcyBub3QgY29uZmlndXJlZCBhdCBhbGxcbiAgICBpZiAodGhpcy5vcHRpb25zPy5leHBvcnRzKSB7XG4gICAgICBjb25zdCBzZWxmTW9kdWxlTmFtZXM6IHN0cmluZ1tdID0gdGhpcy5vcHRpb25zLmV4cG9ydHNcbiAgICAgICAgLmZpbHRlcihwbHVnaW4gPT4gcGx1Z2luLnNjb3BlID09PSAnc2VsZicpXG4gICAgICAgIC5tYXAocGx1Z2luID0+IHBsdWdpbi5tb2R1bGUgfHwgcGx1Z2luLm5hbWUpO1xuICAgICAgc2VsZlJlbW90ZXMgPSB7IFt0aGlzLm9wdGlvbnMuY29udGV4dFBhdGhdOiBzZWxmTW9kdWxlTmFtZXMgfTtcbiAgICB9XG5cbiAgICAvLyBNZXJnZSBwbHVnaW5zIGNvbmZpZyByZW1vdGVzIGFuZCByZW1vdGVzIHBhc3NlZCBpbiB0aGUgVVJMLlxuICAgIC8vIFJlbW90ZXMgaW4gdGhlIFVSTCBhcmUgdXNlZCBpbiB0aGUgZGV2ZWxvcG1lbnQgcHJvY2Vzcy5cbiAgICBsZXQgcmVtb3RlcyA9IFBsdWdpbnNSZXNvbHZlU2VydmljZS5tZXJnZVJlbW90ZXMoW1xuICAgICAgc2VsZlJlbW90ZXMsXG4gICAgICB0aGlzLm9wdGlvbnM/LnJlbW90ZXMsXG4gICAgICBjb25maWc/LnJlbW90ZXMsXG4gICAgICB0aGlzLnBsdWdpbnNSZXNvbHZlLmxvYWRVcmxSZW1vdGVzKClcbiAgICBdKTtcblxuICAgIC8vIHJlbW92ZSByZW1vdGVzIHRoYXQgYXJlIG9uIHRoZSBleGNsdWRlIGxpc3RcbiAgICByZW1vdGVzID0gUGx1Z2luc1Jlc29sdmVTZXJ2aWNlLnJlbW92ZVJlbW90ZXMocmVtb3RlcywgY29uZmlnPy5leGNsdWRlZFJlbW90ZXMpO1xuXG4gICAgLy8gQmxvY2sgdGhlIHBvc3NpYmlsaXR5IG9mIGxvYWRpbmcgcGx1Z2lucyBtdWx0aXBsZSB0aW1lcy5cbiAgICBPYmplY3Qua2V5cyhyZW1vdGVzIHx8IHt9KS5mb3JFYWNoKGNvbnRleHRQYXRoID0+IHtcbiAgICAgIGlmICh0aGlzLmxvYWRlZFJlbW90ZXNDb250ZXh0UGF0aENhY2hlLmdldChjb250ZXh0UGF0aCkpIHtcbiAgICAgICAgZGVsZXRlIHJlbW90ZXNbY29udGV4dFBhdGhdO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBpc0VtcHR5KHJlbW90ZXMpID8gdW5kZWZpbmVkIDogcmVtb3RlcztcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZFJlbW90ZXMocmVtb3RlczogQXBwbGljYXRpb25SZW1vdGVQbHVnaW5zKSB7XG4gICAgaWYgKCFyZW1vdGVzKSB7XG4gICAgICB0aGlzLmVuc3VyZVdlTWFya1BsdWdpbnNBc0xvYWRlZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZW1vdGVNb2R1bGVzID0gYXdhaXQgdGhpcy5wbHVnaW5zUmVzb2x2ZS5sb2FkUmVtb3RlcyhyZW1vdGVzKTtcblxuICAgIC8vIENhY2hlIGxvYWRlZCByZW1vdGVzLlxuICAgIE9iamVjdC5rZXlzKHJlbW90ZXMpLmZvckVhY2goY29udGV4dFBhdGggPT5cbiAgICAgIHRoaXMubG9hZGVkUmVtb3Rlc0NvbnRleHRQYXRoQ2FjaGUuc2V0KGNvbnRleHRQYXRoLCB0cnVlKVxuICAgICk7XG5cbiAgICBpZiAocmVtb3RlTW9kdWxlcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMucGx1Z2luc1Jlc29sdmUucmVzb2x2ZVJlbW90ZVBsdWdpbnMocmVtb3RlTW9kdWxlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGluIGNhc2UgbG9hZGluZyBhbGwgbW9kdWxlcyB2aWEgcGx1Z2luc1Jlc29sdmUubG9hZFJlbW90ZXMgZmFpbGVkXG4gICAgICAvLyAoZS5nLiBhbGwgcGx1Z2lucyB0aGF0IHdlcmUgaW5zdGFsbGVkIGhhdmUgYmVlbiBkZWxldGVkIGZyb20gdGhlIHRlbmFudClcbiAgICAgIC8vIHdlIHN0aWxsIG5lZWQgdG8gbWFyayBsb2FkaW5nIHRoZSBwbHVnaW5zIGFzIHN1Y2Nlc3NmdWwuXG4gICAgICB0aGlzLmVuc3VyZVdlTWFya1BsdWdpbnNBc0xvYWRlZCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9Mb2FkUmVtb3RlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLmdldCgnbm9QbHVnaW5zJywgZmFsc2UpKSB7XG4gICAgICB0aGlzLmVuc3VyZVdlTWFya1BsdWdpbnNBc0xvYWRlZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMuZ2V0KCdmb3JjZVVybFJlbW90ZXMnLCBmYWxzZSkpIHtcbiAgICAgIGNvbnN0IHJlbW90ZXMgPSB0aGlzLnBsdWdpbnNSZXNvbHZlLmxvYWRVcmxSZW1vdGVzKCk7XG4gICAgICB0aGlzLmxvYWRSZW1vdGVzKHJlbW90ZXMpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMuZ2V0KCdub0xvZ2luJywgZmFsc2UpKSB7XG4gICAgICB0aGlzLmxvYWRSZW1vdGVzKHRoaXMuZ2V0UmVtb3RlcyhudWxsKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy51aS5jdXJyZW50QXBwbGljYXRpb25Db25maWdcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNvbmZpZzogUGx1Z2luc0NvbmZpZykgPT4gdGhpcy5sb2FkUmVtb3Rlcyh0aGlzLmdldFJlbW90ZXMoY29uZmlnKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbnN1cmVXZU1hcmtQbHVnaW5zQXNMb2FkZWQoKTogdm9pZCB7XG4gICAgLy8gZW5zdXJlIHdlIGNhbGwgbWFya1BsdWdpbnNBc0xvYWRlZCBvbiB0aGUgRHluYW1pY0NvbXBvbmVudFNlcnZpY2VcbiAgICB0aGlzLnBsdWdpbnNSZXNvbHZlLm1hcmtQbHVnaW5zQXNMb2FkZWQoKTtcbiAgfVxufVxuIiwiPGM4eS1tZXNzYWdlLWJhbm5lclxuICAqbmdJZj1cIiEoc2hvd0xvZ2luJCB8IGFzeW5jKVwiXG4gIGNsYXNzPVwiYzh5LW1lc3NhZ2UtYmFubmVyXCJcbj48L2M4eS1tZXNzYWdlLWJhbm5lcj5cbjxjOHktbG9naW4gKm5nSWY9XCJzaG93TG9naW4kIHwgYXN5bmNcIj48L2M4eS1sb2dpbj5cblxuPGRpdlxuICBjbGFzcz1cImluaXQtbG9hZFwiXG4gICpuZ0lmPVwic2hvd0xvYWRpbmdJbmRpY2F0b3IkIHwgYXN5bmNcIlxuPlxuICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1zbmFrZVwiPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibWFpbmxvZ28tcGxhY2Vob2xkZXIgbWFpbmxvZ29cIj48L2Rpdj5cbjwvZGl2PlxuXG48ZGl2XG4gIFtjbGFzcy5oZWFkLW9wZW5dPVwiaGVhZGVyU2VydmljZS5oZWFkZXJPcGVuXCJcbiAgKm5nSWY9XCJzaG93TWFpblZpZXckIHwgYXN5bmNcIlxuPlxuICA8Yzh5LWhlYWRlci1iYXJcbiAgICAqbmdJZj1cIiFoZWFkZXJTZXJ2aWNlLmhpZGVIZWFkZXJcIlxuICAgICNoZWFkZXJcbiAgPjwvYzh5LWhlYWRlci1iYXI+XG4gIDxjOHktZHJhd2VyLW91dGxldFxuICAgIFt0YWJpbmRleF09XCIoaGVhZGVyU2VydmljZS5uYXZpZ2F0b3JPcGVuJCB8IGFzeW5jKSA/ICcwJyA6ICctMSdcIlxuICAgIHJvbGU9XCJyZWdpb25cIlxuICAgIHBvc2l0aW9uPVwibGVmdFwiXG4gICAgZGF0YS1jeT1cImJvb3RzdHJhcC50ZW1wbGF0ZS0tYzh5LWRyYXdlci1vdXRsZXRcIlxuICAgIFtvcGVuXT1cImhlYWRlclNlcnZpY2UubmF2aWdhdG9yT3BlbiQgfCBhc3luY1wiXG4gID48L2M4eS1kcmF3ZXItb3V0bGV0PlxuXG4gIDxkaXYgY2xhc3M9XCJhbGVydHNcIj5cbiAgICA8Yzh5LWFsZXJ0LW91dGxldD48L2M4eS1hbGVydC1vdXRsZXQ+XG4gIDwvZGl2PlxuICA8Yzh5LXRhYnMtb3V0bGV0XG4gICAgcm9sZT1cIm5hdmlnYXRpb25cIlxuICAgICN0YWJzQ29tcG9uZW50XG4gICAgW3RhYnNdPVwidGFicy5pdGVtcyQgfCBhc3luY1wiXG4gICAgW2hhc0hlYWRlcl09XCJ0YWJzQ29tcG9uZW50Lmhhc0hlYWRlclwiXG4gICAgW25hdmlnYXRvck9wZW5dPVwiaGVhZGVyU2VydmljZS5uYXZpZ2F0b3JPcGVuJCB8IGFzeW5jXCJcbiAgICBbb3JpZW50YXRpb25dPVwidGFicy5vcmllbnRhdGlvbiQgfCBhc3luY1wiXG4gID48L2M4eS10YWJzLW91dGxldD5cbiAgPGM4eS1hY3Rpb24tYmFyXG4gICAgcm9sZT1cImdyb3VwXCJcbiAgICAjYWN0aW9uQmFyQ29tcG9uZW50XG4gICAgW25hdmlnYXRvck9wZW5dPVwiaGVhZGVyU2VydmljZS5uYXZpZ2F0b3JPcGVuJCB8IGFzeW5jXCJcbiAgICBbaGFzVGFic109XCJ0YWJzQ29tcG9uZW50Lmhhc1RhYnNcIlxuICAgIFtoYXNIZWFkZXJdPVwidGFic0NvbXBvbmVudC5oYXNIZWFkZXJcIlxuICAgIFtpc1RhYnNIb3Jpem9udGFsXT1cInRhYnNDb21wb25lbnQ/LmlzSG9yaXpvbnRhbFwiXG4gICAgW2l0ZW1zJF09XCJhY3Rpb25CYXIuaXRlbXMkXCJcbiAgPjwvYzh5LWFjdGlvbi1iYXI+XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwibWNvbnRhaW5lclwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgb3BlbjogaGVhZGVyU2VydmljZS5uYXZpZ2F0b3JPcGVuJCB8IGFzeW5jLFxuICAgICAgJ25vLWFwcHMtbWFyZ2luJzogbm9BcHBzTWFyZ2luJCB8IGFzeW5jLFxuICAgICAgJ2hvcml6b250YWwtdGFicyc6IHRhYnNDb21wb25lbnQuaXNIb3Jpem9udGFsLFxuICAgICAgJ3ZlcnRpY2FsLXRhYnMnOiAhdGFic0NvbXBvbmVudC5pc0hvcml6b250YWwsXG4gICAgICAnaGFzLXRhYnMnOiB0YWJzQ29tcG9uZW50Lmhhc1RhYnMsXG4gICAgICAnaGFzLWFjdGlvbi1iYXInOiAhYWN0aW9uQmFyQ29tcG9uZW50Py5oaWRkZW4sXG4gICAgICAnaGFzLWhlYWRlcic6IGhlYWRlclNlcnZpY2UuaGlkZUhlYWRlclxuICAgIH1cIlxuICA+XG4gICAgPG1haW5cbiAgICAgIGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCJcbiAgICAgIGlkPVwibWFpbi1jb250ZW50XCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgID5cbiAgICAgIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIiNjOHktbGVnYWN5LXZpZXdcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8IS0tIGxlZ2FjeSBuZy12aWV3LCB3aWxsIG5vdCBiZSBtaWdyYXRlZCBhdG0gLS0+XG4gICAgPC9tYWluPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwic2hvd1NldHVwJCB8IGFzeW5jXCI+XG4gIDxjOHktaGVhZGVyLWJhclxuICAgICpuZ0lmPVwiIWhlYWRlclNlcnZpY2UuaGlkZUhlYWRlclwiXG4gICAgW3NpbXBsZV09XCJ0cnVlXCJcbiAgPjwvYzh5LWhlYWRlci1iYXI+XG4gIDxkaXYgY2xhc3M9XCJhbGVydHNcIj5cbiAgICA8Yzh5LWFsZXJ0LW91dGxldD48L2M4eS1hbGVydC1vdXRsZXQ+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJtY29udGFpbmVyXCJcbiAgICByb2xlPVwibWFpblwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XG4gICAgICA8Yzh5LXNldHVwPjwvYzh5LXNldHVwPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48Yzh5LWNvb2tpZS1iYW5uZXI+PC9jOHktY29va2llLWJhbm5lcj5cbiJdfQ==
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvYm9vdHN0cmFwL2Jvb3RzdHJhcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2Jvb3RzdHJhcC9ib290c3RyYXAudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQWMsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUQsT0FBTyxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUUzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztB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U0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDeEMsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsRUFBRSxDQUFDLHdCQUF3QjthQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsQ0FBQyxNQUFxQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFTywyQkFBMkI7UUFDakMsb0VBQW9FO1FBQ3BFLElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM1QyxDQUFDOzhHQWpLVSxrQkFBa0I7a0dBQWxCLGtCQUFrQixxRENyQi9CLDhqRkE4RkE7OzJGRHpFYSxrQkFBa0I7a0JBSjlCLFNBQVM7K0JBQ0UsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucyB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFjdGlvbkJhclNlcnZpY2UgfSBmcm9tICcuLi9hY3Rpb24tYmFyL2FjdGlvbi1iYXIuc2VydmljZSc7XG5pbXBvcnQgeyBPcHRpb25zU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9vcHRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3VpLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGVhZGVyU2VydmljZSB9IGZyb20gJy4uL2hlYWRlci9oZWFkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBOYXZpZ2F0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vbmF2aWdhdG9yL25hdmlnYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFBsdWdpbnNSZXNvbHZlU2VydmljZSB9IGZyb20gJy4uL3BsdWdpbnMvcGx1Z2lucy1yZXNvbHZlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGx1Z2luc0NvbmZpZyB9IGZyb20gJy4uL3BsdWdpbnMvcGx1Z2lucy5tb2RlbCc7XG5pbXBvcnQgeyBTZXR1cFNlcnZpY2UgfSBmcm9tICcuLi9zZXR1cC9zZXR1cC5zZXJ2aWNlJztcbmltcG9ydCB7IFRhYnNTZXJ2aWNlIH0gZnJvbSAnLi4vdGFicy90YWJzLnNlcnZpY2UnO1xuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uTG9hZGVyU2VydmljZSB9IGZyb20gJy4uL2kxOG4vdHJhbnNsYXRpb24tbG9hZGVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktYm9vdHN0cmFwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Jvb3RzdHJhcC50ZW1wbGF0ZS5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBCb290c3RyYXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gIG5hdmlnYXRvck9wZW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBub0FwcHNNYXJnaW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICB0YWJzT3JpZW50YXRpb246IHN0cmluZztcbiAgc2hvd1Bvd2VyZWRCeSA9IHRydWU7XG4gIHNob3dMb2dpbiQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHNob3dMb2FkaW5nSW5kaWNhdG9yJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgc2hvd01haW5WaWV3JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgc2hvd1NldHVwJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgbG9hZGVkUmVtb3Rlc0NvbnRleHRQYXRoQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgYm9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdGFiczogVGFic1NlcnZpY2UsXG4gICAgcHVibGljIHVpOiBBcHBTdGF0ZVNlcnZpY2UsXG4gICAgcHVibGljIG5hdmlnYXRvcjogTmF2aWdhdG9yU2VydmljZSxcbiAgICBwdWJsaWMgYWN0aW9uQmFyOiBBY3Rpb25CYXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBoZWFkZXJTZXJ2aWNlOiBIZWFkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgb3B0aW9uczogT3B0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBwbHVnaW5zUmVzb2x2ZTogUGx1Z2luc1Jlc29sdmVTZXJ2aWNlLFxuICAgIHB1YmxpYyBzZXR1cFNlcnZpY2U6IFNldHVwU2VydmljZSxcbiAgICBwdWJsaWMgbG9naW5TZXJ2aWNlOiBMb2dpblNlcnZpY2UsXG4gICAgLy8gb25seSBoZXJlIHRvIGVuc3VyZSB0aGUgc2VydmljZSBpcyBpbnN0YW50aWF0ZWRcbiAgICBwdWJsaWMgdHJhbnNsYXRpb25Mb2FkZXJTZXJ2aWNlOiBUcmFuc2xhdGlvbkxvYWRlclNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5ub0FwcHNNYXJnaW4kID0gdGhpcy5oZWFkZXJTZXJ2aWNlLm1hcCgoeyBuYXYgfSkgPT4gIW5hdi5vcGVuICYmIG5hdi5oaWRkZW5PblN0YXJ0dXApO1xuICAgIHRoaXMudGFic09yaWVudGF0aW9uID0gdGhpcy5vcHRpb25zLnRhYnNIb3Jpem9udGFsID8gJ2hvcml6b250YWwnIDogJ3ZlcnRpY2FsJztcbiAgICB0aGlzLnVpXG4gICAgICAubWFwKCh7IGxhbmcgfSkgPT4gbGFuZylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmFjdGlvbkJhci5yZWZyZXNoKCk7XG4gICAgICB9KTtcbiAgICB0aGlzLnNob3dQb3dlcmVkQnkgPSAhdGhpcy5vcHRpb25zLmdldCgnaGlkZVBvd2VyZWQnKTtcbiAgICBjb25zdCBub0xvZ2luJCA9IG9mKHRoaXMub3B0aW9ucy5nZXQoJ25vTG9naW4nLCBmYWxzZSkpO1xuICAgIHRoaXMuc2hvd0xvZ2luJCA9IGNvbWJpbmVMYXRlc3QoW25vTG9naW4kLCB0aGlzLnVpLmN1cnJlbnRVc2VyXSkucGlwZShcbiAgICAgIG1hcCgoW25vTG9naW4sIGN1cnJlbnRVc2VyXSkgPT4gIW5vTG9naW4gJiYgIWN1cnJlbnRVc2VyKVxuICAgICk7XG4gICAgdGhpcy5zaG93TG9hZGluZ0luZGljYXRvciQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIG5vTG9naW4kLFxuICAgICAgdGhpcy51aS5jdXJyZW50VXNlcixcbiAgICAgIHRoaXMubG9naW5TZXJ2aWNlLmF1dG9tYXRpY0xvZ2luSW5Qcm9ncmVzcyQsXG4gICAgICB0aGlzLnBsdWdpbnNSZXNvbHZlLmFsbFBsdWdpbnNMb2FkZWQkXG4gICAgXSkucGlwZShcbiAgICAgIGRlbGF5KDApLCAvLyBkZWxheSB0byBhdm9pZCBFeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2tlZEVycm9yXG4gICAgICBtYXAoXG4gICAgICAgIChbbm9Mb2dpbiwgY3VycmVudFVzZXIsIGF1dG9tYXRpY0xvZ2luSW5Qcm9ncmVzcywgYWxsUGx1Z2luc0xvYWRlZF0pID0+XG4gICAgICAgICAgKCFub0xvZ2luICYmIGF1dG9tYXRpY0xvZ2luSW5Qcm9ncmVzcykgfHwgKGN1cnJlbnRVc2VyICYmICFhbGxQbHVnaW5zTG9hZGVkKVxuICAgICAgKSxcbiAgICAgIHN0YXJ0V2l0aCh0cnVlKVxuICAgICk7XG4gICAgdGhpcy5zaG93TWFpblZpZXckID0gbm9Mb2dpbiQucGlwZShcbiAgICAgIHN3aXRjaE1hcChub0xvZ2luID0+IHtcbiAgICAgICAgaWYgKG5vTG9naW4pIHtcbiAgICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgIHRoaXMudWkuY3VycmVudFVzZXIsXG4gICAgICAgICAgdGhpcy5zZXR1cFNlcnZpY2UuaXNTZXR1cE5lZWRlZCQsXG4gICAgICAgICAgdGhpcy5wbHVnaW5zUmVzb2x2ZS5hbGxQbHVnaW5zTG9hZGVkJFxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgIG1hcCgoW2N1cnJlbnRVc2VyLCBpc1NldHVwTmVlZGVkLCBhbGxQbHVnaW5zTG9hZGVkXSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRVc2VyICYmICFpc1NldHVwTmVlZGVkICYmIGFsbFBsdWdpbnNMb2FkZWQ7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnNob3dTZXR1cCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnVpLmN1cnJlbnRVc2VyLCB0aGlzLnNldHVwU2VydmljZS5pc1NldHVwTmVlZGVkJF0pLnBpcGUoXG4gICAgICBtYXAoKFtjdXJyZW50VXNlciwgaXNTZXR1cE5lZWRlZF0pID0+IGN1cnJlbnRVc2VyICYmIGlzU2V0dXBOZWVkZWQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc3Vic2NyaWJlVG9Mb2FkUmVtb3RlcygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZW1vdGVzKGNvbmZpZzogUGx1Z2luc0NvbmZpZyk6IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucyB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IHNlbGZSZW1vdGVzOiBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnM7XG5cbiAgICAvLyBXZSBuZWVkIHRvIGltcG9ydCB0aGUgc2VsZiBpbXBvcnRzLCBhcyB0aGlzIGFwcCBpcyBub3QgY29uZmlndXJlZCBhdCBhbGxcbiAgICBpZiAodGhpcy5vcHRpb25zPy5leHBvcnRzKSB7XG4gICAgICBjb25zdCBzZWxmTW9kdWxlTmFtZXM6IHN0cmluZ1tdID0gdGhpcy5vcHRpb25zLmV4cG9ydHNcbiAgICAgICAgLmZpbHRlcihwbHVnaW4gPT4gcGx1Z2luLnNjb3BlID09PSAnc2VsZicpXG4gICAgICAgIC5tYXAocGx1Z2luID0+IHBsdWdpbi5tb2R1bGUgfHwgcGx1Z2luLm5hbWUpO1xuICAgICAgc2VsZlJlbW90ZXMgPSB7IFt0aGlzLm9wdGlvbnMuY29udGV4dFBhdGhdOiBzZWxmTW9kdWxlTmFtZXMgfTtcbiAgICB9XG5cbiAgICAvLyBNZXJnZSBwbHVnaW5zIGNvbmZpZyByZW1vdGVzIGFuZCByZW1vdGVzIHBhc3NlZCBpbiB0aGUgVVJMLlxuICAgIC8vIFJlbW90ZXMgaW4gdGhlIFVSTCBhcmUgdXNlZCBpbiB0aGUgZGV2ZWxvcG1lbnQgcHJvY2Vzcy5cbiAgICBsZXQgcmVtb3RlcyA9IFBsdWdpbnNSZXNvbHZlU2VydmljZS5tZXJnZVJlbW90ZXMoW1xuICAgICAgc2VsZlJlbW90ZXMsXG4gICAgICAvLyBpZiB0aGUgY29uZmlnIHJlbW90ZXMgYXJlIG5vdCBwcmVzZW50IHdlIGZhbGwgYmFjayB0byB0aGUgYXBwbGljYXRpb24gcmVtb3Rlc1xuICAgICAgY29uZmlnPy5yZW1vdGVzIHx8IHRoaXMub3B0aW9ucz8ucmVtb3RlcyB8fCB7fSxcbiAgICAgIC8vIHVybCByZW1vdGVzIHNob3VsZCBhbHdheXMgYmUgbG9hZGVkXG4gICAgICB0aGlzLnBsdWdpbnNSZXNvbHZlLmxvYWRVcmxSZW1vdGVzKClcbiAgICBdKTtcblxuICAgIC8vIHJlbW92ZSByZW1vdGVzIHRoYXQgYXJlIG9uIHRoZSBleGNsdWRlIGxpc3RcbiAgICByZW1vdGVzID0gUGx1Z2luc1Jlc29sdmVTZXJ2aWNlLnJlbW92ZVJlbW90ZXMocmVtb3RlcywgY29uZmlnPy5leGNsdWRlZFJlbW90ZXMpO1xuXG4gICAgLy8gQmxvY2sgdGhlIHBvc3NpYmlsaXR5IG9mIGxvYWRpbmcgcGx1Z2lucyBtdWx0aXBsZSB0aW1lcy5cbiAgICBPYmplY3Qua2V5cyhyZW1vdGVzIHx8IHt9KS5mb3JFYWNoKGNvbnRleHRQYXRoID0+IHtcbiAgICAgIGlmICh0aGlzLmxvYWRlZFJlbW90ZXNDb250ZXh0UGF0aENhY2hlLmdldChjb250ZXh0UGF0aCkpIHtcbiAgICAgICAgZGVsZXRlIHJlbW90ZXNbY29udGV4dFBhdGhdO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBpc0VtcHR5KHJlbW90ZXMpID8gdW5kZWZpbmVkIDogcmVtb3RlcztcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZFJlbW90ZXMocmVtb3RlczogQXBwbGljYXRpb25SZW1vdGVQbHVnaW5zKSB7XG4gICAgaWYgKCFyZW1vdGVzKSB7XG4gICAgICB0aGlzLmVuc3VyZVdlTWFya1BsdWdpbnNBc0xvYWRlZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZW1vdGVNb2R1bGVzID0gYXdhaXQgdGhpcy5wbHVnaW5zUmVzb2x2ZS5sb2FkUmVtb3RlcyhyZW1vdGVzKTtcblxuICAgIC8vIENhY2hlIGxvYWRlZCByZW1vdGVzLlxuICAgIE9iamVjdC5rZXlzKHJlbW90ZXMpLmZvckVhY2goY29udGV4dFBhdGggPT5cbiAgICAgIHRoaXMubG9hZGVkUmVtb3Rlc0NvbnRleHRQYXRoQ2FjaGUuc2V0KGNvbnRleHRQYXRoLCB0cnVlKVxuICAgICk7XG5cbiAgICBpZiAocmVtb3RlTW9kdWxlcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMucGx1Z2luc1Jlc29sdmUucmVzb2x2ZVJlbW90ZVBsdWdpbnMocmVtb3RlTW9kdWxlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGluIGNhc2UgbG9hZGluZyBhbGwgbW9kdWxlcyB2aWEgcGx1Z2luc1Jlc29sdmUubG9hZFJlbW90ZXMgZmFpbGVkXG4gICAgICAvLyAoZS5nLiBhbGwgcGx1Z2lucyB0aGF0IHdlcmUgaW5zdGFsbGVkIGhhdmUgYmVlbiBkZWxldGVkIGZyb20gdGhlIHRlbmFudClcbiAgICAgIC8vIHdlIHN0aWxsIG5lZWQgdG8gbWFyayBsb2FkaW5nIHRoZSBwbHVnaW5zIGFzIHN1Y2Nlc3NmdWwuXG4gICAgICB0aGlzLmVuc3VyZVdlTWFya1BsdWdpbnNBc0xvYWRlZCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9Mb2FkUmVtb3RlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLmdldCgnbm9QbHVnaW5zJywgZmFsc2UpKSB7XG4gICAgICB0aGlzLmVuc3VyZVdlTWFya1BsdWdpbnNBc0xvYWRlZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMuZ2V0KCdmb3JjZVVybFJlbW90ZXMnLCBmYWxzZSkpIHtcbiAgICAgIGNvbnN0IHJlbW90ZXMgPSB0aGlzLnBsdWdpbnNSZXNvbHZlLmxvYWRVcmxSZW1vdGVzKCk7XG4gICAgICB0aGlzLmxvYWRSZW1vdGVzKHJlbW90ZXMpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMuZ2V0KCdub0xvZ2luJywgZmFsc2UpKSB7XG4gICAgICB0aGlzLmxvYWRSZW1vdGVzKHRoaXMuZ2V0UmVtb3RlcyhudWxsKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy51aS5jdXJyZW50QXBwbGljYXRpb25Db25maWdcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNvbmZpZzogUGx1Z2luc0NvbmZpZykgPT4gdGhpcy5sb2FkUmVtb3Rlcyh0aGlzLmdldFJlbW90ZXMoY29uZmlnKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbnN1cmVXZU1hcmtQbHVnaW5zQXNMb2FkZWQoKTogdm9pZCB7XG4gICAgLy8gZW5zdXJlIHdlIGNhbGwgbWFya1BsdWdpbnNBc0xvYWRlZCBvbiB0aGUgRHluYW1pY0NvbXBvbmVudFNlcnZpY2VcbiAgICB0aGlzLnBsdWdpbnNSZXNvbHZlLm1hcmtQbHVnaW5zQXNMb2FkZWQoKTtcbiAgfVxufVxuIiwiPGM4eS1tZXNzYWdlLWJhbm5lclxuICAqbmdJZj1cIiEoc2hvd0xvZ2luJCB8IGFzeW5jKVwiXG4gIGNsYXNzPVwiYzh5LW1lc3NhZ2UtYmFubmVyXCJcbj48L2M4eS1tZXNzYWdlLWJhbm5lcj5cbjxjOHktbG9naW4gKm5nSWY9XCJzaG93TG9naW4kIHwgYXN5bmNcIj48L2M4eS1sb2dpbj5cblxuPGRpdlxuICBjbGFzcz1cImluaXQtbG9hZFwiXG4gICpuZ0lmPVwic2hvd0xvYWRpbmdJbmRpY2F0b3IkIHwgYXN5bmNcIlxuPlxuICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1zbmFrZVwiPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibWFpbmxvZ28tcGxhY2Vob2xkZXIgbWFpbmxvZ29cIj48L2Rpdj5cbjwvZGl2PlxuXG48ZGl2XG4gIFtjbGFzcy5oZWFkLW9wZW5dPVwiaGVhZGVyU2VydmljZS5oZWFkZXJPcGVuXCJcbiAgKm5nSWY9XCJzaG93TWFpblZpZXckIHwgYXN5bmNcIlxuPlxuICA8Yzh5LWhlYWRlci1iYXJcbiAgICAqbmdJZj1cIiFoZWFkZXJTZXJ2aWNlLmhpZGVIZWFkZXJcIlxuICAgICNoZWFkZXJcbiAgPjwvYzh5LWhlYWRlci1iYXI+XG4gIDxjOHktZHJhd2VyLW91dGxldFxuICAgIFt0YWJpbmRleF09XCIoaGVhZGVyU2VydmljZS5uYXZpZ2F0b3JPcGVuJCB8IGFzeW5jKSA/ICcwJyA6ICctMSdcIlxuICAgIHJvbGU9XCJyZWdpb25cIlxuICAgIHBvc2l0aW9uPVwibGVmdFwiXG4gICAgZGF0YS1jeT1cImJvb3RzdHJhcC50ZW1wbGF0ZS0tYzh5LWRyYXdlci1vdXRsZXRcIlxuICAgIFtvcGVuXT1cImhlYWRlclNlcnZpY2UubmF2aWdhdG9yT3BlbiQgfCBhc3luY1wiXG4gID48L2M4eS1kcmF3ZXItb3V0bGV0PlxuXG4gIDxkaXYgY2xhc3M9XCJhbGVydHNcIj5cbiAgICA8Yzh5LWFsZXJ0LW91dGxldD48L2M4eS1hbGVydC1vdXRsZXQ+XG4gIDwvZGl2PlxuICA8Yzh5LXRhYnMtb3V0bGV0XG4gICAgcm9sZT1cIm5hdmlnYXRpb25cIlxuICAgICN0YWJzQ29tcG9uZW50XG4gICAgW3RhYnNdPVwidGFicy5pdGVtcyQgfCBhc3luY1wiXG4gICAgW2hhc0hlYWRlcl09XCJ0YWJzQ29tcG9uZW50Lmhhc0hlYWRlclwiXG4gICAgW25hdmlnYXRvck9wZW5dPVwiaGVhZGVyU2VydmljZS5uYXZpZ2F0b3JPcGVuJCB8IGFzeW5jXCJcbiAgICBbb3JpZW50YXRpb25dPVwidGFicy5vcmllbnRhdGlvbiQgfCBhc3luY1wiXG4gID48L2M4eS10YWJzLW91dGxldD5cbiAgPGM4eS1hY3Rpb24tYmFyXG4gICAgcm9sZT1cImdyb3VwXCJcbiAgICAjYWN0aW9uQmFyQ29tcG9uZW50XG4gICAgW25hdmlnYXRvck9wZW5dPVwiaGVhZGVyU2VydmljZS5uYXZpZ2F0b3JPcGVuJCB8IGFzeW5jXCJcbiAgICBbaGFzVGFic109XCJ0YWJzQ29tcG9uZW50Lmhhc1RhYnNcIlxuICAgIFtoYXNIZWFkZXJdPVwidGFic0NvbXBvbmVudC5oYXNIZWFkZXJcIlxuICAgIFtpc1RhYnNIb3Jpem9udGFsXT1cInRhYnNDb21wb25lbnQ/LmlzSG9yaXpvbnRhbFwiXG4gICAgW2l0ZW1zJF09XCJhY3Rpb25CYXIuaXRlbXMkXCJcbiAgPjwvYzh5LWFjdGlvbi1iYXI+XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwibWNvbnRhaW5lclwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgb3BlbjogaGVhZGVyU2VydmljZS5uYXZpZ2F0b3JPcGVuJCB8IGFzeW5jLFxuICAgICAgJ25vLWFwcHMtbWFyZ2luJzogbm9BcHBzTWFyZ2luJCB8IGFzeW5jLFxuICAgICAgJ2hvcml6b250YWwtdGFicyc6IHRhYnNDb21wb25lbnQuaXNIb3Jpem9udGFsLFxuICAgICAgJ3ZlcnRpY2FsLXRhYnMnOiAhdGFic0NvbXBvbmVudC5pc0hvcml6b250YWwsXG4gICAgICAnaGFzLXRhYnMnOiB0YWJzQ29tcG9uZW50Lmhhc1RhYnMsXG4gICAgICAnaGFzLWFjdGlvbi1iYXInOiAhYWN0aW9uQmFyQ29tcG9uZW50Py5oaWRkZW4sXG4gICAgICAnaGFzLWhlYWRlcic6IGhlYWRlclNlcnZpY2UuaGlkZUhlYWRlclxuICAgIH1cIlxuICA+XG4gICAgPG1haW5cbiAgICAgIGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCJcbiAgICAgIGlkPVwibWFpbi1jb250ZW50XCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgID5cbiAgICAgIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIiNjOHktbGVnYWN5LXZpZXdcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8IS0tIGxlZ2FjeSBuZy12aWV3LCB3aWxsIG5vdCBiZSBtaWdyYXRlZCBhdG0gLS0+XG4gICAgPC9tYWluPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwic2hvd1NldHVwJCB8IGFzeW5jXCI+XG4gIDxjOHktaGVhZGVyLWJhclxuICAgICpuZ0lmPVwiIWhlYWRlclNlcnZpY2UuaGlkZUhlYWRlclwiXG4gICAgW3NpbXBsZV09XCJ0cnVlXCJcbiAgPjwvYzh5LWhlYWRlci1iYXI+XG4gIDxkaXYgY2xhc3M9XCJhbGVydHNcIj5cbiAgICA8Yzh5LWFsZXJ0LW91dGxldD48L2M4eS1hbGVydC1vdXRsZXQ+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJtY29udGFpbmVyXCJcbiAgICByb2xlPVwibWFpblwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XG4gICAgICA8Yzh5LXNldHVwPjwvYzh5LXNldHVwPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48Yzh5LWNvb2tpZS1iYW5uZXI+PC9jOHktY29va2llLWJhbm5lcj5cbiJdfQ==
@@ -12,10 +12,7 @@ export class GeoService {
12
12
  }
13
13
  const lat = Number(fragment.lat);
14
14
  const lng = Number(fragment.lng);
15
- if (!isNaN(lat) &&
16
- !isNaN(lng) &&
17
- Math.abs(fragment.lng) <= 180 &&
18
- Math.abs(fragment.lat) <= 90) {
15
+ if (!isNaN(lat) && !isNaN(lng) && Math.abs(fragment.lat) <= 90) {
19
16
  return [lat, lng];
20
17
  }
21
18
  return undefined;
@@ -27,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
27
24
  type: Injectable,
28
25
  args: [{ providedIn: 'root' }]
29
26
  }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2NvbW1vbi9nZW8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQUd2QyxNQUFNLE9BQU8sVUFBVTtJQUR2QjtRQUVtQiwwQkFBcUIsR0FBRyxjQUFjLENBQUM7S0FtQnpEO0lBakJDLFVBQVUsQ0FBQyxFQUEyQjtRQUNwQyxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsSUFDRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDWCxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDWCxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHO1lBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFDNUIsQ0FBQztZQUNELE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEIsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7OEdBbkJVLFVBQVU7a0hBQVYsVUFBVSxjQURHLE1BQU07OzJGQUNuQixVQUFVO2tCQUR0QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElFdmVudCwgSU1hbmFnZWRPYmplY3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBnZXQsIGlzTmFOIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBHZW9TZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBDOFlfUE9TSVRJT05fRlJBR01FTlQgPSAnYzh5X1Bvc2l0aW9uJztcblxuICBnZXRMYXRMb25nKG1vOiBJRXZlbnQgfCBJTWFuYWdlZE9iamVjdCk6IFtudW1iZXIsIG51bWJlcl0ge1xuICAgIGNvbnN0IGZyYWdtZW50ID0gZ2V0KG1vLCB0aGlzLkM4WV9QT1NJVElPTl9GUkFHTUVOVCk7XG4gICAgaWYgKCFmcmFnbWVudCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgbGF0ID0gTnVtYmVyKGZyYWdtZW50LmxhdCk7XG4gICAgY29uc3QgbG5nID0gTnVtYmVyKGZyYWdtZW50LmxuZyk7XG4gICAgaWYgKFxuICAgICAgIWlzTmFOKGxhdCkgJiZcbiAgICAgICFpc05hTihsbmcpICYmXG4gICAgICBNYXRoLmFicyhmcmFnbWVudC5sbmcpIDw9IDE4MCAmJlxuICAgICAgTWF0aC5hYnMoZnJhZ21lbnQubGF0KSA8PSA5MFxuICAgICkge1xuICAgICAgcmV0dXJuIFtsYXQsIGxuZ107XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2NvbW1vbi9nZW8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQUd2QyxNQUFNLE9BQU8sVUFBVTtJQUR2QjtRQUVtQiwwQkFBcUIsR0FBRyxjQUFjLENBQUM7S0FjekQ7SUFaQyxVQUFVLENBQUMsRUFBMkI7UUFDcEMsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDL0QsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNwQixDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs4R0FkVSxVQUFVO2tIQUFWLFVBQVUsY0FERyxNQUFNOzsyRkFDbkIsVUFBVTtrQkFEdEIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJRXZlbnQsIElNYW5hZ2VkT2JqZWN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgZ2V0LCBpc05hTiB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgR2VvU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgQzhZX1BPU0lUSU9OX0ZSQUdNRU5UID0gJ2M4eV9Qb3NpdGlvbic7XG5cbiAgZ2V0TGF0TG9uZyhtbzogSUV2ZW50IHwgSU1hbmFnZWRPYmplY3QpOiBbbnVtYmVyLCBudW1iZXJdIHtcbiAgICBjb25zdCBmcmFnbWVudCA9IGdldChtbywgdGhpcy5DOFlfUE9TSVRJT05fRlJBR01FTlQpO1xuICAgIGlmICghZnJhZ21lbnQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IGxhdCA9IE51bWJlcihmcmFnbWVudC5sYXQpO1xuICAgIGNvbnN0IGxuZyA9IE51bWJlcihmcmFnbWVudC5sbmcpO1xuICAgIGlmICghaXNOYU4obGF0KSAmJiAhaXNOYU4obG5nKSAmJiBNYXRoLmFicyhmcmFnbWVudC5sYXQpIDw9IDkwKSB7XG4gICAgICByZXR1cm4gW2xhdCwgbG5nXTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
@@ -8,7 +8,8 @@ import * as i0 from "@angular/core";
8
8
  export const SupportedApps = {
9
9
  devicemanagement: 'devicemanagement-application-key',
10
10
  cockpit: 'cockpit-application-key',
11
- administration: 'administration-application-key'
11
+ administration: 'administration-application-key',
12
+ smartrules: 'smartrule-key'
12
13
  };
13
14
  /**
14
15
  * Service that provides methods to interact with other applications.
@@ -73,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
73
74
  type: Injectable,
74
75
  args: [{ providedIn: 'root' }]
75
76
  }] });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXItYXBwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2NvbW1vbi9pbnRlci1hcHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRXRELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUMzQixnQkFBZ0IsRUFBRSxrQ0FBa0M7SUFDcEQsT0FBTyxFQUFFLHlCQUF5QjtJQUNsQyxjQUFjLEVBQUUsZ0NBQWdDO0NBQ3hDLENBQUM7QUFHWDs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFFVSxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN2QyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztLQTZEckQ7SUEzREM7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxHQUFNO1FBQ1osT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxhQUFhLENBQUMsR0FBTTtRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsa0JBQWtCLENBQUMsTUFBUztRQUMxQixPQUFPLGFBQWEsQ0FBQztZQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNsRCxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FDRCxDQUFDLENBQUMsb0JBQW9CLEVBQUUsOEJBQThCLENBQUMsRUFBRSxFQUFFLENBQ3pELG9CQUFvQixJQUFJLDhCQUE4QixDQUN6RCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBUyxFQUFFLElBQWE7UUFDMUMsTUFBTSxXQUFXLEdBQUcsTUFBTSxjQUFjLENBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUN4RCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQ3ZDLE9BQU8sQ0FBQyw4Q0FBOEMsQ0FBQyxFQUN2RCxFQUFFLE1BQU0sRUFBRSxDQUNYLENBQUM7WUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5QixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLFNBQVMsV0FBVyxFQUFFLENBQUM7UUFDdkMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBRWxELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3BELENBQUM7OEdBL0RVLGVBQWU7a0hBQWYsZUFBZSxjQURGLE1BQU07OzJGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUFwcGxpY2F0aW9uIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgZmlyc3RWYWx1ZUZyb20sIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi91aS1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2dldHRleHQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBTdXBwb3J0ZWRBcHBzID0ge1xuICBkZXZpY2VtYW5hZ2VtZW50OiAnZGV2aWNlbWFuYWdlbWVudC1hcHBsaWNhdGlvbi1rZXknLFxuICBjb2NrcGl0OiAnY29ja3BpdC1hcHBsaWNhdGlvbi1rZXknLFxuICBhZG1pbmlzdHJhdGlvbjogJ2FkbWluaXN0cmF0aW9uLWFwcGxpY2F0aW9uLWtleSdcbn0gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBTdXBwb3J0ZWRBcHBLZXkgPSAodHlwZW9mIFN1cHBvcnRlZEFwcHMpW2tleW9mIHR5cGVvZiBTdXBwb3J0ZWRBcHBzXTtcblxuLyoqXG4gKiBTZXJ2aWNlIHRoYXQgcHJvdmlkZXMgbWV0aG9kcyB0byBpbnRlcmFjdCB3aXRoIG90aGVyIGFwcGxpY2F0aW9ucy5cbiAqIEl0IGFsbG93cyByZXRyaWV2aW5nIGEgc3BlY2lmaWMgYXBwIGJ5IGtleSwgY2hlY2tpbmcgaXRzIGF2YWlsYWJpbGl0eSwgdmVyaWZ5aW5nIGlmIGl0IGlzIG5vdCB0aGUgY3VycmVudCBhcHBsaWNhdGlvbixcbiAqIGRldGVybWluaW5nIGlmIGEgbGluayB0byBhbm90aGVyIGFwcCBzaG91bGQgYmUgc2hvd24sIGFuZCBuYXZpZ2F0aW5nIHRvIGl0LlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEludGVyQXBwU2VydmljZTxUIGV4dGVuZHMgc3RyaW5nID0gU3VwcG9ydGVkQXBwS2V5PiB7XG4gIHByaXZhdGUgc3RhdGVTZXJ2aWNlID0gaW5qZWN0KEFwcFN0YXRlU2VydmljZSk7XG4gIHByaXZhdGUgYWxlcnRTZXJ2aWNlID0gaW5qZWN0KEFsZXJ0U2VydmljZSk7XG4gIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcblxuICAvKipcbiAgICogUmV0cmlldmUgYXBwbGljYXRpb24gYnkgaXRzIGtleSBhcyBvYnNlcnZhYmxlLlxuICAgKiBAcGFyYW0ga2V5IHtTdXBwb3J0ZWRBcHBLZXl9IC0gQXBwbGljYXRpb24ga2V5LlxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIEFwcGxpY2F0aW9uXG4gICAqL1xuICBnZXRBcHAkKGtleTogVCk6IE9ic2VydmFibGU8SUFwcGxpY2F0aW9uIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVTZXJ2aWNlLmN1cnJlbnRBcHBzT2ZVc2VyLnBpcGUobWFwKGFwcHMgPT4gYXBwcy5maW5kKGFwcCA9PiBhcHAua2V5ID09PSBrZXkpKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGN1cnJlbnQgYXBwbGljYXRpb24gaXMgdGhlIHNhbWUgYXMgdGhlIG9uZSB0aGF0IGtleSBpcyBwcm92aWRlZFxuICAgKiBAcGFyYW0ga2V5IHtTdXBwb3J0ZWRBcHBLZXl9IC0gQXBwbGljYXRpb24ga2V5LlxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIGJvb2xlYW47IHRydWUgaWYgY3VycmVudCBhcHAgbWF0Y2hlcyBwcm92aWRlZCBrZXkuXG4gICAqL1xuICBpc0N1cnJlbnRBcHAkKGtleTogVCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlU2VydmljZS5jdXJyZW50QXBwbGljYXRpb24ucGlwZShtYXAoYXBwID0+IGFwcD8ua2V5ID09PSBrZXkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgb3RoZXIgKG90aGVyIHRoYW4gY3VycmVudCkgYXBwbGljYXRpb24gbGluayBzaG91bGQgYmUgZGlzcGxheWVkLiBJdCBjb25zaXN0cyBvZiB0d28gY29uZGl0aW9uczpcbiAgICogLSBhcHAgdGhhdCBsaW5rIGxlYWRzIHRvIGV4aXN0cyBhbmQgaXMgYXZhaWxhYmxlIGZvciBjdXJyZW50IHVzZXJcbiAgICogLSBhcHAgbGluayBsZWFkcyB0byBhcHAgdGhhdCBpcyBub3QgY3VycmVudCBhcHBcbiAgICogQHBhcmFtIGFwcEtleSB7U3VwcG9ydGVkQXBwS2V5fSAtIEFwcGxpY2F0aW9uIGtleSB0aGF0IGxpbmsgbGVhZHMgdG8uXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgYm9vbGVhbjsgb25seSB0cnVlIHdoZW4gYXBwIHRoYXQgbGluayBsZWFkcyB0byBpcyBhdmFpbGFibGUgYW5kIGFwcCBsaW5rIGxlYWRzIHRvIGFwcCB0aGF0IGlzIG5vdCBjdXJyZW50IGFwcFxuICAgKi9cbiAgc2hvdWxkU2hvd0FwcExpbmskKGFwcEtleTogVCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuZ2V0QXBwJChhcHBLZXkpLnBpcGUobWFwKEJvb2xlYW4pKSxcbiAgICAgIHRoaXMuaXNDdXJyZW50QXBwJChhcHBLZXkpLnBpcGUobWFwKHZhbCA9PiAhdmFsKSlcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKFxuICAgICAgICAoW2xpbmtlZEFwcElzQXZhaWxhYmxlLCBsaW5rTGVhZHNUb090aGVyQXBwVGhhbkN1cnJlbnRdKSA9PlxuICAgICAgICAgIGxpbmtlZEFwcElzQXZhaWxhYmxlICYmIGxpbmtMZWFkc1RvT3RoZXJBcHBUaGFuQ3VycmVudFxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTmF2aWdhdGVzIHRvIGFwcCBieSBwcm92aWRlZCBhcHAga2V5XG4gICAqIEBwYXJhbSBhcHBLZXkge1N1cHBvcnRlZEFwcEtleX0gLSBBcHBsaWNhdGlvbiBrZXkgdGhhdCBsaW5rcyBsZWFkcyB0by5cbiAgICogQHBhcmFtIHBhdGgge3N0cmluZ30gLSBBZGRpdGlvbmFsIHBhdGggaW4gdGFyZ2V0IGFwcGxpY2F0aW9uLlxuICAgKi9cbiAgYXN5bmMgbmF2aWdhdGVUb0FwcChhcHBLZXk6IFQsIHBhdGg/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBjb250ZXh0UGF0aCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy5nZXRBcHAkKGFwcEtleSkucGlwZShtYXAoYXBwID0+IGFwcD8uY29udGV4dFBhdGgpKVxuICAgICk7XG4gICAgaWYgKCFjb250ZXh0UGF0aCkge1xuICAgICAgY29uc3QgbXNnID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgIGdldHRleHQoJ0FwcGxpY2F0aW9uIHdpdGgga2V5IFwie3thcHBLZXl9fVwiIG5vdCBmb3VuZC4nKSxcbiAgICAgICAgeyBhcHBLZXkgfVxuICAgICAgKTtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmRhbmdlcihtc2cpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBiYXNlVXJsID0gYC9hcHBzLyR7Y29udGV4dFBhdGh9YDtcbiAgICBjb25zdCB1cmwgPSBwYXRoID8gYCR7YmFzZVVybH0vJHtwYXRofWAgOiBiYXNlVXJsO1xuXG4gICAgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJywgJ25vb3BlbmVyLG5vcmVmZXJyZXInKTtcbiAgfVxufVxuIl19
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXItYXBwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2NvbW1vbi9pbnRlci1hcHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRXRELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUMzQixnQkFBZ0IsRUFBRSxrQ0FBa0M7SUFDcEQsT0FBTyxFQUFFLHlCQUF5QjtJQUNsQyxjQUFjLEVBQUUsZ0NBQWdDO0lBQ2hELFVBQVUsRUFBRSxlQUFlO0NBQ25CLENBQUM7QUFHWDs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFFVSxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN2QyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztLQTZEckQ7SUEzREM7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxHQUFNO1FBQ1osT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxhQUFhLENBQUMsR0FBTTtRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsa0JBQWtCLENBQUMsTUFBUztRQUMxQixPQUFPLGFBQWEsQ0FBQztZQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNsRCxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FDRCxDQUFDLENBQUMsb0JBQW9CLEVBQUUsOEJBQThCLENBQUMsRUFBRSxFQUFFLENBQ3pELG9CQUFvQixJQUFJLDhCQUE4QixDQUN6RCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBUyxFQUFFLElBQWE7UUFDMUMsTUFBTSxXQUFXLEdBQUcsTUFBTSxjQUFjLENBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUN4RCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQ3ZDLE9BQU8sQ0FBQyw4Q0FBOEMsQ0FBQyxFQUN2RCxFQUFFLE1BQU0sRUFBRSxDQUNYLENBQUM7WUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5QixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLFNBQVMsV0FBVyxFQUFFLENBQUM7UUFDdkMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBRWxELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3BELENBQUM7OEdBL0RVLGVBQWU7a0hBQWYsZUFBZSxjQURGLE1BQU07OzJGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUFwcGxpY2F0aW9uIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgZmlyc3RWYWx1ZUZyb20sIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi91aS1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2dldHRleHQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBTdXBwb3J0ZWRBcHBzID0ge1xuICBkZXZpY2VtYW5hZ2VtZW50OiAnZGV2aWNlbWFuYWdlbWVudC1hcHBsaWNhdGlvbi1rZXknLFxuICBjb2NrcGl0OiAnY29ja3BpdC1hcHBsaWNhdGlvbi1rZXknLFxuICBhZG1pbmlzdHJhdGlvbjogJ2FkbWluaXN0cmF0aW9uLWFwcGxpY2F0aW9uLWtleScsXG4gIHNtYXJ0cnVsZXM6ICdzbWFydHJ1bGUta2V5J1xufSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFN1cHBvcnRlZEFwcEtleSA9ICh0eXBlb2YgU3VwcG9ydGVkQXBwcylba2V5b2YgdHlwZW9mIFN1cHBvcnRlZEFwcHNdO1xuXG4vKipcbiAqIFNlcnZpY2UgdGhhdCBwcm92aWRlcyBtZXRob2RzIHRvIGludGVyYWN0IHdpdGggb3RoZXIgYXBwbGljYXRpb25zLlxuICogSXQgYWxsb3dzIHJldHJpZXZpbmcgYSBzcGVjaWZpYyBhcHAgYnkga2V5LCBjaGVja2luZyBpdHMgYXZhaWxhYmlsaXR5LCB2ZXJpZnlpbmcgaWYgaXQgaXMgbm90IHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uLFxuICogZGV0ZXJtaW5pbmcgaWYgYSBsaW5rIHRvIGFub3RoZXIgYXBwIHNob3VsZCBiZSBzaG93biwgYW5kIG5hdmlnYXRpbmcgdG8gaXQuXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgSW50ZXJBcHBTZXJ2aWNlPFQgZXh0ZW5kcyBzdHJpbmcgPSBTdXBwb3J0ZWRBcHBLZXk+IHtcbiAgcHJpdmF0ZSBzdGF0ZVNlcnZpY2UgPSBpbmplY3QoQXBwU3RhdGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhbGVydFNlcnZpY2UgPSBpbmplY3QoQWxlcnRTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBhcHBsaWNhdGlvbiBieSBpdHMga2V5IGFzIG9ic2VydmFibGUuXG4gICAqIEBwYXJhbSBrZXkge1N1cHBvcnRlZEFwcEtleX0gLSBBcHBsaWNhdGlvbiBrZXkuXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgQXBwbGljYXRpb25cbiAgICovXG4gIGdldEFwcCQoa2V5OiBUKTogT2JzZXJ2YWJsZTxJQXBwbGljYXRpb24gfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZVNlcnZpY2UuY3VycmVudEFwcHNPZlVzZXIucGlwZShtYXAoYXBwcyA9PiBhcHBzLmZpbmQoYXBwID0+IGFwcC5rZXkgPT09IGtleSkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgY3VycmVudCBhcHBsaWNhdGlvbiBpcyB0aGUgc2FtZSBhcyB0aGUgb25lIHRoYXQga2V5IGlzIHByb3ZpZGVkXG4gICAqIEBwYXJhbSBrZXkge1N1cHBvcnRlZEFwcEtleX0gLSBBcHBsaWNhdGlvbiBrZXkuXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgYm9vbGVhbjsgdHJ1ZSBpZiBjdXJyZW50IGFwcCBtYXRjaGVzIHByb3ZpZGVkIGtleS5cbiAgICovXG4gIGlzQ3VycmVudEFwcCQoa2V5OiBUKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVTZXJ2aWNlLmN1cnJlbnRBcHBsaWNhdGlvbi5waXBlKG1hcChhcHAgPT4gYXBwPy5rZXkgPT09IGtleSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBvdGhlciAob3RoZXIgdGhhbiBjdXJyZW50KSBhcHBsaWNhdGlvbiBsaW5rIHNob3VsZCBiZSBkaXNwbGF5ZWQuIEl0IGNvbnNpc3RzIG9mIHR3byBjb25kaXRpb25zOlxuICAgKiAtIGFwcCB0aGF0IGxpbmsgbGVhZHMgdG8gZXhpc3RzIGFuZCBpcyBhdmFpbGFibGUgZm9yIGN1cnJlbnQgdXNlclxuICAgKiAtIGFwcCBsaW5rIGxlYWRzIHRvIGFwcCB0aGF0IGlzIG5vdCBjdXJyZW50IGFwcFxuICAgKiBAcGFyYW0gYXBwS2V5IHtTdXBwb3J0ZWRBcHBLZXl9IC0gQXBwbGljYXRpb24ga2V5IHRoYXQgbGluayBsZWFkcyB0by5cbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiBib29sZWFuOyBvbmx5IHRydWUgd2hlbiBhcHAgdGhhdCBsaW5rIGxlYWRzIHRvIGlzIGF2YWlsYWJsZSBhbmQgYXBwIGxpbmsgbGVhZHMgdG8gYXBwIHRoYXQgaXMgbm90IGN1cnJlbnQgYXBwXG4gICAqL1xuICBzaG91bGRTaG93QXBwTGluayQoYXBwS2V5OiBUKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5nZXRBcHAkKGFwcEtleSkucGlwZShtYXAoQm9vbGVhbikpLFxuICAgICAgdGhpcy5pc0N1cnJlbnRBcHAkKGFwcEtleSkucGlwZShtYXAodmFsID0+ICF2YWwpKVxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIChbbGlua2VkQXBwSXNBdmFpbGFibGUsIGxpbmtMZWFkc1RvT3RoZXJBcHBUaGFuQ3VycmVudF0pID0+XG4gICAgICAgICAgbGlua2VkQXBwSXNBdmFpbGFibGUgJiYgbGlua0xlYWRzVG9PdGhlckFwcFRoYW5DdXJyZW50XG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOYXZpZ2F0ZXMgdG8gYXBwIGJ5IHByb3ZpZGVkIGFwcCBrZXlcbiAgICogQHBhcmFtIGFwcEtleSB7U3VwcG9ydGVkQXBwS2V5fSAtIEFwcGxpY2F0aW9uIGtleSB0aGF0IGxpbmtzIGxlYWRzIHRvLlxuICAgKiBAcGFyYW0gcGF0aCB7c3RyaW5nfSAtIEFkZGl0aW9uYWwgcGF0aCBpbiB0YXJnZXQgYXBwbGljYXRpb24uXG4gICAqL1xuICBhc3luYyBuYXZpZ2F0ZVRvQXBwKGFwcEtleTogVCwgcGF0aD86IHN0cmluZykge1xuICAgIGNvbnN0IGNvbnRleHRQYXRoID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmdldEFwcCQoYXBwS2V5KS5waXBlKG1hcChhcHAgPT4gYXBwPy5jb250ZXh0UGF0aCkpXG4gICAgKTtcbiAgICBpZiAoIWNvbnRleHRQYXRoKSB7XG4gICAgICBjb25zdCBtc2cgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgZ2V0dGV4dCgnQXBwbGljYXRpb24gd2l0aCBrZXkgXCJ7e2FwcEtleX19XCIgbm90IGZvdW5kLicpLFxuICAgICAgICB7IGFwcEtleSB9XG4gICAgICApO1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZGFuZ2VyKG1zZyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGJhc2VVcmwgPSBgL2FwcHMvJHtjb250ZXh0UGF0aH1gO1xuICAgIGNvbnN0IHVybCA9IHBhdGggPyBgJHtiYXNlVXJsfS8ke3BhdGh9YCA6IGJhc2VVcmw7XG5cbiAgICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnLCAnbm9vcGVuZXIsbm9yZWZlcnJlcicpO1xuICB9XG59XG4iXX0=
@@ -4,6 +4,7 @@ export var ApplicationPluginStatus;
4
4
  ApplicationPluginStatus["LATEST"] = "LATEST";
5
5
  ApplicationPluginStatus["OUTDATED"] = "OUTDATED";
6
6
  ApplicationPluginStatus["REVOKED"] = "REVOKED";
7
+ ApplicationPluginStatus["AUTO"] = "AUTO";
7
8
  })(ApplicationPluginStatus || (ApplicationPluginStatus = {}));
8
9
  export var PackageType;
9
10
  (function (PackageType) {
@@ -24,4 +25,4 @@ export var PackageType;
24
25
  */
25
26
  PackageType["CUSTOM"] = "CUSTOM";
26
27
  })(PackageType || (PackageType = {}));
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvcGx1Z2lucy9wbHVnaW5zLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sQ0FBTixJQUFZLHVCQUtYO0FBTEQsV0FBWSx1QkFBdUI7SUFDakMsZ0RBQXFCLENBQUE7SUFDckIsNENBQWlCLENBQUE7SUFDakIsZ0RBQXFCLENBQUE7SUFDckIsOENBQW1CLENBQUE7QUFDckIsQ0FBQyxFQUxXLHVCQUF1QixLQUF2Qix1QkFBdUIsUUFLbEM7QUFFRCxNQUFNLENBQU4sSUFBWSxXQWlCWDtBQWpCRCxXQUFZLFdBQVc7SUFDckI7O09BRUc7SUFDSCxvQ0FBcUIsQ0FBQTtJQUNyQjs7T0FFRztJQUNILHNDQUF1QixDQUFBO0lBQ3ZCOztPQUVHO0lBQ0gsa0NBQW1CLENBQUE7SUFDbkI7O09BRUc7SUFDSCxnQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBakJXLFdBQVcsS0FBWCxXQUFXLFFBaUJ0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucywgVmVyc2lvbmluZ01hdHJpeCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB0eXBlIHsgUGx1Z2luc0V4cG9ydFNjb3BlcyB9IGZyb20gJy4uL2NvbW1vbi9BcHBsaWNhdGlvbk9wdGlvbnMnO1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5zQ29uZmlnIHtcbiAgcmVtb3RlczogQXBwbGljYXRpb25SZW1vdGVQbHVnaW5zO1xuICBleGNsdWRlZFJlbW90ZXM/OiBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnM7XG59XG5cbmV4cG9ydCBlbnVtIEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzIHtcbiAgT1JQSEFORUQgPSAnT1JQSEFORUQnLFxuICBMQVRFU1QgPSAnTEFURVNUJyxcbiAgT1VUREFURUQgPSAnT1VUREFURUQnLFxuICBSRVZPS0VEID0gJ1JFVk9LRUQnXG59XG5cbmV4cG9ydCBlbnVtIFBhY2thZ2VUeXBlIHtcbiAgLyoqXG4gICAqIEEgcGFja2FnZSBjb21pbmcgZnJvbSB0aGUgb2ZmaWNpYWwgU29mdHdhcmUgQUcgZ2l0aHViIGVudGVycHJpc2UuXG4gICAqL1xuICBPRkZJQ0lBTCA9ICdPRkZJQ0lBTCcsXG4gIC8qKlxuICAgKiBBIHBhY2thZ2UgY29taW5nIGZyb20gYW55IGNvbm5lY3RlZCBwYXJ0bmVyIHJlcG9zaXRvcnkuXG4gICAqL1xuICBDT01NVU5JVFkgPSAnQ09NTVVOSVRZJyxcbiAgLyoqXG4gICAqIEEgcGFja2FnZSB3aGVyZSB0aGUgb3JpZ2luIGlzIHVua25vd24gKGUuZy4gdXBsb2FkZWQgdG8gbWFuYWdlbWVudCB3aXRoIGFuIHVua25vd24gbGFiZWwpXG4gICAqL1xuICBVTktOT1dOID0gJ1VOS05PV04nLFxuICAvKipcbiAgICogQSBjdXN0b20gcGFja2FnZSBlLmcuIHVwbG9hZGVkIHRvIHRoZSB0ZW5hbnQgYnkgYSB1c2VyXG4gICAqL1xuICBDVVNUT00gPSAnQ1VTVE9NJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uUGx1Z2luIHtcbiAgaWQ6IHN0cmluZztcbiAgaWRMYXRlc3Q6IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgbW9kdWxlOiBzdHJpbmc7XG4gIHBhdGg6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIHNjb3BlPzogUGx1Z2luc0V4cG9ydFNjb3BlcztcbiAgaW5zdGFsbGVkPzogYm9vbGVhbjtcbiAgY29udGV4dFBhdGg/OiBzdHJpbmc7XG4gIHN0YXR1cz86IEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzO1xuICB0YWdzPzogc3RyaW5nW107XG4gIGxpY2Vuc2U/OiBzdHJpbmc7XG4gIHR5cGU/OiBQYWNrYWdlVHlwZTtcbiAgdmVyc2lvbmluZ01hdHJpeD86IFZlcnNpb25pbmdNYXRyaXg7XG4gIHNlbGVjdGVkPzogYm9vbGVhbjtcbn1cbiJdfQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvcGx1Z2lucy9wbHVnaW5zLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sQ0FBTixJQUFZLHVCQU1YO0FBTkQsV0FBWSx1QkFBdUI7SUFDakMsZ0RBQXFCLENBQUE7SUFDckIsNENBQWlCLENBQUE7SUFDakIsZ0RBQXFCLENBQUE7SUFDckIsOENBQW1CLENBQUE7SUFDbkIsd0NBQWEsQ0FBQTtBQUNmLENBQUMsRUFOVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBTWxDO0FBRUQsTUFBTSxDQUFOLElBQVksV0FpQlg7QUFqQkQsV0FBWSxXQUFXO0lBQ3JCOztPQUVHO0lBQ0gsb0NBQXFCLENBQUE7SUFDckI7O09BRUc7SUFDSCxzQ0FBdUIsQ0FBQTtJQUN2Qjs7T0FFRztJQUNILGtDQUFtQixDQUFBO0lBQ25COztPQUVHO0lBQ0gsZ0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQWpCVyxXQUFXLEtBQVgsV0FBVyxRQWlCdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnMsIFZlcnNpb25pbmdNYXRyaXggfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgdHlwZSB7IFBsdWdpbnNFeHBvcnRTY29wZXMgfSBmcm9tICcuLi9jb21tb24vQXBwbGljYXRpb25PcHRpb25zJztcbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luc0NvbmZpZyB7XG4gIHJlbW90ZXM6IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucztcbiAgZXhjbHVkZWRSZW1vdGVzPzogQXBwbGljYXRpb25SZW1vdGVQbHVnaW5zO1xufVxuXG5leHBvcnQgZW51bSBBcHBsaWNhdGlvblBsdWdpblN0YXR1cyB7XG4gIE9SUEhBTkVEID0gJ09SUEhBTkVEJyxcbiAgTEFURVNUID0gJ0xBVEVTVCcsXG4gIE9VVERBVEVEID0gJ09VVERBVEVEJyxcbiAgUkVWT0tFRCA9ICdSRVZPS0VEJyxcbiAgQVVUTyA9ICdBVVRPJ1xufVxuXG5leHBvcnQgZW51bSBQYWNrYWdlVHlwZSB7XG4gIC8qKlxuICAgKiBBIHBhY2thZ2UgY29taW5nIGZyb20gdGhlIG9mZmljaWFsIFNvZnR3YXJlIEFHIGdpdGh1YiBlbnRlcnByaXNlLlxuICAgKi9cbiAgT0ZGSUNJQUwgPSAnT0ZGSUNJQUwnLFxuICAvKipcbiAgICogQSBwYWNrYWdlIGNvbWluZyBmcm9tIGFueSBjb25uZWN0ZWQgcGFydG5lciByZXBvc2l0b3J5LlxuICAgKi9cbiAgQ09NTVVOSVRZID0gJ0NPTU1VTklUWScsXG4gIC8qKlxuICAgKiBBIHBhY2thZ2Ugd2hlcmUgdGhlIG9yaWdpbiBpcyB1bmtub3duIChlLmcuIHVwbG9hZGVkIHRvIG1hbmFnZW1lbnQgd2l0aCBhbiB1bmtub3duIGxhYmVsKVxuICAgKi9cbiAgVU5LTk9XTiA9ICdVTktOT1dOJyxcbiAgLyoqXG4gICAqIEEgY3VzdG9tIHBhY2thZ2UgZS5nLiB1cGxvYWRlZCB0byB0aGUgdGVuYW50IGJ5IGEgdXNlclxuICAgKi9cbiAgQ1VTVE9NID0gJ0NVU1RPTSdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBsaWNhdGlvblBsdWdpbiB7XG4gIGlkOiBzdHJpbmc7XG4gIGlkTGF0ZXN0OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIG1vZHVsZTogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xuICBzY29wZT86IFBsdWdpbnNFeHBvcnRTY29wZXM7XG4gIGluc3RhbGxlZD86IGJvb2xlYW47XG4gIGNvbnRleHRQYXRoPzogc3RyaW5nO1xuICBzdGF0dXM/OiBBcHBsaWNhdGlvblBsdWdpblN0YXR1cztcbiAgdGFncz86IHN0cmluZ1tdO1xuICBsaWNlbnNlPzogc3RyaW5nO1xuICB0eXBlPzogUGFja2FnZVR5cGU7XG4gIHZlcnNpb25pbmdNYXRyaXg/OiBWZXJzaW9uaW5nTWF0cml4O1xuICBzZWxlY3RlZD86IGJvb2xlYW47XG4gIGluc3RhbGxlZFZpYVRhZz86IHN0cmluZyB8IGZhbHNlO1xufVxuIl19