@veloceapps/sdk 11.0.0-9 → 11.0.0-91

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 (183) hide show
  1. package/cms/cms.actions.d.ts +94 -29
  2. package/cms/components/element-renderer/element-renderer.component.d.ts +3 -10
  3. package/cms/components/preview/preview.component.d.ts +5 -6
  4. package/cms/components/preview/preview.types.d.ts +0 -4
  5. package/cms/services/element-context.service.d.ts +0 -1
  6. package/cms/types/common.types.d.ts +2 -0
  7. package/cms/types/index.d.ts +0 -1
  8. package/cms/utils/path.utils.d.ts +1 -2
  9. package/cms/vendor-map.d.ts +18 -40
  10. package/core/index.d.ts +1 -1
  11. package/core/modules/configuration/index.d.ts +4 -4
  12. package/core/modules/configuration/services/configuration-runtime.service.d.ts +8 -19
  13. package/core/modules/configuration/services/configuration-state.service.d.ts +8 -8
  14. package/core/modules/configuration/services/configuration.service.d.ts +22 -52
  15. package/core/modules/configuration/services/guided-selling.service.d.ts +13 -0
  16. package/core/modules/configuration/services/test-mode-configuration.service.d.ts +23 -0
  17. package/core/modules/configuration/types/configuration-runtime.types.d.ts +0 -5
  18. package/core/modules/configuration/types/configuration.types.d.ts +4 -2
  19. package/core/modules/configuration/types/index.d.ts +2 -0
  20. package/core/modules/flow-configuration/index.d.ts +0 -3
  21. package/core/modules/flow-configuration/services/flow-configuration.service.d.ts +11 -38
  22. package/core/operators/filter-successful-execute.operator.d.ts +3 -0
  23. package/core/operators/index.d.ts +1 -0
  24. package/core/services/catalog-products.service.d.ts +11 -0
  25. package/core/services/flow-info.service.d.ts +27 -12
  26. package/core/services/flow-state-configuration.service.d.ts +9 -8
  27. package/core/services/flow-state.service.d.ts +12 -24
  28. package/core/services/index.d.ts +3 -3
  29. package/core/services/integration.state.d.ts +1 -1
  30. package/core/services/product-images.service.d.ts +3 -3
  31. package/core/services/runtime-settings.service.d.ts +1 -1
  32. package/core/services/sales-transaction.service.d.ts +27 -0
  33. package/core/types/flow-customization.types.d.ts +2 -2
  34. package/core/types/flow-state.types.d.ts +2 -2
  35. package/core/types/index.d.ts +0 -1
  36. package/core/utils/index.d.ts +2 -2
  37. package/core/utils/transaction-item.utils.d.ts +7 -0
  38. package/core/utils/transaction-item.worker.d.ts +8 -0
  39. package/esm2020/cms/cms.actions.mjs +93 -71
  40. package/esm2020/cms/cms.default.mjs +2 -3
  41. package/esm2020/cms/components/element-renderer/element-renderer.component.mjs +7 -64
  42. package/esm2020/cms/components/element-tools-panel/element-tools-panel.component.mjs +3 -3
  43. package/esm2020/cms/components/preview/preview.component.mjs +19 -28
  44. package/esm2020/cms/components/preview/preview.types.mjs +1 -1
  45. package/esm2020/cms/services/element-context.service.mjs +1 -1
  46. package/esm2020/cms/types/common.types.mjs +1 -1
  47. package/esm2020/cms/types/index.mjs +1 -2
  48. package/esm2020/cms/utils/element.utils.mjs +3 -3
  49. package/esm2020/cms/utils/elements-resolver.mjs +16 -5
  50. package/esm2020/cms/utils/path.utils.mjs +1 -10
  51. package/esm2020/cms/vendor-map.mjs +18 -18
  52. package/esm2020/core/core.module.mjs +7 -7
  53. package/esm2020/core/index.mjs +2 -2
  54. package/esm2020/core/modules/configuration/configuration.module.mjs +17 -4
  55. package/esm2020/core/modules/configuration/index.mjs +5 -5
  56. package/esm2020/core/modules/configuration/services/configuration-runtime.service.mjs +16 -101
  57. package/esm2020/core/modules/configuration/services/configuration-state.service.mjs +69 -77
  58. package/esm2020/core/modules/configuration/services/configuration.service.mjs +115 -247
  59. package/esm2020/core/modules/configuration/services/guided-selling.service.mjs +47 -0
  60. package/esm2020/core/modules/configuration/services/test-mode-configuration.service.mjs +74 -0
  61. package/esm2020/core/modules/configuration/types/configuration-runtime.types.mjs +1 -1
  62. package/esm2020/core/modules/configuration/types/configuration.types.mjs +1 -1
  63. package/esm2020/core/modules/configuration/types/index.mjs +3 -0
  64. package/esm2020/core/modules/flow-configuration/flow-configuration.module.mjs +3 -4
  65. package/esm2020/core/modules/flow-configuration/index.mjs +1 -4
  66. package/esm2020/core/modules/flow-configuration/services/flow-configuration.service.mjs +44 -128
  67. package/esm2020/core/operators/filter-successful-execute.operator.mjs +5 -0
  68. package/esm2020/core/operators/index.mjs +2 -0
  69. package/esm2020/core/services/catalog-products.service.mjs +25 -0
  70. package/esm2020/core/services/flow-info.service.mjs +82 -31
  71. package/esm2020/core/services/flow-state-configuration.service.mjs +52 -25
  72. package/esm2020/core/services/flow-state.service.mjs +58 -180
  73. package/esm2020/core/services/index.mjs +4 -4
  74. package/esm2020/core/services/integration.state.mjs +2 -2
  75. package/esm2020/core/services/product-images.service.mjs +8 -8
  76. package/esm2020/core/services/runtime-settings.service.mjs +3 -3
  77. package/esm2020/core/services/sales-transaction.service.mjs +67 -0
  78. package/esm2020/core/types/flow-customization.types.mjs +1 -1
  79. package/esm2020/core/types/flow-state.types.mjs +1 -1
  80. package/esm2020/core/types/index.mjs +1 -2
  81. package/esm2020/core/utils/index.mjs +3 -3
  82. package/esm2020/core/utils/transaction-item.utils.mjs +60 -0
  83. package/esm2020/core/utils/transaction-item.worker.mjs +16 -0
  84. package/esm2020/src/components/flow-header/flow-header.component.mjs +8 -12
  85. package/esm2020/src/components/guided-selling/guided-selling.component.mjs +8 -12
  86. package/esm2020/src/flow-routing.module.mjs +12 -41
  87. package/esm2020/src/flow.component.mjs +5 -5
  88. package/esm2020/src/guards/flow.guard.mjs +13 -14
  89. package/esm2020/src/guards/product-unload.guard.mjs +7 -9
  90. package/esm2020/src/index.mjs +1 -3
  91. package/esm2020/src/pages/assets/assets.component.mjs +8 -9
  92. package/esm2020/src/pages/catalog/catalog.component.mjs +8 -9
  93. package/esm2020/src/pages/debug/debug.component.mjs +14 -23
  94. package/esm2020/src/pages/product/product.component.mjs +12 -89
  95. package/esm2020/src/pages/product/product.module.mjs +5 -5
  96. package/esm2020/src/pages/record-not-found/record-not-found.component.mjs +5 -6
  97. package/esm2020/src/pages/shopping-cart/shopping-cart.component.mjs +8 -9
  98. package/esm2020/src/resolvers/flow.resolver.mjs +10 -18
  99. package/esm2020/src/resolvers/pcm-model.resolver.mjs +12 -0
  100. package/esm2020/src/resolvers/sales-transaction.resolver.mjs +64 -0
  101. package/esm2020/src/resolvers/ui-definition.resolver.mjs +42 -0
  102. package/esm2020/src/services/flow-dialog.service.mjs +10 -31
  103. package/esm2020/src/services/flow-router.service.mjs +16 -33
  104. package/esm2020/src/services/flow.service.mjs +15 -54
  105. package/esm2020/src/types/index.mjs +2 -3
  106. package/esm2020/src/types/route.types.mjs +1 -1
  107. package/fesm2015/veloceapps-sdk-cms.mjs +163 -309
  108. package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
  109. package/fesm2015/veloceapps-sdk-core.mjs +877 -1673
  110. package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
  111. package/fesm2015/veloceapps-sdk.mjs +192 -824
  112. package/fesm2015/veloceapps-sdk.mjs.map +1 -1
  113. package/fesm2020/veloceapps-sdk-cms.mjs +159 -300
  114. package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
  115. package/fesm2020/veloceapps-sdk-core.mjs +954 -1758
  116. package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
  117. package/fesm2020/veloceapps-sdk.mjs +192 -818
  118. package/fesm2020/veloceapps-sdk.mjs.map +1 -1
  119. package/package.json +1 -1
  120. package/src/components/flow-header/flow-header.component.d.ts +3 -3
  121. package/src/components/guided-selling/guided-selling.component.d.ts +3 -3
  122. package/src/flow-routing.module.d.ts +1 -2
  123. package/src/flow.component.d.ts +2 -2
  124. package/src/guards/product-unload.guard.d.ts +5 -6
  125. package/src/index.d.ts +0 -2
  126. package/src/pages/assets/assets.component.d.ts +3 -3
  127. package/src/pages/catalog/catalog.component.d.ts +3 -3
  128. package/src/pages/debug/debug.component.d.ts +2 -5
  129. package/src/pages/product/product.component.d.ts +5 -14
  130. package/src/pages/product/product.module.d.ts +1 -1
  131. package/src/pages/record-not-found/record-not-found.component.d.ts +2 -3
  132. package/src/pages/shopping-cart/shopping-cart.component.d.ts +3 -3
  133. package/src/resolvers/flow.resolver.d.ts +5 -6
  134. package/src/resolvers/pcm-model.resolver.d.ts +3 -0
  135. package/src/resolvers/sales-transaction.resolver.d.ts +18 -0
  136. package/src/resolvers/ui-definition.resolver.d.ts +3 -0
  137. package/src/services/flow-dialog.service.d.ts +6 -8
  138. package/src/services/flow-router.service.d.ts +4 -6
  139. package/src/services/flow.service.d.ts +3 -7
  140. package/src/types/index.d.ts +1 -2
  141. package/src/types/route.types.d.ts +0 -5
  142. package/cms/plugins/configuration.plugin.d.ts +0 -23
  143. package/cms/types/configuration.types.d.ts +0 -21
  144. package/core/modules/configuration/helpers.d.ts +0 -6
  145. package/core/modules/configuration/services/runtime-context.service.d.ts +0 -12
  146. package/core/modules/flow-configuration/services/flow-update.service.d.ts +0 -13
  147. package/core/modules/flow-configuration/types/update.types.d.ts +0 -12
  148. package/core/services/context.service.d.ts +0 -23
  149. package/core/services/quote-draft.service.d.ts +0 -50
  150. package/core/types/runtime.types.d.ts +0 -30
  151. package/core/utils/line-item.utils.d.ts +0 -25
  152. package/core/utils/line-item.worker.d.ts +0 -9
  153. package/esm2020/cms/plugins/configuration.plugin.mjs +0 -109
  154. package/esm2020/cms/types/configuration.types.mjs +0 -2
  155. package/esm2020/core/modules/configuration/helpers.mjs +0 -73
  156. package/esm2020/core/modules/configuration/services/runtime-context.service.mjs +0 -45
  157. package/esm2020/core/modules/flow-configuration/services/flow-update.service.mjs +0 -138
  158. package/esm2020/core/modules/flow-configuration/types/update.types.mjs +0 -2
  159. package/esm2020/core/services/context.service.mjs +0 -91
  160. package/esm2020/core/services/quote-draft.service.mjs +0 -192
  161. package/esm2020/core/types/runtime.types.mjs +0 -16
  162. package/esm2020/core/utils/line-item.utils.mjs +0 -187
  163. package/esm2020/core/utils/line-item.worker.mjs +0 -19
  164. package/esm2020/src/guards/context.guard.mjs +0 -91
  165. package/esm2020/src/guards/index.mjs +0 -2
  166. package/esm2020/src/pages/remote/remote.component.mjs +0 -342
  167. package/esm2020/src/pages/remote/remote.module.mjs +0 -20
  168. package/esm2020/src/pages/remote/remote.types.mjs +0 -2
  169. package/esm2020/src/resolvers/quote.resolver.mjs +0 -82
  170. package/esm2020/src/types/context-route.types.mjs +0 -2
  171. package/esm2020/src/types/metrics.types.mjs +0 -2
  172. package/esm2020/src/utils/flow.utils.mjs +0 -25
  173. package/esm2020/src/utils/index.mjs +0 -2
  174. package/src/guards/context.guard.d.ts +0 -19
  175. package/src/guards/index.d.ts +0 -1
  176. package/src/pages/remote/remote.component.d.ts +0 -46
  177. package/src/pages/remote/remote.module.d.ts +0 -10
  178. package/src/pages/remote/remote.types.d.ts +0 -4
  179. package/src/resolvers/quote.resolver.d.ts +0 -19
  180. package/src/types/context-route.types.d.ts +0 -5
  181. package/src/types/metrics.types.d.ts +0 -5
  182. package/src/utils/flow.utils.d.ts +0 -8
  183. package/src/utils/index.d.ts +0 -1
