@vendure/admin-ui 2.2.1 → 2.2.3

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 (1183) hide show
  1. package/LICENSE +9 -0
  2. package/core/common/version.d.ts +1 -0
  3. package/{package/esm2022 → esm2022}/core/common/version.mjs +2 -2
  4. package/{package/esm2022 → esm2022}/core/shared/components/data-table-filters/data-table-filters.component.mjs +1 -1
  5. package/{package/esm2022 → esm2022}/core/shared/components/facet-value-selector/facet-value-selector.component.mjs +1 -1
  6. package/{package/esm2022 → esm2022}/order/components/draft-order-detail/draft-order-detail.component.mjs +3 -2
  7. package/{package/esm2022 → esm2022}/order/components/order-editor/order-editor.component.mjs +1 -1
  8. package/{package/fesm2022 → fesm2022}/vendure-admin-ui-core.mjs +1 -1
  9. package/{package/fesm2022 → fesm2022}/vendure-admin-ui-core.mjs.map +1 -1
  10. package/{package/fesm2022 → fesm2022}/vendure-admin-ui-order.mjs +2 -1
  11. package/fesm2022/vendure-admin-ui-order.mjs.map +1 -0
  12. package/package.json +129 -117
  13. package/.eslintrc.json +0 -96
  14. package/README.md +0 -50
  15. package/angular.json +0 -186
  16. package/i18n-coverage.json +0 -106
  17. package/package/core/common/version.d.ts +0 -1
  18. package/package/fesm2022/vendure-admin-ui-order.mjs.map +0 -1
  19. package/tsconfig.json +0 -66
  20. package/tsconfig.lib.json +0 -25
  21. package/tsconfig.lib.prod.json +0 -14
  22. /package/{package/catalog → catalog}/catalog.module.d.ts +0 -0
  23. /package/{package/catalog → catalog}/catalog.routes.d.ts +0 -0
  24. /package/{package/catalog → catalog}/components/apply-facet-dialog/apply-facet-dialog.component.d.ts +0 -0
  25. /package/{package/catalog → catalog}/components/asset-detail/asset-detail.component.d.ts +0 -0
  26. /package/{package/catalog → catalog}/components/asset-list/asset-list.component.d.ts +0 -0
  27. /package/{package/catalog → catalog}/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.d.ts +0 -0
  28. /package/{package/catalog → catalog}/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.d.ts +0 -0
  29. /package/{package/catalog → catalog}/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.graphql.d.ts +0 -0
  30. /package/{package/catalog → catalog}/components/collection-contents/collection-contents.component.d.ts +0 -0
  31. /package/{package/catalog → catalog}/components/collection-data-table/collection-data-table.component.d.ts +0 -0
  32. /package/{package/catalog → catalog}/components/collection-detail/collection-detail.component.d.ts +0 -0
  33. /package/{package/catalog → catalog}/components/collection-list/collection-breadcrumb.pipe.d.ts +0 -0
  34. /package/{package/catalog → catalog}/components/collection-list/collection-list-bulk-actions.d.ts +0 -0
  35. /package/{package/catalog → catalog}/components/collection-list/collection-list.component.d.ts +0 -0
  36. /package/{package/catalog → catalog}/components/collection-tree/array-to-tree.d.ts +0 -0
  37. /package/{package/catalog → catalog}/components/collection-tree/collection-tree-node.component.d.ts +0 -0
  38. /package/{package/catalog → catalog}/components/collection-tree/collection-tree.component.d.ts +0 -0
  39. /package/{package/catalog → catalog}/components/collection-tree/collection-tree.service.d.ts +0 -0
  40. /package/{package/catalog → catalog}/components/collection-tree/collection-tree.types.d.ts +0 -0
  41. /package/{package/catalog → catalog}/components/confirm-variant-deletion-dialog/confirm-variant-deletion-dialog.component.d.ts +0 -0
  42. /package/{package/catalog → catalog}/components/create-facet-value-dialog/create-facet-value-dialog.component.d.ts +0 -0
  43. /package/{package/catalog → catalog}/components/create-product-option-group-dialog/create-product-option-group-dialog.component.d.ts +0 -0
  44. /package/{package/catalog → catalog}/components/create-product-variant-dialog/create-product-variant-dialog.component.d.ts +0 -0
  45. /package/{package/catalog → catalog}/components/facet-detail/facet-detail.component.d.ts +0 -0
  46. /package/{package/catalog → catalog}/components/facet-list/facet-list-bulk-actions.d.ts +0 -0
  47. /package/{package/catalog → catalog}/components/facet-list/facet-list.component.d.ts +0 -0
  48. /package/{package/catalog → catalog}/components/generate-product-variants/generate-product-variants.component.d.ts +0 -0
  49. /package/{package/catalog → catalog}/components/move-collections-dialog/move-collections-dialog.component.d.ts +0 -0
  50. /package/{package/catalog → catalog}/components/option-value-input/option-value-input.component.d.ts +0 -0
  51. /package/{package/catalog → catalog}/components/product-detail/product-detail.component.d.ts +0 -0
  52. /package/{package/catalog → catalog}/components/product-list/product-list-bulk-actions.d.ts +0 -0
  53. /package/{package/catalog → catalog}/components/product-list/product-list.component.d.ts +0 -0
  54. /package/{package/catalog → catalog}/components/product-list/product-list.graphql.d.ts +0 -0
  55. /package/{package/catalog → catalog}/components/product-options-editor/product-options-editor.component.d.ts +0 -0
  56. /package/{package/catalog → catalog}/components/product-variant-detail/product-variant-detail.component.d.ts +0 -0
  57. /package/{package/catalog → catalog}/components/product-variant-detail/product-variant-detail.graphql.d.ts +0 -0
  58. /package/{package/catalog → catalog}/components/product-variant-list/product-variant-list-bulk-actions.d.ts +0 -0
  59. /package/{package/catalog → catalog}/components/product-variant-list/product-variant-list.component.d.ts +0 -0
  60. /package/{package/catalog → catalog}/components/product-variant-list/product-variant-list.graphql.d.ts +0 -0
  61. /package/{package/catalog → catalog}/components/product-variant-quick-jump/product-variant-quick-jump.component.d.ts +0 -0
  62. /package/{package/catalog → catalog}/components/product-variants-editor/product-variants-editor.component.d.ts +0 -0
  63. /package/{package/catalog → catalog}/components/product-variants-table/product-variants-table.component.d.ts +0 -0
  64. /package/{package/catalog → catalog}/components/update-product-option-dialog/update-product-option-dialog.component.d.ts +0 -0
  65. /package/{package/catalog → catalog}/components/variant-price-detail/variant-price-detail.component.d.ts +0 -0
  66. /package/{package/catalog → catalog}/components/variant-price-strategy-detail/variant-price-strategy-detail.component.d.ts +0 -0
  67. /package/{package/catalog → catalog}/index.d.ts +0 -0
  68. /package/{package/catalog → catalog}/providers/product-detail/product-detail.service.d.ts +0 -0
  69. /package/{package/catalog → catalog}/providers/product-detail/replace-last.d.ts +0 -0
  70. /package/{package/catalog → catalog}/providers/routing/product-variants-resolver.d.ts +0 -0
  71. /package/{package/catalog → catalog}/public_api.d.ts +0 -0
  72. /package/{package/core → core}/app.component.d.ts +0 -0
  73. /package/{package/core → core}/app.component.module.d.ts +0 -0
  74. /package/{package/core → core}/app.config.d.ts +0 -0
  75. /package/{package/core → core}/common/base-detail.component.d.ts +0 -0
  76. /package/{package/core → core}/common/base-entity-resolver.d.ts +0 -0
  77. /package/{package/core → core}/common/base-list.component.d.ts +0 -0
  78. /package/{package/core → core}/common/component-registry-types.d.ts +0 -0
  79. /package/{package/core → core}/common/deactivate-aware.d.ts +0 -0
  80. /package/{package/core → core}/common/detail-breadcrumb.d.ts +0 -0
  81. /package/{package/core → core}/common/generated-types.d.ts +0 -0
  82. /package/{package/core → core}/common/introspection-result-wrapper.d.ts +0 -0
  83. /package/{package/core → core}/common/introspection-result.d.ts +0 -0
  84. /package/{package/core → core}/common/single-search-selection-model.d.ts +0 -0
  85. /package/{package/core → core}/common/title-setter.d.ts +0 -0
  86. /package/{package/core → core}/common/utilities/bulk-action-utils.d.ts +0 -0
  87. /package/{package/core → core}/common/utilities/configurable-operation-utils.d.ts +0 -0
  88. /package/{package/core → core}/common/utilities/create-updated-translatable.d.ts +0 -0
  89. /package/{package/core → core}/common/utilities/custom-field-default-value.d.ts +0 -0
  90. /package/{package/core → core}/common/utilities/find-translation.d.ts +0 -0
  91. /package/{package/core → core}/common/utilities/get-default-ui-language.d.ts +0 -0
  92. /package/{package/core → core}/common/utilities/interpolate-description.d.ts +0 -0
  93. /package/{package/core → core}/common/utilities/selection-manager.d.ts +0 -0
  94. /package/{package/core → core}/common/utilities/string-to-color.d.ts +0 -0
  95. /package/{package/core → core}/components/alerts/alerts.component.d.ts +0 -0
  96. /package/{package/core → core}/components/app-shell/app-shell.component.d.ts +0 -0
  97. /package/{package/core → core}/components/base-nav/base-nav.component.d.ts +0 -0
  98. /package/{package/core → core}/components/breadcrumb/breadcrumb.component.d.ts +0 -0
  99. /package/{package/core → core}/components/channel-switcher/channel-switcher.component.d.ts +0 -0
  100. /package/{package/core → core}/components/main-nav/main-nav.component.d.ts +0 -0
  101. /package/{package/core → core}/components/notification/notification.component.d.ts +0 -0
  102. /package/{package/core → core}/components/overlay-host/overlay-host.component.d.ts +0 -0
  103. /package/{package/core → core}/components/settings-nav/settings-nav.component.d.ts +0 -0
  104. /package/{package/core → core}/components/theme-switcher/theme-switcher.component.d.ts +0 -0
  105. /package/{package/core → core}/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.d.ts +0 -0
  106. /package/{package/core → core}/components/user-menu/user-menu.component.d.ts +0 -0
  107. /package/{package/core → core}/core.module.d.ts +0 -0
  108. /package/{package/core → core}/data/check-jobs-link.d.ts +0 -0
  109. /package/{package/core → core}/data/client-state/client-defaults.d.ts +0 -0
  110. /package/{package/core → core}/data/client-state/client-resolvers.d.ts +0 -0
  111. /package/{package/core → core}/data/data.module.d.ts +0 -0
  112. /package/{package/core → core}/data/definitions/administrator-definitions.d.ts +0 -0
  113. /package/{package/core → core}/data/definitions/auth-definitions.d.ts +0 -0
  114. /package/{package/core → core}/data/definitions/client-definitions.d.ts +0 -0
  115. /package/{package/core → core}/data/definitions/collection-definitions.d.ts +0 -0
  116. /package/{package/core → core}/data/definitions/customer-definitions.d.ts +0 -0
  117. /package/{package/core → core}/data/definitions/facet-definitions.d.ts +0 -0
  118. /package/{package/core → core}/data/definitions/order-definitions.d.ts +0 -0
  119. /package/{package/core → core}/data/definitions/product-definitions.d.ts +0 -0
  120. /package/{package/core → core}/data/definitions/promotion-definitions.d.ts +0 -0
  121. /package/{package/core → core}/data/definitions/settings-definitions.d.ts +0 -0
  122. /package/{package/core → core}/data/definitions/shared-definitions.d.ts +0 -0
  123. /package/{package/core → core}/data/definitions/shipping-definitions.d.ts +0 -0
  124. /package/{package/core → core}/data/omit-typename-link.d.ts +0 -0
  125. /package/{package/core → core}/data/providers/administrator-data.service.d.ts +0 -0
  126. /package/{package/core → core}/data/providers/auth-data.service.d.ts +0 -0
  127. /package/{package/core → core}/data/providers/base-data.service.d.ts +0 -0
  128. /package/{package/core → core}/data/providers/client-data.service.d.ts +0 -0
  129. /package/{package/core → core}/data/providers/collection-data.service.d.ts +0 -0
  130. /package/{package/core → core}/data/providers/customer-data.service.d.ts +0 -0
  131. /package/{package/core → core}/data/providers/data.service.d.ts +0 -0
  132. /package/{package/core → core}/data/providers/facet-data.service.d.ts +0 -0
  133. /package/{package/core → core}/data/providers/fetch-adapter.d.ts +0 -0
  134. /package/{package/core → core}/data/providers/interceptor.d.ts +0 -0
  135. /package/{package/core → core}/data/providers/order-data.service.d.ts +0 -0
  136. /package/{package/core → core}/data/providers/product-data.service.d.ts +0 -0
  137. /package/{package/core → core}/data/providers/promotion-data.service.d.ts +0 -0
  138. /package/{package/core → core}/data/providers/settings-data.service.d.ts +0 -0
  139. /package/{package/core → core}/data/providers/shipping-method-data.service.d.ts +0 -0
  140. /package/{package/core → core}/data/query-result.d.ts +0 -0
  141. /package/{package/core → core}/data/server-config.d.ts +0 -0
  142. /package/{package/core → core}/data/utils/add-custom-fields.d.ts +0 -0
  143. /package/{package/core → core}/data/utils/get-server-location.d.ts +0 -0
  144. /package/{package/core → core}/data/utils/is-entity-create-or-update-mutation.d.ts +0 -0
  145. /package/{package/core → core}/data/utils/remove-readonly-custom-fields.d.ts +0 -0
  146. /package/{package/core → core}/data/utils/transform-relation-custom-field-inputs.d.ts +0 -0
  147. /package/{package/core → core}/extension/add-action-bar-dropdown-menu-item.d.ts +0 -0
  148. /package/{package/core → core}/extension/add-action-bar-item.d.ts +0 -0
  149. /package/{package/core → core}/extension/add-nav-menu-item.d.ts +0 -0
  150. /package/{package/core → core}/extension/components/angular-route.component.d.ts +0 -0
  151. /package/{package/core → core}/extension/components/route.component.d.ts +0 -0
  152. /package/{package/core → core}/extension/providers/page-metadata.service.d.ts +0 -0
  153. /package/{package/core → core}/extension/register-alert.d.ts +0 -0
  154. /package/{package/core → core}/extension/register-bulk-action.d.ts +0 -0
  155. /package/{package/core → core}/extension/register-custom-detail-component.d.ts +0 -0
  156. /package/{package/core → core}/extension/register-dashboard-widget.d.ts +0 -0
  157. /package/{package/core → core}/extension/register-data-table-component.d.ts +0 -0
  158. /package/{package/core → core}/extension/register-form-input-component.d.ts +0 -0
  159. /package/{package/core → core}/extension/register-history-entry-component.d.ts +0 -0
  160. /package/{package/core → core}/extension/register-page-tab.d.ts +0 -0
  161. /package/{package/core → core}/extension/register-route-component.d.ts +0 -0
  162. /package/{package/core → core}/extension/types.d.ts +0 -0
  163. /package/{package/core → core}/index.d.ts +0 -0
  164. /package/{package/core → core}/providers/alerts/alerts.service.d.ts +0 -0
  165. /package/{package/core → core}/providers/auth/auth.service.d.ts +0 -0
  166. /package/{package/core → core}/providers/breadcrumb/breadcrumb.service.d.ts +0 -0
  167. /package/{package/core → core}/providers/bulk-action-registry/bulk-action-registry.service.d.ts +0 -0
  168. /package/{package/core → core}/providers/bulk-action-registry/bulk-action-types.d.ts +0 -0
  169. /package/{package/core → core}/providers/channel/channel.service.d.ts +0 -0
  170. /package/{package/core → core}/providers/component-registry/component-registry.service.d.ts +0 -0
  171. /package/{package/core → core}/providers/currency/currency.service.d.ts +0 -0
  172. /package/{package/core → core}/providers/custom-detail-component/custom-detail-component-types.d.ts +0 -0
  173. /package/{package/core → core}/providers/custom-detail-component/custom-detail-component.service.d.ts +0 -0
  174. /package/{package/core → core}/providers/custom-field-component/custom-field-component.service.d.ts +0 -0
  175. /package/{package/core → core}/providers/custom-history-entry-component/history-entry-component-types.d.ts +0 -0
  176. /package/{package/core → core}/providers/custom-history-entry-component/history-entry-component.service.d.ts +0 -0
  177. /package/{package/core → core}/providers/dashboard-widget/dashboard-widget-types.d.ts +0 -0
  178. /package/{package/core → core}/providers/dashboard-widget/dashboard-widget.service.d.ts +0 -0
  179. /package/{package/core → core}/providers/data-table/data-table-filter-collection.d.ts +0 -0
  180. /package/{package/core → core}/providers/data-table/data-table-filter.d.ts +0 -0
  181. /package/{package/core → core}/providers/data-table/data-table-sort-collection.d.ts +0 -0
  182. /package/{package/core → core}/providers/data-table/data-table-sort.d.ts +0 -0
  183. /package/{package/core → core}/providers/guard/auth.guard.d.ts +0 -0
  184. /package/{package/core → core}/providers/health-check/health-check.service.d.ts +0 -0
  185. /package/{package/core → core}/providers/i18n/custom-http-loader.d.ts +0 -0
  186. /package/{package/core → core}/providers/i18n/custom-message-format-compiler.d.ts +0 -0
  187. /package/{package/core → core}/providers/i18n/i18n.service.d.ts +0 -0
  188. /package/{package/core → core}/providers/job-queue/job-queue.service.d.ts +0 -0
  189. /package/{package/core → core}/providers/local-storage/local-storage.service.d.ts +0 -0
  190. /package/{package/core → core}/providers/localization/localization.service.d.ts +0 -0
  191. /package/{package/core → core}/providers/modal/modal.service.d.ts +0 -0
  192. /package/{package/core → core}/providers/modal/modal.types.d.ts +0 -0
  193. /package/{package/core → core}/providers/nav-builder/nav-builder-types.d.ts +0 -0
  194. /package/{package/core → core}/providers/nav-builder/nav-builder.service.d.ts +0 -0
  195. /package/{package/core → core}/providers/notification/notification.service.d.ts +0 -0
  196. /package/{package/core → core}/providers/overlay-host/overlay-host.service.d.ts +0 -0
  197. /package/{package/core → core}/providers/page/page.service.d.ts +0 -0
  198. /package/{package/core → core}/providers/permissions/permissions.service.d.ts +0 -0
  199. /package/{package/core → core}/public_api.d.ts +0 -0
  200. /package/{package/core → core}/shared/components/action-bar/action-bar.component.d.ts +0 -0
  201. /package/{package/core → core}/shared/components/action-bar-dropdown-menu/action-bar-dropdown-menu.component.d.ts +0 -0
  202. /package/{package/core → core}/shared/components/action-bar-items/action-bar-base.component.d.ts +0 -0
  203. /package/{package/core → core}/shared/components/action-bar-items/action-bar-items.component.d.ts +0 -0
  204. /package/{package/core → core}/shared/components/address-form/address-form.component.d.ts +0 -0
  205. /package/{package/core → core}/shared/components/affixed-input/affixed-input.component.d.ts +0 -0
  206. /package/{package/core → core}/shared/components/affixed-input/percentage-suffix-input.component.d.ts +0 -0
  207. /package/{package/core → core}/shared/components/asset-file-input/asset-file-input.component.d.ts +0 -0
  208. /package/{package/core → core}/shared/components/asset-gallery/asset-gallery.component.d.ts +0 -0
  209. /package/{package/core → core}/shared/components/asset-gallery/asset-gallery.types.d.ts +0 -0
  210. /package/{package/core → core}/shared/components/asset-picker-dialog/asset-picker-dialog.component.d.ts +0 -0
  211. /package/{package/core → core}/shared/components/asset-preview/asset-preview.component.d.ts +0 -0
  212. /package/{package/core → core}/shared/components/asset-preview-dialog/asset-preview-dialog.component.d.ts +0 -0
  213. /package/{package/core → core}/shared/components/asset-preview-links/asset-preview-links.component.d.ts +0 -0
  214. /package/{package/core → core}/shared/components/asset-search-input/asset-search-input.component.d.ts +0 -0
  215. /package/{package/core → core}/shared/components/assets/assets.component.d.ts +0 -0
  216. /package/{package/core → core}/shared/components/assign-to-channel-dialog/assign-to-channel-dialog.component.d.ts +0 -0
  217. /package/{package/core → core}/shared/components/bulk-action-menu/bulk-action-menu.component.d.ts +0 -0
  218. /package/{package/core → core}/shared/components/card/card.component.d.ts +0 -0
  219. /package/{package/core → core}/shared/components/channel-assignment-control/channel-assignment-control.component.d.ts +0 -0
  220. /package/{package/core → core}/shared/components/channel-badge/channel-badge.component.d.ts +0 -0
  221. /package/{package/core → core}/shared/components/chart/chart.component.d.ts +0 -0
  222. /package/{package/core → core}/shared/components/chart/tooltip-plugin.d.ts +0 -0
  223. /package/{package/core → core}/shared/components/chip/chip.component.d.ts +0 -0
  224. /package/{package/core → core}/shared/components/configurable-input/configurable-input.component.d.ts +0 -0
  225. /package/{package/core → core}/shared/components/currency-code-selector/currency-code-selector.component.d.ts +0 -0
  226. /package/{package/core → core}/shared/components/currency-input/currency-input.component.d.ts +0 -0
  227. /package/{package/core → core}/shared/components/custom-detail-component-host/custom-detail-component-host.component.d.ts +0 -0
  228. /package/{package/core → core}/shared/components/custom-field-control/custom-field-control.component.d.ts +0 -0
  229. /package/{package/core → core}/shared/components/customer-label/customer-label.component.d.ts +0 -0
  230. /package/{package/core → core}/shared/components/data-table/data-table-column.component.d.ts +0 -0
  231. /package/{package/core → core}/shared/components/data-table/data-table.component.d.ts +0 -0
  232. /package/{package/core → core}/shared/components/data-table-2/data-table-column.component.d.ts +0 -0
  233. /package/{package/core → core}/shared/components/data-table-2/data-table-custom-component.service.d.ts +0 -0
  234. /package/{package/core → core}/shared/components/data-table-2/data-table-custom-field-column.component.d.ts +0 -0
  235. /package/{package/core → core}/shared/components/data-table-2/data-table-search.component.d.ts +0 -0
  236. /package/{package/core → core}/shared/components/data-table-2/data-table2.component.d.ts +0 -0
  237. /package/{package/core → core}/shared/components/data-table-column-picker/data-table-column-picker.component.d.ts +0 -0
  238. /package/{package/core → core}/shared/components/data-table-filter-label/data-table-filter-label.component.d.ts +0 -0
  239. /package/{package/core → core}/shared/components/data-table-filter-presets/add-filter-preset-button.component.d.ts +0 -0
  240. /package/{package/core → core}/shared/components/data-table-filter-presets/data-table-filter-presets.component.d.ts +0 -0
  241. /package/{package/core → core}/shared/components/data-table-filter-presets/filter-preset.service.d.ts +0 -0
  242. /package/{package/core → core}/shared/components/data-table-filter-presets/rename-filter-preset-dialog.component.d.ts +0 -0
  243. /package/{package/core → core}/shared/components/data-table-filters/custom-filter-component.directive.d.ts +0 -0
  244. /package/{package/core → core}/shared/components/data-table-filters/data-table-filters.component.d.ts +0 -0
  245. /package/{package/core → core}/shared/components/datetime-picker/constants.d.ts +0 -0
  246. /package/{package/core → core}/shared/components/datetime-picker/datetime-picker.component.d.ts +0 -0
  247. /package/{package/core → core}/shared/components/datetime-picker/datetime-picker.service.d.ts +0 -0
  248. /package/{package/core → core}/shared/components/datetime-picker/types.d.ts +0 -0
  249. /package/{package/core → core}/shared/components/dropdown/dropdown-item.directive.d.ts +0 -0
  250. /package/{package/core → core}/shared/components/dropdown/dropdown-menu.component.d.ts +0 -0
  251. /package/{package/core → core}/shared/components/dropdown/dropdown-trigger.directive.d.ts +0 -0
  252. /package/{package/core → core}/shared/components/dropdown/dropdown.component.d.ts +0 -0
  253. /package/{package/core → core}/shared/components/duplicate-entity-dialog/duplicate-entity-dialog.component.d.ts +0 -0
  254. /package/{package/core → core}/shared/components/duplicate-entity-dialog/duplicate-entity-dialog.graphql.d.ts +0 -0
  255. /package/{package/core → core}/shared/components/edit-note-dialog/edit-note-dialog.component.d.ts +0 -0
  256. /package/{package/core → core}/shared/components/empty-placeholder/empty-placeholder.component.d.ts +0 -0
  257. /package/{package/core → core}/shared/components/entity-info/entity-info.component.d.ts +0 -0
  258. /package/{package/core → core}/shared/components/extension-host/extension-host-config.d.ts +0 -0
  259. /package/{package/core → core}/shared/components/extension-host/extension-host.component.d.ts +0 -0
  260. /package/{package/core → core}/shared/components/extension-host/extension-host.service.d.ts +0 -0
  261. /package/{package/core → core}/shared/components/extension-host/host-external-frame.d.ts +0 -0
  262. /package/{package/core → core}/shared/components/facet-value-chip/facet-value-chip.component.d.ts +0 -0
  263. /package/{package/core → core}/shared/components/facet-value-selector/facet-value-selector.component.d.ts +0 -0
  264. /package/{package/core → core}/shared/components/focal-point-control/focal-point-control.component.d.ts +0 -0
  265. /package/{package/core → core}/shared/components/form-field/form-field-control.directive.d.ts +0 -0
  266. /package/{package/core → core}/shared/components/form-field/form-field.component.d.ts +0 -0
  267. /package/{package/core → core}/shared/components/form-item/form-item.component.d.ts +0 -0
  268. /package/{package/core → core}/shared/components/formatted-address/formatted-address.component.d.ts +0 -0
  269. /package/{package/core → core}/shared/components/help-tooltip/help-tooltip.component.d.ts +0 -0
  270. /package/{package/core → core}/shared/components/history-entry-detail/history-entry-detail.component.d.ts +0 -0
  271. /package/{package/core → core}/shared/components/items-per-page-controls/items-per-page-controls.component.d.ts +0 -0
  272. /package/{package/core → core}/shared/components/labeled-data/labeled-data.component.d.ts +0 -0
  273. /package/{package/core → core}/shared/components/language-code-selector/language-code-selector.component.d.ts +0 -0
  274. /package/{package/core → core}/shared/components/language-selector/language-selector.component.d.ts +0 -0
  275. /package/{package/core → core}/shared/components/localized-text/localized-text.component.d.ts +0 -0
  276. /package/{package/core → core}/shared/components/manage-tags-dialog/manage-tags-dialog.component.d.ts +0 -0
  277. /package/{package/core → core}/shared/components/modal-dialog/dialog-buttons.directive.d.ts +0 -0
  278. /package/{package/core → core}/shared/components/modal-dialog/dialog-component-outlet.component.d.ts +0 -0
  279. /package/{package/core → core}/shared/components/modal-dialog/dialog-title.directive.d.ts +0 -0
  280. /package/{package/core → core}/shared/components/modal-dialog/modal-dialog.component.d.ts +0 -0
  281. /package/{package/core → core}/shared/components/object-tree/object-tree.component.d.ts +0 -0
  282. /package/{package/core → core}/shared/components/order-state-label/order-state-label.component.d.ts +0 -0
  283. /package/{package/core → core}/shared/components/page/page.component.d.ts +0 -0
  284. /package/{package/core → core}/shared/components/page-block/page-block.component.d.ts +0 -0
  285. /package/{package/core → core}/shared/components/page-body/page-body.component.d.ts +0 -0
  286. /package/{package/core → core}/shared/components/page-detail-layout/page-detail-layout.component.d.ts +0 -0
  287. /package/{package/core → core}/shared/components/page-detail-layout/page-detail-sidebar.component.d.ts +0 -0
  288. /package/{package/core → core}/shared/components/page-entity-info/page-entity-info.component.d.ts +0 -0
  289. /package/{package/core → core}/shared/components/page-header/page-header.component.d.ts +0 -0
  290. /package/{package/core → core}/shared/components/page-header-description/page-header-description.component.d.ts +0 -0
  291. /package/{package/core → core}/shared/components/page-header-tabs/page-header-tabs.component.d.ts +0 -0
  292. /package/{package/core → core}/shared/components/page-title/page-title.component.d.ts +0 -0
  293. /package/{package/core → core}/shared/components/pagination-controls/pagination-controls.component.d.ts +0 -0
  294. /package/{package/core → core}/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.d.ts +0 -0
  295. /package/{package/core → core}/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.graphql.d.ts +0 -0
  296. /package/{package/core → core}/shared/components/product-search-input/product-search-input.component.d.ts +0 -0
  297. /package/{package/core → core}/shared/components/product-variant-selector/product-variant-selector.component.d.ts +0 -0
  298. /package/{package/core → core}/shared/components/radio-card/radio-card-fieldset.component.d.ts +0 -0
  299. /package/{package/core → core}/shared/components/radio-card/radio-card.component.d.ts +0 -0
  300. /package/{package/core → core}/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.d.ts +0 -0
  301. /package/{package/core → core}/shared/components/rich-text-editor/link-dialog/link-dialog.component.d.ts +0 -0
  302. /package/{package/core → core}/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.d.ts +0 -0
  303. /package/{package/core → core}/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.d.ts +0 -0
  304. /package/{package/core → core}/shared/components/rich-text-editor/prosemirror/custom-nodes.d.ts +0 -0
  305. /package/{package/core → core}/shared/components/rich-text-editor/prosemirror/inputrules.d.ts +0 -0
  306. /package/{package/core → core}/shared/components/rich-text-editor/prosemirror/keymap.d.ts +0 -0
  307. /package/{package/core → core}/shared/components/rich-text-editor/prosemirror/menu/links.d.ts +0 -0
  308. /package/{package/core → core}/shared/components/rich-text-editor/prosemirror/menu/menu-common.d.ts +0 -0
  309. /package/{package/core → core}/shared/components/rich-text-editor/prosemirror/menu/menu-plugin.d.ts +0 -0
  310. /package/{package/core → core}/shared/components/rich-text-editor/prosemirror/menu/menu.d.ts +0 -0
  311. /package/{package/core → core}/shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon.d.ts +0 -0
  312. /package/{package/core → core}/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.d.ts +0 -0
  313. /package/{package/core → core}/shared/components/rich-text-editor/prosemirror/plugins/link-select-plugin.d.ts +0 -0
  314. /package/{package/core → core}/shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin.d.ts +0 -0
  315. /package/{package/core → core}/shared/components/rich-text-editor/prosemirror/plugins/tables-plugin.d.ts +0 -0
  316. /package/{package/core → core}/shared/components/rich-text-editor/prosemirror/prosemirror.service.d.ts +0 -0
  317. /package/{package/core → core}/shared/components/rich-text-editor/prosemirror/types.d.ts +0 -0
  318. /package/{package/core → core}/shared/components/rich-text-editor/prosemirror/utils.d.ts +0 -0
  319. /package/{package/core → core}/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.d.ts +0 -0
  320. /package/{package/core → core}/shared/components/rich-text-editor/rich-text-editor.component.d.ts +0 -0
  321. /package/{package/core → core}/shared/components/select-toggle/select-toggle.component.d.ts +0 -0
  322. /package/{package/core → core}/shared/components/simple-dialog/simple-dialog.component.d.ts +0 -0
  323. /package/{package/core → core}/shared/components/split-view/split-view.component.d.ts +0 -0
  324. /package/{package/core → core}/shared/components/split-view/split-view.directive.d.ts +0 -0
  325. /package/{package/core → core}/shared/components/status-badge/status-badge.component.d.ts +0 -0
  326. /package/{package/core → core}/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.d.ts +0 -0
  327. /package/{package/core → core}/shared/components/table-row-action/table-row-action.component.d.ts +0 -0
  328. /package/{package/core → core}/shared/components/tag-selector/tag-selector.component.d.ts +0 -0
  329. /package/{package/core → core}/shared/components/timeline-entry/timeline-entry.component.d.ts +0 -0
  330. /package/{package/core → core}/shared/components/title-input/title-input.component.d.ts +0 -0
  331. /package/{package/core → core}/shared/components/ui-extension-point/ui-extension-point.component.d.ts +0 -0
  332. /package/{package/core → core}/shared/components/zone-selector/zone-selector.component.d.ts +0 -0
  333. /package/{package/core → core}/shared/directives/disabled.directive.d.ts +0 -0
  334. /package/{package/core → core}/shared/directives/if-default-channel-active.directive.d.ts +0 -0
  335. /package/{package/core → core}/shared/directives/if-directive-base.d.ts +0 -0
  336. /package/{package/core → core}/shared/directives/if-multichannel.directive.d.ts +0 -0
  337. /package/{package/core → core}/shared/directives/if-permissions.directive.d.ts +0 -0
  338. /package/{package/core → core}/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.d.ts +0 -0
  339. /package/{package/core → core}/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.d.ts +0 -0
  340. /package/{package/core → core}/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.d.ts +0 -0
  341. /package/{package/core → core}/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.d.ts +0 -0
  342. /package/{package/core → core}/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.d.ts +0 -0
  343. /package/{package/core → core}/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.d.ts +0 -0
  344. /package/{package/core → core}/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.d.ts +0 -0
  345. /package/{package/core → core}/shared/dynamic-form-inputs/date-form-input/date-form-input.component.d.ts +0 -0
  346. /package/{package/core → core}/shared/dynamic-form-inputs/default-form-inputs.d.ts +0 -0
  347. /package/{package/core → core}/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.d.ts +0 -0
  348. /package/{package/core → core}/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.d.ts +0 -0
  349. /package/{package/core → core}/shared/dynamic-form-inputs/number-form-input/number-form-input.component.d.ts +0 -0
  350. /package/{package/core → core}/shared/dynamic-form-inputs/password-form-input/password-form-input.component.d.ts +0 -0
  351. /package/{package/core → core}/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.d.ts +0 -0
  352. /package/{package/core → core}/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.d.ts +0 -0
  353. /package/{package/core → core}/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.d.ts +0 -0
  354. /package/{package/core → core}/shared/dynamic-form-inputs/relation-form-input/customer/relation-customer-input.component.d.ts +0 -0
  355. /package/{package/core → core}/shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component.d.ts +0 -0
  356. /package/{package/core → core}/shared/dynamic-form-inputs/relation-form-input/product/relation-product-input.component.d.ts +0 -0
  357. /package/{package/core → core}/shared/dynamic-form-inputs/relation-form-input/product-variant/relation-product-variant-input.component.d.ts +0 -0
  358. /package/{package/core → core}/shared/dynamic-form-inputs/relation-form-input/relation-card/relation-card.component.d.ts +0 -0
  359. /package/{package/core → core}/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.d.ts +0 -0
  360. /package/{package/core → core}/shared/dynamic-form-inputs/relation-form-input/relation-selector-dialog/relation-selector-dialog.component.d.ts +0 -0
  361. /package/{package/core → core}/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.d.ts +0 -0
  362. /package/{package/core → core}/shared/dynamic-form-inputs/select-form-input/select-form-input.component.d.ts +0 -0
  363. /package/{package/core → core}/shared/dynamic-form-inputs/text-form-input/text-form-input.component.d.ts +0 -0
  364. /package/{package/core → core}/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.d.ts +0 -0
  365. /package/{package/core → core}/shared/pipes/asset-preview.pipe.d.ts +0 -0
  366. /package/{package/core → core}/shared/pipes/channel-label.pipe.d.ts +0 -0
  367. /package/{package/core → core}/shared/pipes/custom-field-description.pipe.d.ts +0 -0
  368. /package/{package/core → core}/shared/pipes/custom-field-label.pipe.d.ts +0 -0
  369. /package/{package/core → core}/shared/pipes/duration.pipe.d.ts +0 -0
  370. /package/{package/core → core}/shared/pipes/file-size.pipe.d.ts +0 -0
  371. /package/{package/core → core}/shared/pipes/has-permission.pipe.d.ts +0 -0
  372. /package/{package/core → core}/shared/pipes/locale-base.pipe.d.ts +0 -0
  373. /package/{package/core → core}/shared/pipes/locale-currency-name.pipe.d.ts +0 -0
  374. /package/{package/core → core}/shared/pipes/locale-currency.pipe.d.ts +0 -0
  375. /package/{package/core → core}/shared/pipes/locale-date.pipe.d.ts +0 -0
  376. /package/{package/core → core}/shared/pipes/locale-language-name.pipe.d.ts +0 -0
  377. /package/{package/core → core}/shared/pipes/locale-region-name.pipe.d.ts +0 -0
  378. /package/{package/core → core}/shared/pipes/sentence-case.pipe.d.ts +0 -0
  379. /package/{package/core → core}/shared/pipes/sort.pipe.d.ts +0 -0
  380. /package/{package/core → core}/shared/pipes/state-i18n-token.pipe.d.ts +0 -0
  381. /package/{package/core → core}/shared/pipes/string-to-color.pipe.d.ts +0 -0
  382. /package/{package/core → core}/shared/pipes/time-ago.pipe.d.ts +0 -0
  383. /package/{package/core → core}/shared/providers/routing/can-deactivate-detail-guard.d.ts +0 -0
  384. /package/{package/core → core}/shared/shared.module.d.ts +0 -0
  385. /package/{package/core → core}/validators/unicode-pattern.validator.d.ts +0 -0
  386. /package/{package/customer → customer}/components/add-customer-to-group-dialog/add-customer-to-group-dialog.component.d.ts +0 -0
  387. /package/{package/customer → customer}/components/address-card/address-card.component.d.ts +0 -0
  388. /package/{package/customer → customer}/components/address-detail-dialog/address-detail-dialog.component.d.ts +0 -0
  389. /package/{package/customer → customer}/components/customer-detail/customer-detail.component.d.ts +0 -0
  390. /package/{package/customer → customer}/components/customer-group-detail/customer-group-detail.component.d.ts +0 -0
  391. /package/{package/customer → customer}/components/customer-group-detail-dialog/customer-group-detail-dialog.component.d.ts +0 -0
  392. /package/{package/customer → customer}/components/customer-group-list/customer-group-list-bulk-actions.d.ts +0 -0
  393. /package/{package/customer → customer}/components/customer-group-list/customer-group-list.component.d.ts +0 -0
  394. /package/{package/customer → customer}/components/customer-group-member-list/customer-group-member-list-bulk-actions.d.ts +0 -0
  395. /package/{package/customer → customer}/components/customer-group-member-list/customer-group-member-list.component.d.ts +0 -0
  396. /package/{package/customer → customer}/components/customer-history/customer-history-entry-host.component.d.ts +0 -0
  397. /package/{package/customer → customer}/components/customer-history/customer-history.component.d.ts +0 -0
  398. /package/{package/customer → customer}/components/customer-list/customer-list-bulk-actions.d.ts +0 -0
  399. /package/{package/customer → customer}/components/customer-list/customer-list.component.d.ts +0 -0
  400. /package/{package/customer → customer}/components/customer-status-label/customer-status-label.component.d.ts +0 -0
  401. /package/{package/customer → customer}/components/select-customer-group-dialog/select-customer-group-dialog.component.d.ts +0 -0
  402. /package/{package/customer → customer}/customer.module.d.ts +0 -0
  403. /package/{package/customer → customer}/customer.routes.d.ts +0 -0
  404. /package/{package/customer → customer}/index.d.ts +0 -0
  405. /package/{package/customer → customer}/public_api.d.ts +0 -0
  406. /package/{package/dashboard → dashboard}/components/dashboard/dashboard.component.d.ts +0 -0
  407. /package/{package/dashboard → dashboard}/components/dashboard-widget/dashboard-widget.component.d.ts +0 -0
  408. /package/{package/dashboard → dashboard}/dashboard.module.d.ts +0 -0
  409. /package/{package/dashboard → dashboard}/dashboard.routes.d.ts +0 -0
  410. /package/{package/dashboard → dashboard}/default-widgets.d.ts +0 -0
  411. /package/{package/dashboard → dashboard}/index.d.ts +0 -0
  412. /package/{package/dashboard → dashboard}/public_api.d.ts +0 -0
  413. /package/{package/dashboard → dashboard}/widgets/latest-orders-widget/latest-orders-widget.component.d.ts +0 -0
  414. /package/{package/dashboard → dashboard}/widgets/order-chart-widget/order-chart-widget.component.d.ts +0 -0
  415. /package/{package/dashboard → dashboard}/widgets/order-summary-widget/order-summary-widget.component.d.ts +0 -0
  416. /package/{package/dashboard → dashboard}/widgets/test-widget/test-widget.component.d.ts +0 -0
  417. /package/{package/dashboard → dashboard}/widgets/welcome-widget/welcome-widget.component.d.ts +0 -0
  418. /package/{package/esm2022 → esm2022}/catalog/catalog.module.mjs +0 -0
  419. /package/{package/esm2022 → esm2022}/catalog/catalog.routes.mjs +0 -0
  420. /package/{package/esm2022 → esm2022}/catalog/components/apply-facet-dialog/apply-facet-dialog.component.mjs +0 -0
  421. /package/{package/esm2022 → esm2022}/catalog/components/asset-detail/asset-detail.component.mjs +0 -0
  422. /package/{package/esm2022 → esm2022}/catalog/components/asset-list/asset-list.component.mjs +0 -0
  423. /package/{package/esm2022 → esm2022}/catalog/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.mjs +0 -0
  424. /package/{package/esm2022 → esm2022}/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.mjs +0 -0
  425. /package/{package/esm2022 → esm2022}/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.graphql.mjs +0 -0
  426. /package/{package/esm2022 → esm2022}/catalog/components/collection-contents/collection-contents.component.mjs +0 -0
  427. /package/{package/esm2022 → esm2022}/catalog/components/collection-data-table/collection-data-table.component.mjs +0 -0
  428. /package/{package/esm2022 → esm2022}/catalog/components/collection-detail/collection-detail.component.mjs +0 -0
  429. /package/{package/esm2022 → esm2022}/catalog/components/collection-list/collection-breadcrumb.pipe.mjs +0 -0
  430. /package/{package/esm2022 → esm2022}/catalog/components/collection-list/collection-list-bulk-actions.mjs +0 -0
  431. /package/{package/esm2022 → esm2022}/catalog/components/collection-list/collection-list.component.mjs +0 -0
  432. /package/{package/esm2022 → esm2022}/catalog/components/collection-tree/array-to-tree.mjs +0 -0
  433. /package/{package/esm2022 → esm2022}/catalog/components/collection-tree/collection-tree-node.component.mjs +0 -0
  434. /package/{package/esm2022 → esm2022}/catalog/components/collection-tree/collection-tree.component.mjs +0 -0
  435. /package/{package/esm2022 → esm2022}/catalog/components/collection-tree/collection-tree.service.mjs +0 -0
  436. /package/{package/esm2022 → esm2022}/catalog/components/collection-tree/collection-tree.types.mjs +0 -0
  437. /package/{package/esm2022 → esm2022}/catalog/components/confirm-variant-deletion-dialog/confirm-variant-deletion-dialog.component.mjs +0 -0
  438. /package/{package/esm2022 → esm2022}/catalog/components/create-facet-value-dialog/create-facet-value-dialog.component.mjs +0 -0
  439. /package/{package/esm2022 → esm2022}/catalog/components/create-product-option-group-dialog/create-product-option-group-dialog.component.mjs +0 -0
  440. /package/{package/esm2022 → esm2022}/catalog/components/create-product-variant-dialog/create-product-variant-dialog.component.mjs +0 -0
  441. /package/{package/esm2022 → esm2022}/catalog/components/facet-detail/facet-detail.component.mjs +0 -0
  442. /package/{package/esm2022 → esm2022}/catalog/components/facet-list/facet-list-bulk-actions.mjs +0 -0
  443. /package/{package/esm2022 → esm2022}/catalog/components/facet-list/facet-list.component.mjs +0 -0
  444. /package/{package/esm2022 → esm2022}/catalog/components/generate-product-variants/generate-product-variants.component.mjs +0 -0
  445. /package/{package/esm2022 → esm2022}/catalog/components/move-collections-dialog/move-collections-dialog.component.mjs +0 -0
  446. /package/{package/esm2022 → esm2022}/catalog/components/option-value-input/option-value-input.component.mjs +0 -0
  447. /package/{package/esm2022 → esm2022}/catalog/components/product-detail/product-detail.component.mjs +0 -0
  448. /package/{package/esm2022 → esm2022}/catalog/components/product-list/product-list-bulk-actions.mjs +0 -0
  449. /package/{package/esm2022 → esm2022}/catalog/components/product-list/product-list.component.mjs +0 -0
  450. /package/{package/esm2022 → esm2022}/catalog/components/product-list/product-list.graphql.mjs +0 -0
  451. /package/{package/esm2022 → esm2022}/catalog/components/product-options-editor/product-options-editor.component.mjs +0 -0
  452. /package/{package/esm2022 → esm2022}/catalog/components/product-variant-detail/product-variant-detail.component.mjs +0 -0
  453. /package/{package/esm2022 → esm2022}/catalog/components/product-variant-detail/product-variant-detail.graphql.mjs +0 -0
  454. /package/{package/esm2022 → esm2022}/catalog/components/product-variant-list/product-variant-list-bulk-actions.mjs +0 -0
  455. /package/{package/esm2022 → esm2022}/catalog/components/product-variant-list/product-variant-list.component.mjs +0 -0
  456. /package/{package/esm2022 → esm2022}/catalog/components/product-variant-list/product-variant-list.graphql.mjs +0 -0
  457. /package/{package/esm2022 → esm2022}/catalog/components/product-variant-quick-jump/product-variant-quick-jump.component.mjs +0 -0
  458. /package/{package/esm2022 → esm2022}/catalog/components/product-variants-editor/product-variants-editor.component.mjs +0 -0
  459. /package/{package/esm2022 → esm2022}/catalog/components/product-variants-table/product-variants-table.component.mjs +0 -0
  460. /package/{package/esm2022 → esm2022}/catalog/components/update-product-option-dialog/update-product-option-dialog.component.mjs +0 -0
  461. /package/{package/esm2022 → esm2022}/catalog/components/variant-price-detail/variant-price-detail.component.mjs +0 -0
  462. /package/{package/esm2022 → esm2022}/catalog/components/variant-price-strategy-detail/variant-price-strategy-detail.component.mjs +0 -0
  463. /package/{package/esm2022 → esm2022}/catalog/providers/product-detail/product-detail.service.mjs +0 -0
  464. /package/{package/esm2022 → esm2022}/catalog/providers/product-detail/replace-last.mjs +0 -0
  465. /package/{package/esm2022 → esm2022}/catalog/providers/routing/product-variants-resolver.mjs +0 -0
  466. /package/{package/esm2022 → esm2022}/catalog/public_api.mjs +0 -0
  467. /package/{package/esm2022 → esm2022}/catalog/vendure-admin-ui-catalog.mjs +0 -0
  468. /package/{package/esm2022 → esm2022}/core/app.component.mjs +0 -0
  469. /package/{package/esm2022 → esm2022}/core/app.component.module.mjs +0 -0
  470. /package/{package/esm2022 → esm2022}/core/app.config.mjs +0 -0
  471. /package/{package/esm2022 → esm2022}/core/common/base-detail.component.mjs +0 -0
  472. /package/{package/esm2022 → esm2022}/core/common/base-entity-resolver.mjs +0 -0
  473. /package/{package/esm2022 → esm2022}/core/common/base-list.component.mjs +0 -0
  474. /package/{package/esm2022 → esm2022}/core/common/component-registry-types.mjs +0 -0
  475. /package/{package/esm2022 → esm2022}/core/common/deactivate-aware.mjs +0 -0
  476. /package/{package/esm2022 → esm2022}/core/common/detail-breadcrumb.mjs +0 -0
  477. /package/{package/esm2022 → esm2022}/core/common/generated-types.mjs +0 -0
  478. /package/{package/esm2022 → esm2022}/core/common/introspection-result-wrapper.mjs +0 -0
  479. /package/{package/esm2022 → esm2022}/core/common/introspection-result.mjs +0 -0
  480. /package/{package/esm2022 → esm2022}/core/common/single-search-selection-model.mjs +0 -0
  481. /package/{package/esm2022 → esm2022}/core/common/title-setter.mjs +0 -0
  482. /package/{package/esm2022 → esm2022}/core/common/utilities/bulk-action-utils.mjs +0 -0
  483. /package/{package/esm2022 → esm2022}/core/common/utilities/configurable-operation-utils.mjs +0 -0
  484. /package/{package/esm2022 → esm2022}/core/common/utilities/create-updated-translatable.mjs +0 -0
  485. /package/{package/esm2022 → esm2022}/core/common/utilities/custom-field-default-value.mjs +0 -0
  486. /package/{package/esm2022 → esm2022}/core/common/utilities/find-translation.mjs +0 -0
  487. /package/{package/esm2022 → esm2022}/core/common/utilities/get-default-ui-language.mjs +0 -0
  488. /package/{package/esm2022 → esm2022}/core/common/utilities/interpolate-description.mjs +0 -0
  489. /package/{package/esm2022 → esm2022}/core/common/utilities/selection-manager.mjs +0 -0
  490. /package/{package/esm2022 → esm2022}/core/common/utilities/string-to-color.mjs +0 -0
  491. /package/{package/esm2022 → esm2022}/core/components/alerts/alerts.component.mjs +0 -0
  492. /package/{package/esm2022 → esm2022}/core/components/app-shell/app-shell.component.mjs +0 -0
  493. /package/{package/esm2022 → esm2022}/core/components/base-nav/base-nav.component.mjs +0 -0
  494. /package/{package/esm2022 → esm2022}/core/components/breadcrumb/breadcrumb.component.mjs +0 -0
  495. /package/{package/esm2022 → esm2022}/core/components/channel-switcher/channel-switcher.component.mjs +0 -0
  496. /package/{package/esm2022 → esm2022}/core/components/main-nav/main-nav.component.mjs +0 -0
  497. /package/{package/esm2022 → esm2022}/core/components/notification/notification.component.mjs +0 -0
  498. /package/{package/esm2022 → esm2022}/core/components/overlay-host/overlay-host.component.mjs +0 -0
  499. /package/{package/esm2022 → esm2022}/core/components/settings-nav/settings-nav.component.mjs +0 -0
  500. /package/{package/esm2022 → esm2022}/core/components/theme-switcher/theme-switcher.component.mjs +0 -0
  501. /package/{package/esm2022 → esm2022}/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.mjs +0 -0
  502. /package/{package/esm2022 → esm2022}/core/components/user-menu/user-menu.component.mjs +0 -0
  503. /package/{package/esm2022 → esm2022}/core/core.module.mjs +0 -0
  504. /package/{package/esm2022 → esm2022}/core/data/check-jobs-link.mjs +0 -0
  505. /package/{package/esm2022 → esm2022}/core/data/client-state/client-defaults.mjs +0 -0
  506. /package/{package/esm2022 → esm2022}/core/data/client-state/client-resolvers.mjs +0 -0
  507. /package/{package/esm2022 → esm2022}/core/data/data.module.mjs +0 -0
  508. /package/{package/esm2022 → esm2022}/core/data/definitions/administrator-definitions.mjs +0 -0
  509. /package/{package/esm2022 → esm2022}/core/data/definitions/auth-definitions.mjs +0 -0
  510. /package/{package/esm2022 → esm2022}/core/data/definitions/client-definitions.mjs +0 -0
  511. /package/{package/esm2022 → esm2022}/core/data/definitions/collection-definitions.mjs +0 -0
  512. /package/{package/esm2022 → esm2022}/core/data/definitions/customer-definitions.mjs +0 -0
  513. /package/{package/esm2022 → esm2022}/core/data/definitions/facet-definitions.mjs +0 -0
  514. /package/{package/esm2022 → esm2022}/core/data/definitions/order-definitions.mjs +0 -0
  515. /package/{package/esm2022 → esm2022}/core/data/definitions/product-definitions.mjs +0 -0
  516. /package/{package/esm2022 → esm2022}/core/data/definitions/promotion-definitions.mjs +0 -0
  517. /package/{package/esm2022 → esm2022}/core/data/definitions/settings-definitions.mjs +0 -0
  518. /package/{package/esm2022 → esm2022}/core/data/definitions/shared-definitions.mjs +0 -0
  519. /package/{package/esm2022 → esm2022}/core/data/definitions/shipping-definitions.mjs +0 -0
  520. /package/{package/esm2022 → esm2022}/core/data/omit-typename-link.mjs +0 -0
  521. /package/{package/esm2022 → esm2022}/core/data/providers/administrator-data.service.mjs +0 -0
  522. /package/{package/esm2022 → esm2022}/core/data/providers/auth-data.service.mjs +0 -0
  523. /package/{package/esm2022 → esm2022}/core/data/providers/base-data.service.mjs +0 -0
  524. /package/{package/esm2022 → esm2022}/core/data/providers/client-data.service.mjs +0 -0
  525. /package/{package/esm2022 → esm2022}/core/data/providers/collection-data.service.mjs +0 -0
  526. /package/{package/esm2022 → esm2022}/core/data/providers/customer-data.service.mjs +0 -0
  527. /package/{package/esm2022 → esm2022}/core/data/providers/data.service.mjs +0 -0
  528. /package/{package/esm2022 → esm2022}/core/data/providers/facet-data.service.mjs +0 -0
  529. /package/{package/esm2022 → esm2022}/core/data/providers/fetch-adapter.mjs +0 -0
  530. /package/{package/esm2022 → esm2022}/core/data/providers/interceptor.mjs +0 -0
  531. /package/{package/esm2022 → esm2022}/core/data/providers/order-data.service.mjs +0 -0
  532. /package/{package/esm2022 → esm2022}/core/data/providers/product-data.service.mjs +0 -0
  533. /package/{package/esm2022 → esm2022}/core/data/providers/promotion-data.service.mjs +0 -0
  534. /package/{package/esm2022 → esm2022}/core/data/providers/settings-data.service.mjs +0 -0
  535. /package/{package/esm2022 → esm2022}/core/data/providers/shipping-method-data.service.mjs +0 -0
  536. /package/{package/esm2022 → esm2022}/core/data/query-result.mjs +0 -0
  537. /package/{package/esm2022 → esm2022}/core/data/server-config.mjs +0 -0
  538. /package/{package/esm2022 → esm2022}/core/data/utils/add-custom-fields.mjs +0 -0
  539. /package/{package/esm2022 → esm2022}/core/data/utils/get-server-location.mjs +0 -0
  540. /package/{package/esm2022 → esm2022}/core/data/utils/is-entity-create-or-update-mutation.mjs +0 -0
  541. /package/{package/esm2022 → esm2022}/core/data/utils/remove-readonly-custom-fields.mjs +0 -0
  542. /package/{package/esm2022 → esm2022}/core/data/utils/transform-relation-custom-field-inputs.mjs +0 -0
  543. /package/{package/esm2022 → esm2022}/core/extension/add-action-bar-dropdown-menu-item.mjs +0 -0
  544. /package/{package/esm2022 → esm2022}/core/extension/add-action-bar-item.mjs +0 -0
  545. /package/{package/esm2022 → esm2022}/core/extension/add-nav-menu-item.mjs +0 -0
  546. /package/{package/esm2022 → esm2022}/core/extension/components/angular-route.component.mjs +0 -0
  547. /package/{package/esm2022 → esm2022}/core/extension/components/route.component.mjs +0 -0
  548. /package/{package/esm2022 → esm2022}/core/extension/providers/page-metadata.service.mjs +0 -0
  549. /package/{package/esm2022 → esm2022}/core/extension/register-alert.mjs +0 -0
  550. /package/{package/esm2022 → esm2022}/core/extension/register-bulk-action.mjs +0 -0
  551. /package/{package/esm2022 → esm2022}/core/extension/register-custom-detail-component.mjs +0 -0
  552. /package/{package/esm2022 → esm2022}/core/extension/register-dashboard-widget.mjs +0 -0
  553. /package/{package/esm2022 → esm2022}/core/extension/register-data-table-component.mjs +0 -0
  554. /package/{package/esm2022 → esm2022}/core/extension/register-form-input-component.mjs +0 -0
  555. /package/{package/esm2022 → esm2022}/core/extension/register-history-entry-component.mjs +0 -0
  556. /package/{package/esm2022 → esm2022}/core/extension/register-page-tab.mjs +0 -0
  557. /package/{package/esm2022 → esm2022}/core/extension/register-route-component.mjs +0 -0
  558. /package/{package/esm2022 → esm2022}/core/extension/types.mjs +0 -0
  559. /package/{package/esm2022 → esm2022}/core/providers/alerts/alerts.service.mjs +0 -0
  560. /package/{package/esm2022 → esm2022}/core/providers/auth/auth.service.mjs +0 -0
  561. /package/{package/esm2022 → esm2022}/core/providers/breadcrumb/breadcrumb.service.mjs +0 -0
  562. /package/{package/esm2022 → esm2022}/core/providers/bulk-action-registry/bulk-action-registry.service.mjs +0 -0
  563. /package/{package/esm2022 → esm2022}/core/providers/bulk-action-registry/bulk-action-types.mjs +0 -0
  564. /package/{package/esm2022 → esm2022}/core/providers/channel/channel.service.mjs +0 -0
  565. /package/{package/esm2022 → esm2022}/core/providers/component-registry/component-registry.service.mjs +0 -0
  566. /package/{package/esm2022 → esm2022}/core/providers/currency/currency.service.mjs +0 -0
  567. /package/{package/esm2022 → esm2022}/core/providers/custom-detail-component/custom-detail-component-types.mjs +0 -0
  568. /package/{package/esm2022 → esm2022}/core/providers/custom-detail-component/custom-detail-component.service.mjs +0 -0
  569. /package/{package/esm2022 → esm2022}/core/providers/custom-field-component/custom-field-component.service.mjs +0 -0
  570. /package/{package/esm2022 → esm2022}/core/providers/custom-history-entry-component/history-entry-component-types.mjs +0 -0
  571. /package/{package/esm2022 → esm2022}/core/providers/custom-history-entry-component/history-entry-component.service.mjs +0 -0
  572. /package/{package/esm2022 → esm2022}/core/providers/dashboard-widget/dashboard-widget-types.mjs +0 -0
  573. /package/{package/esm2022 → esm2022}/core/providers/dashboard-widget/dashboard-widget.service.mjs +0 -0
  574. /package/{package/esm2022 → esm2022}/core/providers/data-table/data-table-filter-collection.mjs +0 -0
  575. /package/{package/esm2022 → esm2022}/core/providers/data-table/data-table-filter.mjs +0 -0
  576. /package/{package/esm2022 → esm2022}/core/providers/data-table/data-table-sort-collection.mjs +0 -0
  577. /package/{package/esm2022 → esm2022}/core/providers/data-table/data-table-sort.mjs +0 -0
  578. /package/{package/esm2022 → esm2022}/core/providers/guard/auth.guard.mjs +0 -0
  579. /package/{package/esm2022 → esm2022}/core/providers/health-check/health-check.service.mjs +0 -0
  580. /package/{package/esm2022 → esm2022}/core/providers/i18n/custom-http-loader.mjs +0 -0
  581. /package/{package/esm2022 → esm2022}/core/providers/i18n/custom-message-format-compiler.mjs +0 -0
  582. /package/{package/esm2022 → esm2022}/core/providers/i18n/i18n.service.mjs +0 -0
  583. /package/{package/esm2022 → esm2022}/core/providers/job-queue/job-queue.service.mjs +0 -0
  584. /package/{package/esm2022 → esm2022}/core/providers/local-storage/local-storage.service.mjs +0 -0
  585. /package/{package/esm2022 → esm2022}/core/providers/localization/localization.service.mjs +0 -0
  586. /package/{package/esm2022 → esm2022}/core/providers/modal/modal.service.mjs +0 -0
  587. /package/{package/esm2022 → esm2022}/core/providers/modal/modal.types.mjs +0 -0
  588. /package/{package/esm2022 → esm2022}/core/providers/nav-builder/nav-builder-types.mjs +0 -0
  589. /package/{package/esm2022 → esm2022}/core/providers/nav-builder/nav-builder.service.mjs +0 -0
  590. /package/{package/esm2022 → esm2022}/core/providers/notification/notification.service.mjs +0 -0
  591. /package/{package/esm2022 → esm2022}/core/providers/overlay-host/overlay-host.service.mjs +0 -0
  592. /package/{package/esm2022 → esm2022}/core/providers/page/page.service.mjs +0 -0
  593. /package/{package/esm2022 → esm2022}/core/providers/permissions/permissions.service.mjs +0 -0
  594. /package/{package/esm2022 → esm2022}/core/public_api.mjs +0 -0
  595. /package/{package/esm2022 → esm2022}/core/shared/components/action-bar/action-bar.component.mjs +0 -0
  596. /package/{package/esm2022 → esm2022}/core/shared/components/action-bar-dropdown-menu/action-bar-dropdown-menu.component.mjs +0 -0
  597. /package/{package/esm2022 → esm2022}/core/shared/components/action-bar-items/action-bar-base.component.mjs +0 -0
  598. /package/{package/esm2022 → esm2022}/core/shared/components/action-bar-items/action-bar-items.component.mjs +0 -0
  599. /package/{package/esm2022 → esm2022}/core/shared/components/address-form/address-form.component.mjs +0 -0
  600. /package/{package/esm2022 → esm2022}/core/shared/components/affixed-input/affixed-input.component.mjs +0 -0
  601. /package/{package/esm2022 → esm2022}/core/shared/components/affixed-input/percentage-suffix-input.component.mjs +0 -0
  602. /package/{package/esm2022 → esm2022}/core/shared/components/asset-file-input/asset-file-input.component.mjs +0 -0
  603. /package/{package/esm2022 → esm2022}/core/shared/components/asset-gallery/asset-gallery.component.mjs +0 -0
  604. /package/{package/esm2022 → esm2022}/core/shared/components/asset-gallery/asset-gallery.types.mjs +0 -0
  605. /package/{package/esm2022 → esm2022}/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.mjs +0 -0
  606. /package/{package/esm2022 → esm2022}/core/shared/components/asset-preview/asset-preview.component.mjs +0 -0
  607. /package/{package/esm2022 → esm2022}/core/shared/components/asset-preview-dialog/asset-preview-dialog.component.mjs +0 -0
  608. /package/{package/esm2022 → esm2022}/core/shared/components/asset-preview-links/asset-preview-links.component.mjs +0 -0
  609. /package/{package/esm2022 → esm2022}/core/shared/components/asset-search-input/asset-search-input.component.mjs +0 -0
  610. /package/{package/esm2022 → esm2022}/core/shared/components/assets/assets.component.mjs +0 -0
  611. /package/{package/esm2022 → esm2022}/core/shared/components/assign-to-channel-dialog/assign-to-channel-dialog.component.mjs +0 -0
  612. /package/{package/esm2022 → esm2022}/core/shared/components/bulk-action-menu/bulk-action-menu.component.mjs +0 -0
  613. /package/{package/esm2022 → esm2022}/core/shared/components/card/card.component.mjs +0 -0
  614. /package/{package/esm2022 → esm2022}/core/shared/components/channel-assignment-control/channel-assignment-control.component.mjs +0 -0
  615. /package/{package/esm2022 → esm2022}/core/shared/components/channel-badge/channel-badge.component.mjs +0 -0
  616. /package/{package/esm2022 → esm2022}/core/shared/components/chart/chart.component.mjs +0 -0
  617. /package/{package/esm2022 → esm2022}/core/shared/components/chart/tooltip-plugin.mjs +0 -0
  618. /package/{package/esm2022 → esm2022}/core/shared/components/chip/chip.component.mjs +0 -0
  619. /package/{package/esm2022 → esm2022}/core/shared/components/configurable-input/configurable-input.component.mjs +0 -0
  620. /package/{package/esm2022 → esm2022}/core/shared/components/currency-code-selector/currency-code-selector.component.mjs +0 -0
  621. /package/{package/esm2022 → esm2022}/core/shared/components/currency-input/currency-input.component.mjs +0 -0
  622. /package/{package/esm2022 → esm2022}/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.mjs +0 -0
  623. /package/{package/esm2022 → esm2022}/core/shared/components/custom-field-control/custom-field-control.component.mjs +0 -0
  624. /package/{package/esm2022 → esm2022}/core/shared/components/customer-label/customer-label.component.mjs +0 -0
  625. /package/{package/esm2022 → esm2022}/core/shared/components/data-table/data-table-column.component.mjs +0 -0
  626. /package/{package/esm2022 → esm2022}/core/shared/components/data-table/data-table.component.mjs +0 -0
  627. /package/{package/esm2022 → esm2022}/core/shared/components/data-table-2/data-table-column.component.mjs +0 -0
  628. /package/{package/esm2022 → esm2022}/core/shared/components/data-table-2/data-table-custom-component.service.mjs +0 -0
  629. /package/{package/esm2022 → esm2022}/core/shared/components/data-table-2/data-table-custom-field-column.component.mjs +0 -0
  630. /package/{package/esm2022 → esm2022}/core/shared/components/data-table-2/data-table-search.component.mjs +0 -0
  631. /package/{package/esm2022 → esm2022}/core/shared/components/data-table-2/data-table2.component.mjs +0 -0
  632. /package/{package/esm2022 → esm2022}/core/shared/components/data-table-column-picker/data-table-column-picker.component.mjs +0 -0
  633. /package/{package/esm2022 → esm2022}/core/shared/components/data-table-filter-label/data-table-filter-label.component.mjs +0 -0
  634. /package/{package/esm2022 → esm2022}/core/shared/components/data-table-filter-presets/add-filter-preset-button.component.mjs +0 -0
  635. /package/{package/esm2022 → esm2022}/core/shared/components/data-table-filter-presets/data-table-filter-presets.component.mjs +0 -0
  636. /package/{package/esm2022 → esm2022}/core/shared/components/data-table-filter-presets/filter-preset.service.mjs +0 -0
  637. /package/{package/esm2022 → esm2022}/core/shared/components/data-table-filter-presets/rename-filter-preset-dialog.component.mjs +0 -0
  638. /package/{package/esm2022 → esm2022}/core/shared/components/data-table-filters/custom-filter-component.directive.mjs +0 -0
  639. /package/{package/esm2022 → esm2022}/core/shared/components/datetime-picker/constants.mjs +0 -0
  640. /package/{package/esm2022 → esm2022}/core/shared/components/datetime-picker/datetime-picker.component.mjs +0 -0
  641. /package/{package/esm2022 → esm2022}/core/shared/components/datetime-picker/datetime-picker.service.mjs +0 -0
  642. /package/{package/esm2022 → esm2022}/core/shared/components/datetime-picker/types.mjs +0 -0
  643. /package/{package/esm2022 → esm2022}/core/shared/components/dropdown/dropdown-item.directive.mjs +0 -0
  644. /package/{package/esm2022 → esm2022}/core/shared/components/dropdown/dropdown-menu.component.mjs +0 -0
  645. /package/{package/esm2022 → esm2022}/core/shared/components/dropdown/dropdown-trigger.directive.mjs +0 -0
  646. /package/{package/esm2022 → esm2022}/core/shared/components/dropdown/dropdown.component.mjs +0 -0
  647. /package/{package/esm2022 → esm2022}/core/shared/components/duplicate-entity-dialog/duplicate-entity-dialog.component.mjs +0 -0
  648. /package/{package/esm2022 → esm2022}/core/shared/components/duplicate-entity-dialog/duplicate-entity-dialog.graphql.mjs +0 -0
  649. /package/{package/esm2022 → esm2022}/core/shared/components/edit-note-dialog/edit-note-dialog.component.mjs +0 -0
  650. /package/{package/esm2022 → esm2022}/core/shared/components/empty-placeholder/empty-placeholder.component.mjs +0 -0
  651. /package/{package/esm2022 → esm2022}/core/shared/components/entity-info/entity-info.component.mjs +0 -0
  652. /package/{package/esm2022 → esm2022}/core/shared/components/extension-host/extension-host-config.mjs +0 -0
  653. /package/{package/esm2022 → esm2022}/core/shared/components/extension-host/extension-host.component.mjs +0 -0
  654. /package/{package/esm2022 → esm2022}/core/shared/components/extension-host/extension-host.service.mjs +0 -0
  655. /package/{package/esm2022 → esm2022}/core/shared/components/extension-host/host-external-frame.mjs +0 -0
  656. /package/{package/esm2022 → esm2022}/core/shared/components/facet-value-chip/facet-value-chip.component.mjs +0 -0
  657. /package/{package/esm2022 → esm2022}/core/shared/components/focal-point-control/focal-point-control.component.mjs +0 -0
  658. /package/{package/esm2022 → esm2022}/core/shared/components/form-field/form-field-control.directive.mjs +0 -0
  659. /package/{package/esm2022 → esm2022}/core/shared/components/form-field/form-field.component.mjs +0 -0
  660. /package/{package/esm2022 → esm2022}/core/shared/components/form-item/form-item.component.mjs +0 -0
  661. /package/{package/esm2022 → esm2022}/core/shared/components/formatted-address/formatted-address.component.mjs +0 -0
  662. /package/{package/esm2022 → esm2022}/core/shared/components/help-tooltip/help-tooltip.component.mjs +0 -0
  663. /package/{package/esm2022 → esm2022}/core/shared/components/history-entry-detail/history-entry-detail.component.mjs +0 -0
  664. /package/{package/esm2022 → esm2022}/core/shared/components/items-per-page-controls/items-per-page-controls.component.mjs +0 -0
  665. /package/{package/esm2022 → esm2022}/core/shared/components/labeled-data/labeled-data.component.mjs +0 -0
  666. /package/{package/esm2022 → esm2022}/core/shared/components/language-code-selector/language-code-selector.component.mjs +0 -0
  667. /package/{package/esm2022 → esm2022}/core/shared/components/language-selector/language-selector.component.mjs +0 -0
  668. /package/{package/esm2022 → esm2022}/core/shared/components/localized-text/localized-text.component.mjs +0 -0
  669. /package/{package/esm2022 → esm2022}/core/shared/components/manage-tags-dialog/manage-tags-dialog.component.mjs +0 -0
  670. /package/{package/esm2022 → esm2022}/core/shared/components/modal-dialog/dialog-buttons.directive.mjs +0 -0
  671. /package/{package/esm2022 → esm2022}/core/shared/components/modal-dialog/dialog-component-outlet.component.mjs +0 -0
  672. /package/{package/esm2022 → esm2022}/core/shared/components/modal-dialog/dialog-title.directive.mjs +0 -0
  673. /package/{package/esm2022 → esm2022}/core/shared/components/modal-dialog/modal-dialog.component.mjs +0 -0
  674. /package/{package/esm2022 → esm2022}/core/shared/components/object-tree/object-tree.component.mjs +0 -0
  675. /package/{package/esm2022 → esm2022}/core/shared/components/order-state-label/order-state-label.component.mjs +0 -0
  676. /package/{package/esm2022 → esm2022}/core/shared/components/page/page.component.mjs +0 -0
  677. /package/{package/esm2022 → esm2022}/core/shared/components/page-block/page-block.component.mjs +0 -0
  678. /package/{package/esm2022 → esm2022}/core/shared/components/page-body/page-body.component.mjs +0 -0
  679. /package/{package/esm2022 → esm2022}/core/shared/components/page-detail-layout/page-detail-layout.component.mjs +0 -0
  680. /package/{package/esm2022 → esm2022}/core/shared/components/page-detail-layout/page-detail-sidebar.component.mjs +0 -0
  681. /package/{package/esm2022 → esm2022}/core/shared/components/page-entity-info/page-entity-info.component.mjs +0 -0
  682. /package/{package/esm2022 → esm2022}/core/shared/components/page-header/page-header.component.mjs +0 -0
  683. /package/{package/esm2022 → esm2022}/core/shared/components/page-header-description/page-header-description.component.mjs +0 -0
  684. /package/{package/esm2022 → esm2022}/core/shared/components/page-header-tabs/page-header-tabs.component.mjs +0 -0
  685. /package/{package/esm2022 → esm2022}/core/shared/components/page-title/page-title.component.mjs +0 -0
  686. /package/{package/esm2022 → esm2022}/core/shared/components/pagination-controls/pagination-controls.component.mjs +0 -0
  687. /package/{package/esm2022 → esm2022}/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.mjs +0 -0
  688. /package/{package/esm2022 → esm2022}/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.graphql.mjs +0 -0
  689. /package/{package/esm2022 → esm2022}/core/shared/components/product-search-input/product-search-input.component.mjs +0 -0
  690. /package/{package/esm2022 → esm2022}/core/shared/components/product-variant-selector/product-variant-selector.component.mjs +0 -0
  691. /package/{package/esm2022 → esm2022}/core/shared/components/radio-card/radio-card-fieldset.component.mjs +0 -0
  692. /package/{package/esm2022 → esm2022}/core/shared/components/radio-card/radio-card.component.mjs +0 -0
  693. /package/{package/esm2022 → esm2022}/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.mjs +0 -0
  694. /package/{package/esm2022 → esm2022}/core/shared/components/rich-text-editor/link-dialog/link-dialog.component.mjs +0 -0
  695. /package/{package/esm2022 → esm2022}/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.mjs +0 -0
  696. /package/{package/esm2022 → esm2022}/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.mjs +0 -0
  697. /package/{package/esm2022 → esm2022}/core/shared/components/rich-text-editor/prosemirror/custom-nodes.mjs +0 -0
  698. /package/{package/esm2022 → esm2022}/core/shared/components/rich-text-editor/prosemirror/inputrules.mjs +0 -0
  699. /package/{package/esm2022 → esm2022}/core/shared/components/rich-text-editor/prosemirror/keymap.mjs +0 -0
  700. /package/{package/esm2022 → esm2022}/core/shared/components/rich-text-editor/prosemirror/menu/links.mjs +0 -0
  701. /package/{package/esm2022 → esm2022}/core/shared/components/rich-text-editor/prosemirror/menu/menu-common.mjs +0 -0
  702. /package/{package/esm2022 → esm2022}/core/shared/components/rich-text-editor/prosemirror/menu/menu-plugin.mjs +0 -0
  703. /package/{package/esm2022 → esm2022}/core/shared/components/rich-text-editor/prosemirror/menu/menu.mjs +0 -0
  704. /package/{package/esm2022 → esm2022}/core/shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon.mjs +0 -0
  705. /package/{package/esm2022 → esm2022}/core/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.mjs +0 -0
  706. /package/{package/esm2022 → esm2022}/core/shared/components/rich-text-editor/prosemirror/plugins/link-select-plugin.mjs +0 -0
  707. /package/{package/esm2022 → esm2022}/core/shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin.mjs +0 -0
  708. /package/{package/esm2022 → esm2022}/core/shared/components/rich-text-editor/prosemirror/plugins/tables-plugin.mjs +0 -0
  709. /package/{package/esm2022 → esm2022}/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.mjs +0 -0
  710. /package/{package/esm2022 → esm2022}/core/shared/components/rich-text-editor/prosemirror/types.mjs +0 -0
  711. /package/{package/esm2022 → esm2022}/core/shared/components/rich-text-editor/prosemirror/utils.mjs +0 -0
  712. /package/{package/esm2022 → esm2022}/core/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.mjs +0 -0
  713. /package/{package/esm2022 → esm2022}/core/shared/components/rich-text-editor/rich-text-editor.component.mjs +0 -0
  714. /package/{package/esm2022 → esm2022}/core/shared/components/select-toggle/select-toggle.component.mjs +0 -0
  715. /package/{package/esm2022 → esm2022}/core/shared/components/simple-dialog/simple-dialog.component.mjs +0 -0
  716. /package/{package/esm2022 → esm2022}/core/shared/components/split-view/split-view.component.mjs +0 -0
  717. /package/{package/esm2022 → esm2022}/core/shared/components/split-view/split-view.directive.mjs +0 -0
  718. /package/{package/esm2022 → esm2022}/core/shared/components/status-badge/status-badge.component.mjs +0 -0
  719. /package/{package/esm2022 → esm2022}/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.mjs +0 -0
  720. /package/{package/esm2022 → esm2022}/core/shared/components/table-row-action/table-row-action.component.mjs +0 -0
  721. /package/{package/esm2022 → esm2022}/core/shared/components/tag-selector/tag-selector.component.mjs +0 -0
  722. /package/{package/esm2022 → esm2022}/core/shared/components/timeline-entry/timeline-entry.component.mjs +0 -0
  723. /package/{package/esm2022 → esm2022}/core/shared/components/title-input/title-input.component.mjs +0 -0
  724. /package/{package/esm2022 → esm2022}/core/shared/components/ui-extension-point/ui-extension-point.component.mjs +0 -0
  725. /package/{package/esm2022 → esm2022}/core/shared/components/zone-selector/zone-selector.component.mjs +0 -0
  726. /package/{package/esm2022 → esm2022}/core/shared/directives/disabled.directive.mjs +0 -0
  727. /package/{package/esm2022 → esm2022}/core/shared/directives/if-default-channel-active.directive.mjs +0 -0
  728. /package/{package/esm2022 → esm2022}/core/shared/directives/if-directive-base.mjs +0 -0
  729. /package/{package/esm2022 → esm2022}/core/shared/directives/if-multichannel.directive.mjs +0 -0
  730. /package/{package/esm2022 → esm2022}/core/shared/directives/if-permissions.directive.mjs +0 -0
  731. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.mjs +0 -0
  732. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.mjs +0 -0
  733. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.mjs +0 -0
  734. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.mjs +0 -0
  735. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.mjs +0 -0
  736. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.mjs +0 -0
  737. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.mjs +0 -0
  738. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/date-form-input/date-form-input.component.mjs +0 -0
  739. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/default-form-inputs.mjs +0 -0
  740. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.mjs +0 -0
  741. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.mjs +0 -0
  742. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/number-form-input/number-form-input.component.mjs +0 -0
  743. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/password-form-input/password-form-input.component.mjs +0 -0
  744. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.mjs +0 -0
  745. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.mjs +0 -0
  746. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.mjs +0 -0
  747. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/relation-form-input/customer/relation-customer-input.component.mjs +0 -0
  748. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component.mjs +0 -0
  749. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/relation-form-input/product/relation-product-input.component.mjs +0 -0
  750. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/relation-form-input/product-variant/relation-product-variant-input.component.mjs +0 -0
  751. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/relation-form-input/relation-card/relation-card.component.mjs +0 -0
  752. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.mjs +0 -0
  753. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/relation-form-input/relation-selector-dialog/relation-selector-dialog.component.mjs +0 -0
  754. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.mjs +0 -0
  755. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.mjs +0 -0
  756. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/text-form-input/text-form-input.component.mjs +0 -0
  757. /package/{package/esm2022 → esm2022}/core/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.mjs +0 -0
  758. /package/{package/esm2022 → esm2022}/core/shared/pipes/asset-preview.pipe.mjs +0 -0
  759. /package/{package/esm2022 → esm2022}/core/shared/pipes/channel-label.pipe.mjs +0 -0
  760. /package/{package/esm2022 → esm2022}/core/shared/pipes/custom-field-description.pipe.mjs +0 -0
  761. /package/{package/esm2022 → esm2022}/core/shared/pipes/custom-field-label.pipe.mjs +0 -0
  762. /package/{package/esm2022 → esm2022}/core/shared/pipes/duration.pipe.mjs +0 -0
  763. /package/{package/esm2022 → esm2022}/core/shared/pipes/file-size.pipe.mjs +0 -0
  764. /package/{package/esm2022 → esm2022}/core/shared/pipes/has-permission.pipe.mjs +0 -0
  765. /package/{package/esm2022 → esm2022}/core/shared/pipes/locale-base.pipe.mjs +0 -0
  766. /package/{package/esm2022 → esm2022}/core/shared/pipes/locale-currency-name.pipe.mjs +0 -0
  767. /package/{package/esm2022 → esm2022}/core/shared/pipes/locale-currency.pipe.mjs +0 -0
  768. /package/{package/esm2022 → esm2022}/core/shared/pipes/locale-date.pipe.mjs +0 -0
  769. /package/{package/esm2022 → esm2022}/core/shared/pipes/locale-language-name.pipe.mjs +0 -0
  770. /package/{package/esm2022 → esm2022}/core/shared/pipes/locale-region-name.pipe.mjs +0 -0
  771. /package/{package/esm2022 → esm2022}/core/shared/pipes/sentence-case.pipe.mjs +0 -0
  772. /package/{package/esm2022 → esm2022}/core/shared/pipes/sort.pipe.mjs +0 -0
  773. /package/{package/esm2022 → esm2022}/core/shared/pipes/state-i18n-token.pipe.mjs +0 -0
  774. /package/{package/esm2022 → esm2022}/core/shared/pipes/string-to-color.pipe.mjs +0 -0
  775. /package/{package/esm2022 → esm2022}/core/shared/pipes/time-ago.pipe.mjs +0 -0
  776. /package/{package/esm2022 → esm2022}/core/shared/providers/routing/can-deactivate-detail-guard.mjs +0 -0
  777. /package/{package/esm2022 → esm2022}/core/shared/shared.module.mjs +0 -0
  778. /package/{package/esm2022 → esm2022}/core/validators/unicode-pattern.validator.mjs +0 -0
  779. /package/{package/esm2022 → esm2022}/core/vendure-admin-ui-core.mjs +0 -0
  780. /package/{package/esm2022 → esm2022}/customer/components/add-customer-to-group-dialog/add-customer-to-group-dialog.component.mjs +0 -0
  781. /package/{package/esm2022 → esm2022}/customer/components/address-card/address-card.component.mjs +0 -0
  782. /package/{package/esm2022 → esm2022}/customer/components/address-detail-dialog/address-detail-dialog.component.mjs +0 -0
  783. /package/{package/esm2022 → esm2022}/customer/components/customer-detail/customer-detail.component.mjs +0 -0
  784. /package/{package/esm2022 → esm2022}/customer/components/customer-group-detail/customer-group-detail.component.mjs +0 -0
  785. /package/{package/esm2022 → esm2022}/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.mjs +0 -0
  786. /package/{package/esm2022 → esm2022}/customer/components/customer-group-list/customer-group-list-bulk-actions.mjs +0 -0
  787. /package/{package/esm2022 → esm2022}/customer/components/customer-group-list/customer-group-list.component.mjs +0 -0
  788. /package/{package/esm2022 → esm2022}/customer/components/customer-group-member-list/customer-group-member-list-bulk-actions.mjs +0 -0
  789. /package/{package/esm2022 → esm2022}/customer/components/customer-group-member-list/customer-group-member-list.component.mjs +0 -0
  790. /package/{package/esm2022 → esm2022}/customer/components/customer-history/customer-history-entry-host.component.mjs +0 -0
  791. /package/{package/esm2022 → esm2022}/customer/components/customer-history/customer-history.component.mjs +0 -0
  792. /package/{package/esm2022 → esm2022}/customer/components/customer-list/customer-list-bulk-actions.mjs +0 -0
  793. /package/{package/esm2022 → esm2022}/customer/components/customer-list/customer-list.component.mjs +0 -0
  794. /package/{package/esm2022 → esm2022}/customer/components/customer-status-label/customer-status-label.component.mjs +0 -0
  795. /package/{package/esm2022 → esm2022}/customer/components/select-customer-group-dialog/select-customer-group-dialog.component.mjs +0 -0
  796. /package/{package/esm2022 → esm2022}/customer/customer.module.mjs +0 -0
  797. /package/{package/esm2022 → esm2022}/customer/customer.routes.mjs +0 -0
  798. /package/{package/esm2022 → esm2022}/customer/public_api.mjs +0 -0
  799. /package/{package/esm2022 → esm2022}/customer/vendure-admin-ui-customer.mjs +0 -0
  800. /package/{package/esm2022 → esm2022}/dashboard/components/dashboard/dashboard.component.mjs +0 -0
  801. /package/{package/esm2022 → esm2022}/dashboard/components/dashboard-widget/dashboard-widget.component.mjs +0 -0
  802. /package/{package/esm2022 → esm2022}/dashboard/dashboard.module.mjs +0 -0
  803. /package/{package/esm2022 → esm2022}/dashboard/dashboard.routes.mjs +0 -0
  804. /package/{package/esm2022 → esm2022}/dashboard/default-widgets.mjs +0 -0
  805. /package/{package/esm2022 → esm2022}/dashboard/public_api.mjs +0 -0
  806. /package/{package/esm2022 → esm2022}/dashboard/vendure-admin-ui-dashboard.mjs +0 -0
  807. /package/{package/esm2022 → esm2022}/dashboard/widgets/latest-orders-widget/latest-orders-widget.component.mjs +0 -0
  808. /package/{package/esm2022 → esm2022}/dashboard/widgets/order-chart-widget/order-chart-widget.component.mjs +0 -0
  809. /package/{package/esm2022 → esm2022}/dashboard/widgets/order-summary-widget/order-summary-widget.component.mjs +0 -0
  810. /package/{package/esm2022 → esm2022}/dashboard/widgets/test-widget/test-widget.component.mjs +0 -0
  811. /package/{package/esm2022 → esm2022}/dashboard/widgets/welcome-widget/welcome-widget.component.mjs +0 -0
  812. /package/{package/esm2022 → esm2022}/login/components/login/login.component.mjs +0 -0
  813. /package/{package/esm2022 → esm2022}/login/login.module.mjs +0 -0
  814. /package/{package/esm2022 → esm2022}/login/login.routes.mjs +0 -0
  815. /package/{package/esm2022 → esm2022}/login/providers/login.guard.mjs +0 -0
  816. /package/{package/esm2022 → esm2022}/login/public_api.mjs +0 -0
  817. /package/{package/esm2022 → esm2022}/login/vendure-admin-ui-login.mjs +0 -0
  818. /package/{package/esm2022 → esm2022}/marketing/components/promotion-detail/promotion-detail.component.mjs +0 -0
  819. /package/{package/esm2022 → esm2022}/marketing/components/promotion-list/promotion-list-bulk-actions.mjs +0 -0
  820. /package/{package/esm2022 → esm2022}/marketing/components/promotion-list/promotion-list.component.mjs +0 -0
  821. /package/{package/esm2022 → esm2022}/marketing/marketing.module.mjs +0 -0
  822. /package/{package/esm2022 → esm2022}/marketing/marketing.routes.mjs +0 -0
  823. /package/{package/esm2022 → esm2022}/marketing/public_api.mjs +0 -0
  824. /package/{package/esm2022 → esm2022}/marketing/vendure-admin-ui-marketing.mjs +0 -0
  825. /package/{package/esm2022 → esm2022}/order/common/get-refundable-payments.mjs +0 -0
  826. /package/{package/esm2022 → esm2022}/order/common/modify-order-types.mjs +0 -0
  827. /package/{package/esm2022 → esm2022}/order/components/add-manual-payment-dialog/add-manual-payment-dialog.component.mjs +0 -0
  828. /package/{package/esm2022 → esm2022}/order/components/cancel-order-dialog/cancel-order-dialog.component.mjs +0 -0
  829. /package/{package/esm2022 → esm2022}/order/components/coupon-code-selector/coupon-code-selector.component.mjs +0 -0
  830. /package/{package/esm2022 → esm2022}/order/components/draft-order-variant-selector/draft-order-variant-selector.component.mjs +0 -0
  831. /package/{package/esm2022 → esm2022}/order/components/fulfill-order-dialog/fulfill-order-dialog.component.mjs +0 -0
  832. /package/{package/esm2022 → esm2022}/order/components/fulfillment-card/fulfillment-card.component.mjs +0 -0
  833. /package/{package/esm2022 → esm2022}/order/components/fulfillment-detail/fulfillment-detail.component.mjs +0 -0
  834. /package/{package/esm2022 → esm2022}/order/components/fulfillment-state-label/fulfillment-state-label.component.mjs +0 -0
  835. /package/{package/esm2022 → esm2022}/order/components/line-fulfillment/line-fulfillment.component.mjs +0 -0
  836. /package/{package/esm2022 → esm2022}/order/components/line-refunds/line-refunds.component.mjs +0 -0
  837. /package/{package/esm2022 → esm2022}/order/components/modification-detail/modification-detail.component.mjs +0 -0
  838. /package/{package/esm2022 → esm2022}/order/components/order-custom-fields-card/order-custom-fields-card.component.mjs +0 -0
  839. /package/{package/esm2022 → esm2022}/order/components/order-data-table/order-data-table.component.mjs +0 -0
  840. /package/{package/esm2022 → esm2022}/order/components/order-data-table/order-total-column.component.mjs +0 -0
  841. /package/{package/esm2022 → esm2022}/order/components/order-detail/order-detail.component.mjs +0 -0
  842. /package/{package/esm2022 → esm2022}/order/components/order-edits-preview-dialog/order-edits-preview-dialog.component.mjs +0 -0
  843. /package/{package/esm2022 → esm2022}/order/components/order-history/order-history-entry-host.component.mjs +0 -0
  844. /package/{package/esm2022 → esm2022}/order/components/order-history/order-history.component.mjs +0 -0
  845. /package/{package/esm2022 → esm2022}/order/components/order-list/order-list.component.mjs +0 -0
  846. /package/{package/esm2022 → esm2022}/order/components/order-modification-summary/order-modification-summary.component.mjs +0 -0
  847. /package/{package/esm2022 → esm2022}/order/components/order-payment-card/order-payment-card.component.mjs +0 -0
  848. /package/{package/esm2022 → esm2022}/order/components/order-process-graph/constants.mjs +0 -0
  849. /package/{package/esm2022 → esm2022}/order/components/order-process-graph/order-process-edge.component.mjs +0 -0
  850. /package/{package/esm2022 → esm2022}/order/components/order-process-graph/order-process-graph.component.mjs +0 -0
  851. /package/{package/esm2022 → esm2022}/order/components/order-process-graph/order-process-node.component.mjs +0 -0
  852. /package/{package/esm2022 → esm2022}/order/components/order-process-graph/types.mjs +0 -0
  853. /package/{package/esm2022 → esm2022}/order/components/order-process-graph-dialog/order-process-graph-dialog.component.mjs +0 -0
  854. /package/{package/esm2022 → esm2022}/order/components/order-state-select-dialog/order-state-select-dialog.component.mjs +0 -0
  855. /package/{package/esm2022 → esm2022}/order/components/order-table/order-table.component.mjs +0 -0
  856. /package/{package/esm2022 → esm2022}/order/components/payment-detail/payment-detail.component.mjs +0 -0
  857. /package/{package/esm2022 → esm2022}/order/components/payment-for-refund-selector/payment-for-refund-selector.component.mjs +0 -0
  858. /package/{package/esm2022 → esm2022}/order/components/payment-state-label/payment-state-label.component.mjs +0 -0
  859. /package/{package/esm2022 → esm2022}/order/components/refund-detail/refund-detail.component.mjs +0 -0
  860. /package/{package/esm2022 → esm2022}/order/components/refund-order-dialog/refund-order-dialog.component.mjs +0 -0
  861. /package/{package/esm2022 → esm2022}/order/components/refund-state-label/refund-state-label.component.mjs +0 -0
  862. /package/{package/esm2022 → esm2022}/order/components/select-address-dialog/select-address-dialog.component.mjs +0 -0
  863. /package/{package/esm2022 → esm2022}/order/components/select-address-dialog/select-address-dialog.graphql.mjs +0 -0
  864. /package/{package/esm2022 → esm2022}/order/components/select-customer-dialog/select-customer-dialog.component.mjs +0 -0
  865. /package/{package/esm2022 → esm2022}/order/components/select-shipping-method-dialog/select-shipping-method-dialog.component.mjs +0 -0
  866. /package/{package/esm2022 → esm2022}/order/components/seller-orders-card/seller-orders-card.component.mjs +0 -0
  867. /package/{package/esm2022 → esm2022}/order/components/seller-orders-card/seller-orders-card.graphql.mjs +0 -0
  868. /package/{package/esm2022 → esm2022}/order/components/settle-refund-dialog/settle-refund-dialog.component.mjs +0 -0
  869. /package/{package/esm2022 → esm2022}/order/components/simple-item-list/simple-item-list.component.mjs +0 -0
  870. /package/{package/esm2022 → esm2022}/order/order.module.mjs +0 -0
  871. /package/{package/esm2022 → esm2022}/order/order.routes.mjs +0 -0
  872. /package/{package/esm2022 → esm2022}/order/providers/order-transition.service.mjs +0 -0
  873. /package/{package/esm2022 → esm2022}/order/providers/routing/order.guard.mjs +0 -0
  874. /package/{package/esm2022 → esm2022}/order/public_api.mjs +0 -0
  875. /package/{package/esm2022 → esm2022}/order/vendure-admin-ui-order.mjs +0 -0
  876. /package/{package/esm2022 → esm2022}/public_api.mjs +0 -0
  877. /package/{package/esm2022 → esm2022}/react/components/react-custom-column.component.mjs +0 -0
  878. /package/{package/esm2022 → esm2022}/react/components/react-custom-detail.component.mjs +0 -0
  879. /package/{package/esm2022 → esm2022}/react/components/react-form-input.component.mjs +0 -0
  880. /package/{package/esm2022 → esm2022}/react/components/react-route.component.mjs +0 -0
  881. /package/{package/esm2022 → esm2022}/react/directives/react-component-host.directive.mjs +0 -0
  882. /package/{package/esm2022 → esm2022}/react/public_api.mjs +0 -0
  883. /package/{package/esm2022 → esm2022}/react/react-components/ActionBar.mjs +0 -0
  884. /package/{package/esm2022 → esm2022}/react/react-components/Card.mjs +0 -0
  885. /package/{package/esm2022 → esm2022}/react/react-components/CdsIcon.mjs +0 -0
  886. /package/{package/esm2022 → esm2022}/react/react-components/FormField.mjs +0 -0
  887. /package/{package/esm2022 → esm2022}/react/react-components/Link.mjs +0 -0
  888. /package/{package/esm2022 → esm2022}/react/react-components/PageBlock.mjs +0 -0
  889. /package/{package/esm2022 → esm2022}/react/react-components/PageDetailLayout.mjs +0 -0
  890. /package/{package/esm2022 → esm2022}/react/react-components/RichTextEditor.mjs +0 -0
  891. /package/{package/esm2022 → esm2022}/react/react-hooks/use-detail-component-data.mjs +0 -0
  892. /package/{package/esm2022 → esm2022}/react/react-hooks/use-form-control.mjs +0 -0
  893. /package/{package/esm2022 → esm2022}/react/react-hooks/use-injector.mjs +0 -0
  894. /package/{package/esm2022 → esm2022}/react/react-hooks/use-page-metadata.mjs +0 -0
  895. /package/{package/esm2022 → esm2022}/react/react-hooks/use-query.mjs +0 -0
  896. /package/{package/esm2022 → esm2022}/react/react-hooks/use-rich-text-editor.mjs +0 -0
  897. /package/{package/esm2022 → esm2022}/react/react-hooks/use-route-params.mjs +0 -0
  898. /package/{package/esm2022 → esm2022}/react/register-react-custom-detail-component.mjs +0 -0
  899. /package/{package/esm2022 → esm2022}/react/register-react-data-table-component.mjs +0 -0
  900. /package/{package/esm2022 → esm2022}/react/register-react-form-input-component.mjs +0 -0
  901. /package/{package/esm2022 → esm2022}/react/register-react-route-component.mjs +0 -0
  902. /package/{package/esm2022 → esm2022}/react/types.mjs +0 -0
  903. /package/{package/esm2022 → esm2022}/react/vendure-admin-ui-react.mjs +0 -0
  904. /package/{package/esm2022 → esm2022}/settings/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.mjs +0 -0
  905. /package/{package/esm2022 → esm2022}/settings/components/admin-detail/admin-detail.component.mjs +0 -0
  906. /package/{package/esm2022 → esm2022}/settings/components/administrator-list/administrator-list-bulk-actions.mjs +0 -0
  907. /package/{package/esm2022 → esm2022}/settings/components/administrator-list/administrator-list.component.mjs +0 -0
  908. /package/{package/esm2022 → esm2022}/settings/components/channel-detail/channel-detail.component.mjs +0 -0
  909. /package/{package/esm2022 → esm2022}/settings/components/channel-list/channel-list-bulk-actions.mjs +0 -0
  910. /package/{package/esm2022 → esm2022}/settings/components/channel-list/channel-list.component.mjs +0 -0
  911. /package/{package/esm2022 → esm2022}/settings/components/country-detail/country-detail.component.mjs +0 -0
  912. /package/{package/esm2022 → esm2022}/settings/components/country-list/country-list-bulk-actions.mjs +0 -0
  913. /package/{package/esm2022 → esm2022}/settings/components/country-list/country-list.component.mjs +0 -0
  914. /package/{package/esm2022 → esm2022}/settings/components/global-settings/global-settings.component.mjs +0 -0
  915. /package/{package/esm2022 → esm2022}/settings/components/payment-method-detail/payment-method-detail.component.mjs +0 -0
  916. /package/{package/esm2022 → esm2022}/settings/components/payment-method-list/payment-method-list-bulk-actions.mjs +0 -0
  917. /package/{package/esm2022 → esm2022}/settings/components/payment-method-list/payment-method-list.component.mjs +0 -0
  918. /package/{package/esm2022 → esm2022}/settings/components/permission-grid/permission-grid.component.mjs +0 -0
  919. /package/{package/esm2022 → esm2022}/settings/components/profile/profile.component.mjs +0 -0
  920. /package/{package/esm2022 → esm2022}/settings/components/role-detail/role-detail.component.mjs +0 -0
  921. /package/{package/esm2022 → esm2022}/settings/components/role-list/role-list-bulk-actions.mjs +0 -0
  922. /package/{package/esm2022 → esm2022}/settings/components/role-list/role-list.component.mjs +0 -0
  923. /package/{package/esm2022 → esm2022}/settings/components/seller-detail/seller-detail.component.mjs +0 -0
  924. /package/{package/esm2022 → esm2022}/settings/components/seller-list/seller-list-bulk-actions.mjs +0 -0
  925. /package/{package/esm2022 → esm2022}/settings/components/seller-list/seller-list.component.mjs +0 -0
  926. /package/{package/esm2022 → esm2022}/settings/components/shipping-eligibility-test-result/shipping-eligibility-test-result.component.mjs +0 -0
  927. /package/{package/esm2022 → esm2022}/settings/components/shipping-method-detail/shipping-method-detail.component.mjs +0 -0
  928. /package/{package/esm2022 → esm2022}/settings/components/shipping-method-list/shipping-method-list-bulk-actions.mjs +0 -0
  929. /package/{package/esm2022 → esm2022}/settings/components/shipping-method-list/shipping-method-list.component.mjs +0 -0
  930. /package/{package/esm2022 → esm2022}/settings/components/shipping-method-test-result/shipping-method-test-result.component.mjs +0 -0
  931. /package/{package/esm2022 → esm2022}/settings/components/stock-location-detail/stock-location-detail.component.mjs +0 -0
  932. /package/{package/esm2022 → esm2022}/settings/components/stock-location-list/stock-location-list-bulk-actions.mjs +0 -0
  933. /package/{package/esm2022 → esm2022}/settings/components/stock-location-list/stock-location-list.component.mjs +0 -0
  934. /package/{package/esm2022 → esm2022}/settings/components/tax-category-detail/tax-category-detail.component.mjs +0 -0
  935. /package/{package/esm2022 → esm2022}/settings/components/tax-category-list/tax-category-list-bulk-actions.mjs +0 -0
  936. /package/{package/esm2022 → esm2022}/settings/components/tax-category-list/tax-category-list.component.mjs +0 -0
  937. /package/{package/esm2022 → esm2022}/settings/components/tax-rate-detail/tax-rate-detail.component.mjs +0 -0
  938. /package/{package/esm2022 → esm2022}/settings/components/tax-rate-list/tax-rate-list-bulk-actions.mjs +0 -0
  939. /package/{package/esm2022 → esm2022}/settings/components/tax-rate-list/tax-rate-list.component.mjs +0 -0
  940. /package/{package/esm2022 → esm2022}/settings/components/test-address-form/test-address-form.component.mjs +0 -0
  941. /package/{package/esm2022 → esm2022}/settings/components/test-order-builder/test-order-builder.component.mjs +0 -0
  942. /package/{package/esm2022 → esm2022}/settings/components/test-shipping-methods/test-shipping-methods.component.mjs +0 -0
  943. /package/{package/esm2022 → esm2022}/settings/components/zone-detail/zone-detail.component.mjs +0 -0
  944. /package/{package/esm2022 → esm2022}/settings/components/zone-list/zone-list-bulk-actions.mjs +0 -0
  945. /package/{package/esm2022 → esm2022}/settings/components/zone-list/zone-list.component.mjs +0 -0
  946. /package/{package/esm2022 → esm2022}/settings/components/zone-member-list/zone-member-controls.directive.mjs +0 -0
  947. /package/{package/esm2022 → esm2022}/settings/components/zone-member-list/zone-member-list-bulk-actions.mjs +0 -0
  948. /package/{package/esm2022 → esm2022}/settings/components/zone-member-list/zone-member-list-header.directive.mjs +0 -0
  949. /package/{package/esm2022 → esm2022}/settings/components/zone-member-list/zone-member-list.component.mjs +0 -0
  950. /package/{package/esm2022 → esm2022}/settings/providers/routing/profile-resolver.mjs +0 -0
  951. /package/{package/esm2022 → esm2022}/settings/public_api.mjs +0 -0
  952. /package/{package/esm2022 → esm2022}/settings/settings.module.mjs +0 -0
  953. /package/{package/esm2022 → esm2022}/settings/settings.routes.mjs +0 -0
  954. /package/{package/esm2022 → esm2022}/settings/vendure-admin-ui-settings.mjs +0 -0
  955. /package/{package/esm2022 → esm2022}/system/components/health-check/health-check.component.mjs +0 -0
  956. /package/{package/esm2022 → esm2022}/system/components/job-list/job-list.component.mjs +0 -0
  957. /package/{package/esm2022 → esm2022}/system/components/job-state-label/job-state-label.component.mjs +0 -0
  958. /package/{package/esm2022 → esm2022}/system/public_api.mjs +0 -0
  959. /package/{package/esm2022 → esm2022}/system/system.module.mjs +0 -0
  960. /package/{package/esm2022 → esm2022}/system/system.routes.mjs +0 -0
  961. /package/{package/esm2022 → esm2022}/system/vendure-admin-ui-system.mjs +0 -0
  962. /package/{package/esm2022 → esm2022}/vendure-admin-ui.mjs +0 -0
  963. /package/{package/fesm2022 → fesm2022}/vendure-admin-ui-catalog.mjs +0 -0
  964. /package/{package/fesm2022 → fesm2022}/vendure-admin-ui-catalog.mjs.map +0 -0
  965. /package/{package/fesm2022 → fesm2022}/vendure-admin-ui-customer.mjs +0 -0
  966. /package/{package/fesm2022 → fesm2022}/vendure-admin-ui-customer.mjs.map +0 -0
  967. /package/{package/fesm2022 → fesm2022}/vendure-admin-ui-dashboard.mjs +0 -0
  968. /package/{package/fesm2022 → fesm2022}/vendure-admin-ui-dashboard.mjs.map +0 -0
  969. /package/{package/fesm2022 → fesm2022}/vendure-admin-ui-login.mjs +0 -0
  970. /package/{package/fesm2022 → fesm2022}/vendure-admin-ui-login.mjs.map +0 -0
  971. /package/{package/fesm2022 → fesm2022}/vendure-admin-ui-marketing.mjs +0 -0
  972. /package/{package/fesm2022 → fesm2022}/vendure-admin-ui-marketing.mjs.map +0 -0
  973. /package/{package/fesm2022 → fesm2022}/vendure-admin-ui-react.mjs +0 -0
  974. /package/{package/fesm2022 → fesm2022}/vendure-admin-ui-react.mjs.map +0 -0
  975. /package/{package/fesm2022 → fesm2022}/vendure-admin-ui-settings.mjs +0 -0
  976. /package/{package/fesm2022 → fesm2022}/vendure-admin-ui-settings.mjs.map +0 -0
  977. /package/{package/fesm2022 → fesm2022}/vendure-admin-ui-system.mjs +0 -0
  978. /package/{package/fesm2022 → fesm2022}/vendure-admin-ui-system.mjs.map +0 -0
  979. /package/{package/fesm2022 → fesm2022}/vendure-admin-ui.mjs +0 -0
  980. /package/{package/fesm2022 → fesm2022}/vendure-admin-ui.mjs.map +0 -0
  981. /package/{package/index.d.ts → index.d.ts} +0 -0
  982. /package/{package/login → login}/components/login/login.component.d.ts +0 -0
  983. /package/{package/login → login}/index.d.ts +0 -0
  984. /package/{package/login → login}/login.module.d.ts +0 -0
  985. /package/{package/login → login}/login.routes.d.ts +0 -0
  986. /package/{package/login → login}/providers/login.guard.d.ts +0 -0
  987. /package/{package/login → login}/public_api.d.ts +0 -0
  988. /package/{package/marketing → marketing}/components/promotion-detail/promotion-detail.component.d.ts +0 -0
  989. /package/{package/marketing → marketing}/components/promotion-list/promotion-list-bulk-actions.d.ts +0 -0
  990. /package/{package/marketing → marketing}/components/promotion-list/promotion-list.component.d.ts +0 -0
  991. /package/{package/marketing → marketing}/index.d.ts +0 -0
  992. /package/{package/marketing → marketing}/marketing.module.d.ts +0 -0
  993. /package/{package/marketing → marketing}/marketing.routes.d.ts +0 -0
  994. /package/{package/marketing → marketing}/public_api.d.ts +0 -0
  995. /package/{package/order → order}/common/get-refundable-payments.d.ts +0 -0
  996. /package/{package/order → order}/common/modify-order-types.d.ts +0 -0
  997. /package/{package/order → order}/components/add-manual-payment-dialog/add-manual-payment-dialog.component.d.ts +0 -0
  998. /package/{package/order → order}/components/cancel-order-dialog/cancel-order-dialog.component.d.ts +0 -0
  999. /package/{package/order → order}/components/coupon-code-selector/coupon-code-selector.component.d.ts +0 -0
  1000. /package/{package/order → order}/components/draft-order-detail/draft-order-detail.component.d.ts +0 -0
  1001. /package/{package/order → order}/components/draft-order-variant-selector/draft-order-variant-selector.component.d.ts +0 -0
  1002. /package/{package/order → order}/components/fulfill-order-dialog/fulfill-order-dialog.component.d.ts +0 -0
  1003. /package/{package/order → order}/components/fulfillment-card/fulfillment-card.component.d.ts +0 -0
  1004. /package/{package/order → order}/components/fulfillment-detail/fulfillment-detail.component.d.ts +0 -0
  1005. /package/{package/order → order}/components/fulfillment-state-label/fulfillment-state-label.component.d.ts +0 -0
  1006. /package/{package/order → order}/components/line-fulfillment/line-fulfillment.component.d.ts +0 -0
  1007. /package/{package/order → order}/components/line-refunds/line-refunds.component.d.ts +0 -0
  1008. /package/{package/order → order}/components/modification-detail/modification-detail.component.d.ts +0 -0
  1009. /package/{package/order → order}/components/order-custom-fields-card/order-custom-fields-card.component.d.ts +0 -0
  1010. /package/{package/order → order}/components/order-data-table/order-data-table.component.d.ts +0 -0
  1011. /package/{package/order → order}/components/order-data-table/order-total-column.component.d.ts +0 -0
  1012. /package/{package/order → order}/components/order-detail/order-detail.component.d.ts +0 -0
  1013. /package/{package/order → order}/components/order-editor/order-editor.component.d.ts +0 -0
  1014. /package/{package/order → order}/components/order-edits-preview-dialog/order-edits-preview-dialog.component.d.ts +0 -0
  1015. /package/{package/order → order}/components/order-history/order-history-entry-host.component.d.ts +0 -0
  1016. /package/{package/order → order}/components/order-history/order-history.component.d.ts +0 -0
  1017. /package/{package/order → order}/components/order-list/order-list.component.d.ts +0 -0
  1018. /package/{package/order → order}/components/order-modification-summary/order-modification-summary.component.d.ts +0 -0
  1019. /package/{package/order → order}/components/order-payment-card/order-payment-card.component.d.ts +0 -0
  1020. /package/{package/order → order}/components/order-process-graph/constants.d.ts +0 -0
  1021. /package/{package/order → order}/components/order-process-graph/order-process-edge.component.d.ts +0 -0
  1022. /package/{package/order → order}/components/order-process-graph/order-process-graph.component.d.ts +0 -0
  1023. /package/{package/order → order}/components/order-process-graph/order-process-node.component.d.ts +0 -0
  1024. /package/{package/order → order}/components/order-process-graph/types.d.ts +0 -0
  1025. /package/{package/order → order}/components/order-process-graph-dialog/order-process-graph-dialog.component.d.ts +0 -0
  1026. /package/{package/order → order}/components/order-state-select-dialog/order-state-select-dialog.component.d.ts +0 -0
  1027. /package/{package/order → order}/components/order-table/order-table.component.d.ts +0 -0
  1028. /package/{package/order → order}/components/payment-detail/payment-detail.component.d.ts +0 -0
  1029. /package/{package/order → order}/components/payment-for-refund-selector/payment-for-refund-selector.component.d.ts +0 -0
  1030. /package/{package/order → order}/components/payment-state-label/payment-state-label.component.d.ts +0 -0
  1031. /package/{package/order → order}/components/refund-detail/refund-detail.component.d.ts +0 -0
  1032. /package/{package/order → order}/components/refund-order-dialog/refund-order-dialog.component.d.ts +0 -0
  1033. /package/{package/order → order}/components/refund-state-label/refund-state-label.component.d.ts +0 -0
  1034. /package/{package/order → order}/components/select-address-dialog/select-address-dialog.component.d.ts +0 -0
  1035. /package/{package/order → order}/components/select-address-dialog/select-address-dialog.graphql.d.ts +0 -0
  1036. /package/{package/order → order}/components/select-customer-dialog/select-customer-dialog.component.d.ts +0 -0
  1037. /package/{package/order → order}/components/select-shipping-method-dialog/select-shipping-method-dialog.component.d.ts +0 -0
  1038. /package/{package/order → order}/components/seller-orders-card/seller-orders-card.component.d.ts +0 -0
  1039. /package/{package/order → order}/components/seller-orders-card/seller-orders-card.graphql.d.ts +0 -0
  1040. /package/{package/order → order}/components/settle-refund-dialog/settle-refund-dialog.component.d.ts +0 -0
  1041. /package/{package/order → order}/components/simple-item-list/simple-item-list.component.d.ts +0 -0
  1042. /package/{package/order → order}/index.d.ts +0 -0
  1043. /package/{package/order → order}/order.module.d.ts +0 -0
  1044. /package/{package/order → order}/order.routes.d.ts +0 -0
  1045. /package/{package/order → order}/providers/order-transition.service.d.ts +0 -0
  1046. /package/{package/order → order}/providers/routing/order.guard.d.ts +0 -0
  1047. /package/{package/order → order}/public_api.d.ts +0 -0
  1048. /package/{package/public_api.d.ts → public_api.d.ts} +0 -0
  1049. /package/{package/react → react}/components/react-custom-column.component.d.ts +0 -0
  1050. /package/{package/react → react}/components/react-custom-detail.component.d.ts +0 -0
  1051. /package/{package/react → react}/components/react-form-input.component.d.ts +0 -0
  1052. /package/{package/react → react}/components/react-route.component.d.ts +0 -0
  1053. /package/{package/react → react}/directives/react-component-host.directive.d.ts +0 -0
  1054. /package/{package/react → react}/index.d.ts +0 -0
  1055. /package/{package/react → react}/public_api.d.ts +0 -0
  1056. /package/{package/react → react}/react-components/ActionBar.d.ts +0 -0
  1057. /package/{package/react → react}/react-components/Card.d.ts +0 -0
  1058. /package/{package/react → react}/react-components/CdsIcon.d.ts +0 -0
  1059. /package/{package/react → react}/react-components/FormField.d.ts +0 -0
  1060. /package/{package/react → react}/react-components/Link.d.ts +0 -0
  1061. /package/{package/react → react}/react-components/PageBlock.d.ts +0 -0
  1062. /package/{package/react → react}/react-components/PageDetailLayout.d.ts +0 -0
  1063. /package/{package/react → react}/react-components/RichTextEditor.d.ts +0 -0
  1064. /package/{package/react → react}/react-hooks/use-detail-component-data.d.ts +0 -0
  1065. /package/{package/react → react}/react-hooks/use-form-control.d.ts +0 -0
  1066. /package/{package/react → react}/react-hooks/use-injector.d.ts +0 -0
  1067. /package/{package/react → react}/react-hooks/use-page-metadata.d.ts +0 -0
  1068. /package/{package/react → react}/react-hooks/use-query.d.ts +0 -0
  1069. /package/{package/react → react}/react-hooks/use-rich-text-editor.d.ts +0 -0
  1070. /package/{package/react → react}/react-hooks/use-route-params.d.ts +0 -0
  1071. /package/{package/react → react}/register-react-custom-detail-component.d.ts +0 -0
  1072. /package/{package/react → react}/register-react-data-table-component.d.ts +0 -0
  1073. /package/{package/react → react}/register-react-form-input-component.d.ts +0 -0
  1074. /package/{package/react → react}/register-react-route-component.d.ts +0 -0
  1075. /package/{package/react → react}/types.d.ts +0 -0
  1076. /package/{package/settings → settings}/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.d.ts +0 -0
  1077. /package/{package/settings → settings}/components/admin-detail/admin-detail.component.d.ts +0 -0
  1078. /package/{package/settings → settings}/components/administrator-list/administrator-list-bulk-actions.d.ts +0 -0
  1079. /package/{package/settings → settings}/components/administrator-list/administrator-list.component.d.ts +0 -0
  1080. /package/{package/settings → settings}/components/channel-detail/channel-detail.component.d.ts +0 -0
  1081. /package/{package/settings → settings}/components/channel-list/channel-list-bulk-actions.d.ts +0 -0
  1082. /package/{package/settings → settings}/components/channel-list/channel-list.component.d.ts +0 -0
  1083. /package/{package/settings → settings}/components/country-detail/country-detail.component.d.ts +0 -0
  1084. /package/{package/settings → settings}/components/country-list/country-list-bulk-actions.d.ts +0 -0
  1085. /package/{package/settings → settings}/components/country-list/country-list.component.d.ts +0 -0
  1086. /package/{package/settings → settings}/components/global-settings/global-settings.component.d.ts +0 -0
  1087. /package/{package/settings → settings}/components/payment-method-detail/payment-method-detail.component.d.ts +0 -0
  1088. /package/{package/settings → settings}/components/payment-method-list/payment-method-list-bulk-actions.d.ts +0 -0
  1089. /package/{package/settings → settings}/components/payment-method-list/payment-method-list.component.d.ts +0 -0
  1090. /package/{package/settings → settings}/components/permission-grid/permission-grid.component.d.ts +0 -0
  1091. /package/{package/settings → settings}/components/profile/profile.component.d.ts +0 -0
  1092. /package/{package/settings → settings}/components/role-detail/role-detail.component.d.ts +0 -0
  1093. /package/{package/settings → settings}/components/role-list/role-list-bulk-actions.d.ts +0 -0
  1094. /package/{package/settings → settings}/components/role-list/role-list.component.d.ts +0 -0
  1095. /package/{package/settings → settings}/components/seller-detail/seller-detail.component.d.ts +0 -0
  1096. /package/{package/settings → settings}/components/seller-list/seller-list-bulk-actions.d.ts +0 -0
  1097. /package/{package/settings → settings}/components/seller-list/seller-list.component.d.ts +0 -0
  1098. /package/{package/settings → settings}/components/shipping-eligibility-test-result/shipping-eligibility-test-result.component.d.ts +0 -0
  1099. /package/{package/settings → settings}/components/shipping-method-detail/shipping-method-detail.component.d.ts +0 -0
  1100. /package/{package/settings → settings}/components/shipping-method-list/shipping-method-list-bulk-actions.d.ts +0 -0
  1101. /package/{package/settings → settings}/components/shipping-method-list/shipping-method-list.component.d.ts +0 -0
  1102. /package/{package/settings → settings}/components/shipping-method-test-result/shipping-method-test-result.component.d.ts +0 -0
  1103. /package/{package/settings → settings}/components/stock-location-detail/stock-location-detail.component.d.ts +0 -0
  1104. /package/{package/settings → settings}/components/stock-location-list/stock-location-list-bulk-actions.d.ts +0 -0
  1105. /package/{package/settings → settings}/components/stock-location-list/stock-location-list.component.d.ts +0 -0
  1106. /package/{package/settings → settings}/components/tax-category-detail/tax-category-detail.component.d.ts +0 -0
  1107. /package/{package/settings → settings}/components/tax-category-list/tax-category-list-bulk-actions.d.ts +0 -0
  1108. /package/{package/settings → settings}/components/tax-category-list/tax-category-list.component.d.ts +0 -0
  1109. /package/{package/settings → settings}/components/tax-rate-detail/tax-rate-detail.component.d.ts +0 -0
  1110. /package/{package/settings → settings}/components/tax-rate-list/tax-rate-list-bulk-actions.d.ts +0 -0
  1111. /package/{package/settings → settings}/components/tax-rate-list/tax-rate-list.component.d.ts +0 -0
  1112. /package/{package/settings → settings}/components/test-address-form/test-address-form.component.d.ts +0 -0
  1113. /package/{package/settings → settings}/components/test-order-builder/test-order-builder.component.d.ts +0 -0
  1114. /package/{package/settings → settings}/components/test-shipping-methods/test-shipping-methods.component.d.ts +0 -0
  1115. /package/{package/settings → settings}/components/zone-detail/zone-detail.component.d.ts +0 -0
  1116. /package/{package/settings → settings}/components/zone-list/zone-list-bulk-actions.d.ts +0 -0
  1117. /package/{package/settings → settings}/components/zone-list/zone-list.component.d.ts +0 -0
  1118. /package/{package/settings → settings}/components/zone-member-list/zone-member-controls.directive.d.ts +0 -0
  1119. /package/{package/settings → settings}/components/zone-member-list/zone-member-list-bulk-actions.d.ts +0 -0
  1120. /package/{package/settings → settings}/components/zone-member-list/zone-member-list-header.directive.d.ts +0 -0
  1121. /package/{package/settings → settings}/components/zone-member-list/zone-member-list.component.d.ts +0 -0
  1122. /package/{package/settings → settings}/index.d.ts +0 -0
  1123. /package/{package/settings → settings}/providers/routing/profile-resolver.d.ts +0 -0
  1124. /package/{package/settings → settings}/public_api.d.ts +0 -0
  1125. /package/{package/settings → settings}/settings.module.d.ts +0 -0
  1126. /package/{package/settings → settings}/settings.routes.d.ts +0 -0
  1127. /package/{package/static → static}/assets/.gitkeep +0 -0
  1128. /package/{package/static → static}/assets/logo-login.webp +0 -0
  1129. /package/{package/static → static}/assets/logo-top.webp +0 -0
  1130. /package/{package/static → static}/favicon.ico +0 -0
  1131. /package/{package/static → static}/fonts/fonts.scss +0 -0
  1132. /package/{package/static → static}/fonts/inter-cyrillic-ext.woff2 +0 -0
  1133. /package/{package/static → static}/fonts/inter-cyrillic.woff2 +0 -0
  1134. /package/{package/static → static}/fonts/inter-greek-ext.woff2 +0 -0
  1135. /package/{package/static → static}/fonts/inter-greek.woff2 +0 -0
  1136. /package/{package/static → static}/fonts/inter-latin-ext.woff2 +0 -0
  1137. /package/{package/static → static}/fonts/inter-latin.woff2 +0 -0
  1138. /package/{package/static → static}/fonts/inter-vietnamese.woff2 +0 -0
  1139. /package/{package/static → static}/i18n-messages/ar.json +0 -0
  1140. /package/{package/static → static}/i18n-messages/cs.json +0 -0
  1141. /package/{package/static → static}/i18n-messages/de.json +0 -0
  1142. /package/{package/static → static}/i18n-messages/en.json +0 -0
  1143. /package/{package/static → static}/i18n-messages/es.json +0 -0
  1144. /package/{package/static → static}/i18n-messages/fa.json +0 -0
  1145. /package/{package/static → static}/i18n-messages/fr.json +0 -0
  1146. /package/{package/static → static}/i18n-messages/he.json +0 -0
  1147. /package/{package/static → static}/i18n-messages/hr.json +0 -0
  1148. /package/{package/static → static}/i18n-messages/it.json +0 -0
  1149. /package/{package/static → static}/i18n-messages/nb.json +0 -0
  1150. /package/{package/static → static}/i18n-messages/ne.json +0 -0
  1151. /package/{package/static → static}/i18n-messages/pl.json +0 -0
  1152. /package/{package/static → static}/i18n-messages/pt_BR.json +0 -0
  1153. /package/{package/static → static}/i18n-messages/pt_PT.json +0 -0
  1154. /package/{package/static → static}/i18n-messages/ru.json +0 -0
  1155. /package/{package/static → static}/i18n-messages/sv.json +0 -0
  1156. /package/{package/static → static}/i18n-messages/uk.json +0 -0
  1157. /package/{package/static → static}/i18n-messages/zh_Hans.json +0 -0
  1158. /package/{package/static → static}/i18n-messages/zh_Hant.json +0 -0
  1159. /package/{package/static → static}/index.html +0 -0
  1160. /package/{package/static → static}/polyfills.ts +0 -0
  1161. /package/{package/static → static}/styles/_mixins.scss +0 -0
  1162. /package/{package/static → static}/styles/_variables.scss +0 -0
  1163. /package/{package/static → static}/styles/global/_buttons.scss +0 -0
  1164. /package/{package/static → static}/styles/global/_clarity.scss +0 -0
  1165. /package/{package/static → static}/styles/global/_forms.scss +0 -0
  1166. /package/{package/static → static}/styles/global/_global.scss +0 -0
  1167. /package/{package/static → static}/styles/global/_overrides.scss +0 -0
  1168. /package/{package/static → static}/styles/global/_sass-overrides.scss +0 -0
  1169. /package/{package/static → static}/styles/global/_utilities.scss +0 -0
  1170. /package/{package/static → static}/styles/rtl.scss +0 -0
  1171. /package/{package/static → static}/styles/styles.scss +0 -0
  1172. /package/{package/static → static}/styles/theme/dark.scss +0 -0
  1173. /package/{package/static → static}/styles/theme/default.scss +0 -0
  1174. /package/{package/static → static}/styles/ui-extension-theme.scss +0 -0
  1175. /package/{package/static → static}/theme.min.css +0 -0
  1176. /package/{package/static → static}/vendure-ui-config.json +0 -0
  1177. /package/{package/system → system}/components/health-check/health-check.component.d.ts +0 -0
  1178. /package/{package/system → system}/components/job-list/job-list.component.d.ts +0 -0
  1179. /package/{package/system → system}/components/job-state-label/job-state-label.component.d.ts +0 -0
  1180. /package/{package/system → system}/index.d.ts +0 -0
  1181. /package/{package/system → system}/public_api.d.ts +0 -0
  1182. /package/{package/system → system}/system.module.d.ts +0 -0
  1183. /package/{package/system → system}/system.routes.d.ts +0 -0
