@vendure/admin-ui 2.2.0-next.0 → 2.2.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/catalog/catalog.module.d.ts +4 -3
  2. package/catalog/components/create-facet-value-dialog/create-facet-value-dialog.component.d.ts +19 -0
  3. package/catalog/components/facet-detail/facet-detail.component.d.ts +9 -12
  4. package/catalog/components/product-list/product-list.component.d.ts +1 -1
  5. package/catalog/components/product-variant-list/product-variant-list.component.d.ts +3 -3
  6. package/catalog/public_api.d.ts +1 -0
  7. package/core/common/base-list.component.d.ts +1 -1
  8. package/core/common/component-registry-types.d.ts +1 -1
  9. package/core/common/generated-types.d.ts +276 -4860
  10. package/core/common/utilities/custom-field-default-value.d.ts +1 -1
  11. package/core/common/utilities/interpolate-description.d.ts +1 -1
  12. package/core/common/version.d.ts +1 -1
  13. package/core/components/app-shell/app-shell.component.d.ts +1 -0
  14. package/core/data/server-config.d.ts +4 -3
  15. package/core/data/utils/add-custom-fields.d.ts +2 -2
  16. package/core/extension/register-route-component.d.ts +1 -1
  17. package/core/providers/currency/currency.service.d.ts +10 -0
  18. package/core/public_api.d.ts +1 -0
  19. package/core/shared/components/chart/chart.component.d.ts +3 -0
  20. package/core/shared/components/chart/tooltip-plugin.d.ts +16 -1
  21. package/core/shared/components/configurable-input/configurable-input.component.d.ts +3 -0
  22. package/core/shared/components/currency-input/currency-input.component.d.ts +6 -3
  23. package/core/shared/components/custom-field-control/custom-field-control.component.d.ts +0 -2
  24. package/core/shared/components/form-field/form-field-control.directive.d.ts +1 -1
  25. package/core/shared/components/form-field/form-field.component.d.ts +3 -2
  26. package/core/shared/components/order-state-label/order-state-label.component.d.ts +1 -1
  27. package/core/shared/components/page-title/page-title.component.d.ts +2 -3
  28. package/core/shared/dynamic-form-inputs/default-form-inputs.d.ts +1 -1
  29. package/core/shared/pipes/locale-currency.pipe.d.ts +5 -2
  30. package/esm2022/catalog/catalog.module.mjs +17 -3
  31. package/esm2022/catalog/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.mjs +1 -1
  32. package/esm2022/catalog/components/collection-data-table/collection-data-table.component.mjs +1 -1
  33. package/esm2022/catalog/components/collection-detail/collection-detail.component.mjs +2 -2
  34. package/esm2022/catalog/components/collection-list/collection-list.component.mjs +3 -3
  35. package/esm2022/catalog/components/collection-tree/collection-tree-node.component.mjs +2 -2
  36. package/esm2022/catalog/components/create-facet-value-dialog/create-facet-value-dialog.component.mjs +44 -0
  37. package/esm2022/catalog/components/create-product-option-group-dialog/create-product-option-group-dialog.component.mjs +1 -1
  38. package/esm2022/catalog/components/create-product-variant-dialog/create-product-variant-dialog.component.mjs +1 -1
  39. package/esm2022/catalog/components/facet-detail/facet-detail.component.mjs +85 -120
  40. package/esm2022/catalog/components/facet-list/facet-list.component.mjs +5 -2
  41. package/esm2022/catalog/components/generate-product-variants/generate-product-variants.component.mjs +1 -1
  42. package/esm2022/catalog/components/option-value-input/option-value-input.component.mjs +1 -1
  43. package/esm2022/catalog/components/product-detail/product-detail.component.mjs +3 -3
  44. package/esm2022/catalog/components/product-list/product-list.component.mjs +26 -14
  45. package/esm2022/catalog/components/product-options-editor/product-options-editor.component.mjs +1 -1
  46. package/esm2022/catalog/components/product-variant-detail/product-variant-detail.component.mjs +1 -1
  47. package/esm2022/catalog/components/product-variant-list/product-variant-list.component.mjs +36 -15
  48. package/esm2022/catalog/components/product-variants-editor/product-variants-editor.component.mjs +1 -1
  49. package/esm2022/catalog/components/product-variants-table/product-variants-table.component.mjs +1 -1
  50. package/esm2022/catalog/components/update-product-option-dialog/update-product-option-dialog.component.mjs +1 -1
  51. package/esm2022/catalog/components/variant-price-detail/variant-price-detail.component.mjs +1 -1
  52. package/esm2022/catalog/public_api.mjs +2 -1
  53. package/esm2022/core/common/base-list.component.mjs +1 -1
  54. package/esm2022/core/common/component-registry-types.mjs +1 -1
  55. package/esm2022/core/common/generated-types.mjs +26 -22
  56. package/esm2022/core/common/introspection-result.mjs +4 -1
  57. package/esm2022/core/common/utilities/interpolate-description.mjs +3 -3
  58. package/esm2022/core/common/version.mjs +2 -2
  59. package/esm2022/core/components/app-shell/app-shell.component.mjs +4 -3
  60. package/esm2022/core/components/channel-switcher/channel-switcher.component.mjs +1 -1
  61. package/esm2022/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.mjs +1 -1
  62. package/esm2022/core/core.module.mjs +2 -2
  63. package/esm2022/core/data/definitions/facet-definitions.mjs +2 -2
  64. package/esm2022/core/data/definitions/order-definitions.mjs +5 -1
  65. package/esm2022/core/data/definitions/settings-definitions.mjs +5 -81
  66. package/esm2022/core/data/providers/base-data.service.mjs +2 -2
  67. package/esm2022/core/data/server-config.mjs +6 -2
  68. package/esm2022/core/data/utils/add-custom-fields.mjs +2 -2
  69. package/esm2022/core/providers/currency/currency.service.mjs +21 -0
  70. package/esm2022/core/public_api.mjs +2 -1
  71. package/esm2022/core/shared/components/address-form/address-form.component.mjs +1 -1
  72. package/esm2022/core/shared/components/affixed-input/percentage-suffix-input.component.mjs +1 -1
  73. package/esm2022/core/shared/components/asset-file-input/asset-file-input.component.mjs +1 -1
  74. package/esm2022/core/shared/components/asset-preview/asset-preview.component.mjs +1 -1
  75. package/esm2022/core/shared/components/assign-to-channel-dialog/assign-to-channel-dialog.component.mjs +1 -1
  76. package/esm2022/core/shared/components/chart/chart.component.mjs +12 -5
  77. package/esm2022/core/shared/components/chart/tooltip-plugin.mjs +6 -14
  78. package/esm2022/core/shared/components/configurable-input/configurable-input.component.mjs +15 -13
  79. package/esm2022/core/shared/components/currency-input/currency-input.component.mjs +17 -14
  80. package/esm2022/core/shared/components/custom-field-control/custom-field-control.component.mjs +3 -6
  81. package/esm2022/core/shared/components/data-table/data-table.component.mjs +1 -1
  82. package/esm2022/core/shared/components/data-table-2/data-table-custom-field-column.component.mjs +4 -1
  83. package/esm2022/core/shared/components/data-table-2/data-table-search.component.mjs +1 -1
  84. package/esm2022/core/shared/components/data-table-2/data-table2.component.mjs +1 -1
  85. package/esm2022/core/shared/components/data-table-column-picker/data-table-column-picker.component.mjs +1 -1
  86. package/esm2022/core/shared/components/data-table-filter-presets/add-filter-preset-button.component.mjs +1 -1
  87. package/esm2022/core/shared/components/data-table-filter-presets/rename-filter-preset-dialog.component.mjs +1 -1
  88. package/esm2022/core/shared/components/data-table-filters/data-table-filters.component.mjs +1 -1
  89. package/esm2022/core/shared/components/datetime-picker/datetime-picker.component.mjs +1 -1
  90. package/esm2022/core/shared/components/edit-note-dialog/edit-note-dialog.component.mjs +1 -1
  91. package/esm2022/core/shared/components/form-field/form-field-control.directive.mjs +3 -3
  92. package/esm2022/core/shared/components/form-field/form-field.component.mjs +8 -4
  93. package/esm2022/core/shared/components/manage-tags-dialog/manage-tags-dialog.component.mjs +1 -1
  94. package/esm2022/core/shared/components/page-header-tabs/page-header-tabs.component.mjs +2 -2
  95. package/esm2022/core/shared/components/page-title/page-title.component.mjs +5 -6
  96. package/esm2022/core/shared/components/radio-card/radio-card.component.mjs +1 -1
  97. package/esm2022/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.mjs +1 -1
  98. package/esm2022/core/shared/components/rich-text-editor/link-dialog/link-dialog.component.mjs +1 -1
  99. package/esm2022/core/shared/components/timeline-entry/timeline-entry.component.mjs +2 -2
  100. package/esm2022/core/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.mjs +1 -1
  101. package/esm2022/core/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.mjs +4 -3
  102. package/esm2022/core/shared/dynamic-form-inputs/number-form-input/number-form-input.component.mjs +1 -1
  103. package/esm2022/core/shared/dynamic-form-inputs/password-form-input/password-form-input.component.mjs +1 -1
  104. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component.mjs +1 -1
  105. package/esm2022/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.mjs +1 -1
  106. package/esm2022/core/shared/dynamic-form-inputs/text-form-input/text-form-input.component.mjs +1 -1
  107. package/esm2022/core/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.mjs +1 -1
  108. package/esm2022/core/shared/pipes/locale-currency.pipe.mjs +11 -7
  109. package/esm2022/customer/components/customer-detail/customer-detail.component.mjs +1 -1
  110. package/esm2022/customer/components/customer-group-detail/customer-group-detail.component.mjs +1 -1
  111. package/esm2022/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.mjs +1 -1
  112. package/esm2022/customer/components/customer-history/customer-history.component.mjs +3 -3
  113. package/esm2022/dashboard/widgets/order-summary-widget/order-summary-widget.component.mjs +4 -4
  114. package/esm2022/login/components/login/login.component.mjs +4 -5
  115. package/esm2022/marketing/components/promotion-detail/promotion-detail.component.mjs +1 -1
  116. package/esm2022/order/common/get-refundable-payments.mjs +19 -0
  117. package/esm2022/order/common/modify-order-types.mjs +2 -0
  118. package/esm2022/order/components/add-manual-payment-dialog/add-manual-payment-dialog.component.mjs +1 -1
  119. package/esm2022/order/components/cancel-order-dialog/cancel-order-dialog.component.mjs +1 -1
  120. package/esm2022/order/components/coupon-code-selector/coupon-code-selector.component.mjs +3 -3
  121. package/esm2022/order/components/draft-order-variant-selector/draft-order-variant-selector.component.mjs +1 -1
  122. package/esm2022/order/components/fulfill-order-dialog/fulfill-order-dialog.component.mjs +1 -1
  123. package/esm2022/order/components/modification-detail/modification-detail.component.mjs +17 -6
  124. package/esm2022/order/components/order-data-table/order-data-table.component.mjs +1 -1
  125. package/esm2022/order/components/order-detail/order-detail.component.mjs +77 -29
  126. package/esm2022/order/components/order-editor/order-editor.component.mjs +201 -98
  127. package/esm2022/order/components/order-edits-preview-dialog/order-edits-preview-dialog.component.mjs +45 -7
  128. package/esm2022/order/components/order-history/order-history.component.mjs +22 -6
  129. package/esm2022/order/components/order-modification-summary/order-modification-summary.component.mjs +76 -0
  130. package/esm2022/order/components/order-payment-card/order-payment-card.component.mjs +3 -3
  131. package/esm2022/order/components/order-state-select-dialog/order-state-select-dialog.component.mjs +1 -1
  132. package/esm2022/order/components/order-table/order-table.component.mjs +3 -3
  133. package/esm2022/order/components/payment-for-refund-selector/payment-for-refund-selector.component.mjs +24 -0
  134. package/esm2022/order/components/payment-state-label/payment-state-label.component.mjs +2 -2
  135. package/esm2022/order/components/refund-detail/refund-detail.component.mjs +18 -0
  136. package/esm2022/order/components/refund-order-dialog/refund-order-dialog.component.mjs +100 -58
  137. package/esm2022/order/components/refund-state-label/refund-state-label.component.mjs +2 -2
  138. package/esm2022/order/components/select-customer-dialog/select-customer-dialog.component.mjs +14 -8
  139. package/esm2022/order/components/settle-refund-dialog/settle-refund-dialog.component.mjs +1 -1
  140. package/esm2022/order/components/simple-item-list/simple-item-list.component.mjs +3 -3
  141. package/esm2022/order/order.module.mjs +32 -2
  142. package/esm2022/order/order.routes.mjs +7 -53
  143. package/esm2022/order/providers/routing/order.guard.mjs +22 -2
  144. package/esm2022/order/public_api.mjs +6 -2
  145. package/esm2022/react/components/react-custom-column.component.mjs +3 -3
  146. package/esm2022/react/components/react-custom-detail.component.mjs +3 -3
  147. package/esm2022/react/components/react-form-input.component.mjs +3 -3
  148. package/esm2022/react/components/react-route.component.mjs +3 -3
  149. package/esm2022/settings/components/admin-detail/admin-detail.component.mjs +1 -1
  150. package/esm2022/settings/components/channel-detail/channel-detail.component.mjs +1 -1
  151. package/esm2022/settings/components/country-detail/country-detail.component.mjs +1 -1
  152. package/esm2022/settings/components/global-settings/global-settings.component.mjs +1 -1
  153. package/esm2022/settings/components/payment-method-detail/payment-method-detail.component.mjs +1 -1
  154. package/esm2022/settings/components/profile/profile.component.mjs +1 -1
  155. package/esm2022/settings/components/role-detail/role-detail.component.mjs +1 -1
  156. package/esm2022/settings/components/seller-detail/seller-detail.component.mjs +1 -1
  157. package/esm2022/settings/components/shipping-method-detail/shipping-method-detail.component.mjs +1 -1
  158. package/esm2022/settings/components/stock-location-detail/stock-location-detail.component.mjs +1 -1
  159. package/esm2022/settings/components/tax-category-detail/tax-category-detail.component.mjs +1 -1
  160. package/esm2022/settings/components/tax-rate-detail/tax-rate-detail.component.mjs +1 -1
  161. package/esm2022/settings/components/test-address-form/test-address-form.component.mjs +1 -1
  162. package/esm2022/settings/components/test-order-builder/test-order-builder.component.mjs +1 -1
  163. package/esm2022/settings/components/zone-detail/zone-detail.component.mjs +1 -1
  164. package/esm2022/settings/settings.routes.mjs +4 -4
  165. package/esm2022/system/components/job-list/job-list.component.mjs +1 -1
  166. package/fesm2022/vendure-admin-ui-catalog.mjs +215 -166
  167. package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
  168. package/fesm2022/vendure-admin-ui-core.mjs +156 -192
  169. package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
  170. package/fesm2022/vendure-admin-ui-customer.mjs +5 -5
  171. package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
  172. package/fesm2022/vendure-admin-ui-dashboard.mjs +3 -3
  173. package/fesm2022/vendure-admin-ui-dashboard.mjs.map +1 -1
  174. package/fesm2022/vendure-admin-ui-login.mjs +2 -3
  175. package/fesm2022/vendure-admin-ui-login.mjs.map +1 -1
  176. package/fesm2022/vendure-admin-ui-marketing.mjs +1 -1
  177. package/fesm2022/vendure-admin-ui-marketing.mjs.map +1 -1
  178. package/fesm2022/vendure-admin-ui-order.mjs +661 -324
  179. package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
  180. package/fesm2022/vendure-admin-ui-react.mjs +8 -8
  181. package/fesm2022/vendure-admin-ui-react.mjs.map +1 -1
  182. package/fesm2022/vendure-admin-ui-settings.mjs +18 -18
  183. package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
  184. package/fesm2022/vendure-admin-ui-system.mjs +1 -1
  185. package/fesm2022/vendure-admin-ui-system.mjs.map +1 -1
  186. package/login/components/login/login.component.d.ts +0 -1
  187. package/order/common/get-refundable-payments.d.ts +9 -0
  188. package/order/common/modify-order-types.d.ts +29 -0
  189. package/order/components/modification-detail/modification-detail.component.d.ts +4 -0
  190. package/order/components/order-detail/order-detail.component.d.ts +2 -0
  191. package/order/components/order-editor/order-editor.component.d.ts +57 -33
  192. package/order/components/order-edits-preview-dialog/order-edits-preview-dialog.component.d.ts +17 -6
  193. package/order/components/order-history/order-history.component.d.ts +6 -2
  194. package/order/components/order-modification-summary/order-modification-summary.component.d.ts +19 -0
  195. package/order/components/payment-for-refund-selector/payment-for-refund-selector.component.d.ts +14 -0
  196. package/order/components/refund-detail/refund-detail.component.d.ts +8 -0
  197. package/order/components/refund-order-dialog/refund-order-dialog.component.d.ts +13 -11
  198. package/order/components/select-customer-dialog/select-customer-dialog.component.d.ts +9 -2
  199. package/order/components/simple-item-list/simple-item-list.component.d.ts +1 -1
  200. package/order/order.module.d.ts +6 -3
  201. package/order/order.routes.d.ts +0 -2
  202. package/order/providers/routing/order.guard.d.ts +1 -0
  203. package/order/public_api.d.ts +5 -1
  204. package/package.json +20 -20
  205. package/settings/components/administrator-list/administrator-list.component.d.ts +2 -0
  206. package/settings/components/stock-location-list/stock-location-list.component.d.ts +1 -1
  207. package/static/i18n-messages/ar.json +15 -7
  208. package/static/i18n-messages/cs.json +15 -7
  209. package/static/i18n-messages/de.json +15 -7
  210. package/static/i18n-messages/en.json +18 -10
  211. package/static/i18n-messages/es.json +15 -7
  212. package/static/i18n-messages/fa.json +16 -8
  213. package/static/i18n-messages/fr.json +15 -7
  214. package/static/i18n-messages/he.json +15 -7
  215. package/static/i18n-messages/hr.json +15 -7
  216. package/static/i18n-messages/it.json +16 -8
  217. package/static/i18n-messages/nb.json +803 -0
  218. package/static/i18n-messages/ne.json +16 -8
  219. package/static/i18n-messages/pl.json +15 -7
  220. package/static/i18n-messages/pt_BR.json +16 -8
  221. package/static/i18n-messages/pt_PT.json +15 -7
  222. package/static/i18n-messages/ru.json +15 -7
  223. package/static/i18n-messages/uk.json +180 -172
  224. package/static/i18n-messages/zh_Hans.json +15 -7
  225. package/static/i18n-messages/zh_Hant.json +15 -7
  226. package/static/styles/global/_sass-overrides.scss +5 -0
  227. package/static/styles/global/_utilities.scss +4 -0
  228. package/static/styles/theme/dark.scss +9 -6
  229. package/static/styles/theme/default.scss +8 -4
  230. package/static/theme.min.css +1 -1
  231. package/static/vendure-ui-config.json +2 -1
  232. package/esm2022/order/providers/routing/order-resolver.mjs +0 -48
  233. package/order/providers/routing/order-resolver.d.ts +0 -16
@@ -117,6 +117,8 @@ export const PAYMENT_WITH_REFUNDS_FRAGMENT = gql `
117
117
  export const ORDER_LINE_FRAGMENT = gql `