@@ -15,58 +15,79 @@ export var FlowAction;
15
15
  FlowAction.SUBMIT_GUIDED_SELLING = '[FLOW]_SUBMIT_GUIDED_SELLING';
16
16
  FlowAction.CLOSE_GUIDED_SELLING = '[FLOW]_CLOSE_GUIDED_SELLING';
17
17
  FlowAction.OPEN_DIALOG = '[FLOW]_OPEN_DIALOG';
18
- FlowAction.ConfigureProductAction = ({ lineItemId, productId, }) => ({
19
- type: FlowAction.FLOW_CONFIGURE_PRODUCT,
20
- payload: { lineItemId, productId },
21
- });
22
- FlowAction.NavigateBackAction = () => ({
23
- type: FlowAction.FLOW_NAVIGATE_BACK,
24
- });
25
- FlowAction.NavigateToAction = (path, productId, lineItemId) => ({
18
+ FlowAction.ConfigureProductAction = ({ transactionItemId, productId, qty, }) => {
19
+ return {
20
+ type: FlowAction.FLOW_CONFIGURE_PRODUCT,
21
+ payload: { transactionItemId, productId, qty },
22
+ };
23
+ };
24
+ FlowAction.NavigateBackAction = () => {
25
+ return {
26
+ type: FlowAction.FLOW_NAVIGATE_BACK,
27
+ };
28
+ };
29
+ FlowAction.NavigateToAction = (path, productId, transactionItemId) => ({
26
30
  type: FlowAction.FLOW_NAVIGATE_TO,
27
- payload: { path, productId, lineItemId },
31
+ payload: { path, productId, transactionItemId },
28
32
  });
29
33
  FlowAction.NavigateToCatalogAction = () => ({
30
34
  type: FlowAction.FLOW_NAVIGATE_TO_CATALOG,
31
35
  });
32
- FlowAction.NavigateToShoppingCartAction = () => ({
33
- type: FlowAction.FLOW_NAVIGATE_TO_SHOPPING_CART,
34
- });
35
- FlowAction.ApplyProductConfigurationAction = () => ({
36
- type: FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION,
37
- });
38
- FlowAction.RemoteApplyAction = () => ({
39
- type: FlowAction.REMOTE_APPLY,
40
- });
41
- FlowAction.RemoteCancelAction = () => ({
42
- type: FlowAction.REMOTE_CANCEL,
43
- });
44
- FlowAction.SwitchObjectAction = (payload) => ({
45
- type: FlowAction.FLOW_SWITCH_OBJECT,
46
- payload,
47
- });
48
- FlowAction.OpenGuidedSelling = (payload) => ({
49
- type: FlowAction.OPEN_GUIDED_SELLING,
50
- payload,
51
- });
52
- FlowAction.CloseGuidedSelling = (payload) => ({
53
- type: FlowAction.CLOSE_GUIDED_SELLING,
54
- payload,
55
- });
56
- FlowAction.SubmitGuidedSelling = (payload) => ({
57
- type: FlowAction.SUBMIT_GUIDED_SELLING,
58
- payload,
59
- });
60
- FlowAction.OpenDialog = (dialog) => ({
61
- type: FlowAction.OPEN_DIALOG,
62
- payload: { dialog },
63
- });
36
+ FlowAction.NavigateToShoppingCartAction = () => {
37
+ return {
38
+ type: FlowAction.FLOW_NAVIGATE_TO_SHOPPING_CART,
39
+ };
40
+ };
41
+ FlowAction.ApplyProductConfigurationAction = () => {
42
+ return {
43
+ type: FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION,
44
+ };
45
+ };
46
+ FlowAction.RemoteApplyAction = () => {
47
+ return {
48
+ type: FlowAction.REMOTE_APPLY,
49
+ };
50
+ };
51
+ FlowAction.RemoteCancelAction = () => {
52
+ return {
53
+ type: FlowAction.REMOTE_CANCEL,
54
+ };
55
+ };
56
+ FlowAction.SwitchObjectAction = (payload) => {
57
+ return {
58
+ type: FlowAction.FLOW_SWITCH_OBJECT,
59
+ payload,
60
+ };
61
+ };
62
+ FlowAction.OpenGuidedSelling = (payload) => {
63
+ return {
64
+ type: FlowAction.OPEN_GUIDED_SELLING,
65
+ payload,
66
+ };
67
+ };
68
+ FlowAction.CloseGuidedSelling = (payload) => {
69
+ return {
70
+ type: FlowAction.CLOSE_GUIDED_SELLING,
71
+ payload,
72
+ };
73
+ };
74
+ FlowAction.SubmitGuidedSelling = (payload) => {
75
+ return {
76
+ type: FlowAction.SUBMIT_GUIDED_SELLING,
77
+ payload,
78
+ };
79
+ };
80
+ FlowAction.OpenDialog = (dialog) => {
81
+ return {
82
+ type: FlowAction.OPEN_DIALOG,
83
+ payload: { dialog },
84
+ };
85
+ };
64
86
  })(FlowAction || (FlowAction = {}));
65
87
  export var CmsAction;
