@mediusinc/mng-commons 5.5.0 → 6.0.0-rc.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 (267) hide show
  1. package/core/action/action-parameters.model.d.ts +4 -4
  2. package/core/data-providers/base.data-provider.d.ts +4 -7
  3. package/core/data-providers/lookup.data-provider.d.ts +2 -2
  4. package/core/descriptors/model.descriptor.d.ts +1 -7
  5. package/core/descriptors/tableview.descriptor.d.ts +5 -5
  6. package/core/helpers/route.d.ts +0 -1
  7. package/core/helpers/type-helpers.d.ts +8 -0
  8. package/core/index.d.ts +0 -3
  9. package/core/models/menu.model.d.ts +0 -4
  10. package/core/services/commons.service.d.ts +0 -32
  11. package/core/services/tokens/module-config.token.d.ts +0 -28
  12. package/esm2022/core/action/action-parameters.model.mjs +1 -1
  13. package/esm2022/core/data-providers/base.data-provider.mjs +2 -4
  14. package/esm2022/core/data-providers/lookup.data-provider.mjs +1 -1
  15. package/esm2022/core/descriptors/model.descriptor.mjs +1 -1
  16. package/esm2022/core/descriptors/tableview.descriptor.mjs +1 -1
  17. package/esm2022/core/helpers/type-helpers.mjs +1 -1
  18. package/esm2022/core/index.mjs +1 -4
  19. package/esm2022/core/models/menu.model.mjs +1 -1
  20. package/esm2022/core/services/commons.service.mjs +1 -34
  21. package/esm2022/core/services/tokens/module-config.token.mjs +1 -1
  22. package/esm2022/filter/descriptors/filter-lookup.descriptor.mjs +5 -86
  23. package/esm2022/filter/descriptors/filter.descriptor.mjs +7 -29
  24. package/esm2022/form/api/data-providers/lookup-data-provider.factory.mjs +14 -41
  25. package/esm2022/form/api/data-providers/lookup.data-provider.mjs +3 -3
  26. package/esm2022/model/class/data-providers/base-from-class-data-provider.factory.mjs +5 -0
  27. package/esm2022/model/class/descriptors/model-class.descriptor.mjs +28 -0
  28. package/esm2022/model/class/descriptors/type-class.descriptor.mjs +6 -0
  29. package/esm2022/model/class/helpers/model.mjs +53 -0
  30. package/esm2022/model/class/index.mjs +8 -0
  31. package/esm2022/model/class/mediusinc-mng-commons-model-class.mjs +5 -0
  32. package/esm2022/model/data-providers/base-from-type-data-provider.factory.mjs +11 -6
  33. package/esm2022/model/descriptors/model.descriptor.mjs +11 -54
  34. package/esm2022/model/descriptors/type.descriptor.mjs +2 -10
  35. package/esm2022/model/index.mjs +1 -2
  36. package/esm2022/table/api/class/class-table-attribute-converter.mjs +80 -0
  37. package/esm2022/table/api/class/class-table-attribute.model.mjs +2 -0
  38. package/esm2022/table/api/class/class-table-data-provider.factory.mjs +5 -0
  39. package/esm2022/table/api/class/class-table-descriptor-helpers.mjs +99 -0
  40. package/esm2022/table/api/class/class-table-descriptor.factory.mjs +21 -0
  41. package/esm2022/table/api/class/index.mjs +6 -0
  42. package/esm2022/table/api/class/mediusinc-mng-commons-table-api-class.mjs +5 -0
  43. package/esm2022/table/api/data-providers/table-data-provider.factory.mjs +14 -41
  44. package/esm2022/table/api/data-providers/table.data-provider.mjs +3 -9
  45. package/esm2022/table/api/descriptors/column.descriptor.mjs +8 -3
  46. package/esm2022/table/api/descriptors/table-descriptor.factory.mjs +10 -77
  47. package/esm2022/table/api/descriptors/table.descriptor.mjs +3 -3
  48. package/esm2022/table/api/helpers/column-converter.mjs +25 -0
  49. package/esm2022/table/api/helpers/table-data-provider-descriptor-convert.mjs +4 -4
  50. package/esm2022/table/api/index.mjs +2 -4
  51. package/esm2022/table/api/models/table-columns.model.mjs +1 -1
  52. package/esm2022/table/components/column-value/column-value.component.mjs +4 -3
  53. package/esm2022/table/components/filter/filter-active-tag/filter-active-tag.component.mjs +3 -3
  54. package/esm2022/table/components/filter/filter-form/filter-form.component.mjs +5 -5
  55. package/esm2022/table/components/table/table.component.mjs +6 -8
  56. package/esm2022/tableview/action/components/action/action.component.mjs +1 -1
  57. package/esm2022/tableview/action/components/editor/injector-context/action-editor-injector-context.component.mjs +10 -6
  58. package/esm2022/tableview/action/helpers/action-execution.mjs +1 -1
  59. package/esm2022/tableview/action/models/execution/action-context.model.mjs +1 -1
  60. package/esm2022/tableview/action/models/execution/action-instance.model.mjs +1 -1
  61. package/esm2022/tableview/action/services/action-executor.service.mjs +11 -11
  62. package/esm2022/tableview/action/services/data-provider-executor.service.mjs +18 -3
  63. package/esm2022/tableview/api/action/descriptors/action-confirmation.descriptor.mjs +1 -1
  64. package/esm2022/tableview/api/action/descriptors/action-descriptor.factory.mjs +13 -104
  65. package/esm2022/tableview/api/action/descriptors/action-editor-descriptor.factory.mjs +15 -62
  66. package/esm2022/tableview/api/action/descriptors/action-editor.descriptor.mjs +3 -63
  67. package/esm2022/tableview/api/action/descriptors/action-link-descriptor.factory.mjs +17 -30
  68. package/esm2022/tableview/api/action/descriptors/action-link.descriptor.mjs +1 -1
  69. package/esm2022/tableview/api/action/descriptors/action.descriptor.mjs +6 -29
  70. package/esm2022/tableview/api/action/descriptors/editor-action-descriptor.factory.mjs +21 -0
  71. package/esm2022/tableview/api/action/descriptors/editor-action-editor-descriptor.factory.mjs +21 -0
  72. package/esm2022/tableview/api/action/descriptors/table-action-descriptor.factory.mjs +37 -0
  73. package/esm2022/tableview/api/action/descriptors/table-action-editor-descriptor.factory.mjs +40 -0
  74. package/esm2022/tableview/api/action/helpers/data-provider-executors.mjs +25 -5
  75. package/esm2022/tableview/api/action/models/action-descriptor.types.mjs +1 -1
  76. package/esm2022/tableview/api/action/models/action-error.model.mjs +1 -1
  77. package/esm2022/tableview/api/action/models/execution/action-context-validation.model.mjs +1 -1
  78. package/esm2022/tableview/api/action/models/execution/action-context.model.mjs +1 -1
  79. package/esm2022/tableview/api/action/models/execution/action-instance.model.mjs +1 -1
  80. package/esm2022/tableview/api/action/models/tableview-action-default-categories.model.mjs +6 -6
  81. package/esm2022/tableview/api/action/services/data-provider-executor.service.mjs +3 -3
  82. package/esm2022/tableview/api/class/editor/class-editor-attribute-converter.mjs +85 -0
  83. package/esm2022/tableview/api/class/editor/class-editor-attribute.model.mjs +2 -0
  84. package/esm2022/tableview/api/class/editor/class-editor-data-provider.factory.mjs +5 -0
  85. package/esm2022/tableview/api/class/editor/class-editor-descriptor-helpers.mjs +95 -0
  86. package/esm2022/tableview/api/class/editor/class-editor-descriptor.factory.mjs +21 -0
  87. package/esm2022/tableview/api/class/index.mjs +13 -0
  88. package/esm2022/tableview/api/class/mediusinc-mng-commons-tableview-api-class.mjs +5 -0
  89. package/esm2022/tableview/api/class/tableview/class-tableview-attribute-converter.mjs +35 -0
  90. package/esm2022/tableview/api/class/tableview/class-tableview-attribute.model.mjs +2 -0
  91. package/esm2022/tableview/api/class/tableview/class-tableview-data-provider.factory.mjs +5 -0
  92. package/esm2022/tableview/api/class/tableview/class-tableview-descriptor-helpers.mjs +111 -0
  93. package/esm2022/tableview/api/class/tableview/class-tableview-descriptor.factory.mjs +26 -0
  94. package/esm2022/tableview/api/editor/data-providers/editor-data-provider.factory.mjs +14 -32
  95. package/esm2022/tableview/api/editor/data-providers/editor.data-provider.mjs +40 -7
  96. package/esm2022/tableview/api/editor/descriptors/editor-descriptor.factory.mjs +7 -73
  97. package/esm2022/tableview/api/editor/descriptors/editor.descriptor.mjs +49 -134
  98. package/esm2022/tableview/api/editor/descriptors/field-base.descriptor.mjs +11 -2
  99. package/esm2022/tableview/api/editor/descriptors/field-lookup.descriptor.mjs +3 -5
  100. package/esm2022/tableview/api/editor/descriptors/field-many.descriptor.mjs +2 -18
  101. package/esm2022/tableview/api/editor/descriptors/wrappers/editor-descriptor-nested-object-wrapper.mjs +51 -0
  102. package/esm2022/tableview/api/editor/models/editor-fields.model.mjs +1 -1
  103. package/esm2022/tableview/api/editor/models/form-editor.event.mjs +1 -1
  104. package/esm2022/tableview/api/index.mjs +8 -8
  105. package/esm2022/tableview/api/tableview/data-providers/tableview-data-provider.factory.mjs +13 -51
  106. package/esm2022/tableview/api/tableview/data-providers/tableview.data-provider.mjs +19 -11
  107. package/esm2022/tableview/api/tableview/descriptors/tableview-descriptor.factory.mjs +19 -96
  108. package/esm2022/tableview/api/tableview/descriptors/tableview.descriptor.mjs +29 -182
  109. package/esm2022/tableview/api/tableview/helpers/tableview-create.mjs +8 -6
  110. package/esm2022/tableview/api/tableview/helpers/tableview-data-provider-descriptor-convert.mjs +4 -4
  111. package/esm2022/tableview/api/tableview/helpers/tableview-default-actions.mjs +117 -99
  112. package/esm2022/tableview/api/tableview/helpers/tableview-input-builder.mjs +164 -7
  113. package/esm2022/tableview/api/tableview/models/tableview-descriptor-fields-manage-helper.type.mjs +2 -0
  114. package/esm2022/tableview/api/tableview/models/tableview-descriptor-helper.type.mjs +2 -0
  115. package/esm2022/tableview/api/tableview/models/tableview-input.model.mjs +1 -1
  116. package/esm2022/tableview/api/tableview/models/tableview-route.model.mjs +1 -1
  117. package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +6 -6
  118. package/esm2022/tableview/editor/helpers/editor-field.mjs +3 -3
  119. package/esm2022/tableview/editor/helpers/editor-formly.mjs +4 -4
  120. package/esm2022/tableview/editor/helpers/field-create.mjs +21 -0
  121. package/esm2022/tableview/index.mjs +3 -2
  122. package/esm2022/tableview/tableview/components/route/tableview-route.component.mjs +1 -1
  123. package/esm2022/tableview/tableview/components/tableview/tableview.component.mjs +3 -1
  124. package/fesm2022/mediusinc-mng-commons-core.mjs +687 -781
  125. package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
  126. package/fesm2022/mediusinc-mng-commons-filter.mjs +10 -113
  127. package/fesm2022/mediusinc-mng-commons-filter.mjs.map +1 -1
  128. package/fesm2022/mediusinc-mng-commons-form-api.mjs +15 -42
  129. package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
  130. package/fesm2022/mediusinc-mng-commons-model-class.mjs +97 -0
  131. package/fesm2022/mediusinc-mng-commons-model-class.mjs.map +1 -0
  132. package/fesm2022/mediusinc-mng-commons-model.mjs +23 -137
  133. package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
  134. package/fesm2022/mediusinc-mng-commons-table-api-class.mjs +204 -0
  135. package/fesm2022/mediusinc-mng-commons-table-api-class.mjs.map +1 -0
  136. package/fesm2022/mediusinc-mng-commons-table-api.mjs +55 -319
  137. package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
  138. package/fesm2022/mediusinc-mng-commons-table.mjs +14 -15
  139. package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -1
  140. package/fesm2022/mediusinc-mng-commons-tableview-api-class.mjs +367 -0
  141. package/fesm2022/mediusinc-mng-commons-tableview-api-class.mjs.map +1 -0
  142. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +715 -1298
  143. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
  144. package/fesm2022/mediusinc-mng-commons-tableview.mjs +67 -27
  145. package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
  146. package/filter/descriptors/filter-lookup.descriptor.d.ts +1 -26
  147. package/filter/descriptors/filter.descriptor.d.ts +5 -12
  148. package/form/api/data-providers/lookup-data-provider.factory.d.ts +17 -20
  149. package/form/api/data-providers/lookup.data-provider.d.ts +3 -3
  150. package/model/class/README.md +8 -0
  151. package/model/class/data-providers/base-from-class-data-provider.factory.d.ts +3 -0
  152. package/model/class/descriptors/model-class.descriptor.d.ts +12 -0
  153. package/model/class/descriptors/type-class.descriptor.d.ts +3 -0
  154. package/model/{helpers → class/helpers}/model.d.ts +1 -2
  155. package/model/class/index.d.ts +4 -0
  156. package/model/data-providers/base-from-type-data-provider.factory.d.ts +13 -6
  157. package/model/descriptors/model.descriptor.d.ts +12 -27
  158. package/model/descriptors/type.descriptor.d.ts +0 -5
  159. package/model/index.d.ts +0 -1
  160. package/package.json +19 -1
  161. package/table/api/class/README.md +10 -0
  162. package/table/api/{helpers/class-attribute-converter.d.ts → class/class-table-attribute-converter.d.ts} +2 -9
  163. package/table/api/{models → class}/class-table-attribute.model.d.ts +1 -1
  164. package/table/api/class/class-table-data-provider.factory.d.ts +4 -0
  165. package/table/api/{helpers/table-descriptor-helpers.d.ts → class/class-table-descriptor-helpers.d.ts} +2 -4
  166. package/table/api/class/class-table-descriptor.factory.d.ts +11 -0
  167. package/table/api/class/index.d.ts +5 -0
  168. package/table/api/data-providers/table-data-provider.factory.d.ts +17 -20
  169. package/table/api/data-providers/table.data-provider.d.ts +4 -12
  170. package/table/api/descriptors/column.descriptor.d.ts +5 -2
  171. package/table/api/descriptors/table-descriptor.factory.d.ts +3 -39
  172. package/table/api/descriptors/table.descriptor.d.ts +3 -3
  173. package/table/api/helpers/column-converter.d.ts +7 -0
  174. package/table/api/helpers/table-data-provider-descriptor-convert.d.ts +3 -3
  175. package/table/api/index.d.ts +1 -3
  176. package/table/api/models/table-columns.model.d.ts +2 -2
  177. package/table/components/column-value/column-value.component.d.ts +1 -0
  178. package/table/components/filter/filter-active-tag/filter-active-tag.component.d.ts +1 -1
  179. package/table/components/filter/filter-form/filter-form.component.d.ts +1 -1
  180. package/table/components/filter/filter-overlay-with-tag/filter-overlay-with-tag.component.d.ts +1 -1
  181. package/table/components/table/table.component.d.ts +0 -9
  182. package/tableview/action/components/action/action.component.d.ts +2 -2
  183. package/tableview/action/components/editor/action-editor.component.d.ts +1 -1
  184. package/tableview/action/components/editor/injector-context/action-editor-injector-context.component.d.ts +6 -5
  185. package/tableview/action/components/localization/data-language-dropdown.component.d.ts +3 -3
  186. package/tableview/action/components/table/action-table.component.d.ts +3 -3
  187. package/tableview/action/helpers/action-execution.d.ts +1 -1
  188. package/tableview/action/models/execution/action-context.model.d.ts +3 -3
  189. package/tableview/action/models/execution/action-instance.model.d.ts +5 -5
  190. package/tableview/action/services/action-executor.service.d.ts +7 -7
  191. package/tableview/action/services/data-provider-executor.service.d.ts +16 -16
  192. package/tableview/action/services/view-container.service.d.ts +1 -1
  193. package/tableview/api/action/descriptors/action-confirmation.descriptor.d.ts +1 -1
  194. package/tableview/api/action/descriptors/action-descriptor.factory.d.ts +20 -31
  195. package/tableview/api/action/descriptors/action-editor-descriptor.factory.d.ts +18 -25
  196. package/tableview/api/action/descriptors/action-editor.descriptor.d.ts +22 -40
  197. package/tableview/api/action/descriptors/action-link-descriptor.factory.d.ts +21 -13
  198. package/tableview/api/action/descriptors/action-link.descriptor.d.ts +3 -3
  199. package/tableview/api/action/descriptors/action.descriptor.d.ts +31 -33
  200. package/tableview/api/action/descriptors/editor-action-descriptor.factory.d.ts +21 -0
  201. package/tableview/api/action/descriptors/editor-action-editor-descriptor.factory.d.ts +21 -0
  202. package/tableview/api/action/descriptors/table-action-descriptor.factory.d.ts +36 -0
  203. package/tableview/api/action/descriptors/table-action-editor-descriptor.factory.d.ts +40 -0
  204. package/tableview/api/action/helpers/data-provider-executors.d.ts +13 -8
  205. package/tableview/api/action/models/action-descriptor.types.d.ts +2 -2
  206. package/tableview/api/action/models/action-error.model.d.ts +1 -1
  207. package/tableview/api/action/models/execution/action-context-validation.model.d.ts +2 -2
  208. package/tableview/api/action/models/execution/action-context.model.d.ts +2 -2
  209. package/tableview/api/action/models/execution/action-instance.model.d.ts +1 -1
  210. package/tableview/api/action/models/tableview-action-default-categories.model.d.ts +5 -5
  211. package/tableview/api/action/services/data-provider-executor.service.d.ts +26 -25
  212. package/tableview/api/class/README.md +13 -0
  213. package/tableview/api/{editor/helpers/class-attribute-converter.d.ts → class/editor/class-editor-attribute-converter.d.ts} +2 -2
  214. package/tableview/api/{editor/models/class-tableview-attribute.model.d.ts → class/editor/class-editor-attribute.model.d.ts} +1 -1
  215. package/tableview/api/class/editor/class-editor-data-provider.factory.d.ts +4 -0
  216. package/tableview/api/{editor/helpers/editor-descriptor-helpers.d.ts → class/editor/class-editor-descriptor-helpers.d.ts} +2 -5
  217. package/tableview/api/class/editor/class-editor-descriptor.factory.d.ts +11 -0
  218. package/tableview/api/class/index.d.ts +10 -0
  219. package/tableview/api/{tableview/helpers/class-attribute-converter.d.ts → class/tableview/class-tableview-attribute-converter.d.ts} +1 -1
  220. package/tableview/api/{tableview/models → class/tableview}/class-tableview-attribute.model.d.ts +2 -2
  221. package/tableview/api/class/tableview/class-tableview-data-provider.factory.d.ts +4 -0
  222. package/tableview/api/{tableview/helpers/tableview-descriptor-helpers.d.ts → class/tableview/class-tableview-descriptor-helpers.d.ts} +1 -2
  223. package/tableview/api/class/tableview/class-tableview-descriptor.factory.d.ts +12 -0
  224. package/tableview/api/editor/data-providers/editor-data-provider.factory.d.ts +17 -16
  225. package/tableview/api/editor/data-providers/editor.data-provider.d.ts +64 -29
  226. package/tableview/api/editor/descriptors/editor-descriptor.factory.d.ts +5 -38
  227. package/tableview/api/editor/descriptors/editor.descriptor.d.ts +48 -112
  228. package/tableview/api/editor/descriptors/field-base.descriptor.d.ts +8 -1
  229. package/tableview/api/editor/descriptors/field-lookup.descriptor.d.ts +2 -3
  230. package/tableview/api/editor/descriptors/field-many.descriptor.d.ts +3 -11
  231. package/tableview/api/editor/descriptors/wrappers/editor-descriptor-nested-object-wrapper.d.ts +25 -0
  232. package/tableview/api/editor/models/editor-fields.model.d.ts +25 -21
  233. package/tableview/api/editor/models/form-editor.event.d.ts +0 -4
  234. package/tableview/api/index.d.ts +7 -6
  235. package/tableview/api/tableview/data-providers/tableview-data-provider.factory.d.ts +20 -25
  236. package/tableview/api/tableview/data-providers/tableview.data-provider.d.ts +22 -22
  237. package/tableview/api/tableview/descriptors/tableview-descriptor.factory.d.ts +20 -50
  238. package/tableview/api/tableview/descriptors/tableview.descriptor.d.ts +69 -163
  239. package/tableview/api/tableview/helpers/tableview-create.d.ts +18 -5
  240. package/tableview/api/tableview/helpers/tableview-data-provider-descriptor-convert.d.ts +2 -2
  241. package/tableview/api/tableview/helpers/tableview-default-actions.d.ts +73 -20
  242. package/tableview/api/tableview/helpers/tableview-input-builder.d.ts +87 -9
  243. package/tableview/api/tableview/models/tableview-descriptor-fields-manage-helper.type.d.ts +9 -0
  244. package/tableview/api/tableview/models/tableview-descriptor-helper.type.d.ts +2 -0
  245. package/tableview/api/tableview/models/tableview-input.model.d.ts +1 -1
  246. package/tableview/api/tableview/models/tableview-route.model.d.ts +1 -1
  247. package/tableview/editor/helpers/field-create.d.ts +9 -0
  248. package/tableview/index.d.ts +2 -1
  249. package/tableview/tableview/components/route/tableview-route.component.d.ts +1 -1
  250. package/tableview/tableview/components/tableview/tableview.component.d.ts +6 -6
  251. package/version-info.json +6 -6
  252. package/core/components/pages/error/error.page.component.d.ts +0 -11
  253. package/core/components/pages/not-found/not-found.page.component.d.ts +0 -11
  254. package/core/data-providers/base-data-provider.factory.d.ts +0 -13
  255. package/esm2022/core/components/pages/error/error.page.component.mjs +0 -24
  256. package/esm2022/core/components/pages/not-found/not-found.page.component.mjs +0 -24
  257. package/esm2022/core/data-providers/base-data-provider.factory.mjs +0 -28
  258. package/esm2022/model/helpers/model.mjs +0 -71
  259. package/esm2022/table/api/helpers/class-attribute-converter.mjs +0 -104
  260. package/esm2022/table/api/helpers/table-descriptor-helpers.mjs +0 -98
  261. package/esm2022/table/api/models/class-table-attribute.model.mjs +0 -2
  262. package/esm2022/tableview/api/editor/helpers/class-attribute-converter.mjs +0 -85
  263. package/esm2022/tableview/api/editor/helpers/editor-descriptor-helpers.mjs +0 -95
  264. package/esm2022/tableview/api/editor/models/class-tableview-attribute.model.mjs +0 -2
  265. package/esm2022/tableview/api/tableview/helpers/class-attribute-converter.mjs +0 -34
  266. package/esm2022/tableview/api/tableview/helpers/tableview-descriptor-helpers.mjs +0 -110
  267. package/esm2022/tableview/api/tableview/models/class-tableview-attribute.model.mjs +0 -2
