@softheon/armature 17.31.4 → 19.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. package/assets/styles/_b2c-variables.scss +7 -3
  2. package/assets/styles/_typography.scss +9 -8
  3. package/assets/styles/deprecated/_button-deprecated.scss +225 -225
  4. package/assets/styles/deprecated/_chip-deprecated.scss +57 -57
  5. package/assets/styles/deprecated/_material-override-deprecated.scss +3 -3
  6. package/assets/styles/deprecated/_table-deprecated.scss +3 -3
  7. package/assets/styles/material-override/_button-toggle-group.scss +14 -14
  8. package/assets/styles/material-override/_button.scss +57 -57
  9. package/assets/styles/material-override/_calendar.scss +6 -6
  10. package/assets/styles/material-override/_checkbox.scss +20 -19
  11. package/assets/styles/material-override/_expansion-panel.scss +19 -18
  12. package/assets/styles/material-override/_form-field.scss +14 -14
  13. package/assets/styles/material-override/_menu.scss +2 -2
  14. package/assets/styles/material-override/_radio-button.scss +24 -23
  15. package/assets/styles/material-override/_slider.scss +50 -50
  16. package/assets/styles/material-override/_switch.scss +8 -8
  17. package/assets/styles/material-override/_tooltip.scss +4 -4
  18. package/assets/styles/sof-styles-b2b.scss +3 -3
  19. package/assets/styles/sof-styles.scss +13 -17
  20. package/fesm2022/softheon-armature-ag-grid-components.mjs +20 -20
  21. package/fesm2022/softheon-armature-ag-grid-components.mjs.map +1 -1
  22. package/fesm2022/softheon-armature.mjs +426 -402
  23. package/fesm2022/softheon-armature.mjs.map +1 -1
  24. package/lib/base-components/sof-star-rating/sof-star-rating.component.d.ts +2 -0
  25. package/lib/faq/components/faq/faq.component.d.ts +4 -1
  26. package/lib/mfe/components/entity-base/entity-base.component.d.ts +5 -0
  27. package/lib/navigation/components/navigation/navigation.component.d.ts +1 -1
  28. package/lib/oauth/oauth.module.d.ts +1 -2
  29. package/package.json +15 -19
  30. package/esm2022/ag-grid-components/public-api.mjs +0 -6
  31. package/esm2022/ag-grid-components/softheon-armature-ag-grid-components.mjs +0 -5
  32. package/esm2022/ag-grid-components/src/ag-grid-components.module.mjs +0 -103
  33. package/esm2022/ag-grid-components/src/column-options-modal/column-options.component.mjs +0 -41
  34. package/esm2022/ag-grid-components/src/sof-table/sof-table.component.mjs +0 -526
  35. package/esm2022/ag-grid-components/src/table-cell/table-cell.component.mjs +0 -23
  36. package/esm2022/lib/alert-banner/alert-banner-api.mjs +0 -10
  37. package/esm2022/lib/alert-banner/alert-banner.module.mjs +0 -42
  38. package/esm2022/lib/alert-banner/components/alert-banner/alert-banner.component.mjs +0 -82
  39. package/esm2022/lib/alert-banner/models/alert-banner-config.mjs +0 -2
  40. package/esm2022/lib/alert-banner/models/alert-banner-context.mjs +0 -2
  41. package/esm2022/lib/alert-banner/models/constants.mjs +0 -16
  42. package/esm2022/lib/alert-banner/services/alert-banner.service.mjs +0 -44
  43. package/esm2022/lib/armature.module.mjs +0 -183
  44. package/esm2022/lib/base-components/base-component-api.mjs +0 -23
  45. package/esm2022/lib/base-components/base-component.module.mjs +0 -175
  46. package/esm2022/lib/base-components/confirm-address/sof-confirm-address/compare-address-pipe/compare-address.pipe.mjs +0 -20
  47. package/esm2022/lib/base-components/confirm-address/sof-confirm-address/sof-confirm-address.component.mjs +0 -60
  48. package/esm2022/lib/base-components/confirm-address/sof-confirm-address-county-change/sof-confirm-address-county-change.component.mjs +0 -58
  49. package/esm2022/lib/base-components/sof-alert/sof-alert.component.mjs +0 -79
  50. package/esm2022/lib/base-components/sof-badge/sof-badge.component.mjs +0 -132
  51. package/esm2022/lib/base-components/sof-banner/sof-banner.component.mjs +0 -49
  52. package/esm2022/lib/base-components/sof-bottom-sheet/sof-bottom-sheet.component.mjs +0 -152
  53. package/esm2022/lib/base-components/sof-button-toggle-group/sof-button-toggle-group.component.mjs +0 -182
  54. package/esm2022/lib/base-components/sof-callout/sof-callout.component.mjs +0 -72
  55. package/esm2022/lib/base-components/sof-chip/sof-chip.component.mjs +0 -62
  56. package/esm2022/lib/base-components/sof-context/sof-context.component.mjs +0 -124
  57. package/esm2022/lib/base-components/sof-handle/sof-handle.component.mjs +0 -115
  58. package/esm2022/lib/base-components/sof-image-checkbox/sof-image-checkbox.component.mjs +0 -58
  59. package/esm2022/lib/base-components/sof-input-stepper/sof-input-stepper.component.mjs +0 -179
  60. package/esm2022/lib/base-components/sof-modal/sof-modal.component.mjs +0 -61
  61. package/esm2022/lib/base-components/sof-progress-bar/sof-progress-bar.component.mjs +0 -79
  62. package/esm2022/lib/base-components/sof-radio-card/sof-radio-card.component.mjs +0 -35
  63. package/esm2022/lib/base-components/sof-simple-alert/sof-simple-alert.component.mjs +0 -49
  64. package/esm2022/lib/base-components/sof-star-rating/sof-star-rating.component.mjs +0 -38
  65. package/esm2022/lib/base-components/sof-utility-button/sof-utility-button.component.mjs +0 -62
  66. package/esm2022/lib/component-save-print/components/component-save-print/component-save-print.component.mjs +0 -91
  67. package/esm2022/lib/component-save-print/services/component-save-print.service.mjs +0 -30
  68. package/esm2022/lib/component-save-print/sof-ar-component-save-print.module.mjs +0 -29
  69. package/esm2022/lib/core/client-generated/api/session.service.mjs +0 -242
  70. package/esm2022/lib/core/client-generated/configuration.mjs +0 -59
  71. package/esm2022/lib/core/client-generated/encoder.mjs +0 -17
  72. package/esm2022/lib/core/client-generated/model/applicationUserModel.mjs +0 -20
  73. package/esm2022/lib/core/client-generated/model/assertedUserModel.mjs +0 -2
  74. package/esm2022/lib/core/client-generated/model/brandingModel.mjs +0 -2
  75. package/esm2022/lib/core/client-generated/model/errorModel.mjs +0 -13
  76. package/esm2022/lib/core/client-generated/model/folderLink.mjs +0 -13
  77. package/esm2022/lib/core/client-generated/model/identityProfile.mjs +0 -2
  78. package/esm2022/lib/core/client-generated/model/models.mjs +0 -20
  79. package/esm2022/lib/core/client-generated/model/oAuthModel.mjs +0 -13
  80. package/esm2022/lib/core/client-generated/model/preferencesRow.mjs +0 -13
  81. package/esm2022/lib/core/client-generated/model/rolesRow.mjs +0 -13
  82. package/esm2022/lib/core/client-generated/model/sessionGetResponseModel.mjs +0 -2
  83. package/esm2022/lib/core/client-generated/model/sessionPostRequestModel.mjs +0 -2
  84. package/esm2022/lib/core/client-generated/model/sessionPostResponseModel.mjs +0 -2
  85. package/esm2022/lib/core/client-generated/model/sessionPutRequestModel.mjs +0 -2
  86. package/esm2022/lib/core/client-generated/model/sessionPutResponseModel.mjs +0 -2
  87. package/esm2022/lib/core/client-generated/model/sessionResponseModel.mjs +0 -2
  88. package/esm2022/lib/core/client-generated/model/settingsProfile.mjs +0 -2
  89. package/esm2022/lib/core/client-generated/model/themePaletteColorsModel.mjs +0 -13
  90. package/esm2022/lib/core/client-generated/model/themePaletteModel.mjs +0 -2
  91. package/esm2022/lib/core/client-generated/model/trackingModel.mjs +0 -13
  92. package/esm2022/lib/core/client-generated/model/validationRecordsRow.mjs +0 -13
  93. package/esm2022/lib/core/client-generated/variables.mjs +0 -9
  94. package/esm2022/lib/core/components/app-template/app-template.component.mjs +0 -269
  95. package/esm2022/lib/core/functions/guid.mjs +0 -11
  96. package/esm2022/lib/core/functions/naming-convention.mjs +0 -33
  97. package/esm2022/lib/core/functions/route-to-pre-login-route.mjs +0 -13
  98. package/esm2022/lib/core/initializer/abstract-startup-service.mjs +0 -4
  99. package/esm2022/lib/core/initializer/initializer.service.mjs +0 -302
  100. package/esm2022/lib/core/interceptors/armature-auth-token-append.interceptor.mjs +0 -73
  101. package/esm2022/lib/core/models/base-config.mjs +0 -2
  102. package/esm2022/lib/core/models/constants.mjs +0 -17
  103. package/esm2022/lib/core/models/data-store-config.mjs +0 -4
  104. package/esm2022/lib/core/models/federated-module-config.mjs +0 -2
  105. package/esm2022/lib/core/models/header-config.mjs +0 -2
  106. package/esm2022/lib/core/models/http-verbs.mjs +0 -9
  107. package/esm2022/lib/core/models/nav-panel-config.mjs +0 -2
  108. package/esm2022/lib/core/models/navigation-config.mjs +0 -2
  109. package/esm2022/lib/core/models/oidc-auth-settings.mjs +0 -2
  110. package/esm2022/lib/core/models/route-path.mjs +0 -7
  111. package/esm2022/lib/core/models/session-config.mjs +0 -4
  112. package/esm2022/lib/core/models/styles.mjs +0 -2
  113. package/esm2022/lib/core/models/subdomain-config.mjs +0 -2
  114. package/esm2022/lib/core/models/typed-session.mjs +0 -4
  115. package/esm2022/lib/core/models/user-entity-service-config.mjs +0 -12
  116. package/esm2022/lib/core/services/authorization.service.mjs +0 -175
  117. package/esm2022/lib/core/services/banner.service.mjs +0 -43
  118. package/esm2022/lib/core/services/base-config.service.mjs +0 -32
  119. package/esm2022/lib/core/services/custom-auth-config.service.mjs +0 -4
  120. package/esm2022/lib/core/services/default-config.service.mjs +0 -19
  121. package/esm2022/lib/core/services/federated-module.service.mjs +0 -60
  122. package/esm2022/lib/core/services/session.service.mjs +0 -387
  123. package/esm2022/lib/core/services/user-entity.service.mjs +0 -145
  124. package/esm2022/lib/distributed-cache/client-generated/api/api.mjs +0 -4
  125. package/esm2022/lib/distributed-cache/client-generated/api/cache.service.mjs +0 -213
  126. package/esm2022/lib/distributed-cache/client-generated/configuration.mjs +0 -59
  127. package/esm2022/lib/distributed-cache/client-generated/encoder.mjs +0 -17
  128. package/esm2022/lib/distributed-cache/client-generated/model/cacheExpirationType.mjs +0 -16
  129. package/esm2022/lib/distributed-cache/client-generated/model/createCacheEntryRequestModel.mjs +0 -2
  130. package/esm2022/lib/distributed-cache/client-generated/model/models.mjs +0 -5
  131. package/esm2022/lib/distributed-cache/client-generated/model/retrieveCacheEntryResponseModel.mjs +0 -13
  132. package/esm2022/lib/distributed-cache/client-generated/model/updateCacheEntryRequestModel.mjs +0 -13
  133. package/esm2022/lib/distributed-cache/client-generated/variables.mjs +0 -9
  134. package/esm2022/lib/distributed-cache/distributed-cache-api.mjs +0 -8
  135. package/esm2022/lib/distributed-cache/distributed-cache.module.mjs +0 -38
  136. package/esm2022/lib/distributed-cache/models/constants.mjs +0 -3
  137. package/esm2022/lib/distributed-cache/models/policy-person.mjs +0 -9
  138. package/esm2022/lib/distributed-cache/services/server-cache.service.mjs +0 -48
  139. package/esm2022/lib/error/components/error-common/error-common.component.mjs +0 -25
  140. package/esm2022/lib/error/error-api.mjs +0 -7
  141. package/esm2022/lib/error/error.module.mjs +0 -31
  142. package/esm2022/lib/error/models/error-common-config.mjs +0 -8
  143. package/esm2022/lib/faq/components/faq/faq.component.mjs +0 -40
  144. package/esm2022/lib/faq/faq-api.mjs +0 -8
  145. package/esm2022/lib/faq/faq.module.mjs +0 -41
  146. package/esm2022/lib/faq/models/faq-config.mjs +0 -4
  147. package/esm2022/lib/faq/models/faq.mjs +0 -8
  148. package/esm2022/lib/feedback-tool/components/feedback-tool/feedback-tool.component.mjs +0 -81
  149. package/esm2022/lib/feedback-tool/feedback-tool-api.mjs +0 -5
  150. package/esm2022/lib/feedback-tool/feedback-tool.module.mjs +0 -44
  151. package/esm2022/lib/footer/components/footer/footer.component.mjs +0 -25
  152. package/esm2022/lib/footer/components/site-map/site-map.component.mjs +0 -25
  153. package/esm2022/lib/footer/footer-api.mjs +0 -10
  154. package/esm2022/lib/footer/footer.module.mjs +0 -45
  155. package/esm2022/lib/footer/models/enum/site-map-direction.mjs +0 -15
  156. package/esm2022/lib/footer/models/footer-config.mjs +0 -4
  157. package/esm2022/lib/footer/models/site-map-models.mjs +0 -2
  158. package/esm2022/lib/forms/components/sof-address/sof-address.component.mjs +0 -113
  159. package/esm2022/lib/forms/directives/alphanumeric/alphanumeric.directive.mjs +0 -78
  160. package/esm2022/lib/forms/directives/date-input-filter/date-input-filter.directive.mjs +0 -20
  161. package/esm2022/lib/forms/directives/input-trim/input-trim.directive.mjs +0 -110
  162. package/esm2022/lib/forms/directives/letters-characters/letters-characters.directive.mjs +0 -87
  163. package/esm2022/lib/forms/directives/letters-only/letters-only.directive.mjs +0 -85
  164. package/esm2022/lib/forms/directives/numbers-only/numbers-only.directive.mjs +0 -55
  165. package/esm2022/lib/forms/forms-api.mjs +0 -21
  166. package/esm2022/lib/forms/forms.module.mjs +0 -91
  167. package/esm2022/lib/forms/models/address.mjs +0 -2
  168. package/esm2022/lib/forms/models/constants.mjs +0 -10
  169. package/esm2022/lib/forms/models/county.mjs +0 -2
  170. package/esm2022/lib/forms/models/enums/states.mjs +0 -66
  171. package/esm2022/lib/forms/pipes/phone-format.pipe.mjs +0 -33
  172. package/esm2022/lib/forms/services/alert.service.mjs +0 -167
  173. package/esm2022/lib/header/components/header/header.component.mjs +0 -165
  174. package/esm2022/lib/header/components/mobile-header-menu/mobile-header-menu.component.mjs +0 -39
  175. package/esm2022/lib/header/components/sof-header/menu-prevent-close-directive/menu-prevent-close.directive.mjs +0 -21
  176. package/esm2022/lib/header/components/sof-header/sof-header.component.mjs +0 -158
  177. package/esm2022/lib/header/components/sof-header/user-initials-pipe/user-initials.pipe.mjs +0 -22
  178. package/esm2022/lib/header/header-api.mjs +0 -15
  179. package/esm2022/lib/header/header.module.mjs +0 -90
  180. package/esm2022/lib/header/models/header-auth.settings.mjs +0 -32
  181. package/esm2022/lib/header/models/header-external-links.mjs +0 -2
  182. package/esm2022/lib/header/models/header-language.settings.mjs +0 -2
  183. package/esm2022/lib/header/models/header-theme.settings.mjs +0 -2
  184. package/esm2022/lib/header/models/header.settings.mjs +0 -2
  185. package/esm2022/lib/header/models/mobile-header-nav.settings.mjs +0 -2
  186. package/esm2022/lib/mfe/components/entity-base/entity-base.component.mjs +0 -72
  187. package/esm2022/lib/mfe/components/entity-inject-wrapper/entity-inject-wrapper.component.mjs +0 -83
  188. package/esm2022/lib/mfe/mfe.module.mjs +0 -24
  189. package/esm2022/lib/mfe/models/entity-config-base.mjs +0 -2
  190. package/esm2022/lib/mfe/models/entity-dto.mjs +0 -5
  191. package/esm2022/lib/mfe/services/entity-helper.service.mjs +0 -113
  192. package/esm2022/lib/navigation/components/b2b-nav/b2b-nav.component.mjs +0 -232
  193. package/esm2022/lib/navigation/components/navigation/navigation.component.mjs +0 -560
  194. package/esm2022/lib/navigation/components/sof-breadcrumbs/sof-breadcrumbs-hierarchy/sof-breadcrumbs-hierarchy.component.mjs +0 -60
  195. package/esm2022/lib/navigation/components/sof-breadcrumbs/sof-breadcrumbs-history/sof-breadcrumbs-history.component.mjs +0 -76
  196. package/esm2022/lib/navigation/components/sof-navigation-panel/models/nav-panel-logo.mjs +0 -2
  197. package/esm2022/lib/navigation/components/sof-navigation-panel/models/nav-panel-nodes.mjs +0 -2
  198. package/esm2022/lib/navigation/components/sof-navigation-panel/models/nav-panel-settings.mjs +0 -2
  199. package/esm2022/lib/navigation/components/sof-navigation-panel/sof-nav-panel.component.mjs +0 -105
  200. package/esm2022/lib/navigation/components/sof-sub-navigation/sof-sub-navigation.component.mjs +0 -60
  201. package/esm2022/lib/navigation/components/sof-tabs-navigation/sof-tabs.component.mjs +0 -22
  202. package/esm2022/lib/navigation/models/breadcrumb.mjs +0 -3
  203. package/esm2022/lib/navigation/models/nav-theme.settings.mjs +0 -2
  204. package/esm2022/lib/navigation/models/nav.settings.mjs +0 -2
  205. package/esm2022/lib/navigation/models/navigation.mjs +0 -2
  206. package/esm2022/lib/navigation/navigation-api.mjs +0 -18
  207. package/esm2022/lib/navigation/navigation.module.mjs +0 -139
  208. package/esm2022/lib/oauth/models/constants.mjs +0 -6
  209. package/esm2022/lib/oauth/models/generated/accountManagementAssertionModel.mjs +0 -2
  210. package/esm2022/lib/oauth/models/generated/accountManagementRefreshRequestModel.mjs +0 -2
  211. package/esm2022/lib/oauth/models/generated/accountManagementResponseModel.mjs +0 -2
  212. package/esm2022/lib/oauth/models/generated/applicationType.mjs +0 -33
  213. package/esm2022/lib/oauth/models/generated/coverageDetail.mjs +0 -19
  214. package/esm2022/lib/oauth/models/generated/finance.mjs +0 -13
  215. package/esm2022/lib/oauth/models/generated/iSsoResponseModel.mjs +0 -13
  216. package/esm2022/lib/oauth/models/generated/iSsoResponseModelAccountManagementAssertionModel.mjs +0 -2
  217. package/esm2022/lib/oauth/models/generated/person.mjs +0 -13
  218. package/esm2022/lib/oauth/models/generated/policy.mjs +0 -2
  219. package/esm2022/lib/oauth/models/generated/refreshResponseModel.mjs +0 -13
  220. package/esm2022/lib/oauth/models/hybrid-saml-oauth-config.mjs +0 -4
  221. package/esm2022/lib/oauth/oauth-api.mjs +0 -15
  222. package/esm2022/lib/oauth/oauth.module.mjs +0 -29
  223. package/esm2022/lib/oauth/services/hybrid-saml-oauth.service.mjs +0 -201
  224. package/esm2022/lib/rbac/directives/rbac-action.directive.mjs +0 -50
  225. package/esm2022/lib/rbac/models/access-token-claims.mjs +0 -23
  226. package/esm2022/lib/rbac/models/constants.mjs +0 -4
  227. package/esm2022/lib/rbac/models/decoded-access-token.mjs +0 -69
  228. package/esm2022/lib/rbac/models/rbac-config.mjs +0 -4
  229. package/esm2022/lib/rbac/models/role-access.mjs +0 -10
  230. package/esm2022/lib/rbac/rbac-api.mjs +0 -15
  231. package/esm2022/lib/rbac/rbac.module.mjs +0 -51
  232. package/esm2022/lib/rbac/services/ar-role-nav.service.mjs +0 -104
  233. package/esm2022/lib/rbac/services/oauth2-role.service.mjs +0 -114
  234. package/esm2022/lib/rbac/services/role-nav.service.mjs +0 -4
  235. package/esm2022/lib/rbac/services/tokens.mjs +0 -4
  236. package/esm2022/lib/resize-panels/components/resize-panels/resize-panels.component.mjs +0 -156
  237. package/esm2022/lib/resize-panels/models/resize-event.mjs +0 -2
  238. package/esm2022/lib/resize-panels/resize-panels-api.mjs +0 -5
  239. package/esm2022/lib/resize-panels/resize-panels.module.mjs +0 -23
  240. package/esm2022/lib/rum/models/arm-error.mjs +0 -29
  241. package/esm2022/lib/rum/models/rum-config.mjs +0 -4
  242. package/esm2022/lib/rum/rum-api.mjs +0 -10
  243. package/esm2022/lib/rum/rum.module.mjs +0 -48
  244. package/esm2022/lib/rum/services/rum.service.mjs +0 -115
  245. package/esm2022/lib/rum/services/shared-error.service.mjs +0 -45
  246. package/esm2022/lib/rum/services/softheon-error-handler.service.mjs +0 -76
  247. package/esm2022/lib/saml/components/redirect-saml/redirect-saml.component.mjs +0 -79
  248. package/esm2022/lib/saml/models/i-saml-request.mjs +0 -2
  249. package/esm2022/lib/saml/models/i-saml-response.mjs +0 -2
  250. package/esm2022/lib/saml/models/redirect-saml-request.mjs +0 -4
  251. package/esm2022/lib/saml/models/sso-gateway-model.mjs +0 -4
  252. package/esm2022/lib/saml/saml-api.mjs +0 -15
  253. package/esm2022/lib/saml/saml.module.mjs +0 -43
  254. package/esm2022/lib/saml/services/entry/abstract-saml-entry.service.mjs +0 -4
  255. package/esm2022/lib/saml/services/entry/sso-gateway-entry.service.mjs +0 -36
  256. package/esm2022/lib/saml/services/send-off/abstract-saml.service.mjs +0 -4
  257. package/esm2022/lib/saml/services/send-off/saml.service.mjs +0 -39
  258. package/esm2022/lib/sof-pipe/constants/constants.mjs +0 -17
  259. package/esm2022/lib/sof-pipe/models/sof-date-pipe-format.mjs +0 -2
  260. package/esm2022/lib/sof-pipe/pipes/sof-blank/sof-blank.pipe.mjs +0 -39
  261. package/esm2022/lib/sof-pipe/pipes/sof-date/sof-date.pipe.mjs +0 -59
  262. package/esm2022/lib/sof-pipe/pipes/sof-ssn/sof-ssn.pipe.mjs +0 -28
  263. package/esm2022/lib/sof-pipe/sof-pipe.api.mjs +0 -9
  264. package/esm2022/lib/sof-pipe/sof-pipe.module.mjs +0 -39
  265. package/esm2022/lib/theming/directives/css-override.directive.mjs +0 -69
  266. package/esm2022/lib/theming/models/css-override.mjs +0 -11
  267. package/esm2022/lib/theming/services/theme.service.mjs +0 -187
  268. package/esm2022/lib/theming/theme-api.mjs +0 -6
  269. package/esm2022/lib/theming/theme.module.mjs +0 -31
  270. package/esm2022/public-api.mjs +0 -60
  271. package/esm2022/softheon-armature.mjs +0 -5