66
88
  (function (CmsAction) {
67
89
  CmsAction.GO_TO_PAGE = '[CMS]_GO_TO_PAGE';
68
90
  CmsAction.UPDATE_CUSTOMIZATION = '[CMS]_UPDATE_CUSTOMIZATION';
69
- CmsAction.EMIT_CUSTOMIZATION_CHANGES = '[CMS]_EMIT_CUSTOMIZATION_CHANGES';
70
91
  CmsAction.SHOW_OVERLAY = '[CMS]_SHOW_OVERLAY';
71
92
  CmsAction.HIDE_OVERLAY = '[CMS]_HIDE_OVERLAY';
72
93
  CmsAction.HIDE_ALL_OVERLAYS = '[CMS]_HIDE_ALL_OVERLAYS';
@@ -75,55 +96,56 @@ export var CmsAction;
75
96
  *
76
97
  * @param pageName name of the page
77
98
  */
78
- CmsAction.GoToPage = (pageName) => ({
79
- type: CmsAction.GO_TO_PAGE,
80
- payload: { pageName },
81
- });
99
+ CmsAction.GoToPage = (pageName) => {
100
+ return {
101
+ type: CmsAction.GO_TO_PAGE,
102
+ payload: { pageName },
103
+ };
104
+ };
82
105
  /**
83
106
  * Update UI definition customization state
84
107
  *
85
108
  * @param pageName name of the page
86
109
  */
87
- CmsAction.UpdateCustomization = (value) => ({
88
- type: CmsAction.UPDATE_CUSTOMIZATION,
89
- payload: { value },
90
- });
91
- /**
92
- * Emit customization page changes
93
- *
94
- * @param changes - object with customization page changes
95
- */
96
- CmsAction.EmitCustomizationChanges = (changes) => ({
97
- type: CmsAction.EMIT_CUSTOMIZATION_CHANGES,
98
- payload: { changes },
99
- });
110
+ CmsAction.UpdateCustomization = (value) => {
111
+ return {
112
+ type: CmsAction.UPDATE_CUSTOMIZATION,
113
+ payload: { value },
114
+ };
115
+ };
100
116
  /**
101
117
  * Show an Overlay on the selected page
102
118
  *
103
119
  * @param name - name of the overlay
104
120
  * @returns void
105
121
  */
106
- CmsAction.ShowOverlay = (name) => ({
107
- type: CmsAction.SHOW_OVERLAY,
108
- payload: { name },
109
- });
122
+ CmsAction.ShowOverlay = (name) => {
123
+ return {
124
+ type: CmsAction.SHOW_OVERLAY,
125
+ payload: { name },
126
+ };
127
+ };
110
128
  /**
111
129
  * Hide an Overlay on the selected page
112
130
  *
113
131
  * @param name - name of the overlay
114
132
  * @returns void
115
133
  */
116
- CmsAction.HideOverlay = (name) => ({
117
- type: CmsAction.HIDE_OVERLAY,
118
- payload: { name },
119
- });
134
+ CmsAction.HideOverlay = (name) => {
135
+ return {
136
+ type: CmsAction.HIDE_OVERLAY,
137
+ payload: { name },
138
+ };
139
+ };
120
140
  /**
121
141
  * Hide all Overlays on the selected page
122
142
  *
123
143
  * @returns void
124
144
  */
125
- CmsAction.HideAllOverlays = () => ({
126
- type: CmsAction.HIDE_ALL_OVERLAYS,
127
- });
145
+ CmsAction.HideAllOverlays = () => {
146
+ return {
147
+ type: CmsAction.HIDE_ALL_OVERLAYS,
148
+ };
149
+ };
128
150
  })(CmsAction || (CmsAction = {}));
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY21zLmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxLQUFXLFVBQVUsQ0FpRjFCO0FBakZELFdBQWlCLFVBQVU7SUFDWixpQ0FBc0IsR0FBRywwQkFBMEIsQ0FBQztJQUNwRCw2QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUM1QywyQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQztJQUN4QyxtQ0FBd0IsR0FBRyw0QkFBNEIsQ0FBQztJQUN4RCx5Q0FBOEIsR0FBRyxrQ0FBa0MsQ0FBQztJQUNwRSwyQ0FBZ0MsR0FBRyxvQ0FBb0MsQ0FBQztJQUN4RSw0QkFBaUIsR0FBRyxxQkFBcUIsQ0FBQztJQUMxQyw2QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUM1Qyw2QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUM1Qyx1QkFBWSxHQUFHLHFCQUFxQixDQUFDO0lBQ3JDLHdCQUFhLEdBQUcsc0JBQXNCLENBQUM7SUFDdkMsOEJBQW1CLEdBQUcsNEJBQTRCLENBQUM7SUFDbkQsZ0NBQXFCLEdBQUcsOEJBQThCLENBQUM7SUFDdkQsK0JBQW9CLEdBQUcsNkJBQTZCLENBQUM7SUFDckQsc0JBQVcsR0FBRyxvQkFBb0IsQ0FBQztJQUVuQyxpQ0FBc0IsR0FBRyxDQUFDLEVBQ3JDLFVBQVUsRUFDVixTQUFTLEdBSVYsRUFBcUIsRUFBRSxDQUFDLENBQUM7UUFDeEIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxzQkFBc0I7UUFDdkMsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRTtLQUNuQyxDQUFDLENBQUM7SUFFVSw2QkFBa0IsR0FBRyxHQUFzQixFQUFFLENBQUMsQ0FBQztRQUMxRCxJQUFJLEVBQUUsVUFBVSxDQUFDLGtCQUFrQjtLQUNwQyxDQUFDLENBQUM7SUFFVSwyQkFBZ0IsR0FBRyxDQUFDLElBQVksRUFB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Ozs7O09BS0c7SUFDVSxxQkFBVyxHQUFHLENBQUMsSUFBWSxFQUFxQixFQUFFLENBQUMsQ0FBQztRQUMvRCxJQUFJLEVBQUUsVUFBQSxZQUFZO1FBQ2xCLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRTtLQUNsQixDQUFDLENBQUM7SUFFSDs7Ozs7T0FLRztJQUNVLHFCQUFXLEdBQUcsQ0FBQyxJQUFZLEVBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELElBQUksRUFBRSxVQUFBLFlBQVk7UUFDbEIsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFO0tBQ2xCLENBQUMsQ0FBQztJQUVIOzs7O09BSUc7SUFDVSx5QkFBZSxHQUFHLEdBQXNCLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELElBQUksRUFBRSxVQUFBLGlCQUFpQjtLQUN4QixDQUFDLENBQUM7QUFDTCxDQUFDLEVBcEVnQixTQUFTLEtBQVQsU0FBUyxRQW9FekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlICovXG5pbXBvcnQgeyBDdXN0b21pemF0aW9uQ2hhbmdlcyB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgSW50ZWdyYXRpb25BY3Rpb24gfSBmcm9tICdAdmVsb2NlYXBwcy9zZGsvY29yZSc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgRmxvd0FjdGlvbiB7XG4gIGV4cG9ydCBjb25zdCBGTE9XX0NPTkZJR1VSRV9QUk9EVUNUID0gJ1tGTE9XXV9DT05GSUdVUkVfUFJPRFVDVCc7XG4gIGV4cG9ydCBjb25zdCBGTE9XX05BVklHQVRFX0JBQ0sgPSAnW0ZMT1ddX05BVklHQVRFX0JBQ0snO1xuICBleHBvcnQgY29uc3QgRkxPV19OQVZJR0FURV9UTyA9ICdbRkxPV11fTkFWSUdBVEVfVE8nO1xuICBleHBvcnQgY29uc3QgRkxPV19OQVZJR0FURV9UT19DQVRBTE9HID0gJ1tGTE9XXV9OQVZJR0FURV9UT19DQVRBTE9HJztcbiAgZXhwb3J0IGNvbnN0IEZMT1dfTkFWSUdBVEVfVE9fU0hPUFBJTkdfQ0FSVCA9ICdbRkxPV11fTkFWSUdBVEVfVE9fU0hPUFBJTkdfQ0FSVCc7XG4gIGV4cG9ydCBjb25zdCBGTE9XX0FQUExZX1BST0RVQ1RfQ09ORklHVVJBVElPTiA9ICdbRkxPV11fQVBQTFlfUFJPRFVDVF9DT05GSUdVUkFUSU9OJztcbiAgZXhwb3J0IGNvbnN0IEZMT1dfT1BFTl9ET0NfR0VOID0gJ1tGTE9XXV9PUEVOX0RPQ19HRU4nO1xuICBleHBvcnQgY29uc3QgRkxPV19DTE9TRV9ET0NfR0VOID0gJ1tGTE9XXV9DTE9TRV9ET0NfR0VOJztcbiAgZXhwb3J0IGNvbnN0IEZMT1dfU1dJVENIX09CSkVDVCA9ICdbRkxPV11fU1dJVENIX09CSkVDVCc7XG4gIGV4cG9ydCBjb25zdCBSRU1PVEVfQVBQTFkgPSAnW0ZMT1ddX1JFTU9URV9BUFBMWSc7XG4gIGV4cG9ydCBjb25zdCBSRU1PVEVfQ0FOQ0VMID0gJ1tGTE9XXV9SRU1PVEVfQ0FOQ0VMJztcbiAgZXhwb3J0IGNvbnN0IE9QRU5fR1VJREVEX1NFTExJTkcgPSAnW0ZMT1ddX09QRU5fR1VJREVEX1NFTExJTkcnO1xuICBleHBvcnQgY29uc3QgU1VCTUlUX0dVSURFRF9TRUxMSU5HID0gJ1tGTE9XXV9TVUJNSVRfR1VJREVEX1NFTExJTkcnO1xuICBleHBvcnQgY29uc3QgQ0xPU0VfR1VJREVEX1NFTExJTkcgPSAnW0ZMT1ddX0NMT1NFX0dVSURFRF9TRUxMSU5HJztcbiAgZXhwb3J0IGNvbnN0IE9QRU5fRElBTE9HID0gJ1tGTE9XXV9PUEVOX0RJQUxPRyc7XG5cbiAgZXhwb3J0IGNvbnN0IENvbmZpZ3VyZVByb2R1Y3RBY3Rpb24gPSAoe1xuICAgIGxpbmVJdGVtSWQsXG4gICAgcHJvZHVjdElkLFxuICB9OiB7XG4gICAgbGluZUl0ZW1JZD86IHN0cmluZztcbiAgICBwcm9kdWN0SWQ/OiBzdHJpbmc7XG4gIH0pOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEZsb3dBY3Rpb24uRkxPV19DT05GSUdVUkVfUFJPRFVDVCxcbiAgICBwYXlsb2FkOiB7IGxpbmVJdGVtSWQsIHByb2R1Y3RJZCB9LFxuICB9KTtcblxuICBleHBvcnQgY29uc3QgTmF2aWdhdGVCYWNrQWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX05BVklHQVRFX0JBQ0ssXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBOYXZpZ2F0ZVRvQWN0aW9uID0gKHBhdGg6IHN0cmluZywgcHJvZHVjdElkPzogc3RyaW5nLCBsaW5lSXRlbUlkPzogc3RyaW5nKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBGbG93QWN0aW9uLkZMT1dfTkFWSUdBVEVfVE8sXG4gICAgcGF5bG9hZDogeyBwYXRoLCBwcm9kdWN0SWQsIGxpbmVJdGVtSWQgfSxcbiAgfSk7XG5cbiAgZXhwb3J0IGNvbnN0IE5hdmlnYXRlVG9DYXRhbG9nQWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX05BVklHQVRFX1RPX0NBVEFMT0csXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBOYXZpZ2F0ZVRvU2hvcHBpbmdDYXJ0QWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX05BVklHQVRFX1RPX1NIT1BQSU5HX0NBUlQsXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBBcHBseVByb2R1Y3RDb25maWd1cmF0aW9uQWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX0FQUExZX1BST0RVQ1RfQ09ORklHVVJBVElPTixcbiAgfSk7XG5cbiAgZXhwb3J0IGNvbnN0IFJlbW90ZUFwcGx5QWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5SRU1PVEVfQVBQTFksXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBSZW1vdGVDYW5jZWxBY3Rpb24gPSAoKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBGbG93QWN0aW9uLlJFTU9URV9DQU5DRUwsXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBTd2l0Y2hPYmplY3RBY3Rpb24gPSAocGF5bG9hZDogeyBpZDogc3RyaW5nIH0pOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEZsb3dBY3Rpb24uRkxPV19TV0lUQ0hfT0JKRUNULFxuICAgIHBheWxvYWQsXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBPcGVuR3VpZGVkU2VsbGluZyA9IChwYXlsb2FkOiB7IGd1aWRlZFNlbGxpbmdJZDogc3RyaW5nIH0pOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEZsb3dBY3Rpb24uT1BFTl9HVUlERURfU0VMTElORyxcbiAgICBwYXlsb2FkLFxuICB9KTtcblxuICBleHBvcnQgY29uc3QgQ2xvc2VHdWlkZWRTZWxsaW5nID0gKHBheWxvYWQ/OiB7IGtlZXBTdGF0ZT86IGJvb2xlYW4gfSk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5DTE9TRV9HVUlERURfU0VMTElORyxcbiAgICBwYXlsb2FkLFxuICB9KTtcblxuICBleHBvcnQgY29uc3QgU3VibWl0R3VpZGVkU2VsbGluZyA9IChwYXlsb2FkOiB7IHJlc3VsdDogUmVjb3JkPHN0cmluZywgYW55PiB9KTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBGbG93QWN0aW9uLlNVQk1JVF9HVUlERURfU0VMTElORyxcbiAgICBwYXlsb2FkLFxuICB9KTtcblxuICBleHBvcnQgY29uc3QgT3BlbkRpYWxvZyA9IChkaWFsb2c6IHN0cmluZyk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5PUEVOX0RJQUxPRyxcbiAgICBwYXlsb2FkOiB7IGRpYWxvZyB9LFxuICB9KTtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBDbXNBY3Rpb24ge1xuICBleHBvcnQgY29uc3QgR09fVE9fUEFHRSA9ICdbQ01TXV9HT19UT19QQUdFJztcbiAgZXhwb3J0IGNvbnN0IFVQREFURV9DVVNUT01JWkFUSU9OID0gJ1tDTVNdX1VQREFURV9DVVNUT01JWkFUSU9OJztcbiAgZXhwb3J0IGNvbnN0IEVNSVRfQ1VTVE9NSVpBVElPTl9DSEFOR0VTID0gJ1tDTVNdX0VNSVRfQ1VTVE9NSVpBVElPTl9DSEFOR0VTJztcbiAgZXhwb3J0IGNvbnN0IFNIT1dfT1ZFUkxBWSA9ICdbQ01TXV9TSE9XX09WRVJMQVknO1xuICBleHBvcnQgY29uc3QgSElERV9PVkVSTEFZID0gJ1tDTVNdX0hJREVfT1ZFUkxBWSc7XG4gIGV4cG9ydCBjb25zdCBISURFX0FMTF9PVkVSTEFZUyA9ICdbQ01TXV9ISURFX0FMTF9PVkVSTEFZUyc7XG5cbiAgLyoqXG4gICAqIE5hdmlnYXRlIFVJIGRlZmluaXRpb24gdG8gYSBzcGVjaWZpYyBwYWdlXG4gICAqXG4gICAqIEBwYXJhbSBwYWdlTmFtZSBuYW1lIG9mIHRoZSBwYWdlXG4gICAqL1xuICBleHBvcnQgY29uc3QgR29Ub1BhZ2UgPSAocGFnZU5hbWU6IHN0cmluZyk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogR09fVE9fUEFHRSxcbiAgICBwYXlsb2FkOiB7IHBhZ2VOYW1lIH0sXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBVcGRhdGUgVUkgZGVmaW5pdGlvbiBjdXN0b21pemF0aW9uIHN0YXRlXG4gICAqXG4gICAqIEBwYXJhbSBwYWdlTmFtZSBuYW1lIG9mIHRoZSBwYWdlXG4gICAqL1xuICBleHBvcnQgY29uc3QgVXBkYXRlQ3VzdG9taXphdGlvbiA9ICh2YWx1ZTogYW55KTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBVUERBVEVfQ1VTVE9NSVpBVElPTixcbiAgICBwYXlsb2FkOiB7IHZhbHVlIH0sXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBFbWl0IGN1c3RvbWl6YXRpb24gcGFnZSBjaGFuZ2VzXG4gICAqXG4gICAqIEBwYXJhbSBjaGFuZ2VzIC0gb2JqZWN0IHdpdGggY3VzdG9taXphdGlvbiBwYWdlIGNoYW5nZXNcbiAgICovXG4gIGV4cG9ydCBjb25zdCBFbWl0Q3VzdG9taXphdGlvbkNoYW5nZXMgPSAoY2hhbmdlczogQ3VzdG9taXphdGlvbkNoYW5nZXMpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEVNSVRfQ1VTVE9NSVpBVElPTl9DSEFOR0VTLFxuICAgIHBheWxvYWQ6IHsgY2hhbmdlcyB9LFxuICB9KTtcblxuICAvKipcbiAgICogU2hvdyBhbiBPdmVybGF5IG9uIHRoZSBzZWxlY3RlZCBwYWdlXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIC0gbmFtZSBvZiB0aGUgb3ZlcmxheVxuICAgKiBAcmV0dXJucyB2b2lkXG4gICAqL1xuICBleHBvcnQgY29uc3QgU2hvd092ZXJsYXkgPSAobmFtZTogc3RyaW5nKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBTSE9XX09WRVJMQVksXG4gICAgcGF5bG9hZDogeyBuYW1lIH0sXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBIaWRlIGFuIE92ZXJsYXkgb24gdGhlIHNlbGVjdGVkIHBhZ2VcbiAgICpcbiAgICogQHBhcmFtIG5hbWUgLSBuYW1lIG9mIHRoZSBvdmVybGF5XG4gICAqIEByZXR1cm5zIHZvaWRcbiAgICovXG4gIGV4cG9ydCBjb25zdCBIaWRlT3ZlcmxheSA9IChuYW1lOiBzdHJpbmcpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEhJREVfT1ZFUkxBWSxcbiAgICBwYXlsb2FkOiB7IG5hbWUgfSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEhpZGUgYWxsIE92ZXJsYXlzIG9uIHRoZSBzZWxlY3RlZCBwYWdlXG4gICAqXG4gICAqIEByZXR1cm5zIHZvaWRcbiAgICovXG4gIGV4cG9ydCBjb25zdCBIaWRlQWxsT3ZlcmxheXMgPSAoKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBISURFX0FMTF9PVkVSTEFZUyxcbiAgfSk7XG59XG4iXX0=
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY21zLmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxLQUFXLFVBQVUsQ0EyRzFCO0FBM0dELFdBQWlCLFVBQVU7SUFDWixpQ0FBc0IsR0FBRywwQkFBMEIsQ0FBQztJQUNwRCw2QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUM1QywyQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQztJQUN4QyxtQ0FBd0IsR0FBRyw0QkFBNEIsQ0FBQztJQUN4RCx5Q0FBOEIsR0FBRyxrQ0FBa0MsQ0FBQztJQUNwRSwyQ0FBZ0MsR0FBRyxvQ0FBb0MsQ0FBQztJQUN4RSw0QkFBaUIsR0FBRyxxQkFBcUIsQ0FBQztJQUMxQyw2QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUM1Qyw2QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUM1Qyx1QkFBWSxHQUFHLHFCQUFxQixDQUFDO0lBQ3JDLHdCQUFhLEdBQUcsc0JBQXNCLENBQUM7SUFDdkMsOEJBQW1CLEdBQUcsNEJBQTRCLENBQUM7SUFDbkQsZ0NBQXFCLEdBQUcsOEJBQThCLENBQUM7SUFDdkQsK0JBQW9CLEdBQUcsNkJBQTZCLENBQUM7SUFDckQsc0JBQVcsR0FBRyxvQkFBb0IsQ0FBQztJQUVuQyxpQ0FBc0IsR0FBRyxDQUFDLEVBQ3JDLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsR0FBRyxHQUtKLEVBQUUsRUFBRTtRQUNILE9BQU87WUFDTCxJQUFJLEVBQUUsVUFBVSxDQUFDLHNCQUFzQjtZQUN2QyxPQUFPLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFO1NBQ25CLENBQUM7SUFDaEMsQ0FBQyxDQUFDO0lBRVcsNkJBQWtCLEdBQUcsR0FBRyxFQUFFO1FBQ3JDLE9BQU87WUFDTCxJQUFJLEVBQUUsVUFBVSxDQUFDLGtCQUFrQjtTQUNSLENBQUM7SUFD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LHFCQUFXLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRTtRQUMxQyxPQUFPO1lBQ0wsSUFBSSxFQUFFLFVBQUEsWUFBWTtZQUNsQixPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUU7U0FDVSxDQUFDO0lBQ2hDLENBQUMsQ0FBQztJQUVGOzs7OztPQUtHO0lBQ1UscUJBQVcsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO1FBQzFDLE9BQU87WUFDTCxJQUFJLEVBQUUsVUFBQSxZQUFZO1lBQ2xCLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRTtTQUNVLENBQUM7SUFDaEMsQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNVLHlCQUFlLEdBQUcsR0FBRyxFQUFFO1FBQ2xDLE9BQU87WUFDTCxJQUFJLEVBQUUsVUFBQSxpQkFBaUI7U0FDSSxDQUFDO0lBQ2hDLENBQUMsQ0FBQztBQUNKLENBQUMsRUFuRWdCLFNBQVMsS0FBVCxTQUFTLFFBbUV6QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1uYW1lc3BhY2UgKi9cbmltcG9ydCB7IEludGVncmF0aW9uQWN0aW9uIH0gZnJvbSAnQHZlbG9jZWFwcHMvc2RrL2NvcmUnO1xuXG5leHBvcnQgbmFtZXNwYWNlIEZsb3dBY3Rpb24ge1xuICBleHBvcnQgY29uc3QgRkxPV19DT05GSUdVUkVfUFJPRFVDVCA9ICdbRkxPV11fQ09ORklHVVJFX1BST0RVQ1QnO1xuICBleHBvcnQgY29uc3QgRkxPV19OQVZJR0FURV9CQUNLID0gJ1tGTE9XXV9OQVZJR0FURV9CQUNLJztcbiAgZXhwb3J0IGNvbnN0IEZMT1dfTkFWSUdBVEVfVE8gPSAnW0ZMT1ddX05BVklHQVRFX1RPJztcbiAgZXhwb3J0IGNvbnN0IEZMT1dfTkFWSUdBVEVfVE9fQ0FUQUxPRyA9ICdbRkxPV11fTkFWSUdBVEVfVE9fQ0FUQUxPRyc7XG4gIGV4cG9ydCBjb25zdCBGTE9XX05BVklHQVRFX1RPX1NIT1BQSU5HX0NBUlQgPSAnW0ZMT1ddX05BVklHQVRFX1RPX1NIT1BQSU5HX0NBUlQnO1xuICBleHBvcnQgY29uc3QgRkxPV19BUFBMWV9QUk9EVUNUX0NPTkZJR1VSQVRJT04gPSAnW0ZMT1ddX0FQUExZX1BST0RVQ1RfQ09ORklHVVJBVElPTic7XG4gIGV4cG9ydCBjb25zdCBGTE9XX09QRU5fRE9DX0dFTiA9ICdbRkxPV11fT1BFTl9ET0NfR0VOJztcbiAgZXhwb3J0IGNvbnN0IEZMT1dfQ0xPU0VfRE9DX0dFTiA9ICdbRkxPV11fQ0xPU0VfRE9DX0dFTic7XG4gIGV4cG9ydCBjb25zdCBGTE9XX1NXSVRDSF9PQkpFQ1QgPSAnW0ZMT1ddX1NXSVRDSF9PQkpFQ1QnO1xuICBleHBvcnQgY29uc3QgUkVNT1RFX0FQUExZID0gJ1tGTE9XXV9SRU1PVEVfQVBQTFknO1xuICBleHBvcnQgY29uc3QgUkVNT1RFX0NBTkNFTCA9ICdbRkxPV11fUkVNT1RFX0NBTkNFTCc7XG4gIGV4cG9ydCBjb25zdCBPUEVOX0dVSURFRF9TRUxMSU5HID0gJ1tGTE9XXV9PUEVOX0dVSURFRF9TRUxMSU5HJztcbiAgZXhwb3J0IGNvbnN0IFNVQk1JVF9HVUlERURfU0VMTElORyA9ICdbRkxPV11fU1VCTUlUX0dVSURFRF9TRUxMSU5HJztcbiAgZXhwb3J0IGNvbnN0IENMT1NFX0dVSURFRF9TRUxMSU5HID0gJ1tGTE9XXV9DTE9TRV9HVUlERURfU0VMTElORyc7XG4gIGV4cG9ydCBjb25zdCBPUEVOX0RJQUxPRyA9ICdbRkxPV11fT1BFTl9ESUFMT0cnO1xuXG4gIGV4cG9ydCBjb25zdCBDb25maWd1cmVQcm9kdWN0QWN0aW9uID0gKHtcbiAgICB0cmFuc2FjdGlvbkl0ZW1JZCxcbiAgICBwcm9kdWN0SWQsXG4gICAgcXR5LFxuICB9OiB7XG4gICAgdHJhbnNhY3Rpb25JdGVtSWQ/OiBzdHJpbmc7XG4gICAgcHJvZHVjdElkPzogc3RyaW5nO1xuICAgIHF0eT86IG51bWJlcjtcbiAgfSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBGbG93QWN0aW9uLkZMT1dfQ09ORklHVVJFX1BST0RVQ1QsXG4gICAgICBwYXlsb2FkOiB7IHRyYW5zYWN0aW9uSXRlbUlkLCBwcm9kdWN0SWQsIHF0eSB9LFxuICAgIH0gc2F0aXNmaWVzIEludGVncmF0aW9uQWN0aW9uO1xuICB9O1xuXG4gIGV4cG9ydCBjb25zdCBOYXZpZ2F0ZUJhY2tBY3Rpb24gPSAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IEZsb3dBY3Rpb24uRkxPV19OQVZJR0FURV9CQUNLLFxuICAgIH0gc2F0aXNmaWVzIEludGVncmF0aW9uQWN0aW9uO1xuICB9O1xuXG4gIGV4cG9ydCBjb25zdCBOYXZpZ2F0ZVRvQWN0aW9uID0gKHBhdGg6IHN0cmluZywgcHJvZHVjdElkPzogc3RyaW5nLCB0cmFuc2FjdGlvbkl0ZW1JZD86IHN0cmluZykgPT5cbiAgICAoe1xuICAgICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX05BVklHQVRFX1RPLFxuICAgICAgcGF5bG9hZDogeyBwYXRoLCBwcm9kdWN0SWQsIHRyYW5zYWN0aW9uSXRlbUlkIH0sXG4gICAgfSBzYXRpc2ZpZXMgSW50ZWdyYXRpb25BY3Rpb24pO1xuXG4gIGV4cG9ydCBjb25zdCBOYXZpZ2F0ZVRvQ2F0YWxvZ0FjdGlvbiA9ICgpID0+XG4gICAgKHtcbiAgICAgIHR5cGU6IEZsb3dBY3Rpb24uRkxPV19OQVZJR0FURV9UT19DQVRBTE9HLFxuICAgIH0gc2F0aXNmaWVzIEludGVncmF0aW9uQWN0aW9uKTtcblxuICBleHBvcnQgY29uc3QgTmF2aWdhdGVUb1Nob3BwaW5nQ2FydEFjdGlvbiA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX05BVklHQVRFX1RPX1NIT1BQSU5HX0NBUlQsXG4gICAgfSBzYXRpc2ZpZXMgSW50ZWdyYXRpb25BY3Rpb247XG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IEFwcGx5UHJvZHVjdENvbmZpZ3VyYXRpb25BY3Rpb24gPSAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IEZsb3dBY3Rpb24uRkxPV19BUFBMWV9QUk9EVUNUX0NPTkZJR1VSQVRJT04sXG4gICAgfSBzYXRpc2ZpZXMgSW50ZWdyYXRpb25BY3Rpb247XG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IFJlbW90ZUFwcGx5QWN0aW9uID0gKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBGbG93QWN0aW9uLlJFTU9URV9BUFBMWSxcbiAgICB9IHNhdGlzZmllcyBJbnRlZ3JhdGlvbkFjdGlvbjtcbiAgfTtcblxuICBleHBvcnQgY29uc3QgUmVtb3RlQ2FuY2VsQWN0aW9uID0gKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBGbG93QWN0aW9uLlJFTU9URV9DQU5DRUwsXG4gICAgfSBzYXRpc2ZpZXMgSW50ZWdyYXRpb25BY3Rpb247XG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IFN3aXRjaE9iamVjdEFjdGlvbiA9IChwYXlsb2FkOiB7IGlkOiBzdHJpbmcgfSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBGbG93QWN0aW9uLkZMT1dfU1dJVENIX09CSkVDVCxcbiAgICAgIHBheWxvYWQsXG4gICAgfSBzYXRpc2ZpZXMgSW50ZWdyYXRpb25BY3Rpb247XG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IE9wZW5HdWlkZWRTZWxsaW5nID0gKHBheWxvYWQ6IHsgZ3VpZGVkU2VsbGluZ0lkOiBzdHJpbmcgfSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBGbG93QWN0aW9uLk9QRU5fR1VJREVEX1NFTExJTkcsXG4gICAgICBwYXlsb2FkLFxuICAgIH0gc2F0aXNmaWVzIEludGVncmF0aW9uQWN0aW9uO1xuICB9O1xuXG4gIGV4cG9ydCBjb25zdCBDbG9zZUd1aWRlZFNlbGxpbmcgPSAocGF5bG9hZD86IHsga2VlcFN0YXRlPzogYm9vbGVhbiB9KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IEZsb3dBY3Rpb24uQ0xPU0VfR1VJREVEX1NFTExJTkcsXG4gICAgICBwYXlsb2FkLFxuICAgIH0gc2F0aXNmaWVzIEludGVncmF0aW9uQWN0aW9uO1xuICB9O1xuXG4gIGV4cG9ydCBjb25zdCBTdWJtaXRHdWlkZWRTZWxsaW5nID0gKHBheWxvYWQ6IHsgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+IH0pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogRmxvd0FjdGlvbi5TVUJNSVRfR1VJREVEX1NFTExJTkcsXG4gICAgICBwYXlsb2FkLFxuICAgIH0gc2F0aXNmaWVzIEludGVncmF0aW9uQWN0aW9uO1xuICB9O1xuXG4gIGV4cG9ydCBjb25zdCBPcGVuRGlhbG9nID0gKGRpYWxvZzogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IEZsb3dBY3Rpb24uT1BFTl9ESUFMT0csXG4gICAgICBwYXlsb2FkOiB7IGRpYWxvZyB9LFxuICAgIH0gc2F0aXNmaWVzIEludGVncmF0aW9uQWN0aW9uO1xuICB9O1xufVxuXG50eXBlIEEgPSBSZXR1cm5UeXBlPHR5cGVvZiBGbG93QWN0aW9uLk9wZW5EaWFsb2c+WydwYXlsb2FkJ107XG5cbmV4cG9ydCBuYW1lc3BhY2UgQ21zQWN0aW9uIHtcbiAgZXhwb3J0IGNvbnN0IEdPX1RPX1BBR0UgPSAnW0NNU11fR09fVE9fUEFHRSc7XG4gIGV4cG9ydCBjb25zdCBVUERBVEVfQ1VTVE9NSVpBVElPTiA9ICdbQ01TXV9VUERBVEVfQ1VTVE9NSVpBVElPTic7XG4gIGV4cG9ydCBjb25zdCBTSE9XX09WRVJMQVkgPSAnW0NNU11fU0hPV19PVkVSTEFZJztcbiAgZXhwb3J0IGNvbnN0IEhJREVfT1ZFUkxBWSA9ICdbQ01TXV9ISURFX09WRVJMQVknO1xuICBleHBvcnQgY29uc3QgSElERV9BTExfT1ZFUkxBWVMgPSAnW0NNU11fSElERV9BTExfT1ZFUkxBWVMnO1xuXG4gIC8qKlxuICAgKiBOYXZpZ2F0ZSBVSSBkZWZpbml0aW9uIHRvIGEgc3BlY2lmaWMgcGFnZVxuICAgKlxuICAgKiBAcGFyYW0gcGFnZU5hbWUgbmFtZSBvZiB0aGUgcGFnZVxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IEdvVG9QYWdlID0gKHBhZ2VOYW1lOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogR09fVE9fUEFHRSxcbiAgICAgIHBheWxvYWQ6IHsgcGFnZU5hbWUgfSxcbiAgICB9IHNhdGlzZmllcyBJbnRlZ3JhdGlvbkFjdGlvbjtcbiAgfTtcblxuICAvKipcbiAgICogVXBkYXRlIFVJIGRlZmluaXRpb24gY3VzdG9taXphdGlvbiBzdGF0ZVxuICAgKlxuICAgKiBAcGFyYW0gcGFnZU5hbWUgbmFtZSBvZiB0aGUgcGFnZVxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IFVwZGF0ZUN1c3RvbWl6YXRpb24gPSAodmFsdWU6IGFueSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBVUERBVEVfQ1VTVE9NSVpBVElPTixcbiAgICAgIHBheWxvYWQ6IHsgdmFsdWUgfSxcbiAgICB9IHNhdGlzZmllcyBJbnRlZ3JhdGlvbkFjdGlvbjtcbiAgfTtcblxuICAvKipcbiAgICogU2hvdyBhbiBPdmVybGF5IG9uIHRoZSBzZWxlY3RlZCBwYWdlXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIC0gbmFtZSBvZiB0aGUgb3ZlcmxheVxuICAgKiBAcmV0dXJucyB2b2lkXG4gICAqL1xuICBleHBvcnQgY29uc3QgU2hvd092ZXJsYXkgPSAobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFNIT1dfT1ZFUkxBWSxcbiAgICAgIHBheWxvYWQ6IHsgbmFtZSB9LFxuICAgIH0gc2F0aXNmaWVzIEludGVncmF0aW9uQWN0aW9uO1xuICB9O1xuXG4gIC8qKlxuICAgKiBIaWRlIGFuIE92ZXJsYXkgb24gdGhlIHNlbGVjdGVkIHBhZ2VcbiAgICpcbiAgICogQHBhcmFtIG5hbWUgLSBuYW1lIG9mIHRoZSBvdmVybGF5XG4gICAqIEByZXR1cm5zIHZvaWRcbiAgICovXG4gIGV4cG9ydCBjb25zdCBIaWRlT3ZlcmxheSA9IChuYW1lOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogSElERV9PVkVSTEFZLFxuICAgICAgcGF5bG9hZDogeyBuYW1lIH0sXG4gICAgfSBzYXRpc2ZpZXMgSW50ZWdyYXRpb25BY3Rpb247XG4gIH07XG5cbiAgLyoqXG4gICAqIEhpZGUgYWxsIE92ZXJsYXlzIG9uIHRoZSBzZWxlY3RlZCBwYWdlXG4gICAqXG4gICAqIEByZXR1cm5zIHZvaWRcbiAgICovXG4gIGV4cG9ydCBjb25zdCBIaWRlQWxsT3ZlcmxheXMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IEhJREVfQUxMX09WRVJMQVlTLFxuICAgIH0gc2F0aXNmaWVzIEludGVncmF0aW9uQWN0aW9uO1xuICB9O1xufVxuIl19
@@ -1,6 +1,5 @@
1
- import { ConfigurationPlugin } from './plugins/configuration.plugin';
2
1
  export const DEFAULT_PLUGINS = {
3
- CONFIGURATION: [ConfigurationPlugin],
2
+ CONFIGURATION: [],
4
3
  DEFAULT: [],
5
4
  };
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY21zLmRlZmF1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFckUsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFxRDtJQUMvRSxhQUFhLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztJQUNwQyxPQUFPLEVBQUUsRUFBRTtDQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVSURlZmluaXRpb25UeXBlIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBQbHVnaW4gfSBmcm9tICcuL2VuZ2luZS9tb2RlbHMvcGx1Z2luJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25QbHVnaW4gfSBmcm9tICcuL3BsdWdpbnMvY29uZmlndXJhdGlvbi5wbHVnaW4nO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9QTFVHSU5TOiB7IFtrZXkgaW4gVUlEZWZpbml0aW9uVHlwZV06ICh0eXBlb2YgUGx1Z2luKVtdIH0gPSB7XG4gIENPTkZJR1VSQVRJT046IFtDb25maWd1cmF0aW9uUGx1Z2luXSxcbiAgREVGQVVMVDogW10sXG59O1xuIl19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY21zLmRlZmF1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFxRDtJQUMvRSxhQUFhLEVBQUUsRUFBRTtJQUNqQixPQUFPLEVBQUUsRUFBRTtDQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVSURlZmluaXRpb25UeXBlIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBQbHVnaW4gfSBmcm9tICcuL2VuZ2luZS9tb2RlbHMvcGx1Z2luJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUExVR0lOUzogeyBba2V5IGluIFVJRGVmaW5pdGlvblR5cGVdOiAodHlwZW9mIFBsdWdpbilbXSB9ID0ge1xuICBDT05GSUdVUkFUSU9OOiBbXSxcbiAgREVGQVVMVDogW10sXG59O1xuIl19
@@ -1,26 +1,20 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Injector, Input, SkipSelf, ViewChild, ViewContainerRef, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild, ViewContainerRef, } from '@angular/core';
2
2
  import { UUID } from '@veloceapps/core';