@@ -85,4 +85,4 @@ export class ActionConfirmationDescriptor {
85
85
  return descriptor;
86
86
  }
87
87
  }
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWNvbmZpcm1hdGlvbi5kZXNjcmlwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L2FwaS9zcmMvYWN0aW9uL2Rlc2NyaXB0b3JzL2FjdGlvbi1jb25maXJtYXRpb24uZGVzY3JpcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFDLHNCQUFzQixFQUFFLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFJM0YsTUFBTSxPQUFPLDRCQUE0QjtJQVlyQztRQUpRLG1CQUFjLEdBQUcsSUFBSSxDQUFDLENBQUMsb0RBQW9EO1FBQzNFLGNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxpQ0FBaUM7UUFJdkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLHNCQUFzQixFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3pJLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxzQkFBc0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUMxSixJQUFJLENBQUMsS0FBSyxHQUFHLDRCQUE0QixDQUFDO0lBQzlDLENBQUM7SUFFTSxRQUFRLENBQUMsSUFBYTtRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQXFCO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxXQUFXLENBQUMsT0FBdUI7UUFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGdCQUFnQixDQUFDLHNCQUE4QztRQUNsRSxJQUFJLENBQUMsYUFBYSxHQUFHLHNCQUFzQixDQUFDO1FBQzVDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxzQkFBK0M7UUFDbkUsSUFBSSxDQUFDLGFBQWEsR0FBRyxzQkFBc0IsQ0FBQztRQUM1QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGlCQUFpQixDQUFDLGFBQXNCO1FBQzNDLElBQUksYUFBYSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxZQUFZLENBQUMsUUFBaUI7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLDhCQUE4QixDQUFDLDBCQUE0RDtRQUM5RixJQUFJLENBQUMsMkJBQTJCLEdBQUcsMEJBQTBCLENBQUM7UUFDOUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsYUFBYTtRQUNwQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVywwQkFBMEI7UUFDakMsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVNLElBQUk7UUFDUCxNQUFNLFVBQVUsR0FBRyxJQUFJLDRCQUE0QixFQUFTLENBQUM7UUFDN0QsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzlCLFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNoQyxVQUFVLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDcEMsVUFBVSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzlDLFVBQVUsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUM5QyxVQUFVLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDaEQsVUFBVSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3RDLFVBQVUsQ0FBQywyQkFBMkIsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUM7UUFDMUUsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25maXJtYXRpb259IGZyb20gJ3ByaW1lbmcvYXBpJztcblxuaW1wb3J0IHtTdHlsZUxldmVsRW51bX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7QWN0aW9uQnV0dG9uRGVzY3JpcHRvciwgQnV0dG9uU3R5bGVCdWlsZGVyfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2Zvcm0vYXBpJztcblxuaW1wb3J0IHtJQWN0aW9uQ29udGV4dH0gZnJvbSAnLi4vbW9kZWxzL2V4ZWN1dGlvbi9hY3Rpb24tY29udGV4dC5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25Db25maXJtYXRpb25EZXNjcmlwdG9yPE1vZGVsPiB7XG4gICAgcHJpdmF0ZSBfaWNvbj86IHN0cmluZzsgLy8gSWNvbiB0byBkaXNwbGF5IG5leHQgdG8gbWVzc2FnZS5cbiAgICBwcml2YXRlIF90aXRsZT86IHN0cmluZyB8IG51bGw7IC8vIFRyYW5zbGF0aW9uIGZvciB0aXRsZSB0ZXh0IG9mIHRoZSBkaWFsb2cuXG4gICAgcHJpdmF0ZSBfbWVzc2FnZT86IHN0cmluZyB8IG51bGw7IC8vIFRyYW5zbGF0aW9uIGZvciBib2R5IHRleHQgb2YgdGhlIGRpYWxvZy5cblxuICAgIHByaXZhdGUgX2FjY2VwdEJ1dHRvbjogQWN0aW9uQnV0dG9uRGVzY3JpcHRvcjtcbiAgICBwcml2YXRlIF9yZWplY3RCdXR0b24/OiBBY3Rpb25CdXR0b25EZXNjcmlwdG9yO1xuXG4gICAgcHJpdmF0ZSBfY2xvc2VPbkVzY2FwZSA9IHRydWU7IC8vIERlZmluZXMgaWYgZGlhbG9nIGNsb3NlcyB3aGVuIGVzYyBrZXkgaXMgcHJlc3NlZC5cbiAgICBwcml2YXRlIF9jbG9zYWJsZSA9IHRydWU7IC8vIERlZmluZXMgaWYgZGlhbG9nIGlzIGNsb3NhYmxlLlxuICAgIHByaXZhdGUgX3J1bkNvbmZpcm1hdGlvbkNvbmZpZ01hcEZuPzogQ29uZmlndXJhdGlvbkNvbmZpZ01hcEZuPE1vZGVsPjsgLy9mdW5jdGlvbiB1c2VkIHRvIGdlbmVyYXRlIHRoZSBjb25maXJtYXRpb24gZGlhbG9ndWUuICoqV0FSTklORyoqIGNoYW5naW5nIHRoZSAqYWNjZXB0KiBhbmQgKnJlamVjdCogbWV0aG9kcyBvZiB0aGUgKmNvbmZpcm1Db25maWcqIHBhcmFtZXRlciBtYXkgbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW91clxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuX2FjY2VwdEJ1dHRvbiA9IG5ldyBBY3Rpb25CdXR0b25EZXNjcmlwdG9yKCkud2l0aEljb24oJ3BpIHBpLWNoZWNrJykud2l0aFN0eWxlQ2xhc3MobmV3IEJ1dHRvblN0eWxlQnVpbGRlcihTdHlsZUxldmVsRW51bS5EZWZhdWx0KSk7XG4gICAgICAgIHRoaXMuX3JlamVjdEJ1dHRvbiA9IG5ldyBBY3Rpb25CdXR0b25EZXNjcmlwdG9yKCkud2l0aEljb24oJ3BpIHBpLXRpbWVzJykud2l0aFN0eWxlQ2xhc3MobmV3IEJ1dHRvblN0eWxlQnVpbGRlcihTdHlsZUxldmVsRW51bS5EZWZhdWx0KS53aXRoVGV4dEJ1dHRvbigpKTtcbiAgICAgICAgdGhpcy5faWNvbiA9ICdwaSBwaS1leGNsYW1hdGlvbi10cmlhbmdsZSc7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhJY29uKGljb24/OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faWNvbiA9IGljb247XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVGl0bGUodGl0bGU/OiBzdHJpbmcgfCBudWxsKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3RpdGxlID0gdGl0bGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoTWVzc2FnZShtZXNzYWdlPzogc3RyaW5nIHwgbnVsbCk6IHRoaXMge1xuICAgICAgICB0aGlzLl9tZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhBY2NlcHRCdXR0b24oYWN0aW9uQnV0dG9uRGVzY3JpcHRvcjogQWN0aW9uQnV0dG9uRGVzY3JpcHRvcik6IHRoaXMge1xuICAgICAgICB0aGlzLl9hY2NlcHRCdXR0b24gPSBhY3Rpb25CdXR0b25EZXNjcmlwdG9yO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFJlamVjdEJ1dHRvbihhY3Rpb25CdXR0b25EZXNjcmlwdG9yPzogQWN0aW9uQnV0dG9uRGVzY3JpcHRvcik6IHRoaXMge1xuICAgICAgICB0aGlzLl9yZWplY3RCdXR0b24gPSBhY3Rpb25CdXR0b25EZXNjcmlwdG9yO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXQgaWYgZGlhbG9nIGNhbiBiZSBjbG9zZWQgb24gZXNjYXBlZCBwcmVzc2VkXG4gICAgICogaWYgdHJ1ZSwgdGhlbiBjbG9zYWJsZSBpcyBhbHNvIHNldCB0byB0cnVlXG4gICAgICogQHBhcmFtIGNsb3NlT25Fc2NhcGVcbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aENsb3NlT25Fc2NhcGUoY2xvc2VPbkVzY2FwZTogYm9vbGVhbik6IHRoaXMge1xuICAgICAgICBpZiAoY2xvc2VPbkVzY2FwZSkge1xuICAgICAgICAgICAgdGhpcy5fY2xvc2FibGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2Nsb3NlT25Fc2NhcGUgPSBjbG9zZU9uRXNjYXBlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aENsb3NhYmxlKGNsb3NhYmxlOiBib29sZWFuKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2Nsb3NhYmxlID0gY2xvc2FibGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUnVuQ29uZmlybWF0aW9uQ29uZmlnTWFwRm4ocnVuQ29uZmlybWF0aW9uQ29uZmlnTWFwRm4/OiBDb25maWd1cmF0aW9uQ29uZmlnTWFwRm48TW9kZWw+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3J1bkNvbmZpcm1hdGlvbkNvbmZpZ01hcEZuID0gcnVuQ29uZmlybWF0aW9uQ29uZmlnTWFwRm47XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaWNvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ljb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0aXRsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RpdGxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbWVzc2FnZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21lc3NhZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjbG9zZU9uRXNjYXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xvc2VPbkVzY2FwZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNsb3NhYmxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xvc2FibGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBydW5Db25maXJtYXRpb25Db25maWdNYXBGbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3J1bkNvbmZpcm1hdGlvbkNvbmZpZ01hcEZuO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWNjZXB0QnV0dG9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWNjZXB0QnV0dG9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmVqZWN0QnV0dG9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVqZWN0QnV0dG9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb3B5KCk6IEFjdGlvbkNvbmZpcm1hdGlvbkRlc2NyaXB0b3I8TW9kZWw+IHtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBBY3Rpb25Db25maXJtYXRpb25EZXNjcmlwdG9yPE1vZGVsPigpO1xuICAgICAgICBkZXNjcmlwdG9yLl9pY29uID0gdGhpcy5faWNvbjtcbiAgICAgICAgZGVzY3JpcHRvci5fdGl0bGUgPSB0aGlzLl90aXRsZTtcbiAgICAgICAgZGVzY3JpcHRvci5fbWVzc2FnZSA9IHRoaXMuX21lc3NhZ2U7XG4gICAgICAgIGRlc2NyaXB0b3IuX2FjY2VwdEJ1dHRvbiA9IHRoaXMuX2FjY2VwdEJ1dHRvbjtcbiAgICAgICAgZGVzY3JpcHRvci5fcmVqZWN0QnV0dG9uID0gdGhpcy5fcmVqZWN0QnV0dG9uO1xuICAgICAgICBkZXNjcmlwdG9yLl9jbG9zZU9uRXNjYXBlID0gdGhpcy5fY2xvc2VPbkVzY2FwZTtcbiAgICAgICAgZGVzY3JpcHRvci5fY2xvc2FibGUgPSB0aGlzLl9jbG9zYWJsZTtcbiAgICAgICAgZGVzY3JpcHRvci5fcnVuQ29uZmlybWF0aW9uQ29uZmlnTWFwRm4gPSB0aGlzLl9ydW5Db25maXJtYXRpb25Db25maWdNYXBGbjtcbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBDb25maWd1cmF0aW9uQ29uZmlnTWFwRm48SXRlbT4gPSAoY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCBhbnk+LCBjb25maXJtQ29uZmlnOiBDb25maXJtYXRpb24pID0+IENvbmZpcm1hdGlvbjtcbiJdfQ==
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWNvbmZpcm1hdGlvbi5kZXNjcmlwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L2FwaS9zcmMvYWN0aW9uL2Rlc2NyaXB0b3JzL2FjdGlvbi1jb25maXJtYXRpb24uZGVzY3JpcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFDLHNCQUFzQixFQUFFLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFJM0YsTUFBTSxPQUFPLDRCQUE0QjtJQVlyQztRQUpRLG1CQUFjLEdBQUcsSUFBSSxDQUFDLENBQUMsb0RBQW9EO1FBQzNFLGNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxpQ0FBaUM7UUFJdkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLHNCQUFzQixFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3pJLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxzQkFBc0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUMxSixJQUFJLENBQUMsS0FBSyxHQUFHLDRCQUE0QixDQUFDO0lBQzlDLENBQUM7SUFFTSxRQUFRLENBQUMsSUFBYTtRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQXFCO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxXQUFXLENBQUMsT0FBdUI7UUFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGdCQUFnQixDQUFDLHNCQUE4QztRQUNsRSxJQUFJLENBQUMsYUFBYSxHQUFHLHNCQUFzQixDQUFDO1FBQzVDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxzQkFBK0M7UUFDbkUsSUFBSSxDQUFDLGFBQWEsR0FBRyxzQkFBc0IsQ0FBQztRQUM1QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGlCQUFpQixDQUFDLGFBQXNCO1FBQzNDLElBQUksYUFBYSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxZQUFZLENBQUMsUUFBaUI7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLDhCQUE4QixDQUFDLDBCQUE0RDtRQUM5RixJQUFJLENBQUMsMkJBQTJCLEdBQUcsMEJBQTBCLENBQUM7UUFDOUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsYUFBYTtRQUNwQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVywwQkFBMEI7UUFDakMsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVNLElBQUk7UUFDUCxNQUFNLFVBQVUsR0FBRyxJQUFJLDRCQUE0QixFQUFTLENBQUM7UUFDN0QsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzlCLFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNoQyxVQUFVLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDcEMsVUFBVSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzlDLFVBQVUsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUM5QyxVQUFVLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDaEQsVUFBVSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3RDLFVBQVUsQ0FBQywyQkFBMkIsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUM7UUFDMUUsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25maXJtYXRpb259IGZyb20gJ3ByaW1lbmcvYXBpJztcblxuaW1wb3J0IHtTdHlsZUxldmVsRW51bX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7QWN0aW9uQnV0dG9uRGVzY3JpcHRvciwgQnV0dG9uU3R5bGVCdWlsZGVyfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2Zvcm0vYXBpJztcblxuaW1wb3J0IHtJQWN0aW9uQ29udGV4dH0gZnJvbSAnLi4vbW9kZWxzL2V4ZWN1dGlvbi9hY3Rpb24tY29udGV4dC5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25Db25maXJtYXRpb25EZXNjcmlwdG9yPE1vZGVsPiB7XG4gICAgcHJpdmF0ZSBfaWNvbj86IHN0cmluZzsgLy8gSWNvbiB0byBkaXNwbGF5IG5leHQgdG8gbWVzc2FnZS5cbiAgICBwcml2YXRlIF90aXRsZT86IHN0cmluZyB8IG51bGw7IC8vIFRyYW5zbGF0aW9uIGZvciB0aXRsZSB0ZXh0IG9mIHRoZSBkaWFsb2cuXG4gICAgcHJpdmF0ZSBfbWVzc2FnZT86IHN0cmluZyB8IG51bGw7IC8vIFRyYW5zbGF0aW9uIGZvciBib2R5IHRleHQgb2YgdGhlIGRpYWxvZy5cblxuICAgIHByaXZhdGUgX2FjY2VwdEJ1dHRvbjogQWN0aW9uQnV0dG9uRGVzY3JpcHRvcjtcbiAgICBwcml2YXRlIF9yZWplY3RCdXR0b24/OiBBY3Rpb25CdXR0b25EZXNjcmlwdG9yO1xuXG4gICAgcHJpdmF0ZSBfY2xvc2VPbkVzY2FwZSA9IHRydWU7IC8vIERlZmluZXMgaWYgZGlhbG9nIGNsb3NlcyB3aGVuIGVzYyBrZXkgaXMgcHJlc3NlZC5cbiAgICBwcml2YXRlIF9jbG9zYWJsZSA9IHRydWU7IC8vIERlZmluZXMgaWYgZGlhbG9nIGlzIGNsb3NhYmxlLlxuICAgIHByaXZhdGUgX3J1bkNvbmZpcm1hdGlvbkNvbmZpZ01hcEZuPzogQ29uZmlndXJhdGlvbkNvbmZpZ01hcEZuPE1vZGVsPjsgLy9mdW5jdGlvbiB1c2VkIHRvIGdlbmVyYXRlIHRoZSBjb25maXJtYXRpb24gZGlhbG9ndWUuICoqV0FSTklORyoqIGNoYW5naW5nIHRoZSAqYWNjZXB0KiBhbmQgKnJlamVjdCogbWV0aG9kcyBvZiB0aGUgKmNvbmZpcm1Db25maWcqIHBhcmFtZXRlciBtYXkgbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW91clxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuX2FjY2VwdEJ1dHRvbiA9IG5ldyBBY3Rpb25CdXR0b25EZXNjcmlwdG9yKCkud2l0aEljb24oJ3BpIHBpLWNoZWNrJykud2l0aFN0eWxlQ2xhc3MobmV3IEJ1dHRvblN0eWxlQnVpbGRlcihTdHlsZUxldmVsRW51bS5EZWZhdWx0KSk7XG4gICAgICAgIHRoaXMuX3JlamVjdEJ1dHRvbiA9IG5ldyBBY3Rpb25CdXR0b25EZXNjcmlwdG9yKCkud2l0aEljb24oJ3BpIHBpLXRpbWVzJykud2l0aFN0eWxlQ2xhc3MobmV3IEJ1dHRvblN0eWxlQnVpbGRlcihTdHlsZUxldmVsRW51bS5EZWZhdWx0KS53aXRoVGV4dEJ1dHRvbigpKTtcbiAgICAgICAgdGhpcy5faWNvbiA9ICdwaSBwaS1leGNsYW1hdGlvbi10cmlhbmdsZSc7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhJY29uKGljb24/OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faWNvbiA9IGljb247XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVGl0bGUodGl0bGU/OiBzdHJpbmcgfCBudWxsKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3RpdGxlID0gdGl0bGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoTWVzc2FnZShtZXNzYWdlPzogc3RyaW5nIHwgbnVsbCk6IHRoaXMge1xuICAgICAgICB0aGlzLl9tZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhBY2NlcHRCdXR0b24oYWN0aW9uQnV0dG9uRGVzY3JpcHRvcjogQWN0aW9uQnV0dG9uRGVzY3JpcHRvcik6IHRoaXMge1xuICAgICAgICB0aGlzLl9hY2NlcHRCdXR0b24gPSBhY3Rpb25CdXR0b25EZXNjcmlwdG9yO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFJlamVjdEJ1dHRvbihhY3Rpb25CdXR0b25EZXNjcmlwdG9yPzogQWN0aW9uQnV0dG9uRGVzY3JpcHRvcik6IHRoaXMge1xuICAgICAgICB0aGlzLl9yZWplY3RCdXR0b24gPSBhY3Rpb25CdXR0b25EZXNjcmlwdG9yO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXQgaWYgZGlhbG9nIGNhbiBiZSBjbG9zZWQgb24gZXNjYXBlZCBwcmVzc2VkXG4gICAgICogaWYgdHJ1ZSwgdGhlbiBjbG9zYWJsZSBpcyBhbHNvIHNldCB0byB0cnVlXG4gICAgICogQHBhcmFtIGNsb3NlT25Fc2NhcGVcbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aENsb3NlT25Fc2NhcGUoY2xvc2VPbkVzY2FwZTogYm9vbGVhbik6IHRoaXMge1xuICAgICAgICBpZiAoY2xvc2VPbkVzY2FwZSkge1xuICAgICAgICAgICAgdGhpcy5fY2xvc2FibGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2Nsb3NlT25Fc2NhcGUgPSBjbG9zZU9uRXNjYXBlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aENsb3NhYmxlKGNsb3NhYmxlOiBib29sZWFuKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2Nsb3NhYmxlID0gY2xvc2FibGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUnVuQ29uZmlybWF0aW9uQ29uZmlnTWFwRm4ocnVuQ29uZmlybWF0aW9uQ29uZmlnTWFwRm4/OiBDb25maWd1cmF0aW9uQ29uZmlnTWFwRm48TW9kZWw+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3J1bkNvbmZpcm1hdGlvbkNvbmZpZ01hcEZuID0gcnVuQ29uZmlybWF0aW9uQ29uZmlnTWFwRm47XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaWNvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ljb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0aXRsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RpdGxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbWVzc2FnZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21lc3NhZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjbG9zZU9uRXNjYXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xvc2VPbkVzY2FwZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNsb3NhYmxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xvc2FibGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBydW5Db25maXJtYXRpb25Db25maWdNYXBGbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3J1bkNvbmZpcm1hdGlvbkNvbmZpZ01hcEZuO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWNjZXB0QnV0dG9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWNjZXB0QnV0dG9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmVqZWN0QnV0dG9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVqZWN0QnV0dG9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb3B5KCk6IEFjdGlvbkNvbmZpcm1hdGlvbkRlc2NyaXB0b3I8TW9kZWw+IHtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBBY3Rpb25Db25maXJtYXRpb25EZXNjcmlwdG9yPE1vZGVsPigpO1xuICAgICAgICBkZXNjcmlwdG9yLl9pY29uID0gdGhpcy5faWNvbjtcbiAgICAgICAgZGVzY3JpcHRvci5fdGl0bGUgPSB0aGlzLl90aXRsZTtcbiAgICAgICAgZGVzY3JpcHRvci5fbWVzc2FnZSA9IHRoaXMuX21lc3NhZ2U7XG4gICAgICAgIGRlc2NyaXB0b3IuX2FjY2VwdEJ1dHRvbiA9IHRoaXMuX2FjY2VwdEJ1dHRvbjtcbiAgICAgICAgZGVzY3JpcHRvci5fcmVqZWN0QnV0dG9uID0gdGhpcy5fcmVqZWN0QnV0dG9uO1xuICAgICAgICBkZXNjcmlwdG9yLl9jbG9zZU9uRXNjYXBlID0gdGhpcy5fY2xvc2VPbkVzY2FwZTtcbiAgICAgICAgZGVzY3JpcHRvci5fY2xvc2FibGUgPSB0aGlzLl9jbG9zYWJsZTtcbiAgICAgICAgZGVzY3JpcHRvci5fcnVuQ29uZmlybWF0aW9uQ29uZmlnTWFwRm4gPSB0aGlzLl9ydW5Db25maXJtYXRpb25Db25maWdNYXBGbjtcbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBDb25maWd1cmF0aW9uQ29uZmlnTWFwRm48SXRlbT4gPSAoY3R4OiBJQWN0aW9uQ29udGV4dDxhbnksIEl0ZW0sIGFueT4sIGNvbmZpcm1Db25maWc6IENvbmZpcm1hdGlvbikgPT4gQ29uZmlybWF0aW9uO1xuIl19
@@ -1,5 +1,4 @@
1
- import { ModelDescriptor, TypeDescriptor } from '@mediusinc/mng-commons/model';
2
- import { ActionDeleteDescriptorInst, ActionDescriptorInst } from './action.descriptor';
1
+ import { ActionDescriptorInst } from './action.descriptor';
3
2
  export const actionGetProviderCfgObj = (serviceOrDataProvider) => {
4
3
  const cfg = {};
5
4
  if (serviceOrDataProvider) {
@@ -13,107 +12,17 @@ export const actionGetProviderCfgObj = (serviceOrDataProvider) => {
13
12
  }
14
13
  return cfg;
15
14
  };
16
- export class ActionDescriptor extends ActionDescriptorInst {
17
- constructor() {
18
- super('internal');
19
- }
20
- static create(actionName, cfg) {
21
- return action(actionName, {
22
- ...cfg
23
- });
24
- }
25
- static createWithProvider(serviceProvider, actionName, cfg) {
26
- return actionWithProvider(serviceProvider, actionName, cfg);
27
- }
28
- static fromModel(model, actionName, cfg) {
29
- return actionFromModel(model, actionName, cfg);
30
- }
31
- static fromModelWithProvider(model, serviceProvider, actionName, cfg) {
32
- return actionFromModel(model, serviceProvider, actionName, cfg);
33
- }
34
- static fromClass(type, actionName, cfg) {
35
- return actionFromClass(type, actionName, cfg);
36
- }
37
- static fromClassWithProvider(type, serviceProvider, actionName, cfg) {
38
- return actionFromClass(type, serviceProvider, actionName, cfg);
39
- }
40
- }
41
- export function action(typeOrActionName, actionNameOrCfg, cfg) {
42
- if (typeof typeOrActionName === 'string') {
43
- return new ActionDescriptorInst(typeOrActionName, typeof actionNameOrCfg === 'string'
44
- ? undefined
45
- : {
46
- ...actionNameOrCfg
47
- });
48
- }
49
- else {
50
- return new ActionDescriptorInst(typeof actionNameOrCfg === 'string' ? actionNameOrCfg : 'default', {
51
- ...cfg
52
- });
53
- }
54
- }
55
- export function actionWithProvider(typeOrServiceProvider, serviceProviderOrActionName, actionNameOrCfg, cfg) {
56
- const actionName = typeof serviceProviderOrActionName === 'string' ? serviceProviderOrActionName : typeof actionNameOrCfg === 'string' ? actionNameOrCfg : 'default';
57
- if (typeOrServiceProvider instanceof TypeDescriptor) {
58
- return new ActionDescriptorInst(actionName, {
59
- ...(typeof serviceProviderOrActionName === 'string' ? {} : actionGetProviderCfgObj(serviceProviderOrActionName)),
60
- ...(typeof actionNameOrCfg === 'string' ? {} : actionNameOrCfg),
61
- ...cfg
62
- });
63
- }
64
- else {
65
- return new ActionDescriptorInst(actionName, {
66
- ...actionGetProviderCfgObj(typeOrServiceProvider),
67
- ...cfg
68
- });
69
- }
70
- }
71
- export function actionFromModel(model, actionNameOrServiceProvider, cfgOrActionName, cfg) {
72
- if (typeof actionNameOrServiceProvider === 'string') {
73
- // no provider
74
- return new ActionDescriptorInst(actionNameOrServiceProvider, {
75
- model,
76
- ...(typeof cfgOrActionName === 'object' ? cfgOrActionName : {}),
77
- ...cfg
78
- });
79
- }
80
- else {
81
- return new ActionDescriptorInst(typeof cfgOrActionName === 'string' ? cfgOrActionName : 'default', {
82
- model,
83
- ...actionGetProviderCfgObj(actionNameOrServiceProvider),
84
- ...cfg
85
- });
86
- }
87
- }
88
- export function actionFromClass(type, actionNameOrServiceProvider, cfgOrActionName, cfg) {
89
- if (typeof actionNameOrServiceProvider === 'string') {
90
- // no provider
91
- const finalCfg = typeof cfgOrActionName === 'object' ? cfgOrActionName : cfg;
92
- return new ActionDescriptorInst(actionNameOrServiceProvider, {
93
- model: new ModelDescriptor(type, finalCfg?.idProperty, finalCfg?.titleProperty, finalCfg?.i18nBaseKey),
94
- ...(typeof cfgOrActionName === 'object' ? cfgOrActionName : {}),
95
- ...cfg
96
- });
97
- }
98
- else {
99
- return new ActionDescriptorInst(typeof cfgOrActionName === 'string' ? cfgOrActionName : 'default', {
100
- model: new ModelDescriptor(type, cfg?.idProperty, cfg?.titleProperty, cfg?.i18nBaseKey),
101
- ...actionGetProviderCfgObj(actionNameOrServiceProvider),
102
- ...cfg
103
- });
104
- }
105
- }
106
- export class ActionDeleteDescriptor {
107
- static create(model) {
108
- return actionDelete(model);
109
- }
110
- static createWithProvider(model, serviceProvider) {
111
- return actionDelete(model, serviceProvider);
112
- }
113
- }
114
- export function actionDelete(model, serviceProvider) {
115
- return new ActionDeleteDescriptorInst(model, {
116
- ...(serviceProvider ? actionGetProviderCfgObj(serviceProvider) : {})
15
+ /**
16
+ * Creates and returns an instance of ActionDescriptorInst, allowing customization of the action's behavior through configuration options.
17
+ *
18
+ * @param {string} actionName - The unique name of the action.
19
+ * @param {ActionDescriptorCreateFromModelOptsType<Model, Service, RunInput, RunResult, ValidationInput>} [opts] - Optional configuration object to define the action's behavior, including model, service provider and other.
20
+ * @return {ActionDescriptorInst<Model, Service, RunInput, RunResult, ValidationInput>} An instance of ActionDescriptorInst configured with the provided parameters.
21
+ */
22
+ export function action(actionName, opts) {
23
+ return new ActionDescriptorInst(actionName, {
24
+ ...(opts?.serviceProvider ? actionGetProviderCfgObj(opts.serviceProvider) : {}),
25
+ ...opts
117
26
  });
118
27
  }
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWRlc2NyaXB0b3IuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9hcGkvc3JjL2FjdGlvbi9kZXNjcmlwdG9ycy9hY3Rpb24tZGVzY3JpcHRvci5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxlQUFlLEVBQUUsY0FBYyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFFN0UsT0FBTyxFQUFDLDBCQUEwQixFQUFnRixvQkFBb0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBZW5LLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQWlCLHFCQUEwRCxFQUFFLEVBQUU7SUFDbEgsTUFBTSxHQUFHLEdBQTJELEVBQUUsQ0FBQztJQUN2RSxJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDeEIsSUFBSyxxQkFBdUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMxRCxxRkFBcUY7WUFDckYsR0FBRyxDQUFDLFlBQVksR0FBRyxxQkFBc0QsQ0FBQztRQUM5RSxDQUFDO2FBQU0sQ0FBQztZQUNKLEdBQUcsQ0FBQyxXQUFXLEdBQUcscUJBQWtELENBQUM7UUFDekUsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxvQkFBeUI7SUFDM0Q7UUFDSSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFNLENBQVEsVUFBa0IsRUFBRSxHQUEwQztRQUN0RixPQUFPLE1BQU0sQ0FBUSxVQUFVLEVBQUU7WUFDN0IsR0FBRyxHQUFHO1NBQ1QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLE1BQU0sQ0FBQyxrQkFBa0IsQ0FDNUIsZUFBbUQsRUFDbkQsVUFBa0IsRUFDbEIsR0FBMEM7UUFFMUMsT0FBTyxrQkFBa0IsQ0FBaUIsZUFBZSxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQVMsQ0FBUSxLQUE2QixFQUFFLFVBQWtCLEVBQUUsR0FBMEM7UUFDeEgsT0FBTyxlQUFlLENBQVEsS0FBSyxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sTUFBTSxDQUFDLHFCQUFxQixDQUMvQixLQUE2QixFQUM3QixlQUFtRCxFQUNuRCxVQUFrQixFQUNsQixHQUEwQztRQUUxQyxPQUFPLGVBQWUsQ0FBaUIsS0FBSyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVNLE1BQU0sQ0FBQyxTQUFTLENBQVEsSUFBc0IsRUFBRSxVQUFrQixFQUFFLEdBQWdEO1FBQ3ZILE9BQU8sZUFBZSxDQUFRLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxxQkFBcUIsQ0FDL0IsSUFBc0IsRUFDdEIsZUFBbUQsRUFDbkQsVUFBa0IsRUFDbEIsR0FBZ0Q7UUFFaEQsT0FBTyxlQUFlLENBQWlCLElBQUksRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ25GLENBQUM7Q0FDSjtBQUlELE1BQU0sVUFBVSxNQUFNLENBQ2xCLGdCQUFnRCxFQUNoRCxlQUErRCxFQUMvRCxHQUEwQztJQUUxQyxJQUFJLE9BQU8sZ0JBQWdCLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDdkMsT0FBTyxJQUFJLG9CQUFvQixDQUMzQixnQkFBZ0IsRUFDaEIsT0FBTyxlQUFlLEtBQUssUUFBUTtZQUMvQixDQUFDLENBQUMsU0FBUztZQUNYLENBQUMsQ0FBQztnQkFDSSxHQUFHLGVBQWU7YUFDckIsQ0FDVixDQUFDO0lBQ04sQ0FBQztTQUFNLENBQUM7UUFDSixPQUFPLElBQUksb0JBQW9CLENBQW1CLE9BQU8sZUFBZSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUU7WUFDakgsR0FBRyxHQUFHO1NBQ1QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztBQUNMLENBQUM7QUFhRCxNQUFNLFVBQVUsa0JBQWtCLENBQzlCLHFCQUFpRixFQUNqRiwyQkFBd0UsRUFDeEUsZUFBK0QsRUFDL0QsR0FBMEM7SUFFMUMsTUFBTSxVQUFVLEdBQUcsT0FBTywyQkFBMkIsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxPQUFPLGVBQWUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3JLLElBQUkscUJBQXFCLFlBQVksY0FBYyxFQUFFLENBQUM7UUFDbEQsT0FBTyxJQUFJLG9CQUFvQixDQUFpQixVQUFVLEVBQUU7WUFDeEQsR0FBRyxDQUFDLE9BQU8sMkJBQTJCLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLDJCQUEyQixDQUFDLENBQUM7WUFDaEgsR0FBRyxDQUFDLE9BQU8sZUFBZSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUM7WUFDL0QsR0FBRyxHQUFHO1NBQ1QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztTQUFNLENBQUM7UUFDSixPQUFPLElBQUksb0JBQW9CLENBQWlCLFVBQVUsRUFBRTtZQUN4RCxHQUFHLHVCQUF1QixDQUFDLHFCQUFxQixDQUFDO1lBQ2pELEdBQUcsR0FBRztTQUNULENBQUMsQ0FBQztJQUNQLENBQUM7QUFDTCxDQUFDO0FBU0QsTUFBTSxVQUFVLGVBQWUsQ0FDM0IsS0FBNkIsRUFDN0IsMkJBQXdFLEVBQ3hFLGVBQStELEVBQy9ELEdBQTBDO0lBRTFDLElBQUksT0FBTywyQkFBMkIsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNsRCxjQUFjO1FBQ2QsT0FBTyxJQUFJLG9CQUFvQixDQUFtQiwyQkFBMkIsRUFBRTtZQUMzRSxLQUFLO1lBQ0wsR0FBRyxDQUFDLE9BQU8sZUFBZSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDL0QsR0FBRyxHQUFHO1NBQ1QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztTQUFNLENBQUM7UUFDSixPQUFPLElBQUksb0JBQW9CLENBQWlCLE9BQU8sZUFBZSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUU7WUFDL0csS0FBSztZQUNMLEdBQUcsdUJBQXVCLENBQUMsMkJBQTJCLENBQUM7WUFDdkQsR0FBRyxHQUFHO1NBQ1QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztBQUNMLENBQUM7QUFTRCxNQUFNLFVBQVUsZUFBZSxDQUMzQixJQUFzQixFQUN0QiwyQkFBd0UsRUFDeEUsZUFBcUUsRUFDckUsR0FBZ0Q7SUFFaEQsSUFBSSxPQUFPLDJCQUEyQixLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ2xELGNBQWM7UUFDZCxNQUFNLFFBQVEsR0FBRyxPQUFPLGVBQWUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQzdFLE9BQU8sSUFBSSxvQkFBb0IsQ0FBaUIsMkJBQTJCLEVBQUU7WUFDekUsS0FBSyxFQUFFLElBQUksZUFBZSxDQUFRLElBQUksRUFBRSxRQUFRLEVBQUUsVUFBb0IsRUFBRSxRQUFRLEVBQUUsYUFBdUIsRUFBRSxRQUFRLEVBQUUsV0FBVyxDQUFDO1lBQ2pJLEdBQUcsQ0FBQyxPQUFPLGVBQWUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQy9ELEdBQUcsR0FBRztTQUNULENBQUMsQ0FBQztJQUNQLENBQUM7U0FBTSxDQUFDO1FBQ0osT0FBTyxJQUFJLG9CQUFvQixDQUFpQixPQUFPLGVBQWUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFO1lBQy9HLEtBQUssRUFBRSxJQUFJLGVBQWUsQ0FBUSxJQUFJLEVBQUUsR0FBRyxFQUFFLFVBQW9CLEVBQUUsR0FBRyxFQUFFLGFBQXVCLEVBQUUsR0FBRyxFQUFFLFdBQVcsQ0FBQztZQUNsSCxHQUFHLHVCQUF1QixDQUFDLDJCQUEyQixDQUFDO1lBQ3ZELEdBQUcsR0FBRztTQUNULENBQUMsQ0FBQztJQUNQLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxPQUFPLHNCQUFzQjtJQUN4QixNQUFNLENBQUMsTUFBTSxDQUFRLEtBQTZCO1FBQ3JELE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxNQUFNLENBQUMsa0JBQWtCLENBQzVCLEtBQTZCLEVBQzdCLGVBQW1EO1FBRW5ELE9BQU8sWUFBWSxDQUFDLEtBQUssRUFBRSxlQUFlLENBQUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0o7QUFJRCxNQUFNLFVBQVUsWUFBWSxDQUFpQixLQUE2QixFQUFFLGVBQW9EO0lBQzVILE9BQU8sSUFBSSwwQkFBMEIsQ0FBaUIsS0FBSyxFQUFFO1FBQ3pELEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7S0FDdkUsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2xhc3NUeXBlLCBJRGF0YVByb3ZpZGVyLCBTZXJ2aWNlQ2xhc3NUeXBlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtNb2RlbERlc2NyaXB0b3IsIFR5cGVEZXNjcmlwdG9yfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL21vZGVsJztcblxuaW1wb3J0IHtBY3Rpb25EZWxldGVEZXNjcmlwdG9ySW5zdCwgQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlLCBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1Byb3ZpZGVyVHlwZSwgQWN0aW9uRGVzY3JpcHRvckluc3R9IGZyb20gJy4vYWN0aW9uLmRlc2NyaXB0b3InO1xuXG5leHBvcnQgdHlwZSBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlRnJvbUNsYXNzT3B0czxNb2RlbD4gPSBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c01vZGVsPE1vZGVsPiAmIEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzSTE4blR5cGUgJiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGU7XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzSTE4blR5cGUgPSB7XG4gICAgaTE4bkJhc2VLZXk/OiBzdHJpbmcgfCBDbGFzc1R5cGU8YW55Pjtcbn07XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzTW9kZWw8TW9kZWw+ID0ge1xuICAgIGlkUHJvcGVydHk/OiBrZXlvZiBNb2RlbDtcbiAgICB0aXRsZVByb3BlcnR5Pzoga2V5b2YgTW9kZWw7XG59O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25Qcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+ID0gU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPiB8IElEYXRhUHJvdmlkZXI8TW9kZWwsIFNlcnZpY2U+O1xuXG5leHBvcnQgY29uc3QgYWN0aW9uR2V0UHJvdmlkZXJDZmdPYmogPSA8TW9kZWwsIFNlcnZpY2U+KHNlcnZpY2VPckRhdGFQcm92aWRlcj86IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4pID0+IHtcbiAgICBjb25zdCBjZmc6IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPiA9IHt9O1xuICAgIGlmIChzZXJ2aWNlT3JEYXRhUHJvdmlkZXIpIHtcbiAgICAgICAgaWYgKChzZXJ2aWNlT3JEYXRhUHJvdmlkZXIgYXMgSURhdGFQcm92aWRlcikuaXNEYXRhUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIC8vIHR5cGUgY2FzdGluZyBuZWVkZWQsIGNhdXNlIHRoZXJlIHdhcyBubyBvdGhlciB3YXkgZm91bmQgdG8gZGlmZmVyZW50aWF0ZSB0aGUgdHlwZXNcbiAgICAgICAgICAgIGNmZy5kYXRhUHJvdmlkZXIgPSBzZXJ2aWNlT3JEYXRhUHJvdmlkZXIgYXMgSURhdGFQcm92aWRlcjxNb2RlbCwgU2VydmljZT47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjZmcuc2VydmljZVR5cGUgPSBzZXJ2aWNlT3JEYXRhUHJvdmlkZXIgYXMgU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2ZnO1xufTtcblxuZXhwb3J0IGNsYXNzIEFjdGlvbkRlc2NyaXB0b3IgZXh0ZW5kcyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxhbnk+IHtcbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCdpbnRlcm5hbCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlPE1vZGVsPihhY3Rpb25OYW1lOiBzdHJpbmcsIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZSk6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIGFjdGlvbjxNb2RlbD4oYWN0aW9uTmFtZSwge1xuICAgICAgICAgICAgLi4uY2ZnXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlV2l0aFByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlPihcbiAgICAgICAgc2VydmljZVByb3ZpZGVyOiBBY3Rpb25Qcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+LFxuICAgICAgICBhY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgICAgIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZVxuICAgICk6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgICAgIHJldHVybiBhY3Rpb25XaXRoUHJvdmlkZXI8TW9kZWwsIFNlcnZpY2U+KHNlcnZpY2VQcm92aWRlciwgYWN0aW9uTmFtZSwgY2ZnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb21Nb2RlbDxNb2RlbD4obW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD4sIGFjdGlvbk5hbWU6IHN0cmluZywgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlKTogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gYWN0aW9uRnJvbU1vZGVsPE1vZGVsPihtb2RlbCwgYWN0aW9uTmFtZSwgY2ZnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb21Nb2RlbFdpdGhQcm92aWRlcjxNb2RlbCwgU2VydmljZT4oXG4gICAgICAgIG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+LFxuICAgICAgICBzZXJ2aWNlUHJvdmlkZXI6IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4sXG4gICAgICAgIGFjdGlvbk5hbWU6IHN0cmluZyxcbiAgICAgICAgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlXG4gICAgKTogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+IHtcbiAgICAgICAgcmV0dXJuIGFjdGlvbkZyb21Nb2RlbDxNb2RlbCwgU2VydmljZT4obW9kZWwsIHNlcnZpY2VQcm92aWRlciwgYWN0aW9uTmFtZSwgY2ZnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb21DbGFzczxNb2RlbD4odHlwZTogQ2xhc3NUeXBlPE1vZGVsPiwgYWN0aW9uTmFtZTogc3RyaW5nLCBjZmc/OiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlRnJvbUNsYXNzT3B0czxNb2RlbD4pOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiBhY3Rpb25Gcm9tQ2xhc3M8TW9kZWw+KHR5cGUsIGFjdGlvbk5hbWUsIGNmZyk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmcm9tQ2xhc3NXaXRoUHJvdmlkZXI8TW9kZWwsIFNlcnZpY2U+KFxuICAgICAgICB0eXBlOiBDbGFzc1R5cGU8TW9kZWw+LFxuICAgICAgICBzZXJ2aWNlUHJvdmlkZXI6IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4sXG4gICAgICAgIGFjdGlvbk5hbWU6IHN0cmluZyxcbiAgICAgICAgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZUZyb21DbGFzc09wdHM8TW9kZWw+XG4gICAgKTogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+IHtcbiAgICAgICAgcmV0dXJuIGFjdGlvbkZyb21DbGFzczxNb2RlbCwgU2VydmljZT4odHlwZSwgc2VydmljZVByb3ZpZGVyLCBhY3Rpb25OYW1lLCBjZmcpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbjxNb2RlbD4oYWN0aW9uTmFtZTogc3RyaW5nLCBjZmc/OiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGUpOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkPjtcbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb248TW9kZWw+KHR5cGU6IFR5cGVEZXNjcmlwdG9yPE1vZGVsPiwgYWN0aW9uTmFtZTogc3RyaW5nLCBjZmc/OiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGUpOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkPjtcbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb248TW9kZWw+KFxuICAgIHR5cGVPckFjdGlvbk5hbWU6IFR5cGVEZXNjcmlwdG9yPE1vZGVsPiB8IHN0cmluZyxcbiAgICBhY3Rpb25OYW1lT3JDZmc/OiBzdHJpbmcgfCBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGUsXG4gICAgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlXG4pOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkPiB7XG4gICAgaWYgKHR5cGVvZiB0eXBlT3JBY3Rpb25OYW1lID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gbmV3IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCB1bmRlZmluZWQ+KFxuICAgICAgICAgICAgdHlwZU9yQWN0aW9uTmFtZSxcbiAgICAgICAgICAgIHR5cGVvZiBhY3Rpb25OYW1lT3JDZmcgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAuLi5hY3Rpb25OYW1lT3JDZmdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbmV3IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCB1bmRlZmluZWQ+KHR5cGVvZiBhY3Rpb25OYW1lT3JDZmcgPT09ICdzdHJpbmcnID8gYWN0aW9uTmFtZU9yQ2ZnIDogJ2RlZmF1bHQnLCB7XG4gICAgICAgICAgICAuLi5jZmdcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWN0aW9uV2l0aFByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlPihcbiAgICBzZXJ2aWNlUHJvdmlkZXI6IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4sXG4gICAgYWN0aW9uTmFtZTogc3RyaW5nLFxuICAgIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZVxuKTogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+O1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbldpdGhQcm92aWRlcjxNb2RlbCwgU2VydmljZT4oXG4gICAgdHlwZTogVHlwZURlc2NyaXB0b3I8TW9kZWw+LFxuICAgIHNlcnZpY2VQcm92aWRlcjogQWN0aW9uUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPixcbiAgICBhY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlXG4pOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT47XG5leHBvcnQgZnVuY3Rpb24gYWN0aW9uV2l0aFByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlPihcbiAgICB0eXBlT3JTZXJ2aWNlUHJvdmlkZXI6IFR5cGVEZXNjcmlwdG9yPE1vZGVsPiB8IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4sXG4gICAgc2VydmljZVByb3ZpZGVyT3JBY3Rpb25OYW1lOiBBY3Rpb25Qcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+IHwgc3RyaW5nLFxuICAgIGFjdGlvbk5hbWVPckNmZz86IHN0cmluZyB8IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZSxcbiAgICBjZmc/OiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGVcbik6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgY29uc3QgYWN0aW9uTmFtZSA9IHR5cGVvZiBzZXJ2aWNlUHJvdmlkZXJPckFjdGlvbk5hbWUgPT09ICdzdHJpbmcnID8gc2VydmljZVByb3ZpZGVyT3JBY3Rpb25OYW1lIDogdHlwZW9mIGFjdGlvbk5hbWVPckNmZyA9PT0gJ3N0cmluZycgPyBhY3Rpb25OYW1lT3JDZmcgOiAnZGVmYXVsdCc7XG4gICAgaWYgKHR5cGVPclNlcnZpY2VQcm92aWRlciBpbnN0YW5jZW9mIFR5cGVEZXNjcmlwdG9yKSB7XG4gICAgICAgIHJldHVybiBuZXcgQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+KGFjdGlvbk5hbWUsIHtcbiAgICAgICAgICAgIC4uLih0eXBlb2Ygc2VydmljZVByb3ZpZGVyT3JBY3Rpb25OYW1lID09PSAnc3RyaW5nJyA/IHt9IDogYWN0aW9uR2V0UHJvdmlkZXJDZmdPYmooc2VydmljZVByb3ZpZGVyT3JBY3Rpb25OYW1lKSksXG4gICAgICAgICAgICAuLi4odHlwZW9mIGFjdGlvbk5hbWVPckNmZyA9PT0gJ3N0cmluZycgPyB7fSA6IGFjdGlvbk5hbWVPckNmZyksXG4gICAgICAgICAgICAuLi5jZmdcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4oYWN0aW9uTmFtZSwge1xuICAgICAgICAgICAgLi4uYWN0aW9uR2V0UHJvdmlkZXJDZmdPYmoodHlwZU9yU2VydmljZVByb3ZpZGVyKSxcbiAgICAgICAgICAgIC4uLmNmZ1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25Gcm9tTW9kZWw8TW9kZWw+KG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+LCBhY3Rpb25OYW1lOiBzdHJpbmcsIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZSk6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCB1bmRlZmluZWQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbkZyb21Nb2RlbDxNb2RlbCwgU2VydmljZT4oXG4gICAgbW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD4sXG4gICAgc2VydmljZVByb3ZpZGVyOiBBY3Rpb25Qcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+LFxuICAgIGFjdGlvbk5hbWU6IHN0cmluZyxcbiAgICBjZmc/OiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGVcbik6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPjtcbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25Gcm9tTW9kZWw8TW9kZWwsIFNlcnZpY2U+KFxuICAgIG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+LFxuICAgIGFjdGlvbk5hbWVPclNlcnZpY2VQcm92aWRlcjogc3RyaW5nIHwgQWN0aW9uUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPixcbiAgICBjZmdPckFjdGlvbk5hbWU/OiBzdHJpbmcgfCBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGUsXG4gICAgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlXG4pIHtcbiAgICBpZiAodHlwZW9mIGFjdGlvbk5hbWVPclNlcnZpY2VQcm92aWRlciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgLy8gbm8gcHJvdmlkZXJcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkPihhY3Rpb25OYW1lT3JTZXJ2aWNlUHJvdmlkZXIsIHtcbiAgICAgICAgICAgIG1vZGVsLFxuICAgICAgICAgICAgLi4uKHR5cGVvZiBjZmdPckFjdGlvbk5hbWUgPT09ICdvYmplY3QnID8gY2ZnT3JBY3Rpb25OYW1lIDoge30pLFxuICAgICAgICAgICAgLi4uY2ZnXG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBuZXcgQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+KHR5cGVvZiBjZmdPckFjdGlvbk5hbWUgPT09ICdzdHJpbmcnID8gY2ZnT3JBY3Rpb25OYW1lIDogJ2RlZmF1bHQnLCB7XG4gICAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICAgIC4uLmFjdGlvbkdldFByb3ZpZGVyQ2ZnT2JqKGFjdGlvbk5hbWVPclNlcnZpY2VQcm92aWRlciksXG4gICAgICAgICAgICAuLi5jZmdcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWN0aW9uRnJvbUNsYXNzPE1vZGVsPih0eXBlOiBDbGFzc1R5cGU8TW9kZWw+LCBhY3Rpb25OYW1lOiBzdHJpbmcsIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVGcm9tQ2xhc3NPcHRzPE1vZGVsPik6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCB1bmRlZmluZWQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbkZyb21DbGFzczxNb2RlbCwgU2VydmljZT4oXG4gICAgdHlwZTogQ2xhc3NUeXBlPE1vZGVsPixcbiAgICBzZXJ2aWNlUHJvdmlkZXI6IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4sXG4gICAgYWN0aW9uTmFtZTogc3RyaW5nLFxuICAgIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVGcm9tQ2xhc3NPcHRzPE1vZGVsPlxuKTogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+O1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbkZyb21DbGFzczxNb2RlbCwgU2VydmljZT4oXG4gICAgdHlwZTogQ2xhc3NUeXBlPE1vZGVsPixcbiAgICBhY3Rpb25OYW1lT3JTZXJ2aWNlUHJvdmlkZXI6IHN0cmluZyB8IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4sXG4gICAgY2ZnT3JBY3Rpb25OYW1lPzogc3RyaW5nIHwgQWN0aW9uRGVzY3JpcHRvckNyZWF0ZUZyb21DbGFzc09wdHM8TW9kZWw+LFxuICAgIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVGcm9tQ2xhc3NPcHRzPE1vZGVsPlxuKTogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+IHtcbiAgICBpZiAodHlwZW9mIGFjdGlvbk5hbWVPclNlcnZpY2VQcm92aWRlciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgLy8gbm8gcHJvdmlkZXJcbiAgICAgICAgY29uc3QgZmluYWxDZmcgPSB0eXBlb2YgY2ZnT3JBY3Rpb25OYW1lID09PSAnb2JqZWN0JyA/IGNmZ09yQWN0aW9uTmFtZSA6IGNmZztcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4oYWN0aW9uTmFtZU9yU2VydmljZVByb3ZpZGVyLCB7XG4gICAgICAgICAgICBtb2RlbDogbmV3IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD4odHlwZSwgZmluYWxDZmc/LmlkUHJvcGVydHkgYXMgc3RyaW5nLCBmaW5hbENmZz8udGl0bGVQcm9wZXJ0eSBhcyBzdHJpbmcsIGZpbmFsQ2ZnPy5pMThuQmFzZUtleSksXG4gICAgICAgICAgICAuLi4odHlwZW9mIGNmZ09yQWN0aW9uTmFtZSA9PT0gJ29iamVjdCcgPyBjZmdPckFjdGlvbk5hbWUgOiB7fSksXG4gICAgICAgICAgICAuLi5jZmdcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4odHlwZW9mIGNmZ09yQWN0aW9uTmFtZSA9PT0gJ3N0cmluZycgPyBjZmdPckFjdGlvbk5hbWUgOiAnZGVmYXVsdCcsIHtcbiAgICAgICAgICAgIG1vZGVsOiBuZXcgTW9kZWxEZXNjcmlwdG9yPE1vZGVsPih0eXBlLCBjZmc/LmlkUHJvcGVydHkgYXMgc3RyaW5nLCBjZmc/LnRpdGxlUHJvcGVydHkgYXMgc3RyaW5nLCBjZmc/LmkxOG5CYXNlS2V5KSxcbiAgICAgICAgICAgIC4uLmFjdGlvbkdldFByb3ZpZGVyQ2ZnT2JqKGFjdGlvbk5hbWVPclNlcnZpY2VQcm92aWRlciksXG4gICAgICAgICAgICAuLi5jZmdcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWN0aW9uRGVsZXRlRGVzY3JpcHRvciB7XG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGU8TW9kZWw+KG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+KTogQWN0aW9uRGVsZXRlRGVzY3JpcHRvckluc3Q8TW9kZWwsIHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gYWN0aW9uRGVsZXRlKG1vZGVsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZVdpdGhQcm92aWRlcjxNb2RlbCwgU2VydmljZT4oXG4gICAgICAgIG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+LFxuICAgICAgICBzZXJ2aWNlUHJvdmlkZXI6IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT5cbiAgICApOiBBY3Rpb25EZWxldGVEZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4ge1xuICAgICAgICByZXR1cm4gYWN0aW9uRGVsZXRlKG1vZGVsLCBzZXJ2aWNlUHJvdmlkZXIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbkRlbGV0ZTxNb2RlbD4obW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD4pOiBBY3Rpb25EZWxldGVEZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkPjtcbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25EZWxldGU8TW9kZWwsIFNlcnZpY2U+KG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+LCBzZXJ2aWNlUHJvdmlkZXI6IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4pOiBBY3Rpb25EZWxldGVEZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT47XG5leHBvcnQgZnVuY3Rpb24gYWN0aW9uRGVsZXRlPE1vZGVsLCBTZXJ2aWNlPihtb2RlbDogTW9kZWxEZXNjcmlwdG9yPE1vZGVsPiwgc2VydmljZVByb3ZpZGVyPzogQWN0aW9uUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPik6IEFjdGlvbkRlbGV0ZURlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgcmV0dXJuIG5ldyBBY3Rpb25EZWxldGVEZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4obW9kZWwsIHtcbiAgICAgICAgLi4uKHNlcnZpY2VQcm92aWRlciA/IGFjdGlvbkdldFByb3ZpZGVyQ2ZnT2JqKHNlcnZpY2VQcm92aWRlcikgOiB7fSlcbiAgICB9KTtcbn1cbiJdfQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWRlc2NyaXB0b3IuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9hcGkvc3JjL2FjdGlvbi9kZXNjcmlwdG9ycy9hY3Rpb24tZGVzY3JpcHRvci5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBK0Usb0JBQW9CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQWtCdkksTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBaUIscUJBQTBELEVBQUUsRUFBRTtJQUNsSCxNQUFNLEdBQUcsR0FBMkQsRUFBRSxDQUFDO0lBQ3ZFLElBQUkscUJBQXFCLEVBQUUsQ0FBQztRQUN4QixJQUFLLHFCQUF1QyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzFELHFGQUFxRjtZQUNyRixHQUFHLENBQUMsWUFBWSxHQUFHLHFCQUFzRCxDQUFDO1FBQzlFLENBQUM7YUFBTSxDQUFDO1lBQ0osR0FBRyxDQUFDLFdBQVcsR0FBRyxxQkFBa0QsQ0FBQztRQUN6RSxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FDbEIsVUFBa0IsRUFDbEIsSUFBMkY7SUFFM0YsT0FBTyxJQUFJLG9CQUFvQixDQUF1RCxVQUFVLEVBQUU7UUFDOUYsR0FBRyxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9FLEdBQUcsSUFBSTtLQUNWLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0lEYXRhUHJvdmlkZXIsIFNlcnZpY2VDbGFzc1R5cGV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge01vZGVsRGVzY3JpcHRvciwgVHlwZURlc2NyaXB0b3J9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvbW9kZWwnO1xuXG5pbXBvcnQge0FjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZSwgQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQcm92aWRlclR5cGUsIEFjdGlvbkRlc2NyaXB0b3JJbnN0fSBmcm9tICcuL2FjdGlvbi5kZXNjcmlwdG9yJztcblxuZXhwb3J0IHR5cGUgQWN0aW9uRGVzY3JpcHRvckNyZWF0ZUZyb21Nb2RlbE9wdHNUeXBlPFJ1bklucHV0VHlwZSwgUnVuUmV0dXJuVHlwZSwgVmFsaWRhdGlvbklucHV0PiA9IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZSAmIHtcbiAgICBydW5JbnB1dFR5cGU/OiBUeXBlRGVzY3JpcHRvcjxSdW5JbnB1dFR5cGU+O1xuICAgIHJ1blJldHVyblR5cGU/OiBUeXBlRGVzY3JpcHRvcjxSdW5SZXR1cm5UeXBlPjtcbiAgICB2YWxpZGF0aW9uVHlwZT86IFR5cGVEZXNjcmlwdG9yPFZhbGlkYXRpb25JbnB1dD47XG59O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1R5cGU8TW9kZWwsIFNlcnZpY2UsIFJ1bklucHV0VHlwZSwgUnVuUmV0dXJuVHlwZSwgVmFsaWRhdGlvbklucHV0PiA9IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZSAmIHtcbiAgICBtb2RlbD86IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD47XG4gICAgc2VydmljZVByb3ZpZGVyPzogQWN0aW9uUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPjtcbiAgICBydW5JbnB1dFR5cGU/OiBUeXBlRGVzY3JpcHRvcjxSdW5JbnB1dFR5cGU+O1xuICAgIHJ1blJldHVyblR5cGU/OiBUeXBlRGVzY3JpcHRvcjxSdW5SZXR1cm5UeXBlPjtcbiAgICB2YWxpZGF0aW9uVHlwZT86IFR5cGVEZXNjcmlwdG9yPFZhbGlkYXRpb25JbnB1dD47XG59O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25Qcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+ID0gU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPiB8IElEYXRhUHJvdmlkZXI8TW9kZWwsIFNlcnZpY2U+O1xuXG5leHBvcnQgY29uc3QgYWN0aW9uR2V0UHJvdmlkZXJDZmdPYmogPSA8TW9kZWwsIFNlcnZpY2U+KHNlcnZpY2VPckRhdGFQcm92aWRlcj86IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4pID0+IHtcbiAgICBjb25zdCBjZmc6IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPiA9IHt9O1xuICAgIGlmIChzZXJ2aWNlT3JEYXRhUHJvdmlkZXIpIHtcbiAgICAgICAgaWYgKChzZXJ2aWNlT3JEYXRhUHJvdmlkZXIgYXMgSURhdGFQcm92aWRlcikuaXNEYXRhUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIC8vIHR5cGUgY2FzdGluZyBuZWVkZWQsIGNhdXNlIHRoZXJlIHdhcyBubyBvdGhlciB3YXkgZm91bmQgdG8gZGlmZmVyZW50aWF0ZSB0aGUgdHlwZXNcbiAgICAgICAgICAgIGNmZy5kYXRhUHJvdmlkZXIgPSBzZXJ2aWNlT3JEYXRhUHJvdmlkZXIgYXMgSURhdGFQcm92aWRlcjxNb2RlbCwgU2VydmljZT47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjZmcuc2VydmljZVR5cGUgPSBzZXJ2aWNlT3JEYXRhUHJvdmlkZXIgYXMgU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2ZnO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuZCByZXR1cm5zIGFuIGluc3RhbmNlIG9mIEFjdGlvbkRlc2NyaXB0b3JJbnN0LCBhbGxvd2luZyBjdXN0b21pemF0aW9uIG9mIHRoZSBhY3Rpb24ncyBiZWhhdmlvciB0aHJvdWdoIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWN0aW9uTmFtZSAtIFRoZSB1bmlxdWUgbmFtZSBvZiB0aGUgYWN0aW9uLlxuICogQHBhcmFtIHtBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlRnJvbU1vZGVsT3B0c1R5cGU8TW9kZWwsIFNlcnZpY2UsIFJ1bklucHV0LCBSdW5SZXN1bHQsIFZhbGlkYXRpb25JbnB1dD59IFtvcHRzXSAtIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHRvIGRlZmluZSB0aGUgYWN0aW9uJ3MgYmVoYXZpb3IsIGluY2x1ZGluZyBtb2RlbCwgc2VydmljZSBwcm92aWRlciBhbmQgb3RoZXIuXG4gKiBAcmV0dXJuIHtBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZSwgUnVuSW5wdXQsIFJ1blJlc3VsdCwgVmFsaWRhdGlvbklucHV0Pn0gQW4gaW5zdGFuY2Ugb2YgQWN0aW9uRGVzY3JpcHRvckluc3QgY29uZmlndXJlZCB3aXRoIHRoZSBwcm92aWRlZCBwYXJhbWV0ZXJzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWN0aW9uPE1vZGVsLCBTZXJ2aWNlID0gdW5kZWZpbmVkLCBSdW5JbnB1dCA9IE1vZGVsLCBSdW5SZXN1bHQgPSBNb2RlbCwgVmFsaWRhdGlvbklucHV0ID0gTW9kZWw+KFxuICAgIGFjdGlvbk5hbWU6IHN0cmluZyxcbiAgICBvcHRzPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNUeXBlPE1vZGVsLCBTZXJ2aWNlLCBSdW5JbnB1dCwgUnVuUmVzdWx0LCBWYWxpZGF0aW9uSW5wdXQ+XG4pOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZSwgUnVuSW5wdXQsIFJ1blJlc3VsdCwgVmFsaWRhdGlvbklucHV0PiB7XG4gICAgcmV0dXJuIG5ldyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZSwgUnVuSW5wdXQsIFJ1blJlc3VsdCwgVmFsaWRhdGlvbklucHV0PihhY3Rpb25OYW1lLCB7XG4gICAgICAgIC4uLihvcHRzPy5zZXJ2aWNlUHJvdmlkZXIgPyBhY3Rpb25HZXRQcm92aWRlckNmZ09iaihvcHRzLnNlcnZpY2VQcm92aWRlcikgOiB7fSksXG4gICAgICAgIC4uLm9wdHNcbiAgICB9KTtcbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { ActionEditorAddDescriptorInst, ActionEditorDescriptorInst, ActionEditorDetailsDescriptorInst, ActionEditorEditDescriptorInst } from './action-editor.descriptor';
1
+ import { ActionEditorDescriptorInst } from './action-editor.descriptor';
2
2
  export const actionEditorGetProviderCfgObj = (serviceOrDataProvider) => {
3
3
  const cfg = {};
4
4
  if (serviceOrDataProvider) {
@@ -12,66 +12,19 @@ export const actionEditorGetProviderCfgObj = (serviceOrDataProvider) => {
12
12
  }
13
13
  return cfg;
14
14
  };
15
- export class ActionEditorDescriptor {
16
- static create(editor, actionName, cfg) {
17
- return actionEditor(editor, actionName, cfg);
18
- }
19
- static createWithProvider(editor, serviceProvider, actionName, cfg) {
20
- return actionEditor(editor, serviceProvider, actionName, cfg);
21
- }
22
- }
23
- export function actionEditor(editor, actionNameOrServiceProvider, cfgOrActionName, cfg) {
24
- if (typeof actionNameOrServiceProvider === 'string') {
25
- // no provider
26
- return new ActionEditorDescriptorInst(editor, actionNameOrServiceProvider, {
27
- ...(typeof cfgOrActionName === 'object' ? cfgOrActionName : {}),
28
- ...cfg
29
- });
30
- }
31
- else {
32
- return new ActionEditorDescriptorInst(editor, typeof cfgOrActionName === 'string' ? cfgOrActionName : 'default', {
33
- ...actionEditorGetProviderCfgObj(actionNameOrServiceProvider),
34
- ...cfg
35
- });
36
- }
37
- }
38
- export class ActionEditorDetailsDescriptor {
39
- static create(editor) {
40
- return actionEditorDetails(editor);
41
- }
42
- static createWithProvider(editor, serviceProvider) {
43
- return actionEditorDetails(editor, serviceProvider);
44
- }
45
- }
46
- export function actionEditorDetails(editor, serviceProvider) {
47
- return new ActionEditorDetailsDescriptorInst(editor, {
48
- ...(serviceProvider ? actionEditorGetProviderCfgObj(serviceProvider) : {})
49
- });
50
- }
51
- export class ActionEditorAddDescriptor {
52
- static create(editor) {
53
- return actionEditorAdd(editor);
54
- }
55
- static createWithProvider(editor, serviceProvider) {
56
- return actionEditorAdd(editor, serviceProvider);
57
- }
58
- }
59
- export function actionEditorAdd(editor, serviceProvider) {
60
- return new ActionEditorAddDescriptorInst(editor, {
61
- ...(serviceProvider ? actionEditorGetProviderCfgObj(serviceProvider) : {})
62
- });
63
- }
64
- export class ActionEditorEditDescriptor {
65
- static create(editor) {
66
- return actionEditorEdit(editor);
67
- }
68
- static createWithProvider(editor, serviceProvider) {
69
- return actionEditorEdit(editor, serviceProvider);
70
- }
71
- }
72
- export function actionEditorEdit(editor, serviceProvider) {
73
- return new ActionEditorEditDescriptorInst(editor, {
74
- ...(serviceProvider ? actionEditorGetProviderCfgObj(serviceProvider) : {})
15
+ /**
16
+ * Creates an ActionEditorDescriptorInst instance with the provided editor descriptor and options.
17
+ *
18
+ * @param {string} actionName - The name of the action to associate with the editor.
19
+ * @param {EditorDescriptorInst<EditorModel, any>} editor - The editor descriptor instance to be used.
20
+ * @param {ActionEditorDescriptorOptsType<Model, Service, FetchInput, SubmitReturn, ValidationInput>} [opts] - Optional configuration options for the ActionEditor.
21
+ * @return {ActionEditorDescriptorInst<Model, Service, EditorModel, FetchInput, SubmitReturn, ValidationInput>} An instance of ActionEditorDescriptor with the configured parameters.
22
+ */
23
+ export function actionEditor(actionName, editor, opts) {
24
+ return new ActionEditorDescriptorInst(editor, actionName, {
25
+ ...opts,
26
+ ...(opts?.serviceProvider ? actionEditorGetProviderCfgObj(opts.serviceProvider) : {}),
27
+ model: opts?.model
75
28
  });
76
29
  }
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWVkaXRvci1kZXNjcmlwdG9yLmZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvYXBpL3NyYy9hY3Rpb24vZGVzY3JpcHRvcnMvYWN0aW9uLWVkaXRvci1kZXNjcmlwdG9yLmZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUNILDZCQUE2QixFQUU3QiwwQkFBMEIsRUFDMUIsaUNBQWlDLEVBQ2pDLDhCQUE4QixFQUNqQyxNQUFNLDRCQUE0QixDQUFDO0FBS3BDLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLENBQWlCLHFCQUFnRSxFQUFFLEVBQUU7SUFDOUgsTUFBTSxHQUFHLEdBQWlFLEVBQUUsQ0FBQztJQUM3RSxJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDeEIsSUFBSyxxQkFBNkMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNoRSxxRkFBcUY7WUFDckYsR0FBRyxDQUFDLFlBQVksR0FBRyxxQkFBNEQsQ0FBQztRQUNwRixDQUFDO2FBQU0sQ0FBQztZQUNKLEdBQUcsQ0FBQyxXQUFXLEdBQUcscUJBQWtELENBQUM7UUFDekUsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sT0FBTyxzQkFBc0I7SUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FDaEIsTUFBd0MsRUFDeEMsVUFBa0IsRUFDbEIsR0FBMEM7UUFFMUMsT0FBTyxZQUFZLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU0sTUFBTSxDQUFDLGtCQUFrQixDQUM1QixNQUF3QyxFQUN4QyxlQUF5RCxFQUN6RCxVQUFrQixFQUNsQixHQUEwQztRQUUxQyxPQUFPLFlBQVksQ0FBQyxNQUFNLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNsRSxDQUFDO0NBQ0o7QUFhRCxNQUFNLFVBQVUsWUFBWSxDQUN4QixNQUE0QyxFQUM1QywyQkFBOEUsRUFDOUUsZUFBK0QsRUFDL0QsR0FBMEM7SUFFMUMsSUFBSSxPQUFPLDJCQUEyQixLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ2xELGNBQWM7UUFDZCxPQUFPLElBQUksMEJBQTBCLENBQWlCLE1BQU0sRUFBRSwyQkFBMkIsRUFBRTtZQUN2RixHQUFHLENBQUMsT0FBTyxlQUFlLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMvRCxHQUFHLEdBQUc7U0FDVCxDQUFDLENBQUM7SUFDUCxDQUFDO1NBQU0sQ0FBQztRQUNKLE9BQU8sSUFBSSwwQkFBMEIsQ0FBaUIsTUFBTSxFQUFFLE9BQU8sZUFBZSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUU7WUFDN0gsR0FBRyw2QkFBNkIsQ0FBQywyQkFBMkIsQ0FBQztZQUM3RCxHQUFHLEdBQUc7U0FDVCxDQUFDLENBQUM7SUFDUCxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sT0FBTyw2QkFBNkI7SUFDL0IsTUFBTSxDQUFDLE1BQU0sQ0FBUSxNQUF3QztRQUNoRSxPQUFPLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxNQUFNLENBQUMsa0JBQWtCLENBQzVCLE1BQXdDLEVBQ3hDLGVBQXlEO1FBRXpELE9BQU8sbUJBQW1CLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7Q0FDSjtBQU9ELE1BQU0sVUFBVSxtQkFBbUIsQ0FDL0IsTUFBd0MsRUFDeEMsZUFBMEQ7SUFFMUQsT0FBTyxJQUFJLGlDQUFpQyxDQUFpQixNQUFNLEVBQUU7UUFDakUsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsNkJBQTZCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUM3RSxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsTUFBTSxPQUFPLHlCQUF5QjtJQUMzQixNQUFNLENBQUMsTUFBTSxDQUFRLE1BQXdDO1FBQ2hFLE9BQU8sZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxNQUFNLENBQUMsa0JBQWtCLENBQzVCLE1BQXdDLEVBQ3hDLGVBQXlEO1FBRXpELE9BQU8sZUFBZSxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0o7QUFPRCxNQUFNLFVBQVUsZUFBZSxDQUMzQixNQUF3QyxFQUN4QyxlQUEwRDtJQUUxRCxPQUFPLElBQUksNkJBQTZCLENBQWlCLE1BQU0sRUFBRTtRQUM3RCxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQzdFLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxNQUFNLE9BQU8sMEJBQTBCO0lBQzVCLE1BQU0sQ0FBQyxNQUFNLENBQVEsTUFBd0M7UUFDaEUsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0sTUFBTSxDQUFDLGtCQUFrQixDQUM1QixNQUF3QyxFQUN4QyxlQUF5RDtRQUV6RCxPQUFPLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0o7QUFPRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzVCLE1BQXdDLEVBQ3hDLGVBQTBEO0lBRTFELE9BQU8sSUFBSSw4QkFBOEIsQ0FBaUIsTUFBTSxFQUFFO1FBQzlELEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLDZCQUE2QixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7S0FDN0UsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2VydmljZUNsYXNzVHlwZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuaW1wb3J0IHtJRWRpdG9yRGF0YVByb3ZpZGVyfSBmcm9tICcuLi8uLi9lZGl0b3IvZGF0YS1wcm92aWRlcnMvZWRpdG9yLmRhdGEtcHJvdmlkZXInO1xuaW1wb3J0IHtFZGl0b3JEZXNjcmlwdG9ySW5zdH0gZnJvbSAnLi4vLi4vZWRpdG9yL2Rlc2NyaXB0b3JzL2VkaXRvci5kZXNjcmlwdG9yJztcbmltcG9ydCB7XG4gICAgQWN0aW9uRWRpdG9yQWRkRGVzY3JpcHRvckluc3QsXG4gICAgQWN0aW9uRWRpdG9yRGVzY3JpcHRvckNyZWF0ZU9wdHNQcm92aWRlclR5cGUsXG4gICAgQWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3QsXG4gICAgQWN0aW9uRWRpdG9yRGV0YWlsc0Rlc2NyaXB0b3JJbnN0LFxuICAgIEFjdGlvbkVkaXRvckVkaXREZXNjcmlwdG9ySW5zdFxufSBmcm9tICcuL2FjdGlvbi1lZGl0b3IuZGVzY3JpcHRvcic7XG5pbXBvcnQge0FjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZX0gZnJvbSAnLi9hY3Rpb24uZGVzY3JpcHRvcic7XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkVkaXRvclByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4gPSBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+IHwgSUVkaXRvckRhdGFQcm92aWRlcjxNb2RlbCwgU2VydmljZT47XG5cbmV4cG9ydCBjb25zdCBhY3Rpb25FZGl0b3JHZXRQcm92aWRlckNmZ09iaiA9IDxNb2RlbCwgU2VydmljZT4oc2VydmljZU9yRGF0YVByb3ZpZGVyPzogQWN0aW9uRWRpdG9yUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPikgPT4ge1xuICAgIGNvbnN0IGNmZzogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckNyZWF0ZU9wdHNQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+ID0ge307XG4gICAgaWYgKHNlcnZpY2VPckRhdGFQcm92aWRlcikge1xuICAgICAgICBpZiAoKHNlcnZpY2VPckRhdGFQcm92aWRlciBhcyBJRWRpdG9yRGF0YVByb3ZpZGVyKS5pc0RhdGFQcm92aWRlcikge1xuICAgICAgICAgICAgLy8gdHlwZSBjYXN0aW5nIG5lZWRlZCwgY2F1c2UgdGhlcmUgd2FzIG5vIG90aGVyIHdheSBmb3VuZCB0byBkaWZmZXJlbnRpYXRlIHRoZSB0eXBlc1xuICAgICAgICAgICAgY2ZnLmRhdGFQcm92aWRlciA9IHNlcnZpY2VPckRhdGFQcm92aWRlciBhcyBJRWRpdG9yRGF0YVByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlPjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNmZy5zZXJ2aWNlVHlwZSA9IHNlcnZpY2VPckRhdGFQcm92aWRlciBhcyBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjZmc7XG59O1xuXG5leHBvcnQgY2xhc3MgQWN0aW9uRWRpdG9yRGVzY3JpcHRvciB7XG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGU8TW9kZWw+KFxuICAgICAgICBlZGl0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsLCBhbnk+LFxuICAgICAgICBhY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgICAgIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZVxuICAgICk6IEFjdGlvbkVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsLCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIGFjdGlvbkVkaXRvcihlZGl0b3IsIGFjdGlvbk5hbWUsIGNmZyk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVXaXRoUHJvdmlkZXI8TW9kZWwsIFNlcnZpY2U+KFxuICAgICAgICBlZGl0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsLCBhbnk+LFxuICAgICAgICBzZXJ2aWNlUHJvdmlkZXI6IEFjdGlvbkVkaXRvclByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4sXG4gICAgICAgIGFjdGlvbk5hbWU6IHN0cmluZyxcbiAgICAgICAgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlXG4gICAgKTogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+IHtcbiAgICAgICAgcmV0dXJuIGFjdGlvbkVkaXRvcihlZGl0b3IsIHNlcnZpY2VQcm92aWRlciwgYWN0aW9uTmFtZSwgY2ZnKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25FZGl0b3I8TW9kZWw+KFxuICAgIGVkaXRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIGFueT4sXG4gICAgYWN0aW9uTmFtZTogc3RyaW5nLFxuICAgIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZVxuKTogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIHVuZGVmaW5lZD47XG5leHBvcnQgZnVuY3Rpb24gYWN0aW9uRWRpdG9yPE1vZGVsLCBTZXJ2aWNlPihcbiAgICBlZGl0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsLCBhbnk+LFxuICAgIHNlcnZpY2VQcm92aWRlcjogQWN0aW9uRWRpdG9yUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPixcbiAgICBhY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlXG4pOiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT47XG5leHBvcnQgZnVuY3Rpb24gYWN0aW9uRWRpdG9yPE1vZGVsLCBTZXJ2aWNlPihcbiAgICBlZGl0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPixcbiAgICBhY3Rpb25OYW1lT3JTZXJ2aWNlUHJvdmlkZXI6IHN0cmluZyB8IEFjdGlvbkVkaXRvclByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4sXG4gICAgY2ZnT3JBY3Rpb25OYW1lPzogc3RyaW5nIHwgQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlLFxuICAgIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZVxuKTogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+IHtcbiAgICBpZiAodHlwZW9mIGFjdGlvbk5hbWVPclNlcnZpY2VQcm92aWRlciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgLy8gbm8gcHJvdmlkZXJcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4oZWRpdG9yLCBhY3Rpb25OYW1lT3JTZXJ2aWNlUHJvdmlkZXIsIHtcbiAgICAgICAgICAgIC4uLih0eXBlb2YgY2ZnT3JBY3Rpb25OYW1lID09PSAnb2JqZWN0JyA/IGNmZ09yQWN0aW9uTmFtZSA6IHt9KSxcbiAgICAgICAgICAgIC4uLmNmZ1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbmV3IEFjdGlvbkVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPihlZGl0b3IsIHR5cGVvZiBjZmdPckFjdGlvbk5hbWUgPT09ICdzdHJpbmcnID8gY2ZnT3JBY3Rpb25OYW1lIDogJ2RlZmF1bHQnLCB7XG4gICAgICAgICAgICAuLi5hY3Rpb25FZGl0b3JHZXRQcm92aWRlckNmZ09iaihhY3Rpb25OYW1lT3JTZXJ2aWNlUHJvdmlkZXIpLFxuICAgICAgICAgICAgLi4uY2ZnXG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFjdGlvbkVkaXRvckRldGFpbHNEZXNjcmlwdG9yIHtcbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZTxNb2RlbD4oZWRpdG9yOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbCwgYW55Pik6IEFjdGlvbkVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsLCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIGFjdGlvbkVkaXRvckRldGFpbHMoZWRpdG9yKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZVdpdGhQcm92aWRlcjxNb2RlbCwgU2VydmljZT4oXG4gICAgICAgIGVkaXRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIGFueT4sXG4gICAgICAgIHNlcnZpY2VQcm92aWRlcjogQWN0aW9uRWRpdG9yUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPlxuICAgICk6IEFjdGlvbkVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgICAgIHJldHVybiBhY3Rpb25FZGl0b3JEZXRhaWxzKGVkaXRvciwgc2VydmljZVByb3ZpZGVyKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25FZGl0b3JEZXRhaWxzPE1vZGVsPihlZGl0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsLCBhbnk+KTogQWN0aW9uRWRpdG9yRGV0YWlsc0Rlc2NyaXB0b3JJbnN0PE1vZGVsLCB1bmRlZmluZWQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbkVkaXRvckRldGFpbHM8TW9kZWwsIFNlcnZpY2U+KFxuICAgIGVkaXRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIGFueT4sXG4gICAgc2VydmljZVByb3ZpZGVyOiBBY3Rpb25FZGl0b3JQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+XG4pOiBBY3Rpb25FZGl0b3JEZXRhaWxzRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+O1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbkVkaXRvckRldGFpbHM8TW9kZWwsIFNlcnZpY2U+KFxuICAgIGVkaXRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIGFueT4sXG4gICAgc2VydmljZVByb3ZpZGVyPzogQWN0aW9uRWRpdG9yUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPlxuKTogQWN0aW9uRWRpdG9yRGV0YWlsc0Rlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgcmV0dXJuIG5ldyBBY3Rpb25FZGl0b3JEZXRhaWxzRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+KGVkaXRvciwge1xuICAgICAgICAuLi4oc2VydmljZVByb3ZpZGVyID8gYWN0aW9uRWRpdG9yR2V0UHJvdmlkZXJDZmdPYmooc2VydmljZVByb3ZpZGVyKSA6IHt9KVxuICAgIH0pO1xufVxuXG5leHBvcnQgY2xhc3MgQWN0aW9uRWRpdG9yQWRkRGVzY3JpcHRvciB7XG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGU8TW9kZWw+KGVkaXRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIGFueT4pOiBBY3Rpb25FZGl0b3JBZGREZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiBhY3Rpb25FZGl0b3JBZGQoZWRpdG9yKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZVdpdGhQcm92aWRlcjxNb2RlbCwgU2VydmljZT4oXG4gICAgICAgIGVkaXRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIGFueT4sXG4gICAgICAgIHNlcnZpY2VQcm92aWRlcjogQWN0aW9uRWRpdG9yUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPlxuICAgICk6IEFjdGlvbkVkaXRvckFkZERlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgICAgIHJldHVybiBhY3Rpb25FZGl0b3JBZGQoZWRpdG9yLCBzZXJ2aWNlUHJvdmlkZXIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbkVkaXRvckFkZDxNb2RlbD4oZWRpdG9yOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbCwgYW55Pik6IEFjdGlvbkVkaXRvckRldGFpbHNEZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkPjtcbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25FZGl0b3JBZGQ8TW9kZWwsIFNlcnZpY2U+KFxuICAgIGVkaXRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIGFueT4sXG4gICAgc2VydmljZVByb3ZpZGVyOiBBY3Rpb25FZGl0b3JQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+XG4pOiBBY3Rpb25FZGl0b3JBZGREZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT47XG5leHBvcnQgZnVuY3Rpb24gYWN0aW9uRWRpdG9yQWRkPE1vZGVsLCBTZXJ2aWNlPihcbiAgICBlZGl0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsLCBhbnk+LFxuICAgIHNlcnZpY2VQcm92aWRlcj86IEFjdGlvbkVkaXRvclByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT5cbik6IEFjdGlvbkVkaXRvckFkZERlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgcmV0dXJuIG5ldyBBY3Rpb25FZGl0b3JBZGREZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4oZWRpdG9yLCB7XG4gICAgICAgIC4uLihzZXJ2aWNlUHJvdmlkZXIgPyBhY3Rpb25FZGl0b3JHZXRQcm92aWRlckNmZ09iaihzZXJ2aWNlUHJvdmlkZXIpIDoge30pXG4gICAgfSk7XG59XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25FZGl0b3JFZGl0RGVzY3JpcHRvciB7XG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGU8TW9kZWw+KGVkaXRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIGFueT4pOiBBY3Rpb25FZGl0b3JFZGl0RGVzY3JpcHRvckluc3Q8TW9kZWwsIHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gYWN0aW9uRWRpdG9yRWRpdChlZGl0b3IpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlV2l0aFByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlPihcbiAgICAgICAgZWRpdG9yOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbCwgYW55PixcbiAgICAgICAgc2VydmljZVByb3ZpZGVyOiBBY3Rpb25FZGl0b3JQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+XG4gICAgKTogQWN0aW9uRWRpdG9yRWRpdERlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgICAgIHJldHVybiBhY3Rpb25FZGl0b3JFZGl0KGVkaXRvciwgc2VydmljZVByb3ZpZGVyKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25FZGl0b3JFZGl0PE1vZGVsPihlZGl0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsLCBhbnk+KTogQWN0aW9uRWRpdG9yRGV0YWlsc0Rlc2NyaXB0b3JJbnN0PE1vZGVsLCB1bmRlZmluZWQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbkVkaXRvckVkaXQ8TW9kZWwsIFNlcnZpY2U+KFxuICAgIGVkaXRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIGFueT4sXG4gICAgc2VydmljZVByb3ZpZGVyOiBBY3Rpb25FZGl0b3JQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+XG4pOiBBY3Rpb25FZGl0b3JFZGl0RGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+O1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbkVkaXRvckVkaXQ8TW9kZWwsIFNlcnZpY2U+KFxuICAgIGVkaXRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIGFueT4sXG4gICAgc2VydmljZVByb3ZpZGVyPzogQWN0aW9uRWRpdG9yUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPlxuKTogQWN0aW9uRWRpdG9yRWRpdERlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgcmV0dXJuIG5ldyBBY3Rpb25FZGl0b3JFZGl0RGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+KGVkaXRvciwge1xuICAgICAgICAuLi4oc2VydmljZVByb3ZpZGVyID8gYWN0aW9uRWRpdG9yR2V0UHJvdmlkZXJDZmdPYmooc2VydmljZVByb3ZpZGVyKSA6IHt9KVxuICAgIH0pO1xufVxuIl19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWVkaXRvci1kZXNjcmlwdG9yLmZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvYXBpL3NyYy9hY3Rpb24vZGVzY3JpcHRvcnMvYWN0aW9uLWVkaXRvci1kZXNjcmlwdG9yLmZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUErQywwQkFBMEIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBYXBILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLENBQWlCLHFCQUFnRSxFQUFFLEVBQUU7SUFDOUgsTUFBTSxHQUFHLEdBQWlFLEVBQUUsQ0FBQztJQUM3RSxJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDeEIsSUFBSyxxQkFBNkMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNoRSxxRkFBcUY7WUFDckYsR0FBRyxDQUFDLFlBQVksR0FBRyxxQkFBNEQsQ0FBQztRQUNwRixDQUFDO2FBQU0sQ0FBQztZQUNKLEdBQUcsQ0FBQyxXQUFXLEdBQUcscUJBQWtELENBQUM7UUFDekUsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUN4QixVQUFrQixFQUNsQixNQUE4QyxFQUM5QyxJQUFnRztJQUVoRyxPQUFPLElBQUksMEJBQTBCLENBQXlFLE1BQU0sRUFBRSxVQUFVLEVBQUU7UUFDOUgsR0FBRyxJQUFJO1FBQ1AsR0FBRyxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JGLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSztLQUNyQixDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTZXJ2aWNlQ2xhc3NUeXBlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtNb2RlbERlc2NyaXB0b3IsIFR5cGVEZXNjcmlwdG9yfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL21vZGVsJztcblxuaW1wb3J0IHtJRWRpdG9yRGF0YVByb3ZpZGVyfSBmcm9tICcuLi8uLi9lZGl0b3IvZGF0YS1wcm92aWRlcnMvZWRpdG9yLmRhdGEtcHJvdmlkZXInO1xuaW1wb3J0IHtFZGl0b3JEZXNjcmlwdG9ySW5zdH0gZnJvbSAnLi4vLi4vZWRpdG9yL2Rlc2NyaXB0b3JzL2VkaXRvci5kZXNjcmlwdG9yJztcbmltcG9ydCB7QWN0aW9uRWRpdG9yRGVzY3JpcHRvckNyZWF0ZU9wdHNQcm92aWRlclR5cGUsIEFjdGlvbkVkaXRvckRlc2NyaXB0b3JJbnN0fSBmcm9tICcuL2FjdGlvbi1lZGl0b3IuZGVzY3JpcHRvcic7XG5pbXBvcnQge0FjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZX0gZnJvbSAnLi9hY3Rpb24uZGVzY3JpcHRvcic7XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkVkaXRvclByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4gPSBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+IHwgSUVkaXRvckRhdGFQcm92aWRlcjxNb2RlbCwgU2VydmljZT47XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkVkaXRvckRlc2NyaXB0b3JPcHRzVHlwZTxNb2RlbCwgU2VydmljZSwgRmV0Y2hJbnB1dCwgU3VibWl0UmV0dXJuLCBWYWxpZGF0aW9uSW5wdXQ+ID0gQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlICYge1xuICAgIG1vZGVsPzogTW9kZWxEZXNjcmlwdG9yPE1vZGVsPjtcbiAgICBzZXJ2aWNlUHJvdmlkZXI/OiBBY3Rpb25FZGl0b3JQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+O1xuICAgIGZldGNoSW5wdXRUeXBlPzogVHlwZURlc2NyaXB0b3I8RmV0Y2hJbnB1dD47XG4gICAgc3VibWl0UmV0dXJuVHlwZT86IFR5cGVEZXNjcmlwdG9yPFN1Ym1pdFJldHVybj47XG4gICAgdmFsaWRhdGlvblR5cGU/OiBUeXBlRGVzY3JpcHRvcjxWYWxpZGF0aW9uSW5wdXQ+O1xufTtcblxuZXhwb3J0IGNvbnN0IGFjdGlvbkVkaXRvckdldFByb3ZpZGVyQ2ZnT2JqID0gPE1vZGVsLCBTZXJ2aWNlPihzZXJ2aWNlT3JEYXRhUHJvdmlkZXI/OiBBY3Rpb25FZGl0b3JQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+KSA9PiB7XG4gICAgY29uc3QgY2ZnOiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9yQ3JlYXRlT3B0c1Byb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4gPSB7fTtcbiAgICBpZiAoc2VydmljZU9yRGF0YVByb3ZpZGVyKSB7XG4gICAgICAgIGlmICgoc2VydmljZU9yRGF0YVByb3ZpZGVyIGFzIElFZGl0b3JEYXRhUHJvdmlkZXIpLmlzRGF0YVByb3ZpZGVyKSB7XG4gICAgICAgICAgICAvLyB0eXBlIGNhc3RpbmcgbmVlZGVkLCBjYXVzZSB0aGVyZSB3YXMgbm8gb3RoZXIgd2F5IGZvdW5kIHRvIGRpZmZlcmVudGlhdGUgdGhlIHR5cGVzXG4gICAgICAgICAgICBjZmcuZGF0YVByb3ZpZGVyID0gc2VydmljZU9yRGF0YVByb3ZpZGVyIGFzIElFZGl0b3JEYXRhUHJvdmlkZXI8TW9kZWwsIFNlcnZpY2U+O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2ZnLnNlcnZpY2VUeXBlID0gc2VydmljZU9yRGF0YVByb3ZpZGVyIGFzIFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT47XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNmZztcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdCBpbnN0YW5jZSB3aXRoIHRoZSBwcm92aWRlZCBlZGl0b3IgZGVzY3JpcHRvciBhbmQgb3B0aW9ucy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWN0aW9uTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBhY3Rpb24gdG8gYXNzb2NpYXRlIHdpdGggdGhlIGVkaXRvci5cbiAqIEBwYXJhbSB7RWRpdG9yRGVzY3JpcHRvckluc3Q8RWRpdG9yTW9kZWwsIGFueT59IGVkaXRvciAtIFRoZSBlZGl0b3IgZGVzY3JpcHRvciBpbnN0YW5jZSB0byBiZSB1c2VkLlxuICogQHBhcmFtIHtBY3Rpb25FZGl0b3JEZXNjcmlwdG9yT3B0c1R5cGU8TW9kZWwsIFNlcnZpY2UsIEZldGNoSW5wdXQsIFN1Ym1pdFJldHVybiwgVmFsaWRhdGlvbklucHV0Pn0gW29wdHNdIC0gT3B0aW9uYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgQWN0aW9uRWRpdG9yLlxuICogQHJldHVybiB7QWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2UsIEVkaXRvck1vZGVsLCBGZXRjaElucHV0LCBTdWJtaXRSZXR1cm4sIFZhbGlkYXRpb25JbnB1dD59IEFuIGluc3RhbmNlIG9mIEFjdGlvbkVkaXRvckRlc2NyaXB0b3Igd2l0aCB0aGUgY29uZmlndXJlZCBwYXJhbWV0ZXJzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWN0aW9uRWRpdG9yPEVkaXRvck1vZGVsLCBNb2RlbCA9IEVkaXRvck1vZGVsLCBTZXJ2aWNlID0gdW5kZWZpbmVkLCBGZXRjaElucHV0ID0gTW9kZWwsIFN1Ym1pdFJldHVybiA9IE1vZGVsLCBWYWxpZGF0aW9uSW5wdXQgPSBNb2RlbD4oXG4gICAgYWN0aW9uTmFtZTogc3RyaW5nLFxuICAgIGVkaXRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8RWRpdG9yTW9kZWwsIGFueT4sXG4gICAgb3B0cz86IEFjdGlvbkVkaXRvckRlc2NyaXB0b3JPcHRzVHlwZTxNb2RlbCwgU2VydmljZSwgRmV0Y2hJbnB1dCwgU3VibWl0UmV0dXJuLCBWYWxpZGF0aW9uSW5wdXQ+XG4pOiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZSwgRWRpdG9yTW9kZWwsIEZldGNoSW5wdXQsIFN1Ym1pdFJldHVybiwgVmFsaWRhdGlvbklucHV0PiB7XG4gICAgcmV0dXJuIG5ldyBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZSwgRWRpdG9yTW9kZWwsIEZldGNoSW5wdXQsIFN1Ym1pdFJldHVybiwgVmFsaWRhdGlvbklucHV0PihlZGl0b3IsIGFjdGlvbk5hbWUsIHtcbiAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgLi4uKG9wdHM/LnNlcnZpY2VQcm92aWRlciA/IGFjdGlvbkVkaXRvckdldFByb3ZpZGVyQ2ZnT2JqKG9wdHMuc2VydmljZVByb3ZpZGVyKSA6IHt9KSxcbiAgICAgICAgbW9kZWw6IG9wdHM/Lm1vZGVsXG4gICAgfSk7XG59XG4iXX0=
@@ -2,13 +2,11 @@ import { CommonsInternalError, StyleSizeEnum } from '@mediusinc/mng-commons/core
2
2
  import { ActionButtonDescriptor, ButtonStyleBuilder } from '@mediusinc/mng-commons/form/api';
3
3
  import { EditorDataProviderInst } from '../../editor/data-providers/editor.data-provider';
4
4
  import { ActionEditorSubmitTypeEnum, ActionPositionEnum, ActionTypeEnum } from '../models/action.type';
5
- import { TableviewActionDefaultCategories } from '../models/tableview-action-default-categories.model';
6
5
  import { ActionDescriptorInst } from './action.descriptor';
7
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
8
6
  export class ActionEditorDescriptorInst extends ActionDescriptorInst {
9
7
  constructor(editorDescriptor, actionName, cfg) {
10
8
  super(actionName, {
11
- model: editorDescriptor.model,
9
+ model: cfg?.model ?? editorDescriptor.model,
12
10
  ...cfg
13
11
  });
14
12
  this._dataProvider = undefined;
@@ -19,9 +17,8 @@ export class ActionEditorDescriptorInst extends ActionDescriptorInst {
19
17
  this._dialogSize = StyleSizeEnum.Normal;
20
18
  this._resubmitRefetch = true;
21
19
  this._unsavedChangesConfirmation = false;
22
- this._isTableviewMainEditor = cfg?.isTableviewMainEditor ?? false;
23
20
  if (cfg?.serviceType) {
24
- this._dataProvider = new EditorDataProviderInst(this._model?.type, cfg.serviceType);
21
+ this._dataProvider = new EditorDataProviderInst(cfg.serviceType);
25
22
  }
26
23
  else if (cfg?.dataProvider) {
27
24
  this._dataProvider = cfg.dataProvider;
@@ -30,9 +27,6 @@ export class ActionEditorDescriptorInst extends ActionDescriptorInst {
30
27
  this._editorDescriptor = editorDescriptor;
31
28
  this._editorActions.push(actionEditorSubmit(this), actionEditorCancel(this));
32
29
  }
33
- get isTableviewMainEditor() {
34
- return this._isTableviewMainEditor;
35
- }
36
30
  get editorTitle() {
37
31
  return this._editorTitle;
38
32
  }
@@ -213,58 +207,4 @@ export function actionEditorSubmit(editorAction, submitType = ActionEditorSubmit
213
207
  export function actionEditorCancel(editorAction, submitType = ActionEditorSubmitTypeEnum.Cancel) {
214
208
  return new ActionEditorSubmitDescriptorInst(editorAction.actionName, editorAction.model, submitType).withButtonDescriptor(new ActionButtonDescriptor().withStyleClass(new ButtonStyleBuilder().withTextButton().withActionLevel(editorAction.level)));
215
209
  }
216
- export class ActionEditorDetailsDescriptorInst extends ActionEditorDescriptorInst {
217
- static { this.ACTION_NAME = 'details'; }
218
- constructor(editorDescriptor, cfg) {
219
- super(editorDescriptor, ActionEditorDetailsDescriptorInst.ACTION_NAME, { ...cfg, isTableviewMainEditor: true });
220
- this.withPosition(ActionPositionEnum.RowClick);
221
- this.withRouteTrigger(':itemId');
222
- this.withEditorActions([actionEditorCancel(this)]);
223
- this.withTableviewCategory(TableviewActionDefaultCategories.DETAILS);
224
- }
225
- copy() {
226
- const descriptor = new ActionEditorDetailsDescriptorInst(this.editorDescriptor.copy(), {
227
- dataProvider: this._dataProvider
228
- });
229
- this.copyFieldsTo(descriptor);
230
- return descriptor;
231
- }
232
- }
233
- export class ActionEditorAddDescriptorInst extends ActionEditorDescriptorInst {
234
- static { this.ACTION_NAME = 'add'; }
235
- constructor(editorDescriptor, cfg) {
236
- super(editorDescriptor, ActionEditorAddDescriptorInst.ACTION_NAME, { ...cfg, isTableviewMainEditor: true });
237
- this.withPosition(ActionPositionEnum.ToolbarLeft);
238
- this.withRouteTrigger('add');
239
- this.button.withIcon('pi pi-plus');
240
- this.withTableviewCategory(TableviewActionDefaultCategories.ADD);
241
- this.withUnsavedChangesConfirmation();
242
- }
243
- copy() {
244
- const descriptor = new ActionEditorAddDescriptorInst(this.editorDescriptor.copy(), {
245
- dataProvider: this._dataProvider
246
- });
247
- this.copyFieldsTo(descriptor);
248
- return descriptor;
249
- }
250
- }
251
- export class ActionEditorEditDescriptorInst extends ActionEditorDescriptorInst {
252
- static { this.ACTION_NAME = 'edit'; }
253
- constructor(editorDescriptor, cfg) {
254
- super(editorDescriptor, ActionEditorEditDescriptorInst.ACTION_NAME, { ...cfg, isTableviewMainEditor: true });
255
- this.withPosition(ActionPositionEnum.RowInline);
256
- this.button.styleClass.withSize(StyleSizeEnum.Small);
257
- this.withRouteTrigger(':itemId/edit');
258
- this.withTableviewCategory(TableviewActionDefaultCategories.EDIT);
259
- this.button.withLabel(null).withIcon('pi pi-pencil');
260
- this.withUnsavedChangesConfirmation();
261
- }
262
- copy() {
263
- const descriptor = new ActionEditorEditDescriptorInst(this.editorDescriptor.copy(), {
264
- dataProvider: this._dataProvider
265
- });
266
- this.copyFieldsTo(descriptor);
267
- return descriptor;
268
- }
269
- }
270
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWVkaXRvci5kZXNjcmlwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L2FwaS9zcmMvYWN0aW9uL2Rlc2NyaXB0b3JzL2FjdGlvbi1lZGl0b3IuZGVzY3JpcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUMsb0JBQW9CLEVBQW9CLGFBQWEsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2xHLE9BQU8sRUFBQyxzQkFBc0IsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRzNGLE9BQU8sRUFBQyxzQkFBc0IsRUFBc0IsTUFBTSxrREFBa0QsQ0FBQztBQUU3RyxPQUFPLEVBQUMsMEJBQTBCLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFckcsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0scURBQXFELENBQUM7QUFDckcsT0FBTyxFQUF1QyxvQkFBb0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBYS9GLDZEQUE2RDtBQUM3RCxNQUFNLE9BQU8sMEJBQWdHLFNBQVEsb0JBQW1DO0lBeUJwSixZQUFtQixnQkFBaUQsRUFBRSxVQUFrQixFQUFFLEdBQThEO1FBQ3BKLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFDZCxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztZQUM3QixHQUFHLEdBQUc7U0FDVCxDQUFDLENBQUM7UUEzQnFCLGtCQUFhLEdBQW9DLFNBQVMsQ0FBQztRQUc3RSxtQkFBYyxHQUFpQyxFQUFFLENBQUM7UUFDbEQsaUJBQVksR0FBbUIsU0FBUyxDQUFDO1FBQ3pDLHVCQUFrQixHQUFTLFNBQVMsQ0FBQztRQUVyQyxpQ0FBNEIsR0FBRyxLQUFLLENBQUM7UUFJckMsZ0JBQVcsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDO1FBU25DLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUN4QixnQ0FBMkIs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QkFBcUIsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQzNHLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRVEsSUFBSTtRQUNULE1BQU0sVUFBVSxHQUFHLElBQUksOEJBQThCLENBQWlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoRyxZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWE7U0FDbkMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QixPQUFPLFVBQVUsQ0FBQztJQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtDb21tb25zSW50ZXJuYWxFcnJvciwgU2VydmljZUNsYXNzVHlwZSwgU3R5bGVTaXplRW51bX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7QWN0aW9uQnV0dG9uRGVzY3JpcHRvciwgQnV0dG9uU3R5bGVCdWlsZGVyfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2Zvcm0vYXBpJztcbmltcG9ydCB7TW9kZWxEZXNjcmlwdG9yfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL21vZGVsJztcblxuaW1wb3J0IHtFZGl0b3JEYXRhUHJvdmlkZXJJbnN0LCBJRWRpdG9yRGF0YVByb3ZpZGVyfSBmcm9tICcuLi8uLi9lZGl0b3IvZGF0YS1wcm92aWRlcnMvZWRpdG9yLmRhdGEtcHJvdmlkZXInO1xuaW1wb3J0IHtFZGl0b3JEZXNjcmlwdG9ySW5zdH0gZnJvbSAnLi4vLi4vZWRpdG9yL2Rlc2NyaXB0b3JzL2VkaXRvci5kZXNjcmlwdG9yJztcbmltcG9ydCB7QWN0aW9uRWRpdG9yU3VibWl0VHlwZUVudW0sIEFjdGlvblBvc2l0aW9uRW51bSwgQWN0aW9uVHlwZUVudW19IGZyb20gJy4uL21vZGVscy9hY3Rpb24udHlwZSc7XG5pbXBvcnQge0lBY3Rpb25Db250ZXh0fSBmcm9tICcuLi9tb2RlbHMvZXhlY3V0aW9uL2FjdGlvbi1jb250ZXh0Lm1vZGVsJztcbmltcG9ydCB7VGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXN9IGZyb20gJy4uL21vZGVscy90YWJsZXZpZXctYWN0aW9uLWRlZmF1bHQtY2F0ZWdvcmllcy5tb2RlbCc7XG5pbXBvcnQge0FjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZSwgQWN0aW9uRGVzY3JpcHRvckluc3R9IGZyb20gJy4vYWN0aW9uLmRlc2NyaXB0b3InO1xuXG5leHBvcnQgdHlwZSBBY3Rpb25FZGl0b3JEZXNjcmlwdG9yQ29uc3RydWN0b3JPcHRzVHlwZTxNb2RlbCwgU2VydmljZT4gPSBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGUgJlxuICAgIEFjdGlvbkVkaXRvckRlc2NyaXB0b3JDcmVhdGVPcHRzUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPiAmIHtcbiAgICAgICAgbW9kZWw/OiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+O1xuICAgICAgICBpc1RhYmxldmlld01haW5FZGl0b3I/OiBib29sZWFuO1xuICAgIH07XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkVkaXRvckRlc2NyaXB0b3JDcmVhdGVPcHRzUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPiA9IHtcbiAgICBzZXJ2aWNlVHlwZT86IFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT47XG4gICAgZGF0YVByb3ZpZGVyPzogSUVkaXRvckRhdGFQcm92aWRlcjxNb2RlbCwgU2VydmljZT47XG59O1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5leHBvcnQgY2xhc3MgQWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3Q8SXRlbSwgU2VydmljZSA9IGFueSwgRmV0Y2hJbnB1dEl0ZW0gPSBJdGVtLCBTdWJtaXRSZXR1cm5JdGVtID0gSXRlbT4gZXh0ZW5kcyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtLCBTZXJ2aWNlPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZWRpdG9yRGVzY3JpcHRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8SXRlbSwgYW55PjtcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgX2RhdGFQcm92aWRlcj86IElFZGl0b3JEYXRhUHJvdmlkZXI8SXRlbSwgYW55PiA9IHVuZGVmaW5lZDtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2lzVGFibGV2aWV3TWFpbkVkaXRvcjogYm9vbGVhbjtcblxuICAgIHByb3RlY3RlZCBfZWRpdG9yQWN0aW9uczogQWN0aW9uRGVzY3JpcHRvckluc3Q8SXRlbT5bXSA9IFtdO1xuICAgIHByb3RlY3RlZCBfZWRpdG9yVGl0bGU/OiBzdHJpbmcgfCBudWxsID0gdW5kZWZpbmVkO1xuICAgIHByb3RlY3RlZCBfZWRpdG9yVGl0bGVQYXJhbXM/OiBhbnkgPSB1bmRlZmluZWQ7XG5cbiAgICBwcm90ZWN0ZWQgX2hhc0ZldGNoTm90aWZpY2F0aW9uU3VjY2VzcyA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBfZmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzVGl0bGU/OiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIF9mZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3NNZXNzYWdlPzogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIF9kaWFsb2dTaXplID0gU3R5bGVTaXplRW51bS5Ob3JtYWw7XG4gICAgcHJvdGVjdGVkIF9kaWFsb2dDbGFzc05hbWU/OiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgX2ZldGNoRnVuY3Rpb24/OiAoY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCBTZXJ2aWNlPikgPT4gT2JzZXJ2YWJsZTxJdGVtPjtcbiAgICBwcm90ZWN0ZWQgX3N1Ym1pdEZ1bmN0aW9uPzogKGN0eDogSUFjdGlvbkNvbnRleHQ8SXRlbSwgU2VydmljZT4pID0+IE9ic2VydmFibGU8SXRlbT47XG5cbiAgICBwcm90ZWN0ZWQgX2VkaXRvckNvbXBvbmVudD86IFR5cGU8YW55PjtcblxuICAgIHByb3RlY3RlZCBfcmVzdWJtaXRFbmFibGVkPzogYm9vbGVhbjtcbiAgICBwcm90ZWN0ZWQgX3Jlc3VibWl0UmVmZXRjaCA9IHRydWU7XG4gICAgcHJvdGVjdGVkIF91bnNhdmVkQ2hhbmdlc0NvbmZpcm1hdGlvbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGVkaXRvckRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PEl0ZW0sIGFueT4sIGFjdGlvbk5hbWU6IHN0cmluZywgY2ZnPzogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckNvbnN0cnVjdG9yT3B0c1R5cGU8SXRlbSwgU2VydmljZT4pIHtcbiAgICAgICAgc3VwZXIoYWN0aW9uTmFtZSwge1xuICAgICAgICAgICAgbW9kZWw6IGVkaXRvckRlc2NyaXB0b3IubW9kZWwsXG4gICAgICAgICAgICAuLi5jZmdcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5faXNUYWJsZXZpZXdNYWluRWRpdG9yID0gY2ZnPy5pc1RhYmxldmlld01haW5FZGl0b3IgPz8gZmFsc2U7XG5cbiAgICAgICAgaWYgKGNmZz8uc2VydmljZVR5cGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2RhdGFQcm92aWRlciA9IG5ldyBFZGl0b3JEYXRhUHJvdmlkZXJJbnN0PEl0ZW0sIFNlcnZpY2U+KHRoaXMuX21vZGVsPy50eXBlLCBjZmcuc2VydmljZVR5cGUpO1xuICAgICAgICB9IGVsc2UgaWYgKGNmZz8uZGF0YVByb3ZpZGVyKSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRhUHJvdmlkZXIgPSBjZmcuZGF0YVByb3ZpZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdHlwZSA9IEFjdGlvblR5cGVFbnVtLkVkaXRvcjtcbiAgICAgICAgdGhpcy5fZWRpdG9yRGVzY3JpcHRvciA9IGVkaXRvckRlc2NyaXB0b3I7XG4gICAgICAgIHRoaXMuX2VkaXRvckFjdGlvbnMucHVzaChhY3Rpb25FZGl0b3JTdWJtaXQodGhpcyksIGFjdGlvbkVkaXRvckNhbmNlbCh0aGlzKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc1RhYmxldmlld01haW5FZGl0b3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1RhYmxldmlld01haW5FZGl0b3I7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlZGl0b3JUaXRsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VkaXRvclRpdGxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZWRpdG9yVGl0bGVQYXJhbXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGl0b3JUaXRsZVBhcmFtcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVkaXRvckRlc2NyaXB0b3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGl0b3JEZXNjcmlwdG9yO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGlhbG9nU2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RpYWxvZ1NpemU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkaWFsb2dDbGFzc05hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaWFsb2dDbGFzc05hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNGZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNGZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3M7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3NUaXRsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZldGNoTm90aWZpY2F0aW9uU3VjY2Vzc1RpdGxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzTWVzc2FnZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZldGNoTm90aWZpY2F0aW9uU3VjY2Vzc01lc3NhZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCBkYXRhUHJvdmlkZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhUHJvdmlkZXI7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCBoYXNSdW5GdW5jdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGBSdW4gZnVuY3Rpb24gY2Fubm90IGJlIHVzZWQgaW4gZWRpdG9yIGFjdGlvbiBmb3IgJHt0aGlzLl9hY3Rpb25OYW1lTG9uZ30uIFVzZSBzdWJtaXQgZnVuY3Rpb24gaW5zdGVhZGApO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgcnVuRnVuY3Rpb24oKTogKGN0eDogSUFjdGlvbkNvbnRleHQ8SXRlbSwgdW5rbm93bj4pID0+IE9ic2VydmFibGU8SXRlbT4ge1xuICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYFJ1biBmdW5jdGlvbiBjYW5ub3QgYmUgdXNlZCBpbiBlZGl0b3IgYWN0aW9uIGZvciAke3RoaXMuX2FjdGlvbk5hbWVMb25nfS4gVXNlIHN1Ym1pdCBmdW5jdGlvbiBpbnN0ZWFkYCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNGZXRjaEZ1bmN0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHRoaXMuX2ZldGNoRnVuY3Rpb24gPT09ICdmdW5jdGlvbic7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmZXRjaEZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmV0Y2hGdW5jdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc1N1Ym1pdEZ1bmN0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHRoaXMuX2ZldGNoRnVuY3Rpb24gPT09ICdmdW5jdGlvbic7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzdWJtaXRGdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N1Ym1pdEZ1bmN0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZWRpdG9yQWN0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VkaXRvckFjdGlvbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlZGl0b3JDb21wb25lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGl0b3JDb21wb25lbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByZXN1Ym1pdEVuYWJsZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXN1Ym1pdEVuYWJsZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByZXN1Ym1pdFJlZmV0Y2goKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXN1Ym1pdFJlZmV0Y2g7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB1bnNhdmVkQ2hhbmdlc0NvbmZpcm1hdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Vuc2F2ZWRDaGFuZ2VzQ29uZmlybWF0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRWRpdG9yVGl0bGUodGl0bGU6IHN0cmluZyB8IG51bGwsIHBhcmFtcz86IGFueSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9lZGl0b3JUaXRsZSA9IHRpdGxlO1xuICAgICAgICB0aGlzLl9lZGl0b3JUaXRsZVBhcmFtcyA9IHBhcmFtcztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhEaWFsb2dTaXplKHNpemUgPSBTdHlsZVNpemVFbnVtLk5vcm1hbCk6IHRoaXMge1xuICAgICAgICB0aGlzLl9kaWFsb2dTaXplID0gc2l6ZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhEaWFsb2dDbGFzc05hbWUoY2xhc3NOYW1lOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZGlhbG9nQ2xhc3NOYW1lID0gY2xhc3NOYW1lO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgd2l0aFJ1bkZ1bmN0aW9uKGZuOiAoY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCBTZXJ2aWNlPikgPT4gT2JzZXJ2YWJsZTxJdGVtPik6IHRoaXMge1xuICAgICAgICByZXR1cm4gdGhpcy53aXRoU3VibWl0RnVuY3Rpb24oZm4gYXMgKGN0eDogSUFjdGlvbkNvbnRleHQ8SXRlbSwgU2VydmljZT4pID0+IE9ic2VydmFibGU8SXRlbT4pO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRmV0Y2hGdW5jdGlvbihmbjogKGN0eDogSUFjdGlvbkNvbnRleHQ8SXRlbSwgU2VydmljZT4pID0+IE9ic2VydmFibGU8SXRlbT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZmV0Y2hGdW5jdGlvbiA9IGZuO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFN1Ym1pdEZ1bmN0aW9uKGZuOiAoY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCBTZXJ2aWNlPikgPT4gT2JzZXJ2YWJsZTxJdGVtPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9zdWJtaXRGdW5jdGlvbiA9IGZuO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEZldGNoTm90aWZpY2F0aW9uRXJyb3IodGl0bGU/OiBzdHJpbmcsIG1lc3NhZ2U/OiBzdHJpbmcsIGhhc05vdGlmaWNhdGlvbiA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faGFzRmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzID0gaGFzTm90aWZpY2F0aW9uO1xuICAgICAgICB0aGlzLl9mZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3NUaXRsZSA9IHRpdGxlO1xuICAgICAgICB0aGlzLl9mZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3NNZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhFZGl0b3JBY3Rpb24oYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9lZGl0b3JBY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhFZGl0b3JBY3Rpb25zKGFjdGlvbnM6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PEl0ZW0+W10pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZWRpdG9yQWN0aW9ucyA9IGFjdGlvbnM7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRWRpdG9yQ29tcG9uZW50KGVkaXRvckNvbXBvbmVudDogVHlwZTxhbnk+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2VkaXRvckNvbXBvbmVudCA9IGVkaXRvckNvbXBvbmVudDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW5hYmxlcyBvciBkaXNhYmxlcyByZXN1Ym1pdCByZXN1Ym1pdCAtIHRoaXMgbWVhbnMgdGhlIGZvcm0gd2lsbCBub3QgZXhpdCBhZnRlciBzdWNjZXNzZnVsIHN1Ym1pc3Npb24sIGJ1dCB3aWxsIGluc3RlYWQgcmVtYWluIG9wZW4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtlbmFibGVkPXRydWVdIC0gU3BlY2lmaWVzIHdoZXRoZXIgcmVzdWJtaXQgaXMgZW5hYmxlZCBvciBkaXNhYmxlZC4gRGVmYXVsdHMgdG8gdHJ1ZSBpZiBub3QgcHJvdmlkZWQuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbcmVmZXRjaD10cnVlXSAtIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBkYXRhIHNob3VsZCBiZSByZWZldGNoZWQgYWZ0ZXIgcmVzdWJtaXQuIElmIG5vdCwgdGhlIGRhdGEgaW4gdGhlIGZvcm0gc3RheXMgYXMgaXMuIERlZmF1bHRzIHRvIHRydWUgaWYgbm90IHByb3ZpZGVkLlxuICAgICAqXG4gICAgICogQHJldHVybnMge3RoaXN9IC0gUmV0dXJucyB0aGUgY3VycmVudCBpbnN0YW5jZSB3aXRoIHRoZSByZXN1Ym1pdCBjb25maWd1cmF0aW9uIHVwZGF0ZWQuXG4gICAgICovXG4gICAgcHVibGljIHdpdGhSZXN1Ym1pdChlbmFibGVkPzogYm9vbGVhbiwgcmVmZXRjaCA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fcmVzdWJtaXRFbmFibGVkID0gZW5hYmxlZDtcbiAgICAgICAgdGhpcy5fcmVzdWJtaXRSZWZldGNoID0gcmVmZXRjaDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhVbnNhdmVkQ2hhbmdlc0NvbmZpcm1hdGlvbih1bnNhdmVkQ2hhbmdlc0NvbmZpcm1hdGlvbiA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fdW5zYXZlZENoYW5nZXNDb25maXJtYXRpb24gPSB1bnNhdmVkQ2hhbmdlc0NvbmZpcm1hdGlvbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgY29weUZpZWxkc1RvKFxuICAgICAgICBkZXNjcmlwdG9yOiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxJdGVtLCBTZXJ2aWNlLCBGZXRjaElucHV0SXRlbSwgU3VibWl0UmV0dXJuSXRlbT5cbiAgICApOiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxJdGVtLCBTZXJ2aWNlLCBGZXRjaElucHV0SXRlbSwgU3VibWl0UmV0dXJuSXRlbT4ge1xuICAgICAgICBzdXBlci5jb3B5RmllbGRzVG8oZGVzY3JpcHRvcik7XG4gICAgICAgIGRlc2NyaXB0b3IuX2VkaXRvckFjdGlvbnMgPSB0aGlzLl9lZGl0b3JBY3Rpb25zLm1hcChhID0+IGEuY29weSgpKTtcbiAgICAgICAgZGVzY3JpcHRvci5fZWRpdG9yVGl0bGUgPSB0aGlzLl9lZGl0b3JUaXRsZTtcbiAgICAgICAgZGVzY3JpcHRvci5fZWRpdG9yVGl0bGVQYXJhbXMgPSB0aGlzLl9lZGl0b3JUaXRsZVBhcmFtcyAhPSBudWxsID8gey4uLnRoaXMuX2VkaXRvclRpdGxlUGFyYW1zfSA6IHVuZGVmaW5lZDtcbiAgICAgICAgZGVzY3JpcHRvci5faGFzRmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzID0gdGhpcy5faGFzRmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzO1xuICAgICAgICBkZXNjcmlwdG9yLl9mZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3NUaXRsZSA9IHRoaXMuX2ZldGNoTm90aWZpY2F0aW9uU3VjY2Vzc1RpdGxlO1xuICAgICAgICBkZXNjcmlwdG9yLl9mZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3NNZXNzYWdlID0gdGhpcy5fZmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzTWVzc2FnZTtcbiAgICAgICAgZGVzY3JpcHRvci5fZGlhbG9nU2l6ZSA9IHRoaXMuX2RpYWxvZ1NpemU7XG4gICAgICAgIGRlc2NyaXB0b3IuX2RpYWxvZ0NsYXNzTmFtZSA9IHRoaXMuX2RpYWxvZ0NsYXNzTmFtZTtcbiAgICAgICAgZGVzY3JpcHRvci5fZmV0Y2hGdW5jdGlvbiA9IHRoaXMuX2ZldGNoRnVuY3Rpb247XG4gICAgICAgIGRlc2NyaXB0b3IuX3N1Ym1pdEZ1bmN0aW9uID0gdGhpcy5fc3VibWl0RnVuY3Rpb247XG4gICAgICAgIGRlc2NyaXB0b3IuX2VkaXRvckNvbXBvbmVudCA9IHRoaXMuX2VkaXRvckNvbXBvbmVudDtcbiAgICAgICAgZGVzY3JpcHRvci5fcmVzdWJtaXRFbmFibGVkID0gdGhpcy5fcmVzdWJtaXRFbmFibGVkO1xuICAgICAgICBkZXNjcmlwdG9yLl9yZXN1Ym1pdFJlZmV0Y2ggPSB0aGlzLl9yZXN1Ym1pdFJlZmV0Y2g7XG4gICAgICAgIGRlc2NyaXB0b3IuX3Vuc2F2ZWRDaGFuZ2VzQ29uZmlybWF0aW9uID0gdGhpcy5fdW5zYXZlZENoYW5nZXNDb25maXJtYXRpb247XG4gICAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGNvcHkoKTogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3Q8SXRlbSwgU2VydmljZSwgRmV0Y2hJbnB1dEl0ZW0sIFN1Ym1pdFJldHVybkl0ZW0+IHtcbiAgICAgICAgY29uc3QgZWRpdG9yID0gdGhpcy5fZWRpdG9yRGVzY3JpcHRvci5jb3B5KCk7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgQWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3Q8SXRlbSwgU2VydmljZSwgRmV0Y2hJbnB1dEl0ZW0sIFN1Ym1pdFJldHVybkl0ZW0+KGVkaXRvciwgdGhpcy5fYWN0aW9uTmFtZSwge1xuICAgICAgICAgICAgZGF0YVByb3ZpZGVyOiB0aGlzLl9kYXRhUHJvdmlkZXIsXG4gICAgICAgICAgICBtb2RlbDogdGhpcy5fbW9kZWw/LmNvcHkoKSxcbiAgICAgICAgICAgIHBhcmVudE1vZGVsOiB0aGlzLl9wYXJlbnRNb2RlbCxcbiAgICAgICAgICAgIHBhcmVudFByb3BlcnR5OiB0aGlzLl9wYXJlbnRQcm9wZXJ0eVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb3B5RmllbGRzVG8oZGVzY3JpcHRvcik7XG4gICAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFjdGlvbkVkaXRvclN1Ym1pdERlc2NyaXB0b3JJbnN0PE1vZGVsPiBleHRlbmRzIEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfc3VibWl0VHlwZTogQWN0aW9uRWRpdG9yU3VibWl0VHlwZUVudW07XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZWRpdG9yQWN0aW9uTmFtZTogc3RyaW5nLCBlZGl0b3JBY3Rpb25Nb2RlbDogTW9kZWxEZXNjcmlwdG9yPE1vZGVsPiB8IHVuZGVmaW5lZCwgc3VibWl0VHlwZSA9IEFjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtLlN1Ym1pdCkge1xuICAgICAgICBzdXBlcihzdWJtaXRUeXBlID09PSBBY3Rpb25FZGl0b3JTdWJtaXRUeXBlRW51bS5TdWJtaXQgPyBgJHtlZGl0b3JBY3Rpb25OYW1lfS5zdWJtaXRgIDogYCR7ZWRpdG9yQWN0aW9uTmFtZX0uY2FuY2VsYCwge21vZGVsOiBlZGl0b3JBY3Rpb25Nb2RlbH0pO1xuICAgICAgICB0aGlzLl9zdWJtaXRUeXBlID0gc3VibWl0VHlwZTtcbiAgICAgICAgdGhpcy5fcG9zaXRpb24gPSBBY3Rpb25Qb3NpdGlvbkVudW0uRm9vdGVyUmlnaHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzdWJtaXRUeXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3VibWl0VHlwZTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBjb3B5KCk6IEFjdGlvbkVkaXRvclN1Ym1pdERlc2NyaXB0b3JJbnN0PE1vZGVsPiB7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgQWN0aW9uRWRpdG9yU3VibWl0RGVzY3JpcHRvckluc3Q8TW9kZWw+KHRoaXMuX2FjdGlvbk5hbWUuc3BsaXQoJy4nKS5zbGljZSgwLCAtMSkuam9pbignLicpLCB0aGlzLl9tb2RlbD8uY29weSgpLCB0aGlzLl9zdWJtaXRUeXBlKTtcbiAgICAgICAgdGhpcy5jb3B5RmllbGRzVG8oZGVzY3JpcHRvcik7XG4gICAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgIH1cbn1cblxuLyoqXG4gKiBjcmVhdGVzIHByaW1hcnkgYWN0aW9uIHdpdGggcHJpbWFyeSBidXR0b24gc3R5bGVcbiAqIEBwYXJhbSBlZGl0b3JBY3Rpb25cbiAqIEBwYXJhbSBzdWJtaXRUeXBlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25FZGl0b3JTdWJtaXQ8TW9kZWw+KFxuICAgIGVkaXRvckFjdGlvbjogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWw+LFxuICAgIHN1Ym1pdFR5cGUgPSBBY3Rpb25FZGl0b3JTdWJtaXRUeXBlRW51bS5TdWJtaXRcbik6IEFjdGlvbkVkaXRvclN1Ym1pdERlc2NyaXB0b3JJbnN0PE1vZGVsPiB7XG4gICAgcmV0dXJuIG5ldyBBY3Rpb25FZGl0b3JTdWJtaXREZXNjcmlwdG9ySW5zdChlZGl0b3JBY3Rpb24uYWN0aW9uTmFtZSwgZWRpdG9yQWN0aW9uLm1vZGVsLCBzdWJtaXRUeXBlKS53aXRoQnV0dG9uRGVzY3JpcHRvcihcbiAgICAgICAgbmV3IEFjdGlvbkJ1dHRvbkRlc2NyaXB0b3IoKS53aXRoU3R5bGVDbGFzcyhuZXcgQnV0dG9uU3R5bGVCdWlsZGVyKCkud2l0aEFjdGlvbkxldmVsKGVkaXRvckFjdGlvbi5sZXZlbCkpXG4gICAgKTtcbn1cblxuLyoqXG4gKiBjcmVhdGVzIHNlY29uZGFyeSBidXR0b24gd2l0aCB0ZXh0IGJ1dHRvbiBzdHlsZVxuICogQHBhcmFtIGVkaXRvckFjdGlvblxuICogQHBhcmFtIHN1Ym1pdFR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbkVkaXRvckNhbmNlbDxNb2RlbD4oXG4gICAgZWRpdG9yQWN0aW9uOiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbD4sXG4gICAgc3VibWl0VHlwZSA9IEFjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtLkNhbmNlbFxuKTogQWN0aW9uRWRpdG9yU3VibWl0RGVzY3JpcHRvckluc3Q8TW9kZWw+IHtcbiAgICByZXR1cm4gbmV3IEFjdGlvbkVkaXRvclN1Ym1pdERlc2NyaXB0b3JJbnN0KGVkaXRvckFjdGlvbi5hY3Rpb25OYW1lLCBlZGl0b3JBY3Rpb24ubW9kZWwsIHN1Ym1pdFR5cGUpLndpdGhCdXR0b25EZXNjcmlwdG9yKFxuICAgICAgICBuZXcgQWN0aW9uQnV0dG9uRGVzY3JpcHRvcigpLndpdGhTdHlsZUNsYXNzKG5ldyBCdXR0b25TdHlsZUJ1aWxkZXIoKS53aXRoVGV4dEJ1dHRvbigpLndpdGhBY3Rpb25MZXZlbChlZGl0b3JBY3Rpb24ubGV2ZWwpKVxuICAgICk7XG59XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25FZGl0b3JEZXRhaWxzRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2UgPSBhbnk+IGV4dGVuZHMgQWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+IHtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFDVElPTl9OQU1FID0gJ2RldGFpbHMnO1xuXG4gICAgY29uc3RydWN0b3IoZWRpdG9yRGVzY3JpcHRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIGFueT4sIGNmZz86IEFjdGlvbkVkaXRvckRlc2NyaXB0b3JDcmVhdGVPcHRzUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPikge1xuICAgICAgICBzdXBlcihlZGl0b3JEZXNjcmlwdG9yLCBBY3Rpb25FZGl0b3JEZXRhaWxzRGVzY3JpcHRvckluc3QuQUNUSU9OX05BTUUsIHsuLi5jZmcsIGlzVGFibGV2aWV3TWFpbkVkaXRvcjogdHJ1ZX0pO1xuICAgICAgICB0aGlzLndpdGhQb3NpdGlvbihBY3Rpb25Qb3NpdGlvbkVudW0uUm93Q2xpY2spO1xuICAgICAgICB0aGlzLndpdGhSb3V0ZVRyaWdnZXIoJzppdGVtSWQnKTtcbiAgICAgICAgdGhpcy53aXRoRWRpdG9yQWN0aW9ucyhbYWN0aW9uRWRpdG9yQ2FuY2VsKHRoaXMpXSk7XG4gICAgICAgIHRoaXMud2l0aFRhYmxldmlld0NhdGVnb3J5KFRhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkRFVEFJTFMpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGNvcHkoKTogQWN0aW9uRWRpdG9yRGV0YWlsc0Rlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgQWN0aW9uRWRpdG9yRGV0YWlsc0Rlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPih0aGlzLmVkaXRvckRlc2NyaXB0b3IuY29weSgpLCB7XG4gICAgICAgICAgICBkYXRhUHJvdmlkZXI6IHRoaXMuX2RhdGFQcm92aWRlclxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb3B5RmllbGRzVG8oZGVzY3JpcHRvcik7XG4gICAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFjdGlvbkVkaXRvckFkZERlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlID0gYW55PiBleHRlbmRzIEFjdGlvbkVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBBQ1RJT05fTkFNRSA9ICdhZGQnO1xuXG4gICAgY29uc3RydWN0b3IoZWRpdG9yRGVzY3JpcHRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIGFueT4sIGNmZz86IEFjdGlvbkVkaXRvckRlc2NyaXB0b3JDcmVhdGVPcHRzUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPikge1xuICAgICAgICBzdXBlcihlZGl0b3JEZXNjcmlwdG9yLCBBY3Rpb25FZGl0b3JBZGREZXNjcmlwdG9ySW5zdC5BQ1RJT05fTkFNRSwgey4uLmNmZywgaXNUYWJsZXZpZXdNYWluRWRpdG9yOiB0cnVlfSk7XG4gICAgICAgIHRoaXMud2l0aFBvc2l0aW9uKEFjdGlvblBvc2l0aW9uRW51bS5Ub29sYmFyTGVmdCk7XG4gICAgICAgIHRoaXMud2l0aFJvdXRlVHJpZ2dlcignYWRkJyk7XG4gICAgICAgIHRoaXMuYnV0dG9uLndpdGhJY29uKCdwaSBwaS1wbHVzJyk7XG4gICAgICAgIHRoaXMud2l0aFRhYmxldmlld0NhdGVnb3J5KFRhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkFERCk7XG4gICAgICAgIHRoaXMud2l0aFVuc2F2ZWRDaGFuZ2VzQ29uZmlybWF0aW9uKCk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgY29weSgpOiBBY3Rpb25FZGl0b3JBZGREZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4ge1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gbmV3IEFjdGlvbkVkaXRvckFkZERlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPih0aGlzLmVkaXRvckRlc2NyaXB0b3IuY29weSgpLCB7XG4gICAgICAgICAgICBkYXRhUHJvdmlkZXI6IHRoaXMuX2RhdGFQcm92aWRlclxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb3B5RmllbGRzVG8oZGVzY3JpcHRvcik7XG4gICAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFjdGlvbkVkaXRvckVkaXREZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZSA9IGFueT4gZXh0ZW5kcyBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4ge1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQUNUSU9OX05BTUUgPSAnZWRpdCc7XG5cbiAgICBjb25zdHJ1Y3RvcihlZGl0b3JEZXNjcmlwdG9yOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbCwgYW55PiwgY2ZnPzogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckNyZWF0ZU9wdHNQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+KSB7XG4gICAgICAgIHN1cGVyKGVkaXRvckRlc2NyaXB0b3IsIEFjdGlvbkVkaXRvckVkaXREZXNjcmlwdG9ySW5zdC5BQ1RJT05fTkFNRSwgey4uLmNmZywgaXNUYWJsZXZpZXdNYWluRWRpdG9yOiB0cnVlfSk7XG4gICAgICAgIHRoaXMud2l0aFBvc2l0aW9uKEFjdGlvblBvc2l0aW9uRW51bS5Sb3dJbmxpbmUpO1xuICAgICAgICB0aGlzLmJ1dHRvbi5zdHlsZUNsYXNzLndpdGhTaXplKFN0eWxlU2l6ZUVudW0uU21hbGwpO1xuICAgICAgICB0aGlzLndpdGhSb3V0ZVRyaWdnZXIoJzppdGVtSWQvZWRpdCcpO1xuICAgICAgICB0aGlzLndpdGhUYWJsZXZpZXdDYXRlZ29yeShUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5FRElUKTtcbiAgICAgICAgdGhpcy5idXR0b24ud2l0aExhYmVsKG51bGwpLndpdGhJY29uKCdwaSBwaS1wZW5jaWwnKTtcbiAgICAgICAgdGhpcy53aXRoVW5zYXZlZENoYW5nZXNDb25maXJtYXRpb24oKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBjb3B5KCk6IEFjdGlvbkVkaXRvckVkaXREZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4ge1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gbmV3IEFjdGlvbkVkaXRvckVkaXREZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4odGhpcy5lZGl0b3JEZXNjcmlwdG9yLmNvcHkoKSwge1xuICAgICAgICAgICAgZGF0YVByb3ZpZGVyOiB0aGlzLl9kYXRhUHJvdmlkZXJcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29weUZpZWxkc1RvKGRlc2NyaXB0b3IpO1xuICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICB9XG59XG4iXX0=
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWVkaXRvci5kZXNjcmlwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L2FwaS9zcmMvYWN0aW9uL2Rlc2NyaXB0b3JzL2FjdGlvbi1lZGl0b3IuZGVzY3JpcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsb0JBQW9CLEVBQW9CLGFBQWEsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2xHLE9BQU8sRUFBQyxzQkFBc0IsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRzNGLE9BQU8sRUFBQyxzQkFBc0IsRUFBc0IsTUFBTSxrREFBa0QsQ0FBQztBQUc3RyxPQUFPLEVBQUMsMEJBQTBCLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDckcsT0FBTyxFQUF1QyxvQkFBb0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBYS9GLE1BQU0sT0FBTywwQkFPWCxTQUFRLG9CQUFzRjtJQXdCNUYsWUFBbUIsZ0JBQXVELEVBQUUsVUFBa0IsRUFBRSxHQUE4RDtRQUMxSixLQUFLLENBQUMsVUFBVSxFQUFFO1lBQ2QsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLElBQUssZ0JBQWdCLENBQUMsS0FBMEM7WUFDakYsR0FBRyxHQUFHO1NBQ1QsQ0FBQyxDQUFDO1FBMUJxQixrQkFBYSxHQUFvQyxTQUFTLENBQUM7UUFFN0UsbUJBQWMsR0FBa0UsRUFBRSxDQUFDO1FBQ25GLGlCQUFZLEdBQW1CLFNBQVMsQ0FBQztRQUN6Qyx1QkFBa0IsR0FBUyxTQUFTLENBQUM7UUFFckMsaUNBQTRCLEdBQUcsS0FBSyxDQUFDO1FBSXJDLGdCQUFXLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQVNuQyxxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDeEIsZ0NBQTJCLEdBQUcsS0FBSyxDQUFDO1FBUTFDLElBQUksR0FBRyxFQUFFLFdB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VSxFQUFFLFlBQVksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUMsb0JBQW9CLENBQ3pJLElBQUksc0JBQXNCLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxrQkFBa0IsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDN0gsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1R5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0NvbW1vbnNJbnRlcm5hbEVycm9yLCBTZXJ2aWNlQ2xhc3NUeXBlLCBTdHlsZVNpemVFbnVtfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtBY3Rpb25CdXR0b25EZXNjcmlwdG9yLCBCdXR0b25TdHlsZUJ1aWxkZXJ9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvZm9ybS9hcGknO1xuaW1wb3J0IHtNb2RlbERlc2NyaXB0b3J9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvbW9kZWwnO1xuXG5pbXBvcnQge0VkaXRvckRhdGFQcm92aWRlckluc3QsIElFZGl0b3JEYXRhUHJvdmlkZXJ9IGZyb20gJy4uLy4uL2VkaXRvci9kYXRhLXByb3ZpZGVycy9lZGl0b3IuZGF0YS1wcm92aWRlcic7XG5pbXBvcnQge0VkaXRvckRlc2NyaXB0b3JJbnN0fSBmcm9tICcuLi8uLi9lZGl0b3IvZGVzY3JpcHRvcnMvZWRpdG9yLmRlc2NyaXB0b3InO1xuaW1wb3J0IHtBY3Rpb25SdW5GblR5cGV9IGZyb20gJy4uL21vZGVscy9hY3Rpb24tZGVzY3JpcHRvci50eXBlcyc7XG5pbXBvcnQge0FjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtLCBBY3Rpb25Qb3NpdGlvbkVudW0sIEFjdGlvblR5cGVFbnVtfSBmcm9tICcuLi9tb2RlbHMvYWN0aW9uLnR5cGUnO1xuaW1wb3J0IHtBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGUsIEFjdGlvbkRlc2NyaXB0b3JJbnN0fSBmcm9tICcuL2FjdGlvbi5kZXNjcmlwdG9yJztcblxuZXhwb3J0IHR5cGUgQWN0aW9uRWRpdG9yRGVzY3JpcHRvckNvbnN0cnVjdG9yT3B0c1R5cGU8TW9kZWwsIFNlcnZpY2U+ID0gQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlICZcbiAgICBBY3Rpb25FZGl0b3JEZXNjcmlwdG9yQ3JlYXRlT3B0c1Byb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4gJiB7XG4gICAgICAgIG1vZGVsPzogTW9kZWxEZXNjcmlwdG9yPE1vZGVsPjtcbiAgICAgICAgaXNUYWJsZXZpZXdNYWluRWRpdG9yPzogYm9vbGVhbjtcbiAgICB9O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25FZGl0b3JEZXNjcmlwdG9yQ3JlYXRlT3B0c1Byb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4gPSB7XG4gICAgc2VydmljZVR5cGU/OiBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+O1xuICAgIGRhdGFQcm92aWRlcj86IElFZGl0b3JEYXRhUHJvdmlkZXI8TW9kZWwsIFNlcnZpY2U+O1xufTtcblxuZXhwb3J0IGNsYXNzIEFjdGlvbkVkaXRvckRlc2NyaXB0b3JJbnN0PFxuICAgIEl0ZW0sXG4gICAgU2VydmljZSA9IGFueSxcbiAgICBFZGl0b3JJdGVtID0gSXRlbSxcbiAgICBGZXRjaElucHV0SXRlbSA9IEl0ZW0sXG4gICAgU3VibWl0UmV0dXJuSXRlbSA9IEl0ZW0sXG4gICAgVmFsaWRhdGlvbklucHV0SXRlbSA9IEl0ZW1cbj4gZXh0ZW5kcyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtLCBTZXJ2aWNlLCBFZGl0b3JJdGVtLCBTdWJtaXRSZXR1cm5JdGVtLCBWYWxpZGF0aW9uSW5wdXRJdGVtPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZWRpdG9yRGVzY3JpcHRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8RWRpdG9ySXRlbSwgYW55PjtcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgX2RhdGFQcm92aWRlcj86IElFZGl0b3JEYXRhUHJvdmlkZXI8SXRlbSwgYW55PiA9IHVuZGVmaW5lZDtcblxuICAgIHByb3RlY3RlZCBfZWRpdG9yQWN0aW9uczogQWN0aW9uRGVzY3JpcHRvckluc3Q8YW55LCBhbnksIEVkaXRvckl0ZW0sIGFueSwgRWRpdG9ySXRlbT5bXSA9IFtdO1xuICAgIHByb3RlY3RlZCBfZWRpdG9yVGl0bGU/OiBzdHJpbmcgfCBudWxsID0gdW5kZWZpbmVkO1xuICAgIHByb3RlY3RlZCBfZWRpdG9yVGl0bGVQYXJhbXM/OiBhbnkgPSB1bmRlZmluZWQ7XG5cbiAgICBwcm90ZWN0ZWQgX2hhc0ZldGNoTm90aWZpY2F0aW9uU3VjY2VzcyA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBfZmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzVGl0bGU/OiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIF9mZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3NNZXNzYWdlPzogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIF9kaWFsb2dTaXplID0gU3R5bGVTaXplRW51bS5Ob3JtYWw7XG4gICAgcHJvdGVjdGVkIF9kaWFsb2dDbGFzc05hbWU/OiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgX2ZldGNoRnVuY3Rpb24/OiBBY3Rpb25SdW5GblR5cGU8SXRlbSwgU2VydmljZSwgRmV0Y2hJbnB1dEl0ZW0sIEVkaXRvckl0ZW0+O1xuICAgIHByb3RlY3RlZCBfc3VibWl0RnVuY3Rpb24/OiBBY3Rpb25SdW5GblR5cGU8SXRlbSwgU2VydmljZSwgRWRpdG9ySXRlbSwgU3VibWl0UmV0dXJuSXRlbT47XG5cbiAgICBwcm90ZWN0ZWQgX2VkaXRvckNvbXBvbmVudD86IFR5cGU8YW55PjtcblxuICAgIHByb3RlY3RlZCBfcmVzdWJtaXRFbmFibGVkPzogYm9vbGVhbjtcbiAgICBwcm90ZWN0ZWQgX3Jlc3VibWl0UmVmZXRjaCA9IHRydWU7XG4gICAgcHJvdGVjdGVkIF91bnNhdmVkQ2hhbmdlc0NvbmZpcm1hdGlvbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGVkaXRvckRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PEVkaXRvckl0ZW0sIGFueT4sIGFjdGlvbk5hbWU6IHN0cmluZywgY2ZnPzogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckNvbnN0cnVjdG9yT3B0c1R5cGU8SXRlbSwgU2VydmljZT4pIHtcbiAgICAgICAgc3VwZXIoYWN0aW9uTmFtZSwge1xuICAgICAgICAgICAgbW9kZWw6IGNmZz8ubW9kZWwgPz8gKGVkaXRvckRlc2NyaXB0b3IubW9kZWwgYXMgdW5rbm93biBhcyBNb2RlbERlc2NyaXB0b3I8SXRlbT4pLFxuICAgICAgICAgICAgLi4uY2ZnXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjZmc/LnNlcnZpY2VUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRhUHJvdmlkZXIgPSBuZXcgRWRpdG9yRGF0YVByb3ZpZGVySW5zdDxJdGVtLCBTZXJ2aWNlPihjZmcuc2VydmljZVR5cGUpO1xuICAgICAgICB9IGVsc2UgaWYgKGNmZz8uZGF0YVByb3ZpZGVyKSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRhUHJvdmlkZXIgPSBjZmcuZGF0YVByb3ZpZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdHlwZSA9IEFjdGlvblR5cGVFbnVtLkVkaXRvcjtcbiAgICAgICAgdGhpcy5fZWRpdG9yRGVzY3JpcHRvciA9IGVkaXRvckRlc2NyaXB0b3I7XG4gICAgICAgIHRoaXMuX2VkaXRvckFjdGlvbnMucHVzaChhY3Rpb25FZGl0b3JTdWJtaXQodGhpcyksIGFjdGlvbkVkaXRvckNhbmNlbCh0aGlzKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlZGl0b3JUaXRsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VkaXRvclRpdGxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZWRpdG9yVGl0bGVQYXJhbXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGl0b3JUaXRsZVBhcmFtcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVkaXRvckRlc2NyaXB0b3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGl0b3JEZXNjcmlwdG9yO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGlhbG9nU2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RpYWxvZ1NpemU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkaWFsb2dDbGFzc05hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaWFsb2dDbGFzc05hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNGZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNGZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3M7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3NUaXRsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZldGNoTm90aWZpY2F0aW9uU3VjY2Vzc1RpdGxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzTWVzc2FnZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZldGNoTm90aWZpY2F0aW9uU3VjY2Vzc01lc3NhZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCBkYXRhUHJvdmlkZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhUHJvdmlkZXI7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCBoYXNSdW5GdW5jdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGBSdW4gZnVuY3Rpb24gY2Fubm90IGJlIHVzZWQgaW4gZWRpdG9yIGFjdGlvbiBmb3IgJHt0aGlzLl9hY3Rpb25OYW1lTG9uZ30uIFVzZSBzdWJtaXQgZnVuY3Rpb24gaW5zdGVhZGApO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgcnVuRnVuY3Rpb24oKTogQWN0aW9uUnVuRm5UeXBlPEl0ZW0sIFNlcnZpY2UsIEVkaXRvckl0ZW0sIFN1Ym1pdFJldHVybkl0ZW0+IHtcbiAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGBSdW4gZnVuY3Rpb24gY2Fubm90IGJlIHVzZWQgaW4gZWRpdG9yIGFjdGlvbiBmb3IgJHt0aGlzLl9hY3Rpb25OYW1lTG9uZ30uIFVzZSBzdWJtaXQgZnVuY3Rpb24gaW5zdGVhZGApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzRmV0Y2hGdW5jdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB0aGlzLl9mZXRjaEZ1bmN0aW9uID09PSAnZnVuY3Rpb24nO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZmV0Y2hGdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZldGNoRnVuY3Rpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNTdWJtaXRGdW5jdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB0aGlzLl9mZXRjaEZ1bmN0aW9uID09PSAnZnVuY3Rpb24nO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc3VibWl0RnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdWJtaXRGdW5jdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVkaXRvckFjdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGl0b3JBY3Rpb25zO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZWRpdG9yQ29tcG9uZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWRpdG9yQ29tcG9uZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmVzdWJtaXRFbmFibGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzdWJtaXRFbmFibGVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmVzdWJtaXRSZWZldGNoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzdWJtaXRSZWZldGNoO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdW5zYXZlZENoYW5nZXNDb25maXJtYXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl91bnNhdmVkQ2hhbmdlc0NvbmZpcm1hdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEVkaXRvclRpdGxlKHRpdGxlOiBzdHJpbmcgfCBudWxsLCBwYXJhbXM/OiBhbnkpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZWRpdG9yVGl0bGUgPSB0aXRsZTtcbiAgICAgICAgdGhpcy5fZWRpdG9yVGl0bGVQYXJhbXMgPSBwYXJhbXM7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRGlhbG9nU2l6ZShzaXplID0gU3R5bGVTaXplRW51bS5Ob3JtYWwpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZGlhbG9nU2l6ZSA9IHNpemU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRGlhbG9nQ2xhc3NOYW1lKGNsYXNzTmFtZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2RpYWxvZ0NsYXNzTmFtZSA9IGNsYXNzTmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHdpdGhSdW5GdW5jdGlvbihmbjogQWN0aW9uUnVuRm5UeXBlPEl0ZW0sIFNlcnZpY2UsIEVkaXRvckl0ZW0sIFN1Ym1pdFJldHVybkl0ZW0+KTogdGhpcyB7XG4gICAgICAgIHJldHVybiB0aGlzLndpdGhTdWJtaXRGdW5jdGlvbihmbik7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhGZXRjaEZ1bmN0aW9uKGZuOiBBY3Rpb25SdW5GblR5cGU8SXRlbSwgU2VydmljZSwgRmV0Y2hJbnB1dEl0ZW0sIEVkaXRvckl0ZW0+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2ZldGNoRnVuY3Rpb24gPSBmbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhTdWJtaXRGdW5jdGlvbihmbjogQWN0aW9uUnVuRm5UeXBlPEl0ZW0sIFNlcnZpY2UsIEVkaXRvckl0ZW0sIFN1Ym1pdFJldHVybkl0ZW0+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3N1Ym1pdEZ1bmN0aW9uID0gZm47XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRmV0Y2hOb3RpZmljYXRpb25FcnJvcih0aXRsZT86IHN0cmluZywgbWVzc2FnZT86IHN0cmluZywgaGFzTm90aWZpY2F0aW9uID0gdHJ1ZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9oYXNGZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3MgPSBoYXNOb3RpZmljYXRpb247XG4gICAgICAgIHRoaXMuX2ZldGNoTm90aWZpY2F0aW9uU3VjY2Vzc1RpdGxlID0gdGl0bGU7XG4gICAgICAgIHRoaXMuX2ZldGNoTm90aWZpY2F0aW9uU3VjY2Vzc01lc3NhZ2UgPSBtZXNzYWdlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEVkaXRvckFjdGlvbihhY3Rpb246IEFjdGlvbkRlc2NyaXB0b3JJbnN0PGFueSwgYW55LCBFZGl0b3JJdGVtLCBhbnksIEVkaXRvckl0ZW0+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2VkaXRvckFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEVkaXRvckFjdGlvbnMoYWN0aW9uczogQWN0aW9uRGVzY3JpcHRvckluc3Q8YW55LCBhbnksIEVkaXRvckl0ZW0sIGFueSwgRWRpdG9ySXRlbT5bXSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9lZGl0b3JBY3Rpb25zID0gYWN0aW9ucztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhFZGl0b3JDb21wb25lbnQoZWRpdG9yQ29tcG9uZW50OiBUeXBlPGFueT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZWRpdG9yQ29tcG9uZW50ID0gZWRpdG9yQ29tcG9uZW50O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFbmFibGVzIG9yIGRpc2FibGVzIHJlc3VibWl0IHJlc3VibWl0IC0gdGhpcyBtZWFucyB0aGUgZm9ybSB3aWxsIG5vdCBleGl0IGFmdGVyIHN1Y2Nlc3NmdWwgc3VibWlzc2lvbiwgYnV0IHdpbGwgaW5zdGVhZCByZW1haW4gb3Blbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2VuYWJsZWQ9dHJ1ZV0gLSBTcGVjaWZpZXMgd2hldGhlciByZXN1Ym1pdCBpcyBlbmFibGVkIG9yIGRpc2FibGVkLiBEZWZhdWx0cyB0byB0cnVlIGlmIG5vdCBwcm92aWRlZC5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtyZWZldGNoPXRydWVdIC0gU3BlY2lmaWVzIHdoZXRoZXIgdGhlIGRhdGEgc2hvdWxkIGJlIHJlZmV0Y2hlZCBhZnRlciByZXN1Ym1pdC4gSWYgbm90LCB0aGUgZGF0YSBpbiB0aGUgZm9ybSBzdGF5cyBhcyBpcy4gRGVmYXVsdHMgdG8gdHJ1ZSBpZiBub3QgcHJvdmlkZWQuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7dGhpc30gLSBSZXR1cm5zIHRoZSBjdXJyZW50IGluc3RhbmNlIHdpdGggdGhlIHJlc3VibWl0IGNvbmZpZ3VyYXRpb24gdXBkYXRlZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aFJlc3VibWl0KGVuYWJsZWQ/OiBib29sZWFuLCByZWZldGNoID0gdHJ1ZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9yZXN1Ym1pdEVuYWJsZWQgPSBlbmFibGVkO1xuICAgICAgICB0aGlzLl9yZXN1Ym1pdFJlZmV0Y2ggPSByZWZldGNoO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFVuc2F2ZWRDaGFuZ2VzQ29uZmlybWF0aW9uKHVuc2F2ZWRDaGFuZ2VzQ29uZmlybWF0aW9uID0gdHJ1ZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl91bnNhdmVkQ2hhbmdlc0NvbmZpcm1hdGlvbiA9IHVuc2F2ZWRDaGFuZ2VzQ29uZmlybWF0aW9uO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBvdmVycmlkZSBjb3B5RmllbGRzVG8oXG4gICAgICAgIGRlc2NyaXB0b3I6IEFjdGlvbkVkaXRvckRlc2NyaXB0b3JJbnN0PEl0ZW0sIFNlcnZpY2UsIEVkaXRvckl0ZW0sIEZldGNoSW5wdXRJdGVtLCBTdWJtaXRSZXR1cm5JdGVtLCBWYWxpZGF0aW9uSW5wdXRJdGVtPlxuICAgICk6IEFjdGlvbkVkaXRvckRlc2NyaXB0b3JJbnN0PEl0ZW0sIFNlcnZpY2UsIEVkaXRvckl0ZW0sIEZldGNoSW5wdXRJdGVtLCBTdWJtaXRSZXR1cm5JdGVtLCBWYWxpZGF0aW9uSW5wdXRJdGVtPiB7XG4gICAgICAgIHN1cGVyLmNvcHlGaWVsZHNUbyhkZXNjcmlwdG9yKTtcbiAgICAgICAgZGVzY3JpcHRvci5fZWRpdG9yQWN0aW9ucyA9IHRoaXMuX2VkaXRvckFjdGlvbnMubWFwKGEgPT4gYS5jb3B5KCkpO1xuICAgICAgICBkZXNjcmlwdG9yLl9lZGl0b3JUaXRsZSA9IHRoaXMuX2VkaXRvclRpdGxlO1xuICAgICAgICBkZXNjcmlwdG9yLl9lZGl0b3JUaXRsZVBhcmFtcyA9IHRoaXMuX2VkaXRvclRpdGxlUGFyYW1zICE9IG51bGwgPyB7Li4udGhpcy5fZWRpdG9yVGl0bGVQYXJhbXN9IDogdW5kZWZpbmVkO1xuICAgICAgICBkZXNjcmlwdG9yLl9oYXNGZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3MgPSB0aGlzLl9oYXNGZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3M7XG4gICAgICAgIGRlc2NyaXB0b3IuX2ZldGNoTm90aWZpY2F0aW9uU3VjY2Vzc1RpdGxlID0gdGhpcy5fZmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzVGl0bGU7XG4gICAgICAgIGRlc2NyaXB0b3IuX2ZldGNoTm90aWZpY2F0aW9uU3VjY2Vzc01lc3NhZ2UgPSB0aGlzLl9mZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3NNZXNzYWdlO1xuICAgICAgICBkZXNjcmlwdG9yLl9kaWFsb2dTaXplID0gdGhpcy5fZGlhbG9nU2l6ZTtcbiAgICAgICAgZGVzY3JpcHRvci5fZGlhbG9nQ2xhc3NOYW1lID0gdGhpcy5fZGlhbG9nQ2xhc3NOYW1lO1xuICAgICAgICBkZXNjcmlwdG9yLl9mZXRjaEZ1bmN0aW9uID0gdGhpcy5fZmV0Y2hGdW5jdGlvbjtcbiAgICAgICAgZGVzY3JpcHRvci5fc3VibWl0RnVuY3Rpb24gPSB0aGlzLl9zdWJtaXRGdW5jdGlvbjtcbiAgICAgICAgZGVzY3JpcHRvci5fZWRpdG9yQ29tcG9uZW50ID0gdGhpcy5fZWRpdG9yQ29tcG9uZW50O1xuICAgICAgICBkZXNjcmlwdG9yLl9yZXN1Ym1pdEVuYWJsZWQgPSB0aGlzLl9yZXN1Ym1pdEVuYWJsZWQ7XG4gICAgICAgIGRlc2NyaXB0b3IuX3Jlc3VibWl0UmVmZXRjaCA9IHRoaXMuX3Jlc3VibWl0UmVmZXRjaDtcbiAgICAgICAgZGVzY3JpcHRvci5fdW5zYXZlZENoYW5nZXNDb25maXJtYXRpb24gPSB0aGlzLl91bnNhdmVkQ2hhbmdlc0NvbmZpcm1hdGlvbjtcbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgY29weSgpOiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxJdGVtLCBTZXJ2aWNlLCBFZGl0b3JJdGVtLCBGZXRjaElucHV0SXRlbSwgU3VibWl0UmV0dXJuSXRlbSwgVmFsaWRhdGlvbklucHV0SXRlbT4ge1xuICAgICAgICBjb25zdCBlZGl0b3IgPSB0aGlzLl9lZGl0b3JEZXNjcmlwdG9yLmNvcHkoKTtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxJdGVtLCBTZXJ2aWNlLCBFZGl0b3JJdGVtLCBGZXRjaElucHV0SXRlbSwgU3VibWl0UmV0dXJuSXRlbSwgVmFsaWRhdGlvbklucHV0SXRlbT4oZWRpdG9yLCB0aGlzLl9hY3Rpb25OYW1lLCB7XG4gICAgICAgICAgICBkYXRhUHJvdmlkZXI6IHRoaXMuX2RhdGFQcm92aWRlcixcbiAgICAgICAgICAgIG1vZGVsOiB0aGlzLl9tb2RlbD8uY29weSgpLFxuICAgICAgICAgICAgcGFyZW50TW9kZWw6IHRoaXMuX3BhcmVudE1vZGVsLFxuICAgICAgICAgICAgcGFyZW50UHJvcGVydHk6IHRoaXMuX3BhcmVudFByb3BlcnR5XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNvcHlGaWVsZHNUbyhkZXNjcmlwdG9yKTtcbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIEFjdGlvbkVkaXRvclN1Ym1pdERlc2NyaXB0b3JJbnN0PE1vZGVsLCBFZGl0b3JNb2RlbD4gZXh0ZW5kcyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkLCBFZGl0b3JNb2RlbCwgRWRpdG9yTW9kZWwsIEVkaXRvck1vZGVsPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfc3VibWl0VHlwZTogQWN0aW9uRWRpdG9yU3VibWl0VHlwZUVudW07XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZWRpdG9yQWN0aW9uTmFtZTogc3RyaW5nLCBlZGl0b3JBY3Rpb25Nb2RlbDogTW9kZWxEZXNjcmlwdG9yPE1vZGVsPiB8IHVuZGVmaW5lZCwgc3VibWl0VHlwZSA9IEFjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtLlN1Ym1pdCkge1xuICAgICAgICBzdXBlcihzdWJtaXRUeXBlID09PSBBY3Rpb25FZGl0b3JTdWJtaXRUeXBlRW51bS5TdWJtaXQgPyBgJHtlZGl0b3JBY3Rpb25OYW1lfS5zdWJtaXRgIDogYCR7ZWRpdG9yQWN0aW9uTmFtZX0uY2FuY2VsYCwge21vZGVsOiBlZGl0b3JBY3Rpb25Nb2RlbH0pO1xuICAgICAgICB0aGlzLl9zdWJtaXRUeXBlID0gc3VibWl0VHlwZTtcbiAgICAgICAgdGhpcy5fcG9zaXRpb24gPSBBY3Rpb25Qb3NpdGlvbkVudW0uRm9vdGVyUmlnaHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzdWJtaXRUeXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3VibWl0VHlwZTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBjb3B5KCk6IEFjdGlvbkVkaXRvclN1Ym1pdERlc2NyaXB0b3JJbnN0PE1vZGVsLCBFZGl0b3JNb2RlbD4ge1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gbmV3IEFjdGlvbkVkaXRvclN1Ym1pdERlc2NyaXB0b3JJbnN0PE1vZGVsLCBFZGl0b3JNb2RlbD4odGhpcy5fYWN0aW9uTmFtZS5zcGxpdCgnLicpLnNsaWNlKDAsIC0xKS5qb2luKCcuJyksIHRoaXMuX21vZGVsPy5jb3B5KCksIHRoaXMuX3N1Ym1pdFR5cGUpO1xuICAgICAgICB0aGlzLmNvcHlGaWVsZHNUbyhkZXNjcmlwdG9yKTtcbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gICAgfVxufVxuXG4vKipcbiAqIGNyZWF0ZXMgcHJpbWFyeSBhY3Rpb24gd2l0aCBwcmltYXJ5IGJ1dHRvbiBzdHlsZVxuICogQHBhcmFtIGVkaXRvckFjdGlvblxuICogQHBhcmFtIHN1Ym1pdFR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbkVkaXRvclN1Ym1pdDxNb2RlbCwgRWRpdG9yTW9kZWw+KFxuICAgIGVkaXRvckFjdGlvbjogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIGFueSwgRWRpdG9yTW9kZWwsIGFueSwgYW55LCBhbnk+LFxuICAgIHN1Ym1pdFR5cGUgPSBBY3Rpb25FZGl0b3JTdWJtaXRUeXBlRW51bS5TdWJtaXRcbik6IEFjdGlvbkVkaXRvclN1Ym1pdERlc2NyaXB0b3JJbnN0PE1vZGVsLCBFZGl0b3JNb2RlbD4ge1xuICAgIHJldHVybiBuZXcgQWN0aW9uRWRpdG9yU3VibWl0RGVzY3JpcHRvckluc3Q8TW9kZWwsIEVkaXRvck1vZGVsPihlZGl0b3JBY3Rpb24uYWN0aW9uTmFtZSwgZWRpdG9yQWN0aW9uLm1vZGVsLCBzdWJtaXRUeXBlKS53aXRoQnV0dG9uRGVzY3JpcHRvcihcbiAgICAgICAgbmV3IEFjdGlvbkJ1dHRvbkRlc2NyaXB0b3IoKS53aXRoU3R5bGVDbGFzcyhuZXcgQnV0dG9uU3R5bGVCdWlsZGVyKCkud2l0aEFjdGlvbkxldmVsKGVkaXRvckFjdGlvbi5sZXZlbCkpXG4gICAgKTtcbn1cblxuLyoqXG4gKiBjcmVhdGVzIHNlY29uZGFyeSBidXR0b24gd2l0aCB0ZXh0IGJ1dHRvbiBzdHlsZVxuICogQHBhcmFtIGVkaXRvckFjdGlvblxuICogQHBhcmFtIHN1Ym1pdFR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbkVkaXRvckNhbmNlbDxNb2RlbCwgRWRpdG9yTW9kZWw+KFxuICAgIGVkaXRvckFjdGlvbjogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIGFueSwgRWRpdG9yTW9kZWwsIGFueSwgYW55LCBhbnk+LFxuICAgIHN1Ym1pdFR5cGUgPSBBY3Rpb25FZGl0b3JTdWJtaXRUeXBlRW51bS5DYW5jZWxcbik6IEFjdGlvbkVkaXRvclN1Ym1pdERlc2NyaXB0b3JJbnN0PE1vZGVsLCBFZGl0b3JNb2RlbD4ge1xuICAgIHJldHVybiBuZXcgQWN0aW9uRWRpdG9yU3VibWl0RGVzY3JpcHRvckluc3Q8TW9kZWwsIEVkaXRvck1vZGVsPihlZGl0b3JBY3Rpb24uYWN0aW9uTmFtZSwgZWRpdG9yQWN0aW9uLm1vZGVsLCBzdWJtaXRUeXBlKS53aXRoQnV0dG9uRGVzY3JpcHRvcihcbiAgICAgICAgbmV3IEFjdGlvbkJ1dHRvbkRlc2NyaXB0b3IoKS53aXRoU3R5bGVDbGFzcyhuZXcgQnV0dG9uU3R5bGVCdWlsZGVyKCkud2l0aFRleHRCdXR0b24oKS53aXRoQWN0aW9uTGV2ZWwoZWRpdG9yQWN0aW9uLmxldmVsKSlcbiAgICApO1xufVxuIl19