@@ -482,4 +482,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
482
482
  type: Component,
483
483
  args: [{ selector: 'vdr-order-editor', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-page-block>\r\n <vdr-action-bar *ngIf=\"entity$ | async as order\">\r\n <vdr-ab-left>\r\n <div class=\"flex clr-align-items-center\"></div>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <button class=\"btn btn-secondary\" (click)=\"transitionToPriorState(order)\">\r\n {{ 'order.cancel-modification' | translate }}\r\n </button>\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<vdr-page-detail-layout *ngIf=\"entity as order\">\r\n <vdr-page-detail-sidebar>\r\n <vdr-card [title]=\"'order.modification-summary' | translate\">\r\n <vdr-order-modification-summary\r\n [orderSnapshot]=\"orderSnapshot\"\r\n [modifyOrderInput]=\"modifyOrderInput\"\r\n [addedLines]=\"addedLines\"\r\n [shippingAddressForm]=\"shippingAddressForm\"\r\n [billingAddressForm]=\"billingAddressForm\"\r\n [couponCodesControl]=\"couponCodesControl\"\r\n [updatedShippingMethods]=\"updatedShippingMethods\"\r\n ></vdr-order-modification-summary>\r\n\r\n <div *ngIf=\"!hasModifications()\" class=\"no-modifications\">\r\n {{ 'order.no-modifications-made' | translate }}\r\n </div>\r\n\r\n <div class=\"summary-controls\">\r\n <vdr-form-field [label]=\"'order.note' | translate\">\r\n <textarea\r\n [(ngModel)]=\"note\"\r\n name=\"note\"\r\n required\r\n [disabled]=\"!hasModifications()\"\r\n ></textarea>\r\n </vdr-form-field>\r\n <label class=\"flex items-center\">\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)]=\"recalculateShipping\"\r\n [disabled]=\"!hasModifications()\"\r\n />\r\n <div class=\"ml-1\">{{ 'order.modification-recalculate-shipping' | translate }}</div>\r\n </label>\r\n <button\r\n class=\"btn btn-primary mt-2\"\r\n [disabled]=\"!hasModifications()\"\r\n (click)=\"previewAndModify(order)\"\r\n >\r\n {{ 'order.preview-changes' | translate }}\r\n </button>\r\n </div>\r\n </vdr-card>\r\n <vdr-card [title]=\"'order.set-coupon-codes' | translate\">\r\n <vdr-coupon-code-selector [control]=\"couponCodesControl\"></vdr-coupon-code-selector>\r\n </vdr-card>\r\n <vdr-card [title]=\"'order.shipping-address' | translate\">\r\n <ng-template vdrCardControls>\r\n <button\r\n class=\"button-small\"\r\n [title]=\"'order.edit-shipping-address' | translate\"\r\n (click)=\"editingShippingAddress = !editingShippingAddress\"\r\n >\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n </button>\r\n </ng-template>\r\n <vdr-formatted-address\r\n *ngIf=\"!editingShippingAddress\"\r\n [address]=\"shippingAddressForm.value\"\r\n ></vdr-formatted-address>\r\n <vdr-address-form\r\n *ngIf=\"editingShippingAddress\"\r\n [formGroup]=\"shippingAddressForm\"\r\n [availableCountries]=\"availableCountries$ | async\"\r\n [customFields]=\"addressCustomFields\"\r\n ></vdr-address-form>\r\n </vdr-card>\r\n <vdr-card [title]=\"'order.billing-address' | translate\">\r\n <ng-template vdrCardControls>\r\n <button\r\n class=\"button-small\"\r\n [title]=\"'order.edit-billing-address' | translate\"\r\n (click)=\"editingBillingAddress = !editingBillingAddress\"\r\n >\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n </button>\r\n </ng-template>\r\n <vdr-formatted-address\r\n *ngIf=\"!editingBillingAddress\"\r\n [address]=\"billingAddressForm.value\"\r\n ></vdr-formatted-address>\r\n <vdr-address-form\r\n *ngIf=\"editingBillingAddress\"\r\n [formGroup]=\"billingAddressForm\"\r\n [availableCountries]=\"availableCountries$ | async\"\r\n [customFields]=\"addressCustomFields\"\r\n ></vdr-address-form>\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n\r\n <vdr-page-block>\r\n <vdr-card [paddingX]=\"false\">\r\n <vdr-data-table-2 id=\"modify-order\" class=\"order-table\" [items]=\"order.lines.concat(addedLines)\">\r\n <!-- Here we define all the available columns -->\r\n <vdr-dt2-column id=\"id\" [heading]=\"'common.id' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n id=\"created-at\"\r\n [heading]=\"'common.created-at' | translate\"\r\n [hiddenByDefault]=\"true\"\r\n >\r\n <ng-template let-line=\"item\">\r\n {{ line.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n id=\"updated-at\"\r\n [heading]=\"'common.updated-at' | translate\"\r\n [hiddenByDefault]=\"true\"\r\n >\r\n <ng-template let-line=\"item\">\r\n {{ line.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.image' | translate\" id=\"image\">\r\n <ng-template let-line=\"item\">\r\n <div class=\"image-placeholder\">\r\n <img\r\n *ngIf=\"line.featuredAsset as asset; else imagePlaceholder\"\r\n [src]=\"asset | assetPreview : 'tiny'\"\r\n />\r\n <ng-template #imagePlaceholder>\r\n <div class=\"placeholder\">\r\n <clr-icon shape=\"image\" size=\"48\"></clr-icon>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n id=\"product-name\"\r\n [heading]=\"'order.product-name' | translate\"\r\n [optional]=\"false\"\r\n >\r\n <ng-template let-line=\"item\">\r\n {{ line.productVariant.name }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"product-sku\" [heading]=\"'order.product-sku' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.productVariant.sku }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"unit-price\" [heading]=\"'order.unit-price' | translate\">\r\n <ng-template let-line=\"item\">\r\n <div class=\"text-center\">\r\n <div>{{ line.unitPriceWithTax | localeCurrency : order.currencyCode }}</div>\r\n <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\r\n {{ line.unitPrice | localeCurrency : order.currencyCode }}\r\n </div>\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"quantity\" [heading]=\"'order.quantity' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n <input\r\n type=\"number\"\r\n class=\"draft-qty mr-1\"\r\n min=\"0\"\r\n [value]=\"getInitialLineQuantity(line.id)\"\r\n (input)=\"updateLineQuantity(line, $event.target.value)\"\r\n />\r\n <button\r\n class=\"button-small\"\r\n *ngIf=\"isAddedLine(line)\"\r\n (click)=\"removeAddedItem(line.id)\"\r\n >\r\n <clr-icon shape=\"trash\"></clr-icon>\r\n </button>\r\n <vdr-line-refunds [line]=\"line\" [payments]=\"order.payments\"></vdr-line-refunds>\r\n <vdr-line-fulfillment\r\n [line]=\"line\"\r\n [allOrderFulfillments]=\"order.fulfillments\"\r\n [orderState]=\"order.state\"\r\n ></vdr-line-fulfillment>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n *ngFor=\"let customField of orderLineCustomFields\"\r\n [id]=\"customField.name\"\r\n [heading]=\"customField | customFieldLabel : (uiLanguage$ | async)\"\r\n [hiddenByDefault]=\"true\"\r\n >\r\n <ng-template let-line=\"item\" let-index=\"index\">\r\n <vdr-custom-field-control\r\n [compact]=\"true\"\r\n [entityName]=\"'OrderLine'\"\r\n [customField]=\"customField\"\r\n [customFieldsFormGroup]=\"orderLineCustomFieldsFormArray.at(index)\"\r\n />\r\n </ng-template>\r\n </vdr-dt2-column>\r\n </vdr-data-table-2>\r\n </vdr-card>\r\n <vdr-card [title]=\"'order.add-item-to-order' | translate\">\r\n <vdr-product-variant-selector class=\"mb-4\" (productSelected)=\"addItemSelectedVariant = $event\">\r\n </vdr-product-variant-selector>\r\n <div class=\"flex\">\r\n <div>\r\n <div *ngIf=\"addItemSelectedVariant\" class=\"flex mb-4\">\r\n <img\r\n *ngIf=\"addItemSelectedVariant.productAsset as asset\"\r\n [src]=\"asset | assetPreview : 'tiny'\"\r\n class=\"mr-4 add-item-thumb\"\r\n />\r\n <div>\r\n <strong class=\"mr-4\">{{ addItemSelectedVariant.productVariantName }}</strong>\r\n <small>{{ addItemSelectedVariant.sku }}</small>\r\n <div>\r\n {{\r\n getSelectedItemPrice(addItemSelectedVariant)\r\n | localeCurrency : order.currencyCode\r\n }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-grid\" *ngIf=\"addItemSelectedVariant\">\r\n <ng-container *ngFor=\"let customField of orderLineCustomFields\">\r\n <vdr-custom-field-control\r\n [readonly]=\"!addItemSelectedVariant\"\r\n [customField]=\"customField\"\r\n [customFieldsFormGroup]=\"addItemCustomFieldsForm\"\r\n entityName=\"OrderLine\"\r\n [compact]=\"true\"\r\n ></vdr-custom-field-control>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <div>\r\n <button\r\n *ngIf=\"addItemSelectedVariant\"\r\n class=\"btn btn-secondary\"\r\n [disabled]=\"!addItemSelectedVariant || addItemCustomFieldsForm.invalid\"\r\n (click)=\"addItemToOrder(addItemSelectedVariant)\"\r\n >\r\n {{ 'order.add-item-to-order' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </vdr-card>\r\n <vdr-card [title]=\"'order.shipping' | translate\">\r\n <div *ngFor=\"let shippingLine of order.shippingLines\" class=\"flex items-center\">\r\n <ng-container *ngIf=\"getShippingLineDetails(shippingLine) as details\">\r\n <div>{{ details.name }}:</div>\r\n <div class=\"mx-1\">\r\n {{ details.price | localeCurrency : order.currencyCode }}\r\n </div>\r\n <button class=\"button-small\" (click)=\"setShippingMethod(shippingLine.id)\">\r\n {{ 'order.set-shipping-method' | translate }}\r\n </button>\r\n </ng-container>\r\n </div>\r\n </vdr-card>\r\n <vdr-card [title]=\"'order.add-surcharge' | translate\">\r\n <form [formGroup]=\"surchargeForm\" (submit)=\"addSurcharge(surchargeForm.value)\">\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.description' | translate\" for=\"description\"\r\n ><input id=\"description\" type=\"text\" formControlName=\"description\"\r\n /></vdr-form-field>\r\n <vdr-form-field [label]=\"'order.product-sku' | translate\" for=\"sku\"\r\n ><input id=\"sku\" type=\"text\" formControlName=\"sku\"\r\n /></vdr-form-field>\r\n <vdr-form-field [label]=\"'common.price' | translate\" for=\"price\">\r\n <vdr-currency-input\r\n [currencyCode]=\"order.currencyCode\"\r\n id=\"price\"\r\n formControlName=\"price\"\r\n ></vdr-currency-input>\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"\r\n 'catalog.price-includes-tax-at'\r\n | translate : { rate: surchargeForm.get('taxRate')?.value ?? 0 }\r\n \"\r\n for=\"priceIncludesTax\"\r\n ><input\r\n id=\"priceIncludesTax\"\r\n type=\"checkbox\"\r\n clrCheckbox\r\n formControlName=\"priceIncludesTax\"\r\n /></vdr-form-field>\r\n <vdr-form-field [label]=\"'order.tax-rate' | translate\" for=\"taxRate\">\r\n <vdr-affixed-input suffix=\"%\"\r\n ><input id=\"taxRate\" type=\"number\" min=\"0\" max=\"100\" formControlName=\"taxRate\"\r\n /></vdr-affixed-input>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'order.tax-description' | translate\" for=\"taxDescription\"\r\n ><input id=\"taxDescription\" type=\"text\" formControlName=\"taxDescription\"\r\n /></vdr-form-field>\r\n </div>\r\n <button\r\n class=\"btn btn-secondary mt-2\"\r\n [disabled]=\"\r\n surchargeForm.invalid ||\r\n surchargeForm.pristine ||\r\n surchargeForm.get('price')?.value === 0 ||\r\n !surchargeForm.get('description')?.value\r\n \"\r\n >\r\n {{ 'order.add-surcharge' | translate }}\r\n </button>\r\n </form>\r\n </vdr-card>\r\n </vdr-page-block>\r\n</vdr-page-detail-layout>\r\n", styles: [".order-table .is-cancelled td{text-decoration:line-through;background-color:var(--color-component-bg-200)}.order-table .sub-total td{border-top:1px dashed var(--color-component-border-200)}.order-table .total td{font-weight:700;border-top:1px dashed var(--color-component-border-200)}.order-table td.custom-fields-row{border-top-style:dashed;border-top-color:var(--color-grey-200)}.order-table img{border-radius:var(--border-radius-img)}.order-table .order-line-custom-fields{display:flex;flex-wrap:wrap}.order-table .order-line-custom-fields .custom-field{text-align:start;max-width:200px;overflow:hidden;text-overflow:ellipsis;margin-bottom:6px;margin-inline-end:18px}.order-table .draft-qty{max-width:48px}.order-table .order-line-custom-field{background-color:var(--color-component-bg-100)}.order-table .order-line-custom-field .custom-field-ellipsis{color:var(--color-text-300)}.order-table .net-price{font-size:11px;color:var(--color-text-300);line-height:14px}.order-table .promotions-label{text-decoration:underline dotted var(--color-text-200);font-size:11px;margin-top:6px;cursor:pointer;text-transform:lowercase}.order-table .thumb img{width:50px;height:50px}.order-table .shipping-method-name{font-size:var(--font-size-xs);margin-inline-end:2px}.order-table .order-placed-quantity{text-decoration:line-through;color:var(--color-text-300);margin-inline-end:2px}.order-table tr.modified td{background-color:var(--color-warning-100)}.order-table .order-line-custom-field{text-align:start}.add-item-thumb{max-width:50px}.no-modifications{color:var(--color-grey-400)}.summary-controls{border-top:1px solid var(--color-weight-200);margin-top:calc(var(--space-unit) * 2);padding-top:calc(var(--space-unit) * 1)}\n"] }]