3
- import { ConfigurationService } from '@veloceapps/sdk/core';
4
3
  import { isArray, pull } from 'lodash';
5
- import { map, Subject, takeUntil } from 'rxjs';
4
+ import { Subject, takeUntil } from 'rxjs';
6
5
  import { RuntimeService } from '../../modules/runtime/services/runtime.service';
7
6
  import { ElementContextService } from '../../services/element-context.service';
8
7
  import { IOProviderService } from '../../services/io-provider.service';
9
- import { parseBoundPath } from '../../utils/path.utils';
10
8
  import { ElementComponent } from '../element.component';
11
9
  import * as i0 from "@angular/core";
12
10
  import * as i1 from "../../modules/runtime/services/runtime.service";
13
11
  import * as i2 from "../../services/element-context.service";
14
12
  import * as i3 from "../../services/io-provider.service";
15
- import * as i4 from "@veloceapps/sdk/core";
16
13
  export class ElementRendererComponent {
17
- constructor(parentInjector, runtimeService, elementContext, ioProviderService, configurationService, elementRef, cdr) {
18
- this.parentInjector = parentInjector;
14
+ constructor(runtimeService, elementContext, ioProviderService, cdr) {
19
15
  this.runtimeService = runtimeService;
20
16
  this.elementContext = elementContext;
21
17
  this.ioProviderService = ioProviderService;
22
- this.configurationService = configurationService;
23
- this.elementRef = elementRef;
24
18
  this.cdr = cdr;
25
19
  this.refs = {};
26
20
  this.destroy$ = new Subject();
@@ -44,10 +38,7 @@ export class ElementRendererComponent {
44
38
  this.refs[UUID.UUID()] = this.createComponent();
45
39
  return;
46
40
  }
47
- if (modelMeta.lineItem) {
48
- this.createFromLineItem(modelMeta.lineItem);
49
- }
50
- else if (modelMeta.path) {
41
+ if (modelMeta.path) {
51
42
  this.createFromPath(modelMeta.path);
52
43
  }
53
44
  }
@@ -60,43 +51,6 @@ export class ElementRendererComponent {
60
51
  this.processChildren(children);
61
52
  });
62
53
  }
63
- getModelComponent() {
64
- let component = null;
65
- let injector = this.parentInjector;
66
- while (!component) {
67
- const parentComp = injector.get(ElementRendererComponent, null);
68
- if (parentComp?.meta.model) {
69
- component = parentComp;
70
- break;
71
- }
72
- if (parentComp) {
73
- injector = parentComp.parentInjector;
74
- }
75
- else {
76
- break;
77
- }
78
- }
79
- return component;
80
- }
81
- createFromLineItem(path) {
82
- const parentComp = this.getModelComponent();
83
- const parentPath = parentComp?.meta.model?.lineItem;
84
- const pathBlocks = parseBoundPath(path).reverse();
85
- const { property, name } = pathBlocks[1] ?? {};
86
- const finalPath = pathBlocks[0];
87
- const children$ = this.getParentLineItem$(parentComp).pipe(map(model => {
88
- if (!model) {
89
- return [];
90
- }
91
- if (property === 'ports' && !finalPath?.property && parentPath !== path) {
92
- return model.lineItems.filter(({ port }) => port === name) ?? [];
93
- }
94
- return [model];
95
- }));
96
- children$.pipe(takeUntil(this.destroy$)).subscribe(children => {
97
- this.processChildren(children);
98
- });
99
- }
100
54
  processChildren(children) {
101
55
  this.runtimeService.moduleRefs[0]?.injector.runInContext(() => {
102
56
  const refs = children.reduce((acc, data, index) => {
@@ -117,15 +71,6 @@ export class ElementRendererComponent {
117
71
  this.cdr.detectChanges();
118
72
  });
119
73
  }
120
- getParentLineItem$(parentComp) {
121
- const parentRefs = Object.values(parentComp?.refs ?? {});
122
- const parentRef = parentRefs.find(ref => ref?.location.nativeElement?.contains(this.elementRef.nativeElement));
123
- let parentModel$;
124
- if (parentRef?.instance instanceof ElementComponent) {
125
- parentModel$ = parentRef?.instance.model$;
126
- }
127
- return parentModel$ ?? this.configurationService.get();
128
- }
129
74
  createComponent(data, index) {
130
75
  if (!this.type) {
131
76
  return;
@@ -158,17 +103,15 @@ export class ElementRendererComponent {
158
103
  this.refs = {};
159
104
  }
160
105
  }
161
- ElementRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ElementRendererComponent, deps: [{ token: i0.Injector, skipSelf: true }, { token: i1.RuntimeService }, { token: i2.ElementContextService }, { token: i3.IOProviderService }, { token: i4.ConfigurationService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
106
+ ElementRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ElementRendererComponent, deps: [{ token: i1.RuntimeService }, { token: i2.ElementContextService }, { token: i3.IOProviderService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
162
107
  ElementRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ElementRendererComponent, selector: "vl-cms-element-renderer", inputs: { meta: "meta" }, providers: [ElementContextService], viewQueries: [{ propertyName: "el", first: true, predicate: ["el"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<ng-template #el></ng-template>\n", styles: [":host{display:contents}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
163
108
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ElementRendererComponent, decorators: [{
164
109
  type: Component,
165
110
  args: [{ selector: 'vl-cms-element-renderer', changeDetection: ChangeDetectionStrategy.OnPush, providers: [ElementContextService], template: "<ng-template #el></ng-template>\n", styles: [":host{display:contents}\n"] }]
166
- }], ctorParameters: function () { return [{ type: i0.Injector, decorators: [{
167
- type: SkipSelf
168
- }] }, { type: i1.RuntimeService }, { type: i2.ElementContextService }, { type: i3.IOProviderService }, { type: i4.ConfigurationService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { el: [{
111
+ }], ctorParameters: function () { return [{ type: i1.RuntimeService }, { type: i2.ElementContextService }, { type: i3.IOProviderService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { el: [{
169
112
  type: ViewChild,
170
113
  args: ['el', { read: ViewContainerRef, static: true }]
171
114
  }], meta: [{
172
115
  type: Input
173
116
  }] } });
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY29tcG9uZW50cy9lbGVtZW50LXJlbmRlcmVyL2VsZW1lbnQtcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL2NvbXBvbmVudHMvZWxlbWVudC1yZW5kZXJlci9lbGVtZW50LXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsUUFBUSxFQUNSLEtBQUssRUFHTCxRQUFRLEVBRVIsU0FBUyxFQUNULGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQVksSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUQsT0FBTyxFQUFjLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNoRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQVN4RCxNQUFNLE9BQU8sd0JBQXdCO0lBU25DLFlBQ3NCLGNBQXdCLEVBQ3BDLGNBQThC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O0lBQ2pCLENBQUM7O3FIQTlMVSx3QkFBd0I7eUdBQXhCLHdCQUF3Qiw0RUFGeEIsQ0FBQyxxQkFBcUIsQ0FBQywrRkFHVCxnQkFBZ0IsMkNDbkMzQyxtQ0FDQTsyRkRpQ2Esd0JBQXdCO2tCQVBwQyxTQUFTOytCQUNFLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLHFCQUFxQixDQUFDOzswQkFZL0IsUUFBUTt5T0FUdUQsRUFBRTtzQkFBbkUsU0FBUzt1QkFBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFekMsSUFBSTtzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFNraXBTZWxmLFxuICBUeXBlLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGluZUl0ZW0sIFVVSUQgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvc2RrL2NvcmUnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSwgaXNBcnJheSwgcHVsbCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi4vLi4vZW5naW5lL21vZGVscy9lbnRpdHknO1xuaW1wb3J0IHsgUnVudGltZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9tb2R1bGVzL3J1bnRpbWUvc2VydmljZXMvcnVudGltZS5zZXJ2aWNlJztcbmltcG9ydCB7IEVsZW1lbnRDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VsZW1lbnQtY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IElPUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW8tcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBFbGVtZW50TWV0YWRhdGEgfSBmcm9tICcuLi8uLi90eXBlcy9jb21tb24udHlwZXMnO1xuaW1wb3J0IHsgcGFyc2VCb3VuZFBhdGggfSBmcm9tICcuLi8uLi91dGlscy9wYXRoLnV0aWxzJztcbmltcG9ydCB7IEVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuLi9lbGVtZW50LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZsLWNtcy1lbGVtZW50LXJlbmRlcmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZW1lbnQtcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbGVtZW50LXJlbmRlcmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtFbGVtZW50Q29udGV4dFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBFbGVtZW50UmVuZGVyZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ2VsJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSkgcHVibGljIGVsPzogVmlld0NvbnRhaW5lclJlZjtcblxuICBASW5wdXQoKSBwdWJsaWMgbWV0YSE6IEVsZW1lbnRNZXRhZGF0YTtcblxuICBwcml2YXRlIHR5cGU/OiBUeXBlPEVudGl0eT47XG4gIHByaXZhdGUgcmVmczogRGljdGlvbmFyeTxDb21wb25lbnRSZWY8RW50aXR5PiB8IHVuZGVmaW5lZD4gPSB7fTtcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQFNraXBTZWxmKCkgcHJpdmF0ZSBwYXJlbnRJbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBydW50aW1lU2VydmljZTogUnVudGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbGVtZW50Q29udGV4dDogRWxlbWVudENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW9Qcm92aWRlclNlcnZpY2U6IElPUHJvdmlkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvblNlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubWV0YS5pc1NoYXJlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZWxlbWVudENvbnRleHQubWV0YWRhdGEgPSB0aGlzLm1ldGE7XG4gICAgdGhpcy50eXBlID0gdGhpcy5tZXRhLnBhdGggPyB0aGlzLnJ1bnRpbWVTZXJ2aWNlLmNvbXBvbmVudFR5cGVzW3RoaXMubWV0YS5wYXRoXSA6IHVuZGVmaW5lZDtcblxuICAgIHRoaXMuY3JlYXRlQ29tcG9uZW50cygpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveUNvbXBvbmVudHMoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNvbXBvbmVudHMoKTogdm9pZCB7XG4gICAgY29uc3QgbW9kZWxNZXRhID0gdGhpcy5tZXRhLm1vZGVsO1xuXG4gICAgaWYgKCFtb2RlbE1ldGEpIHtcbiAgICAgIHRoaXMucmVmc1tVVUlELlVVSUQoKV0gPSB0aGlzLmNyZWF0ZUNvbXBvbmVudCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChtb2RlbE1ldGEubGluZUl0ZW0pIHtcbiAgICAgIHRoaXMuY3JlYXRlRnJvbUxpbmVJdGVtKG1vZGVsTWV0YS5saW5lSXRlbSk7XG4gICAgfSBlbHNlIGlmIChtb2RlbE1ldGEucGF0aCkge1xuICAgICAgdGhpcy5jcmVhdGVGcm9tUGF0aChtb2RlbE1ldGEucGF0aCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVGcm9tUGF0aChwYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBhcnJheSQgPSB0aGlzLmlvUHJvdmlkZXJTZXJ2aWNlLmNvbm5lY3QodGhpcy5tZXRhLCAnY2hpbGRyZW4kJywgcGF0aCk7XG5cbiAgICBhcnJheSQ/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoY2hpbGRyZW4gPT4ge1xuICAgICAgaWYgKCFpc0FycmF5KGNoaWxkcmVuKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMucHJvY2Vzc0NoaWxkcmVuKGNoaWxkcmVuKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TW9kZWxDb21wb25lbnQoKTogRWxlbWVudFJlbmRlcmVyQ29tcG9uZW50IHwgbnVsbCB7XG4gICAgbGV0IGNvbXBvbmVudDogRWxlbWVudFJlbmRlcmVyQ29tcG9uZW50IHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IGluamVjdG9yID0gdGhpcy5wYXJlbnRJbmplY3RvcjtcblxuICAgIHdoaWxlICghY29tcG9uZW50KSB7XG4gICAgICBjb25zdCBwYXJlbnRDb21wID0gaW5qZWN0b3IuZ2V0KEVsZW1lbnRSZW5kZXJlckNvbXBvbmVudCwgbnVsbCk7XG5cbiAgICAgIGlmIChwYXJlbnRDb21wPy5tZXRhLm1vZGVsKSB7XG4gICAgICAgIGNvbXBvbmVudCA9IHBhcmVudENvbXA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBpZiAocGFyZW50Q29tcCkge1xuICAgICAgICBpbmplY3RvciA9IHBhcmVudENvbXAucGFyZW50SW5qZWN0b3I7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY29tcG9uZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVGcm9tTGluZUl0ZW0ocGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgcGFyZW50Q29tcCA9IHRoaXMuZ2V0TW9kZWxDb21wb25lbnQoKTtcbiAgICBjb25zdCBwYXJlbnRQYXRoID0gcGFyZW50Q29tcD8ubWV0YS5tb2RlbD8ubGluZUl0ZW07XG5cbiAgICBjb25zdCBwYXRoQmxvY2tzID0gcGFyc2VCb3VuZFBhdGgocGF0aCkucmV2ZXJzZSgpO1xuICAgIGNvbnN0IHsgcHJvcGVydHksIG5hbWUgfSA9IHBhdGhCbG9ja3NbMV0gPz8ge307XG4gICAgY29uc3QgZmluYWxQYXRoID0gcGF0aEJsb2Nrc1swXTtcblxuICAgIGNvbnN0IGNoaWxkcmVuJCA9IHRoaXMuZ2V0UGFyZW50TGluZUl0ZW0kKHBhcmVudENvbXApLnBpcGUoXG4gICAgICBtYXAobW9kZWwgPT4ge1xuICAgICAgICBpZiAoIW1vZGVsKSB7XG4gICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByb3BlcnR5ID09PSAncG9ydHMnICYmICFmaW5hbFBhdGg/LnByb3BlcnR5ICYmIHBhcmVudFBhdGggIT09IHBhdGgpIHtcbiAgICAgICAgICByZXR1cm4gbW9kZWwubGluZUl0ZW1zLmZpbHRlcigoeyBwb3J0IH0pID0+IHBvcnQgPT09IG5hbWUpID8/IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFttb2RlbF07XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgY2hpbGRyZW4kLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoY2hpbGRyZW4gPT4ge1xuICAgICAgdGhpcy5wcm9jZXNzQ2hpbGRyZW4oY2hpbGRyZW4pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzQ2hpbGRyZW4oY2hpbGRyZW46IGFueVtdKTogdm9pZCB7XG4gICAgdGhpcy5ydW50aW1lU2VydmljZS5tb2R1bGVSZWZzWzBdPy5pbmplY3Rvci5ydW5JbkNvbnRleHQoKCkgPT4ge1xuICAgICAgY29uc3QgcmVmcyA9IGNoaWxkcmVuLnJlZHVjZSgoYWNjOiBEaWN0aW9uYXJ5PENvbXBvbmVudFJlZjxFbnRpdHk+PiwgZGF0YSwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3Qga2V5ID0gU3RyaW5nKGRhdGE/LmlkID8/IFVVSUQuVVVJRCgpKTtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdSZWYgPSB0aGlzLnJlZnNba2V5XTtcblxuICAgICAgICBjb25zdCByZWYgPSBleGlzdGluZ1JlZiA/PyB0aGlzLmNyZWF0ZUNvbXBvbmVudChkYXRhLCBpbmRleCk7XG4gICAgICAgIGlmIChleGlzdGluZ1JlZikge1xuICAgICAgICAgIHRoaXMudXBkYXRlQ29tcG9uZW50KGV4aXN0aW5nUmVmLCBkYXRhLCBpbmRleCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVmID8geyAuLi5hY2MsIFtrZXldOiByZWYgfSA6IGFjYztcbiAgICAgIH0sIHt9KTtcblxuICAgICAgY29uc3QgZXhpc3RpbmdLZXlzID0gT2JqZWN0LmtleXModGhpcy5yZWZzKTtcbiAgICAgIGNvbnN0IG5ld0tleXMgPSBPYmplY3Qua2V5cyhyZWZzKTtcblxuICAgICAgcHVsbChleGlzdGluZ0tleXMsIC4uLm5ld0tleXMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgdGhpcy5kZXN0cm95Q29tcG9uZW50KGtleSk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5yZWZzID0gcmVmcztcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGFyZW50TGluZUl0ZW0kKHBhcmVudENvbXA6IEVsZW1lbnRSZW5kZXJlckNvbXBvbmVudCB8IG51bGwpOiBPYnNlcnZhYmxlPExpbmVJdGVtIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgcGFyZW50UmVmcyA9IE9iamVjdC52YWx1ZXMocGFyZW50Q29tcD8ucmVmcyA/PyB7fSk7XG4gICAgY29uc3QgcGFyZW50UmVmID0gcGFyZW50UmVmcy5maW5kKHJlZiA9PlxuICAgICAgKHJlZj8ubG9jYXRpb24ubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCk/LmNvbnRhaW5zKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSxcbiAgICApO1xuXG4gICAgbGV0IHBhcmVudE1vZGVsJDtcbiAgICBpZiAocGFyZW50UmVmPy5pbnN0YW5jZSBpbnN0YW5jZW9mIEVsZW1lbnRDb21wb25lbnQpIHtcbiAgICAgIHBhcmVudE1vZGVsJCA9IHBhcmVudFJlZj8uaW5zdGFuY2UubW9kZWwkO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJlbnRNb2RlbCQgPz8gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5nZXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ29tcG9uZW50KGRhdGE/OiB1bmtub3duLCBpbmRleD86IG51bWJlcik6IENvbXBvbmVudFJlZjxFbnRpdHk+IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMudHlwZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuZWw/LmNyZWF0ZUNvbXBvbmVudCh0aGlzLnR5cGUsIHsgaW5kZXggfSk7XG4gICAgdGhpcy5ydW50aW1lU2VydmljZS5jb21wb25lbnRSZWZzW3RoaXMubWV0YS5wYXRoXSA9IGNvbXBvbmVudFJlZjtcblxuICAgIGlmIChjb21wb25lbnRSZWYpIHtcbiAgICAgIGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnbmFtZScsIHRoaXMubWV0YS5uYW1lKTtcbiAgICAgIGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgncGF0aCcsIHRoaXMubWV0YS5wYXRoKTtcblxuICAgICAgaWYgKGNvbXBvbmVudFJlZi5pbnN0YW5jZSBpbnN0YW5jZW9mIEVsZW1lbnRDb21wb25lbnQpIHtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLm1vZGVsJC5uZXh0KGRhdGEpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb21wb25lbnRSZWY7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbXBvbmVudChyZWY6IENvbXBvbmVudFJlZjxFbnRpdHk+LCBkYXRhOiB1bmtub3duLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHJlZi5pbnN0YW5jZSBpbnN0YW5jZW9mIEVsZW1lbnRDb21wb25lbnQpIHtcbiAgICAgIHJlZi5pbnN0YW5jZS5tb2RlbCQubmV4dChkYXRhKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5lbCAmJiB0aGlzLmVsLmluZGV4T2YocmVmLmhvc3RWaWV3KSAhPT0gaW5kZXgpIHtcbiAgICAgIHRoaXMuZWwubW92ZShyZWYuaG9zdFZpZXcsIGluZGV4KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lDb21wb25lbnQoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnJlZnNba2V5XT8uZGVzdHJveSgpO1xuICAgIGRlbGV0ZSB0aGlzLnJlZnNba2V5XTtcbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveUNvbXBvbmVudHMoKTogdm9pZCB7XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLnJlZnMpLmZvckVhY2gocmVmID0+IHJlZj8uZGVzdHJveSgpKTtcbiAgICB0aGlzLnJlZnMgPSB7fTtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNlbD48L25nLXRlbXBsYXRlPlxuIl19
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY29tcG9uZW50cy9lbGVtZW50LXJlbmRlcmVyL2VsZW1lbnQtcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL2NvbXBvbmVudHMvZWxlbWVudC1yZW5kZXJlci9lbGVtZW50LXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxLQUFLLEVBSUwsU0FBUyxFQUNULGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEMsT0FBTyxFQUFjLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7OztBQVN4RCxNQUFNLE9BQU8sd0JBQXdCO0lBU25DLFlBQ1UsY0FBOEIsRUFDOUIsY0FBcUMsRUFDckMsaUJBQW9DLEVBQ3BDLEdBQXNCO1FBSHRCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxRQUFHLEdBQUgs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QUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRXpDLElBQUk7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFR5cGUsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVVUlEIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5LCBpc0FycmF5LCBwdWxsIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi4vLi4vZW5naW5lL21vZGVscy9lbnRpdHknO1xuaW1wb3J0IHsgUnVudGltZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9tb2R1bGVzL3J1bnRpbWUvc2VydmljZXMvcnVudGltZS5zZXJ2aWNlJztcbmltcG9ydCB7IEVsZW1lbnRDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VsZW1lbnQtY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IElPUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW8tcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBFbGVtZW50TWV0YWRhdGEgfSBmcm9tICcuLi8uLi90eXBlcy9jb21tb24udHlwZXMnO1xuaW1wb3J0IHsgRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4uL2VsZW1lbnQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmwtY21zLWVsZW1lbnQtcmVuZGVyZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxlbWVudC1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZW1lbnQtcmVuZGVyZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW0VsZW1lbnRDb250ZXh0U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIEVsZW1lbnRSZW5kZXJlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnZWwnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgZWw/OiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBtZXRhITogRWxlbWVudE1ldGFkYXRhO1xuXG4gIHByaXZhdGUgdHlwZT86IFR5cGU8RW50aXR5PjtcbiAgcHJpdmF0ZSByZWZzOiBEaWN0aW9uYXJ5PENvbXBvbmVudFJlZjxFbnRpdHk+IHwgdW5kZWZpbmVkPiA9IHt9O1xuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJ1bnRpbWVTZXJ2aWNlOiBSdW50aW1lU2VydmljZSxcbiAgICBwcml2YXRlIGVsZW1lbnRDb250ZXh0OiBFbGVtZW50Q29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpb1Byb3ZpZGVyU2VydmljZTogSU9Qcm92aWRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1ldGEuaXNTaGFyZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmVsZW1lbnRDb250ZXh0Lm1ldGFkYXRhID0gdGhpcy5tZXRhO1xuICAgIHRoaXMudHlwZSA9IHRoaXMubWV0YS5wYXRoID8gdGhpcy5ydW50aW1lU2VydmljZS5jb21wb25lbnRUeXBlc1t0aGlzLm1ldGEucGF0aF0gOiB1bmRlZmluZWQ7XG5cbiAgICB0aGlzLmNyZWF0ZUNvbXBvbmVudHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3lDb21wb25lbnRzKCk7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDb21wb25lbnRzKCk6IHZvaWQge1xuICAgIGNvbnN0IG1vZGVsTWV0YSA9IHRoaXMubWV0YS5tb2RlbDtcblxuICAgIGlmICghbW9kZWxNZXRhKSB7XG4gICAgICB0aGlzLnJlZnNbVVVJRC5VVUlEKCldID0gdGhpcy5jcmVhdGVDb21wb25lbnQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobW9kZWxNZXRhLnBhdGgpIHtcbiAgICAgIHRoaXMuY3JlYXRlRnJvbVBhdGgobW9kZWxNZXRhLnBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRnJvbVBhdGgocGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgYXJyYXkkID0gdGhpcy5pb1Byb3ZpZGVyU2VydmljZS5jb25uZWN0KHRoaXMubWV0YSwgJ2NoaWxkcmVuJCcsIHBhdGgpO1xuXG4gICAgYXJyYXkkPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKGNoaWxkcmVuID0+IHtcbiAgICAgIGlmICghaXNBcnJheShjaGlsZHJlbikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnByb2Nlc3NDaGlsZHJlbihjaGlsZHJlbik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NDaGlsZHJlbihjaGlsZHJlbjogYW55W10pOiB2b2lkIHtcbiAgICB0aGlzLnJ1bnRpbWVTZXJ2aWNlLm1vZHVsZVJlZnNbMF0/LmluamVjdG9yLnJ1bkluQ29udGV4dCgoKSA9PiB7XG4gICAgICBjb25zdCByZWZzID0gY2hpbGRyZW4ucmVkdWNlKChhY2M6IERpY3Rpb25hcnk8Q29tcG9uZW50UmVmPEVudGl0eT4+LCBkYXRhLCBpbmRleCkgPT4ge1xuICAgICAgICBjb25zdCBrZXkgPSBTdHJpbmcoZGF0YT8uaWQgPz8gVVVJRC5VVUlEKCkpO1xuICAgICAgICBjb25zdCBleGlzdGluZ1JlZiA9IHRoaXMucmVmc1trZXldO1xuXG4gICAgICAgIGNvbnN0IHJlZiA9IGV4aXN0aW5nUmVmID8/IHRoaXMuY3JlYXRlQ29tcG9uZW50KGRhdGEsIGluZGV4KTtcbiAgICAgICAgaWYgKGV4aXN0aW5nUmVmKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVDb21wb25lbnQoZXhpc3RpbmdSZWYsIGRhdGEsIGluZGV4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZWYgPyB7IC4uLmFjYywgW2tleV06IHJlZiB9IDogYWNjO1xuICAgICAgfSwge30pO1xuXG4gICAgICBjb25zdCBleGlzdGluZ0tleXMgPSBPYmplY3Qua2V5cyh0aGlzLnJlZnMpO1xuICAgICAgY29uc3QgbmV3S2V5cyA9IE9iamVjdC5rZXlzKHJlZnMpO1xuXG4gICAgICBwdWxsKGV4aXN0aW5nS2V5cywgLi4ubmV3S2V5cykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICB0aGlzLmRlc3Ryb3lDb21wb25lbnQoa2V5KTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnJlZnMgPSByZWZzO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDb21wb25lbnQoZGF0YT86IHVua25vd24sIGluZGV4PzogbnVtYmVyKTogQ29tcG9uZW50UmVmPEVudGl0eT4gfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy50eXBlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5lbD8uY3JlYXRlQ29tcG9uZW50KHRoaXMudHlwZSwgeyBpbmRleCB9KTtcbiAgICB0aGlzLnJ1bnRpbWVTZXJ2aWNlLmNvbXBvbmVudFJlZnNbdGhpcy5tZXRhLnBhdGhdID0gY29tcG9uZW50UmVmO1xuXG4gICAgaWYgKGNvbXBvbmVudFJlZikge1xuICAgICAgY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCduYW1lJywgdGhpcy5tZXRhLm5hbWUpO1xuICAgICAgY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdwYXRoJywgdGhpcy5tZXRhLnBhdGgpO1xuXG4gICAgICBpZiAoY29tcG9uZW50UmVmLmluc3RhbmNlIGluc3RhbmNlb2YgRWxlbWVudENvbXBvbmVudCkge1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UubW9kZWwkLm5leHQoZGF0YSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29tcG9uZW50KHJlZjogQ29tcG9uZW50UmVmPEVudGl0eT4sIGRhdGE6IHVua25vd24sIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAocmVmLmluc3RhbmNlIGluc3RhbmNlb2YgRWxlbWVudENvbXBvbmVudCkge1xuICAgICAgcmVmLmluc3RhbmNlLm1vZGVsJC5uZXh0KGRhdGEpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmVsICYmIHRoaXMuZWwuaW5kZXhPZihyZWYuaG9zdFZpZXcpICE9PSBpbmRleCkge1xuICAgICAgdGhpcy5lbC5tb3ZlKHJlZi5ob3N0VmlldywgaW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveUNvbXBvbmVudChrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucmVmc1trZXldPy5kZXN0cm95KCk7XG4gICAgZGVsZXRlIHRoaXMucmVmc1trZXldO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95Q29tcG9uZW50cygpOiB2b2lkIHtcbiAgICBPYmplY3QudmFsdWVzKHRoaXMucmVmcykuZm9yRWFjaChyZWYgPT4gcmVmPy5kZXN0cm95KCkpO1xuICAgIHRoaXMucmVmcyA9IHt9O1xuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI2VsPjwvbmctdGVtcGxhdGU+XG4iXX0=