118
118
  fragment OrderLine on OrderLine {
119
119
  id
120
+ createdAt
121
+ updatedAt
120
122
  featuredAsset {
121
123
  preview
122
124
  }
@@ -201,6 +203,8 @@ export const ORDER_DETAIL_FRAGMENT = gql `
201
203
  shipping
202
204
  shippingWithTax
203
205
  shippingLines {
206
+ id
207
+ discountedPriceWithTax
204
208
  shippingMethod {
205
209
  id
206
210
  code
@@ -587,4 +591,4 @@ export const SET_DRAFT_ORDER_SHIPPING_METHOD = gql `
587
591
  ${ORDER_DETAIL_FRAGMENT}
588
592
  ${ERROR_RESULT_FRAGMENT}
589
593
  `;
590
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2RhdGEvZGVmaW5pdGlvbnMvb3JkZXItZGVmaW5pdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTdELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Q0FRbkMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7O0NBU2xDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7O0NBVWpDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Q0FheEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXdCaEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Q0FjdEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0E2Qi9DLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBZ0NyQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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OztNQU9wQyxxQkFBcUI7TUFDckIscUJBQXFCO0NBQzFCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7TUFPcEMscUJBQXFCO01BQ3JCLHFCQUFxQjtDQUMxQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7O01BT3pDLHFCQUFxQjtNQUNyQixxQkFBcUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9DQUFvQyxHQUFHLEdBQUcsQ0FBQTs7Ozs7O01BTWpELHFCQUFxQjtDQUMxQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUcsR0FBRyxDQUFBOzs7Ozs7TUFNaEQscUJBQXFCO0NBQzFCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7TUFPN0MscUJBQXFCO01BQ3JCLHFCQUFxQjtDQUMxQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUcsR0FBRyxDQUFBOzs7Ozs7TUFNaEQscUJBQXFCO0NBQzFCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7OztDQVl2RCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7O01BTzVDLHFCQUFxQjtNQUNyQixxQkFBcUI7Q0FDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdxbCB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcclxuXHJcbmltcG9ydCB7IEVSUk9SX1JFU1VMVF9GUkFHTUVOVCB9IGZyb20gJy4vc2hhcmVkLWRlZmluaXRpb25zJztcclxuXHJcbmV4cG9ydCBjb25zdCBESVNDT1VOVF9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IERpc2NvdW50IG9uIERpc2NvdW50IHtcclxuICAgICAgICBhZGp1c3RtZW50U291cmNlXHJcbiAgICAgICAgYW1vdW50XHJcbiAgICAgICAgYW1vdW50V2l0aFRheFxyXG4gICAgICAgIGRlc2NyaXB0aW9uXHJcbiAgICAgICAgdHlwZVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBBWU1FTlRfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBQYXltZW50IG9uIFBheW1lbnQge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgdHJhbnNhY3Rpb25JZFxyXG4gICAgICAgIGFtb3VudFxyXG4gICAgICAgIG1ldGhvZFxyXG4gICAgICAgIHN0YXRlXHJcbiAgICAgICAgbWV0YWRhdGFcclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBSRUZVTkRfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBSZWZ1bmQgb24gUmVmdW5kIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIHN0YXRlXHJcbiAgICAgICAgaXRlbXNcclxuICAgICAgICBzaGlwcGluZ1xyXG4gICAgICAgIGFkanVzdG1lbnRcclxuICAgICAgICB0cmFuc2FjdGlvbklkXHJcbiAgICAgICAgcGF5bWVudElkXHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgT1JERVJfQUREUkVTU19GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IE9yZGVyQWRkcmVzcyBvbiBPcmRlckFkZHJlc3Mge1xyXG4gICAgICAgIGZ1bGxOYW1lXHJcbiAgICAgICAgY29tcGFueVxyXG4gICAgICAgIHN0cmVldExpbmUxXHJcbiAgICAgICAgc3RyZWV0TGluZTJcclxuICAgICAgICBjaXR5XHJcbiAgICAgICAgcHJvdmluY2VcclxuICAgICAgICBwb3N0YWxDb2RlXHJcbiAgICAgICAgY291bnRyeVxyXG4gICAgICAgIGNvdW50cnlDb2RlXHJcbiAgICAgICAgcGhvbmVOdW1iZXJcclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBPUkRFUl9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IE9yZGVyIG9uIE9yZGVyIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgIHR5cGVcclxuICAgICAgICBvcmRlclBsYWNlZEF0XHJcbiAgICAgICAgY29kZVxyXG4gICAgICAgIHN0YXRlXHJcbiAgICAgICAgbmV4dFN0YXRlc1xyXG4gICAgICAgIHRvdGFsXHJcbiAgICAgICAgdG90YWxXaXRoVGF4XHJcbiAgICAgICAgY3VycmVuY3lDb2RlXHJcbiAgICAgICAgY3VzdG9tZXIge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBmaXJzdE5hbWVcclxuICAgICAgICAgICAgbGFzdE5hbWVcclxuICAgICAgICB9XHJcbiAgICAgICAgc2hpcHBpbmdMaW5lcyB7XHJcbiAgICAgICAgICAgIHNoaXBwaW5nTWV0aG9kIHtcclxuICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBGVUxGSUxMTUVOVF9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IEZ1bGZpbGxtZW50IG9uIEZ1bGZpbGxtZW50IHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIHN0YXRlXHJcbiAgICAgICAgbmV4dFN0YXRlc1xyXG4gICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgIG1ldGhvZFxyXG4gICAgICAgIGxpbmVzIHtcclxuICAgICAgICAgICAgb3JkZXJMaW5lSWRcclxuICAgICAgICAgICAgcXVhbnRpdHlcclxuICAgICAgICB9XHJcbiAgICAgICAgdHJhY2tpbmdDb2RlXHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgUEFZTUVOVF9XSVRIX1JFRlVORFNfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBQYXltZW50V2l0aFJlZnVuZHMgb24gUGF5bWVudCB7XHJcbiAgICAgICAgaWRcclxuICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICB0cmFuc2FjdGlvbklkXHJcbiAgICAgICAgYW1vdW50XHJcbiAgICAgICAgbWV0aG9kXHJcbiAgICAgICAgc3RhdGVcclxuICAgICAgICBuZXh0U3RhdGVzXHJcbiAgICAgICAgZXJyb3JNZXNzYWdlXHJcbiAgICAgICAgbWV0YWRhdGFcclxuICAgICAgICByZWZ1bmRzIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgICAgIHN0YXRlXHJcbiAgICAgICAgICAgIGl0ZW1zXHJcbiAgICAgICAgICAgIGFkanVzdG1lbnRcclxuICAgICAgICAgICAgdG90YWxcclxuICAgICAgICAgICAgcGF5bWVudElkXHJcbiAgICAgICAgICAgIHJlYXNvblxyXG4gICAgICAgICAgICB0cmFuc2FjdGlvbklkXHJcbiAgICAgICAgICAgIG1ldGhvZFxyXG4gICAgICAgICAgICBtZXRhZGF0YVxyXG4gICAgICAgICAgICBsaW5lcyB7XHJcbiAgICAgICAgICAgICAgICBvcmRlckxpbmVJZFxyXG4gICAgICAgICAgICAgICAgcXVhbnRpdHlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBPUkRFUl9MSU5FX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgT3JkZXJMaW5lIG9uIE9yZGVyTGluZSB7XHJcbiAgICAgICAgaWRcclxuICAgICAgICBmZWF0dXJlZEFzc2V0IHtcclxuICAgICAgICAgICAgcHJldmlld1xyXG4gICAgICAgIH1cclxuICAgICAgICBwcm9kdWN0VmFyaWFudCB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgc2t1XHJcbiAgICAgICAgICAgIHRyYWNrSW52ZW50b3J5XHJcbiAgICAgICAgICAgIHN0b2NrT25IYW5kXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRpc2NvdW50cyB7XHJcbiAgICAgICAgICAgIC4uLkRpc2NvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZ1bGZpbGxtZW50TGluZXMge1xyXG4gICAgICAgICAgICBmdWxmaWxsbWVudElkXHJcbiAgICAgICAgICAgIHF1YW50aXR5XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHVuaXRQcmljZVxyXG4gICAgICAgIHVuaXRQcmljZVdpdGhUYXhcclxuICAgICAgICBwcm9yYXRlZFVuaXRQcmljZVxyXG4gICAgICAgIHByb3JhdGVkVW5pdFByaWNlV2l0aFRheFxyXG4gICAgICAgIHF1YW50aXR5XHJcbiAgICAgICAgb3JkZXJQbGFjZWRRdWFudGl0eVxyXG4gICAgICAgIGxpbmVQcmljZVxyXG4gICAgICAgIGxpbmVUYXhcclxuICAgICAgICBsaW5lUHJpY2VXaXRoVGF4XHJcbiAgICAgICAgZGlzY291bnRlZExpbmVQcmljZVxyXG4gICAgICAgIGRpc2NvdW50ZWRMaW5lUHJpY2VXaXRoVGF4XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgT1JERVJfREVUQUlMX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgT3JkZXJEZXRhaWwgb24gT3JkZXIge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgdHlwZVxyXG4gICAgICAgIGFnZ3JlZ2F0ZU9yZGVyIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgY29kZVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZWxsZXJPcmRlcnMge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBjb2RlXHJcbiAgICAgICAgICAgIGNoYW5uZWxzIHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICBjb2RlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY29kZVxyXG4gICAgICAgIHN0YXRlXHJcbiAgICAgICAgbmV4dFN0YXRlc1xyXG4gICAgICAgIGFjdGl2ZVxyXG4gICAgICAgIGNvdXBvbkNvZGVzXHJcbiAgICAgICAgY3VzdG9tZXIge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBmaXJzdE5hbWVcclxuICAgICAgICAgICAgbGFzdE5hbWVcclxuICAgICAgICB9XHJcbiAgICAgICAgbGluZXMge1xyXG4gICAgICAgICAgICAuLi5PcmRlckxpbmVcclxuICAgICAgICB9XHJcbiAgICAgICAgc3VyY2hhcmdlcyB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIHNrdVxyXG4gICAgICAgICAgICBkZXNjcmlwdGlvblxyXG4gICAgICAgICAgICBwcmljZVxyXG4gICAgICAgICAgICBwcmljZVdpdGhUYXhcclxuICAgICAgICAgICAgdGF4UmF0ZVxyXG4gICAgICAgIH1cclxuICAgICAgICBkaXNjb3VudHMge1xyXG4gICAgICAgICAgICAuLi5EaXNjb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBwcm9tb3Rpb25zIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgY291cG9uQ29kZVxyXG4gICAgICAgIH1cclxuICAgICAgICBzdWJUb3RhbFxyXG4gICAgICAgIHN1YlRvdGFsV2l0aFRheFxyXG4gICAgICAgIHRvdGFsXHJcbiAgICAgICAgdG90YWxXaXRoVGF4XHJcbiAgICAgICAgY3VycmVuY3lDb2RlXHJcbiAgICAgICAgc2hpcHBpbmdcclxuICAgICAgICBzaGlwcGluZ1dpdGhUYXhcclxuICAgICAgICBzaGlwcGluZ0xpbmVzIHtcclxuICAgICAgICAgICAgc2hpcHBpbmdNZXRob2Qge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIGNvZGVcclxuICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgICAgIGZ1bGZpbGxtZW50SGFuZGxlckNvZGVcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGF4U3VtbWFyeSB7XHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uXHJcbiAgICAgICAgICAgIHRheEJhc2VcclxuICAgICAgICAgICAgdGF4UmF0ZVxyXG4gICAgICAgICAgICB0YXhUb3RhbFxyXG4gICAgICAgIH1cclxuICAgICAgICBzaGlwcGluZ0FkZHJlc3Mge1xyXG4gICAgICAgICAgICAuLi5PcmRlckFkZHJlc3NcclxuICAgICAgICB9XHJcbiAgICAgICAgYmlsbGluZ0FkZHJlc3Mge1xyXG4gICAgICAgICAgICAuLi5PcmRlckFkZHJlc3NcclxuICAgICAgICB9XHJcbiAgICAgICAgcGF5bWVudHMge1xyXG4gICAgICAgICAgICAuLi5QYXltZW50V2l0aFJlZnVuZHNcclxuICAgICAgICB9XHJcbiAgICAgICAgZnVsZmlsbG1lbnRzIHtcclxuICAgICAgICAgICAgLi4uRnVsZmlsbG1lbnRcclxuICAgICAgICB9XHJcbiAgICAgICAgbW9kaWZpY2F0aW9ucyB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgICAgICBpc1NldHRsZWRcclxuICAgICAgICAgICAgcHJpY2VDaGFuZ2VcclxuICAgICAgICAgICAgbm90ZVxyXG4gICAgICAgICAgICBwYXltZW50IHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICBhbW91bnRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsaW5lcyB7XHJcbiAgICAgICAgICAgICAgICBvcmRlckxpbmVJZFxyXG4gICAgICAgICAgICAgICAgcXVhbnRpdHlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZWZ1bmQge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIHBheW1lbnRJZFxyXG4gICAgICAgICAgICAgICAgdG90YWxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzdXJjaGFyZ2VzIHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0RJU0NPVU5UX0ZSQUdNRU5UfVxyXG4gICAgJHtPUkRFUl9BRERSRVNTX0ZSQUdNRU5UfVxyXG4gICAgJHtGVUxGSUxMTUVOVF9GUkFHTUVOVH1cclxuICAgICR7T1JERVJfTElORV9GUkFHTUVOVH1cclxuICAgICR7UEFZTUVOVF9XSVRIX1JFRlVORFNfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX09SREVSU19MSVNUID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0T3JkZXJMaXN0KCRvcHRpb25zOiBPcmRlckxpc3RPcHRpb25zKSB7XHJcbiAgICAgICAgb3JkZXJzKG9wdGlvbnM6ICRvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgIC4uLk9yZGVyXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdG90YWxJdGVtc1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7T1JERVJfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX09SREVSID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0T3JkZXIoJGlkOiBJRCEpIHtcclxuICAgICAgICBvcmRlcihpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIC4uLk9yZGVyRGV0YWlsXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtPUkRFUl9ERVRBSUxfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgU0VUVExFX1BBWU1FTlQgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBTZXR0bGVQYXltZW50KCRpZDogSUQhKSB7XHJcbiAgICAgICAgc2V0dGxlUGF5bWVudChpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIC4uLlBheW1lbnRcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICAgICAgLi4uIG9uIFNldHRsZVBheW1lbnRFcnJvciB7XHJcbiAgICAgICAgICAgICAgICBwYXltZW50RXJyb3JNZXNzYWdlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLi4uIG9uIFBheW1lbnRTdGF0ZVRyYW5zaXRpb25FcnJvciB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uRXJyb3JcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuLi4gb24gT3JkZXJTdGF0ZVRyYW5zaXRpb25FcnJvciB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uRXJyb3JcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG4gICAgJHtQQVlNRU5UX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IENBTkNFTF9QQVlNRU5UID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQ2FuY2VsUGF5bWVudCgkaWQ6IElEISkge1xyXG4gICAgICAgIGNhbmNlbFBheW1lbnQoaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICAuLi5QYXltZW50XHJcbiAgICAgICAgICAgIC4uLkVycm9yUmVzdWx0XHJcbiAgICAgICAgICAgIC4uLiBvbiBDYW5jZWxQYXltZW50RXJyb3Ige1xyXG4gICAgICAgICAgICAgICAgcGF5bWVudEVycm9yTWVzc2FnZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC4uLiBvbiBQYXltZW50U3RhdGVUcmFuc2l0aW9uRXJyb3Ige1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbkVycm9yXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0VSUk9SX1JFU1VMVF9GUkFHTUVOVH1cclxuICAgICR7UEFZTUVOVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBUUkFOU0lUSU9OX1BBWU1FTlRfVE9fU1RBVEUgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBUcmFuc2l0aW9uUGF5bWVudFRvU3RhdGUoJGlkOiBJRCEsICRzdGF0ZTogU3RyaW5nISkge1xyXG4gICAgICAgIHRyYW5zaXRpb25QYXltZW50VG9TdGF0ZShpZDogJGlkLCBzdGF0ZTogJHN0YXRlKSB7XHJcbiAgICAgICAgICAgIC4uLlBheW1lbnRcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICAgICAgLi4uIG9uIFBheW1lbnRTdGF0ZVRyYW5zaXRpb25FcnJvciB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uRXJyb3JcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7UEFZTUVOVF9GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IENSRUFURV9GVUxGSUxMTUVOVCA9IGdxbGBcclxuICAgIG11dGF0aW9uIENyZWF0ZUZ1bGZpbGxtZW50KCRpbnB1dDogRnVsZmlsbE9yZGVySW5wdXQhKSB7XHJcbiAgICAgICAgYWRkRnVsZmlsbG1lbnRUb09yZGVyKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uRnVsZmlsbG1lbnRcclxuICAgICAgICAgICAgLi4uIG9uIENyZWF0ZUZ1bGZpbGxtZW50RXJyb3Ige1xyXG4gICAgICAgICAgICAgICAgZXJyb3JDb2RlXHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgICAgICAgICBmdWxmaWxsbWVudEhhbmRsZXJFcnJvclxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC4uLiBvbiBGdWxmaWxsbWVudFN0YXRlVHJhbnNpdGlvbkVycm9yIHtcclxuICAgICAgICAgICAgICAgIGVycm9yQ29kZVxyXG4gICAgICAgICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbkVycm9yXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0ZVTEZJTExNRU5UX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ0FOQ0VMX09SREVSID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQ2FuY2VsT3JkZXIoJGlucHV0OiBDYW5jZWxPcmRlcklucHV0ISkge1xyXG4gICAgICAgIGNhbmNlbE9yZGVyKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uT3JkZXJEZXRhaWxcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke09SREVSX0RFVEFJTF9GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFJFRlVORF9PUkRFUiA9IGdxbGBcclxuICAgIG11dGF0aW9uIFJlZnVuZE9yZGVyKCRpbnB1dDogUmVmdW5kT3JkZXJJbnB1dCEpIHtcclxuICAgICAgICByZWZ1bmRPcmRlcihpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLlJlZnVuZFxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7UkVGVU5EX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgU0VUVExFX1JFRlVORCA9IGdxbGBcclxuICAgIG11dGF0aW9uIFNldHRsZVJlZnVuZCgkaW5wdXQ6IFNldHRsZVJlZnVuZElucHV0ISkge1xyXG4gICAgICAgIHNldHRsZVJlZnVuZChpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLlJlZnVuZFxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7UkVGVU5EX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX09SREVSX0hJU1RPUlkgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRPcmRlckhpc3RvcnkoJGlkOiBJRCEsICRvcHRpb25zOiBIaXN0b3J5RW50cnlMaXN0T3B0aW9ucykge1xyXG4gICAgICAgIG9yZGVyKGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgaGlzdG9yeShvcHRpb25zOiAkb3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgdG90YWxJdGVtc1xyXG4gICAgICAgICAgICAgICAgaXRlbXMge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZVxyXG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgICAgICAgICAgICAgIGlzUHVibGljXHJcbiAgICAgICAgICAgICAgICAgICAgYWRtaW5pc3RyYXRvciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0TmFtZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0TmFtZVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBkYXRhXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQUREX05PVEVfVE9fT1JERVIgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBBZGROb3RlVG9PcmRlcigkaW5wdXQ6IEFkZE5vdGVUb09yZGVySW5wdXQhKSB7XHJcbiAgICAgICAgYWRkTm90ZVRvT3JkZXIoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBVUERBVEVfT1JERVJfTk9URSA9IGdxbGBcclxuICAgIG11dGF0aW9uIFVwZGF0ZU9yZGVyTm90ZSgkaW5wdXQ6IFVwZGF0ZU9yZGVyTm90ZUlucHV0ISkge1xyXG4gICAgICAgIHVwZGF0ZU9yZGVyTm90ZShpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGRhdGFcclxuICAgICAgICAgICAgaXNQdWJsaWNcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgREVMRVRFX09SREVSX05PVEUgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBEZWxldGVPcmRlck5vdGUoJGlkOiBJRCEpIHtcclxuICAgICAgICBkZWxldGVPcmRlck5vdGUoaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICByZXN1bHRcclxuICAgICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBUUkFOU0lUSU9OX09SREVSX1RPX1NUQVRFID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVHJhbnNpdGlvbk9yZGVyVG9TdGF0ZSgkaWQ6IElEISwgJHN0YXRlOiBTdHJpbmchKSB7XHJcbiAgICAgICAgdHJhbnNpdGlvbk9yZGVyVG9TdGF0ZShpZDogJGlkLCBzdGF0ZTogJHN0YXRlKSB7XHJcbiAgICAgICAgICAgIC4uLk9yZGVyXHJcbiAgICAgICAgICAgIC4uLkVycm9yUmVzdWx0XHJcbiAgICAgICAgICAgIC4uLiBvbiBPcmRlclN0YXRlVHJhbnNpdGlvbkVycm9yIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb25FcnJvclxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtPUkRFUl9GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFVQREFURV9PUkRFUl9DVVNUT01fRklFTERTID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVXBkYXRlT3JkZXJDdXN0b21GaWVsZHMoJGlucHV0OiBVcGRhdGVPcmRlcklucHV0ISkge1xyXG4gICAgICAgIHNldE9yZGVyQ3VzdG9tRmllbGRzKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uT3JkZXJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke09SREVSX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRSQU5TSVRJT05fRlVMRklMTE1FTlRfVE9fU1RBVEUgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBUcmFuc2l0aW9uRnVsZmlsbG1lbnRUb1N0YXRlKCRpZDogSUQhLCAkc3RhdGU6IFN0cmluZyEpIHtcclxuICAgICAgICB0cmFuc2l0aW9uRnVsZmlsbG1lbnRUb1N0YXRlKGlkOiAkaWQsIHN0YXRlOiAkc3RhdGUpIHtcclxuICAgICAgICAgICAgLi4uRnVsZmlsbG1lbnRcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICAgICAgLi4uIG9uIEZ1bGZpbGxtZW50U3RhdGVUcmFuc2l0aW9uRXJyb3Ige1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbkVycm9yXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0ZVTEZJTExNRU5UX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgTU9ESUZZX09SREVSID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gTW9kaWZ5T3JkZXIoJGlucHV0OiBNb2RpZnlPcmRlcklucHV0ISkge1xyXG4gICAgICAgIG1vZGlmeU9yZGVyKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uT3JkZXJEZXRhaWxcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke09SREVSX0RFVEFJTF9GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFERF9NQU5VQUxfUEFZTUVOVF9UT19PUkRFUiA9IGdxbGBcclxuICAgIG11dGF0aW9uIEFkZE1hbnVhbFBheW1lbnQoJGlucHV0OiBNYW51YWxQYXltZW50SW5wdXQhKSB7XHJcbiAgICAgICAgYWRkTWFudWFsUGF5bWVudFRvT3JkZXIoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5PcmRlckRldGFpbFxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7T1JERVJfREVUQUlMX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ1JFQVRFX0RSQUZUX09SREVSID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQ3JlYXRlRHJhZnRPcmRlciB7XHJcbiAgICAgICAgY3JlYXRlRHJhZnRPcmRlciB7XHJcbiAgICAgICAgICAgIC4uLk9yZGVyRGV0YWlsXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtPUkRFUl9ERVRBSUxfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgREVMRVRFX0RSQUZUX09SREVSID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlRHJhZnRPcmRlcigkb3JkZXJJZDogSUQhKSB7XHJcbiAgICAgICAgZGVsZXRlRHJhZnRPcmRlcihvcmRlcklkOiAkb3JkZXJJZCkge1xyXG4gICAgICAgICAgICByZXN1bHRcclxuICAgICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBBRERfSVRFTV9UT19EUkFGVF9PUkRFUiA9IGdxbGBcclxuICAgIG11dGF0aW9uIEFkZEl0ZW1Ub0RyYWZ0T3JkZXIoJG9yZGVySWQ6IElEISwgJGlucHV0OiBBZGRJdGVtVG9EcmFmdE9yZGVySW5wdXQhKSB7XHJcbiAgICAgICAgYWRkSXRlbVRvRHJhZnRPcmRlcihvcmRlcklkOiAkb3JkZXJJZCwgaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5PcmRlckRldGFpbFxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7T1JERVJfREVUQUlMX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQURKVVNUX0RSQUZUX09SREVSX0xJTkUgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBBZGp1c3REcmFmdE9yZGVyTGluZSgkb3JkZXJJZDogSUQhLCAkaW5wdXQ6IEFkanVzdERyYWZ0T3JkZXJMaW5lSW5wdXQhKSB7XHJcbiAgICAgICAgYWRqdXN0RHJhZnRPcmRlckxpbmUob3JkZXJJZDogJG9yZGVySWQsIGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uT3JkZXJEZXRhaWxcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke09SREVSX0RFVEFJTF9GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFJFTU9WRV9EUkFGVF9PUkRFUl9MSU5FID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gUmVtb3ZlRHJhZnRPcmRlckxpbmUoJG9yZGVySWQ6IElEISwgJG9yZGVyTGluZUlkOiBJRCEpIHtcclxuICAgICAgICByZW1vdmVEcmFmdE9yZGVyTGluZShvcmRlcklkOiAkb3JkZXJJZCwgb3JkZXJMaW5lSWQ6ICRvcmRlckxpbmVJZCkge1xyXG4gICAgICAgICAgICAuLi5PcmRlckRldGFpbFxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7T1JERVJfREVUQUlMX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgU0VUX0NVU1RPTUVSX0ZPUl9EUkFGVF9PUkRFUiA9IGdxbGBcclxuICAgIG11dGF0aW9uIFNldEN1c3RvbWVyRm9yRHJhZnRPcmRlcigkb3JkZXJJZDogSUQhLCAkY3VzdG9tZXJJZDogSUQsICRpbnB1dDogQ3JlYXRlQ3VzdG9tZXJJbnB1dCkge1xyXG4gICAgICAgIHNldEN1c3RvbWVyRm9yRHJhZnRPcmRlcihvcmRlcklkOiAkb3JkZXJJZCwgY3VzdG9tZXJJZDogJGN1c3RvbWVySWQsIGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uT3JkZXJEZXRhaWxcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke09SREVSX0RFVEFJTF9GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNFVF9TSElQUElOR19BRERSRVNTX0ZPUl9EUkFGVF9PUkRFUiA9IGdxbGBcclxuICAgIG11dGF0aW9uIFNldERyYWZ0T3JkZXJTaGlwcGluZ0FkZHJlc3MoJG9yZGVySWQ6IElEISwgJGlucHV0OiBDcmVhdGVBZGRyZXNzSW5wdXQhKSB7XHJcbiAgICAgICAgc2V0RHJhZnRPcmRlclNoaXBwaW5nQWRkcmVzcyhvcmRlcklkOiAkb3JkZXJJZCwgaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5PcmRlckRldGFpbFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7T1JERVJfREVUQUlMX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNFVF9CSUxMSU5HX0FERFJFU1NfRk9SX0RSQUZUX09SREVSID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gU2V0RHJhZnRPcmRlckJpbGxpbmdBZGRyZXNzKCRvcmRlcklkOiBJRCEsICRpbnB1dDogQ3JlYXRlQWRkcmVzc0lucHV0ISkge1xyXG4gICAgICAgIHNldERyYWZ0T3JkZXJCaWxsaW5nQWRkcmVzcyhvcmRlcklkOiAkb3JkZXJJZCwgaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5PcmRlckRldGFpbFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7T1JERVJfREVUQUlMX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFQUExZX0NPVVBPTl9DT0RFX1RPX0RSQUZUX09SREVSID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQXBwbHlDb3Vwb25Db2RlVG9EcmFmdE9yZGVyKCRvcmRlcklkOiBJRCEsICRjb3Vwb25Db2RlOiBTdHJpbmchKSB7XHJcbiAgICAgICAgYXBwbHlDb3Vwb25Db2RlVG9EcmFmdE9yZGVyKG9yZGVySWQ6ICRvcmRlcklkLCBjb3Vwb25Db2RlOiAkY291cG9uQ29kZSkge1xyXG4gICAgICAgICAgICAuLi5PcmRlckRldGFpbFxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7T1JERVJfREVUQUlMX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgUkVNT1ZFX0NPVVBPTl9DT0RFX0ZST01fRFJBRlRfT1JERVIgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBSZW1vdmVDb3Vwb25Db2RlRnJvbURyYWZ0T3JkZXIoJG9yZGVySWQ6IElEISwgJGNvdXBvbkNvZGU6IFN0cmluZyEpIHtcclxuICAgICAgICByZW1vdmVDb3Vwb25Db2RlRnJvbURyYWZ0T3JkZXIob3JkZXJJZDogJG9yZGVySWQsIGNvdXBvbkNvZGU6ICRjb3Vwb25Db2RlKSB7XHJcbiAgICAgICAgICAgIC4uLk9yZGVyRGV0YWlsXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtPUkRFUl9ERVRBSUxfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgRFJBRlRfT1JERVJfRUxJR0lCTEVfU0hJUFBJTkdfTUVUSE9EUyA9IGdxbGBcclxuICAgIHF1ZXJ5IERyYWZ0T3JkZXJFbGlnaWJsZVNoaXBwaW5nTWV0aG9kcygkb3JkZXJJZDogSUQhKSB7XHJcbiAgICAgICAgZWxpZ2libGVTaGlwcGluZ01ldGhvZHNGb3JEcmFmdE9yZGVyKG9yZGVySWQ6ICRvcmRlcklkKSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgY29kZVxyXG4gICAgICAgICAgICBkZXNjcmlwdGlvblxyXG4gICAgICAgICAgICBwcmljZVxyXG4gICAgICAgICAgICBwcmljZVdpdGhUYXhcclxuICAgICAgICAgICAgbWV0YWRhdGFcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgU0VUX0RSQUZUX09SREVSX1NISVBQSU5HX01FVEhPRCA9IGdxbGBcclxuICAgIG11dGF0aW9uIFNldERyYWZ0T3JkZXJTaGlwcGluZ01ldGhvZCgkb3JkZXJJZDogSUQhLCAkc2hpcHBpbmdNZXRob2RJZDogSUQhKSB7XHJcbiAgICAgICAgc2V0RHJhZnRPcmRlclNoaXBwaW5nTWV0aG9kKG9yZGVySWQ6ICRvcmRlcklkLCBzaGlwcGluZ01ldGhvZElkOiAkc2hpcHBpbmdNZXRob2RJZCkge1xyXG4gICAgICAgICAgICAuLi5PcmRlckRldGFpbFxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7T1JERVJfREVUQUlMX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcbiJdfQ==
594
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2RhdGEvZGVmaW5pdGlvbnMvb3JkZXItZGVmaW5pdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTdELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Q0FRbkMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7O0NBU2xDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7O0NBVWpDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Q0FheEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXdCaEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Q0FjdEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0E2Qi9DLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FrQ3JDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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Ozs7Ozs7TUFPcEMscUJBQXFCO01BQ3JCLHFCQUFxQjtDQUMxQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7O01BT3BDLHFCQUFxQjtNQUNyQixxQkFBcUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLEdBQUcsQ0FBQTs7Ozs7OztNQU96QyxxQkFBcUI7TUFDckIscUJBQXFCO0NBQzFCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQ0FBb0MsR0FBRyxHQUFHLENBQUE7Ozs7OztNQU1qRCxxQkFBcUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG1DQUFtQyxHQUFHLEdBQUcsQ0FBQTs7Ozs7O01BTWhELHFCQUFxQjtDQUMxQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsR0FBRyxDQUFBOzs7Ozs7O01BTzdDLHFCQUFxQjtNQUNyQixxQkFBcUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG1DQUFtQyxHQUFHLEdBQUcsQ0FBQTs7Ozs7O01BTWhELHFCQUFxQjtDQUMxQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Q0FZdkQsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLEdBQUcsQ0FBQTs7Ozs7OztNQU81QyxxQkFBcUI7TUFDckIscUJBQXFCO0NBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBncWwgfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XHJcblxyXG5pbXBvcnQgeyBFUlJPUl9SRVNVTFRfRlJBR01FTlQgfSBmcm9tICcuL3NoYXJlZC1kZWZpbml0aW9ucyc7XHJcblxyXG5leHBvcnQgY29uc3QgRElTQ09VTlRfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBEaXNjb3VudCBvbiBEaXNjb3VudCB7XHJcbiAgICAgICAgYWRqdXN0bWVudFNvdXJjZVxyXG4gICAgICAgIGFtb3VudFxyXG4gICAgICAgIGFtb3VudFdpdGhUYXhcclxuICAgICAgICBkZXNjcmlwdGlvblxyXG4gICAgICAgIHR5cGVcclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBQQVlNRU5UX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgUGF5bWVudCBvbiBQYXltZW50IHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIHRyYW5zYWN0aW9uSWRcclxuICAgICAgICBhbW91bnRcclxuICAgICAgICBtZXRob2RcclxuICAgICAgICBzdGF0ZVxyXG4gICAgICAgIG1ldGFkYXRhXHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgUkVGVU5EX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgUmVmdW5kIG9uIFJlZnVuZCB7XHJcbiAgICAgICAgaWRcclxuICAgICAgICBzdGF0ZVxyXG4gICAgICAgIGl0ZW1zXHJcbiAgICAgICAgc2hpcHBpbmdcclxuICAgICAgICBhZGp1c3RtZW50XHJcbiAgICAgICAgdHJhbnNhY3Rpb25JZFxyXG4gICAgICAgIHBheW1lbnRJZFxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IE9SREVSX0FERFJFU1NfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBPcmRlckFkZHJlc3Mgb24gT3JkZXJBZGRyZXNzIHtcclxuICAgICAgICBmdWxsTmFtZVxyXG4gICAgICAgIGNvbXBhbnlcclxuICAgICAgICBzdHJlZXRMaW5lMVxyXG4gICAgICAgIHN0cmVldExpbmUyXHJcbiAgICAgICAgY2l0eVxyXG4gICAgICAgIHByb3ZpbmNlXHJcbiAgICAgICAgcG9zdGFsQ29kZVxyXG4gICAgICAgIGNvdW50cnlcclxuICAgICAgICBjb3VudHJ5Q29kZVxyXG4gICAgICAgIHBob25lTnVtYmVyXHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgT1JERVJfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBPcmRlciBvbiBPcmRlciB7XHJcbiAgICAgICAgaWRcclxuICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICB0eXBlXHJcbiAgICAgICAgb3JkZXJQbGFjZWRBdFxyXG4gICAgICAgIGNvZGVcclxuICAgICAgICBzdGF0ZVxyXG4gICAgICAgIG5leHRTdGF0ZXNcclxuICAgICAgICB0b3RhbFxyXG4gICAgICAgIHRvdGFsV2l0aFRheFxyXG4gICAgICAgIGN1cnJlbmN5Q29kZVxyXG4gICAgICAgIGN1c3RvbWVyIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgZmlyc3ROYW1lXHJcbiAgICAgICAgICAgIGxhc3ROYW1lXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNoaXBwaW5nTGluZXMge1xyXG4gICAgICAgICAgICBzaGlwcGluZ01ldGhvZCB7XHJcbiAgICAgICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgRlVMRklMTE1FTlRfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBGdWxmaWxsbWVudCBvbiBGdWxmaWxsbWVudCB7XHJcbiAgICAgICAgaWRcclxuICAgICAgICBzdGF0ZVxyXG4gICAgICAgIG5leHRTdGF0ZXNcclxuICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICBtZXRob2RcclxuICAgICAgICBsaW5lcyB7XHJcbiAgICAgICAgICAgIG9yZGVyTGluZUlkXHJcbiAgICAgICAgICAgIHF1YW50aXR5XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRyYWNraW5nQ29kZVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBBWU1FTlRfV0lUSF9SRUZVTkRTX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgUGF5bWVudFdpdGhSZWZ1bmRzIG9uIFBheW1lbnQge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgdHJhbnNhY3Rpb25JZFxyXG4gICAgICAgIGFtb3VudFxyXG4gICAgICAgIG1ldGhvZFxyXG4gICAgICAgIHN0YXRlXHJcbiAgICAgICAgbmV4dFN0YXRlc1xyXG4gICAgICAgIGVycm9yTWVzc2FnZVxyXG4gICAgICAgIG1ldGFkYXRhXHJcbiAgICAgICAgcmVmdW5kcyB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgICAgICBzdGF0ZVxyXG4gICAgICAgICAgICBpdGVtc1xyXG4gICAgICAgICAgICBhZGp1c3RtZW50XHJcbiAgICAgICAgICAgIHRvdGFsXHJcbiAgICAgICAgICAgIHBheW1lbnRJZFxyXG4gICAgICAgICAgICByZWFzb25cclxuICAgICAgICAgICAgdHJhbnNhY3Rpb25JZFxyXG4gICAgICAgICAgICBtZXRob2RcclxuICAgICAgICAgICAgbWV0YWRhdGFcclxuICAgICAgICAgICAgbGluZXMge1xyXG4gICAgICAgICAgICAgICAgb3JkZXJMaW5lSWRcclxuICAgICAgICAgICAgICAgIHF1YW50aXR5XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgT1JERVJfTElORV9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IE9yZGVyTGluZSBvbiBPcmRlckxpbmUge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgZmVhdHVyZWRBc3NldCB7XHJcbiAgICAgICAgICAgIHByZXZpZXdcclxuICAgICAgICB9XHJcbiAgICAgICAgcHJvZHVjdFZhcmlhbnQge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgIHNrdVxyXG4gICAgICAgICAgICB0cmFja0ludmVudG9yeVxyXG4gICAgICAgICAgICBzdG9ja09uSGFuZFxyXG4gICAgICAgIH1cclxuICAgICAgICBkaXNjb3VudHMge1xyXG4gICAgICAgICAgICAuLi5EaXNjb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBmdWxmaWxsbWVudExpbmVzIHtcclxuICAgICAgICAgICAgZnVsZmlsbG1lbnRJZFxyXG4gICAgICAgICAgICBxdWFudGl0eVxyXG4gICAgICAgIH1cclxuICAgICAgICB1bml0UHJpY2VcclxuICAgICAgICB1bml0UHJpY2VXaXRoVGF4XHJcbiAgICAgICAgcHJvcmF0ZWRVbml0UHJpY2VcclxuICAgICAgICBwcm9yYXRlZFVuaXRQcmljZVdpdGhUYXhcclxuICAgICAgICBxdWFudGl0eVxyXG4gICAgICAgIG9yZGVyUGxhY2VkUXVhbnRpdHlcclxuICAgICAgICBsaW5lUHJpY2VcclxuICAgICAgICBsaW5lVGF4XHJcbiAgICAgICAgbGluZVByaWNlV2l0aFRheFxyXG4gICAgICAgIGRpc2NvdW50ZWRMaW5lUHJpY2VcclxuICAgICAgICBkaXNjb3VudGVkTGluZVByaWNlV2l0aFRheFxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IE9SREVSX0RFVEFJTF9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IE9yZGVyRGV0YWlsIG9uIE9yZGVyIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgIHR5cGVcclxuICAgICAgICBhZ2dyZWdhdGVPcmRlciB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGNvZGVcclxuICAgICAgICB9XHJcbiAgICAgICAgc2VsbGVyT3JkZXJzIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgY29kZVxyXG4gICAgICAgICAgICBjaGFubmVscyB7XHJcbiAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgY29kZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvZGVcclxuICAgICAgICBzdGF0ZVxyXG4gICAgICAgIG5leHRTdGF0ZXNcclxuICAgICAgICBhY3RpdmVcclxuICAgICAgICBjb3Vwb25Db2Rlc1xyXG4gICAgICAgIGN1c3RvbWVyIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgZmlyc3ROYW1lXHJcbiAgICAgICAgICAgIGxhc3ROYW1lXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxpbmVzIHtcclxuICAgICAgICAgICAgLi4uT3JkZXJMaW5lXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN1cmNoYXJnZXMge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBza3VcclxuICAgICAgICAgICAgZGVzY3JpcHRpb25cclxuICAgICAgICAgICAgcHJpY2VcclxuICAgICAgICAgICAgcHJpY2VXaXRoVGF4XHJcbiAgICAgICAgICAgIHRheFJhdGVcclxuICAgICAgICB9XHJcbiAgICAgICAgZGlzY291bnRzIHtcclxuICAgICAgICAgICAgLi4uRGlzY291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgcHJvbW90aW9ucyB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGNvdXBvbkNvZGVcclxuICAgICAgICB9XHJcbiAgICAgICAgc3ViVG90YWxcclxuICAgICAgICBzdWJUb3RhbFdpdGhUYXhcclxuICAgICAgICB0b3RhbFxyXG4gICAgICAgIHRvdGFsV2l0aFRheFxyXG4gICAgICAgIGN1cnJlbmN5Q29kZVxyXG4gICAgICAgIHNoaXBwaW5nXHJcbiAgICAgICAgc2hpcHBpbmdXaXRoVGF4XHJcbiAgICAgICAgc2hpcHBpbmdMaW5lcyB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGRpc2NvdW50ZWRQcmljZVdpdGhUYXhcclxuICAgICAgICAgICAgc2hpcHBpbmdNZXRob2Qge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIGNvZGVcclxuICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgICAgIGZ1bGZpbGxtZW50SGFuZGxlckNvZGVcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGF4U3VtbWFyeSB7XHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uXHJcbiAgICAgICAgICAgIHRheEJhc2VcclxuICAgICAgICAgICAgdGF4UmF0ZVxyXG4gICAgICAgICAgICB0YXhUb3RhbFxyXG4gICAgICAgIH1cclxuICAgICAgICBzaGlwcGluZ0FkZHJlc3Mge1xyXG4gICAgICAgICAgICAuLi5PcmRlckFkZHJlc3NcclxuICAgICAgICB9XHJcbiAgICAgICAgYmlsbGluZ0FkZHJlc3Mge1xyXG4gICAgICAgICAgICAuLi5PcmRlckFkZHJlc3NcclxuICAgICAgICB9XHJcbiAgICAgICAgcGF5bWVudHMge1xyXG4gICAgICAgICAgICAuLi5QYXltZW50V2l0aFJlZnVuZHNcclxuICAgICAgICB9XHJcbiAgICAgICAgZnVsZmlsbG1lbnRzIHtcclxuICAgICAgICAgICAgLi4uRnVsZmlsbG1lbnRcclxuICAgICAgICB9XHJcbiAgICAgICAgbW9kaWZpY2F0aW9ucyB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgICAgICBpc1NldHRsZWRcclxuICAgICAgICAgICAgcHJpY2VDaGFuZ2VcclxuICAgICAgICAgICAgbm90ZVxyXG4gICAgICAgICAgICBwYXltZW50IHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICBhbW91bnRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsaW5lcyB7XHJcbiAgICAgICAgICAgICAgICBvcmRlckxpbmVJZFxyXG4gICAgICAgICAgICAgICAgcXVhbnRpdHlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZWZ1bmQge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIHBheW1lbnRJZFxyXG4gICAgICAgICAgICAgICAgdG90YWxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzdXJjaGFyZ2VzIHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0RJU0NPVU5UX0ZSQUdNRU5UfVxyXG4gICAgJHtPUkRFUl9BRERSRVNTX0ZSQUdNRU5UfVxyXG4gICAgJHtGVUxGSUxMTUVOVF9GUkFHTUVOVH1cclxuICAgICR7T1JERVJfTElORV9GUkFHTUVOVH1cclxuICAgICR7UEFZTUVOVF9XSVRIX1JFRlVORFNfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX09SREVSU19MSVNUID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0T3JkZXJMaXN0KCRvcHRpb25zOiBPcmRlckxpc3RPcHRpb25zKSB7XHJcbiAgICAgICAgb3JkZXJzKG9wdGlvbnM6ICRvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgIC4uLk9yZGVyXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdG90YWxJdGVtc1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7T1JERVJfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX09SREVSID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0T3JkZXIoJGlkOiBJRCEpIHtcclxuICAgICAgICBvcmRlcihpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIC4uLk9yZGVyRGV0YWlsXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtPUkRFUl9ERVRBSUxfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgU0VUVExFX1BBWU1FTlQgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBTZXR0bGVQYXltZW50KCRpZDogSUQhKSB7XHJcbiAgICAgICAgc2V0dGxlUGF5bWVudChpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIC4uLlBheW1lbnRcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICAgICAgLi4uIG9uIFNldHRsZVBheW1lbnRFcnJvciB7XHJcbiAgICAgICAgICAgICAgICBwYXltZW50RXJyb3JNZXNzYWdlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLi4uIG9uIFBheW1lbnRTdGF0ZVRyYW5zaXRpb25FcnJvciB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uRXJyb3JcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuLi4gb24gT3JkZXJTdGF0ZVRyYW5zaXRpb25FcnJvciB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uRXJyb3JcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG4gICAgJHtQQVlNRU5UX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IENBTkNFTF9QQVlNRU5UID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQ2FuY2VsUGF5bWVudCgkaWQ6IElEISkge1xyXG4gICAgICAgIGNhbmNlbFBheW1lbnQoaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICAuLi5QYXltZW50XHJcbiAgICAgICAgICAgIC4uLkVycm9yUmVzdWx0XHJcbiAgICAgICAgICAgIC4uLiBvbiBDYW5jZWxQYXltZW50RXJyb3Ige1xyXG4gICAgICAgICAgICAgICAgcGF5bWVudEVycm9yTWVzc2FnZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC4uLiBvbiBQYXltZW50U3RhdGVUcmFuc2l0aW9uRXJyb3Ige1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbkVycm9yXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0VSUk9SX1JFU1VMVF9GUkFHTUVOVH1cclxuICAgICR7UEFZTUVOVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBUUkFOU0lUSU9OX1BBWU1FTlRfVE9fU1RBVEUgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBUcmFuc2l0aW9uUGF5bWVudFRvU3RhdGUoJGlkOiBJRCEsICRzdGF0ZTogU3RyaW5nISkge1xyXG4gICAgICAgIHRyYW5zaXRpb25QYXltZW50VG9TdGF0ZShpZDogJGlkLCBzdGF0ZTogJHN0YXRlKSB7XHJcbiAgICAgICAgICAgIC4uLlBheW1lbnRcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICAgICAgLi4uIG9uIFBheW1lbnRTdGF0ZVRyYW5zaXRpb25FcnJvciB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uRXJyb3JcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7UEFZTUVOVF9GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IENSRUFURV9GVUxGSUxMTUVOVCA9IGdxbGBcclxuICAgIG11dGF0aW9uIENyZWF0ZUZ1bGZpbGxtZW50KCRpbnB1dDogRnVsZmlsbE9yZGVySW5wdXQhKSB7XHJcbiAgICAgICAgYWRkRnVsZmlsbG1lbnRUb09yZGVyKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uRnVsZmlsbG1lbnRcclxuICAgICAgICAgICAgLi4uIG9uIENyZWF0ZUZ1bGZpbGxtZW50RXJyb3Ige1xyXG4gICAgICAgICAgICAgICAgZXJyb3JDb2RlXHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgICAgICAgICBmdWxmaWxsbWVudEhhbmRsZXJFcnJvclxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC4uLiBvbiBGdWxmaWxsbWVudFN0YXRlVHJhbnNpdGlvbkVycm9yIHtcclxuICAgICAgICAgICAgICAgIGVycm9yQ29kZVxyXG4gICAgICAgICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbkVycm9yXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0ZVTEZJTExNRU5UX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ0FOQ0VMX09SREVSID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQ2FuY2VsT3JkZXIoJGlucHV0OiBDYW5jZWxPcmRlcklucHV0ISkge1xyXG4gICAgICAgIGNhbmNlbE9yZGVyKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uT3JkZXJEZXRhaWxcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke09SREVSX0RFVEFJTF9GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFJFRlVORF9PUkRFUiA9IGdxbGBcclxuICAgIG11dGF0aW9uIFJlZnVuZE9yZGVyKCRpbnB1dDogUmVmdW5kT3JkZXJJbnB1dCEpIHtcclxuICAgICAgICByZWZ1bmRPcmRlcihpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLlJlZnVuZFxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7UkVGVU5EX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgU0VUVExFX1JFRlVORCA9IGdxbGBcclxuICAgIG11dGF0aW9uIFNldHRsZVJlZnVuZCgkaW5wdXQ6IFNldHRsZVJlZnVuZElucHV0ISkge1xyXG4gICAgICAgIHNldHRsZVJlZnVuZChpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLlJlZnVuZFxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7UkVGVU5EX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX09SREVSX0hJU1RPUlkgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRPcmRlckhpc3RvcnkoJGlkOiBJRCEsICRvcHRpb25zOiBIaXN0b3J5RW50cnlMaXN0T3B0aW9ucykge1xyXG4gICAgICAgIG9yZGVyKGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgaGlzdG9yeShvcHRpb25zOiAkb3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgdG90YWxJdGVtc1xyXG4gICAgICAgICAgICAgICAgaXRlbXMge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZVxyXG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgICAgICAgICAgICAgIGlzUHVibGljXHJcbiAgICAgICAgICAgICAgICAgICAgYWRtaW5pc3RyYXRvciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0TmFtZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0TmFtZVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBkYXRhXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQUREX05PVEVfVE9fT1JERVIgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBBZGROb3RlVG9PcmRlcigkaW5wdXQ6IEFkZE5vdGVUb09yZGVySW5wdXQhKSB7XHJcbiAgICAgICAgYWRkTm90ZVRvT3JkZXIoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBVUERBVEVfT1JERVJfTk9URSA9IGdxbGBcclxuICAgIG11dGF0aW9uIFVwZGF0ZU9yZGVyTm90ZSgkaW5wdXQ6IFVwZGF0ZU9yZGVyTm90ZUlucHV0ISkge1xyXG4gICAgICAgIHVwZGF0ZU9yZGVyTm90ZShpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGRhdGFcclxuICAgICAgICAgICAgaXNQdWJsaWNcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgREVMRVRFX09SREVSX05PVEUgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBEZWxldGVPcmRlck5vdGUoJGlkOiBJRCEpIHtcclxuICAgICAgICBkZWxldGVPcmRlck5vdGUoaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICByZXN1bHRcclxuICAgICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBUUkFOU0lUSU9OX09SREVSX1RPX1NUQVRFID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVHJhbnNpdGlvbk9yZGVyVG9TdGF0ZSgkaWQ6IElEISwgJHN0YXRlOiBTdHJpbmchKSB7XHJcbiAgICAgICAgdHJhbnNpdGlvbk9yZGVyVG9TdGF0ZShpZDogJGlkLCBzdGF0ZTogJHN0YXRlKSB7XHJcbiAgICAgICAgICAgIC4uLk9yZGVyXHJcbiAgICAgICAgICAgIC4uLkVycm9yUmVzdWx0XHJcbiAgICAgICAgICAgIC4uLiBvbiBPcmRlclN0YXRlVHJhbnNpdGlvbkVycm9yIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb25FcnJvclxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtPUkRFUl9GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFVQREFURV9PUkRFUl9DVVNUT01fRklFTERTID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVXBkYXRlT3JkZXJDdXN0b21GaWVsZHMoJGlucHV0OiBVcGRhdGVPcmRlcklucHV0ISkge1xyXG4gICAgICAgIHNldE9yZGVyQ3VzdG9tRmllbGRzKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uT3JkZXJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke09SREVSX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRSQU5TSVRJT05fRlVMRklMTE1FTlRfVE9fU1RBVEUgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBUcmFuc2l0aW9uRnVsZmlsbG1lbnRUb1N0YXRlKCRpZDogSUQhLCAkc3RhdGU6IFN0cmluZyEpIHtcclxuICAgICAgICB0cmFuc2l0aW9uRnVsZmlsbG1lbnRUb1N0YXRlKGlkOiAkaWQsIHN0YXRlOiAkc3RhdGUpIHtcclxuICAgICAgICAgICAgLi4uRnVsZmlsbG1lbnRcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICAgICAgLi4uIG9uIEZ1bGZpbGxtZW50U3RhdGVUcmFuc2l0aW9uRXJyb3Ige1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbkVycm9yXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0ZVTEZJTExNRU5UX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgTU9ESUZZX09SREVSID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gTW9kaWZ5T3JkZXIoJGlucHV0OiBNb2RpZnlPcmRlcklucHV0ISkge1xyXG4gICAgICAgIG1vZGlmeU9yZGVyKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uT3JkZXJEZXRhaWxcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke09SREVSX0RFVEFJTF9GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFERF9NQU5VQUxfUEFZTUVOVF9UT19PUkRFUiA9IGdxbGBcclxuICAgIG11dGF0aW9uIEFkZE1hbnVhbFBheW1lbnQoJGlucHV0OiBNYW51YWxQYXltZW50SW5wdXQhKSB7XHJcbiAgICAgICAgYWRkTWFudWFsUGF5bWVudFRvT3JkZXIoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5PcmRlckRldGFpbFxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7T1JERVJfREVUQUlMX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ1JFQVRFX0RSQUZUX09SREVSID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQ3JlYXRlRHJhZnRPcmRlciB7XHJcbiAgICAgICAgY3JlYXRlRHJhZnRPcmRlciB7XHJcbiAgICAgICAgICAgIC4uLk9yZGVyRGV0YWlsXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtPUkRFUl9ERVRBSUxfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgREVMRVRFX0RSQUZUX09SREVSID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlRHJhZnRPcmRlcigkb3JkZXJJZDogSUQhKSB7XHJcbiAgICAgICAgZGVsZXRlRHJhZnRPcmRlcihvcmRlcklkOiAkb3JkZXJJZCkge1xyXG4gICAgICAgICAgICByZXN1bHRcclxuICAgICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBBRERfSVRFTV9UT19EUkFGVF9PUkRFUiA9IGdxbGBcclxuICAgIG11dGF0aW9uIEFkZEl0ZW1Ub0RyYWZ0T3JkZXIoJG9yZGVySWQ6IElEISwgJGlucHV0OiBBZGRJdGVtVG9EcmFmdE9yZGVySW5wdXQhKSB7XHJcbiAgICAgICAgYWRkSXRlbVRvRHJhZnRPcmRlcihvcmRlcklkOiAkb3JkZXJJZCwgaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5PcmRlckRldGFpbFxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7T1JERVJfREVUQUlMX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQURKVVNUX0RSQUZUX09SREVSX0xJTkUgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBBZGp1c3REcmFmdE9yZGVyTGluZSgkb3JkZXJJZDogSUQhLCAkaW5wdXQ6IEFkanVzdERyYWZ0T3JkZXJMaW5lSW5wdXQhKSB7XHJcbiAgICAgICAgYWRqdXN0RHJhZnRPcmRlckxpbmUob3JkZXJJZDogJG9yZGVySWQsIGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uT3JkZXJEZXRhaWxcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke09SREVSX0RFVEFJTF9GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFJFTU9WRV9EUkFGVF9PUkRFUl9MSU5FID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gUmVtb3ZlRHJhZnRPcmRlckxpbmUoJG9yZGVySWQ6IElEISwgJG9yZGVyTGluZUlkOiBJRCEpIHtcclxuICAgICAgICByZW1vdmVEcmFmdE9yZGVyTGluZShvcmRlcklkOiAkb3JkZXJJZCwgb3JkZXJMaW5lSWQ6ICRvcmRlckxpbmVJZCkge1xyXG4gICAgICAgICAgICAuLi5PcmRlckRldGFpbFxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7T1JERVJfREVUQUlMX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgU0VUX0NVU1RPTUVSX0ZPUl9EUkFGVF9PUkRFUiA9IGdxbGBcclxuICAgIG11dGF0aW9uIFNldEN1c3RvbWVyRm9yRHJhZnRPcmRlcigkb3JkZXJJZDogSUQhLCAkY3VzdG9tZXJJZDogSUQsICRpbnB1dDogQ3JlYXRlQ3VzdG9tZXJJbnB1dCkge1xyXG4gICAgICAgIHNldEN1c3RvbWVyRm9yRHJhZnRPcmRlcihvcmRlcklkOiAkb3JkZXJJZCwgY3VzdG9tZXJJZDogJGN1c3RvbWVySWQsIGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uT3JkZXJEZXRhaWxcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke09SREVSX0RFVEFJTF9GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNFVF9TSElQUElOR19BRERSRVNTX0ZPUl9EUkFGVF9PUkRFUiA9IGdxbGBcclxuICAgIG11dGF0aW9uIFNldERyYWZ0T3JkZXJTaGlwcGluZ0FkZHJlc3MoJG9yZGVySWQ6IElEISwgJGlucHV0OiBDcmVhdGVBZGRyZXNzSW5wdXQhKSB7XHJcbiAgICAgICAgc2V0RHJhZnRPcmRlclNoaXBwaW5nQWRkcmVzcyhvcmRlcklkOiAkb3JkZXJJZCwgaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5PcmRlckRldGFpbFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7T1JERVJfREVUQUlMX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNFVF9CSUxMSU5HX0FERFJFU1NfRk9SX0RSQUZUX09SREVSID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gU2V0RHJhZnRPcmRlckJpbGxpbmdBZGRyZXNzKCRvcmRlcklkOiBJRCEsICRpbnB1dDogQ3JlYXRlQWRkcmVzc0lucHV0ISkge1xyXG4gICAgICAgIHNldERyYWZ0T3JkZXJCaWxsaW5nQWRkcmVzcyhvcmRlcklkOiAkb3JkZXJJZCwgaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5PcmRlckRldGFpbFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7T1JERVJfREVUQUlMX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFQUExZX0NPVVBPTl9DT0RFX1RPX0RSQUZUX09SREVSID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQXBwbHlDb3Vwb25Db2RlVG9EcmFmdE9yZGVyKCRvcmRlcklkOiBJRCEsICRjb3Vwb25Db2RlOiBTdHJpbmchKSB7XHJcbiAgICAgICAgYXBwbHlDb3Vwb25Db2RlVG9EcmFmdE9yZGVyKG9yZGVySWQ6ICRvcmRlcklkLCBjb3Vwb25Db2RlOiAkY291cG9uQ29kZSkge1xyXG4gICAgICAgICAgICAuLi5PcmRlckRldGFpbFxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7T1JERVJfREVUQUlMX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgUkVNT1ZFX0NPVVBPTl9DT0RFX0ZST01fRFJBRlRfT1JERVIgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBSZW1vdmVDb3Vwb25Db2RlRnJvbURyYWZ0T3JkZXIoJG9yZGVySWQ6IElEISwgJGNvdXBvbkNvZGU6IFN0cmluZyEpIHtcclxuICAgICAgICByZW1vdmVDb3Vwb25Db2RlRnJvbURyYWZ0T3JkZXIob3JkZXJJZDogJG9yZGVySWQsIGNvdXBvbkNvZGU6ICRjb3Vwb25Db2RlKSB7XHJcbiAgICAgICAgICAgIC4uLk9yZGVyRGV0YWlsXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtPUkRFUl9ERVRBSUxfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgRFJBRlRfT1JERVJfRUxJR0lCTEVfU0hJUFBJTkdfTUVUSE9EUyA9IGdxbGBcclxuICAgIHF1ZXJ5IERyYWZ0T3JkZXJFbGlnaWJsZVNoaXBwaW5nTWV0aG9kcygkb3JkZXJJZDogSUQhKSB7XHJcbiAgICAgICAgZWxpZ2libGVTaGlwcGluZ01ldGhvZHNGb3JEcmFmdE9yZGVyKG9yZGVySWQ6ICRvcmRlcklkKSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgY29kZVxyXG4gICAgICAgICAgICBkZXNjcmlwdGlvblxyXG4gICAgICAgICAgICBwcmljZVxyXG4gICAgICAgICAgICBwcmljZVdpdGhUYXhcclxuICAgICAgICAgICAgbWV0YWRhdGFcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgU0VUX0RSQUZUX09SREVSX1NISVBQSU5HX01FVEhPRCA9IGdxbGBcclxuICAgIG11dGF0aW9uIFNldERyYWZ0T3JkZXJTaGlwcGluZ01ldGhvZCgkb3JkZXJJZDogSUQhLCAkc2hpcHBpbmdNZXRob2RJZDogSUQhKSB7XHJcbiAgICAgICAgc2V0RHJhZnRPcmRlclNoaXBwaW5nTWV0aG9kKG9yZGVySWQ6ICRvcmRlcklkLCBzaGlwcGluZ01ldGhvZElkOiAkc2hpcHBpbmdNZXRob2RJZCkge1xyXG4gICAgICAgICAgICAuLi5PcmRlckRldGFpbFxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7T1JERVJfREVUQUlMX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcbiJdfQ==
@@ -628,6 +628,7 @@ export const GET_SERVER_CONFIG = gql `
628
628
  globalSettings {
629
629
  id
630
630
  serverConfig {
631
+ moneyStrategyPrecision
631
632
  orderProcess {
632
633
  name
633
634
  to
@@ -638,86 +639,9 @@ export const GET_SERVER_CONFIG = gql `
638
639
  description
639
640
  assignable
640
641
  }
641
- customFieldConfig {
642
- Address {
643
- ...CustomFields
644
- }
645
- Administrator {
646
- ...CustomFields
647
- }
648
- Asset {
649
- ...CustomFields
650
- }
651
- Channel {
652
- ...CustomFields
653
- }
654
- Collection {
655
- ...CustomFields
656
- }
657
- Customer {
658
- ...CustomFields
659
- }
660
- CustomerGroup {
661
- ...CustomFields
662
- }
663
- Facet {
664
- ...CustomFields
665
- }
666
- FacetValue {
667
- ...CustomFields
668
- }
669
- Fulfillment {
670
- ...CustomFields
671
- }
672
- GlobalSettings {
673
- ...CustomFields
674
- }
675
- Order {
676
- ...CustomFields
677
- }
678
- OrderLine {
679
- ...CustomFields
680
- }
681
- PaymentMethod {
682
- ...CustomFields
683
- }
684
- Product {
685
- ...CustomFields
686
- }
687
- ProductOption {
688
- ...CustomFields
689
- }
690
- ProductOptionGroup {
691
- ...CustomFields
692
- }
693
- ProductVariant {
694
- ...CustomFields
695
- }
696
- Promotion {
697
- ...CustomFields
698
- }
699
- Region {
700
- ...CustomFields
701
- }
702
- Seller {
703
- ...CustomFields
704
- }
705
- ShippingMethod {
706
- ...CustomFields
707
- }
708
- StockLocation {
709
- ...CustomFields
710
- }
711
- TaxCategory {
712
- ...CustomFields
713
- }
714
- TaxRate {
715
- ...CustomFields
716
- }
717
- User {
718
- ...CustomFields
719
- }
720
- Zone {
642
+ entityCustomFields {
643
+ entityName
644
+ customFields {
721
645
  ...CustomFields
722
646
  }
723
647
  }
@@ -807,4 +731,4 @@ export const RUN_PENDING_SEARCH_INDEX_UPDATES = gql `
807
731
  }
808
732
  }
809
733
  `;
810
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtZGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2RhdGEvZGVmaW5pdGlvbnMvc2V0dGluZ3MtZGVmaW5pdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFDSCxtQ0FBbUMsRUFDbkMsK0JBQStCLEVBQy9CLHFCQUFxQixHQUN4QixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Q0FjbEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Q0FXekMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUE7Ozs7OztNQU0zQixnQkFBZ0I7Q0FDckIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUE7Ozs7OztNQU0zQixnQkFBZ0I7Q0FDckIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Q0FPaEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQTs7Ozs7OztDQU9sQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7OztNQVUxQixnQkFBZ0I7Q0FDckIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUE7Ozs7OztNQU1yQixhQUFhO0NBQ2xCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFBOzs7Ozs7TUFNeEIsYUFBYTtDQUNsQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BcUc5QiwwQkFBMEI7Q0FDL0IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FpQm5DLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFBOzs7Ozs7TUFNekIsaUJBQWlCO0NBQ3RCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7TUFTMUIsaUJBQWlCO0NBQ3RCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFBOzs7Ozs7TUFNM0IsaUJBQWlCO0NBQ3RCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Q0FPcEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUE7Ozs7OztNQU12QixpQkFBaUI7Q0FDdEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUE7Ozs7OztNQU1wQixpQkFBaUI7Q0FDdEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLEdBQUcsQ0FBQTs7OztDQUlsRCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Q0FNbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdxbCB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBDT05GSUdVUkFCTEVfT1BFUkFUSU9OX0RFRl9GUkFHTUVOVCxcclxuICAgIENPTkZJR1VSQUJMRV9PUEVSQVRJT05fRlJBR01FTlQsXHJcbiAgICBFUlJPUl9SRVNVTFRfRlJBR01FTlQsXHJcbn0gZnJvbSAnLi9zaGFyZWQtZGVmaW5pdGlvbnMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IENPVU5UUllfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBDb3VudHJ5IG9uIENvdW50cnkge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgY29kZVxyXG4gICAgICAgIG5hbWVcclxuICAgICAgICBlbmFibGVkXHJcbiAgICAgICAgdHJhbnNsYXRpb25zIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX0FWQUlMQUJMRV9DT1VOVFJJRVMgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRBdmFpbGFibGVDb3VudHJpZXMge1xyXG4gICAgICAgIGNvdW50cmllcyhvcHRpb25zOiB7IGZpbHRlcjogeyBlbmFibGVkOiB7IGVxOiB0cnVlIH0gfSB9KSB7XHJcbiAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICBjb2RlXHJcbiAgICAgICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgICAgICBlbmFibGVkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ1JFQVRFX0NPVU5UUlkgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBDcmVhdGVDb3VudHJ5KCRpbnB1dDogQ3JlYXRlQ291bnRyeUlucHV0ISkge1xyXG4gICAgICAgIGNyZWF0ZUNvdW50cnkoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5Db3VudHJ5XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtDT1VOVFJZX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFVQREFURV9DT1VOVFJZID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVXBkYXRlQ291bnRyeSgkaW5wdXQ6IFVwZGF0ZUNvdW50cnlJbnB1dCEpIHtcclxuICAgICAgICB1cGRhdGVDb3VudHJ5KGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uQ291bnRyeVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7Q09VTlRSWV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUxFVEVfQ09VTlRSWSA9IGdxbGBcclxuICAgIG11dGF0aW9uIERlbGV0ZUNvdW50cnkoJGlkOiBJRCEpIHtcclxuICAgICAgICBkZWxldGVDb3VudHJ5KGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgcmVzdWx0XHJcbiAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgREVMRVRFX0NPVU5UUklFUyA9IGdxbGBcclxuICAgIG11dGF0aW9uIERlbGV0ZUNvdW50cmllcygkaWRzOiBbSUQhXSEpIHtcclxuICAgICAgICBkZWxldGVDb3VudHJpZXMoaWRzOiAkaWRzKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFpPTkVfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBab25lIG9uIFpvbmUge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgbmFtZVxyXG4gICAgICAgIG1lbWJlcnMge1xyXG4gICAgICAgICAgICAuLi5Db3VudHJ5XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtDT1VOVFJZX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9aT05FID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0Wm9uZSgkaWQ6IElEISkge1xyXG4gICAgICAgIHpvbmUoaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICAuLi5ab25lXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtaT05FX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IENSRUFURV9aT05FID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQ3JlYXRlWm9uZSgkaW5wdXQ6IENyZWF0ZVpvbmVJbnB1dCEpIHtcclxuICAgICAgICBjcmVhdGVab25lKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uWm9uZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7Wk9ORV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBVUERBVEVfWk9ORSA9IGdxbGBcclxuICAgIG11dGF0aW9uIFVwZGF0ZVpvbmUoJGlucHV0OiBVcGRhdGVab25lSW5wdXQhKSB7XHJcbiAgICAgICAgdXBkYXRlWm9uZShpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLlpvbmVcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1pPTkVfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgREVMRVRFX1pPTkUgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBEZWxldGVab25lKCRpZDogSUQhKSB7XHJcbiAgICAgICAgZGVsZXRlWm9uZShpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICAgICAgcmVzdWx0XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFTEVURV9aT05FUyA9IGdxbGBcclxuICAgIG11dGF0aW9uIERlbGV0ZVpvbmVzKCRpZHM6IFtJRCFdISkge1xyXG4gICAgICAgIGRlbGV0ZVpvbmVzKGlkczogJGlkcykge1xyXG4gICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBBRERfTUVNQkVSU19UT19aT05FID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQWRkTWVtYmVyc1RvWm9uZSgkem9uZUlkOiBJRCEsICRtZW1iZXJJZHM6IFtJRCFdISkge1xyXG4gICAgICAgIGFkZE1lbWJlcnNUb1pvbmUoem9uZUlkOiAkem9uZUlkLCBtZW1iZXJJZHM6ICRtZW1iZXJJZHMpIHtcclxuICAgICAgICAgICAgLi4uWm9uZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7Wk9ORV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBSRU1PVkVfTUVNQkVSU19GUk9NX1pPTkUgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBSZW1vdmVNZW1iZXJzRnJvbVpvbmUoJHpvbmVJZDogSUQhLCAkbWVtYmVySWRzOiBbSUQhXSEpIHtcclxuICAgICAgICByZW1vdmVNZW1iZXJzRnJvbVpvbmUoem9uZUlkOiAkem9uZUlkLCBtZW1iZXJJZHM6ICRtZW1iZXJJZHMpIHtcclxuICAgICAgICAgICAgLi4uWm9uZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7Wk9ORV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBUQVhfQ0FURUdPUllfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBUYXhDYXRlZ29yeSBvbiBUYXhDYXRlZ29yeSB7XHJcbiAgICAgICAgaWRcclxuICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICBuYW1lXHJcbiAgICAgICAgaXNEZWZhdWx0XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX1RBWF9DQVRFR09SSUVTID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0VGF4Q2F0ZWdvcmllcygkb3B0aW9uczogVGF4Q2F0ZWdvcnlMaXN0T3B0aW9ucykge1xyXG4gICAgICAgIHRheENhdGVnb3JpZXMob3B0aW9uczogJG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgaXRlbXMge1xyXG4gICAgICAgICAgICAgICAgLi4uVGF4Q2F0ZWdvcnlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0b3RhbEl0ZW1zXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtUQVhfQ0FURUdPUllfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ1JFQVRFX1RBWF9DQVRFR09SWSA9IGdxbGBcclxuICAgIG11dGF0aW9uIENyZWF0ZVRheENhdGVnb3J5KCRpbnB1dDogQ3JlYXRlVGF4Q2F0ZWdvcnlJbnB1dCEpIHtcclxuICAgICAgICBjcmVhdGVUYXhDYXRlZ29yeShpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLlRheENhdGVnb3J5XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtUQVhfQ0FURUdPUllfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVVBEQVRFX1RBWF9DQVRFR09SWSA9IGdxbGBcclxuICAgIG11dGF0aW9uIFVwZGF0ZVRheENhdGVnb3J5KCRpbnB1dDogVXBkYXRlVGF4Q2F0ZWdvcnlJbnB1dCEpIHtcclxuICAgICAgICB1cGRhdGVUYXhDYXRlZ29yeShpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLlRheENhdGVnb3J5XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtUQVhfQ0FURUdPUllfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgREVMRVRFX1RBWF9DQVRFR09SWSA9IGdxbGBcclxuICAgIG11dGF0aW9uIERlbGV0ZVRheENhdGVnb3J5KCRpZDogSUQhKSB7XHJcbiAgICAgICAgZGVsZXRlVGF4Q2F0ZWdvcnkoaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICByZXN1bHRcclxuICAgICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUxFVEVfVEFYX0NBVEVHT1JJRVMgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBEZWxldGVUYXhDYXRlZ29yaWVzKCRpZHM6IFtJRCFdISkge1xyXG4gICAgICAgIGRlbGV0ZVRheENhdGVnb3JpZXMoaWRzOiAkaWRzKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRBWF9SQVRFX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgVGF4UmF0ZSBvbiBUYXhSYXRlIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgIG5hbWVcclxuICAgICAgICBlbmFibGVkXHJcbiAgICAgICAgdmFsdWVcclxuICAgICAgICBjYXRlZ29yeSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICB9XHJcbiAgICAgICAgem9uZSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICB9XHJcbiAgICAgICAgY3VzdG9tZXJHcm91cCB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX1RBWF9SQVRFX0xJU1RfU0lNUExFID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0VGF4UmF0ZUxpc3RTaW1wbGUoJG9wdGlvbnM6IFRheFJhdGVMaXN0T3B0aW9ucykge1xyXG4gICAgICAgIHRheFJhdGVzKG9wdGlvbnM6ICRvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICAgICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICAgICAgZW5hYmxlZFxyXG4gICAgICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgICAgIGNhdGVnb3J5IHtcclxuICAgICAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHpvbmUge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRvdGFsSXRlbXNcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ1JFQVRFX1RBWF9SQVRFID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQ3JlYXRlVGF4UmF0ZSgkaW5wdXQ6IENyZWF0ZVRheFJhdGVJbnB1dCEpIHtcclxuICAgICAgICBjcmVhdGVUYXhSYXRlKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uVGF4UmF0ZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7VEFYX1JBVEVfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVVBEQVRFX1RBWF9SQVRFID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVXBkYXRlVGF4UmF0ZSgkaW5wdXQ6IFVwZGF0ZVRheFJhdGVJbnB1dCEpIHtcclxuICAgICAgICB1cGRhdGVUYXhSYXRlKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uVGF4UmF0ZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7VEFYX1JBVEVfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgREVMRVRFX1RBWF9SQVRFID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlVGF4UmF0ZSgkaWQ6IElEISkge1xyXG4gICAgICAgIGRlbGV0ZVRheFJhdGUoaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICByZXN1bHRcclxuICAgICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUxFVEVfVEFYX1JBVEVTID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlVGF4UmF0ZXMoJGlkczogW0lEIV0hKSB7XHJcbiAgICAgICAgZGVsZXRlVGF4UmF0ZXMoaWRzOiAkaWRzKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IENIQU5ORUxfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBDaGFubmVsIG9uIENoYW5uZWwge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgY29kZVxyXG4gICAgICAgIHRva2VuXHJcbiAgICAgICAgcHJpY2VzSW5jbHVkZVRheFxyXG4gICAgICAgIGF2YWlsYWJsZUN1cnJlbmN5Q29kZXNcclxuICAgICAgICBhdmFpbGFibGVMYW5ndWFnZUNvZGVzXHJcbiAgICAgICAgZGVmYXVsdEN1cnJlbmN5Q29kZVxyXG4gICAgICAgIGRlZmF1bHRMYW5ndWFnZUNvZGVcclxuICAgICAgICBkZWZhdWx0U2hpcHBpbmdab25lIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgIH1cclxuICAgICAgICBkZWZhdWx0VGF4Wm9uZSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICB9XHJcbiAgICAgICAgc2VsbGVyIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBTRUxMRVJfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBTZWxsZXIgb24gU2VsbGVyIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgIG5hbWVcclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfQ0hBTk5FTFMgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRDaGFubmVscygkb3B0aW9uczogQ2hhbm5lbExpc3RPcHRpb25zKSB7XHJcbiAgICAgICAgY2hhbm5lbHMob3B0aW9uczogJG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgaXRlbXMge1xyXG4gICAgICAgICAgICAgICAgLi4uQ2hhbm5lbFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRvdGFsSXRlbXNcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0NIQU5ORUxfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX1NFTExFUlMgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRTZWxsZXJzKCRvcHRpb25zOiBTZWxsZXJMaXN0T3B0aW9ucykge1xyXG4gICAgICAgIHNlbGxlcnMob3B0aW9uczogJG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgaXRlbXMge1xyXG4gICAgICAgICAgICAgICAgLi4uU2VsbGVyXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdG90YWxJdGVtc1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7U0VMTEVSX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IENSRUFURV9TRUxMRVIgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBDcmVhdGVTZWxsZXIoJGlucHV0OiBDcmVhdGVTZWxsZXJJbnB1dCEpIHtcclxuICAgICAgICBjcmVhdGVTZWxsZXIoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5TZWxsZXJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1NFTExFUl9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBVUERBVEVfU0VMTEVSID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVXBkYXRlU2VsbGVyKCRpbnB1dDogVXBkYXRlU2VsbGVySW5wdXQhKSB7XHJcbiAgICAgICAgdXBkYXRlU2VsbGVyKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uU2VsbGVyXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtTRUxMRVJfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgREVMRVRFX1NFTExFUiA9IGdxbGBcclxuICAgIG11dGF0aW9uIERlbGV0ZVNlbGxlcigkaWQ6IElEISkge1xyXG4gICAgICAgIGRlbGV0ZVNlbGxlcihpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFTEVURV9TRUxMRVJTID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlU2VsbGVycygkaWRzOiBbSUQhXSEpIHtcclxuICAgICAgICBkZWxldGVTZWxsZXJzKGlkczogJGlkcykge1xyXG4gICAgICAgICAgICByZXN1bHRcclxuICAgICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfQUNUSVZFX0NIQU5ORUwgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRBY3RpdmVDaGFubmVsIHtcclxuICAgICAgICBhY3RpdmVDaGFubmVsIHtcclxuICAgICAgICAgICAgLi4uQ2hhbm5lbFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7Q0hBTk5FTF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBDUkVBVEVfQ0hBTk5FTCA9IGdxbGBcclxuICAgIG11dGF0aW9uIENyZWF0ZUNoYW5uZWwoJGlucHV0OiBDcmVhdGVDaGFubmVsSW5wdXQhKSB7XHJcbiAgICAgICAgY3JlYXRlQ2hhbm5lbChpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLkNoYW5uZWxcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0NIQU5ORUxfRlJBR01FTlR9XHJcbiAgICAke0VSUk9SX1JFU1VMVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBVUERBVEVfQ0hBTk5FTCA9IGdxbGBcclxuICAgIG11dGF0aW9uIFVwZGF0ZUNoYW5uZWwoJGlucHV0OiBVcGRhdGVDaGFubmVsSW5wdXQhKSB7XHJcbiAgICAgICAgdXBkYXRlQ2hhbm5lbChpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLkNoYW5uZWxcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0NIQU5ORUxfRlJBR01FTlR9XHJcbiAgICAke0VSUk9SX1JFU1VMVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUxFVEVfQ0hBTk5FTCA9IGdxbGBcclxuICAgIG11dGF0aW9uIERlbGV0ZUNoYW5uZWwoJGlkOiBJRCEpIHtcclxuICAgICAgICBkZWxldGVDaGFubmVsKGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgcmVzdWx0XHJcbiAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgREVMRVRFX0NIQU5ORUxTID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlQ2hhbm5lbHMoJGlkczogW0lEIV0hKSB7XHJcbiAgICAgICAgZGVsZXRlQ2hhbm5lbHMoaWRzOiAkaWRzKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBBWU1FTlRfTUVUSE9EX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgUGF5bWVudE1ldGhvZCBvbiBQYXltZW50TWV0aG9kIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgIG5hbWVcclxuICAgICAgICBjb2RlXHJcbiAgICAgICAgZGVzY3JpcHRpb25cclxuICAgICAgICBlbmFibGVkXHJcbiAgICAgICAgdHJhbnNsYXRpb25zIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgZGVzY3JpcHRpb25cclxuICAgICAgICB9XHJcbiAgICAgICAgY2hlY2tlciB7XHJcbiAgICAgICAgICAgIC4uLkNvbmZpZ3VyYWJsZU9wZXJhdGlvblxyXG4gICAgICAgIH1cclxuICAgICAgICBoYW5kbGVyIHtcclxuICAgICAgICAgICAgLi4uQ29uZmlndXJhYmxlT3BlcmF0aW9uXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtDT05GSUdVUkFCTEVfT1BFUkFUSU9OX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9QQVlNRU5UX01FVEhPRF9PUEVSQVRJT05TID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0UGF5bWVudE1ldGhvZE9wZXJhdGlvbnMge1xyXG4gICAgICAgIHBheW1lbnRNZXRob2RFbGlnaWJpbGl0eUNoZWNrZXJzIHtcclxuICAgICAgICAgICAgLi4uQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHBheW1lbnRNZXRob2RIYW5kbGVycyB7XHJcbiAgICAgICAgICAgIC4uLkNvbmZpZ3VyYWJsZU9wZXJhdGlvbkRlZlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7Q09ORklHVVJBQkxFX09QRVJBVElPTl9ERUZfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ1JFQVRFX1BBWU1FTlRfTUVUSE9EID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQ3JlYXRlUGF5bWVudE1ldGhvZCgkaW5wdXQ6IENyZWF0ZVBheW1lbnRNZXRob2RJbnB1dCEpIHtcclxuICAgICAgICBjcmVhdGVQYXltZW50TWV0aG9kKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uUGF5bWVudE1ldGhvZFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7UEFZTUVOVF9NRVRIT0RfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVVBEQVRFX1BBWU1FTlRfTUVUSE9EID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVXBkYXRlUGF5bWVudE1ldGhvZCgkaW5wdXQ6IFVwZGF0ZVBheW1lbnRNZXRob2RJbnB1dCEpIHtcclxuICAgICAgICB1cGRhdGVQYXltZW50TWV0aG9kKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uUGF5bWVudE1ldGhvZFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7UEFZTUVOVF9NRVRIT0RfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgREVMRVRFX1BBWU1FTlRfTUVUSE9EID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlUGF5bWVudE1ldGhvZCgkaWQ6IElEISwgJGZvcmNlOiBCb29sZWFuKSB7XHJcbiAgICAgICAgZGVsZXRlUGF5bWVudE1ldGhvZChpZDogJGlkLCBmb3JjZTogJGZvcmNlKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFTEVURV9QQVlNRU5UX01FVEhPRFMgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBEZWxldGVQYXltZW50TWV0aG9kcygkaWRzOiBbSUQhXSEsICRmb3JjZTogQm9vbGVhbikge1xyXG4gICAgICAgIGRlbGV0ZVBheW1lbnRNZXRob2RzKGlkczogJGlkcywgZm9yY2U6ICRmb3JjZSkge1xyXG4gICAgICAgICAgICByZXN1bHRcclxuICAgICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHTE9CQUxfU0VUVElOR1NfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBHbG9iYWxTZXR0aW5ncyBvbiBHbG9iYWxTZXR0aW5ncyB7XHJcbiAgICAgICAgaWRcclxuICAgICAgICBhdmFpbGFibGVMYW5ndWFnZXNcclxuICAgICAgICB0cmFja0ludmVudG9yeVxyXG4gICAgICAgIG91dE9mU3RvY2tUaHJlc2hvbGRcclxuICAgICAgICBzZXJ2ZXJDb25maWcge1xyXG4gICAgICAgICAgICBwZXJtaXNzaW9ucyB7XHJcbiAgICAgICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvblxyXG4gICAgICAgICAgICAgICAgYXNzaWduYWJsZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG9yZGVyUHJvY2VzcyB7XHJcbiAgICAgICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX0dMT0JBTF9TRVRUSU5HUyA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldEdsb2JhbFNldHRpbmdzIHtcclxuICAgICAgICBnbG9iYWxTZXR0aW5ncyB7XHJcbiAgICAgICAgICAgIC4uLkdsb2JhbFNldHRpbmdzXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtHTE9CQUxfU0VUVElOR1NfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVVBEQVRFX0dMT0JBTF9TRVRUSU5HUyA9IGdxbGBcclxuICAgIG11dGF0aW9uIFVwZGF0ZUdsb2JhbFNldHRpbmdzKCRpbnB1dDogVXBkYXRlR2xvYmFsU2V0dGluZ3NJbnB1dCEpIHtcclxuICAgICAgICB1cGRhdGVHbG9iYWxTZXR0aW5ncyhpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLkdsb2JhbFNldHRpbmdzXHJcbiAgICAgICAgICAgIC4uLkVycm9yUmVzdWx0XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtHTE9CQUxfU0VUVElOR1NfRlJBR01FTlR9XHJcbiAgICAke0VSUk9SX1JFU1VMVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBDVVNUT01fRklFTERfQ09ORklHX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgQ3VzdG9tRmllbGRDb25maWcgb24gQ3VzdG9tRmllbGQge1xyXG4gICAgICAgIG5hbWVcclxuICAgICAgICB0eXBlXHJcbiAgICAgICAgbGlzdFxyXG4gICAgICAgIGRlc2NyaXB0aW9uIHtcclxuICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlXHJcbiAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlXHJcbiAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgbnVsbGFibGVcclxuICAgICAgICB1aVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNUUklOR19DVVNUT01fRklFTERfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBTdHJpbmdDdXN0b21GaWVsZCBvbiBTdHJpbmdDdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgLi4uQ3VzdG9tRmllbGRDb25maWdcclxuICAgICAgICBwYXR0ZXJuXHJcbiAgICAgICAgb3B0aW9ucyB7XHJcbiAgICAgICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgICAgIGxhbmd1YWdlQ29kZVxyXG4gICAgICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7Q1VTVE9NX0ZJRUxEX0NPTkZJR19GUkFHTUVOVH1cclxuYDtcclxuZXhwb3J0IGNvbnN0IExPQ0FMRV9TVFJJTkdfQ1VTVE9NX0ZJRUxEX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgTG9jYWxlU3RyaW5nQ3VzdG9tRmllbGQgb24gTG9jYWxlU3RyaW5nQ3VzdG9tRmllbGRDb25maWcge1xyXG4gICAgICAgIC4uLkN1c3RvbUZpZWxkQ29uZmlnXHJcbiAgICAgICAgcGF0dGVyblxyXG4gICAgfVxyXG4gICAgJHtDVVNUT01fRklFTERfQ09ORklHX0ZSQUdNRU5UfVxyXG5gO1xyXG5leHBvcnQgY29uc3QgVEVYVF9DVVNUT01fRklFTERfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBUZXh0Q3VzdG9tRmllbGQgb24gVGV4dEN1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAuLi5DdXN0b21GaWVsZENvbmZpZ1xyXG4gICAgfVxyXG4gICAgJHtDVVNUT01fRklFTERfQ09ORklHX0ZSQUdNRU5UfVxyXG5gO1xyXG5leHBvcnQgY29uc3QgTE9DQUxFX1RFWFRfQ1VTVE9NX0ZJRUxEX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgTG9jYWxlVGV4dEN1c3RvbUZpZWxkIG9uIExvY2FsZVRleHRDdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgLi4uQ3VzdG9tRmllbGRDb25maWdcclxuICAgIH1cclxuICAgICR7Q1VTVE9NX0ZJRUxEX0NPTkZJR19GUkFHTUVOVH1cclxuYDtcclxuZXhwb3J0IGNvbnN0IEJPT0xFQU5fQ1VTVE9NX0ZJRUxEX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgQm9vbGVhbkN1c3RvbUZpZWxkIG9uIEJvb2xlYW5DdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgLi4uQ3VzdG9tRmllbGRDb25maWdcclxuICAgIH1cclxuICAgICR7Q1VTVE9NX0ZJRUxEX0NPTkZJR19GUkFHTUVOVH1cclxuYDtcclxuZXhwb3J0IGNvbnN0IElOVF9DVVNUT01fRklFTERfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBJbnRDdXN0b21GaWVsZCBvbiBJbnRDdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgLi4uQ3VzdG9tRmllbGRDb25maWdcclxuICAgICAgICBpbnRNaW46IG1pblxyXG4gICAgICAgIGludE1heDogbWF4XHJcbiAgICAgICAgaW50U3RlcDogc3RlcFxyXG4gICAgfVxyXG4gICAgJHtDVVNUT01fRklFTERfQ09ORklHX0ZSQUdNRU5UfVxyXG5gO1xyXG5leHBvcnQgY29uc3QgRkxPQVRfQ1VTVE9NX0ZJRUxEX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgRmxvYXRDdXN0b21GaWVsZCBvbiBGbG9hdEN1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAuLi5DdXN0b21GaWVsZENvbmZpZ1xyXG4gICAgICAgIGZsb2F0TWluOiBtaW5cclxuICAgICAgICBmbG9hdE1heDogbWF4XHJcbiAgICAgICAgZmxvYXRTdGVwOiBzdGVwXHJcbiAgICB9XHJcbiAgICAke0NVU1RPTV9GSUVMRF9DT05GSUdfRlJBR01FTlR9XHJcbmA7XHJcbmV4cG9ydCBjb25zdCBEQVRFX1RJTUVfQ1VTVE9NX0ZJRUxEX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgRGF0ZVRpbWVDdXN0b21GaWVsZCBvbiBEYXRlVGltZUN1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAuLi5DdXN0b21GaWVsZENvbmZpZ1xyXG4gICAgICAgIGRhdGV0aW1lTWluOiBtaW5cclxuICAgICAgICBkYXRldGltZU1heDogbWF4XHJcbiAgICAgICAgZGF0ZXRpbWVTdGVwOiBzdGVwXHJcbiAgICB9XHJcbiAgICAke0NVU1RPTV9GSUVMRF9DT05GSUdfRlJBR01FTlR9XHJcbmA7XHJcbmV4cG9ydCBjb25zdCBSRUxBVElPTl9DVVNUT01fRklFTERfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBSZWxhdGlvbkN1c3RvbUZpZWxkIG9uIFJlbGF0aW9uQ3VzdG9tRmllbGRDb25maWcge1xyXG4gICAgICAgIC4uLkN1c3RvbUZpZWxkQ29uZmlnXHJcbiAgICAgICAgZW50aXR5XHJcbiAgICAgICAgc2NhbGFyRmllbGRzXHJcbiAgICB9XHJcbiAgICAke0NVU1RPTV9GSUVMRF9DT05GSUdfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQUxMX0NVU1RPTV9GSUVMRFNfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBDdXN0b21GaWVsZHMgb24gQ3VzdG9tRmllbGQge1xyXG4gICAgICAgIC4uLiBvbiBTdHJpbmdDdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgICAgIC4uLlN0cmluZ0N1c3RvbUZpZWxkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC4uLiBvbiBMb2NhbGVTdHJpbmdDdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgICAgIC4uLkxvY2FsZVN0cmluZ0N1c3RvbUZpZWxkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC4uLiBvbiBUZXh0Q3VzdG9tRmllbGRDb25maWcge1xyXG4gICAgICAgICAgICAuLi5UZXh0Q3VzdG9tRmllbGRcclxuICAgICAgICB9XHJcbiAgICAgICAgLi4uIG9uIExvY2FsZVRleHRDdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgICAgIC4uLkxvY2FsZVRleHRDdXN0b21GaWVsZFxyXG4gICAgICAgIH1cclxuICAgICAgICAuLi4gb24gQm9vbGVhbkN1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAgICAgLi4uQm9vbGVhbkN1c3RvbUZpZWxkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC4uLiBvbiBJbnRDdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgICAgIC4uLkludEN1c3RvbUZpZWxkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC4uLiBvbiBGbG9hdEN1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAgICAgLi4uRmxvYXRDdXN0b21GaWVsZFxyXG4gICAgICAgIH1cclxuICAgICAgICAuLi4gb24gRGF0ZVRpbWVDdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgICAgIC4uLkRhdGVUaW1lQ3VzdG9tRmllbGRcclxuICAgICAgICB9XHJcbiAgICAgICAgLi4uIG9uIFJlbGF0aW9uQ3VzdG9tRmllbGRDb25maWcge1xyXG4gICAgICAgICAgICAuLi5SZWxhdGlvbkN1c3RvbUZpZWxkXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtTVFJJTkdfQ1VTVE9NX0ZJRUxEX0ZSQUdNRU5UfVxyXG4gICAgJHtMT0NBTEVfU1RSSU5HX0NVU1RPTV9GSUVMRF9GUkFHTUVOVH1cclxuICAgICR7VEVYVF9DVVNUT01fRklFTERfRlJBR01FTlR9XHJcbiAgICAke0JPT0xFQU5fQ1VTVE9NX0ZJRUxEX0ZSQUdNRU5UfVxyXG4gICAgJHtJTlRfQ1VTVE9NX0ZJRUxEX0ZSQUdNRU5UfVxyXG4gICAgJHtGTE9BVF9DVVNUT01fRklFTERfRlJBR01FTlR9XHJcbiAgICAke0RBVEVfVElNRV9DVVNUT01fRklFTERfRlJBR01FTlR9XHJcbiAgICAke1JFTEFUSU9OX0NVU1RPTV9GSUVMRF9GUkFHTUVOVH1cclxuICAgICR7TE9DQUxFX1RFWFRfQ1VTVE9NX0ZJRUxEX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9TRVJWRVJfQ09ORklHID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0U2VydmVyQ29uZmlnIHtcclxuICAgICAgICBnbG9iYWxTZXR0aW5ncyB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIHNlcnZlckNvbmZpZyB7XHJcbiAgICAgICAgICAgICAgICBvcmRlclByb2Nlc3Mge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgICAgICAgICB0b1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcGVybWl0dGVkQXNzZXRUeXBlc1xyXG4gICAgICAgICAgICAgICAgcGVybWlzc2lvbnMge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvblxyXG4gICAgICAgICAgICAgICAgICAgIGFzc2lnbmFibGVcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGN1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAgICAgICAgICAgICBBZGRyZXNzIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3VzdG9tRmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEFkbWluaXN0cmF0b3Ige1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5DdXN0b21GaWVsZHNcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQXNzZXQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5DdXN0b21GaWVsZHNcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQ2hhbm5lbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkN1c3RvbUZpZWxkc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aW9uIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3VzdG9tRmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEN1c3RvbWVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3VzdG9tRmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEN1c3RvbWVyR3JvdXAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5DdXN0b21GaWVsZHNcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgRmFjZXQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5DdXN0b21GaWVsZHNcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgRmFjZXRWYWx1ZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkN1c3RvbUZpZWxkc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBGdWxmaWxsbWVudCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkN1c3RvbUZpZWxkc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBHbG9iYWxTZXR0aW5ncyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkN1c3RvbUZpZWxkc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBPcmRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkN1c3RvbUZpZWxkc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBPcmRlckxpbmUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5DdXN0b21GaWVsZHNcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgUGF5bWVudE1ldGhvZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkN1c3RvbUZpZWxkc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBQcm9kdWN0IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3VzdG9tRmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIFByb2R1Y3RPcHRpb24ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5DdXN0b21GaWVsZHNcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgUHJvZHVjdE9wdGlvbkdyb3VwIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3VzdG9tRmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIFByb2R1Y3RWYXJpYW50IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3VzdG9tRmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIFByb21vdGlvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkN1c3RvbUZpZWxkc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBSZWdpb24ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5DdXN0b21GaWVsZHNcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgU2VsbGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3VzdG9tRmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIFNoaXBwaW5nTWV0aG9kIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3VzdG9tRmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIFN0b2NrTG9jYXRpb24ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5DdXN0b21GaWVsZHNcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgVGF4Q2F0ZWdvcnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5DdXN0b21GaWVsZHNcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgVGF4UmF0ZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkN1c3RvbUZpZWxkc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBVc2VyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3VzdG9tRmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIFpvbmUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5DdXN0b21GaWVsZHNcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0FMTF9DVVNUT01fRklFTERTX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEpPQl9JTkZPX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgSm9iSW5mbyBvbiBKb2Ige1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgc3RhcnRlZEF0XHJcbiAgICAgICAgc2V0dGxlZEF0XHJcbiAgICAgICAgcXVldWVOYW1lXHJcbiAgICAgICAgc3RhdGVcclxuICAgICAgICBpc1NldHRsZWRcclxuICAgICAgICBwcm9ncmVzc1xyXG4gICAgICAgIGR1cmF0aW9uXHJcbiAgICAgICAgZGF0YVxyXG4gICAgICAgIHJlc3VsdFxyXG4gICAgICAgIGVycm9yXHJcbiAgICAgICAgcmV0cmllc1xyXG4gICAgICAgIGF0dGVtcHRzXHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX0pPQl9JTkZPID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0Sm9iSW5mbygkaWQ6IElEISkge1xyXG4gICAgICAgIGpvYihqb2JJZDogJGlkKSB7XHJcbiAgICAgICAgICAgIC4uLkpvYkluZm9cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0pPQl9JTkZPX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9KT0JTX0xJU1QgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRBbGxKb2JzKCRvcHRpb25zOiBKb2JMaXN0T3B0aW9ucykge1xyXG4gICAgICAgIGpvYnMob3B0aW9uczogJG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgaXRlbXMge1xyXG4gICAgICAgICAgICAgICAgLi4uSm9iSW5mb1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRvdGFsSXRlbXNcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0pPQl9JTkZPX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9KT0JTX0JZX0lEID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0Sm9ic0J5SWQoJGlkczogW0lEIV0hKSB7XHJcbiAgICAgICAgam9ic0J5SWQoam9iSWRzOiAkaWRzKSB7XHJcbiAgICAgICAgICAgIC4uLkpvYkluZm9cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0pPQl9JTkZPX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9KT0JfUVVFVUVfTElTVCA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldEpvYlF1ZXVlTGlzdCB7XHJcbiAgICAgICAgam9iUXVldWVzIHtcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICBydW5uaW5nXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IENBTkNFTF9KT0IgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBDYW5jZWxKb2IoJGlkOiBJRCEpIHtcclxuICAgICAgICBjYW5jZWxKb2Ioam9iSWQ6ICRpZCkge1xyXG4gICAgICAgICAgICAuLi5Kb2JJbmZvXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtKT0JfSU5GT19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBSRUlOREVYID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gUmVpbmRleCB7XHJcbiAgICAgICAgcmVpbmRleCB7XHJcbiAgICAgICAgICAgIC4uLkpvYkluZm9cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0pPQl9JTkZPX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9QRU5ESU5HX1NFQVJDSF9JTkRFWF9VUERBVEVTID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0UGVuZGluZ1NlYXJjaEluZGV4VXBkYXRlcyB7XHJcbiAgICAgICAgcGVuZGluZ1NlYXJjaEluZGV4VXBkYXRlc1xyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFJVTl9QRU5ESU5HX1NFQVJDSF9JTkRFWF9VUERBVEVTID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gUnVuUGVuZGluZ1NlYXJjaEluZGV4VXBkYXRlcyB7XHJcbiAgICAgICAgcnVuUGVuZGluZ1NlYXJjaEluZGV4VXBkYXRlcyB7XHJcbiAgICAgICAgICAgIHN1Y2Nlc3NcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcbiJdfQ==
734
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtZGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2RhdGEvZGVmaW5pdGlvbnMvc2V0dGluZ3MtZGVmaW5pdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFDSCxtQ0FBbUMsRUFDbkMsK0JBQStCLEVBQy9CLHFCQUFxQixHQUN4QixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Q0FjbEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Q0FXekMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUE7Ozs7OztNQU0zQixnQkFBZ0I7Q0FDckIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUE7Ozs7OztNQU0zQixnQkFBZ0I7Q0FDckIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Q0FPaEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQTs7Ozs7OztDQU9sQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7OztNQVUxQixnQkFBZ0I7Q0FDckIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUE7Ozs7OztNQU1yQixhQUFhO0NBQ2xCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFBOzs7Ozs7TUFNeEIsYUFBYTtDQUNsQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FB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LDBCQUEwQjtDQUMvQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztDQWlCbkMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUE7Ozs7OztNQU16QixpQkFBaUI7Q0FDdEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7OztNQVMxQixpQkFBaUI7Q0FDdEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUE7Ozs7OztNQU0zQixpQkFBaUI7Q0FDdEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLEdBQUcsQ0FBQTs7Ozs7OztDQU9wQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQTs7Ozs7O01BTXZCLGlCQUFpQjtDQUN0QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQTs7Ozs7O01BTXBCLGlCQUFpQjtDQUN0QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsR0FBRyxDQUFBOzs7O0NBSWxELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxHQUFHLENBQUE7Ozs7OztDQU1sRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ3FsIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIENPTkZJR1VSQUJMRV9PUEVSQVRJT05fREVGX0ZSQUdNRU5ULFxyXG4gICAgQ09ORklHVVJBQkxFX09QRVJBVElPTl9GUkFHTUVOVCxcclxuICAgIEVSUk9SX1JFU1VMVF9GUkFHTUVOVCxcclxufSBmcm9tICcuL3NoYXJlZC1kZWZpbml0aW9ucyc7XHJcblxyXG5leHBvcnQgY29uc3QgQ09VTlRSWV9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IENvdW50cnkgb24gQ291bnRyeSB7XHJcbiAgICAgICAgaWRcclxuICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICBjb2RlXHJcbiAgICAgICAgbmFtZVxyXG4gICAgICAgIGVuYWJsZWRcclxuICAgICAgICB0cmFuc2xhdGlvbnMge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBsYW5ndWFnZUNvZGVcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfQVZBSUxBQkxFX0NPVU5UUklFUyA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldEF2YWlsYWJsZUNvdW50cmllcyB7XHJcbiAgICAgICAgY291bnRyaWVzKG9wdGlvbnM6IHsgZmlsdGVyOiB7IGVuYWJsZWQ6IHsgZXE6IHRydWUgfSB9IH0pIHtcclxuICAgICAgICAgICAgaXRlbXMge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIGNvZGVcclxuICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgICAgIGVuYWJsZWRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBDUkVBVEVfQ09VTlRSWSA9IGdxbGBcclxuICAgIG11dGF0aW9uIENyZWF0ZUNvdW50cnkoJGlucHV0OiBDcmVhdGVDb3VudHJ5SW5wdXQhKSB7XHJcbiAgICAgICAgY3JlYXRlQ291bnRyeShpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLkNvdW50cnlcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0NPVU5UUllfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVVBEQVRFX0NPVU5UUlkgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBVcGRhdGVDb3VudHJ5KCRpbnB1dDogVXBkYXRlQ291bnRyeUlucHV0ISkge1xyXG4gICAgICAgIHVwZGF0ZUNvdW50cnkoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5Db3VudHJ5XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtDT1VOVFJZX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFTEVURV9DT1VOVFJZID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlQ291bnRyeSgkaWQ6IElEISkge1xyXG4gICAgICAgIGRlbGV0ZUNvdW50cnkoaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICByZXN1bHRcclxuICAgICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUxFVEVfQ09VTlRSSUVTID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlQ291bnRyaWVzKCRpZHM6IFtJRCFdISkge1xyXG4gICAgICAgIGRlbGV0ZUNvdW50cmllcyhpZHM6ICRpZHMpIHtcclxuICAgICAgICAgICAgcmVzdWx0XHJcbiAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgWk9ORV9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IFpvbmUgb24gWm9uZSB7XHJcbiAgICAgICAgaWRcclxuICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICBuYW1lXHJcbiAgICAgICAgbWVtYmVycyB7XHJcbiAgICAgICAgICAgIC4uLkNvdW50cnlcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0NPVU5UUllfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX1pPTkUgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRab25lKCRpZDogSUQhKSB7XHJcbiAgICAgICAgem9uZShpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIC4uLlpvbmVcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1pPTkVfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ1JFQVRFX1pPTkUgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBDcmVhdGVab25lKCRpbnB1dDogQ3JlYXRlWm9uZUlucHV0ISkge1xyXG4gICAgICAgIGNyZWF0ZVpvbmUoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5ab25lXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtaT05FX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFVQREFURV9aT05FID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVXBkYXRlWm9uZSgkaW5wdXQ6IFVwZGF0ZVpvbmVJbnB1dCEpIHtcclxuICAgICAgICB1cGRhdGVab25lKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uWm9uZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7Wk9ORV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUxFVEVfWk9ORSA9IGdxbGBcclxuICAgIG11dGF0aW9uIERlbGV0ZVpvbmUoJGlkOiBJRCEpIHtcclxuICAgICAgICBkZWxldGVab25lKGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgICAgICByZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgREVMRVRFX1pPTkVTID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlWm9uZXMoJGlkczogW0lEIV0hKSB7XHJcbiAgICAgICAgZGVsZXRlWm9uZXMoaWRzOiAkaWRzKSB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICAgICAgcmVzdWx0XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFERF9NRU1CRVJTX1RPX1pPTkUgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBBZGRNZW1iZXJzVG9ab25lKCR6b25lSWQ6IElEISwgJG1lbWJlcklkczogW0lEIV0hKSB7XHJcbiAgICAgICAgYWRkTWVtYmVyc1RvWm9uZSh6b25lSWQ6ICR6b25lSWQsIG1lbWJlcklkczogJG1lbWJlcklkcykge1xyXG4gICAgICAgICAgICAuLi5ab25lXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtaT05FX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFJFTU9WRV9NRU1CRVJTX0ZST01fWk9ORSA9IGdxbGBcclxuICAgIG11dGF0aW9uIFJlbW92ZU1lbWJlcnNGcm9tWm9uZSgkem9uZUlkOiBJRCEsICRtZW1iZXJJZHM6IFtJRCFdISkge1xyXG4gICAgICAgIHJlbW92ZU1lbWJlcnNGcm9tWm9uZSh6b25lSWQ6ICR6b25lSWQsIG1lbWJlcklkczogJG1lbWJlcklkcykge1xyXG4gICAgICAgICAgICAuLi5ab25lXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtaT05FX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRBWF9DQVRFR09SWV9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IFRheENhdGVnb3J5IG9uIFRheENhdGVnb3J5IHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgIG5hbWVcclxuICAgICAgICBpc0RlZmF1bHRcclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfVEFYX0NBVEVHT1JJRVMgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRUYXhDYXRlZ29yaWVzKCRvcHRpb25zOiBUYXhDYXRlZ29yeUxpc3RPcHRpb25zKSB7XHJcbiAgICAgICAgdGF4Q2F0ZWdvcmllcyhvcHRpb25zOiAkb3B0aW9ucykge1xyXG4gICAgICAgICAgICBpdGVtcyB7XHJcbiAgICAgICAgICAgICAgICAuLi5UYXhDYXRlZ29yeVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRvdGFsSXRlbXNcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1RBWF9DQVRFR09SWV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBDUkVBVEVfVEFYX0NBVEVHT1JZID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQ3JlYXRlVGF4Q2F0ZWdvcnkoJGlucHV0OiBDcmVhdGVUYXhDYXRlZ29yeUlucHV0ISkge1xyXG4gICAgICAgIGNyZWF0ZVRheENhdGVnb3J5KGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uVGF4Q2F0ZWdvcnlcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1RBWF9DQVRFR09SWV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBVUERBVEVfVEFYX0NBVEVHT1JZID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVXBkYXRlVGF4Q2F0ZWdvcnkoJGlucHV0OiBVcGRhdGVUYXhDYXRlZ29yeUlucHV0ISkge1xyXG4gICAgICAgIHVwZGF0ZVRheENhdGVnb3J5KGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uVGF4Q2F0ZWdvcnlcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1RBWF9DQVRFR09SWV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUxFVEVfVEFYX0NBVEVHT1JZID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlVGF4Q2F0ZWdvcnkoJGlkOiBJRCEpIHtcclxuICAgICAgICBkZWxldGVUYXhDYXRlZ29yeShpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFTEVURV9UQVhfQ0FURUdPUklFUyA9IGdxbGBcclxuICAgIG11dGF0aW9uIERlbGV0ZVRheENhdGVnb3JpZXMoJGlkczogW0lEIV0hKSB7XHJcbiAgICAgICAgZGVsZXRlVGF4Q2F0ZWdvcmllcyhpZHM6ICRpZHMpIHtcclxuICAgICAgICAgICAgcmVzdWx0XHJcbiAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVEFYX1JBVEVfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBUYXhSYXRlIG9uIFRheFJhdGUge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgbmFtZVxyXG4gICAgICAgIGVuYWJsZWRcclxuICAgICAgICB2YWx1ZVxyXG4gICAgICAgIGNhdGVnb3J5IHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgIH1cclxuICAgICAgICB6b25lIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgIH1cclxuICAgICAgICBjdXN0b21lckdyb3VwIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfVEFYX1JBVEVfTElTVF9TSU1QTEUgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRUYXhSYXRlTGlzdFNpbXBsZSgkb3B0aW9uczogVGF4UmF0ZUxpc3RPcHRpb25zKSB7XHJcbiAgICAgICAgdGF4UmF0ZXMob3B0aW9uczogJG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgaXRlbXMge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgICAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgICAgICBlbmFibGVkXHJcbiAgICAgICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgICAgICAgY2F0ZWdvcnkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgem9uZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdG90YWxJdGVtc1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBDUkVBVEVfVEFYX1JBVEUgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBDcmVhdGVUYXhSYXRlKCRpbnB1dDogQ3JlYXRlVGF4UmF0ZUlucHV0ISkge1xyXG4gICAgICAgIGNyZWF0ZVRheFJhdGUoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5UYXhSYXRlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtUQVhfUkFURV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBVUERBVEVfVEFYX1JBVEUgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBVcGRhdGVUYXhSYXRlKCRpbnB1dDogVXBkYXRlVGF4UmF0ZUlucHV0ISkge1xyXG4gICAgICAgIHVwZGF0ZVRheFJhdGUoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5UYXhSYXRlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtUQVhfUkFURV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUxFVEVfVEFYX1JBVEUgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBEZWxldGVUYXhSYXRlKCRpZDogSUQhKSB7XHJcbiAgICAgICAgZGVsZXRlVGF4UmF0ZShpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFTEVURV9UQVhfUkFURVMgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBEZWxldGVUYXhSYXRlcygkaWRzOiBbSUQhXSEpIHtcclxuICAgICAgICBkZWxldGVUYXhSYXRlcyhpZHM6ICRpZHMpIHtcclxuICAgICAgICAgICAgcmVzdWx0XHJcbiAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ0hBTk5FTF9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IENoYW5uZWwgb24gQ2hhbm5lbCB7XHJcbiAgICAgICAgaWRcclxuICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICBjb2RlXHJcbiAgICAgICAgdG9rZW5cclxuICAgICAgICBwcmljZXNJbmNsdWRlVGF4XHJcbiAgICAgICAgYXZhaWxhYmxlQ3VycmVuY3lDb2Rlc1xyXG4gICAgICAgIGF2YWlsYWJsZUxhbmd1YWdlQ29kZXNcclxuICAgICAgICBkZWZhdWx0Q3VycmVuY3lDb2RlXHJcbiAgICAgICAgZGVmYXVsdExhbmd1YWdlQ29kZVxyXG4gICAgICAgIGRlZmF1bHRTaGlwcGluZ1pvbmUge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRlZmF1bHRUYXhab25lIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZWxsZXIge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNFTExFUl9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IFNlbGxlciBvbiBTZWxsZXIge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgbmFtZVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9DSEFOTkVMUyA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldENoYW5uZWxzKCRvcHRpb25zOiBDaGFubmVsTGlzdE9wdGlvbnMpIHtcclxuICAgICAgICBjaGFubmVscyhvcHRpb25zOiAkb3B0aW9ucykge1xyXG4gICAgICAgICAgICBpdGVtcyB7XHJcbiAgICAgICAgICAgICAgICAuLi5DaGFubmVsXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdG90YWxJdGVtc1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7Q0hBTk5FTF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfU0VMTEVSUyA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldFNlbGxlcnMoJG9wdGlvbnM6IFNlbGxlckxpc3RPcHRpb25zKSB7XHJcbiAgICAgICAgc2VsbGVycyhvcHRpb25zOiAkb3B0aW9ucykge1xyXG4gICAgICAgICAgICBpdGVtcyB7XHJcbiAgICAgICAgICAgICAgICAuLi5TZWxsZXJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0b3RhbEl0ZW1zXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtTRUxMRVJfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ1JFQVRFX1NFTExFUiA9IGdxbGBcclxuICAgIG11dGF0aW9uIENyZWF0ZVNlbGxlcigkaW5wdXQ6IENyZWF0ZVNlbGxlcklucHV0ISkge1xyXG4gICAgICAgIGNyZWF0ZVNlbGxlcihpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLlNlbGxlclxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7U0VMTEVSX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFVQREFURV9TRUxMRVIgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBVcGRhdGVTZWxsZXIoJGlucHV0OiBVcGRhdGVTZWxsZXJJbnB1dCEpIHtcclxuICAgICAgICB1cGRhdGVTZWxsZXIoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5TZWxsZXJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1NFTExFUl9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUxFVEVfU0VMTEVSID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlU2VsbGVyKCRpZDogSUQhKSB7XHJcbiAgICAgICAgZGVsZXRlU2VsbGVyKGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgcmVzdWx0XHJcbiAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgREVMRVRFX1NFTExFUlMgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBEZWxldGVTZWxsZXJzKCRpZHM6IFtJRCFdISkge1xyXG4gICAgICAgIGRlbGV0ZVNlbGxlcnMoaWRzOiAkaWRzKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9BQ1RJVkVfQ0hBTk5FTCA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldEFjdGl2ZUNoYW5uZWwge1xyXG4gICAgICAgIGFjdGl2ZUNoYW5uZWwge1xyXG4gICAgICAgICAgICAuLi5DaGFubmVsXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtDSEFOTkVMX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IENSRUFURV9DSEFOTkVMID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQ3JlYXRlQ2hhbm5lbCgkaW5wdXQ6IENyZWF0ZUNoYW5uZWxJbnB1dCEpIHtcclxuICAgICAgICBjcmVhdGVDaGFubmVsKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uQ2hhbm5lbFxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7Q0hBTk5FTF9GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFVQREFURV9DSEFOTkVMID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVXBkYXRlQ2hhbm5lbCgkaW5wdXQ6IFVwZGF0ZUNoYW5uZWxJbnB1dCEpIHtcclxuICAgICAgICB1cGRhdGVDaGFubmVsKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uQ2hhbm5lbFxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7Q0hBTk5FTF9GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFTEVURV9DSEFOTkVMID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlQ2hhbm5lbCgkaWQ6IElEISkge1xyXG4gICAgICAgIGRlbGV0ZUNoYW5uZWwoaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICByZXN1bHRcclxuICAgICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUxFVEVfQ0hBTk5FTFMgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBEZWxldGVDaGFubmVscygkaWRzOiBbSUQhXSEpIHtcclxuICAgICAgICBkZWxldGVDaGFubmVscyhpZHM6ICRpZHMpIHtcclxuICAgICAgICAgICAgcmVzdWx0XHJcbiAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgUEFZTUVOVF9NRVRIT0RfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBQYXltZW50TWV0aG9kIG9uIFBheW1lbnRNZXRob2Qge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgbmFtZVxyXG4gICAgICAgIGNvZGVcclxuICAgICAgICBkZXNjcmlwdGlvblxyXG4gICAgICAgIGVuYWJsZWRcclxuICAgICAgICB0cmFuc2xhdGlvbnMge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBsYW5ndWFnZUNvZGVcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICBkZXNjcmlwdGlvblxyXG4gICAgICAgIH1cclxuICAgICAgICBjaGVja2VyIHtcclxuICAgICAgICAgICAgLi4uQ29uZmlndXJhYmxlT3BlcmF0aW9uXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGhhbmRsZXIge1xyXG4gICAgICAgICAgICAuLi5Db25maWd1cmFibGVPcGVyYXRpb25cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0NPTkZJR1VSQUJMRV9PUEVSQVRJT05fRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX1BBWU1FTlRfTUVUSE9EX09QRVJBVElPTlMgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRQYXltZW50TWV0aG9kT3BlcmF0aW9ucyB7XHJcbiAgICAgICAgcGF5bWVudE1ldGhvZEVsaWdpYmlsaXR5Q2hlY2tlcnMge1xyXG4gICAgICAgICAgICAuLi5Db25maWd1cmFibGVPcGVyYXRpb25EZWZcclxuICAgICAgICB9XHJcbiAgICAgICAgcGF5bWVudE1ldGhvZEhhbmRsZXJzIHtcclxuICAgICAgICAgICAgLi4uQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtDT05GSUdVUkFCTEVfT1BFUkFUSU9OX0RFRl9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBDUkVBVEVfUEFZTUVOVF9NRVRIT0QgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBDcmVhdGVQYXltZW50TWV0aG9kKCRpbnB1dDogQ3JlYXRlUGF5bWVudE1ldGhvZElucHV0ISkge1xyXG4gICAgICAgIGNyZWF0ZVBheW1lbnRNZXRob2QoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5QYXltZW50TWV0aG9kXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtQQVlNRU5UX01FVEhPRF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBVUERBVEVfUEFZTUVOVF9NRVRIT0QgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBVcGRhdGVQYXltZW50TWV0aG9kKCRpbnB1dDogVXBkYXRlUGF5bWVudE1ldGhvZElucHV0ISkge1xyXG4gICAgICAgIHVwZGF0ZVBheW1lbnRNZXRob2QoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5QYXltZW50TWV0aG9kXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtQQVlNRU5UX01FVEhPRF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUxFVEVfUEFZTUVOVF9NRVRIT0QgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBEZWxldGVQYXltZW50TWV0aG9kKCRpZDogSUQhLCAkZm9yY2U6IEJvb2xlYW4pIHtcclxuICAgICAgICBkZWxldGVQYXltZW50TWV0aG9kKGlkOiAkaWQsIGZvcmNlOiAkZm9yY2UpIHtcclxuICAgICAgICAgICAgcmVzdWx0XHJcbiAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgREVMRVRFX1BBWU1FTlRfTUVUSE9EUyA9IGdxbGBcclxuICAgIG11dGF0aW9uIERlbGV0ZVBheW1lbnRNZXRob2RzKCRpZHM6IFtJRCFdISwgJGZvcmNlOiBCb29sZWFuKSB7XHJcbiAgICAgICAgZGVsZXRlUGF5bWVudE1ldGhvZHMoaWRzOiAkaWRzLCBmb3JjZTogJGZvcmNlKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdMT0JBTF9TRVRUSU5HU19GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IEdsb2JhbFNldHRpbmdzIG9uIEdsb2JhbFNldHRpbmdzIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGF2YWlsYWJsZUxhbmd1YWdlc1xyXG4gICAgICAgIHRyYWNrSW52ZW50b3J5XHJcbiAgICAgICAgb3V0T2ZTdG9ja1RocmVzaG9sZFxyXG4gICAgICAgIHNlcnZlckNvbmZpZyB7XHJcbiAgICAgICAgICAgIHBlcm1pc3Npb25zIHtcclxuICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uXHJcbiAgICAgICAgICAgICAgICBhc3NpZ25hYmxlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb3JkZXJQcm9jZXNzIHtcclxuICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfR0xPQkFMX1NFVFRJTkdTID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0R2xvYmFsU2V0dGluZ3Mge1xyXG4gICAgICAgIGdsb2JhbFNldHRpbmdzIHtcclxuICAgICAgICAgICAgLi4uR2xvYmFsU2V0dGluZ3NcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0dMT0JBTF9TRVRUSU5HU19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBVUERBVEVfR0xPQkFMX1NFVFRJTkdTID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVXBkYXRlR2xvYmFsU2V0dGluZ3MoJGlucHV0OiBVcGRhdGVHbG9iYWxTZXR0aW5nc0lucHV0ISkge1xyXG4gICAgICAgIHVwZGF0ZUdsb2JhbFNldHRpbmdzKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uR2xvYmFsU2V0dGluZ3NcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0dMT0JBTF9TRVRUSU5HU19GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IENVU1RPTV9GSUVMRF9DT05GSUdfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBDdXN0b21GaWVsZENvbmZpZyBvbiBDdXN0b21GaWVsZCB7XHJcbiAgICAgICAgbmFtZVxyXG4gICAgICAgIHR5cGVcclxuICAgICAgICBsaXN0XHJcbiAgICAgICAgZGVzY3JpcHRpb24ge1xyXG4gICAgICAgICAgICBsYW5ndWFnZUNvZGVcclxuICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICB9XHJcbiAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICBsYW5ndWFnZUNvZGVcclxuICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICBudWxsYWJsZVxyXG4gICAgICAgIHVpXHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgU1RSSU5HX0NVU1RPTV9GSUVMRF9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IFN0cmluZ0N1c3RvbUZpZWxkIG9uIFN0cmluZ0N1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAuLi5DdXN0b21GaWVsZENvbmZpZ1xyXG4gICAgICAgIHBhdHRlcm5cclxuICAgICAgICBvcHRpb25zIHtcclxuICAgICAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlXHJcbiAgICAgICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtDVVNUT01fRklFTERfQ09ORklHX0ZSQUdNRU5UfVxyXG5gO1xyXG5leHBvcnQgY29uc3QgTE9DQUxFX1NUUklOR19DVVNUT01fRklFTERfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBMb2NhbGVTdHJpbmdDdXN0b21GaWVsZCBvbiBMb2NhbGVTdHJpbmdDdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgLi4uQ3VzdG9tRmllbGRDb25maWdcclxuICAgICAgICBwYXR0ZXJuXHJcbiAgICB9XHJcbiAgICAke0NVU1RPTV9GSUVMRF9DT05GSUdfRlJBR01FTlR9XHJcbmA7XHJcbmV4cG9ydCBjb25zdCBURVhUX0NVU1RPTV9GSUVMRF9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IFRleHRDdXN0b21GaWVsZCBvbiBUZXh0Q3VzdG9tRmllbGRDb25maWcge1xyXG4gICAgICAgIC4uLkN1c3RvbUZpZWxkQ29uZmlnXHJcbiAgICB9XHJcbiAgICAke0NVU1RPTV9GSUVMRF9DT05GSUdfRlJBR01FTlR9XHJcbmA7XHJcbmV4cG9ydCBjb25zdCBMT0NBTEVfVEVYVF9DVVNUT01fRklFTERfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBMb2NhbGVUZXh0Q3VzdG9tRmllbGQgb24gTG9jYWxlVGV4dEN1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAuLi5DdXN0b21GaWVsZENvbmZpZ1xyXG4gICAgfVxyXG4gICAgJHtDVVNUT01fRklFTERfQ09ORklHX0ZSQUdNRU5UfVxyXG5gO1xyXG5leHBvcnQgY29uc3QgQk9PTEVBTl9DVVNUT01fRklFTERfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBCb29sZWFuQ3VzdG9tRmllbGQgb24gQm9vbGVhbkN1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAuLi5DdXN0b21GaWVsZENvbmZpZ1xyXG4gICAgfVxyXG4gICAgJHtDVVNUT01fRklFTERfQ09ORklHX0ZSQUdNRU5UfVxyXG5gO1xyXG5leHBvcnQgY29uc3QgSU5UX0NVU1RPTV9GSUVMRF9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IEludEN1c3RvbUZpZWxkIG9uIEludEN1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAuLi5DdXN0b21GaWVsZENvbmZpZ1xyXG4gICAgICAgIGludE1pbjogbWluXHJcbiAgICAgICAgaW50TWF4OiBtYXhcclxuICAgICAgICBpbnRTdGVwOiBzdGVwXHJcbiAgICB9XHJcbiAgICAke0NVU1RPTV9GSUVMRF9DT05GSUdfRlJBR01FTlR9XHJcbmA7XHJcbmV4cG9ydCBjb25zdCBGTE9BVF9DVVNUT01fRklFTERfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBGbG9hdEN1c3RvbUZpZWxkIG9uIEZsb2F0Q3VzdG9tRmllbGRDb25maWcge1xyXG4gICAgICAgIC4uLkN1c3RvbUZpZWxkQ29uZmlnXHJcbiAgICAgICAgZmxvYXRNaW46IG1pblxyXG4gICAgICAgIGZsb2F0TWF4OiBtYXhcclxuICAgICAgICBmbG9hdFN0ZXA6IHN0ZXBcclxuICAgIH1cclxuICAgICR7Q1VTVE9NX0ZJRUxEX0NPTkZJR19GUkFHTUVOVH1cclxuYDtcclxuZXhwb3J0IGNvbnN0IERBVEVfVElNRV9DVVNUT01fRklFTERfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBEYXRlVGltZUN1c3RvbUZpZWxkIG9uIERhdGVUaW1lQ3VzdG9tRmllbGRDb25maWcge1xyXG4gICAgICAgIC4uLkN1c3RvbUZpZWxkQ29uZmlnXHJcbiAgICAgICAgZGF0ZXRpbWVNaW46IG1pblxyXG4gICAgICAgIGRhdGV0aW1lTWF4OiBtYXhcclxuICAgICAgICBkYXRldGltZVN0ZXA6IHN0ZXBcclxuICAgIH1cclxuICAgICR7Q1VTVE9NX0ZJRUxEX0NPTkZJR19GUkFHTUVOVH1cclxuYDtcclxuZXhwb3J0IGNvbnN0IFJFTEFUSU9OX0NVU1RPTV9GSUVMRF9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IFJlbGF0aW9uQ3VzdG9tRmllbGQgb24gUmVsYXRpb25DdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgLi4uQ3VzdG9tRmllbGRDb25maWdcclxuICAgICAgICBlbnRpdHlcclxuICAgICAgICBzY2FsYXJGaWVsZHNcclxuICAgIH1cclxuICAgICR7Q1VTVE9NX0ZJRUxEX0NPTkZJR19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBBTExfQ1VTVE9NX0ZJRUxEU19GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IEN1c3RvbUZpZWxkcyBvbiBDdXN0b21GaWVsZCB7XHJcbiAgICAgICAgLi4uIG9uIFN0cmluZ0N1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAgICAgLi4uU3RyaW5nQ3VzdG9tRmllbGRcclxuICAgICAgICB9XHJcbiAgICAgICAgLi4uIG9uIExvY2FsZVN0cmluZ0N1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAgICAgLi4uTG9jYWxlU3RyaW5nQ3VzdG9tRmllbGRcclxuICAgICAgICB9XHJcbiAgICAgICAgLi4uIG9uIFRleHRDdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgICAgIC4uLlRleHRDdXN0b21GaWVsZFxyXG4gICAgICAgIH1cclxuICAgICAgICAuLi4gb24gTG9jYWxlVGV4dEN1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAgICAgLi4uTG9jYWxlVGV4dEN1c3RvbUZpZWxkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC4uLiBvbiBCb29sZWFuQ3VzdG9tRmllbGRDb25maWcge1xyXG4gICAgICAgICAgICAuLi5Cb29sZWFuQ3VzdG9tRmllbGRcclxuICAgICAgICB9XHJcbiAgICAgICAgLi4uIG9uIEludEN1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAgICAgLi4uSW50Q3VzdG9tRmllbGRcclxuICAgICAgICB9XHJcbiAgICAgICAgLi4uIG9uIEZsb2F0Q3VzdG9tRmllbGRDb25maWcge1xyXG4gICAgICAgICAgICAuLi5GbG9hdEN1c3RvbUZpZWxkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC4uLiBvbiBEYXRlVGltZUN1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAgICAgLi4uRGF0ZVRpbWVDdXN0b21GaWVsZFxyXG4gICAgICAgIH1cclxuICAgICAgICAuLi4gb24gUmVsYXRpb25DdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgICAgIC4uLlJlbGF0aW9uQ3VzdG9tRmllbGRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1NUUklOR19DVVNUT01fRklFTERfRlJBR01FTlR9XHJcbiAgICAke0xPQ0FMRV9TVFJJTkdfQ1VTVE9NX0ZJRUxEX0ZSQUdNRU5UfVxyXG4gICAgJHtURVhUX0NVU1RPTV9GSUVMRF9GUkFHTUVOVH1cclxuICAgICR7Qk9PTEVBTl9DVVNUT01fRklFTERfRlJBR01FTlR9XHJcbiAgICAke0lOVF9DVVNUT01fRklFTERfRlJBR01FTlR9XHJcbiAgICAke0ZMT0FUX0NVU1RPTV9GSUVMRF9GUkFHTUVOVH1cclxuICAgICR7REFURV9USU1FX0NVU1RPTV9GSUVMRF9GUkFHTUVOVH1cclxuICAgICR7UkVMQVRJT05fQ1VTVE9NX0ZJRUxEX0ZSQUdNRU5UfVxyXG4gICAgJHtMT0NBTEVfVEVYVF9DVVNUT01fRklFTERfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX1NFUlZFUl9DT05GSUcgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRTZXJ2ZXJDb25maWcge1xyXG4gICAgICAgIGdsb2JhbFNldHRpbmdzIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgc2VydmVyQ29uZmlnIHtcclxuICAgICAgICAgICAgICAgIG1vbmV5U3RyYXRlZ3lQcmVjaXNpb25cclxuICAgICAgICAgICAgICAgIG9yZGVyUHJvY2VzcyB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICAgICAgICAgIHRvXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBwZXJtaXR0ZWRBc3NldFR5cGVzXHJcbiAgICAgICAgICAgICAgICBwZXJtaXNzaW9ucyB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgYXNzaWduYWJsZVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZW50aXR5Q3VzdG9tRmllbGRzIHtcclxuICAgICAgICAgICAgICAgICAgICBlbnRpdHlOYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgY3VzdG9tRmllbGRzIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3VzdG9tRmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtBTExfQ1VTVE9NX0ZJRUxEU19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBKT0JfSU5GT19GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IEpvYkluZm8gb24gSm9iIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgIHN0YXJ0ZWRBdFxyXG4gICAgICAgIHNldHRsZWRBdFxyXG4gICAgICAgIHF1ZXVlTmFtZVxyXG4gICAgICAgIHN0YXRlXHJcbiAgICAgICAgaXNTZXR0bGVkXHJcbiAgICAgICAgcHJvZ3Jlc3NcclxuICAgICAgICBkdXJhdGlvblxyXG4gICAgICAgIGRhdGFcclxuICAgICAgICByZXN1bHRcclxuICAgICAgICBlcnJvclxyXG4gICAgICAgIHJldHJpZXNcclxuICAgICAgICBhdHRlbXB0c1xyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9KT0JfSU5GTyA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldEpvYkluZm8oJGlkOiBJRCEpIHtcclxuICAgICAgICBqb2Ioam9iSWQ6ICRpZCkge1xyXG4gICAgICAgICAgICAuLi5Kb2JJbmZvXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtKT0JfSU5GT19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfSk9CU19MSVNUID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0QWxsSm9icygkb3B0aW9uczogSm9iTGlzdE9wdGlvbnMpIHtcclxuICAgICAgICBqb2JzKG9wdGlvbnM6ICRvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgIC4uLkpvYkluZm9cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0b3RhbEl0ZW1zXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtKT0JfSU5GT19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfSk9CU19CWV9JRCA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldEpvYnNCeUlkKCRpZHM6IFtJRCFdISkge1xyXG4gICAgICAgIGpvYnNCeUlkKGpvYklkczogJGlkcykge1xyXG4gICAgICAgICAgICAuLi5Kb2JJbmZvXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtKT0JfSU5GT19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfSk9CX1FVRVVFX0xJU1QgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRKb2JRdWV1ZUxpc3Qge1xyXG4gICAgICAgIGpvYlF1ZXVlcyB7XHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgcnVubmluZ1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBDQU5DRUxfSk9CID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQ2FuY2VsSm9iKCRpZDogSUQhKSB7XHJcbiAgICAgICAgY2FuY2VsSm9iKGpvYklkOiAkaWQpIHtcclxuICAgICAgICAgICAgLi4uSm9iSW5mb1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7Sk9CX0lORk9fRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgUkVJTkRFWCA9IGdxbGBcclxuICAgIG11dGF0aW9uIFJlaW5kZXgge1xyXG4gICAgICAgIHJlaW5kZXgge1xyXG4gICAgICAgICAgICAuLi5Kb2JJbmZvXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtKT0JfSU5GT19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfUEVORElOR19TRUFSQ0hfSU5ERVhfVVBEQVRFUyA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldFBlbmRpbmdTZWFyY2hJbmRleFVwZGF0ZXMge1xyXG4gICAgICAgIHBlbmRpbmdTZWFyY2hJbmRleFVwZGF0ZXNcclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBSVU5fUEVORElOR19TRUFSQ0hfSU5ERVhfVVBEQVRFUyA9IGdxbGBcclxuICAgIG11dGF0aW9uIFJ1blBlbmRpbmdTZWFyY2hJbmRleFVwZGF0ZXMge1xyXG4gICAgICAgIHJ1blBlbmRpbmdTZWFyY2hJbmRleFVwZGF0ZXMge1xyXG4gICAgICAgICAgICBzdWNjZXNzXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG4iXX0=
@@ -14,7 +14,7 @@ export class BaseDataService {
14
14
  this.serverConfigService = serverConfigService;
15
15
  }
16
16
  get customFields() {
17
- return this.serverConfigService.serverConfig.customFieldConfig || {};
17
+ return this.serverConfigService.customFieldsMap;
18
18
  }
19
19
  /**
20
20
  * Performs a GraphQL watch query
@@ -62,4 +62,4 @@ export class BaseDataService {
62
62
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: BaseDataService, decorators: [{
63
63
  type: Injectable
64
64
  }], ctorParameters: function () { return [{ type: i1.Apollo }, { type: i2.ServerConfigService }]; } });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1kYXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2RhdGEvcHJvdmlkZXJzL2Jhc2UtZGF0YS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBSXhFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFDSCw4QkFBOEIsRUFDOUIsMEJBQTBCLEdBQzdCLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0saURBQWlELENBQUM7Ozs7QUFHckcsTUFBTSxPQUFPLGVBQWU7SUFDeEIsWUFBb0IsTUFBYyxFQUFVLG1CQUF3QztRQUFoRSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtJQUFHLENBQUM7SUFFeEYsSUFBWSxZQUFZO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUM7SUFDekUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUNELEtBQTZDLEVBQzdDLFNBQWEsRUFDYixjQUFxQyxtQkFBbUI7UUFFeEQsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBTztZQUMxQyxLQUFLLEVBQUUsZ0JBQWdCO1lBQ3ZCLFNBQVM7WUFDVCxXQUFXO1NBQ2QsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQVMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRSxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQ0YsUUFBZ0QsRUFDaEQsU0FBYSxFQUNiLE1BQTZCO1FBRTdCLE1BQU0sZ0JBQWdCLEdBQUcsZUFBZSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEUsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTVFLE9BQU8sSUFBSSxDQUFDLE1BQU07YUFDYixNQUFNLENBQU87WUFDVixRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFNBQVMsRUFBRSxxQkFBcUI7WUFDaEMsTUFBTTtTQUNULENBQUM7YUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUUsTUFBZ0MsQ0FBQyxJQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFTyxtQkFBbUIsQ0FBSSxRQUFzQixFQUFFLFNBQVk7UUFDL0QsTUFBTSxNQUFNLEdBQUcsOEJBQThCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEQsSUFBSSxNQUFNLEVBQUU7WUFDUixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEQsSUFBSSxTQUFTLElBQUksaUJBQWlCLEVBQUU7Z0JBQ2hDLElBQUksY0FBYyxHQUFHLGVBQWUsQ0FBQyxTQUFnQixDQUFDLENBQUM7Z0JBQ3ZELGNBQWMsR0FBRywwQkFBMEIsQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztnQkFDL0UsY0FBYyxHQUFHLGtDQUFrQyxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO2dCQUN2RixPQUFPLGNBQWMsQ0FBQzthQUN6QjtTQUNKO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQzs4R0F6RFEsZUFBZTtrSEFBZixlQUFlOzsyRkFBZixlQUFlO2tCQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNdXRhdGlvblVwZGF0ZXJGbiwgU2luZ2xlRXhlY3V0aW9uUmVzdWx0LCBXYXRjaFF1ZXJ5RmV0Y2hQb2xpY3kgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcclxuaW1wb3J0IHsgVHlwZWREb2N1bWVudE5vZGUgfSBmcm9tICdAZ3JhcGhxbC10eXBlZC1kb2N1bWVudC1ub2RlL2NvcmUnO1xyXG5pbXBvcnQgeyBzaW1wbGVEZWVwQ2xvbmUgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NpbXBsZS1kZWVwLWNsb25lJztcclxuaW1wb3J0IHsgQXBvbGxvIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBEb2N1bWVudE5vZGUgfSBmcm9tICdncmFwaHFsL2xhbmd1YWdlL2FzdCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQ3VzdG9tRmllbGRzIH0gZnJvbSAnLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XHJcbmltcG9ydCB7IFF1ZXJ5UmVzdWx0IH0gZnJvbSAnLi4vcXVlcnktcmVzdWx0JztcclxuaW1wb3J0IHsgU2VydmVyQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL3NlcnZlci1jb25maWcnO1xyXG5pbXBvcnQgeyBhZGRDdXN0b21GaWVsZHMgfSBmcm9tICcuLi91dGlscy9hZGQtY3VzdG9tLWZpZWxkcyc7XHJcbmltcG9ydCB7XHJcbiAgICBpc0VudGl0eUNyZWF0ZU9yVXBkYXRlTXV0YXRpb24sXHJcbiAgICByZW1vdmVSZWFkb25seUN1c3RvbUZpZWxkcyxcclxufSBmcm9tICcuLi91dGlscy9yZW1vdmUtcmVhZG9ubHktY3VzdG9tLWZpZWxkcyc7XHJcbmltcG9ydCB7IHRyYW5zZm9ybVJlbGF0aW9uQ3VzdG9tRmllbGRJbnB1dHMgfSBmcm9tICcuLi91dGlscy90cmFuc2Zvcm0tcmVsYXRpb24tY3VzdG9tLWZpZWxkLWlucHV0cyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBCYXNlRGF0YVNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhcG9sbG86IEFwb2xsbywgcHJpdmF0ZSBzZXJ2ZXJDb25maWdTZXJ2aWNlOiBTZXJ2ZXJDb25maWdTZXJ2aWNlKSB7fVxyXG5cclxuICAgIHByaXZhdGUgZ2V0IGN1c3RvbUZpZWxkcygpOiBDdXN0b21GaWVsZHMge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZlckNvbmZpZ1NlcnZpY2Uuc2VydmVyQ29uZmlnLmN1c3RvbUZpZWxkQ29uZmlnIHx8IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGVyZm9ybXMgYSBHcmFwaFFMIHdhdGNoIHF1ZXJ5XHJcbiAgICAgKi9cclxuICAgIHF1ZXJ5PFQsIFYgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4oXHJcbiAgICAgICAgcXVlcnk6IERvY3VtZW50Tm9kZSB8IFR5cGVkRG9jdW1lbnROb2RlPFQsIFY+LFxyXG4gICAgICAgIHZhcmlhYmxlcz86IFYsXHJcbiAgICAgICAgZmV0Y2hQb2xpY3k6IFdhdGNoUXVlcnlGZXRjaFBvbGljeSA9ICdjYWNoZS1hbmQtbmV0d29yaycsXHJcbiAgICApOiBRdWVyeVJlc3VsdDxULCBWPiB7XHJcbiAgICAgICAgY29uc3Qgd2l0aEN1c3RvbUZpZWxkcyA9IGFkZEN1c3RvbUZpZWxkcyhxdWVyeSwgdGhpcy5jdXN0b21GaWVsZHMpO1xyXG4gICAgICAgIGNvbnN0IHF1ZXJ5UmVmID0gdGhpcy5hcG9sbG8ud2F0Y2hRdWVyeTxULCBWPih7XHJcbiAgICAgICAgICAgIHF1ZXJ5OiB3aXRoQ3VzdG9tRmllbGRzLFxyXG4gICAgICAgICAgICB2YXJpYWJsZXMsXHJcbiAgICAgICAgICAgIGZldGNoUG9saWN5LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbnN0IHF1ZXJ5UmVzdWx0ID0gbmV3IFF1ZXJ5UmVzdWx0PFQsIGFueT4ocXVlcnlSZWYsIHRoaXMuYXBvbGxvKTtcclxuICAgICAgICByZXR1cm4gcXVlcnlSZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQZXJmb3JtcyBhIEdyYXBoUUwgbXV0YXRpb25cclxuICAgICAqL1xyXG4gICAgbXV0YXRlPFQsIFYgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4oXHJcbiAgICAgICAgbXV0YXRpb246IERvY3VtZW50Tm9kZSB8IFR5cGVkRG9jdW1lbnROb2RlPFQsIFY+LFxyXG4gICAgICAgIHZhcmlhYmxlcz86IFYsXHJcbiAgICAgICAgdXBkYXRlPzogTXV0YXRpb25VcGRhdGVyRm48VD4sXHJcbiAgICApOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgICAgICBjb25zdCB3aXRoQ3VzdG9tRmllbGRzID0gYWRkQ3VzdG9tRmllbGRzKG11dGF0aW9uLCB0aGlzLmN1c3RvbUZpZWxkcyk7XHJcbiAgICAgICAgY29uc3Qgd2l0aG91dFJlYWRvbmx5RmllbGRzID0gdGhpcy5wcmVwYXJlQ3VzdG9tRmllbGRzKG11dGF0aW9uLCB2YXJpYWJsZXMpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5hcG9sbG9cclxuICAgICAgICAgICAgLm11dGF0ZTxULCBWPih7XHJcbiAgICAgICAgICAgICAgICBtdXRhdGlvbjogd2l0aEN1c3RvbUZpZWxkcyxcclxuICAgICAgICAgICAgICAgIHZhcmlhYmxlczogd2l0aG91dFJlYWRvbmx5RmllbGRzLFxyXG4gICAgICAgICAgICAgICAgdXBkYXRlLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAucGlwZShtYXAocmVzdWx0ID0+IChyZXN1bHQgYXMgU2luZ2xlRXhlY3V0aW9uUmVzdWx0KS5kYXRhIGFzIFQpKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByZXBhcmVDdXN0b21GaWVsZHM8Vj4obXV0YXRpb246IERvY3VtZW50Tm9kZSwgdmFyaWFibGVzOiBWKTogViB7XHJcbiAgICAgICAgY29uc3QgZW50aXR5ID0gaXNFbnRpdHlDcmVhdGVPclVwZGF0ZU11dGF0aW9uKG11dGF0aW9uKTtcclxuICAgICAgICBpZiAoZW50aXR5KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1c3RvbUZpZWxkQ29uZmlnID0gdGhpcy5jdXN0b21GaWVsZHNbZW50aXR5XTtcclxuICAgICAgICAgICAgaWYgKHZhcmlhYmxlcyAmJiBjdXN0b21GaWVsZENvbmZpZykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHZhcmlhYmxlc0Nsb25lID0gc2ltcGxlRGVlcENsb25lKHZhcmlhYmxlcyBhcyBhbnkpO1xyXG4gICAgICAgICAgICAgICAgdmFyaWFibGVzQ2xvbmUgPSByZW1vdmVSZWFkb25seUN1c3RvbUZpZWxkcyh2YXJpYWJsZXNDbG9uZSwgY3VzdG9tRmllbGRDb25maWcpO1xyXG4gICAgICAgICAgICAgICAgdmFyaWFibGVzQ2xvbmUgPSB0cmFuc2Zvcm1SZWxhdGlvbkN1c3RvbUZpZWxkSW5wdXRzKHZhcmlhYmxlc0Nsb25lLCBjdXN0b21GaWVsZENvbmZpZyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFyaWFibGVzQ2xvbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHZhcmlhYmxlcztcclxuICAgIH1cclxufVxyXG4iXX0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1kYXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2RhdGEvcHJvdmlkZXJzL2Jhc2UtZGF0YS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBSXhFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFDSCw4QkFBOEIsRUFDOUIsMEJBQTBCLEdBQzdCLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0saURBQWlELENBQUM7Ozs7QUFHckcsTUFBTSxPQUFPLGVBQWU7SUFDeEIsWUFBb0IsTUFBYyxFQUFVLG1CQUF3QztRQUFoRSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtJQUFHLENBQUM7SUFFeEYsSUFBWSxZQUFZO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQ0QsS0FBNkMsRUFDN0MsU0FBYSxFQUNiLGNBQXFDLG1CQUFtQjtRQUV4RCxNQUFNLGdCQUFnQixHQUFHLGVBQWUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25FLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFPO1lBQzFDLEtBQUssRUFBRSxnQkFBZ0I7WUFDdkIsU0FBUztZQUNULFdBQVc7U0FDZCxDQUFDLENBQUM7UUFDSCxNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsQ0FBUyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25FLE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FDRixRQUFnRCxFQUNoRCxTQUFhLEVBQ2IsTUFBNkI7UUFFN0IsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0RSxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFNUUsT0FBTyxJQUFJLENBQUMsTUFBTTthQUNiLE1BQU0sQ0FBTztZQUNWLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsU0FBUyxFQUFFLHFCQUFxQjtZQUNoQyxNQUFNO1NBQ1QsQ0FBQzthQUNELElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBRSxNQUFnQyxDQUFDLElBQVMsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVPLG1CQUFtQixDQUFJLFFBQXNCLEVBQUUsU0FBWTtRQUMvRCxNQUFNLE1BQU0sR0FBRyw4QkFBOEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4RCxJQUFJLE1BQU0sRUFBRTtZQUNSLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwRCxJQUFJLFNBQVMsSUFBSSxpQkFBaUIsRUFBRTtnQkFDaEMsSUFBSSxjQUFjLEdBQUcsZUFBZSxDQUFDLFNBQWdCLENBQUMsQ0FBQztnQkFDdkQsY0FBYyxHQUFHLDBCQUEwQixDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO2dCQUMvRSxjQUFjLEdBQUcsa0NBQWtDLENBQUMsY0FBYyxFQUFFLGlCQUFpQixDQUFDLENBQUM7Z0JBQ3ZGLE9BQU8sY0FBYyxDQUFDO2FBQ3pCO1NBQ0o7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDOzhHQXpEUSxlQUFlO2tIQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE11dGF0aW9uVXBkYXRlckZuLCBTaW5nbGVFeGVjdXRpb25SZXN1bHQsIFdhdGNoUXVlcnlGZXRjaFBvbGljeSB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xyXG5pbXBvcnQgeyBUeXBlZERvY3VtZW50Tm9kZSB9IGZyb20gJ0BncmFwaHFsLXR5cGVkLWRvY3VtZW50LW5vZGUvY29yZSc7XHJcbmltcG9ydCB7IHNpbXBsZURlZXBDbG9uZSB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2ltcGxlLWRlZXAtY2xvbmUnO1xyXG5pbXBvcnQgeyBBcG9sbG8gfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XHJcbmltcG9ydCB7IERvY3VtZW50Tm9kZSB9IGZyb20gJ2dyYXBocWwvbGFuZ3VhZ2UvYXN0JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBDdXN0b21GaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5pbXBvcnQgeyBRdWVyeVJlc3VsdCB9IGZyb20gJy4uL3F1ZXJ5LXJlc3VsdCc7XHJcbmltcG9ydCB7IFNlcnZlckNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2ZXItY29uZmlnJztcclxuaW1wb3J0IHsgYWRkQ3VzdG9tRmllbGRzIH0gZnJvbSAnLi4vdXRpbHMvYWRkLWN1c3RvbS1maWVsZHMnO1xyXG5pbXBvcnQge1xyXG4gICAgaXNFbnRpdHlDcmVhdGVPclVwZGF0ZU11dGF0aW9uLFxyXG4gICAgcmVtb3ZlUmVhZG9ubHlDdXN0b21GaWVsZHMsXHJcbn0gZnJvbSAnLi4vdXRpbHMvcmVtb3ZlLXJlYWRvbmx5LWN1c3RvbS1maWVsZHMnO1xyXG5pbXBvcnQgeyB0cmFuc2Zvcm1SZWxhdGlvbkN1c3RvbUZpZWxkSW5wdXRzIH0gZnJvbSAnLi4vdXRpbHMvdHJhbnNmb3JtLXJlbGF0aW9uLWN1c3RvbS1maWVsZC1pbnB1dHMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQmFzZURhdGFTZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBvbGxvOiBBcG9sbG8sIHByaXZhdGUgc2VydmVyQ29uZmlnU2VydmljZTogU2VydmVyQ29uZmlnU2VydmljZSkge31cclxuXHJcbiAgICBwcml2YXRlIGdldCBjdXN0b21GaWVsZHMoKTogTWFwPHN0cmluZywgQ3VzdG9tRmllbGRDb25maWdbXT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZlckNvbmZpZ1NlcnZpY2UuY3VzdG9tRmllbGRzTWFwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGVyZm9ybXMgYSBHcmFwaFFMIHdhdGNoIHF1ZXJ5XHJcbiAgICAgKi9cclxuICAgIHF1ZXJ5PFQsIFYgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4oXHJcbiAgICAgICAgcXVlcnk6IERvY3VtZW50Tm9kZSB8IFR5cGVkRG9jdW1lbnROb2RlPFQsIFY+LFxyXG4gICAgICAgIHZhcmlhYmxlcz86IFYsXHJcbiAgICAgICAgZmV0Y2hQb2xpY3k6IFdhdGNoUXVlcnlGZXRjaFBvbGljeSA9ICdjYWNoZS1hbmQtbmV0d29yaycsXHJcbiAgICApOiBRdWVyeVJlc3VsdDxULCBWPiB7XHJcbiAgICAgICAgY29uc3Qgd2l0aEN1c3RvbUZpZWxkcyA9IGFkZEN1c3RvbUZpZWxkcyhxdWVyeSwgdGhpcy5jdXN0b21GaWVsZHMpO1xyXG4gICAgICAgIGNvbnN0IHF1ZXJ5UmVmID0gdGhpcy5hcG9sbG8ud2F0Y2hRdWVyeTxULCBWPih7XHJcbiAgICAgICAgICAgIHF1ZXJ5OiB3aXRoQ3VzdG9tRmllbGRzLFxyXG4gICAgICAgICAgICB2YXJpYWJsZXMsXHJcbiAgICAgICAgICAgIGZldGNoUG9saWN5LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbnN0IHF1ZXJ5UmVzdWx0ID0gbmV3IFF1ZXJ5UmVzdWx0PFQsIGFueT4ocXVlcnlSZWYsIHRoaXMuYXBvbGxvKTtcclxuICAgICAgICByZXR1cm4gcXVlcnlSZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQZXJmb3JtcyBhIEdyYXBoUUwgbXV0YXRpb25cclxuICAgICAqL1xyXG4gICAgbXV0YXRlPFQsIFYgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4oXHJcbiAgICAgICAgbXV0YXRpb246IERvY3VtZW50Tm9kZSB8IFR5cGVkRG9jdW1lbnROb2RlPFQsIFY+LFxyXG4gICAgICAgIHZhcmlhYmxlcz86IFYsXHJcbiAgICAgICAgdXBkYXRlPzogTXV0YXRpb25VcGRhdGVyRm48VD4sXHJcbiAgICApOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgICAgICBjb25zdCB3aXRoQ3VzdG9tRmllbGRzID0gYWRkQ3VzdG9tRmllbGRzKG11dGF0aW9uLCB0aGlzLmN1c3RvbUZpZWxkcyk7XHJcbiAgICAgICAgY29uc3Qgd2l0aG91dFJlYWRvbmx5RmllbGRzID0gdGhpcy5wcmVwYXJlQ3VzdG9tRmllbGRzKG11dGF0aW9uLCB2YXJpYWJsZXMpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5hcG9sbG9cclxuICAgICAgICAgICAgLm11dGF0ZTxULCBWPih7XHJcbiAgICAgICAgICAgICAgICBtdXRhdGlvbjogd2l0aEN1c3RvbUZpZWxkcyxcclxuICAgICAgICAgICAgICAgIHZhcmlhYmxlczogd2l0aG91dFJlYWRvbmx5RmllbGRzLFxyXG4gICAgICAgICAgICAgICAgdXBkYXRlLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAucGlwZShtYXAocmVzdWx0ID0+IChyZXN1bHQgYXMgU2luZ2xlRXhlY3V0aW9uUmVzdWx0KS5kYXRhIGFzIFQpKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByZXBhcmVDdXN0b21GaWVsZHM8Vj4obXV0YXRpb246IERvY3VtZW50Tm9kZSwgdmFyaWFibGVzOiBWKTogViB7XHJcbiAgICAgICAgY29uc3QgZW50aXR5ID0gaXNFbnRpdHlDcmVhdGVPclVwZGF0ZU11dGF0aW9uKG11dGF0aW9uKTtcclxuICAgICAgICBpZiAoZW50aXR5KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1c3RvbUZpZWxkQ29uZmlnID0gdGhpcy5jdXN0b21GaWVsZHNbZW50aXR5XTtcclxuICAgICAgICAgICAgaWYgKHZhcmlhYmxlcyAmJiBjdXN0b21GaWVsZENvbmZpZykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHZhcmlhYmxlc0Nsb25lID0gc2ltcGxlRGVlcENsb25lKHZhcmlhYmxlcyBhcyBhbnkpO1xyXG4gICAgICAgICAgICAgICAgdmFyaWFibGVzQ2xvbmUgPSByZW1vdmVSZWFkb25seUN1c3RvbUZpZWxkcyh2YXJpYWJsZXNDbG9uZSwgY3VzdG9tRmllbGRDb25maWcpO1xyXG4gICAgICAgICAgICAgICAgdmFyaWFibGVzQ2xvbmUgPSB0cmFuc2Zvcm1SZWxhdGlvbkN1c3RvbUZpZWxkSW5wdXRzKHZhcmlhYmxlc0Nsb25lLCBjdXN0b21GaWVsZENvbmZpZyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFyaWFibGVzQ2xvbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHZhcmlhYmxlcztcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -17,6 +17,7 @@ export class ServerConfigService {
17
17
  constructor(injector) {
18
18
  this.injector = injector;
19
19
  this._serverConfig = {};
20
+ this.customFieldsMap = new Map();
20
21
  }
21
22
  /**
22
23
  * Fetches the ServerConfig. Should be run as part of the app bootstrap process by attaching
@@ -31,6 +32,9 @@ export class ServerConfigService {
31
32
  getServerConfig() {
32
33
  return lastValueFrom(this.baseDataService.query(GET_SERVER_CONFIG).single$).then(result => {
33
34
  this._serverConfig = result.globalSettings.serverConfig;
35
+ for (const entityCustomFields of this._serverConfig.entityCustomFields) {
36
+ this.customFieldsMap.set(entityCustomFields.entityName, entityCustomFields.customFields);
37
+ }
34
38
  }, err => {
35
39
  // Let the error fall through to be caught by the http interceptor.
36
40
  });
@@ -51,7 +55,7 @@ export class ServerConfigService {
51
55
  * Retrieves the custom field configs for the given entity type.
52
56
  */
53
57
  getCustomFieldsFor(type) {
54
- return this.serverConfig.customFieldConfig[type] || [];
58
+ return this.customFieldsMap.get(type) || [];
55
59
  }
56
60
  getOrderProcessStates() {
57
61
  return this.serverConfig.orderProcess;
@@ -71,4 +75,4 @@ export class ServerConfigService {
71
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ServerConfigService, decorators: [{
72
76
  type: Injectable
73
77
  }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvZGF0YS9zZXJ2ZXItY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVlyQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBRWhFLE1BQU0sVUFBVSw2QkFBNkIsQ0FBQyxtQkFBd0M7SUFDbEYsT0FBTyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN0QyxDQUFDO0FBRUQ7OztHQUdHO0FBRUgsTUFBTSxPQUFPLG1CQUFtQjtJQUc1QixJQUFZLGVBQWU7UUFDdkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBa0IsZUFBZSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFOOUIsa0JBQWEsR0FBaUIsRUFBUyxDQUFDO0lBTVAsQ0FBQztJQUUxQzs7O09BR0c7SUFDSCxJQUFJO1FBQ0EsT0FBTyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZTtRQUNYLE9BQU8sYUFBYSxDQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBdUIsaUJBQWlCLENBQUMsQ0FBQyxPQUFPLENBQzlFLENBQUMsSUFBSSxDQUNGLE1BQU0sQ0FBQyxFQUFFO1lBQ0wsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQztRQUM1RCxDQUFDLEVBQ0QsR0FBRyxDQUFDLEVBQUU7WUFDRixtRUFBbUU7UUFDdkUsQ0FBQyxDQUNKLENBQUM7SUFDTixDQUFDO0lBRUQscUJBQXFCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGVBQWU7YUFDdEIsS0FBSyxDQUF5QixtQkFBbUIsRUFBRSxFQUFFLEVBQUUsYUFBYSxDQUFDO2FBQ3JFLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxxQkFBcUI7UUFDakIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBeUIsbUJBQW1CLEVBQUUsRUFBRSxFQUFFLGNBQWMsQ0FBQzthQUM3RixPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsa0JBQWtCLENBQUMsSUFBK0M7UUFDOUQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0lBRUQscUJBQXFCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUM7SUFDMUMsQ0FBQztJQUVELHNCQUFzQjtRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUM7SUFDakQsQ0FBQztJQUVELHdCQUF3QjtRQUNwQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQzs4R0FwRVEsbUJBQW1CO2tIQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBsYXN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgQ3VzdG9tRmllbGRDb25maWcsXHJcbiAgICBDdXN0b21GaWVsZHMsXHJcbiAgICBHZXRHbG9iYWxTZXR0aW5nc1F1ZXJ5LFxyXG4gICAgR2V0U2VydmVyQ29uZmlnUXVlcnksXHJcbiAgICBPcmRlclByb2Nlc3NTdGF0ZSxcclxuICAgIFBlcm1pc3Npb25EZWZpbml0aW9uLFxyXG4gICAgU2VydmVyQ29uZmlnLFxyXG59IGZyb20gJy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5cclxuaW1wb3J0IHsgR0VUX0dMT0JBTF9TRVRUSU5HUywgR0VUX1NFUlZFUl9DT05GSUcgfSBmcm9tICcuL2RlZmluaXRpb25zL3NldHRpbmdzLWRlZmluaXRpb25zJztcclxuaW1wb3J0IHsgQmFzZURhdGFTZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvYmFzZS1kYXRhLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpemVTZXJ2ZXJDb25maWdTZXJ2aWNlKHNlcnZlckNvbmZpZ1NlcnZpY2U6IFNlcnZlckNvbmZpZ1NlcnZpY2UpOiAoKSA9PiBQcm9taXNlPGFueT4ge1xyXG4gICAgcmV0dXJuIHNlcnZlckNvbmZpZ1NlcnZpY2UuaW5pdCgpO1xyXG59XHJcblxyXG4vKipcclxuICogQSBzZXJ2aWNlIHdoaWNoIGZldGNoZXMgdGhlIGNvbmZpZyBmcm9tIHRoZSBzZXJ2ZXIgdXBvbiBpbml0aWFsaXphdGlvbiwgYW5kIHRoZW4gcHJvdmlkZXMgdGhhdCBjb25maWdcclxuICogdG8gdGhlIGNvbXBvbmVudHMgd2hpY2ggcmVxdWlyZSBpdC5cclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFNlcnZlckNvbmZpZ1NlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSBfc2VydmVyQ29uZmlnOiBTZXJ2ZXJDb25maWcgPSB7fSBhcyBhbnk7XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgYmFzZURhdGFTZXJ2aWNlKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmluamVjdG9yLmdldDxCYXNlRGF0YVNlcnZpY2U+KEJhc2VEYXRhU2VydmljZSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHt9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGZXRjaGVzIHRoZSBTZXJ2ZXJDb25maWcuIFNob3VsZCBiZSBydW4gYXMgcGFydCBvZiB0aGUgYXBwIGJvb3RzdHJhcCBwcm9jZXNzIGJ5IGF0dGFjaGluZ1xyXG4gICAgICogdG8gdGhlIEFuZ3VsYXIgQVBQX0lOSVRJQUxJWkVSIHRva2VuLlxyXG4gICAgICovXHJcbiAgICBpbml0KCk6ICgpID0+IFByb21pc2U8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuICgpID0+IHRoaXMuZ2V0U2VydmVyQ29uZmlnKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGZXRjaCB0aGUgU2VydmVyQ29uZmlnLiBTaG91bGQgYmUgcnVuIG9uIGFwcCBpbml0IChpbiBjYXNlIHVzZXIgaXMgYWxyZWFkeSBsb2dnZWQgaW4pIGFuZCBvbiBzdWNjZXNzZnVsIGxvZ2luLlxyXG4gICAgICovXHJcbiAgICBnZXRTZXJ2ZXJDb25maWcoKSB7XHJcbiAgICAgICAgcmV0dXJuIGxhc3RWYWx1ZUZyb20oXHJcbiAgICAgICAgICAgIHRoaXMuYmFzZURhdGFTZXJ2aWNlLnF1ZXJ5PEdldFNlcnZlckNvbmZpZ1F1ZXJ5PihHRVRfU0VSVkVSX0NPTkZJRykuc2luZ2xlJCxcclxuICAgICAgICApLnRoZW4oXHJcbiAgICAgICAgICAgIHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXJ2ZXJDb25maWcgPSByZXN1bHQuZ2xvYmFsU2V0dGluZ3Muc2VydmVyQ29uZmlnO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gTGV0IHRoZSBlcnJvciBmYWxsIHRocm91Z2ggdG8gYmUgY2F1Z2h0IGJ5IHRoZSBodHRwIGludGVyY2VwdG9yLlxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QXZhaWxhYmxlTGFuZ3VhZ2VzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZVxyXG4gICAgICAgICAgICAucXVlcnk8R2V0R2xvYmFsU2V0dGluZ3NRdWVyeT4oR0VUX0dMT0JBTF9TRVRUSU5HUywge30sICdjYWNoZS1maXJzdCcpXHJcbiAgICAgICAgICAgIC5tYXBTaW5nbGUocmVzID0+IHJlcy5nbG9iYWxTZXR0aW5ncy5hdmFpbGFibGVMYW5ndWFnZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hlbiBhbnkgb2YgdGhlIEdsb2JhbFNldHRpbmdzIGFyZSBtb2RpZmllZCwgdGhpcyBtZXRob2Qgc2hvdWxkIGJlIGNhbGxlZCB0byB1cGRhdGUgdGhlIEFwb2xsbyBjYWNoZS5cclxuICAgICAqL1xyXG4gICAgcmVmcmVzaEdsb2JhbFNldHRpbmdzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5xdWVyeTxHZXRHbG9iYWxTZXR0aW5nc1F1ZXJ5PihHRVRfR0xPQkFMX1NFVFRJTkdTLCB7fSwgJ25ldHdvcmstb25seScpXHJcbiAgICAgICAgICAgIC5zaW5nbGUkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIHRoZSBjdXN0b20gZmllbGQgY29uZmlncyBmb3IgdGhlIGdpdmVuIGVudGl0eSB0eXBlLlxyXG4gICAgICovXHJcbiAgICBnZXRDdXN0b21GaWVsZHNGb3IodHlwZTogRXhjbHVkZTxrZXlvZiBDdXN0b21GaWVsZHMsICdfX3R5cGVuYW1lJz4pOiBDdXN0b21GaWVsZENvbmZpZ1tdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2ZXJDb25maWcuY3VzdG9tRmllbGRDb25maWdbdHlwZV0gfHwgW107XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0T3JkZXJQcm9jZXNzU3RhdGVzKCk6IE9yZGVyUHJvY2Vzc1N0YXRlW10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZlckNvbmZpZy5vcmRlclByb2Nlc3M7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UGVybWl0dGVkQXNzZXRUeXBlcygpOiBzdHJpbmdbXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmVyQ29uZmlnLnBlcm1pdHRlZEFzc2V0VHlwZXM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UGVybWlzc2lvbkRlZmluaXRpb25zKCk6IFBlcm1pc3Npb25EZWZpbml0aW9uW10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZlckNvbmZpZy5wZXJtaXNzaW9ucztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgc2VydmVyQ29uZmlnKCk6IFNlcnZlckNvbmZpZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlcnZlckNvbmZpZztcclxuICAgIH1cclxufVxyXG4iXX0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvZGF0YS9zZXJ2ZXItY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVlyQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBRWhFLE1BQU0sVUFBVSw2QkFBNkIsQ0FBQyxtQkFBd0M7SUFDbEYsT0FBTyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN0QyxDQUFDO0FBRUQ7OztHQUdHO0FBRUgsTUFBTSxPQUFPLG1CQUFtQjtJQUc1QixJQUFZLGVBQWU7UUFDdkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBa0IsZUFBZSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFOOUIsa0JBQWEsR0FBMkQsRUFBUyxDQUFDO1FBQzFGLG9CQUFlLEdBQXFDLElBQUksR0FBRyxFQUFFLENBQUM7SUFLckIsQ0FBQztJQUUxQzs7O09BR0c7SUFDSCxJQUFJO1FBQ0EsT0FBTyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZTtRQUNYLE9BQU8sYUFBYSxDQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBdUIsaUJBQWlCLENBQUMsQ0FBQyxPQUFPLENBQzlFLENBQUMsSUFBSSxDQUNGLE1BQU0sQ0FBQyxFQUFFO1lBQ0wsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQztZQUN4RCxLQUFLLE1BQU0sa0JBQWtCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsRUFBRTtnQkFDcEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQzVGO1FBQ0wsQ0FBQyxFQUNELEdBQUcsQ0FBQyxFQUFFO1lBQ0YsbUVBQW1FO1FBQ3ZFLENBQUMsQ0FDSixDQUFDO0lBQ04sQ0FBQztJQUVELHFCQUFxQjtRQUNqQixPQUFPLElBQUksQ0FBQyxlQUFlO2FBQ3RCLEtBQUssQ0FBeUIsbUJBQW1CLEVBQUUsRUFBRSxFQUFFLGFBQWEsQ0FBQzthQUNyRSxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVEOztPQUVHO0lBQ0gscUJBQXFCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQXlCLG1CQUFtQixFQUFFLEVBQUUsRUFBRSxjQUFjLENBQUM7YUFDN0YsT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNILGtCQUFrQixDQUFDLElBQXdEO1FBQ3ZFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFRCxxQkFBcUI7UUFDakIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQztJQUMxQyxDQUFDO0lBRUQsc0JBQXNCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQztJQUNqRCxDQUFDO0lBRUQsd0JBQXdCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM5QixDQUFDOzhHQXZFUSxtQkFBbUI7a0hBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGxhc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBDdXN0b21GaWVsZENvbmZpZyxcclxuICAgIEN1c3RvbUZpZWxkcyxcclxuICAgIEdldEdsb2JhbFNldHRpbmdzUXVlcnksXHJcbiAgICBHZXRTZXJ2ZXJDb25maWdRdWVyeSxcclxuICAgIE9yZGVyUHJvY2Vzc1N0YXRlLFxyXG4gICAgUGVybWlzc2lvbkRlZmluaXRpb24sXHJcbiAgICBTZXJ2ZXJDb25maWcsXHJcbn0gZnJvbSAnLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XHJcblxyXG5pbXBvcnQgeyBHRVRfR0xPQkFMX1NFVFRJTkdTLCBHRVRfU0VSVkVSX0NPTkZJRyB9IGZyb20gJy4vZGVmaW5pdGlvbnMvc2V0dGluZ3MtZGVmaW5pdGlvbnMnO1xyXG5pbXBvcnQgeyBCYXNlRGF0YVNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9iYXNlLWRhdGEuc2VydmljZSc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGl6ZVNlcnZlckNvbmZpZ1NlcnZpY2Uoc2VydmVyQ29uZmlnU2VydmljZTogU2VydmVyQ29uZmlnU2VydmljZSk6ICgpID0+IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gc2VydmVyQ29uZmlnU2VydmljZS5pbml0KCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBIHNlcnZpY2Ugd2hpY2ggZmV0Y2hlcyB0aGUgY29uZmlnIGZyb20gdGhlIHNlcnZlciB1cG9uIGluaXRpYWxpemF0aW9uLCBhbmQgdGhlbiBwcm92aWRlcyB0aGF0IGNvbmZpZ1xyXG4gKiB0byB0aGUgY29tcG9uZW50cyB3aGljaCByZXF1aXJlIGl0LlxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2VydmVyQ29uZmlnU2VydmljZSB7XHJcbiAgICBwcml2YXRlIF9zZXJ2ZXJDb25maWc6IEdldFNlcnZlckNvbmZpZ1F1ZXJ5WydnbG9iYWxTZXR0aW5ncyddWydzZXJ2ZXJDb25maWcnXSA9IHt9IGFzIGFueTtcclxuICAgIGN1c3RvbUZpZWxkc01hcDogTWFwPHN0cmluZywgQ3VzdG9tRmllbGRDb25maWdbXT4gPSBuZXcgTWFwKCk7XHJcbiAgICBwcml2YXRlIGdldCBiYXNlRGF0YVNlcnZpY2UoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5qZWN0b3IuZ2V0PEJhc2VEYXRhU2VydmljZT4oQmFzZURhdGFTZXJ2aWNlKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge31cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZldGNoZXMgdGhlIFNlcnZlckNvbmZpZy4gU2hvdWxkIGJlIHJ1biBhcyBwYXJ0IG9mIHRoZSBhcHAgYm9vdHN0cmFwIHByb2Nlc3MgYnkgYXR0YWNoaW5nXHJcbiAgICAgKiB0byB0aGUgQW5ndWxhciBBUFBfSU5JVElBTElaRVIgdG9rZW4uXHJcbiAgICAgKi9cclxuICAgIGluaXQoKTogKCkgPT4gUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gKCkgPT4gdGhpcy5nZXRTZXJ2ZXJDb25maWcoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZldGNoIHRoZSBTZXJ2ZXJDb25maWcuIFNob3VsZCBiZSBydW4gb24gYXBwIGluaXQgKGluIGNhc2UgdXNlciBpcyBhbHJlYWR5IGxvZ2dlZCBpbikgYW5kIG9uIHN1Y2Nlc3NmdWwgbG9naW4uXHJcbiAgICAgKi9cclxuICAgIGdldFNlcnZlckNvbmZpZygpIHtcclxuICAgICAgICByZXR1cm4gbGFzdFZhbHVlRnJvbShcclxuICAgICAgICAgICAgdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0U2VydmVyQ29uZmlnUXVlcnk+KEdFVF9TRVJWRVJfQ09ORklHKS5zaW5nbGUkLFxyXG4gICAgICAgICkudGhlbihcclxuICAgICAgICAgICAgcmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3NlcnZlckNvbmZpZyA9IHJlc3VsdC5nbG9iYWxTZXR0aW5ncy5zZXJ2ZXJDb25maWc7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVudGl0eUN1c3RvbUZpZWxkcyBvZiB0aGlzLl9zZXJ2ZXJDb25maWcuZW50aXR5Q3VzdG9tRmllbGRzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXN0b21GaWVsZHNNYXAuc2V0KGVudGl0eUN1c3RvbUZpZWxkcy5lbnRpdHlOYW1lLCBlbnRpdHlDdXN0b21GaWVsZHMuY3VzdG9tRmllbGRzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIC8vIExldCB0aGUgZXJyb3IgZmFsbCB0aHJvdWdoIHRvIGJlIGNhdWdodCBieSB0aGUgaHR0cCBpbnRlcmNlcHRvci5cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEF2YWlsYWJsZUxhbmd1YWdlcygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2VcclxuICAgICAgICAgICAgLnF1ZXJ5PEdldEdsb2JhbFNldHRpbmdzUXVlcnk+KEdFVF9HTE9CQUxfU0VUVElOR1MsIHt9LCAnY2FjaGUtZmlyc3QnKVxyXG4gICAgICAgICAgICAubWFwU2luZ2xlKHJlcyA9PiByZXMuZ2xvYmFsU2V0dGluZ3MuYXZhaWxhYmxlTGFuZ3VhZ2VzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFdoZW4gYW55IG9mIHRoZSBHbG9iYWxTZXR0aW5ncyBhcmUgbW9kaWZpZWQsIHRoaXMgbWV0aG9kIHNob3VsZCBiZSBjYWxsZWQgdG8gdXBkYXRlIHRoZSBBcG9sbG8gY2FjaGUuXHJcbiAgICAgKi9cclxuICAgIHJlZnJlc2hHbG9iYWxTZXR0aW5ncygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0R2xvYmFsU2V0dGluZ3NRdWVyeT4oR0VUX0dMT0JBTF9TRVRUSU5HUywge30sICduZXR3b3JrLW9ubHknKVxyXG4gICAgICAgICAgICAuc2luZ2xlJDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyB0aGUgY3VzdG9tIGZpZWxkIGNvbmZpZ3MgZm9yIHRoZSBnaXZlbiBlbnRpdHkgdHlwZS5cclxuICAgICAqL1xyXG4gICAgZ2V0Q3VzdG9tRmllbGRzRm9yKHR5cGU6IEV4Y2x1ZGU8a2V5b2YgQ3VzdG9tRmllbGRzLCAnX190eXBlbmFtZSc+IHwgc3RyaW5nKTogQ3VzdG9tRmllbGRDb25maWdbXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tRmllbGRzTWFwLmdldCh0eXBlKSB8fCBbXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRPcmRlclByb2Nlc3NTdGF0ZXMoKTogT3JkZXJQcm9jZXNzU3RhdGVbXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmVyQ29uZmlnLm9yZGVyUHJvY2VzcztcclxuICAgIH1cclxuXHJcbiAgICBnZXRQZXJtaXR0ZWRBc3NldFR5cGVzKCk6IHN0cmluZ1tdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2ZXJDb25maWcucGVybWl0dGVkQXNzZXRUeXBlcztcclxuICAgIH1cclxuXHJcbiAgICBnZXRQZXJtaXNzaW9uRGVmaW5pdGlvbnMoKTogUGVybWlzc2lvbkRlZmluaXRpb25bXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmVyQ29uZmlnLnBlcm1pc3Npb25zO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBzZXJ2ZXJDb25maWcoKTogR2V0U2VydmVyQ29uZmlnUXVlcnlbJ2dsb2JhbFNldHRpbmdzJ11bJ3NlcnZlckNvbmZpZyddIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2VydmVyQ29uZmlnO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -16,7 +16,7 @@ export function addCustomFields(documentNode, customFields) {
16
16
  // Country is an alias of Region
17
17
  entityType = 'Region';
18
18
  }
19
- const customFieldsForType = customFields[entityType];
19
+ const customFieldsForType = customFields.get(entityType);
20
20
  if (customFieldsForType && customFieldsForType.length) {
21
21
  fragmentDef.selectionSet.selections.push({
22
22
  name: {
@@ -81,4 +81,4 @@ function isFragmentDefinition(value) {
81
81
  function isFieldNode(value) {
82
82
  return value.kind === Kind.FIELD;
83
83
  }
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWN1c3RvbS1maWVsZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2RhdGEvdXRpbHMvYWRkLWN1c3RvbS1maWVsZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUtILElBQUksR0FFUCxNQUFNLFNBQVMsQ0FBQztBQUlqQjs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLFlBQTBCLEVBQUUsWUFBMEI7SUFDbEYsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUUzRSxLQUFLLE1BQU0sV0FBVyxJQUFJLFlBQVksRUFBRTtRQUNwQyxJQUFJLFVBQVUsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUcvQyxDQUFDO1FBRUYsSUFBSSxVQUFVLEtBQU0sY0FBc0IsRUFBRTtZQUN4QyxxRkFBcUY7WUFDckYsNkJBQTZCO1lBQzdCLFVBQVUsR0FBRyxTQUFTLENBQUM7U0FDMUI7UUFFRCxJQUFJLFVBQVUsS0FBTSxTQUFpQixFQUFFO1lBQ25DLGdDQUFnQztZQUNoQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1NBQ3pCO1FBRUQsTUFBTSxtQkFBbUIsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckQsSUFBSSxtQkFBbUIsSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLEVBQUU7WUFDbEQsV0FBVyxDQUFDLFlBQVksQ0FBQyxVQUE4QixDQUFDLElBQUksQ0FBQztnQkFDMUQsSUFBSSxFQUFFO29CQUNGLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtvQkFDZixLQUFLLEVBQUUsY0FBYztpQkFDeEI7Z0JBQ0QsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNoQixZQUFZLEVBQUU7b0JBQ1YsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhO29CQUN4QixVQUFVLEVBQUUsbUJBQW1CLENBQUMsR0FBRyxDQUMvQixXQUFXLENBQUMsRUFBRSxDQUNWLENBQUM7d0JBQ0csSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLO3dCQUNoQixJQUFJLEVBQUU7NEJBQ0YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJOzRCQUNmLEtBQUssRUFBRSxXQUFXLENBQUMsSUFBSTt5QkFDMUI7d0JBQ0QsdURBQXVEO3dCQUN2RCw0Q0FBNEM7d0JBQzVDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLFVBQVU7NEJBQy9CLENBQUMsQ0FBQztnQ0FDSSxZQUFZLEVBQUU7b0NBQ1YsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhO29DQUN4QixVQUFVLEVBQ04sV0FDSCxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dDQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUs7d0NBQ2hCLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7cUNBQ3RDLENBQUMsQ0FBQztpQ0FDTjs2QkFDSjs0QkFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO3FCQUNFLENBQUEsQ0FDdEI7aUJBQ0o7YUFDSixDQUFDLENBQUM7WUFFSCxNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQzlDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxjQUFjLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxZQUFZLENBQ3hFLENBQUM7WUFFRixNQUFNLGlCQUFpQixHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsVUFBVTtpQkFDeEQsTUFBTSxDQUFDLFdBQVcsQ0FBQztpQkFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssY0FBYyxDQUFDLENBQUM7WUFFeEQsSUFBSSxlQUFlLENBQUMsTUFBTSxJQUFJLGlCQUFpQixJQUFJLGlCQUFpQixDQUFDLFlBQVksRUFBRTtnQkFDOUUsaUJBQWlCLENBQUMsWUFBWSxDQUFDLFVBQThCLENBQUMsSUFBSSxDQUFDO29CQUNoRSxJQUFJLEVBQUU7d0JBQ0YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO3dCQUNmLEtBQUssRUFBRSxjQUFjO3FCQUN4QjtvQkFDRCxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUs7b0JBQ2hCLFlBQVksRUFBRTt3QkFDVixJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWE7d0JBQ3hCLFVBQVUsRUFBRSxlQUFlLENBQUMsR0FBRyxDQUMzQixXQUFXLENBQUMsRUFBRSxDQUNWLENBQUM7NEJBQ0csSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLOzRCQUNoQixJQUFJLEVBQUU7Z0NBQ0YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dDQUNmLEtBQUssRUFBRSxXQUFXLENBQUMsSUFBSTs2QkFDMUI7eUJBQ1UsQ0FBQSxDQUN0QjtxQkFDSjtpQkFDSixDQUFDLENBQUM7YUFDTjtTQUNKO0tBQ0o7SUFFRCxPQUFPLFlBQVksQ0FBQztBQUN4QixDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxLQUFxQjtJQUMvQyxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLG1CQUFtQixDQUFDO0FBQ25ELENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxLQUFvQjtJQUNyQyxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIERlZmluaXRpb25Ob2RlLFxyXG4gICAgRG9jdW1lbnROb2RlLFxyXG4gICAgRmllbGROb2RlLFxyXG4gICAgRnJhZ21lbnREZWZpbml0aW9uTm9kZSxcclxuICAgIEtpbmQsXHJcbiAgICBTZWxlY3Rpb25Ob2RlLFxyXG59IGZyb20gJ2dyYXBocWwnO1xyXG5cclxuaW1wb3J0IHsgQ3VzdG9tRmllbGRzLCBSZWxhdGlvbkN1c3RvbUZpZWxkRnJhZ21lbnQgfSBmcm9tICcuLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuXHJcbi8qKlxyXG4gKiBHaXZlbiBhIEdyYXBoUUwgQVNUIChEb2N1bWVudE5vZGUpLCB0aGlzIGZ1bmN0aW9uIGxvb2tzIGZvciBmcmFnbWVudCBkZWZpbml0aW9ucyBhbmQgYWRkcyBhbmQgY29uZmlndXJlZFxyXG4gKiBjdXN0b20gZmllbGRzIHRvIHRob3NlIGZyYWdtZW50cy5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRDdXN0b21GaWVsZHMoZG9jdW1lbnROb2RlOiBEb2N1bWVudE5vZGUsIGN1c3RvbUZpZWxkczogQ3VzdG9tRmllbGRzKTogRG9jdW1lbnROb2RlIHtcclxuICAgIGNvbnN0IGZyYWdtZW50RGVmcyA9IGRvY3VtZW50Tm9kZS5kZWZpbml0aW9ucy5maWx0ZXIoaXNGcmFnbWVudERlZmluaXRpb24pO1xyXG5cclxuICAgIGZvciAoY29uc3QgZnJhZ21lbnREZWYgb2YgZnJhZ21lbnREZWZzKSB7XHJcbiAgICAgICAgbGV0IGVudGl0eVR5cGUgPSBmcmFnbWVudERlZi50eXBlQ29uZGl0aW9uLm5hbWUudmFsdWUgYXMga2V5b2YgUGljazxcclxuICAgICAgICAgICAgQ3VzdG9tRmllbGRzLFxyXG4gICAgICAgICAgICBFeGNsdWRlPGtleW9mIEN1c3RvbUZpZWxkcywgJ19fdHlwZW5hbWUnPlxyXG4gICAgICAgID47XHJcblxyXG4gICAgICAgIGlmIChlbnRpdHlUeXBlID09PSAoJ09yZGVyQWRkcmVzcycgYXMgYW55KSkge1xyXG4gICAgICAgICAgICAvLyBPcmRlckFkZHJlc3MgaXMgYSBzcGVjaWFsIGNhc2Ugb2YgdGhlIEFkZHJlc3MgZW50aXR5LCBhbmQgc2hhcmVzIGl0cyBjdXN0b20gZmllbGRzXHJcbiAgICAgICAgICAgIC8vIHNvIHdlIHRyZWF0IGl0IGFzIGFuIGFsaWFzXHJcbiAgICAgICAgICAgIGVudGl0eVR5cGUgPSAnQWRkcmVzcyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZW50aXR5VHlwZSA9PT0gKCdDb3VudHJ5JyBhcyBhbnkpKSB7XHJcbiAgICAgICAgICAgIC8vIENvdW50cnkgaXMgYW4gYWxpYXMgb2YgUmVnaW9uXHJcbiAgICAgICAgICAgIGVudGl0eVR5cGUgPSAnUmVnaW9uJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGN1c3RvbUZpZWxkc0ZvclR5cGUgPSBjdXN0b21GaWVsZHNbZW50aXR5VHlwZV07XHJcbiAgICAgICAgaWYgKGN1c3RvbUZpZWxkc0ZvclR5cGUgJiYgY3VzdG9tRmllbGRzRm9yVHlwZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgKGZyYWdtZW50RGVmLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zIGFzIFNlbGVjdGlvbk5vZGVbXSkucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiB7XHJcbiAgICAgICAgICAgICAgICAgICAga2luZDogS2luZC5OQU1FLFxyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiAnY3VzdG9tRmllbGRzJyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBraW5kOiBLaW5kLkZJRUxELFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uU2V0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAga2luZDogS2luZC5TRUxFQ1RJT05fU0VULFxyXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbnM6IGN1c3RvbUZpZWxkc0ZvclR5cGUubWFwKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21GaWVsZCA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kOiBLaW5kLkZJRUxELFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZDogS2luZC5OQU1FLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY3VzdG9tRmllbGQubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvciBcInJlbGF0aW9uXCIgY3VzdG9tIGZpZWxkcywgd2UgbmVlZCB0byBhbHNvIHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsbCB0aGUgc2NhbGFyIGZpZWxkcyBvZiB0aGUgcmVsYXRlZCB0eXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKGN1c3RvbUZpZWxkLnR5cGUgPT09ICdyZWxhdGlvbidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblNldDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZDogS2luZC5TRUxFQ1RJT05fU0VULFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uczogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbUZpZWxkIGFzIFJlbGF0aW9uQ3VzdG9tRmllbGRGcmFnbWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKS5zY2FsYXJGaWVsZHMubWFwKGYgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kOiBLaW5kLkZJRUxELFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHsga2luZDogS2luZC5OQU1FLCB2YWx1ZTogZiB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGFzIEZpZWxkTm9kZSksXHJcbiAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgbG9jYWxpemVkRmllbGRzID0gY3VzdG9tRmllbGRzRm9yVHlwZS5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICBmaWVsZCA9PiBmaWVsZC50eXBlID09PSAnbG9jYWxlU3RyaW5nJyB8fCBmaWVsZC50eXBlID09PSAnbG9jYWxlVGV4dCcsXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCB0cmFuc2xhdGlvbnNGaWVsZCA9IGZyYWdtZW50RGVmLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zXHJcbiAgICAgICAgICAgICAgICAuZmlsdGVyKGlzRmllbGROb2RlKVxyXG4gICAgICAgICAgICAgICAgLmZpbmQoZmllbGQgPT4gZmllbGQubmFtZS52YWx1ZSA9PT0gJ3RyYW5zbGF0aW9ucycpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGxvY2FsaXplZEZpZWxkcy5sZW5ndGggJiYgdHJhbnNsYXRpb25zRmllbGQgJiYgdHJhbnNsYXRpb25zRmllbGQuc2VsZWN0aW9uU2V0KSB7XHJcbiAgICAgICAgICAgICAgICAodHJhbnNsYXRpb25zRmllbGQuc2VsZWN0aW9uU2V0LnNlbGVjdGlvbnMgYXMgU2VsZWN0aW9uTm9kZVtdKS5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IEtpbmQuTkFNRSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6ICdjdXN0b21GaWVsZHMnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAga2luZDogS2luZC5GSUVMRCxcclxuICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25TZXQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAga2luZDogS2luZC5TRUxFQ1RJT05fU0VULFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25zOiBsb2NhbGl6ZWRGaWVsZHMubWFwKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tRmllbGQgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kOiBLaW5kLkZJRUxELFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kOiBLaW5kLk5BTUUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY3VzdG9tRmllbGQubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGFzIEZpZWxkTm9kZSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkb2N1bWVudE5vZGU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzRnJhZ21lbnREZWZpbml0aW9uKHZhbHVlOiBEZWZpbml0aW9uTm9kZSk6IHZhbHVlIGlzIEZyYWdtZW50RGVmaW5pdGlvbk5vZGUge1xyXG4gICAgcmV0dXJuIHZhbHVlLmtpbmQgPT09IEtpbmQuRlJBR01FTlRfREVGSU5JVElPTjtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNGaWVsZE5vZGUodmFsdWU6IFNlbGVjdGlvbk5vZGUpOiB2YWx1ZSBpcyBGaWVsZE5vZGUge1xyXG4gICAgcmV0dXJuIHZhbHVlLmtpbmQgPT09IEtpbmQuRklFTEQ7XHJcbn1cclxuIl19
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWN1c3RvbS1maWVsZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2RhdGEvdXRpbHMvYWRkLWN1c3RvbS1maWVsZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUtILElBQUksR0FFUCxNQUFNLFNBQVMsQ0FBQztBQVNqQjs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUMzQixZQUEwQixFQUMxQixZQUE4QztJQUU5QyxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRTNFLEtBQUssTUFBTSxXQUFXLElBQUksWUFBWSxFQUFFO1FBQ3BDLElBQUksVUFBVSxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBRy9DLENBQUM7UUFFRixJQUFJLFVBQVUsS0FBTSxjQUFzQixFQUFFO1lBQ3hDLHFGQUFxRjtZQUNyRiw2QkFBNkI7WUFDN0IsVUFBVSxHQUFHLFNBQVMsQ0FBQztTQUMxQjtRQUVELElBQUksVUFBVSxLQUFNLFNBQWlCLEVBQUU7WUFDbkMsZ0NBQWdDO1lBQ2hDLFVBQVUsR0FBRyxRQUFRLENBQUM7U0FDekI7UUFFRCxNQUFNLG1CQUFtQixHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekQsSUFBSSxtQkFBbUIsSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLEVBQUU7WUFDbEQsV0FBVyxDQUFDLFlBQVksQ0FBQyxVQUE4QixDQUFDLElBQUksQ0FBQztnQkFDMUQsSUFBSSxFQUFFO29CQUNGLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtvQkFDZixLQUFLLEVBQUUsY0FBYztpQkFDeEI7Z0JBQ0QsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNoQixZQUFZLEVBQUU7b0JBQ1YsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhO29CQUN4QixVQUFVLEVBQUUsbUJBQW1CLENBQUMsR0FBRyxDQUMvQixXQUFXLENBQUMsRUFBRSxDQUNWLENBQUM7d0JBQ0csSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLO3dCQUNoQixJQUFJLEVBQUU7NEJBQ0YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJOzRCQUNmLEtBQUssRUFBRSxXQUFXLENBQUMsSUFBSTt5QkFDMUI7d0JBQ0QsdURBQXVEO3dCQUN2RCw0Q0FBNEM7d0JBQzVDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLFVBQVU7NEJBQy9CLENBQUMsQ0FBQztnQ0FDSSxZQUFZLEVBQUU7b0NBQ1YsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhO29DQUN4QixVQUFVLEVBQ04sV0FDSCxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dDQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUs7d0NBQ2hCLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7cUNBQ3RDLENBQUMsQ0FBQztpQ0FDTjs2QkFDSjs0QkFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO3FCQUNFLENBQUEsQ0FDdEI7aUJBQ0o7YUFDSixDQUFDLENBQUM7WUFFSCxNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQzlDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxjQUFjLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxZQUFZLENBQ3hFLENBQUM7WUFFRixNQUFNLGlCQUFpQixHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsVUFBVTtpQkFDeEQsTUFBTSxDQUFDLFdBQVcsQ0FBQztpQkFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssY0FBYyxDQUFDLENBQUM7WUFFeEQsSUFBSSxlQUFlLENBQUMsTUFBTSxJQUFJLGlCQUFpQixJQUFJLGlCQUFpQixDQUFDLFlBQVksRUFBRTtnQkFDOUUsaUJBQWlCLENBQUMsWUFBWSxDQUFDLFVBQThCLENBQUMsSUFBSSxDQUFDO29CQUNoRSxJQUFJLEVBQUU7d0JBQ0YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO3dCQUNmLEtBQUssRUFBRSxjQUFjO3FCQUN4QjtvQkFDRCxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUs7b0JBQ2hCLFlBQVksRUFBRTt3QkFDVixJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWE7d0JBQ3hCLFVBQVUsRUFBRSxlQUFlLENBQUMsR0FBRyxDQUMzQixXQUFXLENBQUMsRUFBRSxDQUNWLENBQUM7NEJBQ0csSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLOzRCQUNoQixJQUFJLEVBQUU7Z0NBQ0YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dDQUNmLEtBQUssRUFBRSxXQUFXLENBQUMsSUFBSTs2QkFDMUI7eUJBQ1UsQ0FBQSxDQUN0QjtxQkFDSjtpQkFDSixDQUFDLENBQUM7YUFDTjtTQUNKO0tBQ0o7SUFFRCxPQUFPLFlBQVksQ0FBQztBQUN4QixDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxLQUFxQjtJQUMvQyxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLG1CQUFtQixDQUFDO0FBQ25ELENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxLQUFvQjtJQUNyQyxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIERlZmluaXRpb25Ob2RlLFxyXG4gICAgRG9jdW1lbnROb2RlLFxyXG4gICAgRmllbGROb2RlLFxyXG4gICAgRnJhZ21lbnREZWZpbml0aW9uTm9kZSxcclxuICAgIEtpbmQsXHJcbiAgICBTZWxlY3Rpb25Ob2RlLFxyXG59IGZyb20gJ2dyYXBocWwnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEN1c3RvbUZpZWxkQ29uZmlnLFxyXG4gICAgQ3VzdG9tRmllbGRzLFxyXG4gICAgRW50aXR5Q3VzdG9tRmllbGRzLFxyXG4gICAgUmVsYXRpb25DdXN0b21GaWVsZEZyYWdtZW50LFxyXG59IGZyb20gJy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5cclxuLyoqXHJcbiAqIEdpdmVuIGEgR3JhcGhRTCBBU1QgKERvY3VtZW50Tm9kZSksIHRoaXMgZnVuY3Rpb24gbG9va3MgZm9yIGZyYWdtZW50IGRlZmluaXRpb25zIGFuZCBhZGRzIGFuZCBjb25maWd1cmVkXHJcbiAqIGN1c3RvbSBmaWVsZHMgdG8gdGhvc2UgZnJhZ21lbnRzLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZEN1c3RvbUZpZWxkcyhcclxuICAgIGRvY3VtZW50Tm9kZTogRG9jdW1lbnROb2RlLFxyXG4gICAgY3VzdG9tRmllbGRzOiBNYXA8c3RyaW5nLCBDdXN0b21GaWVsZENvbmZpZ1tdPixcclxuKTogRG9jdW1lbnROb2RlIHtcclxuICAgIGNvbnN0IGZyYWdtZW50RGVmcyA9IGRvY3VtZW50Tm9kZS5kZWZpbml0aW9ucy5maWx0ZXIoaXNGcmFnbWVudERlZmluaXRpb24pO1xyXG5cclxuICAgIGZvciAoY29uc3QgZnJhZ21lbnREZWYgb2YgZnJhZ21lbnREZWZzKSB7XHJcbiAgICAgICAgbGV0IGVudGl0eVR5cGUgPSBmcmFnbWVudERlZi50eXBlQ29uZGl0aW9uLm5hbWUudmFsdWUgYXMga2V5b2YgUGljazxcclxuICAgICAgICAgICAgQ3VzdG9tRmllbGRzLFxyXG4gICAgICAgICAgICBFeGNsdWRlPGtleW9mIEN1c3RvbUZpZWxkcywgJ19fdHlwZW5hbWUnPlxyXG4gICAgICAgID47XHJcblxyXG4gICAgICAgIGlmIChlbnRpdHlUeXBlID09PSAoJ09yZGVyQWRkcmVzcycgYXMgYW55KSkge1xyXG4gICAgICAgICAgICAvLyBPcmRlckFkZHJlc3MgaXMgYSBzcGVjaWFsIGNhc2Ugb2YgdGhlIEFkZHJlc3MgZW50aXR5LCBhbmQgc2hhcmVzIGl0cyBjdXN0b20gZmllbGRzXHJcbiAgICAgICAgICAgIC8vIHNvIHdlIHRyZWF0IGl0IGFzIGFuIGFsaWFzXHJcbiAgICAgICAgICAgIGVudGl0eVR5cGUgPSAnQWRkcmVzcyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZW50aXR5VHlwZSA9PT0gKCdDb3VudHJ5JyBhcyBhbnkpKSB7XHJcbiAgICAgICAgICAgIC8vIENvdW50cnkgaXMgYW4gYWxpYXMgb2YgUmVnaW9uXHJcbiAgICAgICAgICAgIGVudGl0eVR5cGUgPSAnUmVnaW9uJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGN1c3RvbUZpZWxkc0ZvclR5cGUgPSBjdXN0b21GaWVsZHMuZ2V0KGVudGl0eVR5cGUpO1xyXG4gICAgICAgIGlmIChjdXN0b21GaWVsZHNGb3JUeXBlICYmIGN1c3RvbUZpZWxkc0ZvclR5cGUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIChmcmFnbWVudERlZi5zZWxlY3Rpb25TZXQuc2VsZWN0aW9ucyBhcyBTZWxlY3Rpb25Ob2RlW10pLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgbmFtZToge1xyXG4gICAgICAgICAgICAgICAgICAgIGtpbmQ6IEtpbmQuTkFNRSxcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJ2N1c3RvbUZpZWxkcycsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAga2luZDogS2luZC5GSUVMRCxcclxuICAgICAgICAgICAgICAgIHNlbGVjdGlvblNldDoge1xyXG4gICAgICAgICAgICAgICAgICAgIGtpbmQ6IEtpbmQuU0VMRUNUSU9OX1NFVCxcclxuICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25zOiBjdXN0b21GaWVsZHNGb3JUeXBlLm1hcChcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tRmllbGQgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZDogS2luZC5GSUVMRCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IEtpbmQuTkFNRSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGN1c3RvbUZpZWxkLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3IgXCJyZWxhdGlvblwiIGN1c3RvbSBmaWVsZHMsIHdlIG5lZWQgdG8gYWxzbyBzZWxlY3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGwgdGhlIHNjYWxhciBmaWVsZHMgb2YgdGhlIHJlbGF0ZWQgdHlwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihjdXN0b21GaWVsZC50eXBlID09PSAncmVsYXRpb24nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25TZXQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IEtpbmQuU0VMRUNUSU9OX1NFVCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbnM6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21GaWVsZCBhcyBSZWxhdGlvbkN1c3RvbUZpZWxkRnJhZ21lbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkuc2NhbGFyRmllbGRzLm1hcChmID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZDogS2luZC5GSUVMRCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB7IGtpbmQ6IEtpbmQuTkFNRSwgdmFsdWU6IGYgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBhcyBGaWVsZE5vZGUpLFxyXG4gICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGxvY2FsaXplZEZpZWxkcyA9IGN1c3RvbUZpZWxkc0ZvclR5cGUuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgZmllbGQgPT4gZmllbGQudHlwZSA9PT0gJ2xvY2FsZVN0cmluZycgfHwgZmllbGQudHlwZSA9PT0gJ2xvY2FsZVRleHQnLFxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRpb25zRmllbGQgPSBmcmFnbWVudERlZi5zZWxlY3Rpb25TZXQuc2VsZWN0aW9uc1xyXG4gICAgICAgICAgICAgICAgLmZpbHRlcihpc0ZpZWxkTm9kZSlcclxuICAgICAgICAgICAgICAgIC5maW5kKGZpZWxkID0+IGZpZWxkLm5hbWUudmFsdWUgPT09ICd0cmFuc2xhdGlvbnMnKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChsb2NhbGl6ZWRGaWVsZHMubGVuZ3RoICYmIHRyYW5zbGF0aW9uc0ZpZWxkICYmIHRyYW5zbGF0aW9uc0ZpZWxkLnNlbGVjdGlvblNldCkge1xyXG4gICAgICAgICAgICAgICAgKHRyYW5zbGF0aW9uc0ZpZWxkLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zIGFzIFNlbGVjdGlvbk5vZGVbXSkucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBraW5kOiBLaW5kLk5BTUUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAnY3VzdG9tRmllbGRzJyxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGtpbmQ6IEtpbmQuRklFTEQsXHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uU2V0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IEtpbmQuU0VMRUNUSU9OX1NFVCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uczogbG9jYWxpemVkRmllbGRzLm1hcChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbUZpZWxkID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZDogS2luZC5GSUVMRCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZDogS2luZC5OQU1FLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGN1c3RvbUZpZWxkLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBhcyBGaWVsZE5vZGUpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZG9jdW1lbnROb2RlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0ZyYWdtZW50RGVmaW5pdGlvbih2YWx1ZTogRGVmaW5pdGlvbk5vZGUpOiB2YWx1ZSBpcyBGcmFnbWVudERlZmluaXRpb25Ob2RlIHtcclxuICAgIHJldHVybiB2YWx1ZS5raW5kID09PSBLaW5kLkZSQUdNRU5UX0RFRklOSVRJT047XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzRmllbGROb2RlKHZhbHVlOiBTZWxlY3Rpb25Ob2RlKTogdmFsdWUgaXMgRmllbGROb2RlIHtcclxuICAgIHJldHVybiB2YWx1ZS5raW5kID09PSBLaW5kLkZJRUxEO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../data/server-config";
4
+ export class CurrencyService {
5
+ constructor(serverConfigService) {
6
+ this.precision = serverConfigService.serverConfig.moneyStrategyPrecision;
7
+ this.precisionFactor = Math.pow(10, this.precision);
8
+ }
9
+ toMajorUnits(value) {
10
+ return value / this.precisionFactor;
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CurrencyService, deps: [{ token: i1.ServerConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
13
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CurrencyService, providedIn: 'root' }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CurrencyService, decorators: [{
16
+ type: Injectable,
17
+ args: [{
18
+ providedIn: 'root',
19
+ }]
20
+ }], ctorParameters: function () { return [{ type: i1.ServerConfigService }]; } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3kuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvcHJvdmlkZXJzL2N1cnJlbmN5L2N1cnJlbmN5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTTNDLE1BQU0sT0FBTyxlQUFlO0lBR3hCLFlBQVksbUJBQXdDO1FBQ2hELElBQUksQ0FBQyxTQUFTLEdBQUcsbUJBQW1CLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDO1FBQ3pFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYTtRQUN0QixPQUFPLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ3hDLENBQUM7OEdBVlEsZUFBZTtrSEFBZixlQUFlLGNBRlosTUFBTTs7MkZBRVQsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNlcnZlckNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhL3NlcnZlci1jb25maWcnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VycmVuY3lTZXJ2aWNlIHtcclxuICAgIHJlYWRvbmx5IHByZWNpc2lvbjogbnVtYmVyO1xyXG4gICAgcmVhZG9ubHkgcHJlY2lzaW9uRmFjdG9yOiBudW1iZXI7XHJcbiAgICBjb25zdHJ1Y3RvcihzZXJ2ZXJDb25maWdTZXJ2aWNlOiBTZXJ2ZXJDb25maWdTZXJ2aWNlKSB7XHJcbiAgICAgICAgdGhpcy5wcmVjaXNpb24gPSBzZXJ2ZXJDb25maWdTZXJ2aWNlLnNlcnZlckNvbmZpZy5tb25leVN0cmF0ZWd5UHJlY2lzaW9uO1xyXG4gICAgICAgIHRoaXMucHJlY2lzaW9uRmFjdG9yID0gTWF0aC5wb3coMTAsIHRoaXMucHJlY2lzaW9uKTtcclxuICAgIH1cclxuXHJcbiAgICB0b01ham9yVW5pdHModmFsdWU6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlIC8gdGhpcy5wcmVjaXNpb25GYWN0b3I7XHJcbiAgICB9XHJcbn1cclxuIl19