484
484
  }], ctorParameters: () => [{ type: i1.DataService }, { type: i1.NotificationService }, { type: i1.ModalService }, { type: i2.OrderTransitionService }, { type: i0.ChangeDetectorRef }] });
485
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvb3JkZXIvc3JjL2NvbXBvbmVudHMvb3JkZXItZWRpdG9yL29yZGVyLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL29yZGVyLWVkaXRvci9vcmRlci1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFDSCxXQUFXLEVBQ1gsU0FBUyxFQUNULGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLFVBQVUsR0FDYixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFNSCxnQkFBZ0IsRUFRaEIsU0FBUyxFQUVULGtDQUFrQyxFQUNsQyx3QkFBd0IsR0FDM0IsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBU3JGLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsZ0NBQWdDLEdBQ25DLE1BQU0sb0VBQW9FLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMEVBQTBFLENBQUM7Ozs7Ozs7Ozs7OztBQVEvSCxNQUFNLE9BQU8sb0JBQ1QsU0FBUSx3QkFBa0U7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RyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNsRCxhQUFhLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ3JFLENBQUM7SUFDTixDQUFDO0lBRVMsYUFBYSxDQUFDLE1BQTJCLEVBQUUsWUFBMEI7UUFDM0UsY0FBYztJQUNsQixDQUFDOzhHQTFoQlEsb0JBQW9CO2tHQUFwQixvQkFBb0IsK0VDcERqQywwZ2hCQW1VQTs7MkZEL1FhLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDSSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBGb3JtQ29udHJvbCxcbiAgICBGb3JtR3JvdXAsXG4gICAgVW50eXBlZEZvcm1BcnJheSxcbiAgICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gICAgVW50eXBlZEZvcm1Hcm91cCxcbiAgICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEN1c3RvbUZpZWxkQ29uZmlnLFxuICAgIERhdGFTZXJ2aWNlLFxuICAgIERyYWZ0T3JkZXJFbGlnaWJsZVNoaXBwaW5nTWV0aG9kc1F1ZXJ5LFxuICAgIEVycm9yUmVzdWx0LFxuICAgIEdldEF2YWlsYWJsZUNvdW50cmllc1F1ZXJ5LFxuICAgIEhpc3RvcnlFbnRyeVR5cGUsXG4gICAgTGFuZ3VhZ2VDb2RlLFxuICAgIE1vZGFsU2VydmljZSxcbiAgICBNb2RpZnlPcmRlcklucHV0LFxuICAgIE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgT3JkZXJBZGRyZXNzRnJhZ21lbnQsXG4gICAgT3JkZXJEZXRhaWxGcmFnbWVudCxcbiAgICBPcmRlckRldGFpbFF1ZXJ5RG9jdW1lbnQsXG4gICAgU29ydE9yZGVyLFxuICAgIFN1cmNoYXJnZUlucHV0LFxuICAgIHRyYW5zZm9ybVJlbGF0aW9uQ3VzdG9tRmllbGRJbnB1dHMsXG4gICAgVHlwZWRCYXNlRGV0YWlsQ29tcG9uZW50LFxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcbmltcG9ydCB7IGFzc2VydE5ldmVyLCBub3ROdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC11dGlscyc7XG5pbXBvcnQgeyBzaW1wbGVEZWVwQ2xvbmUgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NpbXBsZS1kZWVwLWNsb25lJztcbmltcG9ydCB7IEVNUFRZLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBtYXBUbywgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgICBBZGRlZExpbmUsXG4gICAgTW9kaWZ5T3JkZXJEYXRhLFxuICAgIE9yZGVyU25hcHNob3QsXG4gICAgUHJvZHVjdFNlbGVjdG9ySXRlbSxcbn0gZnJvbSAnLi4vLi4vY29tbW9uL21vZGlmeS1vcmRlci10eXBlcyc7XG5cbmltcG9ydCB7IE9yZGVyVHJhbnNpdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvb3JkZXItdHJhbnNpdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgT3JkZXJFZGl0UmVzdWx0VHlwZSxcbiAgICBPcmRlckVkaXRzUHJldmlld0RpYWxvZ0NvbXBvbmVudCxcbn0gZnJvbSAnLi4vb3JkZXItZWRpdHMtcHJldmlldy1kaWFsb2cvb3JkZXItZWRpdHMtcHJldmlldy1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdFNoaXBwaW5nTWV0aG9kRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vc2VsZWN0LXNoaXBwaW5nLW1ldGhvZC1kaWFsb2cvc2VsZWN0LXNoaXBwaW5nLW1ldGhvZC1kaWFsb2cuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd2ZHItb3JkZXItZWRpdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vb3JkZXItZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9vcmRlci1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgT3JkZXJFZGl0b3JDb21wb25lbnRcbiAgICBleHRlbmRzIFR5cGVkQmFzZURldGFpbENvbXBvbmVudDx0eXBlb2YgT3JkZXJEZXRhaWxRdWVyeURvY3VtZW50LCAnb3JkZXInPlxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgICBhdmFpbGFibGVDb3VudHJpZXMkOiBPYnNlcnZhYmxlPEdldEF2YWlsYWJsZUNvdW50cmllc1F1ZXJ5Wydjb3VudHJpZXMnXVsnaXRlbXMnXT47XG4gICAgYWRkcmVzc0N1c3RvbUZpZWxkczogQ3VzdG9tRmllbGRDb25maWdbXTtcbiAgICB1aUxhbmd1YWdlJDogT2JzZXJ2YWJsZTxMYW5ndWFnZUNvZGU+O1xuICAgIGRldGFpbEZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XG4gICAgY291cG9uQ29kZXNDb250cm9sID0gbmV3IEZvcm1Db250cm9sPHN0cmluZ1tdPihbXSk7XG4gICAgb3JkZXJMaW5lQ3VzdG9tRmllbGRzRm9ybUFycmF5OiBVbnR5cGVkRm9ybUFycmF5O1xuICAgIGFkZEl0ZW1DdXN0b21GaWVsZHNGb3JtQXJyYXk6IFVudHlwZWRGb3JtQXJyYXk7XG4gICAgYWRkSXRlbUN1c3RvbUZpZWxkc0Zvcm06IFVudHlwZWRGb3JtR3JvdXA7XG4gICAgYWRkSXRlbVNlbGVjdGVkVmFyaWFudDogUHJvZHVjdFNlbGVjdG9ySXRlbSB8IHVuZGVmaW5lZDtcbiAgICBvcmRlckxpbmVDdXN0b21GaWVsZHM6IEN1c3RvbUZpZWxkQ29uZmlnW107XG4gICAgb3JkZXJTbmFwc2hvdDogT3JkZXJTbmFwc2hvdDtcbiAgICBtb2RpZnlPcmRlcklucHV0OiBNb2RpZnlPcmRlckRhdGEgPSB7XG4gICAgICAgIGRyeVJ1bjogdHJ1ZSxcbiAgICAgICAgb3JkZXJJZDogJycsXG4gICAgICAgIGFkZEl0ZW1zOiBbXSxcbiAgICAgICAgYWRqdXN0T3JkZXJMaW5lczogW10sXG4gICAgICAgIHN1cmNoYXJnZXM6IFtdLFxuICAgICAgICBub3RlOiAnJyxcbiAgICAgICAgcmVmdW5kczogW10sXG4gICAgICAgIHVwZGF0ZVNoaXBwaW5nQWRkcmVzczoge30sXG4gICAgICAgIHVwZGF0ZUJpbGxpbmdBZGRyZXNzOiB7fSxcbiAgICB9O1xuICAgIHN1cmNoYXJnZUZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgZGVzY3JpcHRpb246IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5taW5MZW5ndGgoMSkpLFxuICAgICAgICBza3U6IG5ldyBGb3JtQ29udHJvbCgnJyksXG4gICAgICAgIHByaWNlOiBuZXcgRm9ybUNvbnRyb2woMCksXG4gICAgICAgIHByaWNlSW5jbHVkZXNUYXg6IG5ldyBGb3JtQ29udHJvbCh0cnVlKSxcbiAgICAgICAgdGF4UmF0ZTogbmV3IEZvcm1Db250cm9sKDApLFxuICAgICAgICB0YXhEZXNjcmlwdGlvbjogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgICB9KTtcbiAgICBzaGlwcGluZ0FkZHJlc3NGb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgIGZ1bGxOYW1lOiBuZXcgRm9ybUNvbnRyb2woJycpLFxuICAgICAgICBjb21wYW55OiBuZXcgRm9ybUNvbnRyb2woJycpLFxuICAgICAgICBzdHJlZXRMaW5lMTogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgICAgICAgc3RyZWV0TGluZTI6IG5ldyBGb3JtQ29udHJvbCgnJyksXG4gICAgICAgIGNpdHk6IG5ldyBGb3JtQ29udHJvbCgnJyksXG4gICAgICAgIHByb3ZpbmNlOiBuZXcgRm9ybUNvbnRyb2woJycpLFxuICAgICAgICBwb3N0YWxDb2RlOiBuZXcgRm9ybUNvbnRyb2woJycpLFxuICAgICAgICBjb3VudHJ5Q29kZTogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgICAgICAgcGhvbmVOdW1iZXI6IG5ldyBGb3JtQ29udHJvbCgnJyksXG4gICAgfSk7XG4gICAgYmlsbGluZ0FkZHJlc3NGb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgIGZ1bGxOYW1lOiBuZXcgRm9ybUNvbnRyb2woJycpLFxuICAgICAgICBjb21wYW55OiBuZXcgRm9ybUNvbnRyb2woJycpLFxuICAgICAgICBzdHJlZXRMaW5lMTogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgICAgICAgc3RyZWV0TGluZTI6IG5ldyBGb3JtQ29udHJvbCgnJyksXG4gICAgICAgIGNpdHk6IG5ldyBGb3JtQ29udHJvbCgnJyksXG4gICAgICAgIHByb3ZpbmNlOiBuZXcgRm9ybUNvbnRyb2woJycpLFxuICAgICAgICBwb3N0YWxDb2RlOiBuZXcgRm9ybUNvbnRyb2woJycpLFxuICAgICAgICBjb3VudHJ5Q29kZTogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgICAgICAgcGhvbmVOdW1iZXI6IG5ldyBGb3JtQ29udHJvbCgnJyksXG4gICAgfSk7XG4gICAgbm90ZSA9ICcnO1xuICAgIHJlY2FsY3VsYXRlU2hpcHBpbmcgPSB0cnVlO1xuICAgIHByZXZpb3VzU3RhdGU6IHN0cmluZztcbiAgICBlZGl0aW5nU2hpcHBpbmdBZGRyZXNzID0gZmFsc2U7XG4gICAgZWRpdGluZ0JpbGxpbmdBZGRyZXNzID0gZmFsc2U7XG4gICAgdXBkYXRlZFNoaXBwaW5nTWV0aG9kczoge1xuICAgICAgICBbXG4gICAgICAgICAgICBzaGlwcGluZ0xpbmVJZDogc3RyaW5nXG4gICAgICAgIF06IERyYWZ0T3JkZXJFbGlnaWJsZVNoaXBwaW5nTWV0aG9kc1F1ZXJ5WydlbGlnaWJsZVNoaXBwaW5nTWV0aG9kc0ZvckRyYWZ0T3JkZXInXVtudW1iZXJdO1xuICAgIH0gPSB7fTtcbiAgICBwcml2YXRlIGFkZGVkVmFyaWFudHMgPSBuZXcgTWFwPHN0cmluZywgUHJvZHVjdFNlbGVjdG9ySXRlbT4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgb3JkZXJUcmFuc2l0aW9uU2VydmljZTogT3JkZXJUcmFuc2l0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdCgpO1xuICAgICAgICB0aGlzLmFkZHJlc3NDdXN0b21GaWVsZHMgPSB0aGlzLmdldEN1c3RvbUZpZWxkQ29uZmlnKCdBZGRyZXNzJyk7XG4gICAgICAgIHRoaXMubW9kaWZ5T3JkZXJJbnB1dC5vcmRlcklkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2lkJykgYXMgc3RyaW5nO1xuICAgICAgICB0aGlzLm9yZGVyTGluZUN1c3RvbUZpZWxkcyA9IHRoaXMuZ2V0Q3VzdG9tRmllbGRDb25maWcoJ09yZGVyTGluZScpO1xuICAgICAgICB0aGlzLmVudGl0eSQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUob3JkZXIgPT4ge1xuICAgICAgICAgICAgdGhpcy5vcmRlclNuYXBzaG90ID0gdGhpcy5jcmVhdGVPcmRlclNuYXBzaG90KG9yZGVyKTtcbiAgICAgICAgICAgIGlmIChvcmRlci5jb3Vwb25Db2Rlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvdXBvbkNvZGVzQ29udHJvbC5zZXRWYWx1ZShvcmRlci5jb3Vwb25Db2Rlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN1cmNoYXJnZUZvcm0ucmVzZXQoKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW25hbWUsIGNvbnRyb2xdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuc2hpcHBpbmdBZGRyZXNzRm9ybS5jb250cm9scykpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKG9yZGVyLnNoaXBwaW5nQWRkcmVzcz8uW25hbWVdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYWRkQWRkcmVzc0N1c3RvbUZpZWxkc0Zvcm1Hcm91cCh0aGlzLnNoaXBwaW5nQWRkcmVzc0Zvcm0sIG9yZGVyLnNoaXBwaW5nQWRkcmVzcyk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCBjb250cm9sXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLmJpbGxpbmdBZGRyZXNzRm9ybS5jb250cm9scykpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKG9yZGVyLmJpbGxpbmdBZGRyZXNzPy5bbmFtZV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5hZGRBZGRyZXNzQ3VzdG9tRmllbGRzRm9ybUdyb3VwKHRoaXMuYmlsbGluZ0FkZHJlc3NGb3JtLCBvcmRlci5iaWxsaW5nQWRkcmVzcyk7XG4gICAgICAgICAgICB0aGlzLm9yZGVyTGluZUN1c3RvbUZpZWxkc0Zvcm1BcnJheSA9IG5ldyBVbnR5cGVkRm9ybUFycmF5KFtdKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgbGluZSBvZiBvcmRlci5saW5lcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1Hcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHsgbmFtZSB9IG9mIHRoaXMub3JkZXJMaW5lQ3VzdG9tRmllbGRzKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5hZGRDb250cm9sKG5hbWUsIG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKGxpbmUgYXMgYW55KS5jdXN0b21GaWVsZHNbbmFtZV0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1vZGlmeVJvdyA9IHRoaXMubW9kaWZ5T3JkZXJJbnB1dC5hZGp1c3RPcmRlckxpbmVzLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgICAgICBsID0+IGwub3JkZXJMaW5lSWQgPT09IGxpbmUuaWQsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghbW9kaWZ5Um93KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RpZnlSb3cgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXJMaW5lSWQ6IGxpbmUuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVhbnRpdHk6IGxpbmUucXVhbnRpdHksXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RpZnlPcmRlcklucHV0LmFkanVzdE9yZGVyTGluZXMucHVzaChtb2RpZnlSb3cpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9yZGVyTGluZUN1c3RvbUZpZWxkcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmeVJvdy5jdXN0b21GaWVsZHMgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMub3JkZXJMaW5lQ3VzdG9tRmllbGRzRm9ybUFycmF5LnB1c2goZm9ybUdyb3VwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5hZGRJdGVtQ3VzdG9tRmllbGRzRm9ybUFycmF5ID0gbmV3IFVudHlwZWRGb3JtQXJyYXkoW10pO1xuICAgICAgICB0aGlzLmFkZEl0ZW1DdXN0b21GaWVsZHNGb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xuICAgICAgICBmb3IgKGNvbnN0IGN1c3RvbUZpZWxkIG9mIHRoaXMub3JkZXJMaW5lQ3VzdG9tRmllbGRzKSB7XG4gICAgICAgICAgICB0aGlzLmFkZEl0ZW1DdXN0b21GaWVsZHNGb3JtLmFkZENvbnRyb2woY3VzdG9tRmllbGQubmFtZSwgbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmF2YWlsYWJsZUNvdW50cmllcyQgPSB0aGlzLmRhdGFTZXJ2aWNlLnNldHRpbmdzXG4gICAgICAgICAgICAuZ2V0QXZhaWxhYmxlQ291bnRyaWVzKClcbiAgICAgICAgICAgIC5tYXBTaW5nbGUocmVzdWx0ID0+IHJlc3VsdC5jb3VudHJpZXMuaXRlbXMpXG4gICAgICAgICAgICAucGlwZShzaGFyZVJlcGxheSgxKSk7XG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2Uub3JkZXJcbiAgICAgICAgICAgIC5nZXRPcmRlckhpc3RvcnkodGhpcy5pZCwge1xuICAgICAgICAgICAgICAgIHRha2U6IDEsXG4gICAgICAgICAgICAgICAgc29ydDoge1xuICAgICAgICAgICAgICAgICAgICBjcmVhdGVkQXQ6IFNvcnRPcmRlci5ERVNDLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZmlsdGVyOiB7IHR5cGU6IHsgZXE6IEhpc3RvcnlFbnRyeVR5cGUuT1JERVJfU1RBVEVfVFJBTlNJVElPTiB9IH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnNpbmdsZSQuc3Vic2NyaWJlKCh7IG9yZGVyIH0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnByZXZpb3VzU3RhdGUgPSBvcmRlcj8uaGlzdG9yeS5pdGVtc1swXS5kYXRhLmZyb207XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy51aUxhbmd1YWdlJCA9IHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50XG4gICAgICAgICAgICAudWlTdGF0ZSgpXG4gICAgICAgICAgICAuc3RyZWFtJC5waXBlKG1hcCgoeyB1aVN0YXRlIH0pID0+IHVpU3RhdGUubGFuZ3VhZ2UpKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgZ2V0IGFkZGVkTGluZXMoKTogQWRkZWRMaW5lW10ge1xuICAgICAgICBjb25zdCBnZXRTaW5nbGVQcmljZVZhbHVlID0gKHByaWNlOiBQcm9kdWN0U2VsZWN0b3JJdGVtWydwcmljZSddKSA9PlxuICAgICAgICAgICAgcHJpY2UuX190eXBlbmFtZSA9PT0gJ1NpbmdsZVByaWNlJyA/IHByaWNlLnZhbHVlIDogMDtcbiAgICAgICAgcmV0dXJuICh0aGlzLm1vZGlmeU9yZGVySW5wdXQuYWRkSXRlbXMgfHwgW10pXG4gICAgICAgICAgICAubWFwKHJvdyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFyaWFudEluZm8gPSB0aGlzLmFkZGVkVmFyaWFudHMuZ2V0KHJvdy5wcm9kdWN0VmFyaWFudElkKTtcbiAgICAgICAgICAgICAgICBpZiAodmFyaWFudEluZm8pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiB0aGlzLmdldElkRm9yQWRkZWRJdGVtKHJvdyksXG4gICAgICAgICAgICAgICAgICAgICAgICBmZWF0dXJlZEFzc2V0OiB2YXJpYW50SW5mby5wcm9kdWN0QXNzZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0VmFyaWFudDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiB2YXJpYW50SW5mby5wcm9kdWN0VmFyaWFudElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHZhcmlhbnRJbmZvLnByb2R1Y3RWYXJpYW50TmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBza3U6IHZhcmlhbnRJbmZvLnNrdSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB1bml0UHJpY2U6IGdldFNpbmdsZVByaWNlVmFsdWUodmFyaWFudEluZm8ucHJpY2UpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdW5pdFByaWNlV2l0aFRheDogZ2V0U2luZ2xlUHJpY2VWYWx1ZSh2YXJpYW50SW5mby5wcmljZVdpdGhUYXgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcXVhbnRpdHk6IHJvdy5xdWFudGl0eSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmZpbHRlcihub3ROdWxsT3JVbmRlZmluZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SWRGb3JBZGRlZEl0ZW0ocm93OiBNb2RpZnlPcmRlckRhdGFbJ2FkZEl0ZW1zJ11bbnVtYmVyXSkge1xuICAgICAgICByZXR1cm4gYGFkZGVkLSR7cm93LnByb2R1Y3RWYXJpYW50SWR9LSR7SlNPTi5zdHJpbmdpZnkocm93LmN1c3RvbUZpZWxkcyB8fCB7fSl9YDtcbiAgICB9XG5cbiAgICB0cmFuc2l0aW9uVG9QcmlvclN0YXRlKG9yZGVyOiBPcmRlckRldGFpbEZyYWdtZW50KSB7XG4gICAgICAgIHRoaXMub3JkZXJUcmFuc2l0aW9uU2VydmljZVxuICAgICAgICAgICAgLnRyYW5zaXRpb25Ub1ByZU1vZGlmeWluZ1N0YXRlKG9yZGVyLmlkLCBvcmRlci5uZXh0U3RhdGVzKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLi4nXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaGFzTW9kaWZpY2F0aW9ucygpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgeyBhZGRJdGVtcywgYWRqdXN0T3JkZXJMaW5lcywgc3VyY2hhcmdlcyB9ID0gdGhpcy5tb2RpZnlPcmRlcklucHV0O1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgISFhZGRJdGVtcz8ubGVuZ3RoIHx8XG4gICAgICAgICAgICAhIXN1cmNoYXJnZXM/Lmxlbmd0aCB8fFxuICAgICAgICAgICAgISFhZGp1c3RPcmRlckxpbmVzPy5sZW5ndGggfHxcbiAgICAgICAgICAgICh0aGlzLnNoaXBwaW5nQWRkcmVzc0Zvcm0uZGlydHkgJiYgdGhpcy5zaGlwcGluZ0FkZHJlc3NGb3JtLnZhbGlkKSB8fFxuICAgICAgICAgICAgKHRoaXMuYmlsbGluZ0FkZHJlc3NGb3JtLmRpcnR5ICYmIHRoaXMuYmlsbGluZ0FkZHJlc3NGb3JtLnZhbGlkKSB8fFxuICAgICAgICAgICAgdGhpcy5jb3Vwb25Db2Rlc0NvbnRyb2wuZGlydHkgfHxcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHRoaXMudXBkYXRlZFNoaXBwaW5nTWV0aG9kcykubGVuZ3RoID4gMFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlzTGluZU1vZGlmaWVkKGxpbmU6IE9yZGVyRGV0YWlsRnJhZ21lbnRbJ2xpbmVzJ11bbnVtYmVyXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLm1vZGlmeU9yZGVySW5wdXQuYWRqdXN0T3JkZXJMaW5lcz8uZmluZChcbiAgICAgICAgICAgIGwgPT4gbC5vcmRlckxpbmVJZCA9PT0gbGluZS5pZCAmJiBsLnF1YW50aXR5ICE9PSBsaW5lLnF1YW50aXR5LFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldEluaXRpYWxMaW5lUXVhbnRpdHkobGluZUlkOiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBhZGp1c3RlZExpbmUgPSB0aGlzLm1vZGlmeU9yZGVySW5wdXQuYWRqdXN0T3JkZXJMaW5lcz8uZmluZChsID0+IGwub3JkZXJMaW5lSWQgPT09IGxpbmVJZCk7XG4gICAgICAgIGlmIChhZGp1c3RlZExpbmUpIHtcbiAgICAgICAgICAgIHJldHVybiBhZGp1c3RlZExpbmUucXVhbnRpdHk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWRkZWRMaW5lID0gdGhpcy5tb2RpZnlPcmRlcklucHV0LmFkZEl0ZW1zPy5maW5kKGwgPT4gdGhpcy5nZXRJZEZvckFkZGVkSXRlbShsKSA9PT0gbGluZUlkKTtcbiAgICAgICAgaWYgKGFkZGVkTGluZSkge1xuICAgICAgICAgICAgcmV0dXJuIGFkZGVkTGluZS5xdWFudGl0eSA/PyAxO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxpbmUgPSB0aGlzLm9yZGVyU25hcHNob3QubGluZXMuZmluZChsID0+IGwuaWQgPT09IGxpbmVJZCk7XG4gICAgICAgIHJldHVybiBsaW5lID8gbGluZS5xdWFudGl0eSA6IDE7XG4gICAgfVxuXG4gICAgdXBkYXRlTGluZVF1YW50aXR5KGxpbmU6IE9yZGVyRGV0YWlsRnJhZ21lbnRbJ2xpbmVzJ11bbnVtYmVyXSB8IEFkZGVkTGluZSwgcXVhbnRpdHk6IHN0cmluZykge1xuICAgICAgICBjb25zdCB7IGFkanVzdE9yZGVyTGluZXMgfSA9IHRoaXMubW9kaWZ5T3JkZXJJbnB1dDtcbiAgICAgICAgaWYgKHRoaXMuaXNBZGRlZExpbmUobGluZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHJvdyA9IHRoaXMubW9kaWZ5T3JkZXJJbnB1dC5hZGRJdGVtcz8uZmluZChcbiAgICAgICAgICAgICAgICBsID0+IGwucHJvZHVjdFZhcmlhbnRJZCA9PT0gbGluZS5wcm9kdWN0VmFyaWFudC5pZCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAocm93KSB7XG4gICAgICAgICAgICAgICAgcm93LnF1YW50aXR5ID0gK3F1YW50aXR5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHJvdyA9IGFkanVzdE9yZGVyTGluZXM/LmZpbmQobCA9PiBsLm9yZGVyTGluZUlkID09PSBsaW5lLmlkKTtcbiAgICAgICAgICAgIGlmIChyb3cgJiYgK3F1YW50aXR5ID09PSBsaW5lLnF1YW50aXR5KSB7XG4gICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSBtb2RpZmljYXRpb24gaWYgdGhlIHF1YW50aXR5IGlzIHRoZSBzYW1lIGFzXG4gICAgICAgICAgICAgICAgLy8gdGhlIG9yaWdpbmFsIG9yZGVyXG4gICAgICAgICAgICAgICAgYWRqdXN0T3JkZXJMaW5lcz8uc3BsaWNlKGFkanVzdE9yZGVyTGluZXM/LmluZGV4T2Yocm93KSwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXJvdykge1xuICAgICAgICAgICAgICAgIHJvdyA9IHsgb3JkZXJMaW5lSWQ6IGxpbmUuaWQsIHF1YW50aXR5OiArcXVhbnRpdHkgfTtcbiAgICAgICAgICAgICAgICBhZGp1c3RPcmRlckxpbmVzPy5wdXNoKHJvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByb3cucXVhbnRpdHkgPSArcXVhbnRpdHk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc0FkZGVkTGluZShsaW5lOiBPcmRlckRldGFpbEZyYWdtZW50WydsaW5lcyddW251bWJlcl0gfCBBZGRlZExpbmUpOiBsaW5lIGlzIEFkZGVkTGluZSB7XG4gICAgICAgIHJldHVybiAobGluZSBhcyBBZGRlZExpbmUpLmlkLnN0YXJ0c1dpdGgoJ2FkZGVkLScpO1xuICAgIH1cblxuICAgIHVwZGF0ZUFkZGVkSXRlbVF1YW50aXR5KGl0ZW06IEFkZGVkTGluZSwgcXVhbnRpdHk6IHN0cmluZykge1xuICAgICAgICBjb25zdCByb3cgPSB0aGlzLm1vZGlmeU9yZGVySW5wdXQuYWRkSXRlbXM/LmZpbmQobCA9PiBsLnByb2R1Y3RWYXJpYW50SWQgPT09IGl0ZW0ucHJvZHVjdFZhcmlhbnQuaWQpO1xuICAgICAgICBpZiAocm93KSB7XG4gICAgICAgICAgICByb3cucXVhbnRpdHkgPSArcXVhbnRpdHk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0cmFja0J5UHJvZHVjdFZhcmlhbnRJZChpbmRleDogbnVtYmVyLCBpdGVtOiBBZGRlZExpbmUpIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0ucHJvZHVjdFZhcmlhbnQuaWQ7XG4gICAgfVxuXG4gICAgZ2V0U2VsZWN0ZWRJdGVtUHJpY2UocmVzdWx0OiBQcm9kdWN0U2VsZWN0b3JJdGVtIHwgdW5kZWZpbmVkKTogbnVtYmVyIHtcbiAgICAgICAgc3dpdGNoIChyZXN1bHQ/LnByaWNlV2l0aFRheC5fX3R5cGVuYW1lKSB7XG4gICAgICAgICAgICBjYXNlICdTaW5nbGVQcmljZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5wcmljZVdpdGhUYXgudmFsdWU7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWRkSXRlbVRvT3JkZXIocmVzdWx0OiBQcm9kdWN0U2VsZWN0b3JJdGVtIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VzdG9tRmllbGRzID0gdGhpcy5vcmRlckxpbmVDdXN0b21GaWVsZHMubGVuZ3RoXG4gICAgICAgICAgICA/IHRoaXMuYWRkSXRlbUN1c3RvbUZpZWxkc0Zvcm0udmFsdWVcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICBsZXQgcm93ID0gdGhpcy5tb2RpZnlPcmRlcklucHV0LmFkZEl0ZW1zPy5maW5kKGwgPT5cbiAgICAgICAgICAgIHRoaXMuaXNNYXRjaGluZ0FkZEl0ZW1Sb3cobCwgcmVzdWx0LCBjdXN0b21GaWVsZHMpLFxuICAgICAgICApO1xuICAgICAgICBpZiAoIXJvdykge1xuICAgICAgICAgICAgcm93ID0geyBwcm9kdWN0VmFyaWFudElkOiByZXN1bHQucHJvZHVjdFZhcmlhbnRJZCwgcXVhbnRpdHk6IDEgfTtcbiAgICAgICAgICAgIGlmIChjdXN0b21GaWVsZHMpIHtcbiAgICAgICAgICAgICAgICByb3cuY3VzdG9tRmllbGRzID0gY3VzdG9tRmllbGRzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5tb2RpZnlPcmRlcklucHV0LmFkZEl0ZW1zPy5wdXNoKHJvdyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByb3cucXVhbnRpdHkrKztcbiAgICAgICAgfVxuICAgICAgICBpZiAoY3VzdG9tRmllbGRzKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhjdXN0b21GaWVsZHMpKSB7XG4gICAgICAgICAgICAgICAgZm9ybUdyb3VwLmFkZENvbnRyb2woa2V5LCBuZXcgVW50eXBlZEZvcm1Db250cm9sKHZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmFkZEl0ZW1DdXN0b21GaWVsZHNGb3JtQXJyYXkucHVzaChmb3JtR3JvdXApO1xuICAgICAgICAgICAgZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocm93KSB7XG4gICAgICAgICAgICAgICAgICAgIHJvdy5jdXN0b21GaWVsZHMgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFkZEl0ZW1DdXN0b21GaWVsZHNGb3JtLnJlc2V0KHt9KTtcbiAgICAgICAgdGhpcy5hZGRJdGVtU2VsZWN0ZWRWYXJpYW50ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmFkZGVkVmFyaWFudHMuc2V0KHJlc3VsdC5wcm9kdWN0VmFyaWFudElkLCByZXN1bHQpO1xuICAgIH1cblxuICAgIGdldFNoaXBwaW5nTGluZURldGFpbHMoc2hpcHBpbmdMaW5lOiBPcmRlckRldGFpbEZyYWdtZW50WydzaGlwcGluZ0xpbmVzJ11bbnVtYmVyXSk6IHtcbiAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICBwcmljZTogbnVtYmVyO1xuICAgIH0ge1xuICAgICAgICBjb25zdCB1cGRhdGVkTWV0aG9kID0gdGhpcy51cGRhdGVkU2hpcHBpbmdNZXRob2RzW3NoaXBwaW5nTGluZS5pZF07XG4gICAgICAgIGlmICh1cGRhdGVkTWV0aG9kKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG5hbWU6IHVwZGF0ZWRNZXRob2QubmFtZSB8fCB1cGRhdGVkTWV0aG9kLmNvZGUsXG4gICAgICAgICAgICAgICAgcHJpY2U6IHVwZGF0ZWRNZXRob2QucHJpY2VXaXRoVGF4LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbmFtZTogc2hpcHBpbmdMaW5lLnNoaXBwaW5nTWV0aG9kLm5hbWUgfHwgc2hpcHBpbmdMaW5lLnNoaXBwaW5nTWV0aG9kLmNvZGUsXG4gICAgICAgICAgICAgICAgcHJpY2U6IHNoaXBwaW5nTGluZS5kaXNjb3VudGVkUHJpY2VXaXRoVGF4LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldFNoaXBwaW5nTWV0aG9kKHNoaXBwaW5nTGluZUlkOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgY3VycmVudFNoaXBwaW5nTWV0aG9kID1cbiAgICAgICAgICAgIHRoaXMudXBkYXRlZFNoaXBwaW5nTWV0aG9kc1tzaGlwcGluZ0xpbmVJZF0gPz9cbiAgICAgICAgICAgIHRoaXMuZW50aXR5Py5zaGlwcGluZ0xpbmVzLmZpbmQobCA9PiBsLmlkID09PSBzaGlwcGluZ0xpbmVJZCk/LnNoaXBwaW5nTWV0aG9kO1xuICAgICAgICBpZiAoIWN1cnJlbnRTaGlwcGluZ01ldGhvZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2Uub3JkZXJcbiAgICAgICAgICAgIC5nZXREcmFmdE9yZGVyRWxpZ2libGVTaGlwcGluZ01ldGhvZHModGhpcy5pZClcbiAgICAgICAgICAgIC5tYXBTaW5nbGUoKHsgZWxpZ2libGVTaGlwcGluZ01ldGhvZHNGb3JEcmFmdE9yZGVyIH0pID0+IGVsaWdpYmxlU2hpcHBpbmdNZXRob2RzRm9yRHJhZnRPcmRlcilcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChtZXRob2RzID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlXG4gICAgICAgICAgICAgICAgICAgICAgICAuZnJvbUNvbXBvbmVudChTZWxlY3RTaGlwcGluZ01ldGhvZERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2Fsczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGlnaWJsZVNoaXBwaW5nTWV0aG9kczogbWV0aG9kcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lDb2RlOiB0aGlzLmVudGl0eT8uY3VycmVuY3lDb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U2VsZWN0aW9uSWQ6IGN1cnJlbnRTaGlwcGluZ01ldGhvZC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcChyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWV0aG9kcy5maW5kKG1ldGhvZCA9PiBtZXRob2QuaWQgPT09IHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlZFNoaXBwaW5nTWV0aG9kc1tzaGlwcGluZ0xpbmVJZF0gPSByZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc01hdGNoaW5nQWRkSXRlbVJvdyhcbiAgICAgICAgcm93OiBNb2RpZnlPcmRlckRhdGFbJ2FkZEl0ZW1zJ11bbnVtYmVyXSxcbiAgICAgICAgcmVzdWx0OiBQcm9kdWN0U2VsZWN0b3JJdGVtLFxuICAgICAgICBjdXN0b21GaWVsZHM6IGFueSxcbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHJvdy5wcm9kdWN0VmFyaWFudElkID09PSByZXN1bHQucHJvZHVjdFZhcmlhbnRJZCAmJlxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkocm93LmN1c3RvbUZpZWxkcykgPT09IEpTT04uc3RyaW5naWZ5KGN1c3RvbUZpZWxkcylcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZW1vdmVBZGRlZEl0ZW0oaWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLm1vZGlmeU9yZGVySW5wdXQuYWRkSXRlbXMgPSB0aGlzLm1vZGlmeU9yZGVySW5wdXQuYWRkSXRlbXM/LmZpbHRlcihsID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1JZCA9IHRoaXMuZ2V0SWRGb3JBZGRlZEl0ZW0obCk7XG4gICAgICAgICAgICByZXR1cm4gaXRlbUlkICE9PSBpZDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0U3VyY2hhcmdlUHJpY2VzKHN1cmNoYXJnZTogU3VyY2hhcmdlSW5wdXQpIHtcbiAgICAgICAgY29uc3QgcHJpY2VXaXRoVGF4ID0gc3VyY2hhcmdlLnByaWNlSW5jbHVkZXNUYXhcbiAgICAgICAgICAgID8gc3VyY2hhcmdlLnByaWNlXG4gICAgICAgICAgICA6IE1hdGgucm91bmQoc3VyY2hhcmdlLnByaWNlICogKCgxMDAgKyAoc3VyY2hhcmdlLnRheFJhdGUgfHwgMCkpIC8gMTAwKSk7XG4gICAgICAgIGNvbnN0IHByaWNlID0gc3VyY2hhcmdlLnByaWNlSW5jbHVkZXNUYXhcbiAgICAgICAgICAgID8gTWF0aC5yb3VuZChzdXJjaGFyZ2UucHJpY2UgLyAoKDEwMCArIChzdXJjaGFyZ2UudGF4UmF0ZSB8fCAwKSkgLyAxMDApKVxuICAgICAgICAgICAgOiBzdXJjaGFyZ2UucHJpY2U7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcmljZSxcbiAgICAgICAgICAgIHByaWNlV2l0aFRheCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBhZGRTdXJjaGFyZ2UodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLm1vZGlmeU9yZGVySW5wdXQuc3VyY2hhcmdlcz8ucHVzaCh2YWx1ZSk7XG4gICAgICAgIHRoaXMuc3VyY2hhcmdlRm9ybS5yZXNldCh7XG4gICAgICAgICAgICBwcmljZTogMCxcbiAgICAgICAgICAgIHByaWNlSW5jbHVkZXNUYXg6IHRydWUsXG4gICAgICAgICAgICB0YXhSYXRlOiAwLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZW1vdmVTdXJjaGFyZ2UoaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLm1vZGlmeU9yZGVySW5wdXQuc3VyY2hhcmdlcz8uc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG5cbiAgICBwcmV2aWV3QW5kTW9kaWZ5KG9yZGVyOiBPcmRlckRldGFpbEZyYWdtZW50KSB7XG4gICAgICAgIGNvbnN0IG1vZGlmeU9yZGVySW5wdXQ6IE1vZGlmeU9yZGVyRGF0YSA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMubW9kaWZ5T3JkZXJJbnB1dCxcbiAgICAgICAgICAgIGFkanVzdE9yZGVyTGluZXM6IHRoaXMubW9kaWZ5T3JkZXJJbnB1dC5hZGp1c3RPcmRlckxpbmVzLm1hcChsaW5lID0+XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtUmVsYXRpb25DdXN0b21GaWVsZElucHV0cyhzaW1wbGVEZWVwQ2xvbmUobGluZSksIHRoaXMub3JkZXJMaW5lQ3VzdG9tRmllbGRzKSxcbiAgICAgICAgICAgICksXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGlucHV0OiBNb2RpZnlPcmRlcklucHV0ID0ge1xuICAgICAgICAgICAgLi4ubW9kaWZ5T3JkZXJJbnB1dCxcbiAgICAgICAgICAgIC4uLih0aGlzLmJpbGxpbmdBZGRyZXNzRm9ybS5kaXJ0eSA/IHsgdXBkYXRlQmlsbGluZ0FkZHJlc3M6IHRoaXMuYmlsbGluZ0FkZHJlc3NGb3JtLnZhbHVlIH0gOiB7fSksXG4gICAgICAgICAgICAuLi4odGhpcy5zaGlwcGluZ0FkZHJlc3NGb3JtLmRpcnR5XG4gICAgICAgICAgICAgICAgPyB7IHVwZGF0ZVNoaXBwaW5nQWRkcmVzczogdGhpcy5zaGlwcGluZ0FkZHJlc3NGb3JtLnZhbHVlIH1cbiAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgIGRyeVJ1bjogdHJ1ZSxcbiAgICAgICAgICAgIGNvdXBvbkNvZGVzOiB0aGlzLmNvdXBvbkNvZGVzQ29udHJvbC5kaXJ0eSA/IHRoaXMuY291cG9uQ29kZXNDb250cm9sLnZhbHVlIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgbm90ZTogdGhpcy5ub3RlID8/ICcnLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIHJlY2FsY3VsYXRlU2hpcHBpbmc6IHRoaXMucmVjYWxjdWxhdGVTaGlwcGluZyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIGlmIChPYmplY3QuZW50cmllcyh0aGlzLnVwZGF0ZWRTaGlwcGluZ01ldGhvZHMpLmxlbmd0aCkge1xuICAgICAgICAgICAgaW5wdXQuc2hpcHBpbmdNZXRob2RJZHMgPSBvcmRlci5zaGlwcGluZ0xpbmVzLm1hcChsID0+XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVkU2hpcHBpbmdNZXRob2RzW2wuaWRdXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy51cGRhdGVkU2hpcHBpbmdNZXRob2RzW2wuaWRdLmlkXG4gICAgICAgICAgICAgICAgICAgIDogbC5zaGlwcGluZ01ldGhvZC5pZCxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5vcmRlclxuICAgICAgICAgICAgLm1vZGlmeU9yZGVyKGlucHV0KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCh7IG1vZGlmeU9yZGVyIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChtb2RpZnlPcmRlci5fX3R5cGVuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdPcmRlcic6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubW9kYWxTZXJ2aWNlLmZyb21Db21wb25lbnQoT3JkZXJFZGl0c1ByZXZpZXdEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogJ3hsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyOiBtb2RpZnlPcmRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyU25hcHNob3Q6IHRoaXMub3JkZXJTbmFwc2hvdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyTGluZUN1c3RvbUZpZWxkczogdGhpcy5vcmRlckxpbmVDdXN0b21GaWVsZHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZnlPcmRlcklucHV0OiBpbnB1dCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGVkTGluZXM6IHRoaXMuYWRkZWRMaW5lcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaXBwaW5nQWRkcmVzc0Zvcm06IHRoaXMuc2hpcHBpbmdBZGRyZXNzRm9ybSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbGxpbmdBZGRyZXNzRm9ybTogdGhpcy5iaWxsaW5nQWRkcmVzc0Zvcm0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3Vwb25Db2Rlc0NvbnRyb2w6IHRoaXMuY291cG9uQ29kZXNDb250cm9sLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlZFNoaXBwaW5nTWV0aG9kczogdGhpcy51cGRhdGVkU2hpcHBpbmdNZXRob2RzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnSW5zdWZmaWNpZW50U3RvY2tFcnJvcic6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdOZWdhdGl2ZVF1YW50aXR5RXJyb3InOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnTm9DaGFuZ2VzU3BlY2lmaWVkRXJyb3InOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnT3JkZXJMaW1pdEVycm9yJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ09yZGVyTW9kaWZpY2F0aW9uU3RhdGVFcnJvcic6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdQYXltZW50TWV0aG9kTWlzc2luZ0Vycm9yJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ1JlZnVuZFBheW1lbnRJZE1pc3NpbmdFcnJvcic6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdDb3Vwb25Db2RlTGltaXRFcnJvcic6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdDb3Vwb25Db2RlRXhwaXJlZEVycm9yJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0luZWxpZ2libGVTaGlwcGluZ01ldGhvZEVycm9yJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0NvdXBvbkNvZGVJbnZhbGlkRXJyb3InOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKG1vZGlmeU9yZGVyLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihmYWxzZSBhcyBjb25zdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIG51bGw6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHVuZGVmaW5lZDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UgYXMgY29uc3QpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnROZXZlcihtb2RpZnlPcmRlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQgfHwgcmVzdWx0LnJlc3VsdCA9PT0gT3JkZXJFZGl0UmVzdWx0VHlwZS5DYW5jZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlLWZldGNoIHNvIHRoYXQgdGhlIHByZXZpZXcgdmFsdWVzIGdldCBvdmVyd3JpdHRlbiBpbiB0aGUgY2FjaGUuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5vcmRlci5nZXRPcmRlcih0aGlzLmlkKS5tYXBTaW5nbGUoKCkgPT4gZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG8gdGhlIG1vZGlmaWNhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2V0UnVuSW5wdXQgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uaW5wdXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJ5UnVuOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdCA9PT0gT3JkZXJFZGl0UmVzdWx0VHlwZS5SZWZ1bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZXRSdW5JbnB1dC5yZWZ1bmRzID0gcmVzdWx0LnJlZnVuZHM7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5vcmRlci5tb2RpZnlPcmRlcih3ZXRSdW5JbnB1dCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHsgbW9kaWZ5T3JkZXIgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobW9kaWZ5T3JkZXIuX190eXBlbmFtZSA9PT0gJ09yZGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJpY2VEZWx0YSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZ5T3JkZXIudG90YWxXaXRoVGF4IC0gdGhpcy5vcmRlclNuYXBzaG90LnRvdGFsV2l0aFRheDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHRTdGF0ZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCA8IHByaWNlRGVsdGEgPyAnQXJyYW5naW5nQWRkaXRpb25hbFBheW1lbnQnIDogdGhpcy5wcmV2aW91c1N0YXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5vcmRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50cmFuc2l0aW9uVG9TdGF0ZShvcmRlci5pZCwgbmV4dFN0YXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKG1hcFRvKHRydWUpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcigobW9kaWZ5T3JkZXIgYXMgRXJyb3JSZXN1bHQpLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4uLyddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRBZGRyZXNzQ3VzdG9tRmllbGRzRm9ybUdyb3VwKFxuICAgICAgICBwYXJlbnRGb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXAsXG4gICAgICAgIGFkZHJlc3M/OiBPcmRlckFkZHJlc3NGcmFnbWVudCB8IG51bGwsXG4gICAgKSB7XG4gICAgICAgIGlmIChhZGRyZXNzICYmIHRoaXMuYWRkcmVzc0N1c3RvbUZpZWxkcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGFkZHJlc3NDdXN0b21GaWVsZHNGb3JtR3JvdXAgPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGN1c3RvbUZpZWxkRGVmIG9mIHRoaXMuYWRkcmVzc0N1c3RvbUZpZWxkcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBjdXN0b21GaWVsZERlZi5uYW1lO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gKGFkZHJlc3MgYXMgYW55KS5jdXN0b21GaWVsZHM/LltuYW1lXTtcbiAgICAgICAgICAgICAgICBhZGRyZXNzQ3VzdG9tRmllbGRzRm9ybUdyb3VwLmFkZENvbnRyb2wobmFtZSwgbmV3IFVudHlwZWRGb3JtQ29udHJvbCh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGFyZW50Rm9ybUdyb3VwLmFkZENvbnRyb2woJ2N1c3RvbUZpZWxkcycsIGFkZHJlc3NDdXN0b21GaWVsZHNGb3JtR3JvdXApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVPcmRlclNuYXBzaG90KG9yZGVyOiBPcmRlckRldGFpbEZyYWdtZW50KTogT3JkZXJTbmFwc2hvdCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0b3RhbFdpdGhUYXg6IG9yZGVyLnRvdGFsV2l0aFRheCxcbiAgICAgICAgICAgIGN1cnJlbmN5Q29kZTogb3JkZXIuY3VycmVuY3lDb2RlLFxuICAgICAgICAgICAgY291cG9uQ29kZXM6IG9yZGVyLmNvdXBvbkNvZGVzLFxuICAgICAgICAgICAgbGluZXM6IFsuLi5vcmRlci5saW5lc10ubWFwKGxpbmUgPT4gKHsgLi4ubGluZSB9KSksXG4gICAgICAgICAgICBzaGlwcGluZ0xpbmVzOiBbLi4ub3JkZXIuc2hpcHBpbmdMaW5lc10ubWFwKGxpbmUgPT4gKHsgLi4ubGluZSB9KSksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldEZvcm1WYWx1ZXMoZW50aXR5OiBPcmRlckRldGFpbEZyYWdtZW50LCBsYW5ndWFnZUNvZGU6IExhbmd1YWdlQ29kZSk6IHZvaWQge1xuICAgICAgICAvKiBub3QgdXNlZCAqL1xuICAgIH1cbn1cbiIsIjx2ZHItcGFnZS1ibG9jaz5cclxuICAgIDx2ZHItYWN0aW9uLWJhciAqbmdJZj1cImVudGl0eSQgfCBhc3luYyBhcyBvcmRlclwiPlxyXG4gICAgICAgIDx2ZHItYWItbGVmdD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggY2xyLWFsaWduLWl0ZW1zLWNlbnRlclwiPjwvZGl2PlxyXG4gICAgICAgIDwvdmRyLWFiLWxlZnQ+XHJcblxyXG4gICAgICAgIDx2ZHItYWItcmlnaHQ+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJ0cmFuc2l0aW9uVG9QcmlvclN0YXRlKG9yZGVyKVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ29yZGVyLmNhbmNlbC1tb2RpZmljYXRpb24nIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvdmRyLWFiLXJpZ2h0PlxyXG4gICAgPC92ZHItYWN0aW9uLWJhcj5cclxuPC92ZHItcGFnZS1ibG9jaz5cclxuXHJcbjx2ZHItcGFnZS1kZXRhaWwtbGF5b3V0ICpuZ0lmPVwiZW50aXR5IGFzIG9yZGVyXCI+XHJcbiAgICA8dmRyLXBhZ2UtZGV0YWlsLXNpZGViYXI+XHJcbiAgICAgICAgPHZkci1jYXJkIFt0aXRsZV09XCInb3JkZXIubW9kaWZpY2F0aW9uLXN1bW1hcnknIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgIDx2ZHItb3JkZXItbW9kaWZpY2F0aW9uLXN1bW1hcnlcclxuICAgICAgICAgICAgICAgIFtvcmRlclNuYXBzaG90XT1cIm9yZGVyU25hcHNob3RcIlxyXG4gICAgICAgICAgICAgICAgW21vZGlmeU9yZGVySW5wdXRdPVwibW9kaWZ5T3JkZXJJbnB1dFwiXHJcbiAgICAgICAgICAgICAgICBbYWRkZWRMaW5lc109XCJhZGRlZExpbmVzXCJcclxuICAgICAgICAgICAgICAgIFtzaGlwcGluZ0FkZHJlc3NGb3JtXT1cInNoaXBwaW5nQWRkcmVzc0Zvcm1cIlxyXG4gICAgICAgICAgICAgICAgW2JpbGxpbmdBZGRyZXNzRm9ybV09XCJiaWxsaW5nQWRkcmVzc0Zvcm1cIlxyXG4gICAgICAgICAgICAgICAgW2NvdXBvbkNvZGVzQ29udHJvbF09XCJjb3Vwb25Db2Rlc0NvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgW3VwZGF0ZWRTaGlwcGluZ01ldGhvZHNdPVwidXBkYXRlZFNoaXBwaW5nTWV0aG9kc1wiXHJcbiAgICAgICAgICAgID48L3Zkci1vcmRlci1tb2RpZmljYXRpb24tc3VtbWFyeT5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhaGFzTW9kaWZpY2F0aW9ucygpXCIgY2xhc3M9XCJuby1tb2RpZmljYXRpb25zXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnb3JkZXIubm8tbW9kaWZpY2F0aW9ucy1tYWRlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdW1tYXJ5LWNvbnRyb2xzXCI+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWZvcm0tZmllbGQgW2xhYmVsXT1cIidvcmRlci5ub3RlJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm5vdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwibm90ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaGFzTW9kaWZpY2F0aW9ucygpXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgICAgIDwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInJlY2FsY3VsYXRlU2hpcHBpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWhhc01vZGlmaWNhdGlvbnMoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWwtMVwiPnt7ICdvcmRlci5tb2RpZmljYXRpb24tcmVjYWxjdWxhdGUtc2hpcHBpbmcnIHwgdHJhbnNsYXRlIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG10LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaGFzTW9kaWZpY2F0aW9ucygpXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicHJldmlld0FuZE1vZGlmeShvcmRlcilcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci5wcmV2aWV3LWNoYW5nZXMnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC92ZHItY2FyZD5cclxuICAgICAgICA8dmRyLWNhcmQgW3RpdGxlXT1cIidvcmRlci5zZXQtY291cG9uLWNvZGVzJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICA8dmRyLWNvdXBvbi1jb2RlLXNlbGVjdG9yIFtjb250cm9sXT1cImNvdXBvbkNvZGVzQ29udHJvbFwiPjwvdmRyLWNvdXBvbi1jb2RlLXNlbGVjdG9yPlxyXG4gICAgICAgIDwvdmRyLWNhcmQ+XHJcbiAgICAgICAgPHZkci1jYXJkIFt0aXRsZV09XCInb3JkZXIuc2hpcHBpbmctYWRkcmVzcycgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHZkckNhcmRDb250cm9scz5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbi1zbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidvcmRlci5lZGl0LXNoaXBwaW5nLWFkZHJlc3MnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdGluZ1NoaXBwaW5nQWRkcmVzcyA9ICFlZGl0aW5nU2hpcHBpbmdBZGRyZXNzXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJlZGl0XCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8dmRyLWZvcm1hdHRlZC1hZGRyZXNzXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFlZGl0aW5nU2hpcHBpbmdBZGRyZXNzXCJcclxuICAgICAgICAgICAgICAgIFthZGRyZXNzXT1cInNoaXBwaW5nQWRkcmVzc0Zvcm0udmFsdWVcIlxyXG4gICAgICAgICAgICA+PC92ZHItZm9ybWF0dGVkLWFkZHJlc3M+XHJcbiAgICAgICAgICAgIDx2ZHItYWRkcmVzcy1mb3JtXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImVkaXRpbmdTaGlwcGluZ0FkZHJlc3NcIlxyXG4gICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJzaGlwcGluZ0FkZHJlc3NGb3JtXCJcclxuICAgICAgICAgICAgICAgIFthdmFpbGFibGVDb3VudHJpZXNdPVwiYXZhaWxhYmxlQ291bnRyaWVzJCB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgIFtjdXN0b21GaWVsZHNdPVwiYWRkcmVzc0N1c3RvbUZpZWxkc1wiXHJcbiAgICAgICAgICAgID48L3Zkci1hZGRyZXNzLWZvcm0+XHJcbiAgICAgICAgPC92ZHItY2FyZD5cclxuICAgICAgICA8dmRyLWNhcmQgW3RpdGxlXT1cIidvcmRlci5iaWxsaW5nLWFkZHJlc3MnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSB2ZHJDYXJkQ29udHJvbHM+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b24tc21hbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInb3JkZXIuZWRpdC1iaWxsaW5nLWFkZHJlc3MnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdGluZ0JpbGxpbmdBZGRyZXNzID0gIWVkaXRpbmdCaWxsaW5nQWRkcmVzc1wiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwiZWRpdFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPHZkci1mb3JtYXR0ZWQtYWRkcmVzc1xyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhZWRpdGluZ0JpbGxpbmdBZGRyZXNzXCJcclxuICAgICAgICAgICAgICAgIFthZGRyZXNzXT1cImJpbGxpbmdBZGRyZXNzRm9ybS52YWx1ZVwiXHJcbiAgICAgICAgICAgID48L3Zkci1mb3JtYXR0ZWQtYWRkcmVzcz5cclxuICAgICAgICAgICAgPHZkci1hZGRyZXNzLWZvcm1cclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZWRpdGluZ0JpbGxpbmdBZGRyZXNzXCJcclxuICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBdPVwiYmlsbGluZ0FkZHJlc3NGb3JtXCJcclxuICAgICAgICAgICAgICAgIFthdmFpbGFibGVDb3VudHJpZXNdPVwiYXZhaWxhYmxlQ291bnRyaWVzJCB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgIFtjdXN0b21GaWVsZHNdPVwiYWRkcmVzc0N1c3RvbUZpZWxkc1wiXHJcbiAgICAgICAgICAgID48L3Zkci1hZGRyZXNzLWZvcm0+XHJcbiAgICAgICAgPC92ZHItY2FyZD5cclxuICAgIDwvdmRyLXBhZ2UtZGV0YWlsLXNpZGViYXI+XHJcblxyXG4gICAgPHZkci1wYWdlLWJsb2NrPlxyXG4gICAgICAgIDx2ZHItY2FyZCBbcGFkZGluZ1hdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgPHZkci1kYXRhLXRhYmxlLTIgaWQ9XCJtb2RpZnktb3JkZXJcIiBjbGFzcz1cIm9yZGVyLXRhYmxlXCIgW2l0ZW1zXT1cIm9yZGVyLmxpbmVzLmNvbmNhdChhZGRlZExpbmVzKVwiPlxyXG4gICAgICAgICAgICAgICAgPCEtLSBIZXJlIHdlIGRlZmluZSBhbGwgdGhlIGF2YWlsYWJsZSBjb2x1bW5zIC0tPlxyXG4gICAgICAgICAgICAgICAgPHZkci1kdDItY29sdW1uIGlkPVwiaWRcIiBbaGVhZGluZ109XCInY29tbW9uLmlkJyB8IHRyYW5zbGF0ZVwiIFtoaWRkZW5CeURlZmF1bHRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtbGluZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbGluZS5pZCB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgPHZkci1kdDItY29sdW1uXHJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJjcmVhdGVkLWF0XCJcclxuICAgICAgICAgICAgICAgICAgICBbaGVhZGluZ109XCInY29tbW9uLmNyZWF0ZWQtYXQnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBbaGlkZGVuQnlEZWZhdWx0XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtbGluZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbGluZS5jcmVhdGVkQXQgfCBsb2NhbGVEYXRlIDogJ3Nob3J0JyB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgPHZkci1kdDItY29sdW1uXHJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJ1cGRhdGVkLWF0XCJcclxuICAgICAgICAgICAgICAgICAgICBbaGVhZGluZ109XCInY29tbW9uLnVwZGF0ZWQtYXQnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBbaGlkZGVuQnlEZWZhdWx0XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtbGluZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbGluZS51cGRhdGVkQXQgfCBsb2NhbGVEYXRlIDogJ3Nob3J0JyB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgPHZkci1kdDItY29sdW1uIFtoZWFkaW5nXT1cIidjb21tb24uaW1hZ2UnIHwgdHJhbnNsYXRlXCIgaWQ9XCJpbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtbGluZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlLXBsYWNlaG9sZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJsaW5lLmZlYXR1cmVkQXNzZXQgYXMgYXNzZXQ7IGVsc2UgaW1hZ2VQbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJhc3NldCB8IGFzc2V0UHJldmlldyA6ICd0aW55J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNpbWFnZVBsYWNlaG9sZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbGFjZWhvbGRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJpbWFnZVwiIHNpemU9XCI0OFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgIDx2ZHItZHQyLWNvbHVtblxyXG4gICAgICAgICAgICAgICAgICAgIGlkPVwicHJvZHVjdC1uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBbaGVhZGluZ109XCInb3JkZXIucHJvZHVjdC1uYW1lJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW29wdGlvbmFsXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWxpbmU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxpbmUucHJvZHVjdFZhcmlhbnQubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgPHZkci1kdDItY29sdW1uIGlkPVwicHJvZHVjdC1za3VcIiBbaGVhZGluZ109XCInb3JkZXIucHJvZHVjdC1za3UnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1saW5lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBsaW5lLnByb2R1Y3RWYXJpYW50LnNrdSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgPHZkci1kdDItY29sdW1uIGlkPVwidW5pdC1wcmljZVwiIFtoZWFkaW5nXT1cIidvcmRlci51bml0LXByaWNlJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtbGluZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7IGxpbmUudW5pdFByaWNlV2l0aFRheCB8IGxvY2FsZUN1cnJlbmN5IDogb3JkZXIuY3VycmVuY3lDb2RlIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmV0LXByaWNlXCIgW3RpdGxlXT1cIidvcmRlci5uZXQtcHJpY2UnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbGluZS51bml0UHJpY2UgfCBsb2NhbGVDdXJyZW5jeSA6IG9yZGVyLmN1cnJlbmN5Q29kZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgPHZkci1kdDItY29sdW1uIGlkPVwicXVhbnRpdHlcIiBbaGVhZGluZ109XCInb3JkZXIucXVhbnRpdHknIHwgdHJhbnNsYXRlXCIgW29wdGlvbmFsXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1saW5lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkcmFmdC1xdHkgbXItMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW49XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJnZXRJbml0aWFsTGluZVF1YW50aXR5KGxpbmUuaWQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJ1cGRhdGVMaW5lUXVhbnRpdHkobGluZSwgJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbi1zbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzQWRkZWRMaW5lKGxpbmUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVBZGRlZEl0ZW0obGluZS5pZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJ0cmFzaFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWxpbmUtcmVmdW5kcyBbbGluZV09XCJsaW5lXCIgW3BheW1lbnRzXT1cIm9yZGVyLnBheW1lbnRzXCI+PC92ZHItbGluZS1yZWZ1bmRzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWxpbmUtZnVsZmlsbG1lbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5lXT1cImxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsbE9yZGVyRnVsZmlsbG1lbnRzXT1cIm9yZGVyLmZ1bGZpbGxtZW50c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3JkZXJTdGF0ZV09XCJvcmRlci5zdGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3Zkci1saW5lLWZ1bGZpbGxtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgPHZkci1kdDItY29sdW1uXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGN1c3RvbUZpZWxkIG9mIG9yZGVyTGluZUN1c3RvbUZpZWxkc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImN1c3RvbUZpZWxkLm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtoZWFkaW5nXT1cImN1c3RvbUZpZWxkIHwgY3VzdG9tRmllbGRMYWJlbCA6ICh1aUxhbmd1YWdlJCB8IGFzeW5jKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2hpZGRlbkJ5RGVmYXVsdF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWxpbmU9XCJpdGVtXCIgbGV0LWluZGV4PVwiaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1jdXN0b20tZmllbGQtY29udHJvbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbXBhY3RdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW50aXR5TmFtZV09XCInT3JkZXJMaW5lJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY3VzdG9tRmllbGRdPVwiY3VzdG9tRmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2N1c3RvbUZpZWxkc0Zvcm1Hcm91cF09XCJvcmRlckxpbmVDdXN0b21GaWVsZHNGb3JtQXJyYXkuYXQoaW5kZXgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgICAgICAgICAgPC92ZHItZGF0YS10YWJsZS0yPlxyXG4gICAgICAgIDwvdmRyLWNhcmQ+XHJcbiAgICAgICAgPHZkci1jYXJkIFt0aXRsZV09XCInb3JkZXIuYWRkLWl0ZW0tdG8tb3JkZXInIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgIDx2ZHItcHJvZHVjdC12YXJpYW50LXNlbGVjdG9yIGNsYXNzPVwibWItNFwiIChwcm9kdWN0U2VsZWN0ZWQpPVwiYWRkSXRlbVNlbGVjdGVkVmFyaWFudCA9ICRldmVudFwiPlxyXG4gICAgICAgICAgICA8L3Zkci1wcm9kdWN0LXZhcmlhbnQtc2VsZWN0b3I+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhZGRJdGVtU2VsZWN0ZWRWYXJpYW50XCIgY2xhc3M9XCJmbGV4IG1iLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhZGRJdGVtU2VsZWN0ZWRWYXJpYW50LnByb2R1Y3RBc3NldCBhcyBhc3NldFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImFzc2V0IHwgYXNzZXRQcmV2aWV3IDogJ3RpbnknXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXItNCBhZGQtaXRlbS10aHVtYlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwibXItNFwiPnt7IGFkZEl0ZW1TZWxlY3RlZFZhcmlhbnQucHJvZHVjdFZhcmlhbnROYW1lIH19PC9zdHJvbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c21hbGw+e3sgYWRkSXRlbVNlbGVjdGVkVmFyaWFudC5za3UgfX08L3NtYWxsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRTZWxlY3RlZEl0ZW1QcmljZShhZGRJdGVtU2VsZWN0ZWRWYXJpYW50KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBsb2NhbGVDdXJyZW5jeSA6IG9yZGVyLmN1cnJlbmN5Q29kZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JpZFwiICpuZ0lmPVwiYWRkSXRlbVNlbGVjdGVkVmFyaWFudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjdXN0b21GaWVsZCBvZiBvcmRlckxpbmVDdXN0b21GaWVsZHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItY3VzdG9tLWZpZWxkLWNvbnRyb2xcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiIWFkZEl0ZW1TZWxlY3RlZFZhcmlhbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21GaWVsZF09XCJjdXN0b21GaWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2N1c3RvbUZpZWxkc0Zvcm1Hcm91cF09XCJhZGRJdGVtQ3VzdG9tRmllbGRzRm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5TmFtZT1cIk9yZGVyTGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbXBhY3RdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC92ZHItY3VzdG9tLWZpZWxkLWNvbnRyb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zcGFjZXJcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFkZEl0ZW1TZWxlY3RlZFZhcmlhbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFhZGRJdGVtU2VsZWN0ZWRWYXJpYW50IHx8IGFkZEl0ZW1DdXN0b21GaWVsZHNGb3JtLmludmFsaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkSXRlbVRvT3JkZXIoYWRkSXRlbVNlbGVjdGVkVmFyaWFudClcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ29yZGVyLmFkZC1pdGVtLXRvLW9yZGVyJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvdmRyLWNhcmQ+XHJcbiAgICAgICAgPHZkci1jYXJkIFt0aXRsZV09XCInb3JkZXIuc2hpcHBpbmcnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHNoaXBwaW5nTGluZSBvZiBvcmRlci5zaGlwcGluZ0xpbmVzXCIgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdldFNoaXBwaW5nTGluZURldGFpbHMoc2hpcHBpbmdMaW5lKSBhcyBkZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj57eyBkZXRhaWxzLm5hbWUgfX06PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZGV0YWlscy5wcmljZSB8IGxvY2FsZUN1cnJlbmN5IDogb3JkZXIuY3VycmVuY3lDb2RlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbi1zbWFsbFwiIChjbGljayk9XCJzZXRTaGlwcGluZ01ldGhvZChzaGlwcGluZ0xpbmUuaWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci5zZXQtc2hpcHBpbmctbWV0aG9kJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvdmRyLWNhcmQ+XHJcbiAgICAgICAgPHZkci1jYXJkIFt0aXRsZV09XCInb3JkZXIuYWRkLXN1cmNoYXJnZScgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJzdXJjaGFyZ2VGb3JtXCIgKHN1Ym1pdCk9XCJhZGRTdXJjaGFyZ2Uoc3VyY2hhcmdlRm9ybS52YWx1ZSlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyaWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWZvcm0tZmllbGQgW2xhYmVsXT1cIidjb21tb24uZGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlXCIgZm9yPVwiZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PGlucHV0IGlkPVwiZGVzY3JpcHRpb25cIiB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAvPjwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZkci1mb3JtLWZpZWxkIFtsYWJlbF09XCInb3JkZXIucHJvZHVjdC1za3UnIHwgdHJhbnNsYXRlXCIgZm9yPVwic2t1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjxpbnB1dCBpZD1cInNrdVwiIHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwic2t1XCJcclxuICAgICAgICAgICAgICAgICAgICAvPjwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZkci1mb3JtLWZpZWxkIFtsYWJlbF09XCInY29tbW9uLnByaWNlJyB8IHRyYW5zbGF0ZVwiIGZvcj1cInByaWNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItY3VycmVuY3ktaW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjdXJyZW5jeUNvZGVdPVwib3JkZXIuY3VycmVuY3lDb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwicHJpY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicHJpY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC92ZHItY3VycmVuY3ktaW5wdXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC92ZHItZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWZvcm0tZmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NhdGFsb2cucHJpY2UtaW5jbHVkZXMtdGF4LWF0J1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdHJhbnNsYXRlIDogeyByYXRlOiBzdXJjaGFyZ2VGb3JtLmdldCgndGF4UmF0ZScpPy52YWx1ZSA/PyAwIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwicHJpY2VJbmNsdWRlc1RheFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwicHJpY2VJbmNsdWRlc1RheFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xyQ2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByaWNlSW5jbHVkZXNUYXhcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+PC92ZHItZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWZvcm0tZmllbGQgW2xhYmVsXT1cIidvcmRlci50YXgtcmF0ZScgfCB0cmFuc2xhdGVcIiBmb3I9XCJ0YXhSYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItYWZmaXhlZC1pbnB1dCBzdWZmaXg9XCIlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48aW5wdXQgaWQ9XCJ0YXhSYXRlXCIgdHlwZT1cIm51bWJlclwiIG1pbj1cIjBcIiBtYXg9XCIxMDBcIiBmb3JtQ29udHJvbE5hbWU9XCJ0YXhSYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgLz48L3Zkci1hZmZpeGVkLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZkci1mb3JtLWZpZWxkIFtsYWJlbF09XCInb3JkZXIudGF4LWRlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZVwiIGZvcj1cInRheERlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjxpbnB1dCBpZD1cInRheERlc2NyaXB0aW9uXCIgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJ0YXhEZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgLz48L3Zkci1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSBtdC0yXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1cmNoYXJnZUZvcm0uaW52YWxpZCB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdXJjaGFyZ2VGb3JtLnByaXN0aW5lIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1cmNoYXJnZUZvcm0uZ2V0KCdwcmljZScpPy52YWx1ZSA9PT0gMCB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAhc3VyY2hhcmdlRm9ybS5nZXQoJ2Rlc2NyaXB0aW9uJyk/LnZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICB7eyAnb3JkZXIuYWRkLXN1cmNoYXJnZScgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgPC92ZHItY2FyZD5cclxuICAgIDwvdmRyLXBhZ2UtYmxvY2s+XHJcbjwvdmRyLXBhZ2UtZGV0YWlsLWxheW91dD5cclxuIl19
485
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvb3JkZXIvc3JjL2NvbXBvbmVudHMvb3JkZXItZWRpdG9yL29yZGVyLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL29yZGVyLWVkaXRvci9vcmRlci1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFDSCxXQUFXLEVBQ1gsU0FBUyxFQUNULGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLFVBQVUsR0FDYixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFNSCxnQkFBZ0IsRUFRaEIsU0FBUyxFQUVULGtDQUFrQyxFQUNsQyx3QkFBd0IsR0FDM0IsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBU3JGLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsZ0NBQWdDLEdBQ25DLE1BQU0sb0VBQW9FLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMEVBQTBFLENBQUM7Ozs7Ozs7Ozs7OztBQVEvSCxNQUFNLE9BQU8sb0JBQ1QsU0FBUSx3QkFBa0U7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RyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNsRCxhQUFhLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ3JFLENBQUM7SUFDTixDQUFDO0lBRVMsYUFBYSxDQUFDLE1BQTJCLEVBQUUsWUFBMEI7UUFDM0UsY0FBYztJQUNsQixDQUFDOzhHQTFoQlEsb0JBQW9CO2tHQUFwQixvQkFBb0IsK0VDcERqQywwZ2hCQW1VQTs7MkZEL1FhLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDSSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgRm9ybUNvbnRyb2wsXHJcbiAgICBGb3JtR3JvdXAsXHJcbiAgICBVbnR5cGVkRm9ybUFycmF5LFxyXG4gICAgVW50eXBlZEZvcm1Db250cm9sLFxyXG4gICAgVW50eXBlZEZvcm1Hcm91cCxcclxuICAgIFZhbGlkYXRvcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gICAgQ3VzdG9tRmllbGRDb25maWcsXHJcbiAgICBEYXRhU2VydmljZSxcclxuICAgIERyYWZ0T3JkZXJFbGlnaWJsZVNoaXBwaW5nTWV0aG9kc1F1ZXJ5LFxyXG4gICAgRXJyb3JSZXN1bHQsXHJcbiAgICBHZXRBdmFpbGFibGVDb3VudHJpZXNRdWVyeSxcclxuICAgIEhpc3RvcnlFbnRyeVR5cGUsXHJcbiAgICBMYW5ndWFnZUNvZGUsXHJcbiAgICBNb2RhbFNlcnZpY2UsXHJcbiAgICBNb2RpZnlPcmRlcklucHV0LFxyXG4gICAgTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgIE9yZGVyQWRkcmVzc0ZyYWdtZW50LFxyXG4gICAgT3JkZXJEZXRhaWxGcmFnbWVudCxcclxuICAgIE9yZGVyRGV0YWlsUXVlcnlEb2N1bWVudCxcclxuICAgIFNvcnRPcmRlcixcclxuICAgIFN1cmNoYXJnZUlucHV0LFxyXG4gICAgdHJhbnNmb3JtUmVsYXRpb25DdXN0b21GaWVsZElucHV0cyxcclxuICAgIFR5cGVkQmFzZURldGFpbENvbXBvbmVudCxcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgYXNzZXJ0TmV2ZXIsIG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLXV0aWxzJztcclxuaW1wb3J0IHsgc2ltcGxlRGVlcENsb25lIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaW1wbGUtZGVlcC1jbG9uZSc7XHJcbmltcG9ydCB7IEVNUFRZLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIG1hcFRvLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7XHJcbiAgICBBZGRlZExpbmUsXHJcbiAgICBNb2RpZnlPcmRlckRhdGEsXHJcbiAgICBPcmRlclNuYXBzaG90LFxyXG4gICAgUHJvZHVjdFNlbGVjdG9ySXRlbSxcclxufSBmcm9tICcuLi8uLi9jb21tb24vbW9kaWZ5LW9yZGVyLXR5cGVzJztcclxuXHJcbmltcG9ydCB7IE9yZGVyVHJhbnNpdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvb3JkZXItdHJhbnNpdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICAgIE9yZGVyRWRpdFJlc3VsdFR5cGUsXHJcbiAgICBPcmRlckVkaXRzUHJldmlld0RpYWxvZ0NvbXBvbmVudCxcclxufSBmcm9tICcuLi9vcmRlci1lZGl0cy1wcmV2aWV3LWRpYWxvZy9vcmRlci1lZGl0cy1wcmV2aWV3LWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWxlY3RTaGlwcGluZ01ldGhvZERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL3NlbGVjdC1zaGlwcGluZy1tZXRob2QtZGlhbG9nL3NlbGVjdC1zaGlwcGluZy1tZXRob2QtZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLW9yZGVyLWVkaXRvcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vb3JkZXItZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL29yZGVyLWVkaXRvci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPcmRlckVkaXRvckNvbXBvbmVudFxyXG4gICAgZXh0ZW5kcyBUeXBlZEJhc2VEZXRhaWxDb21wb25lbnQ8dHlwZW9mIE9yZGVyRGV0YWlsUXVlcnlEb2N1bWVudCwgJ29yZGVyJz5cclxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcclxue1xyXG4gICAgYXZhaWxhYmxlQ291bnRyaWVzJDogT2JzZXJ2YWJsZTxHZXRBdmFpbGFibGVDb3VudHJpZXNRdWVyeVsnY291bnRyaWVzJ11bJ2l0ZW1zJ10+O1xyXG4gICAgYWRkcmVzc0N1c3RvbUZpZWxkczogQ3VzdG9tRmllbGRDb25maWdbXTtcclxuICAgIHVpTGFuZ3VhZ2UkOiBPYnNlcnZhYmxlPExhbmd1YWdlQ29kZT47XHJcbiAgICBkZXRhaWxGb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xyXG4gICAgY291cG9uQ29kZXNDb250cm9sID0gbmV3IEZvcm1Db250cm9sPHN0cmluZ1tdPihbXSk7XHJcbiAgICBvcmRlckxpbmVDdXN0b21GaWVsZHNGb3JtQXJyYXk6IFVudHlwZWRGb3JtQXJyYXk7XHJcbiAgICBhZGRJdGVtQ3VzdG9tRmllbGRzRm9ybUFycmF5OiBVbnR5cGVkRm9ybUFycmF5O1xyXG4gICAgYWRkSXRlbUN1c3RvbUZpZWxkc0Zvcm06IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgICBhZGRJdGVtU2VsZWN0ZWRWYXJpYW50OiBQcm9kdWN0U2VsZWN0b3JJdGVtIHwgdW5kZWZpbmVkO1xyXG4gICAgb3JkZXJMaW5lQ3VzdG9tRmllbGRzOiBDdXN0b21GaWVsZENvbmZpZ1tdO1xyXG4gICAgb3JkZXJTbmFwc2hvdDogT3JkZXJTbmFwc2hvdDtcclxuICAgIG1vZGlmeU9yZGVySW5wdXQ6IE1vZGlmeU9yZGVyRGF0YSA9IHtcclxuICAgICAgICBkcnlSdW46IHRydWUsXHJcbiAgICAgICAgb3JkZXJJZDogJycsXHJcbiAgICAgICAgYWRkSXRlbXM6IFtdLFxyXG4gICAgICAgIGFkanVzdE9yZGVyTGluZXM6IFtdLFxyXG4gICAgICAgIHN1cmNoYXJnZXM6IFtdLFxyXG4gICAgICAgIG5vdGU6ICcnLFxyXG4gICAgICAgIHJlZnVuZHM6IFtdLFxyXG4gICAgICAgIHVwZGF0ZVNoaXBwaW5nQWRkcmVzczoge30sXHJcbiAgICAgICAgdXBkYXRlQmlsbGluZ0FkZHJlc3M6IHt9LFxyXG4gICAgfTtcclxuICAgIHN1cmNoYXJnZUZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcclxuICAgICAgICBkZXNjcmlwdGlvbjogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgxKSksXHJcbiAgICAgICAgc2t1OiBuZXcgRm9ybUNvbnRyb2woJycpLFxyXG4gICAgICAgIHByaWNlOiBuZXcgRm9ybUNvbnRyb2woMCksXHJcbiAgICAgICAgcHJpY2VJbmNsdWRlc1RheDogbmV3IEZvcm1Db250cm9sKHRydWUpLFxyXG4gICAgICAgIHRheFJhdGU6IG5ldyBGb3JtQ29udHJvbCgwKSxcclxuICAgICAgICB0YXhEZXNjcmlwdGlvbjogbmV3IEZvcm1Db250cm9sKCcnKSxcclxuICAgIH0pO1xyXG4gICAgc2hpcHBpbmdBZGRyZXNzRm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xyXG4gICAgICAgIGZ1bGxOYW1lOiBuZXcgRm9ybUNvbnRyb2woJycpLFxyXG4gICAgICAgIGNvbXBhbnk6IG5ldyBGb3JtQ29udHJvbCgnJyksXHJcbiAgICAgICAgc3RyZWV0TGluZTE6IG5ldyBGb3JtQ29udHJvbCgnJyksXHJcbiAgICAgICAgc3RyZWV0TGluZTI6IG5ldyBGb3JtQ29udHJvbCgnJyksXHJcbiAgICAgICAgY2l0eTogbmV3IEZvcm1Db250cm9sKCcnKSxcclxuICAgICAgICBwcm92aW5jZTogbmV3IEZvcm1Db250cm9sKCcnKSxcclxuICAgICAgICBwb3N0YWxDb2RlOiBuZXcgRm9ybUNvbnRyb2woJycpLFxyXG4gICAgICAgIGNvdW50cnlDb2RlOiBuZXcgRm9ybUNvbnRyb2woJycpLFxyXG4gICAgICAgIHBob25lTnVtYmVyOiBuZXcgRm9ybUNvbnRyb2woJycpLFxyXG4gICAgfSk7XHJcbiAgICBiaWxsaW5nQWRkcmVzc0Zvcm0gPSBuZXcgRm9ybUdyb3VwKHtcclxuICAgICAgICBmdWxsTmFtZTogbmV3IEZvcm1Db250cm9sKCcnKSxcclxuICAgICAgICBjb21wYW55OiBuZXcgRm9ybUNvbnRyb2woJycpLFxyXG4gICAgICAgIHN0cmVldExpbmUxOiBuZXcgRm9ybUNvbnRyb2woJycpLFxyXG4gICAgICAgIHN0cmVldExpbmUyOiBuZXcgRm9ybUNvbnRyb2woJycpLFxyXG4gICAgICAgIGNpdHk6IG5ldyBGb3JtQ29udHJvbCgnJyksXHJcbiAgICAgICAgcHJvdmluY2U6IG5ldyBGb3JtQ29udHJvbCgnJyksXHJcbiAgICAgICAgcG9zdGFsQ29kZTogbmV3IEZvcm1Db250cm9sKCcnKSxcclxuICAgICAgICBjb3VudHJ5Q29kZTogbmV3IEZvcm1Db250cm9sKCcnKSxcclxuICAgICAgICBwaG9uZU51bWJlcjogbmV3IEZvcm1Db250cm9sKCcnKSxcclxuICAgIH0pO1xyXG4gICAgbm90ZSA9ICcnO1xyXG4gICAgcmVjYWxjdWxhdGVTaGlwcGluZyA9IHRydWU7XHJcbiAgICBwcmV2aW91c1N0YXRlOiBzdHJpbmc7XHJcbiAgICBlZGl0aW5nU2hpcHBpbmdBZGRyZXNzID0gZmFsc2U7XHJcbiAgICBlZGl0aW5nQmlsbGluZ0FkZHJlc3MgPSBmYWxzZTtcclxuICAgIHVwZGF0ZWRTaGlwcGluZ01ldGhvZHM6IHtcclxuICAgICAgICBbXHJcbiAgICAgICAgICAgIHNoaXBwaW5nTGluZUlkOiBzdHJpbmdcclxuICAgICAgICBdOiBEcmFmdE9yZGVyRWxpZ2libGVTaGlwcGluZ01ldGhvZHNRdWVyeVsnZWxpZ2libGVTaGlwcGluZ01ldGhvZHNGb3JEcmFmdE9yZGVyJ11bbnVtYmVyXTtcclxuICAgIH0gPSB7fTtcclxuICAgIHByaXZhdGUgYWRkZWRWYXJpYW50cyA9IG5ldyBNYXA8c3RyaW5nLCBQcm9kdWN0U2VsZWN0b3JJdGVtPigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBvcmRlclRyYW5zaXRpb25TZXJ2aWNlOiBPcmRlclRyYW5zaXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmluaXQoKTtcclxuICAgICAgICB0aGlzLmFkZHJlc3NDdXN0b21GaWVsZHMgPSB0aGlzLmdldEN1c3RvbUZpZWxkQ29uZmlnKCdBZGRyZXNzJyk7XHJcbiAgICAgICAgdGhpcy5tb2RpZnlPcmRlcklucHV0Lm9yZGVySWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtTWFwLmdldCgnaWQnKSBhcyBzdHJpbmc7XHJcbiAgICAgICAgdGhpcy5vcmRlckxpbmVDdXN0b21GaWVsZHMgPSB0aGlzLmdldEN1c3RvbUZpZWxkQ29uZmlnKCdPcmRlckxpbmUnKTtcclxuICAgICAgICB0aGlzLmVudGl0eSQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUob3JkZXIgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9yZGVyU25hcHNob3QgPSB0aGlzLmNyZWF0ZU9yZGVyU25hcHNob3Qob3JkZXIpO1xyXG4gICAgICAgICAgICBpZiAob3JkZXIuY291cG9uQ29kZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvdXBvbkNvZGVzQ29udHJvbC5zZXRWYWx1ZShvcmRlci5jb3Vwb25Db2Rlcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zdXJjaGFyZ2VGb3JtLnJlc2V0KCk7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgW25hbWUsIGNvbnRyb2xdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuc2hpcHBpbmdBZGRyZXNzRm9ybS5jb250cm9scykpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUob3JkZXIuc2hpcHBpbmdBZGRyZXNzPy5bbmFtZV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuYWRkQWRkcmVzc0N1c3RvbUZpZWxkc0Zvcm1Hcm91cCh0aGlzLnNoaXBwaW5nQWRkcmVzc0Zvcm0sIG9yZGVyLnNoaXBwaW5nQWRkcmVzcyk7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgW25hbWUsIGNvbnRyb2xdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuYmlsbGluZ0FkZHJlc3NGb3JtLmNvbnRyb2xzKSkge1xyXG4gICAgICAgICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShvcmRlci5iaWxsaW5nQWRkcmVzcz8uW25hbWVdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmFkZEFkZHJlc3NDdXN0b21GaWVsZHNGb3JtR3JvdXAodGhpcy5iaWxsaW5nQWRkcmVzc0Zvcm0sIG9yZGVyLmJpbGxpbmdBZGRyZXNzKTtcclxuICAgICAgICAgICAgdGhpcy5vcmRlckxpbmVDdXN0b21GaWVsZHNGb3JtQXJyYXkgPSBuZXcgVW50eXBlZEZvcm1BcnJheShbXSk7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgbGluZSBvZiBvcmRlci5saW5lcykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybUdyb3VwID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB7IG5hbWUgfSBvZiB0aGlzLm9yZGVyTGluZUN1c3RvbUZpZWxkcykge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5hZGRDb250cm9sKG5hbWUsIG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKGxpbmUgYXMgYW55KS5jdXN0b21GaWVsZHNbbmFtZV0pKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGZvcm1Hcm91cC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1vZGlmeVJvdyA9IHRoaXMubW9kaWZ5T3JkZXJJbnB1dC5hZGp1c3RPcmRlckxpbmVzLmZpbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGwgPT4gbC5vcmRlckxpbmVJZCA9PT0gbGluZS5pZCxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghbW9kaWZ5Um93KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmeVJvdyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyTGluZUlkOiBsaW5lLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVhbnRpdHk6IGxpbmUucXVhbnRpdHksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW9kaWZ5T3JkZXJJbnB1dC5hZGp1c3RPcmRlckxpbmVzLnB1c2gobW9kaWZ5Um93KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3JkZXJMaW5lQ3VzdG9tRmllbGRzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RpZnlSb3cuY3VzdG9tRmllbGRzID0gdmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9yZGVyTGluZUN1c3RvbUZpZWxkc0Zvcm1BcnJheS5wdXNoKGZvcm1Hcm91cCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5hZGRJdGVtQ3VzdG9tRmllbGRzRm9ybUFycmF5ID0gbmV3IFVudHlwZWRGb3JtQXJyYXkoW10pO1xyXG4gICAgICAgIHRoaXMuYWRkSXRlbUN1c3RvbUZpZWxkc0Zvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XHJcbiAgICAgICAgZm9yIChjb25zdCBjdXN0b21GaWVsZCBvZiB0aGlzLm9yZGVyTGluZUN1c3RvbUZpZWxkcykge1xyXG4gICAgICAgICAgICB0aGlzLmFkZEl0ZW1DdXN0b21GaWVsZHNGb3JtLmFkZENvbnRyb2woY3VzdG9tRmllbGQubmFtZSwgbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hdmFpbGFibGVDb3VudHJpZXMkID0gdGhpcy5kYXRhU2VydmljZS5zZXR0aW5nc1xyXG4gICAgICAgICAgICAuZ2V0QXZhaWxhYmxlQ291bnRyaWVzKClcclxuICAgICAgICAgICAgLm1hcFNpbmdsZShyZXN1bHQgPT4gcmVzdWx0LmNvdW50cmllcy5pdGVtcylcclxuICAgICAgICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xyXG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2Uub3JkZXJcclxuICAgICAgICAgICAgLmdldE9yZGVySGlzdG9yeSh0aGlzLmlkLCB7XHJcbiAgICAgICAgICAgICAgICB0YWtlOiAxLFxyXG4gICAgICAgICAgICAgICAgc29ydDoge1xyXG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRBdDogU29ydE9yZGVyLkRFU0MsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZmlsdGVyOiB7IHR5cGU6IHsgZXE6IEhpc3RvcnlFbnRyeVR5cGUuT1JERVJfU1RBVEVfVFJBTlNJVElPTiB9IH0sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zaW5nbGUkLnN1YnNjcmliZSgoeyBvcmRlciB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByZXZpb3VzU3RhdGUgPSBvcmRlcj8uaGlzdG9yeS5pdGVtc1swXS5kYXRhLmZyb207XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMudWlMYW5ndWFnZSQgPSB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudFxyXG4gICAgICAgICAgICAudWlTdGF0ZSgpXHJcbiAgICAgICAgICAgIC5zdHJlYW0kLnBpcGUobWFwKCh7IHVpU3RhdGUgfSkgPT4gdWlTdGF0ZS5sYW5ndWFnZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBhZGRlZExpbmVzKCk6IEFkZGVkTGluZVtdIHtcclxuICAgICAgICBjb25zdCBnZXRTaW5nbGVQcmljZVZhbHVlID0gKHByaWNlOiBQcm9kdWN0U2VsZWN0b3JJdGVtWydwcmljZSddKSA9PlxyXG4gICAgICAgICAgICBwcmljZS5fX3R5cGVuYW1lID09PSAnU2luZ2xlUHJpY2UnID8gcHJpY2UudmFsdWUgOiAwO1xyXG4gICAgICAgIHJldHVybiAodGhpcy5tb2RpZnlPcmRlcklucHV0LmFkZEl0ZW1zIHx8IFtdKVxyXG4gICAgICAgICAgICAubWFwKHJvdyA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB2YXJpYW50SW5mbyA9IHRoaXMuYWRkZWRWYXJpYW50cy5nZXQocm93LnByb2R1Y3RWYXJpYW50SWQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHZhcmlhbnRJbmZvKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHRoaXMuZ2V0SWRGb3JBZGRlZEl0ZW0ocm93KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmVhdHVyZWRBc3NldDogdmFyaWFudEluZm8ucHJvZHVjdEFzc2V0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0VmFyaWFudDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHZhcmlhbnRJbmZvLnByb2R1Y3RWYXJpYW50SWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB2YXJpYW50SW5mby5wcm9kdWN0VmFyaWFudE5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBza3U6IHZhcmlhbnRJbmZvLnNrdSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdW5pdFByaWNlOiBnZXRTaW5nbGVQcmljZVZhbHVlKHZhcmlhbnRJbmZvLnByaWNlKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdW5pdFByaWNlV2l0aFRheDogZ2V0U2luZ2xlUHJpY2VWYWx1ZSh2YXJpYW50SW5mby5wcmljZVdpdGhUYXgpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWFudGl0eTogcm93LnF1YW50aXR5LFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5maWx0ZXIobm90TnVsbE9yVW5kZWZpbmVkKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldElkRm9yQWRkZWRJdGVtKHJvdzogTW9kaWZ5T3JkZXJEYXRhWydhZGRJdGVtcyddW251bWJlcl0pIHtcclxuICAgICAgICByZXR1cm4gYGFkZGVkLSR7cm93LnByb2R1Y3RWYXJpYW50SWR9LSR7SlNPTi5zdHJpbmdpZnkocm93LmN1c3RvbUZpZWxkcyB8fCB7fSl9YDtcclxuICAgIH1cclxuXHJcbiAgICB0cmFuc2l0aW9uVG9QcmlvclN0YXRlKG9yZGVyOiBPcmRlckRldGFpbEZyYWdtZW50KSB7XHJcbiAgICAgICAgdGhpcy5vcmRlclRyYW5zaXRpb25TZXJ2aWNlXHJcbiAgICAgICAgICAgIC50cmFuc2l0aW9uVG9QcmVNb2RpZnlpbmdTdGF0ZShvcmRlci5pZCwgb3JkZXIubmV4dFN0YXRlcylcclxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuLiddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGhhc01vZGlmaWNhdGlvbnMoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgeyBhZGRJdGVtcywgYWRqdXN0T3JkZXJMaW5lcywgc3VyY2hhcmdlcyB9ID0gdGhpcy5tb2RpZnlPcmRlcklucHV0O1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICEhYWRkSXRlbXM/Lmxlbmd0aCB8fFxyXG4gICAgICAgICAgICAhIXN1cmNoYXJnZXM/Lmxlbmd0aCB8fFxyXG4gICAgICAgICAgICAhIWFkanVzdE9yZGVyTGluZXM/Lmxlbmd0aCB8fFxyXG4gICAgICAgICAgICAodGhpcy5zaGlwcGluZ0FkZHJlc3NGb3JtLmRpcnR5ICYmIHRoaXMuc2hpcHBpbmdBZGRyZXNzRm9ybS52YWxpZCkgfHxcclxuICAgICAgICAgICAgKHRoaXMuYmlsbGluZ0FkZHJlc3NGb3JtLmRpcnR5ICYmIHRoaXMuYmlsbGluZ0FkZHJlc3NGb3JtLnZhbGlkKSB8fFxyXG4gICAgICAgICAgICB0aGlzLmNvdXBvbkNvZGVzQ29udHJvbC5kaXJ0eSB8fFxyXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyh0aGlzLnVwZGF0ZWRTaGlwcGluZ01ldGhvZHMpLmxlbmd0aCA+IDBcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGlzTGluZU1vZGlmaWVkKGxpbmU6IE9yZGVyRGV0YWlsRnJhZ21lbnRbJ2xpbmVzJ11bbnVtYmVyXSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhIXRoaXMubW9kaWZ5T3JkZXJJbnB1dC5hZGp1c3RPcmRlckxpbmVzPy5maW5kKFxyXG4gICAgICAgICAgICBsID0+IGwub3JkZXJMaW5lSWQgPT09IGxpbmUuaWQgJiYgbC5xdWFudGl0eSAhPT0gbGluZS5xdWFudGl0eSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEluaXRpYWxMaW5lUXVhbnRpdHkobGluZUlkOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IGFkanVzdGVkTGluZSA9IHRoaXMubW9kaWZ5T3JkZXJJbnB1dC5hZGp1c3RPcmRlckxpbmVzPy5maW5kKGwgPT4gbC5vcmRlckxpbmVJZCA9PT0gbGluZUlkKTtcclxuICAgICAgICBpZiAoYWRqdXN0ZWRMaW5lKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhZGp1c3RlZExpbmUucXVhbnRpdHk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGFkZGVkTGluZSA9IHRoaXMubW9kaWZ5T3JkZXJJbnB1dC5hZGRJdGVtcz8uZmluZChsID0+IHRoaXMuZ2V0SWRGb3JBZGRlZEl0ZW0obCkgPT09IGxpbmVJZCk7XHJcbiAgICAgICAgaWYgKGFkZGVkTGluZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gYWRkZWRMaW5lLnF1YW50aXR5ID8/IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGxpbmUgPSB0aGlzLm9yZGVyU25hcHNob3QubGluZXMuZmluZChsID0+IGwuaWQgPT09IGxpbmVJZCk7XHJcbiAgICAgICAgcmV0dXJuIGxpbmUgPyBsaW5lLnF1YW50aXR5IDogMTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVMaW5lUXVhbnRpdHkobGluZTogT3JkZXJEZXRhaWxGcmFnbWVudFsnbGluZXMnXVtudW1iZXJdIHwgQWRkZWRMaW5lLCBxdWFudGl0eTogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgeyBhZGp1c3RPcmRlckxpbmVzIH0gPSB0aGlzLm1vZGlmeU9yZGVySW5wdXQ7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNBZGRlZExpbmUobGluZSkpIHtcclxuICAgICAgICAgICAgY29uc3Qgcm93ID0gdGhpcy5tb2RpZnlPcmRlcklucHV0LmFkZEl0ZW1zPy5maW5kKFxyXG4gICAgICAgICAgICAgICAgbCA9PiBsLnByb2R1Y3RWYXJpYW50SWQgPT09IGxpbmUucHJvZHVjdFZhcmlhbnQuaWQsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGlmIChyb3cpIHtcclxuICAgICAgICAgICAgICAgIHJvdy5xdWFudGl0eSA9ICtxdWFudGl0eTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCByb3cgPSBhZGp1c3RPcmRlckxpbmVzPy5maW5kKGwgPT4gbC5vcmRlckxpbmVJZCA9PT0gbGluZS5pZCk7XHJcbiAgICAgICAgICAgIGlmIChyb3cgJiYgK3F1YW50aXR5ID09PSBsaW5lLnF1YW50aXR5KSB7XHJcbiAgICAgICAgICAgICAgICAvLyBSZW1vdmUgdGhlIG1vZGlmaWNhdGlvbiBpZiB0aGUgcXVhbnRpdHkgaXMgdGhlIHNhbWUgYXNcclxuICAgICAgICAgICAgICAgIC8vIHRoZSBvcmlnaW5hbCBvcmRlclxyXG4gICAgICAgICAgICAgICAgYWRqdXN0T3JkZXJMaW5lcz8uc3BsaWNlKGFkanVzdE9yZGVyTGluZXM/LmluZGV4T2Yocm93KSwgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCFyb3cpIHtcclxuICAgICAgICAgICAgICAgIHJvdyA9IHsgb3JkZXJMaW5lSWQ6IGxpbmUuaWQsIHF1YW50aXR5OiArcXVhbnRpdHkgfTtcclxuICAgICAgICAgICAgICAgIGFkanVzdE9yZGVyTGluZXM/LnB1c2gocm93KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByb3cucXVhbnRpdHkgPSArcXVhbnRpdHk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlzQWRkZWRMaW5lKGxpbmU6IE9yZGVyRGV0YWlsRnJhZ21lbnRbJ2xpbmVzJ11bbnVtYmVyXSB8IEFkZGVkTGluZSk6IGxpbmUgaXMgQWRkZWRMaW5lIHtcclxuICAgICAgICByZXR1cm4gKGxpbmUgYXMgQWRkZWRMaW5lKS5pZC5zdGFydHNXaXRoKCdhZGRlZC0nKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVBZGRlZEl0ZW1RdWFudGl0eShpdGVtOiBBZGRlZExpbmUsIHF1YW50aXR5OiBzdHJpbmcpIHtcclxuICAgICAgICBjb25zdCByb3cgPSB0aGlzLm1vZGlmeU9yZGVySW5wdXQuYWRkSXRlbXM/LmZpbmQobCA9PiBsLnByb2R1Y3RWYXJpYW50SWQgPT09IGl0ZW0ucHJvZHVjdFZhcmlhbnQuaWQpO1xyXG4gICAgICAgIGlmIChyb3cpIHtcclxuICAgICAgICAgICAgcm93LnF1YW50aXR5ID0gK3F1YW50aXR5O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0cmFja0J5UHJvZHVjdFZhcmlhbnRJZChpbmRleDogbnVtYmVyLCBpdGVtOiBBZGRlZExpbmUpIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5wcm9kdWN0VmFyaWFudC5pZDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTZWxlY3RlZEl0ZW1QcmljZShyZXN1bHQ6IFByb2R1Y3RTZWxlY3Rvckl0ZW0gfCB1bmRlZmluZWQpOiBudW1iZXIge1xyXG4gICAgICAgIHN3aXRjaCAocmVzdWx0Py5wcmljZVdpdGhUYXguX190eXBlbmFtZSkge1xyXG4gICAgICAgICAgICBjYXNlICdTaW5nbGVQcmljZSc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnByaWNlV2l0aFRheC52YWx1ZTtcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhZGRJdGVtVG9PcmRlcihyZXN1bHQ6IFByb2R1Y3RTZWxlY3Rvckl0ZW0gfCB1bmRlZmluZWQpIHtcclxuICAgICAgICBpZiAoIXJlc3VsdCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGN1c3RvbUZpZWxkcyA9IHRoaXMub3JkZXJMaW5lQ3VzdG9tRmllbGRzLmxlbmd0aFxyXG4gICAgICAgICAgICA/IHRoaXMuYWRkSXRlbUN1c3RvbUZpZWxkc0Zvcm0udmFsdWVcclxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgbGV0IHJvdyA9IHRoaXMubW9kaWZ5T3JkZXJJbnB1dC5hZGRJdGVtcz8uZmluZChsID0+XHJcbiAgICAgICAgICAgIHRoaXMuaXNNYXRjaGluZ0FkZEl0ZW1Sb3cobCwgcmVzdWx0LCBjdXN0b21GaWVsZHMpLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKCFyb3cpIHtcclxuICAgICAgICAgICAgcm93ID0geyBwcm9kdWN0VmFyaWFudElkOiByZXN1bHQucHJvZHVjdFZhcmlhbnRJZCwgcXVhbnRpdHk6IDEgfTtcclxuICAgICAgICAgICAgaWYgKGN1c3RvbUZpZWxkcykge1xyXG4gICAgICAgICAgICAgICAgcm93LmN1c3RvbUZpZWxkcyA9IGN1c3RvbUZpZWxkcztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLm1vZGlmeU9yZGVySW5wdXQuYWRkSXRlbXM/LnB1c2gocm93KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByb3cucXVhbnRpdHkrKztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGN1c3RvbUZpZWxkcykge1xyXG4gICAgICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGN1c3RvbUZpZWxkcykpIHtcclxuICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5hZGRDb250cm9sKGtleSwgbmV3IFVudHlwZWRGb3JtQ29udHJvbCh2YWx1ZSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuYWRkSXRlbUN1c3RvbUZpZWxkc0Zvcm1BcnJheS5wdXNoKGZvcm1Hcm91cCk7XHJcbiAgICAgICAgICAgIGZvcm1Hcm91cC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocm93KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcm93LmN1c3RvbUZpZWxkcyA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hZGRJdGVtQ3VzdG9tRmllbGRzRm9ybS5yZXNldCh7fSk7XHJcbiAgICAgICAgdGhpcy5hZGRJdGVtU2VsZWN0ZWRWYXJpYW50ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuYWRkZWRWYXJpYW50cy5zZXQocmVzdWx0LnByb2R1Y3RWYXJpYW50SWQsIHJlc3VsdCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U2hpcHBpbmdMaW5lRGV0YWlscyhzaGlwcGluZ0xpbmU6IE9yZGVyRGV0YWlsRnJhZ21lbnRbJ3NoaXBwaW5nTGluZXMnXVtudW1iZXJdKToge1xyXG4gICAgICAgIG5hbWU6IHN0cmluZztcclxuICAgICAgICBwcmljZTogbnVtYmVyO1xyXG4gICAgfSB7XHJcbiAgICAgICAgY29uc3QgdXBkYXRlZE1ldGhvZCA9IHRoaXMudXBkYXRlZFNoaXBwaW5nTWV0aG9kc1tzaGlwcGluZ0xpbmUuaWRdO1xyXG4gICAgICAgIGlmICh1cGRhdGVkTWV0aG9kKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiB1cGRhdGVkTWV0aG9kLm5hbWUgfHwgdXBkYXRlZE1ldGhvZC5jb2RlLFxyXG4gICAgICAgICAgICAgICAgcHJpY2U6IHVwZGF0ZWRNZXRob2QucHJpY2VXaXRoVGF4LFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBzaGlwcGluZ0xpbmUuc2hpcHBpbmdNZXRob2QubmFtZSB8fCBzaGlwcGluZ0xpbmUuc2hpcHBpbmdNZXRob2QuY29kZSxcclxuICAgICAgICAgICAgICAgIHByaWNlOiBzaGlwcGluZ0xpbmUuZGlzY291bnRlZFByaWNlV2l0aFRheCxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0U2hpcHBpbmdNZXRob2Qoc2hpcHBpbmdMaW5lSWQ6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRTaGlwcGluZ01ldGhvZCA9XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlZFNoaXBwaW5nTWV0aG9kc1tzaGlwcGluZ0xpbmVJZF0gPz9cclxuICAgICAgICAgICAgdGhpcy5lbnRpdHk/LnNoaXBwaW5nTGluZXMuZmluZChsID0+IGwuaWQgPT09IHNoaXBwaW5nTGluZUlkKT8uc2hpcHBpbmdNZXRob2Q7XHJcbiAgICAgICAgaWYgKCFjdXJyZW50U2hpcHBpbmdNZXRob2QpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLm9yZGVyXHJcbiAgICAgICAgICAgIC5nZXREcmFmdE9yZGVyRWxpZ2libGVTaGlwcGluZ01ldGhvZHModGhpcy5pZClcclxuICAgICAgICAgICAgLm1hcFNpbmdsZSgoeyBlbGlnaWJsZVNoaXBwaW5nTWV0aG9kc0ZvckRyYWZ0T3JkZXIgfSkgPT4gZWxpZ2libGVTaGlwcGluZ01ldGhvZHNGb3JEcmFmdE9yZGVyKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChtZXRob2RzID0+XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmZyb21Db21wb25lbnQoU2VsZWN0U2hpcHBpbmdNZXRob2REaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2Fsczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWdpYmxlU2hpcHBpbmdNZXRob2RzOiBtZXRob2RzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5Q29kZTogdGhpcy5lbnRpdHk/LmN1cnJlbmN5Q29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U2VsZWN0aW9uSWQ6IGN1cnJlbnRTaGlwcGluZ01ldGhvZC5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWV0aG9kcy5maW5kKG1ldGhvZCA9PiBtZXRob2QuaWQgPT09IHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZWRTaGlwcGluZ01ldGhvZHNbc2hpcHBpbmdMaW5lSWRdID0gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNNYXRjaGluZ0FkZEl0ZW1Sb3coXHJcbiAgICAgICAgcm93OiBNb2RpZnlPcmRlckRhdGFbJ2FkZEl0ZW1zJ11bbnVtYmVyXSxcclxuICAgICAgICByZXN1bHQ6IFByb2R1Y3RTZWxlY3Rvckl0ZW0sXHJcbiAgICAgICAgY3VzdG9tRmllbGRzOiBhbnksXHJcbiAgICApOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICByb3cucHJvZHVjdFZhcmlhbnRJZCA9PT0gcmVzdWx0LnByb2R1Y3RWYXJpYW50SWQgJiZcclxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkocm93LmN1c3RvbUZpZWxkcykgPT09IEpTT04uc3RyaW5naWZ5KGN1c3RvbUZpZWxkcylcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUFkZGVkSXRlbShpZDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5tb2RpZnlPcmRlcklucHV0LmFkZEl0ZW1zID0gdGhpcy5tb2RpZnlPcmRlcklucHV0LmFkZEl0ZW1zPy5maWx0ZXIobCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1JZCA9IHRoaXMuZ2V0SWRGb3JBZGRlZEl0ZW0obCk7XHJcbiAgICAgICAgICAgIHJldHVybiBpdGVtSWQgIT09IGlkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFN1cmNoYXJnZVByaWNlcyhzdXJjaGFyZ2U6IFN1cmNoYXJnZUlucHV0KSB7XHJcbiAgICAgICAgY29uc3QgcHJpY2VXaXRoVGF4ID0gc3VyY2hhcmdlLnByaWNlSW5jbHVkZXNUYXhcclxuICAgICAgICAgICAgPyBzdXJjaGFyZ2UucHJpY2VcclxuICAgICAgICAgICAgOiBNYXRoLnJvdW5kKHN1cmNoYXJnZS5wcmljZSAqICgoMTAwICsgKHN1cmNoYXJnZS50YXhSYXRlIHx8IDApKSAvIDEwMCkpO1xyXG4gICAgICAgIGNvbnN0IHByaWNlID0gc3VyY2hhcmdlLnByaWNlSW5jbHVkZXNUYXhcclxuICAgICAgICAgICAgPyBNYXRoLnJvdW5kKHN1cmNoYXJnZS5wcmljZSAvICgoMTAwICsgKHN1cmNoYXJnZS50YXhSYXRlIHx8IDApKSAvIDEwMCkpXHJcbiAgICAgICAgICAgIDogc3VyY2hhcmdlLnByaWNlO1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHByaWNlLFxyXG4gICAgICAgICAgICBwcmljZVdpdGhUYXgsXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRTdXJjaGFyZ2UodmFsdWU6IGFueSkge1xyXG4gICAgICAgIHRoaXMubW9kaWZ5T3JkZXJJbnB1dC5zdXJjaGFyZ2VzPy5wdXNoKHZhbHVlKTtcclxuICAgICAgICB0aGlzLnN1cmNoYXJnZUZvcm0ucmVzZXQoe1xyXG4gICAgICAgICAgICBwcmljZTogMCxcclxuICAgICAgICAgICAgcHJpY2VJbmNsdWRlc1RheDogdHJ1ZSxcclxuICAgICAgICAgICAgdGF4UmF0ZTogMCxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVTdXJjaGFyZ2UoaW5kZXg6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMubW9kaWZ5T3JkZXJJbnB1dC5zdXJjaGFyZ2VzPy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHByZXZpZXdBbmRNb2RpZnkob3JkZXI6IE9yZGVyRGV0YWlsRnJhZ21lbnQpIHtcclxuICAgICAgICBjb25zdCBtb2RpZnlPcmRlcklucHV0OiBNb2RpZnlPcmRlckRhdGEgPSB7XHJcbiAgICAgICAgICAgIC4uLnRoaXMubW9kaWZ5T3JkZXJJbnB1dCxcclxuICAgICAgICAgICAgYWRqdXN0T3JkZXJMaW5lczogdGhpcy5tb2RpZnlPcmRlcklucHV0LmFkanVzdE9yZGVyTGluZXMubWFwKGxpbmUgPT5cclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybVJlbGF0aW9uQ3VzdG9tRmllbGRJbnB1dHMoc2ltcGxlRGVlcENsb25lKGxpbmUpLCB0aGlzLm9yZGVyTGluZUN1c3RvbUZpZWxkcyksXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBpbnB1dDogTW9kaWZ5T3JkZXJJbnB1dCA9IHtcclxuICAgICAgICAgICAgLi4ubW9kaWZ5T3JkZXJJbnB1dCxcclxuICAgICAgICAgICAgLi4uKHRoaXMuYmlsbGluZ0FkZHJlc3NGb3JtLmRpcnR5ID8geyB1cGRhdGVCaWxsaW5nQWRkcmVzczogdGhpcy5iaWxsaW5nQWRkcmVzc0Zvcm0udmFsdWUgfSA6IHt9KSxcclxuICAgICAgICAgICAgLi4uKHRoaXMuc2hpcHBpbmdBZGRyZXNzRm9ybS5kaXJ0eVxyXG4gICAgICAgICAgICAgICAgPyB7IHVwZGF0ZVNoaXBwaW5nQWRkcmVzczogdGhpcy5zaGlwcGluZ0FkZHJlc3NGb3JtLnZhbHVlIH1cclxuICAgICAgICAgICAgICAgIDoge30pLFxyXG4gICAgICAgICAgICBkcnlSdW46IHRydWUsXHJcbiAgICAgICAgICAgIGNvdXBvbkNvZGVzOiB0aGlzLmNvdXBvbkNvZGVzQ29udHJvbC5kaXJ0eSA/IHRoaXMuY291cG9uQ29kZXNDb250cm9sLnZhbHVlIDogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICBub3RlOiB0aGlzLm5vdGUgPz8gJycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgIHJlY2FsY3VsYXRlU2hpcHBpbmc6IHRoaXMucmVjYWxjdWxhdGVTaGlwcGluZyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmIChPYmplY3QuZW50cmllcyh0aGlzLnVwZGF0ZWRTaGlwcGluZ01ldGhvZHMpLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBpbnB1dC5zaGlwcGluZ01ldGhvZElkcyA9IG9yZGVyLnNoaXBwaW5nTGluZXMubWFwKGwgPT5cclxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlZFNoaXBwaW5nTWV0aG9kc1tsLmlkXVxyXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy51cGRhdGVkU2hpcHBpbmdNZXRob2RzW2wuaWRdLmlkXHJcbiAgICAgICAgICAgICAgICAgICAgOiBsLnNoaXBwaW5nTWV0aG9kLmlkLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLm9yZGVyXHJcbiAgICAgICAgICAgIC5tb2RpZnlPcmRlcihpbnB1dClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHsgbW9kaWZ5T3JkZXIgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAobW9kaWZ5T3JkZXIuX190eXBlbmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdPcmRlcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tb2RhbFNlcnZpY2UuZnJvbUNvbXBvbmVudChPcmRlckVkaXRzUHJldmlld0RpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6ICd4bCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2Fsczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmRlcjogbW9kaWZ5T3JkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyU25hcHNob3Q6IHRoaXMub3JkZXJTbmFwc2hvdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXJMaW5lQ3VzdG9tRmllbGRzOiB0aGlzLm9yZGVyTGluZUN1c3RvbUZpZWxkcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZ5T3JkZXJJbnB1dDogaW5wdXQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGVkTGluZXM6IHRoaXMuYWRkZWRMaW5lcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzRm9ybTogdGhpcy5zaGlwcGluZ0FkZHJlc3NGb3JtLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaWxsaW5nQWRkcmVzc0Zvcm06IHRoaXMuYmlsbGluZ0FkZHJlc3NGb3JtLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3Vwb25Db2Rlc0NvbnRyb2w6IHRoaXMuY291cG9uQ29kZXNDb250cm9sLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVkU2hpcHBpbmdNZXRob2RzOiB0aGlzLnVwZGF0ZWRTaGlwcGluZ01ldGhvZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdJbnN1ZmZpY2llbnRTdG9ja0Vycm9yJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnTmVnYXRpdmVRdWFudGl0eUVycm9yJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnTm9DaGFuZ2VzU3BlY2lmaWVkRXJyb3InOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdPcmRlckxpbWl0RXJyb3InOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdPcmRlck1vZGlmaWNhdGlvblN0YXRlRXJyb3InOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdQYXltZW50TWV0aG9kTWlzc2luZ0Vycm9yJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnUmVmdW5kUGF5bWVudElkTWlzc2luZ0Vycm9yJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnQ291cG9uQ29kZUxpbWl0RXJyb3InOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdDb3Vwb25Db2RlRXhwaXJlZEVycm9yJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnSW5lbGlnaWJsZVNoaXBwaW5nTWV0aG9kRXJyb3InOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdDb3Vwb25Db2RlSW52YWxpZEVycm9yJzoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKG1vZGlmeU9yZGVyLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlIGFzIGNvbnN0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIG51bGw6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlIGFzIGNvbnN0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydE5ldmVyKG1vZGlmeU9yZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghcmVzdWx0IHx8IHJlc3VsdC5yZXN1bHQgPT09IE9yZGVyRWRpdFJlc3VsdFR5cGUuQ2FuY2VsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlLWZldGNoIHNvIHRoYXQgdGhlIHByZXZpZXcgdmFsdWVzIGdldCBvdmVyd3JpdHRlbiBpbiB0aGUgY2FjaGUuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLm9yZGVyLmdldE9yZGVyKHRoaXMuaWQpLm1hcFNpbmdsZSgoKSA9PiBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG8gdGhlIG1vZGlmaWNhdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3ZXRSdW5JbnB1dCA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmlucHV0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJ5UnVuOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHQgPT09IE9yZGVyRWRpdFJlc3VsdFR5cGUuUmVmdW5kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZXRSdW5JbnB1dC5yZWZ1bmRzID0gcmVzdWx0LnJlZnVuZHM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2Uub3JkZXIubW9kaWZ5T3JkZXIod2V0UnVuSW5wdXQpLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHsgbW9kaWZ5T3JkZXIgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtb2RpZnlPcmRlci5fX3R5cGVuYW1lID09PSAnT3JkZXInKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByaWNlRGVsdGEgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZ5T3JkZXIudG90YWxXaXRoVGF4IC0gdGhpcy5vcmRlclNuYXBzaG90LnRvdGFsV2l0aFRheDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV4dFN0YXRlID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgPCBwcmljZURlbHRhID8gJ0FycmFuZ2luZ0FkZGl0aW9uYWxQYXltZW50JyA6IHRoaXMucHJldmlvdXNTdGF0ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLm9yZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudHJhbnNpdGlvblRvU3RhdGUob3JkZXIuaWQsIG5leHRTdGF0ZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKG1hcFRvKHRydWUpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoKG1vZGlmeU9yZGVyIGFzIEVycm9yUmVzdWx0KS5tZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4uLyddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYWRkQWRkcmVzc0N1c3RvbUZpZWxkc0Zvcm1Hcm91cChcclxuICAgICAgICBwYXJlbnRGb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXAsXHJcbiAgICAgICAgYWRkcmVzcz86IE9yZGVyQWRkcmVzc0ZyYWdtZW50IHwgbnVsbCxcclxuICAgICkge1xyXG4gICAgICAgIGlmIChhZGRyZXNzICYmIHRoaXMuYWRkcmVzc0N1c3RvbUZpZWxkcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgY29uc3QgYWRkcmVzc0N1c3RvbUZpZWxkc0Zvcm1Hcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBjdXN0b21GaWVsZERlZiBvZiB0aGlzLmFkZHJlc3NDdXN0b21GaWVsZHMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBjdXN0b21GaWVsZERlZi5uYW1lO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAoYWRkcmVzcyBhcyBhbnkpLmN1c3RvbUZpZWxkcz8uW25hbWVdO1xyXG4gICAgICAgICAgICAgICAgYWRkcmVzc0N1c3RvbUZpZWxkc0Zvcm1Hcm91cC5hZGRDb250cm9sKG5hbWUsIG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodmFsdWUpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBwYXJlbnRGb3JtR3JvdXAuYWRkQ29udHJvbCgnY3VzdG9tRmllbGRzJywgYWRkcmVzc0N1c3RvbUZpZWxkc0Zvcm1Hcm91cCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlT3JkZXJTbmFwc2hvdChvcmRlcjogT3JkZXJEZXRhaWxGcmFnbWVudCk6IE9yZGVyU25hcHNob3Qge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHRvdGFsV2l0aFRheDogb3JkZXIudG90YWxXaXRoVGF4LFxyXG4gICAgICAgICAgICBjdXJyZW5jeUNvZGU6IG9yZGVyLmN1cnJlbmN5Q29kZSxcclxuICAgICAgICAgICAgY291cG9uQ29kZXM6IG9yZGVyLmNvdXBvbkNvZGVzLFxyXG4gICAgICAgICAgICBsaW5lczogWy4uLm9yZGVyLmxpbmVzXS5tYXAobGluZSA9PiAoeyAuLi5saW5lIH0pKSxcclxuICAgICAgICAgICAgc2hpcHBpbmdMaW5lczogWy4uLm9yZGVyLnNoaXBwaW5nTGluZXNdLm1hcChsaW5lID0+ICh7IC4uLmxpbmUgfSkpLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHNldEZvcm1WYWx1ZXMoZW50aXR5OiBPcmRlckRldGFpbEZyYWdtZW50LCBsYW5ndWFnZUNvZGU6IExhbmd1YWdlQ29kZSk6IHZvaWQge1xyXG4gICAgICAgIC8qIG5vdCB1c2VkICovXHJcbiAgICB9XHJcbn1cclxuIiwiPHZkci1wYWdlLWJsb2NrPlxyXG4gICAgPHZkci1hY3Rpb24tYmFyICpuZ0lmPVwiZW50aXR5JCB8IGFzeW5jIGFzIG9yZGVyXCI+XHJcbiAgICAgICAgPHZkci1hYi1sZWZ0PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBjbHItYWxpZ24taXRlbXMtY2VudGVyXCI+PC9kaXY+XHJcbiAgICAgICAgPC92ZHItYWItbGVmdD5cclxuXHJcbiAgICAgICAgPHZkci1hYi1yaWdodD5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cInRyYW5zaXRpb25Ub1ByaW9yU3RhdGUob3JkZXIpXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnb3JkZXIuY2FuY2VsLW1vZGlmaWNhdGlvbicgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC92ZHItYWItcmlnaHQ+XHJcbiAgICA8L3Zkci1hY3Rpb24tYmFyPlxyXG48L3Zkci1wYWdlLWJsb2NrPlxyXG5cclxuPHZkci1wYWdlLWRldGFpbC1sYXlvdXQgKm5nSWY9XCJlbnRpdHkgYXMgb3JkZXJcIj5cclxuICAgIDx2ZHItcGFnZS1kZXRhaWwtc2lkZWJhcj5cclxuICAgICAgICA8dmRyLWNhcmQgW3RpdGxlXT1cIidvcmRlci5tb2RpZmljYXRpb24tc3VtbWFyeScgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgPHZkci1vcmRlci1tb2RpZmljYXRpb24tc3VtbWFyeVxyXG4gICAgICAgICAgICAgICAgW29yZGVyU25hcHNob3RdPVwib3JkZXJTbmFwc2hvdFwiXHJcbiAgICAgICAgICAgICAgICBbbW9kaWZ5T3JkZXJJbnB1dF09XCJtb2RpZnlPcmRlcklucHV0XCJcclxuICAgICAgICAgICAgICAgIFthZGRlZExpbmVzXT1cImFkZGVkTGluZXNcIlxyXG4gICAgICAgICAgICAgICAgW3NoaXBwaW5nQWRkcmVzc0Zvcm1dPVwic2hpcHBpbmdBZGRyZXNzRm9ybVwiXHJcbiAgICAgICAgICAgICAgICBbYmlsbGluZ0FkZHJlc3NGb3JtXT1cImJpbGxpbmdBZGRyZXNzRm9ybVwiXHJcbiAgICAgICAgICAgICAgICBbY291cG9uQ29kZXNDb250cm9sXT1cImNvdXBvbkNvZGVzQ29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbdXBkYXRlZFNoaXBwaW5nTWV0aG9kc109XCJ1cGRhdGVkU2hpcHBpbmdNZXRob2RzXCJcclxuICAgICAgICAgICAgPjwvdmRyLW9yZGVyLW1vZGlmaWNhdGlvbi1zdW1tYXJ5PlxyXG5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFoYXNNb2RpZmljYXRpb25zKClcIiBjbGFzcz1cIm5vLW1vZGlmaWNhdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdvcmRlci5uby1tb2RpZmljYXRpb25zLW1hZGUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnktY29udHJvbHNcIj5cclxuICAgICAgICAgICAgICAgIDx2ZHItZm9ybS1maWVsZCBbbGFiZWxdPVwiJ29yZGVyLm5vdGUnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibm90ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJub3RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFoYXNNb2RpZmljYXRpb25zKClcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgPC92ZHItZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicmVjYWxjdWxhdGVTaGlwcGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaGFzTW9kaWZpY2F0aW9ucygpXCJcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtbC0xXCI+e3sgJ29yZGVyLm1vZGlmaWNhdGlvbi1yZWNhbGN1bGF0ZS1zaGlwcGluZycgfCB0cmFuc2xhdGUgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXQtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFoYXNNb2RpZmljYXRpb25zKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJwcmV2aWV3QW5kTW9kaWZ5KG9yZGVyKVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ29yZGVyLnByZXZpZXctY2hhbmdlcycgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3Zkci1jYXJkPlxyXG4gICAgICAgIDx2ZHItY2FyZCBbdGl0bGVdPVwiJ29yZGVyLnNldC1jb3Vwb24tY29kZXMnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgIDx2ZHItY291cG9uLWNvZGUtc2VsZWN0b3IgW2NvbnRyb2xdPVwiY291cG9uQ29kZXNDb250cm9sXCI+PC92ZHItY291cG9uLWNvZGUtc2VsZWN0b3I+XHJcbiAgICAgICAgPC92ZHItY2FyZD5cclxuICAgICAgICA8dmRyLWNhcmQgW3RpdGxlXT1cIidvcmRlci5zaGlwcGluZy1hZGRyZXNzJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgdmRyQ2FyZENvbnRyb2xzPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLXNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ29yZGVyLmVkaXQtc2hpcHBpbmctYWRkcmVzcycgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0aW5nU2hpcHBpbmdBZGRyZXNzID0gIWVkaXRpbmdTaGlwcGluZ0FkZHJlc3NcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImVkaXRcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDx2ZHItZm9ybWF0dGVkLWFkZHJlc3NcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWVkaXRpbmdTaGlwcGluZ0FkZHJlc3NcIlxyXG4gICAgICAgICAgICAgICAgW2FkZHJlc3NdPVwic2hpcHBpbmdBZGRyZXNzRm9ybS52YWx1ZVwiXHJcbiAgICAgICAgICAgID48L3Zkci1mb3JtYXR0ZWQtYWRkcmVzcz5cclxuICAgICAgICAgICAgPHZkci1hZGRyZXNzLWZvcm1cclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZWRpdGluZ1NoaXBwaW5nQWRkcmVzc1wiXHJcbiAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT1cInNoaXBwaW5nQWRkcmVzc0Zvcm1cIlxyXG4gICAgICAgICAgICAgICAgW2F2YWlsYWJsZUNvdW50cmllc109XCJhdmFpbGFibGVDb3VudHJpZXMkIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgW2N1c3RvbUZpZWxkc109XCJhZGRyZXNzQ3VzdG9tRmllbGRzXCJcclxuICAgICAgICAgICAgPjwvdmRyLWFkZHJlc3MtZm9ybT5cclxuICAgICAgICA8L3Zkci1jYXJkPlxyXG4gICAgICAgIDx2ZHItY2FyZCBbdGl0bGVdPVwiJ29yZGVyLmJpbGxpbmctYWRkcmVzcycgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHZkckNhcmRDb250cm9scz5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbi1zbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidvcmRlci5lZGl0LWJpbGxpbmctYWRkcmVzcycgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0aW5nQmlsbGluZ0FkZHJlc3MgPSAhZWRpdGluZ0JpbGxpbmdBZGRyZXNzXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJlZGl0XCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8dmRyLWZvcm1hdHRlZC1hZGRyZXNzXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFlZGl0aW5nQmlsbGluZ0FkZHJlc3NcIlxyXG4gICAgICAgICAgICAgICAgW2FkZHJlc3NdPVwiYmlsbGluZ0FkZHJlc3NGb3JtLnZhbHVlXCJcclxuICAgICAgICAgICAgPjwvdmRyLWZvcm1hdHRlZC1hZGRyZXNzPlxyXG4gICAgICAgICAgICA8dmRyLWFkZHJlc3MtZm9ybVxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJlZGl0aW5nQmlsbGluZ0FkZHJlc3NcIlxyXG4gICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJiaWxsaW5nQWRkcmVzc0Zvcm1cIlxyXG4gICAgICAgICAgICAgICAgW2F2YWlsYWJsZUNvdW50cmllc109XCJhdmFpbGFibGVDb3VudHJpZXMkIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgW2N1c3RvbUZpZWxkc109XCJhZGRyZXNzQ3VzdG9tRmllbGRzXCJcclxuICAgICAgICAgICAgPjwvdmRyLWFkZHJlc3MtZm9ybT5cclxuICAgICAgICA8L3Zkci1jYXJkPlxyXG4gICAgPC92ZHItcGFnZS1kZXRhaWwtc2lkZWJhcj5cclxuXHJcbiAgICA8dmRyLXBhZ2UtYmxvY2s+XHJcbiAgICAgICAgPHZkci1jYXJkIFtwYWRkaW5nWF09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICA8dmRyLWRhdGEtdGFibGUtMiBpZD1cIm1vZGlmeS1vcmRlclwiIGNsYXNzPVwib3JkZXItdGFibGVcIiBbaXRlbXNdPVwib3JkZXIubGluZXMuY29uY2F0KGFkZGVkTGluZXMpXCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tIEhlcmUgd2UgZGVmaW5lIGFsbCB0aGUgYXZhaWxhYmxlIGNvbHVtbnMgLS0+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWR0Mi1jb2x1bW4gaWQ9XCJpZFwiIFtoZWFkaW5nXT1cIidjb21tb24uaWQnIHwgdHJhbnNsYXRlXCIgW2hpZGRlbkJ5RGVmYXVsdF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1saW5lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBsaW5lLmlkIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWR0Mi1jb2x1bW5cclxuICAgICAgICAgICAgICAgICAgICBpZD1cImNyZWF0ZWQtYXRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtoZWFkaW5nXT1cIidjb21tb24uY3JlYXRlZC1hdCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtoaWRkZW5CeURlZmF1bHRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1saW5lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBsaW5lLmNyZWF0ZWRBdCB8IGxvY2FsZURhdGUgOiAnc2hvcnQnIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWR0Mi1jb2x1bW5cclxuICAgICAgICAgICAgICAgICAgICBpZD1cInVwZGF0ZWQtYXRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtoZWFkaW5nXT1cIidjb21tb24udXBkYXRlZC1hdCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtoaWRkZW5CeURlZmF1bHRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1saW5lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBsaW5lLnVwZGF0ZWRBdCB8IGxvY2FsZURhdGUgOiAnc2hvcnQnIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ2NvbW1vbi5pbWFnZScgfCB0cmFuc2xhdGVcIiBpZD1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1saW5lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2UtcGxhY2Vob2xkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImxpbmUuZmVhdHVyZWRBc3NldCBhcyBhc3NldDsgZWxzZSBpbWFnZVBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImFzc2V0IHwgYXNzZXRQcmV2aWV3IDogJ3RpbnknXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2ltYWdlUGxhY2Vob2xkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsYWNlaG9sZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImltYWdlXCIgc2l6ZT1cIjQ4XCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgPHZkci1kdDItY29sdW1uXHJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJwcm9kdWN0LW5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtoZWFkaW5nXT1cIidvcmRlci5wcm9kdWN0LW5hbWUnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBbb3B0aW9uYWxdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtbGluZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbGluZS5wcm9kdWN0VmFyaWFudC5uYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWR0Mi1jb2x1bW4gaWQ9XCJwcm9kdWN0LXNrdVwiIFtoZWFkaW5nXT1cIidvcmRlci5wcm9kdWN0LXNrdScgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWxpbmU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxpbmUucHJvZHVjdFZhcmlhbnQuc2t1IH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWR0Mi1jb2x1bW4gaWQ9XCJ1bml0LXByaWNlXCIgW2hlYWRpbmddPVwiJ29yZGVyLnVuaXQtcHJpY2UnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1saW5lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+e3sgbGluZS51bml0UHJpY2VXaXRoVGF4IHwgbG9jYWxlQ3VycmVuY3kgOiBvcmRlci5jdXJyZW5jeUNvZGUgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuZXQtcHJpY2VcIiBbdGl0bGVdPVwiJ29yZGVyLm5ldC1wcmljZScgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBsaW5lLnVuaXRQcmljZSB8IGxvY2FsZUN1cnJlbmN5IDogb3JkZXIuY3VycmVuY3lDb2RlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWR0Mi1jb2x1bW4gaWQ9XCJxdWFudGl0eVwiIFtoZWFkaW5nXT1cIidvcmRlci5xdWFudGl0eScgfCB0cmFuc2xhdGVcIiBbb3B0aW9uYWxdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWxpbmU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRyYWZ0LXF0eSBtci0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbj1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImdldEluaXRpYWxMaW5lUXVhbnRpdHkobGluZS5pZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0KT1cInVwZGF0ZUxpbmVRdWFudGl0eShsaW5lLCAkZXZlbnQudGFyZ2V0LnZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLXNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNBZGRlZExpbmUobGluZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUFkZGVkSXRlbShsaW5lLmlkKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInRyYXNoXCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItbGluZS1yZWZ1bmRzIFtsaW5lXT1cImxpbmVcIiBbcGF5bWVudHNdPVwib3JkZXIucGF5bWVudHNcIj48L3Zkci1saW5lLXJlZnVuZHM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItbGluZS1mdWxmaWxsbWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmVdPVwibGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWxsT3JkZXJGdWxmaWxsbWVudHNdPVwib3JkZXIuZnVsZmlsbG1lbnRzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcmRlclN0YXRlXT1cIm9yZGVyLnN0YXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvdmRyLWxpbmUtZnVsZmlsbG1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWR0Mi1jb2x1bW5cclxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY3VzdG9tRmllbGQgb2Ygb3JkZXJMaW5lQ3VzdG9tRmllbGRzXCJcclxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiY3VzdG9tRmllbGQubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2hlYWRpbmddPVwiY3VzdG9tRmllbGQgfCBjdXN0b21GaWVsZExhYmVsIDogKHVpTGFuZ3VhZ2UkIHwgYXN5bmMpXCJcclxuICAgICAgICAgICAgICAgICAgICBbaGlkZGVuQnlEZWZhdWx0XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtbGluZT1cIml0ZW1cIiBsZXQtaW5kZXg9XCJpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWN1c3RvbS1maWVsZC1jb250cm9sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29tcGFjdF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbnRpdHlOYW1lXT1cIidPcmRlckxpbmUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21GaWVsZF09XCJjdXN0b21GaWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY3VzdG9tRmllbGRzRm9ybUdyb3VwXT1cIm9yZGVyTGluZUN1c3RvbUZpZWxkc0Zvcm1BcnJheS5hdChpbmRleClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgICAgICAgICA8L3Zkci1kYXRhLXRhYmxlLTI+XHJcbiAgICAgICAgPC92ZHItY2FyZD5cclxuICAgICAgICA8dmRyLWNhcmQgW3RpdGxlXT1cIidvcmRlci5hZGQtaXRlbS10by1vcmRlcicgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgPHZkci1wcm9kdWN0LXZhcmlhbnQtc2VsZWN0b3IgY2xhc3M9XCJtYi00XCIgKHByb2R1Y3RTZWxlY3RlZCk9XCJhZGRJdGVtU2VsZWN0ZWRWYXJpYW50ID0gJGV2ZW50XCI+XHJcbiAgICAgICAgICAgIDwvdmRyLXByb2R1Y3QtdmFyaWFudC1zZWxlY3Rvcj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImFkZEl0ZW1TZWxlY3RlZFZhcmlhbnRcIiBjbGFzcz1cImZsZXggbWItNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFkZEl0ZW1TZWxlY3RlZFZhcmlhbnQucHJvZHVjdEFzc2V0IGFzIGFzc2V0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiYXNzZXQgfCBhc3NldFByZXZpZXcgOiAndGlueSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtci00IGFkZC1pdGVtLXRodW1iXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJtci00XCI+e3sgYWRkSXRlbVNlbGVjdGVkVmFyaWFudC5wcm9kdWN0VmFyaWFudE5hbWUgfX08L3N0cm9uZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbD57eyBhZGRJdGVtU2VsZWN0ZWRWYXJpYW50LnNrdSB9fTwvc21hbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFNlbGVjdGVkSXRlbVByaWNlKGFkZEl0ZW1TZWxlY3RlZFZhcmlhbnQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGxvY2FsZUN1cnJlbmN5IDogb3JkZXIuY3VycmVuY3lDb2RlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncmlkXCIgKm5nSWY9XCJhZGRJdGVtU2VsZWN0ZWRWYXJpYW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGN1c3RvbUZpZWxkIG9mIG9yZGVyTGluZUN1c3RvbUZpZWxkc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1jdXN0b20tZmllbGQtY29udHJvbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCIhYWRkSXRlbVNlbGVjdGVkVmFyaWFudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2N1c3RvbUZpZWxkXT1cImN1c3RvbUZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY3VzdG9tRmllbGRzRm9ybUdyb3VwXT1cImFkZEl0ZW1DdXN0b21GaWVsZHNGb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHlOYW1lPVwiT3JkZXJMaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29tcGFjdF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3Zkci1jdXN0b20tZmllbGQtY29udHJvbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNwYWNlclwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYWRkSXRlbVNlbGVjdGVkVmFyaWFudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWFkZEl0ZW1TZWxlY3RlZFZhcmlhbnQgfHwgYWRkSXRlbUN1c3RvbUZpZWxkc0Zvcm0uaW52YWxpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhZGRJdGVtVG9PcmRlcihhZGRJdGVtU2VsZWN0ZWRWYXJpYW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnb3JkZXIuYWRkLWl0ZW0tdG8tb3JkZXInIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC92ZHItY2FyZD5cclxuICAgICAgICA8dmRyLWNhcmQgW3RpdGxlXT1cIidvcmRlci5zaGlwcGluZycgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc2hpcHBpbmdMaW5lIG9mIG9yZGVyLnNoaXBwaW5nTGluZXNcIiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ2V0U2hpcHBpbmdMaW5lRGV0YWlscyhzaGlwcGluZ0xpbmUpIGFzIGRldGFpbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7IGRldGFpbHMubmFtZSB9fTo8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXgtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkZXRhaWxzLnByaWNlIHwgbG9jYWxlQ3VycmVuY3kgOiBvcmRlci5jdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uLXNtYWxsXCIgKGNsaWNrKT1cInNldFNoaXBwaW5nTWV0aG9kKHNoaXBwaW5nTGluZS5pZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ29yZGVyLnNldC1zaGlwcGluZy1tZXRob2QnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC92ZHItY2FyZD5cclxuICAgICAgICA8dmRyLWNhcmQgW3RpdGxlXT1cIidvcmRlci5hZGQtc3VyY2hhcmdlJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInN1cmNoYXJnZUZvcm1cIiAoc3VibWl0KT1cImFkZFN1cmNoYXJnZShzdXJjaGFyZ2VGb3JtLnZhbHVlKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItZm9ybS1maWVsZCBbbGFiZWxdPVwiJ2NvbW1vbi5kZXNjcmlwdGlvbicgfCB0cmFuc2xhdGVcIiBmb3I9XCJkZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48aW5wdXQgaWQ9XCJkZXNjcmlwdGlvblwiIHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+PC92ZHItZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWZvcm0tZmllbGQgW2xhYmVsXT1cIidvcmRlci5wcm9kdWN0LXNrdScgfCB0cmFuc2xhdGVcIiBmb3I9XCJza3VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PGlucHV0IGlkPVwic2t1XCIgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJza3VcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+PC92ZHItZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWZvcm0tZmllbGQgW2xhYmVsXT1cIidjb21tb24ucHJpY2UnIHwgdHJhbnNsYXRlXCIgZm9yPVwicHJpY2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1jdXJyZW5jeS1pbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2N1cnJlbmN5Q29kZV09XCJvcmRlci5jdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJwcmljZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwcmljZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3Zkci1jdXJyZW5jeS1pbnB1dD5cclxuICAgICAgICAgICAgICAgICAgICA8L3Zkci1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItZm9ybS1maWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2F0YWxvZy5wcmljZS1pbmNsdWRlcy10YXgtYXQnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0cmFuc2xhdGUgOiB7IHJhdGU6IHN1cmNoYXJnZUZvcm0uZ2V0KCd0YXhSYXRlJyk/LnZhbHVlID8/IDAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJwcmljZUluY2x1ZGVzVGF4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJwcmljZUluY2x1ZGVzVGF4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHJDaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicHJpY2VJbmNsdWRlc1RheFwiXHJcbiAgICAgICAgICAgICAgICAgICAgLz48L3Zkci1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItZm9ybS1maWVsZCBbbGFiZWxdPVwiJ29yZGVyLnRheC1yYXRlJyB8IHRyYW5zbGF0ZVwiIGZvcj1cInRheFJhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1hZmZpeGVkLWlucHV0IHN1ZmZpeD1cIiVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjxpbnB1dCBpZD1cInRheFJhdGVcIiB0eXBlPVwibnVtYmVyXCIgbWluPVwiMFwiIG1heD1cIjEwMFwiIGZvcm1Db250cm9sTmFtZT1cInRheFJhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPjwvdmRyLWFmZml4ZWQtaW5wdXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC92ZHItZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWZvcm0tZmllbGQgW2xhYmVsXT1cIidvcmRlci50YXgtZGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlXCIgZm9yPVwidGF4RGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PGlucHV0IGlkPVwidGF4RGVzY3JpcHRpb25cIiB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cInRheERlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAvPjwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IG10LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3VyY2hhcmdlRm9ybS5pbnZhbGlkIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1cmNoYXJnZUZvcm0ucHJpc3RpbmUgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3VyY2hhcmdlRm9ybS5nZXQoJ3ByaWNlJyk/LnZhbHVlID09PSAwIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICFzdXJjaGFyZ2VGb3JtLmdldCgnZGVzY3JpcHRpb24nKT8udmFsdWVcclxuICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci5hZGQtc3VyY2hhcmdlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICA8L3Zkci1jYXJkPlxyXG4gICAgPC92ZHItcGFnZS1ibG9jaz5cclxuPC92ZHItcGFnZS1kZXRhaWwtbGF5b3V0PlxyXG4iXX0=
@@ -7603,7 +7603,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
7603
7603
  }], ctorParameters: () => [{ type: AlertsService }] });
7604
7604
 
7605
7605
  // Auto-generated by the set-version.js script.
7606
- const ADMIN_UI_VERSION = '2.2.1';
7606
+ const ADMIN_UI_VERSION = '2.2.3';
7607
7607
 
7608
7608
  /* eslint-disable @angular-eslint/directive-selector */
7609
7609
  class FormFieldControlDirective {