@@ -1,232 +0,0 @@
1
- import { BreakpointObserver, LayoutModule } from '@angular/cdk/layout';
2
- import { CommonModule } from '@angular/common';
3
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, inject } from '@angular/core';
4
- import { toSignal } from '@angular/core/rxjs-interop';
5
- import { MatButtonModule } from '@angular/material/button';
6
- import { MatMenuModule } from '@angular/material/menu';
7
- import { MatSidenavContent, MatSidenavModule } from '@angular/material/sidenav';
8
- import { MatTooltipModule } from '@angular/material/tooltip';
9
- import { NavigationEnd, Router, RouterModule } from '@angular/router';
10
- import { FlexLayoutModule } from '@ngbracket/ngx-layout';
11
- import { TranslateModule } from '@ngx-translate/core';
12
- import { filter } from 'rxjs';
13
- import * as i0 from "@angular/core";
14
- import * as i1 from "@angular/material/sidenav";
15
- import * as i2 from "@angular/material/tooltip";
16
- import * as i3 from "@angular/material/button";
17
- import * as i4 from "@angular/router";
18
- import * as i5 from "@ngx-translate/core";
19
- import * as i6 from "@angular/common";
20
- import * as i7 from "@ngbracket/ngx-layout/flex";
21
- import * as i8 from "@ngbracket/ngx-layout/extended";
22
- import * as i9 from "@angular/material/menu";
23
- export class B2bNavComponent {
24
- constructor() {
25
- /** Utility for checking the matching state of media queries.*/
26
- this.breakpointObserver = inject(BreakpointObserver);
27
- /** The router */
28
- this.router = inject(Router);
29
- /** Has the small screen breakpoint been hit */
30
- this.isSmallScreen = toSignal(this.breakpointObserver.observe('(max-width: 959px)'));
31
- /**
32
- * Should scroll to top on `NavigationEnd` event?
33
- * @default true
34
- */
35
- this.scrollToTopOnNavigationEndEvent = true;
36
- /**
37
- * Is the nav panel open
38
- * @note this is needed to pass panel opened state to the SofHeaderPortalComponent
39
- */
40
- this.isNavPanelOpenedEvent = new EventEmitter();
41
- /** Component Input - the navigation settings */
42
- this.settings = {};
43
- /** Component Input - the navigation settings */
44
- this.advancedSettings = {};
45
- /** Component Input - the navigation settings */
46
- this.themeSettings = {};
47
- /** Component Input - the navigation language settings */
48
- this.languageSettings = {};
49
- /** Sets language **/
50
- this.setLanguage$ = new EventEmitter();
51
- /** True when the navigation is open */
52
- this.isNavOpen = true;
53
- /** The selected navigation node */
54
- this.currentMenuNode = undefined;
55
- /** The selected nav node */
56
- this.selectedNodeIndex = undefined;
57
- /** The selected sub nav node */
58
- this.selectedSubNodeIndex = undefined;
59
- }
60
- /** On Init - Initialize the settings */
61
- ngOnInit() {
62
- this.initSettings();
63
- if (this.scrollToTopOnNavigationEndEvent) {
64
- this.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe((e) => {
65
- this.scrollToTop();
66
- this.listenForRouteChanges(e);
67
- });
68
- }
69
- }
70
- /** Shrinks the navigation */
71
- shrinkNav() {
72
- this.isNavOpen = !this.isNavOpen;
73
- }
74
- /**
75
- * Opens the menu for the navigation
76
- * @param node The node
77
- * @param event The event
78
- * @returns void
79
- */
80
- openMenu(node, event, index) {
81
- if (this.isNavOpen || !node.subNodes || !node.subNodes.length || this.selectedNodeIndex === index) {
82
- return;
83
- }
84
- this.currentMenuNode = node;
85
- const button = document.getElementById('navMenuTrigger');
86
- button.style.position = 'fixed';
87
- button.style.top = event.pageY - 30 + 'px';
88
- button.style.left = event.pageX + 30 + 'px';
89
- this.trigger.openMenu();
90
- }
91
- /**
92
- * Initializes the nav panel settings, defaults will be set if `null` or `undefined`
93
- * @note The 'nullish coalescing assignment operator' `??=` assigns defaults for `boolean` and `number` types,
94
- * for `number` types this will allow for `0` to be accepted. For a `string`, use 'logical OR assignment' `||=` operator,
95
- * as this will also prevent empty strings `" "`.
96
- * @see `??=` {@link [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_assignment#using_nullish_coalescing_assignment)}
97
- * @see `||=` {@link [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_OR_assignment#try_it)}
98
- */
99
- initSettings() {
100
- this.settings ??= {};
101
- this.settings.allowNavToggle ??= true;
102
- this.initAdvancedSettings();
103
- this.initBasicSettings();
104
- this.initThemeSettings();
105
- }
106
- /**
107
- * Scrolls to the top of page
108
- * @note using `window.scrollTo` will not work if using this component as the main scrollbar does not live on the window level.
109
- * Configuring `scrollPositionRestoration` in the router module will not work either.
110
- */
111
- scrollToTop() {
112
- if (this.sidenavContent) {
113
- this.sidenavContent.scrollTo({ top: 0 });
114
- }
115
- }
116
- /** Listens for route changes */
117
- listenForRouteChanges(e) {
118
- const flattenSubNodes = new Map();
119
- this.navigationData.forEach((n, index) => {
120
- if (n.subNodes?.length) {
121
- n.subNodes.forEach((sn, sIndex) => {
122
- flattenSubNodes.set(`${index}:${sIndex}`, sn);
123
- });
124
- }
125
- });
126
- flattenSubNodes.forEach((v, k) => {
127
- if (e.url.startsWith(v.route)) {
128
- const split = k.split(':');
129
- this.selectedNodeIndex = +split[0];
130
- this.selectedSubNodeIndex = +split[1];
131
- }
132
- });
133
- }
134
- /** Initializes the advanced nav settings */
135
- initAdvancedSettings() {
136
- this.advancedSettings.topGapDesktop = this.advancedSettings.topGapDesktop || 0;
137
- this.advancedSettings.topGapMobile = this.advancedSettings.topGapMobile || this.settings.headerHeight;
138
- this.advancedSettings.marginTopDesktop = this.advancedSettings.marginTopDesktop || 0;
139
- this.advancedSettings.marginTopMobile = this.advancedSettings.marginTopMobile || 0;
140
- }
141
- /** Initializes the nav theme settings */
142
- initThemeSettings() {
143
- this.themeSettings.contentBgColor ? this.setThemeColor('content-bg-color', this.themeSettings.contentBgColor) : undefined;
144
- this.themeSettings.fontColor ? this.setThemeColor('font-color', this.themeSettings.fontColor) : undefined;
145
- this.themeSettings.fontColor = this.themeSettings.fontColor || '#000';
146
- this.themeSettings.mobileBgColor = this.themeSettings.mobileBgColor || '#ffffff';
147
- this.themeSettings.bgGradientColor1 ? this.setThemeColor('bg-gradient-color-1', this.themeSettings.bgGradientColor1) : undefined;
148
- this.themeSettings.bgGradientColor2 ? this.setThemeColor('bg-gradient-color-2', this.themeSettings.bgGradientColor2) : undefined;
149
- this.themeSettings.borderRightColor ? this.setThemeColor('border-right-color', this.themeSettings.borderRightColor) : undefined;
150
- this.themeSettings.listBorderColor ? this.setThemeColor('list-border-color', this.themeSettings.listBorderColor) : undefined;
151
- this.themeSettings.highlightGradient1 ? this.setThemeColor('highlight-gradient-1', this.themeSettings.highlightGradient1) : undefined;
152
- this.themeSettings.highlightGradient2 ? this.setThemeColor('highlight-gradient-2', this.themeSettings.highlightGradient2) : undefined;
153
- this.themeSettings.subHighlightBorderColor ?
154
- this.setThemeColor('sub-highlight-border-color', this.themeSettings.subHighlightBorderColor) : undefined;
155
- this.themeSettings.subHighlightBgColor ?
156
- this.setThemeColor('sub-highlight-bg-color', this.themeSettings.subHighlightBgColor) : undefined;
157
- }
158
- /** Initializes the basic nav settings */
159
- initBasicSettings() {
160
- this.settings.fontAwesomeMenuIcon = this.settings.fontAwesomeMenuIcon || 'fas fa-angle-double-left';
161
- this.settings.fontAwesomeMenuIconClosed = this.settings.fontAwesomeMenuIconClosed || 'fas fa-angle-double-right';
162
- this.settings.allowNavToggle = this.settings.allowNavToggle == null ? true : this.settings.allowNavToggle;
163
- this.settings.headerHeight = this.settings.headerHeight || 60;
164
- this.settings.menuButtonSRText = this.settings.menuButtonSRText || 'Menu Button';
165
- this.settings.menuStyle = this.settings.menuStyle || 'static';
166
- this.settings.displayNumbers = this.settings.displayNumbers == null ? true : this.settings.displayNumbers;
167
- this.settings.progressSectionCompleteIcon = this.settings.progressSectionCompleteIcon || 'fas fa-check-circle';
168
- this.settings.progressSectionFutureIcon = this.settings.progressSectionFutureIcon || 'far fa-circle';
169
- this.settings.progressSectionCurrentIcon = this.settings.progressSectionCurrentIcon || 'fas fa-circle';
170
- this.settings.progressMenuCompleteIcon = this.settings.progressMenuCompleteIcon || 'far fa-check';
171
- this.settings.showProgressBar = this.settings.showProgressBar == null ? true : this.settings.showProgressBar;
172
- this.settings.sideNavWidthDesktop = this.settings.sideNavWidthDesktop || '350';
173
- this.settings.sideNavWidthMobile = this.settings.sideNavWidthMobile || '350';
174
- this.settings.overrideNavigation = this.settings.overrideNavigation || false;
175
- this.settings.progressMenuWidth = this.settings.progressMenuWidth || '280';
176
- this.settings.useCustomMobileFooter = this.settings.useCustomMobileFooter != null ? this.settings.useCustomMobileFooter : false;
177
- }
178
- /**
179
- * Sets the theme color
180
- * @param variable the css variable name
181
- * @param color the color
182
- */
183
- setThemeColor(variable, color) {
184
- document.documentElement.style.setProperty(`--sof-nav-${variable}`, color);
185
- }
186
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: B2bNavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
187
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: B2bNavComponent, isStandalone: true, selector: "sof-nav-b2b", inputs: { scrollToTopOnNavigationEndEvent: "scrollToTopOnNavigationEndEvent", navigationData: "navigationData", settings: "settings", advancedSettings: "advancedSettings", themeSettings: "themeSettings", languageSettings: "languageSettings", currentLang: "currentLang", logOutText: "logOutText" }, outputs: { isNavPanelOpenedEvent: "isNavPanelOpenedEvent", setLanguage$: "setLanguage$" }, providers: [
188
- LayoutModule
189
- ], viewQueries: [{ propertyName: "sidenavContent", first: true, predicate: MatSidenavContent, descendants: true }, { propertyName: "trigger", first: true, predicate: ["navMenuTrigger"], descendants: true }], ngImport: i0, template: "<div class=\"sof-nav-panel-container\" style=\"top: 64px\">\r\n <mat-sidenav-container>\r\n <mat-sidenav #navPanel class=\"sof-nav-panel\" [ngClass]=\"{'sof-nav-panel-container-collapsed': !isNavOpen}\"\r\n [opened]=\"true\" [mode]=\"isSmallScreen().matches ? 'over' : 'side'\">\r\n\r\n <ng-content select=\"[sof-ar-nav-header]\"></ng-content>\r\n\r\n <nav [attr.aria-label]=\"'main'\" [style.paddingBottom.px]=\"!!brandLogo ? 0 : 40\" fxLayout=\"column\"\r\n style=\"height: 100%\">\r\n <ul class=\"sof-nav-panel-list\" [class.mobile]=\"isSmallScreen().matches\">\r\n @for (node of navigationData; track $index) {\r\n <li fxFlex=\"auto\" class=\"sof-nav-panel-list-item\"\r\n [class.has-subnodes]=\"node.subNodes?.length && isNavOpen\">\r\n @if (!node.route) {\r\n <div (click)=\"openMenu(node, $event, $index)\" class=\"sof-nav-panel-link primary\" matTooltip=\"{{node.text | translate}}\" matTooltipPosition=\"right\">\r\n <i [ngClass]=\"{'non-link-icon-collapsed': !isNavOpen}\" class=\"{{node.fontAwesomeIcon}} sof-nav-panel-link-icon\" aria-hidden=\"true\"></i>\r\n <span *ngIf=\"isNavOpen\">{{node.text| translate}}</span>\r\n </div>\r\n }@else {\r\n <a (click)=\"openMenu(node, $event, $index)\" class=\"sof-nav-panel-link\" [routerLink]=\"node.route\"\r\n routerLinkActive=\"sof-nav-panel-link-active\" matTooltip=\"{{node.text | translate}}\" matTooltipPosition=\"right\">\r\n <i class=\"{{node.fontAwesomeIcon}} sof-nav-panel-link-icon\" aria-hidden=\"true\"></i>\r\n <span *ngIf=\"isNavOpen\" class=\"sof-nav-panel-link-label primary\">{{node.text |\r\n translate}}</span>\r\n </a>\r\n }\r\n @if(isNavOpen || $index === selectedNodeIndex) {\r\n <ul class=\"sof-nav-panel-list sub-list\">\r\n @for (subNode of node.subNodes; track $index) {\r\n <li>\r\n <a (click)=\"isSmallScreen().matches ? navPanel.close() : null\"\r\n class=\"sof-nav-panel-link sof-sub-nav-panel-link\" [routerLink]=\"subNode.route\"\r\n routerLinkActive=\"sof-nav-panel-link-active\" matTooltip=\"{{subNode.text | translate}}\" matTooltipPosition=\"right\">\r\n <span class=\"sof-nav-panel-link-label\">\r\n <i class=\"{{subNode.icon || 'ph ph-files'}}\"></i>\r\n <span *ngIf=\"isNavOpen\" style=\"padding-left: 8px\">{{subNode.text | translate}} </span>\r\n </span>\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n </li>\r\n }\r\n @if (brandLogo) {\r\n <div class=\"logo\" m-t-auto>\r\n <img [src]=\"brandLogo.url\" [alt]=\"brandLogo.altText\">\r\n </div>\r\n }\r\n </ul>\r\n <button id=\"navMenuTrigger\" #navMenuTrigger=\"matMenuTrigger\" [matMenuTriggerFor]=\"navMenu\"\r\n style=\"position: absolute; height: 1px; width: 1px; opacity: 0;\"></button>\r\n <mat-menu #navMenu=\"matMenu\" xPosition=\"after\">\r\n @if(currentMenuNode && currentMenuNode.subNodes?.length) {\r\n <a mat-menu-item [routerLink]=\"currentMenuNode.route\" routerLinkActive=\"sof-nav-panel-link-active\">\r\n <span class=\"sof-nav-panel-link-label menu-text bold\">{{currentMenuNode.text | translate}} </span>\r\n </a>\r\n @for(subnode of currentMenuNode.subNodes; track $index) {\r\n <a mat-menu-item [routerLink]=\"subnode.route\" routerLinkActive=\"sof-nav-panel-link-active\">\r\n <span class=\"sof-nav-panel-link-label menu-text\">{{subnode.text | translate}} </span>\r\n </a>\r\n }\r\n }\r\n </mat-menu>\r\n <div fxFlex=\"auto\" style=\"width: 100%\" fxLayoutAlign=\"end end\" fxLayout=\"row\">\r\n <button fxFlex=\"40px\" id=\"sof-ar-nav-btn-menu\" aria-label=\"Menu Button\" mat-icon-button\r\n [disableRipple]=\"true\" class=\"sof-ar-nav-menu-btn\" (click)=\"shrinkNav()\"\r\n [class.hidden]=\"!(settings.allowNavToggle) || settings.hideNavigation\">\r\n <span *ngIf=\"isNavOpen; else closedIcon\" aria-hidden=\"true\" class=\"sof-ar-nav-menu-icon\">\r\n <i class=\"{{settings.fontAwesomeMenuIcon}} menu-icon\"></i>\r\n </span>\r\n <ng-template #closedIcon>\r\n <span aria-hidden=\"true\" class=\"sof-ar-nav-menu-icon\">\r\n <i class=\"{{settings.fontAwesomeMenuIconClosed}} menu-icon\"></i>\r\n </span>\r\n </ng-template>\r\n <span class=\"sr-only\">{{settings.menuButtonSRText | translate}}</span>\r\n </button>\r\n </div>\r\n </nav>\r\n </mat-sidenav>\r\n <mat-sidenav-content [ngClass]=\"{'nav-content-collapsed': !isNavOpen}\">\r\n <ng-content sof-ar-nav-content></ng-content>\r\n </mat-sidenav-content>\r\n </mat-sidenav-container>\r\n</div>", styles: [":root{--primary-color-50-parts: #edf4ff;--primary-color-100-parts: #b9d4fc;--primary-color-200-parts: #8ab7fb;--primary-color-300-parts: #5b9af9;--primary-color-400-parts: #3784f7;--primary-color-500-parts: #146ef6;--primary-color-600-parts: #1266f5;--primary-color-700-parts: #0e5bf3;--primary-color-800-parts: #0b51f2;--primary-color-900-parts: #063fef;--primary-color-A50-parts: rgba(20, 110, 246, .04);--primary-color-A100-parts: rgba(20, 110, 246, .08);--primary-color-A200-parts: rgba(20, 110, 246, .16);--primary-color-A300-parts: rgba(20, 110, 246, .24);--primary-color-A400-parts: rgba(20, 110, 246, .32);--primary-color-A500-parts: rgba(20, 110, 246, .4);--primary-color-A600-parts: rgba(20, 110, 246, .48);--primary-color-A700-parts: rgba(20, 110, 246, .56);--primary-color-A800-parts: rgba(20, 110, 246, .64);--primary-color-A900-parts: rgba(20, 110, 246, .72);--primary-color-contrast-50-parts: rgba(0, 0, 0, .87);--primary-color-contrast-100-parts: rgba(0, 0, 0, .87);--primary-color-contrast-200-parts: rgba(0, 0, 0, .87);--primary-color-contrast-300-parts: rgba(0, 0, 0, .87);--primary-color-contrast-400-parts: rgba(0, 0, 0, .87);--primary-color-contrast-500-parts: rgba(255, 255, 255, 1);--primary-color-contrast-600-parts: rgba(255, 255, 255, 1);--primary-color-contrast-700-parts: rgba(255, 255, 255, 1);--primary-color-contrast-800-parts: rgba(255, 255, 255, 1);--primary-color-contrast-900-parts: rgba(255, 255, 255, 1);--primary-color-contrast-A50-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A100-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A200-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A300-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A400-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A500-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A600-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A700-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A800-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A900-parts: rgba(0, 0, 0, .87);--primary-color-50-parts-rgb: 237, 244, 255;--primary-color-100-parts-rgb: 185, 212, 252;--primary-color-200-parts-rgb: 138, 183, 251;--primary-color-300-parts-rgb: 91, 154, 249;--primary-color-400-parts-rgb: 55, 132, 247;--primary-color-500-parts-rgb: 20, 110, 246;--primary-color-600-parts-rgb: 18, 102, 245;--primary-color-700-parts-rgb: 14, 91, 243;--primary-color-800-parts-rgb: 11, 81, 242;--primary-color-900-parts-rgb: 6, 63, 239;--accent-color-50-parts: #e0f2f1;--accent-color-100-parts: #b2dfdb;--accent-color-200-parts: #80cbc4;--accent-color-300-parts: #4db6ac;--accent-color-400-parts: #26a69a;--accent-color-500-parts: #009688;--accent-color-600-parts: #00897b;--accent-color-700-parts: #00796b;--accent-color-800-parts: #00695c;--accent-color-900-parts: #004d40;--accent-color-A50-parts: rgba(0, 150, 136, .04);--accent-color-A100-parts: rgba(0, 150, 136, .08);--accent-color-A200-parts: rgba(0, 150, 136, .16);--accent-color-A300-parts: rgba(0, 150, 136, .24);--accent-color-A400-parts: rgba(0, 150, 136, .32);--accent-color-A500-parts: rgba(0, 150, 136, .4);--accent-color-A600-parts: rgba(0, 150, 136, .48);--accent-color-A700-parts: rgba(0, 150, 136, .56);--accent-color-A800-parts: rgba(0, 150, 136, .64);--accent-color-A900-parts: rgba(0, 150, 136, .72);--accent-color-contrast-50-parts: rgba(0, 0, 0, .87);--accent-color-contrast-100-parts: rgba(0, 0, 0, .87);--accent-color-contrast-200-parts: rgba(0, 0, 0, .87);--accent-color-contrast-300-parts: rgba(0, 0, 0, .87);--accent-color-contrast-400-parts: rgba(0, 0, 0, .87);--accent-color-contrast-500-parts: rgba(255, 255, 255, 1);--accent-color-contrast-600-parts: rgba(255, 255, 255, 1);--accent-color-contrast-700-parts: rgba(255, 255, 255, 1);--accent-color-contrast-800-parts: rgba(255, 255, 255, 1);--accent-color-contrast-900-parts: rgba(255, 255, 255, 1);--accent-color-contrast-A50-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A100-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A200-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A300-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A400-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A500-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A600-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A700-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A800-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A900-parts: rgba(0, 0, 0, .87);--accent-color-50-parts-rgb: 224, 242, 241;--accent-color-100-parts-rgb: 178, 223, 219;--accent-color-200-parts-rgb: 128, 203, 196;--accent-color-300-parts-rgb: 77, 182, 172;--accent-color-400-parts-rgb: 38, 166, 154;--accent-color-500-parts-rgb: 0, 150, 136;--accent-color-600-parts-rgb: 0, 137, 123;--accent-color-700-parts-rgb: 0, 121, 107;--accent-color-800-parts-rgb: 0, 105, 92;--accent-color-900-parts-rgb: 0, 77, 64;--warn-color-50-parts: #fceee3;--warn-color-100-parts: #f8d4b9;--warn-color-200-parts: #f4b78b;--warn-color-300-parts: #ef9a5d;--warn-color-400-parts: #eb843a;--warn-color-500-parts: #e86e17;--warn-color-600-parts: #e56614;--warn-color-700-parts: #e25b11;--warn-color-800-parts: #de510d;--warn-color-900-parts: #d83f07;--warn-color-A50-parts: rgba(232, 110, 23, .04);--warn-color-A100-parts: rgba(232, 110, 23, .08);--warn-color-A200-parts: rgba(232, 110, 23, .16);--warn-color-A300-parts: rgba(232, 110, 23, .24);--warn-color-A400-parts: rgba(232, 110, 23, .32);--warn-color-A500-parts: rgba(232, 110, 23, .4);--warn-color-A600-parts: rgba(232, 110, 23, .48);--warn-color-A700-parts: rgba(232, 110, 23, .56);--warn-color-A800-parts: rgba(232, 110, 23, .64);--warn-color-A900-parts: rgba(232, 110, 23, .72);--warn-color-contrast-50-parts: rgba(0, 0, 0, .87);--warn-color-contrast-100-parts: rgba(0, 0, 0, .87);--warn-color-contrast-200-parts: rgba(0, 0, 0, .87);--warn-color-contrast-300-parts: rgba(0, 0, 0, .87);--warn-color-contrast-400-parts: rgba(0, 0, 0, .87);--warn-color-contrast-500-parts: rgba(0, 0, 0, .87);--warn-color-contrast-600-parts: rgba(0, 0, 0, .87);--warn-color-contrast-700-parts: rgba(0, 0, 0, .87);--warn-color-contrast-800-parts: rgba(0, 0, 0, .87);--warn-color-contrast-900-parts: rgba(255, 255, 255, 1);--warn-color-contrast-A50-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A100-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A200-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A300-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A400-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A500-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A600-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A700-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A800-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A900-parts: rgba(0, 0, 0, .87);--warn-color-50-parts-rgb: 252, 238, 227;--warn-color-100-parts-rgb: 248, 212, 185;--warn-color-200-parts-rgb: 244, 183, 139;--warn-color-300-parts-rgb: 239, 154, 93;--warn-color-400-parts-rgb: 235, 132, 58;--warn-color-500-parts-rgb: 232, 110, 23;--warn-color-600-parts-rgb: 229, 102, 20;--warn-color-700-parts-rgb: 226, 91, 17;--warn-color-800-parts-rgb: 222, 81, 13;--warn-color-900-parts-rgb: 216, 63, 7;--info-color-50-parts: #edf4ff;--info-color-100-parts: #b9d4fc;--info-color-200-parts: #8ab7fb;--info-color-300-parts: #5b9af9;--info-color-400-parts: #3784f7;--info-color-500-parts: #146ef6;--info-color-600-parts: #1266f5;--info-color-700-parts: #0e5bf3;--info-color-800-parts: #0b51f2;--info-color-900-parts: #063fef;--info-color-A50-parts: rgba(20, 110, 246, .04);--info-color-A100-parts: rgba(20, 110, 246, .08);--info-color-A200-parts: rgba(20, 110, 246, .16);--info-color-A300-parts: rgba(20, 110, 246, .24);--info-color-A400-parts: rgba(20, 110, 246, .32);--info-color-A500-parts: rgba(20, 110, 246, .4);--info-color-A600-parts: rgba(20, 110, 246, .48);--info-color-A700-parts: rgba(20, 110, 246, .56);--info-color-A800-parts: rgba(20, 110, 246, .64);--info-color-A900-parts: rgba(20, 110, 246, .72);--info-color-contrast-50-parts: rgba(0, 0, 0, .87);--info-color-contrast-100-parts: rgba(0, 0, 0, .87);--info-color-contrast-200-parts: rgba(0, 0, 0, .87);--info-color-contrast-300-parts: rgba(0, 0, 0, .87);--info-color-contrast-400-parts: rgba(0, 0, 0, .87);--info-color-contrast-500-parts: rgba(255, 255, 255, 1);--info-color-contrast-600-parts: rgba(255, 255, 255, 1);--info-color-contrast-700-parts: rgba(255, 255, 255, 1);--info-color-contrast-800-parts: rgba(255, 255, 255, 1);--info-color-contrast-900-parts: rgba(255, 255, 255, 1);--info-color-contrast-A50-parts: rgba(0, 0, 0, .87);--info-color-contrast-A100-parts: rgba(0, 0, 0, .87);--info-color-contrast-A200-parts: rgba(0, 0, 0, .87);--info-color-contrast-A300-parts: rgba(0, 0, 0, .87);--info-color-contrast-A400-parts: rgba(0, 0, 0, .87);--info-color-contrast-A500-parts: rgba(0, 0, 0, .87);--info-color-contrast-A600-parts: rgba(0, 0, 0, .87);--info-color-contrast-A700-parts: rgba(0, 0, 0, .87);--info-color-contrast-A800-parts: rgba(0, 0, 0, .87);--info-color-contrast-A900-parts: rgba(0, 0, 0, .87);--info-color-50-parts-rgb: 237, 244, 255;--info-color-100-parts-rgb: 185, 212, 252;--info-color-200-parts-rgb: 138, 183, 251;--info-color-300-parts-rgb: 91, 154, 249;--info-color-400-parts-rgb: 55, 132, 247;--info-color-500-parts-rgb: 20, 110, 246;--info-color-600-parts-rgb: 18, 102, 245;--info-color-700-parts-rgb: 14, 91, 243;--info-color-800-parts-rgb: 11, 81, 242;--info-color-900-parts-rgb: 6, 63, 239;--success-color-50-parts: #e7f0e6;--success-color-100-parts: #c4dac1;--success-color-200-parts: #9cc198;--success-color-300-parts: #74a86e;--success-color-400-parts: #57954f;--success-color-500-parts: #398230;--success-color-600-parts: #337a2b;--success-color-700-parts: #2c6f24;--success-color-800-parts: #24651e;--success-color-900-parts: #175213;--success-color-A50-parts: rgba(57, 130, 48, .04);--success-color-A100-parts: rgba(57, 130, 48, .08);--success-color-A200-parts: rgba(57, 130, 48, .16);--success-color-A300-parts: rgba(57, 130, 48, .24);--success-color-A400-parts: rgba(57, 130, 48, .32);--success-color-A500-parts: rgba(57, 130, 48, .4);--success-color-A600-parts: rgba(57, 130, 48, .48);--success-color-A700-parts: rgba(57, 130, 48, .56);--success-color-A800-parts: rgba(57, 130, 48, .64);--success-color-A900-parts: rgba(57, 130, 48, .72);--success-color-contrast-50-parts: rgba(0, 0, 0, .87);--success-color-contrast-100-parts: rgba(0, 0, 0, .87);--success-color-contrast-200-parts: rgba(0, 0, 0, .87);--success-color-contrast-300-parts: rgba(0, 0, 0, .87);--success-color-contrast-400-parts: rgba(0, 0, 0, .87);--success-color-contrast-500-parts: rgba(255, 255, 255, 1);--success-color-contrast-600-parts: rgba(255, 255, 255, 1);--success-color-contrast-700-parts: rgba(255, 255, 255, 1);--success-color-contrast-800-parts: rgba(255, 255, 255, 1);--success-color-contrast-900-parts: rgba(255, 255, 255, 1);--success-color-contrast-A50-parts: rgba(0, 0, 0, .87);--success-color-contrast-A100-parts: rgba(0, 0, 0, .87);--success-color-contrast-A200-parts: rgba(0, 0, 0, .87);--success-color-contrast-A300-parts: rgba(0, 0, 0, .87);--success-color-contrast-A400-parts: rgba(0, 0, 0, .87);--success-color-contrast-A500-parts: rgba(0, 0, 0, .87);--success-color-contrast-A600-parts: rgba(0, 0, 0, .87);--success-color-contrast-A700-parts: rgba(0, 0, 0, .87);--success-color-contrast-A800-parts: rgba(0, 0, 0, .87);--success-color-contrast-A900-parts: rgba(0, 0, 0, .87);--success-color-50-parts-rgb: 231, 240, 230;--success-color-100-parts-rgb: 196, 218, 193;--success-color-200-parts-rgb: 156, 193, 152;--success-color-300-parts-rgb: 116, 168, 110;--success-color-400-parts-rgb: 87, 149, 79;--success-color-500-parts-rgb: 57, 130, 48;--success-color-600-parts-rgb: 51, 122, 43;--success-color-700-parts-rgb: 44, 111, 36;--success-color-800-parts-rgb: 36, 101, 30;--success-color-900-parts-rgb: 23, 82, 19;--error-color-50-parts: #fae5e4;--error-color-100-parts: #f3bdba;--error-color-200-parts: #eb928d;--error-color-300-parts: #e3665f;--error-color-400-parts: #dd453c;--error-color-500-parts: #d7241a;--error-color-600-parts: #d32017;--error-color-700-parts: #cd1b13;--error-color-800-parts: #c7160f;--error-color-900-parts: #be0d08;--error-color-A50-parts: rgba(215, 36, 26, .04);--error-color-A100-parts: rgba(215, 36, 26, .08);--error-color-A200-parts: rgba(215, 36, 26, .16);--error-color-A300-parts: rgba(215, 36, 26, .24);--error-color-A400-parts: rgba(215, 36, 26, .32);--error-color-A500-parts: rgba(215, 36, 26, .4);--error-color-A600-parts: rgba(215, 36, 26, .48);--error-color-A700-parts: rgba(215, 36, 26, .56);--error-color-A800-parts: rgba(215, 36, 26, .64);--error-color-A900-parts: rgba(215, 36, 26, .72);--error-color-contrast-50-parts: rgba(0, 0, 0, .87);--error-color-contrast-100-parts: rgba(0, 0, 0, .87);--error-color-contrast-200-parts: rgba(0, 0, 0, .87);--error-color-contrast-300-parts: rgba(0, 0, 0, .87);--error-color-contrast-400-parts: rgba(0, 0, 0, .87);--error-color-contrast-500-parts: rgba(255, 255, 255, 1);--error-color-contrast-600-parts: rgba(255, 255, 255, 1);--error-color-contrast-700-parts: rgba(255, 255, 255, 1);--error-color-contrast-800-parts: rgba(255, 255, 255, 1);--error-color-contrast-900-parts: rgba(255, 255, 255, 1);--error-color-contrast-A50-parts: rgba(0, 0, 0, .87);--error-color-contrast-A100-parts: rgba(0, 0, 0, .87);--error-color-contrast-A200-parts: rgba(0, 0, 0, .87);--error-color-contrast-A300-parts: rgba(0, 0, 0, .87);--error-color-contrast-A400-parts: rgba(0, 0, 0, .87);--error-color-contrast-A500-parts: rgba(0, 0, 0, .87);--error-color-contrast-A600-parts: rgba(0, 0, 0, .87);--error-color-contrast-A700-parts: rgba(0, 0, 0, .87);--error-color-contrast-A800-parts: rgba(0, 0, 0, .87);--error-color-contrast-A900-parts: rgba(0, 0, 0, .87);--error-color-50-parts-rgb: 250, 229, 228;--error-color-100-parts-rgb: 243, 189, 186;--error-color-200-parts-rgb: 235, 146, 141;--error-color-300-parts-rgb: 227, 102, 95;--error-color-400-parts-rgb: 221, 69, 60;--error-color-500-parts-rgb: 215, 36, 26;--error-color-600-parts-rgb: 211, 32, 23;--error-color-700-parts-rgb: 205, 27, 19;--error-color-800-parts-rgb: 199, 22, 15;--error-color-900-parts-rgb: 190, 13, 8;--neutral-color-50-parts: #e9e9e9;--neutral-color-100-parts: #dddddd;--neutral-color-200-parts: #cccccc;--neutral-color-300-parts: #b0b0b0;--neutral-color-400-parts: #909090;--neutral-color-500-parts: #515151;--neutral-color-600-parts: #424242;--neutral-color-700-parts: #333333;--neutral-color-800-parts: #212121;--neutral-color-900-parts: #141414;--neutral-color-A50-parts: rgba(81, 81, 81, .04);--neutral-color-A100-parts: rgba(81, 81, 81, .08);--neutral-color-A200-parts: rgba(81, 81, 81, .16);--neutral-color-A300-parts: rgba(81, 81, 81, .24);--neutral-color-A400-parts: rgba(81, 81, 81, .32);--neutral-color-A500-parts: rgba(81, 81, 81, .4);--neutral-color-A600-parts: rgba(81, 81, 81, .48);--neutral-color-A700-parts: rgba(81, 81, 81, .56);--neutral-color-A800-parts: rgba(81, 81, 81, .64);--neutral-color-A900-parts: rgba(81, 81, 81, .72);--neutral-color-contrast-50-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-100-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-200-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-300-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-400-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-500-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-600-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-700-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-800-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-900-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-A50-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A100-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A200-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A300-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A400-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A500-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A600-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A700-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A800-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A900-parts: rgba(0, 0, 0, .87);--neutral-color-50-parts-rgb: 233, 233, 233;--neutral-color-100-parts-rgb: 221, 221, 221;--neutral-color-200-parts-rgb: 204, 204, 204;--neutral-color-300-parts-rgb: 176, 176, 176;--neutral-color-400-parts-rgb: 144, 144, 144;--neutral-color-500-parts-rgb: 81, 81, 81;--neutral-color-600-parts-rgb: 66, 66, 66;--neutral-color-700-parts-rgb: 51, 51, 51;--neutral-color-800-parts-rgb: 33, 33, 33;--neutral-color-900-parts-rgb: 20, 20, 20}html{--mat-ripple-color: rgba(0, 0, 0, .1)}html{--mat-option-selected-state-label-text-color: var(--primary-color-500-parts);--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}.mat-accent{--mat-option-selected-state-label-text-color: var(--accent-color-500-parts);--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}.mat-warn{--mat-option-selected-state-label-text-color: #f44336;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}html{--mat-optgroup-label-text-color: rgba(0, 0, 0, .87)}.mat-primary{--mat-full-pseudo-checkbox-selected-icon-color: var(--primary-color-500-parts);--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--primary-color-500-parts);--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}html,.mat-accent{--mat-full-pseudo-checkbox-selected-icon-color: var(--accent-color-500-parts);--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--accent-color-500-parts);--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}.mat-warn{--mat-full-pseudo-checkbox-selected-icon-color: #f44336;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color: #f44336;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}html{--mat-app-background-color: #fafafa;--mat-app-text-color: rgba(0, 0, 0, .87)}.mat-elevation-z0,.mat-mdc-elevation-specific.mat-elevation-z0{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.mat-elevation-z1,.mat-mdc-elevation-specific.mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.mat-elevation-z2,.mat-mdc-elevation-specific.mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.mat-elevation-z3,.mat-mdc-elevation-specific.mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-elevation-z4,.mat-mdc-elevation-specific.mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.mat-elevation-z5,.mat-mdc-elevation-specific.mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.mat-elevation-z6,.mat-mdc-elevation-specific.mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.mat-elevation-z7,.mat-mdc-elevation-specific.mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.mat-elevation-z8,.mat-mdc-elevation-specific.mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.mat-elevation-z9,.mat-mdc-elevation-specific.mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.mat-elevation-z10,.mat-mdc-elevation-specific.mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.mat-elevation-z11,.mat-mdc-elevation-specific.mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.mat-elevation-z12,.mat-mdc-elevation-specific.mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.mat-elevation-z13,.mat-mdc-elevation-specific.mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.mat-elevation-z14,.mat-mdc-elevation-specific.mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.mat-elevation-z15,.mat-mdc-elevation-specific.mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.mat-elevation-z16,.mat-mdc-elevation-specific.mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.mat-elevation-z17,.mat-mdc-elevation-specific.mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.mat-elevation-z18,.mat-mdc-elevation-specific.mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.mat-elevation-z19,.mat-mdc-elevation-specific.mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.mat-elevation-z20,.mat-mdc-elevation-specific.mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.mat-elevation-z21,.mat-mdc-elevation-specific.mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.mat-elevation-z22,.mat-mdc-elevation-specific.mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.mat-elevation-z23,.mat-mdc-elevation-specific.mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.mat-elevation-z24,.mat-mdc-elevation-specific.mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-theme-loaded-marker{display:none}html{--mat-option-label-text-font: Roboto, sans-serif;--mat-option-label-text-line-height: 24px;--mat-option-label-text-size: 16px;--mat-option-label-text-tracking: .03125em;--mat-option-label-text-weight: 400}html{--mat-optgroup-label-text-font: Roboto, sans-serif;--mat-optgroup-label-text-line-height: 24px;--mat-optgroup-label-text-size: 16px;--mat-optgroup-label-text-tracking: .03125em;--mat-optgroup-label-text-weight: 400}:host *{box-sizing:border-box}.sof-nav-panel-container-collapsed{width:50px!important}.non-link-icon-collapsed{padding-top:20px;padding-left:4px}.menu-text{font-size:14px!important}.menu-text.bold{font-weight:600!important}.sof-nav-panel-container{display:flex;flex-direction:column;position:absolute;inset:0}.sof-nav-panel-container .sof-nav-panel-toggle{position:fixed;z-index:2;top:.5rem;left:.5rem;transition:left;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1)}.sof-nav-panel-container .sof-nav-panel-toggle.opened{left:calc(328px + .5rem)}.sof-nav-panel-container .sof-nav-panel-toggle.mobile{left:272px}.sof-nav-panel-container .sof-nav-panel{width:328px;border:none!important;background-color:#e9e9e9}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list{list-style:none;display:flex;flex-direction:column;margin:0;padding:14px 0 0;height:auto;gap:8px}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list.mobile{padding-top:4rem}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list.sub-list{width:100%;padding:0}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item.has-subnodes{margin-top:14px}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item:nth-last-child(1 of.has-subnodes){margin-bottom:14px}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item .sof-nav-panel-subnode-heading{padding:.75rem 1rem 0;color:#0009;font-size:14px;font-weight:500;overflow:hidden;text-wrap:nowrap;text-overflow:ellipsis}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item .sof-nav-panel-link{display:flex;align-items:center;height:40px;border-radius:.5rem;padding:0 1rem;text-decoration:none;color:#000000de;font-size:14px;font-weight:500}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item .sof-nav-panel-link.primary{font-weight:600}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item .sof-nav-panel-link:focus-visible{border-left:3px solid var(--primary-color-300-parts);border-radius:0}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item .sof-nav-panel-link:hover{background:var(--neutral-color-A100-parts)}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item .sof-nav-panel-link:active{background:var(--neutral-color-A200-parts)}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item .sof-nav-panel-link.sof-nav-panel-link-active{background:#e9e9e9}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item .sof-nav-panel-link.sof-nav-panel-link-active:hover{background:linear-gradient(0deg,var(--neutral-color-A100-parts) 0%,var(--neutral-color-A100-parts) 100%),#e9e9e9}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item .sof-nav-panel-link.sof-nav-panel-link-active:active{background:linear-gradient(0deg,var(--neutral-color-A200-parts) 0%,var(--neutral-color-A200-parts) 100%),#e9e9e9}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item .sof-nav-panel-link .sof-nav-panel-link-icon{margin-right:.5rem;font-size:20px;font-weight:500}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item .sof-nav-panel-link .sof-nav-panel-link-label{width:100%;overflow:hidden;text-wrap:nowrap;text-overflow:ellipsis;font-size:14px}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item .sof-nav-panel-link .sof-nav-panel-link-label.primary{font-weight:600}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .logo{display:flex;padding:1rem 1rem 2rem;width:100%}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .logo img{height:1.5rem;max-width:100%}.sof-ar-sidenav-link.mat-mdc-list-item-interactive:focus:before,.sof-ar-sidenav-link.mat-mdc-list-item-interactive:hover:before{opacity:0!important}::ng-deep .mat-drawer-inner-container{overflow:auto!important;scrollbar-width:none!important}::ng-deep .mat-drawer-container{background:#fff!important}::ng-deep .sof-ar-nav-menu-btn{margin-right:5px;width:50px!important;height:40px!important;color:#515151!important;background:transparent!important;border-radius:4px!important;padding:0!important}@media (max-width: 959px){::ng-deep .sof-ar-nav-menu-btn{margin-left:2%!important}}@media (min-width: 959px){::ng-deep .sof-ar-nav-menu-btn{margin-left:11px!important}}::ng-deep .sof-ar-nav-menu-btn:hover,::ng-deep .sof-ar-nav-menu-btn:focus{background:var(--primary-color-50-parts)!important;color:var(--primary-color-500-parts)!important}::ng-deep .sof-ar-nav-menu-btn:hover .mdc-icon-button__ripple,::ng-deep .sof-ar-nav-menu-btn:focus .mdc-icon-button__ripple{border-radius:inherit!important}.sof-ar-nav-menu-icon{font-size:23px}.nav-content-collapsed{margin-left:50px!important}.sof-sub-nav-panel-link{padding-left:4rem}\n"], dependencies: [{ kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i1.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i1.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i1.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i8.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i9.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i9.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
190
- }
191
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: B2bNavComponent, decorators: [{
192
- type: Component,
193
- args: [{ selector: 'sof-nav-b2b', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
194
- MatSidenavModule,
195
- MatTooltipModule,
196
- MatButtonModule,
197
- RouterModule,
198
- TranslateModule,
199
- CommonModule,
200
- FlexLayoutModule,
201
- MatMenuModule
202
- ], providers: [
203
- LayoutModule
204
- ], template: "<div class=\"sof-nav-panel-container\" style=\"top: 64px\">\r\n <mat-sidenav-container>\r\n <mat-sidenav #navPanel class=\"sof-nav-panel\" [ngClass]=\"{'sof-nav-panel-container-collapsed': !isNavOpen}\"\r\n [opened]=\"true\" [mode]=\"isSmallScreen().matches ? 'over' : 'side'\">\r\n\r\n <ng-content select=\"[sof-ar-nav-header]\"></ng-content>\r\n\r\n <nav [attr.aria-label]=\"'main'\" [style.paddingBottom.px]=\"!!brandLogo ? 0 : 40\" fxLayout=\"column\"\r\n style=\"height: 100%\">\r\n <ul class=\"sof-nav-panel-list\" [class.mobile]=\"isSmallScreen().matches\">\r\n @for (node of navigationData; track $index) {\r\n <li fxFlex=\"auto\" class=\"sof-nav-panel-list-item\"\r\n [class.has-subnodes]=\"node.subNodes?.length && isNavOpen\">\r\n @if (!node.route) {\r\n <div (click)=\"openMenu(node, $event, $index)\" class=\"sof-nav-panel-link primary\" matTooltip=\"{{node.text | translate}}\" matTooltipPosition=\"right\">\r\n <i [ngClass]=\"{'non-link-icon-collapsed': !isNavOpen}\" class=\"{{node.fontAwesomeIcon}} sof-nav-panel-link-icon\" aria-hidden=\"true\"></i>\r\n <span *ngIf=\"isNavOpen\">{{node.text| translate}}</span>\r\n </div>\r\n }@else {\r\n <a (click)=\"openMenu(node, $event, $index)\" class=\"sof-nav-panel-link\" [routerLink]=\"node.route\"\r\n routerLinkActive=\"sof-nav-panel-link-active\" matTooltip=\"{{node.text | translate}}\" matTooltipPosition=\"right\">\r\n <i class=\"{{node.fontAwesomeIcon}} sof-nav-panel-link-icon\" aria-hidden=\"true\"></i>\r\n <span *ngIf=\"isNavOpen\" class=\"sof-nav-panel-link-label primary\">{{node.text |\r\n translate}}</span>\r\n </a>\r\n }\r\n @if(isNavOpen || $index === selectedNodeIndex) {\r\n <ul class=\"sof-nav-panel-list sub-list\">\r\n @for (subNode of node.subNodes; track $index) {\r\n <li>\r\n <a (click)=\"isSmallScreen().matches ? navPanel.close() : null\"\r\n class=\"sof-nav-panel-link sof-sub-nav-panel-link\" [routerLink]=\"subNode.route\"\r\n routerLinkActive=\"sof-nav-panel-link-active\" matTooltip=\"{{subNode.text | translate}}\" matTooltipPosition=\"right\">\r\n <span class=\"sof-nav-panel-link-label\">\r\n <i class=\"{{subNode.icon || 'ph ph-files'}}\"></i>\r\n <span *ngIf=\"isNavOpen\" style=\"padding-left: 8px\">{{subNode.text | translate}} </span>\r\n </span>\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n </li>\r\n }\r\n @if (brandLogo) {\r\n <div class=\"logo\" m-t-auto>\r\n <img [src]=\"brandLogo.url\" [alt]=\"brandLogo.altText\">\r\n </div>\r\n }\r\n </ul>\r\n <button id=\"navMenuTrigger\" #navMenuTrigger=\"matMenuTrigger\" [matMenuTriggerFor]=\"navMenu\"\r\n style=\"position: absolute; height: 1px; width: 1px; opacity: 0;\"></button>\r\n <mat-menu #navMenu=\"matMenu\" xPosition=\"after\">\r\n @if(currentMenuNode && currentMenuNode.subNodes?.length) {\r\n <a mat-menu-item [routerLink]=\"currentMenuNode.route\" routerLinkActive=\"sof-nav-panel-link-active\">\r\n <span class=\"sof-nav-panel-link-label menu-text bold\">{{currentMenuNode.text | translate}} </span>\r\n </a>\r\n @for(subnode of currentMenuNode.subNodes; track $index) {\r\n <a mat-menu-item [routerLink]=\"subnode.route\" routerLinkActive=\"sof-nav-panel-link-active\">\r\n <span class=\"sof-nav-panel-link-label menu-text\">{{subnode.text | translate}} </span>\r\n </a>\r\n }\r\n }\r\n </mat-menu>\r\n <div fxFlex=\"auto\" style=\"width: 100%\" fxLayoutAlign=\"end end\" fxLayout=\"row\">\r\n <button fxFlex=\"40px\" id=\"sof-ar-nav-btn-menu\" aria-label=\"Menu Button\" mat-icon-button\r\n [disableRipple]=\"true\" class=\"sof-ar-nav-menu-btn\" (click)=\"shrinkNav()\"\r\n [class.hidden]=\"!(settings.allowNavToggle) || settings.hideNavigation\">\r\n <span *ngIf=\"isNavOpen; else closedIcon\" aria-hidden=\"true\" class=\"sof-ar-nav-menu-icon\">\r\n <i class=\"{{settings.fontAwesomeMenuIcon}} menu-icon\"></i>\r\n </span>\r\n <ng-template #closedIcon>\r\n <span aria-hidden=\"true\" class=\"sof-ar-nav-menu-icon\">\r\n <i class=\"{{settings.fontAwesomeMenuIconClosed}} menu-icon\"></i>\r\n </span>\r\n </ng-template>\r\n <span class=\"sr-only\">{{settings.menuButtonSRText | translate}}</span>\r\n </button>\r\n </div>\r\n </nav>\r\n </mat-sidenav>\r\n <mat-sidenav-content [ngClass]=\"{'nav-content-collapsed': !isNavOpen}\">\r\n <ng-content sof-ar-nav-content></ng-content>\r\n </mat-sidenav-content>\r\n </mat-sidenav-container>\r\n</div>", styles: [":root{--primary-color-50-parts: #edf4ff;--primary-color-100-parts: #b9d4fc;--primary-color-200-parts: #8ab7fb;--primary-color-300-parts: #5b9af9;--primary-color-400-parts: #3784f7;--primary-color-500-parts: #146ef6;--primary-color-600-parts: #1266f5;--primary-color-700-parts: #0e5bf3;--primary-color-800-parts: #0b51f2;--primary-color-900-parts: #063fef;--primary-color-A50-parts: rgba(20, 110, 246, .04);--primary-color-A100-parts: rgba(20, 110, 246, .08);--primary-color-A200-parts: rgba(20, 110, 246, .16);--primary-color-A300-parts: rgba(20, 110, 246, .24);--primary-color-A400-parts: rgba(20, 110, 246, .32);--primary-color-A500-parts: rgba(20, 110, 246, .4);--primary-color-A600-parts: rgba(20, 110, 246, .48);--primary-color-A700-parts: rgba(20, 110, 246, .56);--primary-color-A800-parts: rgba(20, 110, 246, .64);--primary-color-A900-parts: rgba(20, 110, 246, .72);--primary-color-contrast-50-parts: rgba(0, 0, 0, .87);--primary-color-contrast-100-parts: rgba(0, 0, 0, .87);--primary-color-contrast-200-parts: rgba(0, 0, 0, .87);--primary-color-contrast-300-parts: rgba(0, 0, 0, .87);--primary-color-contrast-400-parts: rgba(0, 0, 0, .87);--primary-color-contrast-500-parts: rgba(255, 255, 255, 1);--primary-color-contrast-600-parts: rgba(255, 255, 255, 1);--primary-color-contrast-700-parts: rgba(255, 255, 255, 1);--primary-color-contrast-800-parts: rgba(255, 255, 255, 1);--primary-color-contrast-900-parts: rgba(255, 255, 255, 1);--primary-color-contrast-A50-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A100-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A200-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A300-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A400-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A500-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A600-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A700-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A800-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A900-parts: rgba(0, 0, 0, .87);--primary-color-50-parts-rgb: 237, 244, 255;--primary-color-100-parts-rgb: 185, 212, 252;--primary-color-200-parts-rgb: 138, 183, 251;--primary-color-300-parts-rgb: 91, 154, 249;--primary-color-400-parts-rgb: 55, 132, 247;--primary-color-500-parts-rgb: 20, 110, 246;--primary-color-600-parts-rgb: 18, 102, 245;--primary-color-700-parts-rgb: 14, 91, 243;--primary-color-800-parts-rgb: 11, 81, 242;--primary-color-900-parts-rgb: 6, 63, 239;--accent-color-50-parts: #e0f2f1;--accent-color-100-parts: #b2dfdb;--accent-color-200-parts: #80cbc4;--accent-color-300-parts: #4db6ac;--accent-color-400-parts: #26a69a;--accent-color-500-parts: #009688;--accent-color-600-parts: #00897b;--accent-color-700-parts: #00796b;--accent-color-800-parts: #00695c;--accent-color-900-parts: #004d40;--accent-color-A50-parts: rgba(0, 150, 136, .04);--accent-color-A100-parts: rgba(0, 150, 136, .08);--accent-color-A200-parts: rgba(0, 150, 136, .16);--accent-color-A300-parts: rgba(0, 150, 136, .24);--accent-color-A400-parts: rgba(0, 150, 136, .32);--accent-color-A500-parts: rgba(0, 150, 136, .4);--accent-color-A600-parts: rgba(0, 150, 136, .48);--accent-color-A700-parts: rgba(0, 150, 136, .56);--accent-color-A800-parts: rgba(0, 150, 136, .64);--accent-color-A900-parts: rgba(0, 150, 136, .72);--accent-color-contrast-50-parts: rgba(0, 0, 0, .87);--accent-color-contrast-100-parts: rgba(0, 0, 0, .87);--accent-color-contrast-200-parts: rgba(0, 0, 0, .87);--accent-color-contrast-300-parts: rgba(0, 0, 0, .87);--accent-color-contrast-400-parts: rgba(0, 0, 0, .87);--accent-color-contrast-500-parts: rgba(255, 255, 255, 1);--accent-color-contrast-600-parts: rgba(255, 255, 255, 1);--accent-color-contrast-700-parts: rgba(255, 255, 255, 1);--accent-color-contrast-800-parts: rgba(255, 255, 255, 1);--accent-color-contrast-900-parts: rgba(255, 255, 255, 1);--accent-color-contrast-A50-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A100-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A200-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A300-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A400-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A500-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A600-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A700-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A800-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A900-parts: rgba(0, 0, 0, .87);--accent-color-50-parts-rgb: 224, 242, 241;--accent-color-100-parts-rgb: 178, 223, 219;--accent-color-200-parts-rgb: 128, 203, 196;--accent-color-300-parts-rgb: 77, 182, 172;--accent-color-400-parts-rgb: 38, 166, 154;--accent-color-500-parts-rgb: 0, 150, 136;--accent-color-600-parts-rgb: 0, 137, 123;--accent-color-700-parts-rgb: 0, 121, 107;--accent-color-800-parts-rgb: 0, 105, 92;--accent-color-900-parts-rgb: 0, 77, 64;--warn-color-50-parts: #fceee3;--warn-color-100-parts: #f8d4b9;--warn-color-200-parts: #f4b78b;--warn-color-300-parts: #ef9a5d;--warn-color-400-parts: #eb843a;--warn-color-500-parts: #e86e17;--warn-color-600-parts: #e56614;--warn-color-700-parts: #e25b11;--warn-color-800-parts: #de510d;--warn-color-900-parts: #d83f07;--warn-color-A50-parts: rgba(232, 110, 23, .04);--warn-color-A100-parts: rgba(232, 110, 23, .08);--warn-color-A200-parts: rgba(232, 110, 23, .16);--warn-color-A300-parts: rgba(232, 110, 23, .24);--warn-color-A400-parts: rgba(232, 110, 23, .32);--warn-color-A500-parts: rgba(232, 110, 23, .4);--warn-color-A600-parts: rgba(232, 110, 23, .48);--warn-color-A700-parts: rgba(232, 110, 23, .56);--warn-color-A800-parts: rgba(232, 110, 23, .64);--warn-color-A900-parts: rgba(232, 110, 23, .72);--warn-color-contrast-50-parts: rgba(0, 0, 0, .87);--warn-color-contrast-100-parts: rgba(0, 0, 0, .87);--warn-color-contrast-200-parts: rgba(0, 0, 0, .87);--warn-color-contrast-300-parts: rgba(0, 0, 0, .87);--warn-color-contrast-400-parts: rgba(0, 0, 0, .87);--warn-color-contrast-500-parts: rgba(0, 0, 0, .87);--warn-color-contrast-600-parts: rgba(0, 0, 0, .87);--warn-color-contrast-700-parts: rgba(0, 0, 0, .87);--warn-color-contrast-800-parts: rgba(0, 0, 0, .87);--warn-color-contrast-900-parts: rgba(255, 255, 255, 1);--warn-color-contrast-A50-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A100-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A200-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A300-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A400-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A500-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A600-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A700-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A800-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A900-parts: rgba(0, 0, 0, .87);--warn-color-50-parts-rgb: 252, 238, 227;--warn-color-100-parts-rgb: 248, 212, 185;--warn-color-200-parts-rgb: 244, 183, 139;--warn-color-300-parts-rgb: 239, 154, 93;--warn-color-400-parts-rgb: 235, 132, 58;--warn-color-500-parts-rgb: 232, 110, 23;--warn-color-600-parts-rgb: 229, 102, 20;--warn-color-700-parts-rgb: 226, 91, 17;--warn-color-800-parts-rgb: 222, 81, 13;--warn-color-900-parts-rgb: 216, 63, 7;--info-color-50-parts: #edf4ff;--info-color-100-parts: #b9d4fc;--info-color-200-parts: #8ab7fb;--info-color-300-parts: #5b9af9;--info-color-400-parts: #3784f7;--info-color-500-parts: #146ef6;--info-color-600-parts: #1266f5;--info-color-700-parts: #0e5bf3;--info-color-800-parts: #0b51f2;--info-color-900-parts: #063fef;--info-color-A50-parts: rgba(20, 110, 246, .04);--info-color-A100-parts: rgba(20, 110, 246, .08);--info-color-A200-parts: rgba(20, 110, 246, .16);--info-color-A300-parts: rgba(20, 110, 246, .24);--info-color-A400-parts: rgba(20, 110, 246, .32);--info-color-A500-parts: rgba(20, 110, 246, .4);--info-color-A600-parts: rgba(20, 110, 246, .48);--info-color-A700-parts: rgba(20, 110, 246, .56);--info-color-A800-parts: rgba(20, 110, 246, .64);--info-color-A900-parts: rgba(20, 110, 246, .72);--info-color-contrast-50-parts: rgba(0, 0, 0, .87);--info-color-contrast-100-parts: rgba(0, 0, 0, .87);--info-color-contrast-200-parts: rgba(0, 0, 0, .87);--info-color-contrast-300-parts: rgba(0, 0, 0, .87);--info-color-contrast-400-parts: rgba(0, 0, 0, .87);--info-color-contrast-500-parts: rgba(255, 255, 255, 1);--info-color-contrast-600-parts: rgba(255, 255, 255, 1);--info-color-contrast-700-parts: rgba(255, 255, 255, 1);--info-color-contrast-800-parts: rgba(255, 255, 255, 1);--info-color-contrast-900-parts: rgba(255, 255, 255, 1);--info-color-contrast-A50-parts: rgba(0, 0, 0, .87);--info-color-contrast-A100-parts: rgba(0, 0, 0, .87);--info-color-contrast-A200-parts: rgba(0, 0, 0, .87);--info-color-contrast-A300-parts: rgba(0, 0, 0, .87);--info-color-contrast-A400-parts: rgba(0, 0, 0, .87);--info-color-contrast-A500-parts: rgba(0, 0, 0, .87);--info-color-contrast-A600-parts: rgba(0, 0, 0, .87);--info-color-contrast-A700-parts: rgba(0, 0, 0, .87);--info-color-contrast-A800-parts: rgba(0, 0, 0, .87);--info-color-contrast-A900-parts: rgba(0, 0, 0, .87);--info-color-50-parts-rgb: 237, 244, 255;--info-color-100-parts-rgb: 185, 212, 252;--info-color-200-parts-rgb: 138, 183, 251;--info-color-300-parts-rgb: 91, 154, 249;--info-color-400-parts-rgb: 55, 132, 247;--info-color-500-parts-rgb: 20, 110, 246;--info-color-600-parts-rgb: 18, 102, 245;--info-color-700-parts-rgb: 14, 91, 243;--info-color-800-parts-rgb: 11, 81, 242;--info-color-900-parts-rgb: 6, 63, 239;--success-color-50-parts: #e7f0e6;--success-color-100-parts: #c4dac1;--success-color-200-parts: #9cc198;--success-color-300-parts: #74a86e;--success-color-400-parts: #57954f;--success-color-500-parts: #398230;--success-color-600-parts: #337a2b;--success-color-700-parts: #2c6f24;--success-color-800-parts: #24651e;--success-color-900-parts: #175213;--success-color-A50-parts: rgba(57, 130, 48, .04);--success-color-A100-parts: rgba(57, 130, 48, .08);--success-color-A200-parts: rgba(57, 130, 48, .16);--success-color-A300-parts: rgba(57, 130, 48, .24);--success-color-A400-parts: rgba(57, 130, 48, .32);--success-color-A500-parts: rgba(57, 130, 48, .4);--success-color-A600-parts: rgba(57, 130, 48, .48);--success-color-A700-parts: rgba(57, 130, 48, .56);--success-color-A800-parts: rgba(57, 130, 48, .64);--success-color-A900-parts: rgba(57, 130, 48, .72);--success-color-contrast-50-parts: rgba(0, 0, 0, .87);--success-color-contrast-100-parts: rgba(0, 0, 0, .87);--success-color-contrast-200-parts: rgba(0, 0, 0, .87);--success-color-contrast-300-parts: rgba(0, 0, 0, .87);--success-color-contrast-400-parts: rgba(0, 0, 0, .87);--success-color-contrast-500-parts: rgba(255, 255, 255, 1);--success-color-contrast-600-parts: rgba(255, 255, 255, 1);--success-color-contrast-700-parts: rgba(255, 255, 255, 1);--success-color-contrast-800-parts: rgba(255, 255, 255, 1);--success-color-contrast-900-parts: rgba(255, 255, 255, 1);--success-color-contrast-A50-parts: rgba(0, 0, 0, .87);--success-color-contrast-A100-parts: rgba(0, 0, 0, .87);--success-color-contrast-A200-parts: rgba(0, 0, 0, .87);--success-color-contrast-A300-parts: rgba(0, 0, 0, .87);--success-color-contrast-A400-parts: rgba(0, 0, 0, .87);--success-color-contrast-A500-parts: rgba(0, 0, 0, .87);--success-color-contrast-A600-parts: rgba(0, 0, 0, .87);--success-color-contrast-A700-parts: rgba(0, 0, 0, .87);--success-color-contrast-A800-parts: rgba(0, 0, 0, .87);--success-color-contrast-A900-parts: rgba(0, 0, 0, .87);--success-color-50-parts-rgb: 231, 240, 230;--success-color-100-parts-rgb: 196, 218, 193;--success-color-200-parts-rgb: 156, 193, 152;--success-color-300-parts-rgb: 116, 168, 110;--success-color-400-parts-rgb: 87, 149, 79;--success-color-500-parts-rgb: 57, 130, 48;--success-color-600-parts-rgb: 51, 122, 43;--success-color-700-parts-rgb: 44, 111, 36;--success-color-800-parts-rgb: 36, 101, 30;--success-color-900-parts-rgb: 23, 82, 19;--error-color-50-parts: #fae5e4;--error-color-100-parts: #f3bdba;--error-color-200-parts: #eb928d;--error-color-300-parts: #e3665f;--error-color-400-parts: #dd453c;--error-color-500-parts: #d7241a;--error-color-600-parts: #d32017;--error-color-700-parts: #cd1b13;--error-color-800-parts: #c7160f;--error-color-900-parts: #be0d08;--error-color-A50-parts: rgba(215, 36, 26, .04);--error-color-A100-parts: rgba(215, 36, 26, .08);--error-color-A200-parts: rgba(215, 36, 26, .16);--error-color-A300-parts: rgba(215, 36, 26, .24);--error-color-A400-parts: rgba(215, 36, 26, .32);--error-color-A500-parts: rgba(215, 36, 26, .4);--error-color-A600-parts: rgba(215, 36, 26, .48);--error-color-A700-parts: rgba(215, 36, 26, .56);--error-color-A800-parts: rgba(215, 36, 26, .64);--error-color-A900-parts: rgba(215, 36, 26, .72);--error-color-contrast-50-parts: rgba(0, 0, 0, .87);--error-color-contrast-100-parts: rgba(0, 0, 0, .87);--error-color-contrast-200-parts: rgba(0, 0, 0, .87);--error-color-contrast-300-parts: rgba(0, 0, 0, .87);--error-color-contrast-400-parts: rgba(0, 0, 0, .87);--error-color-contrast-500-parts: rgba(255, 255, 255, 1);--error-color-contrast-600-parts: rgba(255, 255, 255, 1);--error-color-contrast-700-parts: rgba(255, 255, 255, 1);--error-color-contrast-800-parts: rgba(255, 255, 255, 1);--error-color-contrast-900-parts: rgba(255, 255, 255, 1);--error-color-contrast-A50-parts: rgba(0, 0, 0, .87);--error-color-contrast-A100-parts: rgba(0, 0, 0, .87);--error-color-contrast-A200-parts: rgba(0, 0, 0, .87);--error-color-contrast-A300-parts: rgba(0, 0, 0, .87);--error-color-contrast-A400-parts: rgba(0, 0, 0, .87);--error-color-contrast-A500-parts: rgba(0, 0, 0, .87);--error-color-contrast-A600-parts: rgba(0, 0, 0, .87);--error-color-contrast-A700-parts: rgba(0, 0, 0, .87);--error-color-contrast-A800-parts: rgba(0, 0, 0, .87);--error-color-contrast-A900-parts: rgba(0, 0, 0, .87);--error-color-50-parts-rgb: 250, 229, 228;--error-color-100-parts-rgb: 243, 189, 186;--error-color-200-parts-rgb: 235, 146, 141;--error-color-300-parts-rgb: 227, 102, 95;--error-color-400-parts-rgb: 221, 69, 60;--error-color-500-parts-rgb: 215, 36, 26;--error-color-600-parts-rgb: 211, 32, 23;--error-color-700-parts-rgb: 205, 27, 19;--error-color-800-parts-rgb: 199, 22, 15;--error-color-900-parts-rgb: 190, 13, 8;--neutral-color-50-parts: #e9e9e9;--neutral-color-100-parts: #dddddd;--neutral-color-200-parts: #cccccc;--neutral-color-300-parts: #b0b0b0;--neutral-color-400-parts: #909090;--neutral-color-500-parts: #515151;--neutral-color-600-parts: #424242;--neutral-color-700-parts: #333333;--neutral-color-800-parts: #212121;--neutral-color-900-parts: #141414;--neutral-color-A50-parts: rgba(81, 81, 81, .04);--neutral-color-A100-parts: rgba(81, 81, 81, .08);--neutral-color-A200-parts: rgba(81, 81, 81, .16);--neutral-color-A300-parts: rgba(81, 81, 81, .24);--neutral-color-A400-parts: rgba(81, 81, 81, .32);--neutral-color-A500-parts: rgba(81, 81, 81, .4);--neutral-color-A600-parts: rgba(81, 81, 81, .48);--neutral-color-A700-parts: rgba(81, 81, 81, .56);--neutral-color-A800-parts: rgba(81, 81, 81, .64);--neutral-color-A900-parts: rgba(81, 81, 81, .72);--neutral-color-contrast-50-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-100-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-200-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-300-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-400-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-500-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-600-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-700-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-800-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-900-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-A50-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A100-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A200-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A300-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A400-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A500-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A600-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A700-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A800-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A900-parts: rgba(0, 0, 0, .87);--neutral-color-50-parts-rgb: 233, 233, 233;--neutral-color-100-parts-rgb: 221, 221, 221;--neutral-color-200-parts-rgb: 204, 204, 204;--neutral-color-300-parts-rgb: 176, 176, 176;--neutral-color-400-parts-rgb: 144, 144, 144;--neutral-color-500-parts-rgb: 81, 81, 81;--neutral-color-600-parts-rgb: 66, 66, 66;--neutral-color-700-parts-rgb: 51, 51, 51;--neutral-color-800-parts-rgb: 33, 33, 33;--neutral-color-900-parts-rgb: 20, 20, 20}html{--mat-ripple-color: rgba(0, 0, 0, .1)}html{--mat-option-selected-state-label-text-color: var(--primary-color-500-parts);--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}.mat-accent{--mat-option-selected-state-label-text-color: var(--accent-color-500-parts);--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}.mat-warn{--mat-option-selected-state-label-text-color: #f44336;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}html{--mat-optgroup-label-text-color: rgba(0, 0, 0, .87)}.mat-primary{--mat-full-pseudo-checkbox-selected-icon-color: var(--primary-color-500-parts);--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--primary-color-500-parts);--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}html,.mat-accent{--mat-full-pseudo-checkbox-selected-icon-color: var(--accent-color-500-parts);--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--accent-color-500-parts);--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}.mat-warn{--mat-full-pseudo-checkbox-selected-icon-color: #f44336;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color: #f44336;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}html{--mat-app-background-color: #fafafa;--mat-app-text-color: rgba(0, 0, 0, .87)}.mat-elevation-z0,.mat-mdc-elevation-specific.mat-elevation-z0{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.mat-elevation-z1,.mat-mdc-elevation-specific.mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.mat-elevation-z2,.mat-mdc-elevation-specific.mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.mat-elevation-z3,.mat-mdc-elevation-specific.mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-elevation-z4,.mat-mdc-elevation-specific.mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.mat-elevation-z5,.mat-mdc-elevation-specific.mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.mat-elevation-z6,.mat-mdc-elevation-specific.mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.mat-elevation-z7,.mat-mdc-elevation-specific.mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.mat-elevation-z8,.mat-mdc-elevation-specific.mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.mat-elevation-z9,.mat-mdc-elevation-specific.mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.mat-elevation-z10,.mat-mdc-elevation-specific.mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.mat-elevation-z11,.mat-mdc-elevation-specific.mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.mat-elevation-z12,.mat-mdc-elevation-specific.mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.mat-elevation-z13,.mat-mdc-elevation-specific.mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.mat-elevation-z14,.mat-mdc-elevation-specific.mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.mat-elevation-z15,.mat-mdc-elevation-specific.mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.mat-elevation-z16,.mat-mdc-elevation-specific.mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.mat-elevation-z17,.mat-mdc-elevation-specific.mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.mat-elevation-z18,.mat-mdc-elevation-specific.mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.mat-elevation-z19,.mat-mdc-elevation-specific.mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.mat-elevation-z20,.mat-mdc-elevation-specific.mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.mat-elevation-z21,.mat-mdc-elevation-specific.mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.mat-elevation-z22,.mat-mdc-elevation-specific.mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.mat-elevation-z23,.mat-mdc-elevation-specific.mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.mat-elevation-z24,.mat-mdc-elevation-specific.mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-theme-loaded-marker{display:none}html{--mat-option-label-text-font: Roboto, sans-serif;--mat-option-label-text-line-height: 24px;--mat-option-label-text-size: 16px;--mat-option-label-text-tracking: .03125em;--mat-option-label-text-weight: 400}html{--mat-optgroup-label-text-font: Roboto, sans-serif;--mat-optgroup-label-text-line-height: 24px;--mat-optgroup-label-text-size: 16px;--mat-optgroup-label-text-tracking: .03125em;--mat-optgroup-label-text-weight: 400}:host *{box-sizing:border-box}.sof-nav-panel-container-collapsed{width:50px!important}.non-link-icon-collapsed{padding-top:20px;padding-left:4px}.menu-text{font-size:14px!important}.menu-text.bold{font-weight:600!important}.sof-nav-panel-container{display:flex;flex-direction:column;position:absolute;inset:0}.sof-nav-panel-container .sof-nav-panel-toggle{position:fixed;z-index:2;top:.5rem;left:.5rem;transition:left;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1)}.sof-nav-panel-container .sof-nav-panel-toggle.opened{left:calc(328px + .5rem)}.sof-nav-panel-container .sof-nav-panel-toggle.mobile{left:272px}.sof-nav-panel-container .sof-nav-panel{width:328px;border:none!important;background-color:#e9e9e9}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list{list-style:none;display:flex;flex-direction:column;margin:0;padding:14px 0 0;height:auto;gap:8px}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list.mobile{padding-top:4rem}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list.sub-list{width:100%;padding:0}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item.has-subnodes{margin-top:14px}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item:nth-last-child(1 of.has-subnodes){margin-bottom:14px}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item .sof-nav-panel-subnode-heading{padding:.75rem 1rem 0;color:#0009;font-size:14px;font-weight:500;overflow:hidden;text-wrap:nowrap;text-overflow:ellipsis}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item .sof-nav-panel-link{display:flex;align-items:center;height:40px;border-radius:.5rem;padding:0 1rem;text-decoration:none;color:#000000de;font-size:14px;font-weight:500}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item .sof-nav-panel-link.primary{font-weight:600}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item .sof-nav-panel-link:focus-visible{border-left:3px solid var(--primary-color-300-parts);border-radius:0}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item .sof-nav-panel-link:hover{background:var(--neutral-color-A100-parts)}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item .sof-nav-panel-link:active{background:var(--neutral-color-A200-parts)}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item .sof-nav-panel-link.sof-nav-panel-link-active{background:#e9e9e9}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item .sof-nav-panel-link.sof-nav-panel-link-active:hover{background:linear-gradient(0deg,var(--neutral-color-A100-parts) 0%,var(--neutral-color-A100-parts) 100%),#e9e9e9}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item .sof-nav-panel-link.sof-nav-panel-link-active:active{background:linear-gradient(0deg,var(--neutral-color-A200-parts) 0%,var(--neutral-color-A200-parts) 100%),#e9e9e9}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item .sof-nav-panel-link .sof-nav-panel-link-icon{margin-right:.5rem;font-size:20px;font-weight:500}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item .sof-nav-panel-link .sof-nav-panel-link-label{width:100%;overflow:hidden;text-wrap:nowrap;text-overflow:ellipsis;font-size:14px}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .sof-nav-panel-list-item .sof-nav-panel-link .sof-nav-panel-link-label.primary{font-weight:600}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .logo{display:flex;padding:1rem 1rem 2rem;width:100%}.sof-nav-panel-container .sof-nav-panel nav .sof-nav-panel-list .logo img{height:1.5rem;max-width:100%}.sof-ar-sidenav-link.mat-mdc-list-item-interactive:focus:before,.sof-ar-sidenav-link.mat-mdc-list-item-interactive:hover:before{opacity:0!important}::ng-deep .mat-drawer-inner-container{overflow:auto!important;scrollbar-width:none!important}::ng-deep .mat-drawer-container{background:#fff!important}::ng-deep .sof-ar-nav-menu-btn{margin-right:5px;width:50px!important;height:40px!important;color:#515151!important;background:transparent!important;border-radius:4px!important;padding:0!important}@media (max-width: 959px){::ng-deep .sof-ar-nav-menu-btn{margin-left:2%!important}}@media (min-width: 959px){::ng-deep .sof-ar-nav-menu-btn{margin-left:11px!important}}::ng-deep .sof-ar-nav-menu-btn:hover,::ng-deep .sof-ar-nav-menu-btn:focus{background:var(--primary-color-50-parts)!important;color:var(--primary-color-500-parts)!important}::ng-deep .sof-ar-nav-menu-btn:hover .mdc-icon-button__ripple,::ng-deep .sof-ar-nav-menu-btn:focus .mdc-icon-button__ripple{border-radius:inherit!important}.sof-ar-nav-menu-icon{font-size:23px}.nav-content-collapsed{margin-left:50px!important}.sof-sub-nav-panel-link{padding-left:4rem}\n"] }]
205
- }], propDecorators: { scrollToTopOnNavigationEndEvent: [{
206
- type: Input
207
- }], isNavPanelOpenedEvent: [{
208
- type: Output
209
- }], sidenavContent: [{
210
- type: ViewChild,
211
- args: [MatSidenavContent]
212
- }], navigationData: [{
213
- type: Input
214
- }], settings: [{
215
- type: Input
216
- }], advancedSettings: [{
217
- type: Input
218
- }], themeSettings: [{
219
- type: Input
220
- }], languageSettings: [{
221
- type: Input
222
- }], currentLang: [{
223
- type: Input
224
- }], logOutText: [{
225
- type: Input
226
- }], setLanguage$: [{
227
- type: Output
228
- }], trigger: [{
229
- type: ViewChild,
230
- args: ['navMenuTrigger']
231
- }] } });
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYjJiLW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvbGliL25hdmlnYXRpb24vY29tcG9uZW50cy9iMmItbmF2L2IyYi1uYXYuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9uYXZpZ2F0aW9uL2NvbXBvbmVudHMvYjJiLW5hdi9iMmItbmF2LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBbUIsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQVUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQWtCLE1BQU0sd0JBQXdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7O0FBMkI5QixNQUFNLE9BQU8sZUFBZTtJQXBCNUI7UUFzQkUsK0RBQStEO1FBQ3ZELHVCQUFrQixHQUF1QixNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUU1RSxpQkFBaUI7UUFDVCxXQUFNLEdBQVcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXhDLCtDQUErQztRQUN4QyxrQkFBYSxHQUE0QixRQUFRLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7UUFLaEg7OztRQUdBO1FBQ2lCLG9DQUErQixHQUFZLElBQUksQ0FBQztRQUVqRTs7O1VBR0U7UUFDUSwwQkFBcUIsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVc1RSxnREFBZ0Q7UUFDaEMsYUFBUSxHQUF1QixFQUFFLENBQUM7UUFFbEQsZ0RBQWdEO1FBQ2hDLHFCQUFnQixHQUErQixFQUFFLENBQUM7UUFFbEUsZ0RBQWdEO1FBQ2hDLGtCQUFhLEdBQTRCLEVBQUUsQ0FBQztRQUU1RCx5REFBeUQ7UUFDekMscUJBQWdCLEdBQTJCLEVBQUUsQ0FBQztRQVE5RCxxQkFBcUI7UUFDSixpQkFBWSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBSzNFLHVDQUF1QztRQUNoQyxjQUFTLEdBQVksSUFBSSxDQUFDO1FBRWpDLG1DQUFtQztRQUM1QixvQkFBZSxHQUFZLFNBQVMsQ0FBQztRQUU1Qyw0QkFBNEI7UUFDckIsc0JBQWlCLEdBQVcsU0FBUyxDQUFDO1FBRTdDLGdDQUFnQztRQUN6Qix5QkFBb0IsR0FBVyxTQUFTLENBQUM7S0E2SWpEO0lBM0lDLHdDQUF3QztJQUNqQyxRQUFRO1FBQ2IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksSUFBSSxDQUFDLCtCQUErQixFQUFFO1lBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDckIsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxDQUFDLENBQ2xELENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBZ0IsRUFBRSxFQUFFO2dCQUMvQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQyxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELDZCQUE2QjtJQUN0QixTQUFTO1FBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksUUFBUSxDQUFDLElBQWEsRUFBRSxLQUFpQixFQUFFLEtBQWE7UUFDN0QsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxLQUFLLEVBQUU7WUFDakcsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUNoQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDM0MsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7Ozs7O01BT0U7SUFDTSxZQUFZO1FBQ2xCLElBQUksQ0FBQyxRQUFRLEtBQUssRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxLQUFLLElBQUksQ0FBQztRQUN0QyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7TUFJRTtJQUNGLFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUMxQztJQUNILENBQUM7SUFFRCxnQ0FBZ0M7SUFDeEIscUJBQXFCLENBQUMsQ0FBZ0I7UUFDNUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQXVCLENBQUM7UUFFdkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDdkMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRTtnQkFDdEIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUU7b0JBQ2hDLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLElBQUksTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ2hELENBQUMsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDL0IsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzdCLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsNENBQTRDO0lBQ3BDLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLElBQUksQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUN0RyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixJQUFJLENBQUMsQ0FBQztRQUNyRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRCx5Q0FBeUM7SUFDakMsaUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUMxSCxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQztRQUN0RSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsSUFBSSxTQUFTLENBQUM7UUFDakYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNqSSxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2pJLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDaEksSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzdILElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDdEksSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN0SSxJQUFJLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDMUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyw0QkFBNEIsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUMzRyxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNyRyxDQUFDO0lBRUQseUNBQXlDO0lBQ2pDLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLElBQUksMEJBQTBCLENBQUM7UUFDcEcsSUFBSSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLHlCQUF5QixJQUFJLDJCQUEyQixDQUFDO1FBQ2pILElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztRQUMxRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUM7UUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLGFBQWEsQ0FBQztRQUNqRixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsSUFBSSxRQUFRLENBQUM7UUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO1FBQzFHLElBQUksQ0FBQyxRQUFRLENBQUMsMkJBQTJCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQywyQkFBMkIsSUFBSSxxQkFBcUIsQ0FBQztRQUMvRyxJQUFJLENBQUMsUUFBUSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMseUJBQXlCLElBQUksZUFBZSxDQUFDO1FBQ3JHLElBQUksQ0FBQyxRQUFRLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQywwQkFBMEIsSUFBSSxlQUFlLENBQUM7UUFDdkcsSUFBSSxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLHdCQUF3QixJQUFJLGNBQWMsQ0FBQztRQUNsRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUE7UUFDNUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixJQUFJLEtBQUssQ0FBQztRQUMvRSxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLElBQUksS0FBSyxDQUFDO1FBQzdFLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsSUFBSSxLQUFLLENBQUM7UUFDN0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixJQUFJLEtBQUssQ0FBQztRQUMzRSxJQUFJLENBQUMsUUFBUSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDbEksQ0FBQztJQUVEOzs7O01BSUU7SUFDSyxhQUFhLENBQUMsUUFBZ0IsRUFBRSxLQUFhO1FBQ2xELFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxhQUFhLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdFLENBQUM7OEdBak5VLGVBQWU7a0dBQWYsZUFBZSwrYkFOZjtZQUNULFlBQVk7U0FDYiwwRUFrQ1UsaUJBQWlCLDRJQ3BFOUIseTZMQXFGTSx1ejNCRDlERixnQkFBZ0IsMFlBQ2hCLGdCQUFnQiw0VEFDaEIsZUFBZSwySUFDZixZQUFZLGdmQUNaLGVBQWUsMkZBQ2YsWUFBWSxnT0FDWixnQkFBZ0IsMnRFQUNoQixhQUFhOzsyRkFRSixlQUFlO2tCQXBCM0IsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsYUFBYTtxQkFDZCxhQUNVO3dCQUNULFlBQVk7cUJBQ2I7OEJBc0JnQiwrQkFBK0I7c0JBQS9DLEtBQUs7Z0JBTUkscUJBQXFCO3NCQUE5QixNQUFNO2dCQU11QixjQUFjO3NCQUEzQyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFHWixjQUFjO3NCQUE3QixLQUFLO2dCQUdVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBR1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQUdVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBR1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQUdVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBR1UsVUFBVTtzQkFBekIsS0FBSztnQkFHVyxZQUFZO3NCQUE1QixNQUFNO2dCQUc2QixPQUFPO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludFN0YXRlLCBMYXlvdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFNpZ25hbCwgVmlld0NoaWxkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUsIE1hdE1lbnVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IE1hdFNpZGVuYXZDb250ZW50LCBNYXRTaWRlbmF2TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQG5nYnJhY2tldC9uZ3gtbGF5b3V0JztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBIZWFkZXJMYW5ndWFnZVNldHRpbmdzIH0gZnJvbSAnLi4vLi4vLi4vaGVhZGVyL21vZGVscy9oZWFkZXItbGFuZ3VhZ2Uuc2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uVGhlbWVTZXR0aW5ncyB9IGZyb20gJy4uLy4uL21vZGVscy9uYXYtdGhlbWUuc2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uQWR2YW5jZWRTZXR0aW5ncywgTmF2aWdhdGlvblNldHRpbmdzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL25hdi5zZXR0aW5ncyc7XHJcbmltcG9ydCB7IE5hdk5vZGUsIFN1Yk5hdk5vZGVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL25hdmlnYXRpb24nO1xyXG5pbXBvcnQgeyBOYXZQYW5lbExvZ28gfSBmcm9tICcuLi9zb2YtbmF2aWdhdGlvbi1wYW5lbC9tb2RlbHMvbmF2LXBhbmVsLWxvZ28nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzb2YtbmF2LWIyYicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRTaWRlbmF2TW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIFJvdXRlck1vZHVsZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZsZXhMYXlvdXRNb2R1bGUsXHJcbiAgICBNYXRNZW51TW9kdWxlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIExheW91dE1vZHVsZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2IyYi1uYXYuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9iMmItbmF2LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQjJiTmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgLyoqIFV0aWxpdHkgZm9yIGNoZWNraW5nIHRoZSBtYXRjaGluZyBzdGF0ZSBvZiBtZWRpYSBxdWVyaWVzLiovXHJcbiAgcHJpdmF0ZSBicmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlciA9IGluamVjdChCcmVha3BvaW50T2JzZXJ2ZXIpO1xyXG5cclxuICAvKiogVGhlIHJvdXRlciAqL1xyXG4gIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuXHJcbiAgLyoqIEhhcyB0aGUgc21hbGwgc2NyZWVuIGJyZWFrcG9pbnQgYmVlbiBoaXQgKi9cclxuICBwdWJsaWMgaXNTbWFsbFNjcmVlbjogU2lnbmFsPEJyZWFrcG9pbnRTdGF0ZT4gPSB0b1NpZ25hbCh0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKCcobWF4LXdpZHRoOiA5NTlweCknKSk7XHJcblxyXG4gIC8qKiBUaGUgYnJhbmQgbG9nbyBpbiB0aGUgZm9vdGVyIG9mIHRoZSBuYXZpZ2F0aW9uIHBhbmVsICovXHJcbiAgcHVibGljIGJyYW5kTG9nbzogTmF2UGFuZWxMb2dvO1xyXG5cclxuICAvKipcclxuICogU2hvdWxkIHNjcm9sbCB0byB0b3Agb24gYE5hdmlnYXRpb25FbmRgIGV2ZW50P1xyXG4gKiBAZGVmYXVsdCB0cnVlXHJcbiovXHJcbiAgQElucHV0KCkgcHJpdmF0ZSBzY3JvbGxUb1RvcE9uTmF2aWdhdGlvbkVuZEV2ZW50OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogSXMgdGhlIG5hdiBwYW5lbCBvcGVuXHJcbiAgICogQG5vdGUgdGhpcyBpcyBuZWVkZWQgdG8gcGFzcyBwYW5lbCBvcGVuZWQgc3RhdGUgdG8gdGhlIFNvZkhlYWRlclBvcnRhbENvbXBvbmVudFxyXG4gICovXHJcbiAgQE91dHB1dCgpIGlzTmF2UGFuZWxPcGVuZWRFdmVudDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvKipcclxuICAgKiBNYWluIGNvbnRlbnQgZm9yIHNjcm9sbCBwb3NpdGlvblxyXG4gICAqIEBub3RlIHRoaXMgaXMgdGhlIGVsZW1lbnQgd2hpY2ggaGFzIHRoZSBhcHBzICdtYWluJyBzY3JvbGxiYXIuXHJcbiAgKi9cclxuICBAVmlld0NoaWxkKE1hdFNpZGVuYXZDb250ZW50KSBzaWRlbmF2Q29udGVudCE6IE1hdFNpZGVuYXZDb250ZW50O1xyXG5cclxuICAvKiogQ29tcG9uZW50IElucHV0IC0gdGhlIG5hdmlnYXRpb24gZGF0YSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBuYXZpZ2F0aW9uRGF0YTogTmF2Tm9kZVtdO1xyXG5cclxuICAvKiogQ29tcG9uZW50IElucHV0IC0gdGhlIG5hdmlnYXRpb24gc2V0dGluZ3MgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgc2V0dGluZ3M6IE5hdmlnYXRpb25TZXR0aW5ncyA9IHt9O1xyXG5cclxuICAvKiogQ29tcG9uZW50IElucHV0IC0gdGhlIG5hdmlnYXRpb24gc2V0dGluZ3MgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgYWR2YW5jZWRTZXR0aW5nczogTmF2aWdhdGlvbkFkdmFuY2VkU2V0dGluZ3MgPSB7fTtcclxuXHJcbiAgLyoqIENvbXBvbmVudCBJbnB1dCAtIHRoZSBuYXZpZ2F0aW9uIHNldHRpbmdzICovXHJcbiAgQElucHV0KCkgcHVibGljIHRoZW1lU2V0dGluZ3M6IE5hdmlnYXRpb25UaGVtZVNldHRpbmdzID0ge307XHJcblxyXG4gIC8qKiBDb21wb25lbnQgSW5wdXQgLSB0aGUgbmF2aWdhdGlvbiBsYW5ndWFnZSBzZXR0aW5ncyAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsYW5ndWFnZVNldHRpbmdzOiBIZWFkZXJMYW5ndWFnZVNldHRpbmdzID0ge307XHJcblxyXG4gIC8qKiBDdXJyZW50IGxhbmd1YWdlICoqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXJyZW50TGFuZzogc3RyaW5nO1xyXG5cclxuICAvKiogbG9nT3V0IHRleHQgKiovXHJcbiAgQElucHV0KCkgcHVibGljIGxvZ091dFRleHQ6IHN0cmluZztcclxuXHJcbiAgLyoqIFNldHMgbGFuZ3VhZ2UgKiovXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBzZXRMYW5ndWFnZSQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIC8qKiBUaGUgbWF0IG1lbnUgdHJpZ2dlciAqL1xyXG4gIEBWaWV3Q2hpbGQoJ25hdk1lbnVUcmlnZ2VyJykgcHVibGljIHRyaWdnZXI6IE1hdE1lbnVUcmlnZ2VyO1xyXG5cclxuICAvKiogVHJ1ZSB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIG9wZW4gKi9cclxuICBwdWJsaWMgaXNOYXZPcGVuOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLyoqIFRoZSBzZWxlY3RlZCBuYXZpZ2F0aW9uIG5vZGUgKi9cclxuICBwdWJsaWMgY3VycmVudE1lbnVOb2RlOiBOYXZOb2RlID0gdW5kZWZpbmVkO1xyXG5cclxuICAvKiogVGhlIHNlbGVjdGVkIG5hdiBub2RlICovXHJcbiAgcHVibGljIHNlbGVjdGVkTm9kZUluZGV4OiBudW1iZXIgPSB1bmRlZmluZWQ7XHJcblxyXG4gIC8qKiBUaGUgc2VsZWN0ZWQgc3ViIG5hdiBub2RlICovXHJcbiAgcHVibGljIHNlbGVjdGVkU3ViTm9kZUluZGV4OiBudW1iZXIgPSB1bmRlZmluZWQ7XHJcblxyXG4gIC8qKiBPbiBJbml0IC0gSW5pdGlhbGl6ZSB0aGUgc2V0dGluZ3MgKi9cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRTZXR0aW5ncygpO1xyXG4gICAgaWYgKHRoaXMuc2Nyb2xsVG9Ub3BPbk5hdmlnYXRpb25FbmRFdmVudCkge1xyXG4gICAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcclxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpXHJcbiAgICAgICkuc3Vic2NyaWJlKChlOiBOYXZpZ2F0aW9uRW5kKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxUb1RvcCgpO1xyXG4gICAgICAgIHRoaXMubGlzdGVuRm9yUm91dGVDaGFuZ2VzKGUpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBTaHJpbmtzIHRoZSBuYXZpZ2F0aW9uICovXHJcbiAgcHVibGljIHNocmlua05hdigpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNOYXZPcGVuID0gIXRoaXMuaXNOYXZPcGVuO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3BlbnMgdGhlIG1lbnUgZm9yIHRoZSBuYXZpZ2F0aW9uXHJcbiAgICogQHBhcmFtIG5vZGUgVGhlIG5vZGVcclxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIGV2ZW50XHJcbiAgICogQHJldHVybnMgdm9pZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBvcGVuTWVudShub2RlOiBOYXZOb2RlLCBldmVudDogTW91c2VFdmVudCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXNOYXZPcGVuIHx8ICFub2RlLnN1Yk5vZGVzIHx8ICFub2RlLnN1Yk5vZGVzLmxlbmd0aCB8fCB0aGlzLnNlbGVjdGVkTm9kZUluZGV4ID09PSBpbmRleCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmN1cnJlbnRNZW51Tm9kZSA9IG5vZGU7XHJcbiAgICBjb25zdCBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmF2TWVudVRyaWdnZXInKTtcclxuICAgIGJ1dHRvbi5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XHJcbiAgICBidXR0b24uc3R5bGUudG9wID0gZXZlbnQucGFnZVkgLSAzMCArICdweCc7XHJcbiAgICBidXR0b24uc3R5bGUubGVmdCA9IGV2ZW50LnBhZ2VYICsgMzAgKyAncHgnO1xyXG4gICAgdGhpcy50cmlnZ2VyLm9wZW5NZW51KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplcyB0aGUgbmF2IHBhbmVsIHNldHRpbmdzLCBkZWZhdWx0cyB3aWxsIGJlIHNldCBpZiBgbnVsbGAgb3IgYHVuZGVmaW5lZGBcclxuICAgKiBAbm90ZSBUaGUgJ251bGxpc2ggY29hbGVzY2luZyBhc3NpZ25tZW50IG9wZXJhdG9yJyBgPz89YCBhc3NpZ25zIGRlZmF1bHRzIGZvciBgYm9vbGVhbmAgYW5kIGBudW1iZXJgIHR5cGVzLFxyXG4gICAqIGZvciBgbnVtYmVyYCB0eXBlcyB0aGlzIHdpbGwgYWxsb3cgZm9yIGAwYCB0byBiZSBhY2NlcHRlZC4gRm9yIGEgYHN0cmluZ2AsIHVzZSAnbG9naWNhbCBPUiBhc3NpZ25tZW50JyBgfHw9YCBvcGVyYXRvcixcclxuICAgKiBhcyB0aGlzIHdpbGwgYWxzbyBwcmV2ZW50IGVtcHR5IHN0cmluZ3MgYFwiIFwiYC5cclxuICAgKiBAc2VlIGA/Pz1gIHtAbGluayBbTUROIFJlZmVyZW5jZV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvT3BlcmF0b3JzL051bGxpc2hfY29hbGVzY2luZ19hc3NpZ25tZW50I3VzaW5nX251bGxpc2hfY29hbGVzY2luZ19hc3NpZ25tZW50KX1cclxuICAgKiBAc2VlIGB8fD1gIHtAbGluayBbTUROIFJlZmVyZW5jZV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvT3BlcmF0b3JzL0xvZ2ljYWxfT1JfYXNzaWdubWVudCN0cnlfaXQpfVxyXG4gICovXHJcbiAgcHJpdmF0ZSBpbml0U2V0dGluZ3MoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldHRpbmdzID8/PSB7fTtcclxuICAgIHRoaXMuc2V0dGluZ3MuYWxsb3dOYXZUb2dnbGUgPz89IHRydWU7XHJcbiAgICB0aGlzLmluaXRBZHZhbmNlZFNldHRpbmdzKCk7XHJcbiAgICB0aGlzLmluaXRCYXNpY1NldHRpbmdzKCk7XHJcbiAgICB0aGlzLmluaXRUaGVtZVNldHRpbmdzKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTY3JvbGxzIHRvIHRoZSB0b3Agb2YgcGFnZVxyXG4gICAqIEBub3RlIHVzaW5nIGB3aW5kb3cuc2Nyb2xsVG9gIHdpbGwgbm90IHdvcmsgaWYgdXNpbmcgdGhpcyBjb21wb25lbnQgYXMgdGhlIG1haW4gc2Nyb2xsYmFyIGRvZXMgbm90IGxpdmUgb24gdGhlIHdpbmRvdyBsZXZlbC5cclxuICAgKiBDb25maWd1cmluZyBgc2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbmAgaW4gdGhlIHJvdXRlciBtb2R1bGUgd2lsbCBub3Qgd29yayBlaXRoZXIuXHJcbiAgKi9cclxuICBzY3JvbGxUb1RvcCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNpZGVuYXZDb250ZW50KSB7XHJcbiAgICAgIHRoaXMuc2lkZW5hdkNvbnRlbnQuc2Nyb2xsVG8oeyB0b3A6IDAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogTGlzdGVucyBmb3Igcm91dGUgY2hhbmdlcyAqL1xyXG4gIHByaXZhdGUgbGlzdGVuRm9yUm91dGVDaGFuZ2VzKGU6IE5hdmlnYXRpb25FbmQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZsYXR0ZW5TdWJOb2RlcyA9IG5ldyBNYXA8c3RyaW5nLCBTdWJOYXZOb2Rlcz4oKTtcclxuXHJcbiAgICB0aGlzLm5hdmlnYXRpb25EYXRhLmZvckVhY2goKG4sIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmIChuLnN1Yk5vZGVzPy5sZW5ndGgpIHtcclxuICAgICAgICBuLnN1Yk5vZGVzLmZvckVhY2goKHNuLCBzSW5kZXgpID0+IHtcclxuICAgICAgICAgIGZsYXR0ZW5TdWJOb2Rlcy5zZXQoYCR7aW5kZXh9OiR7c0luZGV4fWAsIHNuKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgZmxhdHRlblN1Yk5vZGVzLmZvckVhY2goKHYsIGspID0+IHtcclxuICAgICAgaWYgKGUudXJsLnN0YXJ0c1dpdGgodi5yb3V0ZSkpIHtcclxuICAgICAgICBjb25zdCBzcGxpdCA9IGsuc3BsaXQoJzonKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZUluZGV4ID0gK3NwbGl0WzBdO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTdWJOb2RlSW5kZXggPSArc3BsaXRbMV07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIEluaXRpYWxpemVzIHRoZSBhZHZhbmNlZCBuYXYgc2V0dGluZ3MgKi9cclxuICBwcml2YXRlIGluaXRBZHZhbmNlZFNldHRpbmdzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5hZHZhbmNlZFNldHRpbmdzLnRvcEdhcERlc2t0b3AgPSB0aGlzLmFkdmFuY2VkU2V0dGluZ3MudG9wR2FwRGVza3RvcCB8fCAwO1xyXG4gICAgdGhpcy5hZHZhbmNlZFNldHRpbmdzLnRvcEdhcE1vYmlsZSA9IHRoaXMuYWR2YW5jZWRTZXR0aW5ncy50b3BHYXBNb2JpbGUgfHwgdGhpcy5zZXR0aW5ncy5oZWFkZXJIZWlnaHQ7XHJcbiAgICB0aGlzLmFkdmFuY2VkU2V0dGluZ3MubWFyZ2luVG9wRGVza3RvcCA9IHRoaXMuYWR2YW5jZWRTZXR0aW5ncy5tYXJnaW5Ub3BEZXNrdG9wIHx8IDA7XHJcbiAgICB0aGlzLmFkdmFuY2VkU2V0dGluZ3MubWFyZ2luVG9wTW9iaWxlID0gdGhpcy5hZHZhbmNlZFNldHRpbmdzLm1hcmdpblRvcE1vYmlsZSB8fCAwO1xyXG4gIH1cclxuXHJcbiAgLyoqIEluaXRpYWxpemVzIHRoZSBuYXYgdGhlbWUgc2V0dGluZ3MgKi9cclxuICBwcml2YXRlIGluaXRUaGVtZVNldHRpbmdzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50aGVtZVNldHRpbmdzLmNvbnRlbnRCZ0NvbG9yID8gdGhpcy5zZXRUaGVtZUNvbG9yKCdjb250ZW50LWJnLWNvbG9yJywgdGhpcy50aGVtZVNldHRpbmdzLmNvbnRlbnRCZ0NvbG9yKSA6IHVuZGVmaW5lZDtcclxuICAgIHRoaXMudGhlbWVTZXR0aW5ncy5mb250Q29sb3IgPyB0aGlzLnNldFRoZW1lQ29sb3IoJ2ZvbnQtY29sb3InLCB0aGlzLnRoZW1lU2V0dGluZ3MuZm9udENvbG9yKSA6IHVuZGVmaW5lZDtcclxuICAgIHRoaXMudGhlbWVTZXR0aW5ncy5mb250Q29sb3IgPSB0aGlzLnRoZW1lU2V0dGluZ3MuZm9udENvbG9yIHx8ICcjMDAwJztcclxuICAgIHRoaXMudGhlbWVTZXR0aW5ncy5tb2JpbGVCZ0NvbG9yID0gdGhpcy50aGVtZVNldHRpbmdzLm1vYmlsZUJnQ29sb3IgfHwgJyNmZmZmZmYnO1xyXG4gICAgdGhpcy50aGVtZVNldHRpbmdzLmJnR3JhZGllbnRDb2xvcjEgPyB0aGlzLnNldFRoZW1lQ29sb3IoJ2JnLWdyYWRpZW50LWNvbG9yLTEnLCB0aGlzLnRoZW1lU2V0dGluZ3MuYmdHcmFkaWVudENvbG9yMSkgOiB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnRoZW1lU2V0dGluZ3MuYmdHcmFkaWVudENvbG9yMiA/IHRoaXMuc2V0VGhlbWVDb2xvcignYmctZ3JhZGllbnQtY29sb3ItMicsIHRoaXMudGhlbWVTZXR0aW5ncy5iZ0dyYWRpZW50Q29sb3IyKSA6IHVuZGVmaW5lZDtcclxuICAgIHRoaXMudGhlbWVTZXR0aW5ncy5ib3JkZXJSaWdodENvbG9yID8gdGhpcy5zZXRUaGVtZUNvbG9yKCdib3JkZXItcmlnaHQtY29sb3InLCB0aGlzLnRoZW1lU2V0dGluZ3MuYm9yZGVyUmlnaHRDb2xvcikgOiB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnRoZW1lU2V0dGluZ3MubGlzdEJvcmRlckNvbG9yID8gdGhpcy5zZXRUaGVtZUNvbG9yKCdsaXN0LWJvcmRlci1jb2xvcicsIHRoaXMudGhlbWVTZXR0aW5ncy5saXN0Qm9yZGVyQ29sb3IpIDogdW5kZWZpbmVkO1xyXG4gICAgdGhpcy50aGVtZVNldHRpbmdzLmhpZ2hsaWdodEdyYWRpZW50MSA/IHRoaXMuc2V0VGhlbWVDb2xvcignaGlnaGxpZ2h0LWdyYWRpZW50LTEnLCB0aGlzLnRoZW1lU2V0dGluZ3MuaGlnaGxpZ2h0R3JhZGllbnQxKSA6IHVuZGVmaW5lZDtcclxuICAgIHRoaXMudGhlbWVTZXR0aW5ncy5oaWdobGlnaHRHcmFkaWVudDIgPyB0aGlzLnNldFRoZW1lQ29sb3IoJ2hpZ2hsaWdodC1ncmFkaWVudC0yJywgdGhpcy50aGVtZVNldHRpbmdzLmhpZ2hsaWdodEdyYWRpZW50MikgOiB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnRoZW1lU2V0dGluZ3Muc3ViSGlnaGxpZ2h0Qm9yZGVyQ29sb3IgP1xyXG4gICAgICB0aGlzLnNldFRoZW1lQ29sb3IoJ3N1Yi1oaWdobGlnaHQtYm9yZGVyLWNvbG9yJywgdGhpcy50aGVtZVNldHRpbmdzLnN1YkhpZ2hsaWdodEJvcmRlckNvbG9yKSA6IHVuZGVmaW5lZDtcclxuICAgIHRoaXMudGhlbWVTZXR0aW5ncy5zdWJIaWdobGlnaHRCZ0NvbG9yID9cclxuICAgICAgdGhpcy5zZXRUaGVtZUNvbG9yKCdzdWItaGlnaGxpZ2h0LWJnLWNvbG9yJywgdGhpcy50aGVtZVNldHRpbmdzLnN1YkhpZ2hsaWdodEJnQ29sb3IpIDogdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgLyoqIEluaXRpYWxpemVzIHRoZSBiYXNpYyBuYXYgc2V0dGluZ3MgKi9cclxuICBwcml2YXRlIGluaXRCYXNpY1NldHRpbmdzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXR0aW5ncy5mb250QXdlc29tZU1lbnVJY29uID0gdGhpcy5zZXR0aW5ncy5mb250QXdlc29tZU1lbnVJY29uIHx8ICdmYXMgZmEtYW5nbGUtZG91YmxlLWxlZnQnO1xyXG4gICAgdGhpcy5zZXR0aW5ncy5mb250QXdlc29tZU1lbnVJY29uQ2xvc2VkID0gdGhpcy5zZXR0aW5ncy5mb250QXdlc29tZU1lbnVJY29uQ2xvc2VkIHx8ICdmYXMgZmEtYW5nbGUtZG91YmxlLXJpZ2h0JztcclxuICAgIHRoaXMuc2V0dGluZ3MuYWxsb3dOYXZUb2dnbGUgPSB0aGlzLnNldHRpbmdzLmFsbG93TmF2VG9nZ2xlID09IG51bGwgPyB0cnVlIDogdGhpcy5zZXR0aW5ncy5hbGxvd05hdlRvZ2dsZTtcclxuICAgIHRoaXMuc2V0dGluZ3MuaGVhZGVySGVpZ2h0ID0gdGhpcy5zZXR0aW5ncy5oZWFkZXJIZWlnaHQgfHwgNjA7XHJcbiAgICB0aGlzLnNldHRpbmdzLm1lbnVCdXR0b25TUlRleHQgPSB0aGlzLnNldHRpbmdzLm1lbnVCdXR0b25TUlRleHQgfHwgJ01lbnUgQnV0dG9uJztcclxuICAgIHRoaXMuc2V0dGluZ3MubWVudVN0eWxlID0gdGhpcy5zZXR0aW5ncy5tZW51U3R5bGUgfHwgJ3N0YXRpYyc7XHJcbiAgICB0aGlzLnNldHRpbmdzLmRpc3BsYXlOdW1iZXJzID0gdGhpcy5zZXR0aW5ncy5kaXNwbGF5TnVtYmVycyA9PSBudWxsID8gdHJ1ZSA6IHRoaXMuc2V0dGluZ3MuZGlzcGxheU51bWJlcnM7XHJcbiAgICB0aGlzLnNldHRpbmdzLnByb2dyZXNzU2VjdGlvbkNvbXBsZXRlSWNvbiA9IHRoaXMuc2V0dGluZ3MucHJvZ3Jlc3NTZWN0aW9uQ29tcGxldGVJY29uIHx8ICdmYXMgZmEtY2hlY2stY2lyY2xlJztcclxuICAgIHRoaXMuc2V0dGluZ3MucHJvZ3Jlc3NTZWN0aW9uRnV0dXJlSWNvbiA9IHRoaXMuc2V0dGluZ3MucHJvZ3Jlc3NTZWN0aW9uRnV0dXJlSWNvbiB8fCAnZmFyIGZhLWNpcmNsZSc7XHJcbiAgICB0aGlzLnNldHRpbmdzLnByb2dyZXNzU2VjdGlvbkN1cnJlbnRJY29uID0gdGhpcy5zZXR0aW5ncy5wcm9ncmVzc1NlY3Rpb25DdXJyZW50SWNvbiB8fCAnZmFzIGZhLWNpcmNsZSc7XHJcbiAgICB0aGlzLnNldHRpbmdzLnByb2dyZXNzTWVudUNvbXBsZXRlSWNvbiA9IHRoaXMuc2V0dGluZ3MucHJvZ3Jlc3NNZW51Q29tcGxldGVJY29uIHx8ICdmYXIgZmEtY2hlY2snO1xyXG4gICAgdGhpcy5zZXR0aW5ncy5zaG93UHJvZ3Jlc3NCYXIgPSB0aGlzLnNldHRpbmdzLnNob3dQcm9ncmVzc0JhciA9PSBudWxsID8gdHJ1ZSA6IHRoaXMuc2V0dGluZ3Muc2hvd1Byb2dyZXNzQmFyXHJcbiAgICB0aGlzLnNldHRpbmdzLnNpZGVOYXZXaWR0aERlc2t0b3AgPSB0aGlzLnNldHRpbmdzLnNpZGVOYXZXaWR0aERlc2t0b3AgfHwgJzM1MCc7XHJcbiAgICB0aGlzLnNldHRpbmdzLnNpZGVOYXZXaWR0aE1vYmlsZSA9IHRoaXMuc2V0dGluZ3Muc2lkZU5hdldpZHRoTW9iaWxlIHx8ICczNTAnO1xyXG4gICAgdGhpcy5zZXR0aW5ncy5vdmVycmlkZU5hdmlnYXRpb24gPSB0aGlzLnNldHRpbmdzLm92ZXJyaWRlTmF2aWdhdGlvbiB8fCBmYWxzZTtcclxuICAgIHRoaXMuc2V0dGluZ3MucHJvZ3Jlc3NNZW51V2lkdGggPSB0aGlzLnNldHRpbmdzLnByb2dyZXNzTWVudVdpZHRoIHx8ICcyODAnO1xyXG4gICAgdGhpcy5zZXR0aW5ncy51c2VDdXN0b21Nb2JpbGVGb290ZXIgPSB0aGlzLnNldHRpbmdzLnVzZUN1c3RvbU1vYmlsZUZvb3RlciAhPSBudWxsID8gdGhpcy5zZXR0aW5ncy51c2VDdXN0b21Nb2JpbGVGb290ZXIgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICogU2V0cyB0aGUgdGhlbWUgY29sb3JcclxuICAqIEBwYXJhbSB2YXJpYWJsZSB0aGUgY3NzIHZhcmlhYmxlIG5hbWVcclxuICAqIEBwYXJhbSBjb2xvciB0aGUgY29sb3JcclxuICAqL1xyXG4gIHB1YmxpYyBzZXRUaGVtZUNvbG9yKHZhcmlhYmxlOiBzdHJpbmcsIGNvbG9yOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShgLS1zb2YtbmF2LSR7dmFyaWFibGV9YCwgY29sb3IpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic29mLW5hdi1wYW5lbC1jb250YWluZXJcIiBzdHlsZT1cInRvcDogNjRweFwiPlxyXG4gICAgPG1hdC1zaWRlbmF2LWNvbnRhaW5lcj5cclxuICAgICAgICA8bWF0LXNpZGVuYXYgI25hdlBhbmVsIGNsYXNzPVwic29mLW5hdi1wYW5lbFwiIFtuZ0NsYXNzXT1cInsnc29mLW5hdi1wYW5lbC1jb250YWluZXItY29sbGFwc2VkJzogIWlzTmF2T3Blbn1cIlxyXG4gICAgICAgICAgICBbb3BlbmVkXT1cInRydWVcIiBbbW9kZV09XCJpc1NtYWxsU2NyZWVuKCkubWF0Y2hlcyA/ICdvdmVyJyA6ICdzaWRlJ1wiPlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NvZi1hci1uYXYtaGVhZGVyXVwiPjwvbmctY29udGVudD5cclxuXHJcbiAgICAgICAgICAgIDxuYXYgW2F0dHIuYXJpYS1sYWJlbF09XCInbWFpbidcIiBbc3R5bGUucGFkZGluZ0JvdHRvbS5weF09XCIhIWJyYW5kTG9nbyA/IDAgOiA0MFwiIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwiaGVpZ2h0OiAxMDAlXCI+XHJcbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJzb2YtbmF2LXBhbmVsLWxpc3RcIiBbY2xhc3MubW9iaWxlXT1cImlzU21hbGxTY3JlZW4oKS5tYXRjaGVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQGZvciAobm9kZSBvZiBuYXZpZ2F0aW9uRGF0YTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpIGZ4RmxleD1cImF1dG9cIiBjbGFzcz1cInNvZi1uYXYtcGFuZWwtbGlzdC1pdGVtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmhhcy1zdWJub2Rlc109XCJub2RlLnN1Yk5vZGVzPy5sZW5ndGggJiYgaXNOYXZPcGVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIW5vZGUucm91dGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwib3Blbk1lbnUobm9kZSwgJGV2ZW50LCAkaW5kZXgpXCIgY2xhc3M9XCJzb2YtbmF2LXBhbmVsLWxpbmsgcHJpbWFyeVwiIG1hdFRvb2x0aXA9XCJ7e25vZGUudGV4dCB8IHRyYW5zbGF0ZX19XCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cInsnbm9uLWxpbmstaWNvbi1jb2xsYXBzZWQnOiAhaXNOYXZPcGVufVwiIGNsYXNzPVwie3tub2RlLmZvbnRBd2Vzb21lSWNvbn19IHNvZi1uYXYtcGFuZWwtbGluay1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpc05hdk9wZW5cIj57e25vZGUudGV4dHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9QGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwib3Blbk1lbnUobm9kZSwgJGV2ZW50LCAkaW5kZXgpXCIgY2xhc3M9XCJzb2YtbmF2LXBhbmVsLWxpbmtcIiBbcm91dGVyTGlua109XCJub2RlLnJvdXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJzb2YtbmF2LXBhbmVsLWxpbmstYWN0aXZlXCIgbWF0VG9vbHRpcD1cInt7bm9kZS50ZXh0IHwgdHJhbnNsYXRlfX1cIiBtYXRUb29sdGlwUG9zaXRpb249XCJyaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ7e25vZGUuZm9udEF3ZXNvbWVJY29ufX0gc29mLW5hdi1wYW5lbC1saW5rLWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzTmF2T3BlblwiIGNsYXNzPVwic29mLW5hdi1wYW5lbC1saW5rLWxhYmVsIHByaW1hcnlcIj57e25vZGUudGV4dCB8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYoaXNOYXZPcGVuIHx8ICRpbmRleCA9PT0gc2VsZWN0ZWROb2RlSW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwic29mLW5hdi1wYW5lbC1saXN0IHN1Yi1saXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChzdWJOb2RlIG9mIG5vZGUuc3ViTm9kZXM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJpc1NtYWxsU2NyZWVuKCkubWF0Y2hlcyA/IG5hdlBhbmVsLmNsb3NlKCkgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzb2YtbmF2LXBhbmVsLWxpbmsgc29mLXN1Yi1uYXYtcGFuZWwtbGlua1wiIFtyb3V0ZXJMaW5rXT1cInN1Yk5vZGUucm91dGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwic29mLW5hdi1wYW5lbC1saW5rLWFjdGl2ZVwiIG1hdFRvb2x0aXA9XCJ7e3N1Yk5vZGUudGV4dCB8IHRyYW5zbGF0ZX19XCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzb2YtbmF2LXBhbmVsLWxpbmstbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwie3tzdWJOb2RlLmljb24gfHwgJ3BoIHBoLWZpbGVzJ319XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpc05hdk9wZW5cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4XCI+e3tzdWJOb2RlLnRleHQgfCB0cmFuc2xhdGV9fSA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQGlmIChicmFuZExvZ28pIHtcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9nb1wiIG0tdC1hdXRvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiYnJhbmRMb2dvLnVybFwiIFthbHRdPVwiYnJhbmRMb2dvLmFsdFRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD1cIm5hdk1lbnVUcmlnZ2VyXCIgI25hdk1lbnVUcmlnZ2VyPVwibWF0TWVudVRyaWdnZXJcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibmF2TWVudVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7IGhlaWdodDogMXB4OyB3aWR0aDogMXB4OyBvcGFjaXR5OiAwO1wiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1tZW51ICNuYXZNZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImFmdGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQGlmKGN1cnJlbnRNZW51Tm9kZSAmJiBjdXJyZW50TWVudU5vZGUuc3ViTm9kZXM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIDxhIG1hdC1tZW51LWl0ZW0gW3JvdXRlckxpbmtdPVwiY3VycmVudE1lbnVOb2RlLnJvdXRlXCIgcm91dGVyTGlua0FjdGl2ZT1cInNvZi1uYXYtcGFuZWwtbGluay1hY3RpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzb2YtbmF2LXBhbmVsLWxpbmstbGFiZWwgbWVudS10ZXh0IGJvbGRcIj57e2N1cnJlbnRNZW51Tm9kZS50ZXh0IHwgdHJhbnNsYXRlfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICBAZm9yKHN1Ym5vZGUgb2YgY3VycmVudE1lbnVOb2RlLnN1Yk5vZGVzOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICA8YSBtYXQtbWVudS1pdGVtIFtyb3V0ZXJMaW5rXT1cInN1Ym5vZGUucm91dGVcIiByb3V0ZXJMaW5rQWN0aXZlPVwic29mLW5hdi1wYW5lbC1saW5rLWFjdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNvZi1uYXYtcGFuZWwtbGluay1sYWJlbCBtZW51LXRleHRcIj57e3N1Ym5vZGUudGV4dCB8IHRyYW5zbGF0ZX19IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZ4RmxleD1cImF1dG9cIiBzdHlsZT1cIndpZHRoOiAxMDAlXCIgZnhMYXlvdXRBbGlnbj1cImVuZCBlbmRcIiBmeExheW91dD1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gZnhGbGV4PVwiNDBweFwiIGlkPVwic29mLWFyLW5hdi1idG4tbWVudVwiIGFyaWEtbGFiZWw9XCJNZW51IEJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZVJpcHBsZV09XCJ0cnVlXCIgY2xhc3M9XCJzb2YtYXItbmF2LW1lbnUtYnRuXCIgKGNsaWNrKT1cInNocmlua05hdigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmhpZGRlbl09XCIhKHNldHRpbmdzLmFsbG93TmF2VG9nZ2xlKSB8fCBzZXR0aW5ncy5oaWRlTmF2aWdhdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzTmF2T3BlbjsgZWxzZSBjbG9zZWRJY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJzb2YtYXItbmF2LW1lbnUtaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ7e3NldHRpbmdzLmZvbnRBd2Vzb21lTWVudUljb259fSBtZW51LWljb25cIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjbG9zZWRJY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJzb2YtYXItbmF2LW1lbnUtaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwie3tzZXR0aW5ncy5mb250QXdlc29tZU1lbnVJY29uQ2xvc2VkfX0gbWVudS1pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj57e3NldHRpbmdzLm1lbnVCdXR0b25TUlRleHQgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25hdj5cclxuICAgICAgICA8L21hdC1zaWRlbmF2PlxyXG4gICAgICAgIDxtYXQtc2lkZW5hdi1jb250ZW50IFtuZ0NsYXNzXT1cInsnbmF2LWNvbnRlbnQtY29sbGFwc2VkJzogIWlzTmF2T3Blbn1cIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc29mLWFyLW5hdi1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgICA8L21hdC1zaWRlbmF2LWNvbnRlbnQ+XHJcbiAgICA8L21hdC1zaWRlbmF2LWNvbnRhaW5lcj5cclxuPC9kaXY+Il19