@payloadcms/richtext-lexical 3.0.0-alpha.18 → 3.0.0-alpha.19

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 (276) hide show
  1. package/components.js +6 -33
  2. package/dist/cell/index.js +29 -80
  3. package/dist/exports/components.js +6 -33
  4. package/dist/field/Field.js +15 -66
  5. package/dist/field/features/align/feature.client.js +21 -31
  6. package/dist/field/features/align/feature.server.js +4 -14
  7. package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.js +4 -14
  8. package/dist/field/features/blockquote/feature.client.js +20 -30
  9. package/dist/field/features/blockquote/feature.server.js +11 -21
  10. package/dist/field/features/blockquote/markdownTransformer.js +9 -19
  11. package/dist/field/features/blocks/component/BlockContent.js +34 -85
  12. package/dist/field/features/blocks/component/FormSavePlugin.js +7 -17
  13. package/dist/field/features/blocks/component/index.js +25 -76
  14. package/dist/field/features/blocks/drawer/index.js +25 -84
  15. package/dist/field/features/blocks/feature.client.js +15 -25
  16. package/dist/field/features/blocks/feature.server.js +16 -26
  17. package/dist/field/features/blocks/nodes/BlocksNode.js +11 -78
  18. package/dist/field/features/blocks/plugin/commands.js +3 -13
  19. package/dist/field/features/blocks/plugin/index.js +20 -71
  20. package/dist/field/features/blocks/populationPromise.js +6 -16
  21. package/dist/field/features/blocks/validate.js +4 -14
  22. package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.js +2 -12
  23. package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.js +4 -14
  24. package/dist/field/features/converters/html/converter/converters/linebreak.js +2 -12
  25. package/dist/field/features/converters/html/converter/converters/paragraph.js +4 -14
  26. package/dist/field/features/converters/html/converter/converters/text.js +10 -20
  27. package/dist/field/features/converters/html/converter/defaultConverters.js +8 -18
  28. package/dist/field/features/converters/html/converter/index.js +3 -21
  29. package/dist/field/features/converters/html/converter/types.js +2 -5
  30. package/dist/field/features/converters/html/feature.server.js +2 -12
  31. package/dist/field/features/converters/html/field/index.js +11 -25
  32. package/dist/field/features/createClientComponent.js +6 -14
  33. package/dist/field/features/createFeaturePropComponent.js +5 -15
  34. package/dist/field/features/debug/testrecorder/feature.client.js +5 -15
  35. package/dist/field/features/debug/testrecorder/feature.server.js +4 -14
  36. package/dist/field/features/debug/testrecorder/plugin/index.js +41 -99
  37. package/dist/field/features/debug/treeview/feature.client.js +5 -15
  38. package/dist/field/features/debug/treeview/feature.server.js +4 -14
  39. package/dist/field/features/debug/treeview/plugin/index.js +8 -59
  40. package/dist/field/features/format/bold/feature.client.js +14 -24
  41. package/dist/field/features/format/bold/feature.server.js +8 -18
  42. package/dist/field/features/format/bold/markdownTransformers.js +5 -29
  43. package/dist/field/features/format/common/floatingSelectToolbarSection.js +2 -12
  44. package/dist/field/features/format/inlinecode/feature.client.js +12 -22
  45. package/dist/field/features/format/inlinecode/feature.server.js +6 -16
  46. package/dist/field/features/format/inlinecode/markdownTransformers.js +2 -12
  47. package/dist/field/features/format/italic/feature.client.js +13 -23
  48. package/dist/field/features/format/italic/feature.server.js +7 -17
  49. package/dist/field/features/format/italic/markdownTransformers.js +3 -21
  50. package/dist/field/features/format/strikethrough/feature.client.js +12 -22
  51. package/dist/field/features/format/strikethrough/feature.server.js +6 -16
  52. package/dist/field/features/format/strikethrough/markdownTransformers.js +2 -12
  53. package/dist/field/features/format/subscript/feature.client.js +10 -20
  54. package/dist/field/features/format/subscript/feature.server.js +4 -14
  55. package/dist/field/features/format/superscript/feature.client.js +10 -20
  56. package/dist/field/features/format/superscript/feature.server.js +4 -14
  57. package/dist/field/features/format/underline/feature.client.js +10 -20
  58. package/dist/field/features/format/underline/feature.server.js +4 -14
  59. package/dist/field/features/heading/feature.client.js +28 -37
  60. package/dist/field/features/heading/feature.server.js +12 -22
  61. package/dist/field/features/heading/markdownTransformer.js +8 -18
  62. package/dist/field/features/indent/feature.client.js +13 -23
  63. package/dist/field/features/indent/feature.server.js +4 -14
  64. package/dist/field/features/indent/floatingSelectToolbarIndentSection.js +2 -12
  65. package/dist/field/features/link/drawer/baseFields.js +6 -16
  66. package/dist/field/features/link/drawer/index.js +24 -74
  67. package/dist/field/features/link/drawer/types.js +2 -5
  68. package/dist/field/features/link/feature.client.js +29 -39
  69. package/dist/field/features/link/feature.server.js +22 -32
  70. package/dist/field/features/link/nodes/AutoLinkNode.js +10 -29
  71. package/dist/field/features/link/nodes/LinkNode.js +18 -45
  72. package/dist/field/features/link/nodes/types.js +2 -5
  73. package/dist/field/features/link/plugins/autoLink/index.js +33 -51
  74. package/dist/field/features/link/plugins/clickableLink/index.js +5 -20
  75. package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.js +3 -13
  76. package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.js +64 -114
  77. package/dist/field/features/link/plugins/floatingLinkEditor/index.js +7 -58
  78. package/dist/field/features/link/plugins/floatingLinkEditor/types.js +5 -5
  79. package/dist/field/features/link/plugins/floatingLinkEditor/utilities.js +6 -14
  80. package/dist/field/features/link/plugins/link/index.js +21 -31
  81. package/dist/field/features/link/populationPromise.js +6 -16
  82. package/dist/field/features/lists/checklist/feature.client.js +21 -31
  83. package/dist/field/features/lists/checklist/feature.server.js +12 -22
  84. package/dist/field/features/lists/checklist/markdownTransformers.js +8 -18
  85. package/dist/field/features/lists/checklist/plugin/index.js +5 -20
  86. package/dist/field/features/lists/common/markdown.js +10 -28
  87. package/dist/field/features/lists/htmlConverter.js +9 -27
  88. package/dist/field/features/lists/orderedlist/feature.client.js +19 -29
  89. package/dist/field/features/lists/orderedlist/feature.server.js +12 -22
  90. package/dist/field/features/lists/orderedlist/markdownTransformer.js +8 -18
  91. package/dist/field/features/lists/plugin/index.js +5 -20
  92. package/dist/field/features/lists/unorderedlist/feature.client.js +19 -29
  93. package/dist/field/features/lists/unorderedlist/feature.server.js +12 -22
  94. package/dist/field/features/lists/unorderedlist/markdownTransformer.js +8 -18
  95. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.js +4 -14
  96. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js +4 -14
  97. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.js +6 -16
  98. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/client.js +4 -14
  99. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js +4 -14
  100. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/index.js +6 -16
  101. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/client.js +4 -14
  102. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js +4 -14
  103. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/index.js +6 -16
  104. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.js +4 -14
  105. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js +4 -14
  106. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.js +6 -16
  107. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.js +4 -14
  108. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js +4 -14
  109. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.js +6 -16
  110. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.js +4 -14
  111. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js +4 -14
  112. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.js +6 -16
  113. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.js +4 -14
  114. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js +2 -12
  115. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.js +6 -16
  116. package/dist/field/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js +16 -26
  117. package/dist/field/features/migrations/lexicalPluginToLexical/converter/index.js +5 -29
  118. package/dist/field/features/migrations/lexicalPluginToLexical/converter/types.js +2 -5
  119. package/dist/field/features/migrations/lexicalPluginToLexical/feature.client.js +7 -17
  120. package/dist/field/features/migrations/lexicalPluginToLexical/feature.server.js +9 -19
  121. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +5 -20
  122. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +11 -73
  123. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/client.js +4 -14
  124. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/converter.js +4 -14
  125. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.js +6 -16
  126. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/client.js +4 -14
  127. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/converter.js +4 -14
  128. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/index.js +6 -16
  129. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/client.js +4 -14
  130. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/converter.js +4 -14
  131. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/index.js +6 -16
  132. package/dist/field/features/migrations/slateToLexical/converter/converters/link/client.js +4 -14
  133. package/dist/field/features/migrations/slateToLexical/converter/converters/link/converter.js +4 -14
  134. package/dist/field/features/migrations/slateToLexical/converter/converters/link/index.js +6 -16
  135. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/client.js +4 -14
  136. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/converter.js +4 -14
  137. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/index.js +6 -16
  138. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/client.js +4 -14
  139. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/converter.js +4 -14
  140. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/index.js +6 -16
  141. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/client.js +4 -14
  142. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.js +2 -12
  143. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/index.js +6 -16
  144. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/client.js +4 -14
  145. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/converter.js +4 -14
  146. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/index.js +6 -16
  147. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/client.js +4 -14
  148. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js +4 -14
  149. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/index.js +6 -16
  150. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/client.js +4 -14
  151. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.js +2 -12
  152. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/index.js +6 -16
  153. package/dist/field/features/migrations/slateToLexical/converter/defaultConverters.js +22 -32
  154. package/dist/field/features/migrations/slateToLexical/converter/index.js +14 -41
  155. package/dist/field/features/migrations/slateToLexical/converter/types.js +2 -5
  156. package/dist/field/features/migrations/slateToLexical/feature.client.js +7 -17
  157. package/dist/field/features/migrations/slateToLexical/feature.server.js +9 -19
  158. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +5 -20
  159. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +11 -73
  160. package/dist/field/features/paragraph/feature.client.js +16 -26
  161. package/dist/field/features/paragraph/feature.server.js +4 -14
  162. package/dist/field/features/relationship/drawer/commands.js +3 -13
  163. package/dist/field/features/relationship/drawer/index.js +24 -75
  164. package/dist/field/features/relationship/feature.client.js +15 -25
  165. package/dist/field/features/relationship/feature.server.js +8 -18
  166. package/dist/field/features/relationship/nodes/RelationshipNode.js +9 -71
  167. package/dist/field/features/relationship/nodes/components/RelationshipComponent.js +35 -86
  168. package/dist/field/features/relationship/plugins/index.js +22 -80
  169. package/dist/field/features/relationship/populationPromise.js +4 -14
  170. package/dist/field/features/relationship/utils/EnabledRelationshipsCondition.js +8 -59
  171. package/dist/field/features/types.js +2 -5
  172. package/dist/field/features/upload/component/ExtraFieldsDrawer/index.js +36 -84
  173. package/dist/field/features/upload/component/index.js +47 -98
  174. package/dist/field/features/upload/drawer/commands.js +3 -13
  175. package/dist/field/features/upload/drawer/index.js +23 -74
  176. package/dist/field/features/upload/feature.client.js +13 -23
  177. package/dist/field/features/upload/feature.server.js +11 -21
  178. package/dist/field/features/upload/nodes/UploadNode.js +10 -72
  179. package/dist/field/features/upload/plugin/index.js +22 -81
  180. package/dist/field/features/upload/populationPromise.js +6 -16
  181. package/dist/field/features/upload/validate.js +9 -19
  182. package/dist/field/index.js +23 -74
  183. package/dist/field/lexical/EditorPlugin.js +5 -56
  184. package/dist/field/lexical/LexicalEditor.js +39 -94
  185. package/dist/field/lexical/LexicalProvider.js +15 -66
  186. package/dist/field/lexical/config/client/EditorConfigProvider.js +11 -69
  187. package/dist/field/lexical/config/client/default.js +4 -14
  188. package/dist/field/lexical/config/client/loader.js +5 -12
  189. package/dist/field/lexical/config/client/sanitize.js +3 -21
  190. package/dist/field/lexical/config/server/default.js +44 -68
  191. package/dist/field/lexical/config/server/loader.js +3 -21
  192. package/dist/field/lexical/config/server/sanitize.js +5 -23
  193. package/dist/field/lexical/config/types.js +2 -5
  194. package/dist/field/lexical/nodes/index.js +2 -12
  195. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js +19 -70
  196. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.js +40 -98
  197. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js +11 -34
  198. package/dist/field/lexical/plugins/FloatingSelectToolbar/index.js +55 -105
  199. package/dist/field/lexical/plugins/FloatingSelectToolbar/types.js +2 -5
  200. package/dist/field/lexical/plugins/MarkdownShortcut/index.js +7 -58
  201. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +39 -64
  202. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +32 -97
  203. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js +3 -21
  204. package/dist/field/lexical/plugins/SlashMenu/index.js +27 -77
  205. package/dist/field/lexical/plugins/SlashMenu/useMenuTriggerMatch.js +8 -16
  206. package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.js +35 -84
  207. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/debounce.js +2 -12
  208. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js +2 -12
  209. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.js +18 -28
  210. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js +4 -14
  211. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.js +52 -102
  212. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +8 -18
  213. package/dist/field/lexical/plugins/handles/utils/getCollapsedMargins.js +2 -12
  214. package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.js +4 -14
  215. package/dist/field/lexical/plugins/handles/utils/isOnHandleElement.js +2 -12
  216. package/dist/field/lexical/plugins/handles/utils/setHandlePosition.js +2 -12
  217. package/dist/field/lexical/theme/EditorTheme.js +3 -13
  218. package/dist/field/lexical/ui/ContentEditable.js +6 -57
  219. package/dist/field/lexical/ui/icons/AI/index.js +7 -22
  220. package/dist/field/lexical/ui/icons/AlignCenter/index.js +6 -21
  221. package/dist/field/lexical/ui/icons/AlignJustify/index.js +6 -21
  222. package/dist/field/lexical/ui/icons/AlignLeft/index.js +6 -21
  223. package/dist/field/lexical/ui/icons/AlignRight/index.js +6 -21
  224. package/dist/field/lexical/ui/icons/Block/index.js +6 -21
  225. package/dist/field/lexical/ui/icons/Blockquote/index.js +4 -19
  226. package/dist/field/lexical/ui/icons/Bold/index.js +4 -19
  227. package/dist/field/lexical/ui/icons/Checklist/index.js +5 -20
  228. package/dist/field/lexical/ui/icons/Code/index.js +5 -20
  229. package/dist/field/lexical/ui/icons/CodeBlock/index.js +5 -20
  230. package/dist/field/lexical/ui/icons/H1/index.js +4 -19
  231. package/dist/field/lexical/ui/icons/H2/index.js +4 -19
  232. package/dist/field/lexical/ui/icons/H3/index.js +4 -19
  233. package/dist/field/lexical/ui/icons/H4/index.js +4 -19
  234. package/dist/field/lexical/ui/icons/H5/index.js +4 -19
  235. package/dist/field/lexical/ui/icons/H6/index.js +4 -19
  236. package/dist/field/lexical/ui/icons/IndentDecrease/index.js +7 -22
  237. package/dist/field/lexical/ui/icons/IndentIncrease/index.js +7 -22
  238. package/dist/field/lexical/ui/icons/Italic/index.js +4 -19
  239. package/dist/field/lexical/ui/icons/Link/index.js +7 -22
  240. package/dist/field/lexical/ui/icons/OrderedList/index.js +8 -23
  241. package/dist/field/lexical/ui/icons/Relationship/index.js +7 -22
  242. package/dist/field/lexical/ui/icons/Strikethrough/index.js +5 -20
  243. package/dist/field/lexical/ui/icons/Subscript/index.js +4 -19
  244. package/dist/field/lexical/ui/icons/Superscript/index.js +4 -19
  245. package/dist/field/lexical/ui/icons/Text/index.js +4 -19
  246. package/dist/field/lexical/ui/icons/Underline/index.js +5 -20
  247. package/dist/field/lexical/ui/icons/UnorderedList/index.js +9 -24
  248. package/dist/field/lexical/ui/icons/Upload/index.js +6 -21
  249. package/dist/field/lexical/utils/canUseDOM.js +2 -12
  250. package/dist/field/lexical/utils/cloneDeep.js +2 -12
  251. package/dist/field/lexical/utils/environment.js +13 -51
  252. package/dist/field/lexical/utils/getDOMRangeRect.js +2 -12
  253. package/dist/field/lexical/utils/getSelectedNode.js +5 -15
  254. package/dist/field/lexical/utils/guard.js +2 -12
  255. package/dist/field/lexical/utils/invariant.js +2 -12
  256. package/dist/field/lexical/utils/joinClasses.js +2 -12
  257. package/dist/field/lexical/utils/markdown/createBlockNode.js +2 -12
  258. package/dist/field/lexical/utils/nodeFormat.js +17 -61
  259. package/dist/field/lexical/utils/point.js +3 -21
  260. package/dist/field/lexical/utils/rect.js +4 -14
  261. package/dist/field/lexical/utils/setFloatingElemPosition.js +5 -12
  262. package/dist/field/lexical/utils/setFloatingElemPositionForLinkEditor.js +2 -12
  263. package/dist/field/lexical/utils/swipe.js +5 -29
  264. package/dist/field/lexical/utils/url.js +3 -21
  265. package/dist/generateComponentMap.js +10 -25
  266. package/dist/generateSchemaMap.js +4 -14
  267. package/dist/index.js +102 -489
  268. package/dist/populate/defaultValue.js +3 -21
  269. package/dist/populate/populate.js +2 -12
  270. package/dist/populate/recurseNestedFields.js +4 -14
  271. package/dist/populate/richTextRelationshipPromise.js +3 -21
  272. package/dist/types.js +2 -5
  273. package/dist/useLexicalFeature.js +6 -16
  274. package/dist/validate/index.js +6 -16
  275. package/dist/validate/validateNodes.js +2 -12
  276. package/package.json +7 -7
package/dist/index.js CHANGED
@@ -1,506 +1,44 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- $createAutoLinkNode: function() {
13
- return _AutoLinkNode.$createAutoLinkNode;
14
- },
15
- $createBlockNode: function() {
16
- return _BlocksNode.$createBlockNode;
17
- },
18
- $createLinkNode: function() {
19
- return _LinkNode.$createLinkNode;
20
- },
21
- $createRelationshipNode: function() {
22
- return _RelationshipNode.$createRelationshipNode;
23
- },
24
- $createUploadNode: function() {
25
- return _UploadNode.$createUploadNode;
26
- },
27
- $isAutoLinkNode: function() {
28
- return _AutoLinkNode.$isAutoLinkNode;
29
- },
30
- $isBlockNode: function() {
31
- return _BlocksNode.$isBlockNode;
32
- },
33
- $isLinkNode: function() {
34
- return _LinkNode.$isLinkNode;
35
- },
36
- $isRelationshipNode: function() {
37
- return _RelationshipNode.$isRelationshipNode;
38
- },
39
- $isUploadNode: function() {
40
- return _UploadNode.$isUploadNode;
41
- },
42
- AlignFeature: function() {
43
- return _featureserver.AlignFeature;
44
- },
45
- AutoLinkNode: function() {
46
- return _AutoLinkNode.AutoLinkNode;
47
- },
48
- BlockNode: function() {
49
- return _BlocksNode.BlockNode;
50
- },
51
- BlockQuoteFeature: function() {
52
- return _featureserver1.BlockQuoteFeature;
53
- },
54
- BlocksFeature: function() {
55
- return _featureserver2.BlocksFeature;
56
- },
57
- BoldFeature: function() {
58
- return _featureserver6.BoldFeature;
59
- },
60
- CAN_USE_DOM: function() {
61
- return _canUseDOM.CAN_USE_DOM;
62
- },
63
- CheckListFeature: function() {
64
- return _featureserver16.CheckListFeature;
65
- },
66
- DETAIL_TYPE_TO_DETAIL: function() {
67
- return _nodeFormat.DETAIL_TYPE_TO_DETAIL;
68
- },
69
- DOUBLE_LINE_BREAK: function() {
70
- return _nodeFormat.DOUBLE_LINE_BREAK;
71
- },
72
- ELEMENT_FORMAT_TO_TYPE: function() {
73
- return _nodeFormat.ELEMENT_FORMAT_TO_TYPE;
74
- },
75
- ELEMENT_TYPE_TO_FORMAT: function() {
76
- return _nodeFormat.ELEMENT_TYPE_TO_FORMAT;
77
- },
78
- ENABLE_SLASH_MENU_COMMAND: function() {
79
- return _index1.ENABLE_SLASH_MENU_COMMAND;
80
- },
81
- EditorConfigProvider: function() {
82
- return _EditorConfigProvider.EditorConfigProvider;
83
- },
84
- FormatSectionWithEntries: function() {
85
- return _floatingSelectToolbarSection.SectionWithEntries;
86
- },
87
- HTMLConverterFeature: function() {
88
- return _featureserver3.HTMLConverterFeature;
89
- },
90
- HeadingFeature: function() {
91
- return _featureserver13.HeadingFeature;
92
- },
93
- IS_ALL_FORMATTING: function() {
94
- return _nodeFormat.IS_ALL_FORMATTING;
95
- },
96
- IndentFeature: function() {
97
- return _featureserver14.IndentFeature;
98
- },
99
- InlineCodeFeature: function() {
100
- return _featureserver7.InlineCodeFeature;
101
- },
102
- ItalicFeature: function() {
103
- return _featureserver8.ItalicFeature;
104
- },
105
- LTR_REGEX: function() {
106
- return _nodeFormat.LTR_REGEX;
107
- },
108
- LexicalPluginToLexicalFeature: function() {
109
- return _featureserver19.LexicalPluginToLexicalFeature;
110
- },
111
- LinebreakHTMLConverter: function() {
112
- return _linebreak.LinebreakHTMLConverter;
113
- },
114
- LinkFeature: function() {
115
- return _featureserver15.LinkFeature;
116
- },
117
- LinkNode: function() {
118
- return _LinkNode.LinkNode;
119
- },
120
- NON_BREAKING_SPACE: function() {
121
- return _nodeFormat.NON_BREAKING_SPACE;
122
- },
123
- NodeFormat: function() {
124
- return _nodeFormat.NodeFormat;
125
- },
126
- OrderedListFeature: function() {
127
- return _featureserver17.OrderedListFeature;
128
- },
129
- ParagraphFeature: function() {
130
- return _featureserver21.ParagraphFeature;
131
- },
132
- ParagraphHTMLConverter: function() {
133
- return _paragraph.ParagraphHTMLConverter;
134
- },
135
- Point: function() {
136
- return _point.Point;
137
- },
138
- RTL_REGEX: function() {
139
- return _nodeFormat.RTL_REGEX;
140
- },
141
- Rect: function() {
142
- return _rect.Rect;
143
- },
144
- RelationshipFeature: function() {
145
- return _featureserver22.RelationshipFeature;
146
- },
147
- RelationshipNode: function() {
148
- return _RelationshipNode.RelationshipNode;
149
- },
150
- SlashMenuGroup: function() {
151
- return _types.SlashMenuGroup;
152
- },
153
- SlashMenuOption: function() {
154
- return _types.SlashMenuOption;
155
- },
156
- SlateBlockquoteConverter: function() {
157
- return _blockquote.SlateBlockquoteConverter;
158
- },
159
- SlateHeadingConverter: function() {
160
- return _heading.SlateHeadingConverter;
161
- },
162
- SlateIndentConverter: function() {
163
- return _indent.SlateIndentConverter;
164
- },
165
- SlateLinkConverter: function() {
166
- return _link.SlateLinkConverter;
167
- },
168
- SlateListItemConverter: function() {
169
- return _listItem.SlateListItemConverter;
170
- },
171
- SlateOrderedListConverter: function() {
172
- return _orderedList.SlateOrderedListConverter;
173
- },
174
- SlateRelationshipConverter: function() {
175
- return _relationship.SlateRelationshipConverter;
176
- },
177
- SlateToLexicalFeature: function() {
178
- return _featureserver20.SlateToLexicalFeature;
179
- },
180
- SlateUnknownConverter: function() {
181
- return _unknown.SlateUnknownConverter;
182
- },
183
- SlateUnorderedListConverter: function() {
184
- return _unorderedList.SlateUnorderedListConverter;
185
- },
186
- SlateUploadConverter: function() {
187
- return _upload.SlateUploadConverter;
188
- },
189
- StrikethroughFeature: function() {
190
- return _featureserver9.StrikethroughFeature;
191
- },
192
- SubscriptFeature: function() {
193
- return _featureserver10.SubscriptFeature;
194
- },
195
- SuperscriptFeature: function() {
196
- return _featureserver11.SuperscriptFeature;
197
- },
198
- TEXT_MODE_TO_TYPE: function() {
199
- return _nodeFormat.TEXT_MODE_TO_TYPE;
200
- },
201
- TEXT_TYPE_TO_FORMAT: function() {
202
- return _nodeFormat.TEXT_TYPE_TO_FORMAT;
203
- },
204
- TEXT_TYPE_TO_MODE: function() {
205
- return _nodeFormat.TEXT_TYPE_TO_MODE;
206
- },
207
- TOGGLE_LINK_COMMAND: function() {
208
- return _LinkNode.TOGGLE_LINK_COMMAND;
209
- },
210
- TestRecorderFeature: function() {
211
- return _featureserver4.TestRecorderFeature;
212
- },
213
- TextDropdownSectionWithEntries: function() {
214
- return _floatingSelectToolbarTextDropdownSection.TextDropdownSectionWithEntries;
215
- },
216
- TextHTMLConverter: function() {
217
- return _text.TextHTMLConverter;
218
- },
219
- TreeViewFeature: function() {
220
- return _featureserver5.TreeViewFeature;
221
- },
222
- UnderlineFeature: function() {
223
- return _featureserver12.UnderlineFeature;
224
- },
225
- UnorderedListFeature: function() {
226
- return _featureserver18.UnorderedListFeature;
227
- },
228
- UploadFeature: function() {
229
- return _featureserver23.UploadFeature;
230
- },
231
- UploadNode: function() {
232
- return _UploadNode.UploadNode;
233
- },
234
- addSwipeDownListener: function() {
235
- return _swipe.addSwipeDownListener;
236
- },
237
- addSwipeLeftListener: function() {
238
- return _swipe.addSwipeLeftListener;
239
- },
240
- addSwipeRightListener: function() {
241
- return _swipe.addSwipeRightListener;
242
- },
243
- addSwipeUpListener: function() {
244
- return _swipe.addSwipeUpListener;
245
- },
246
- cloneDeep: function() {
247
- return _cloneDeep.cloneDeep;
248
- },
249
- consolidateHTMLConverters: function() {
250
- return _field.consolidateHTMLConverters;
251
- },
252
- convertLexicalNodesToHTML: function() {
253
- return _converter.convertLexicalNodesToHTML;
254
- },
255
- convertLexicalToHTML: function() {
256
- return _converter.convertLexicalToHTML;
257
- },
258
- convertSlateNodesToLexical: function() {
259
- return _index.convertSlateNodesToLexical;
260
- },
261
- convertSlateToLexical: function() {
262
- return _index.convertSlateToLexical;
263
- },
264
- createBlockNode: function() {
265
- return _createBlockNode.createBlockNode;
266
- },
267
- createClientComponent: function() {
268
- return _createClientComponent.createClientComponent;
269
- },
270
- defaultEditorConfig: function() {
271
- return _default.defaultEditorConfig;
272
- },
273
- defaultEditorFeatures: function() {
274
- return _default.defaultEditorFeatures;
275
- },
276
- defaultEditorLexicalConfig: function() {
277
- return _default.defaultEditorLexicalConfig;
278
- },
279
- defaultHTMLConverters: function() {
280
- return _defaultConverters.defaultHTMLConverters;
281
- },
282
- defaultRichTextValue: function() {
283
- return _defaultValue.defaultRichTextValue;
284
- },
285
- defaultSanitizedServerEditorConfig: function() {
286
- return _default.defaultSanitizedServerEditorConfig;
287
- },
288
- defaultSlateConverters: function() {
289
- return _defaultConverters1.defaultSlateConverters;
290
- },
291
- getDOMRangeRect: function() {
292
- return _getDOMRangeRect.getDOMRangeRect;
293
- },
294
- getEnabledNodes: function() {
295
- return _nodes.getEnabledNodes;
296
- },
297
- getSelectedNode: function() {
298
- return _getSelectedNode.getSelectedNode;
299
- },
300
- invariant: function() {
301
- return _invariant.invariant;
302
- },
303
- isHTMLElement: function() {
304
- return _guard.isHTMLElement;
305
- },
306
- isPoint: function() {
307
- return _point.isPoint;
308
- },
309
- joinClasses: function() {
310
- return _joinClasses.joinClasses;
311
- },
312
- lexicalEditor: function() {
313
- return lexicalEditor;
314
- },
315
- lexicalHTML: function() {
316
- return _field.lexicalHTML;
317
- },
318
- loadFeatures: function() {
319
- return _loader.loadFeatures;
320
- },
321
- sanitizeClientEditorConfig: function() {
322
- return _sanitize1.sanitizeClientEditorConfig;
323
- },
324
- sanitizeClientFeatures: function() {
325
- return _sanitize1.sanitizeClientFeatures;
326
- },
327
- sanitizeServerEditorConfig: function() {
328
- return _sanitize.sanitizeServerEditorConfig;
329
- },
330
- sanitizeServerFeatures: function() {
331
- return _sanitize.sanitizeServerFeatures;
332
- },
333
- sanitizeUrl: function() {
334
- return _url.sanitizeUrl;
335
- },
336
- setFloatingElemPosition: function() {
337
- return _setFloatingElemPosition.setFloatingElemPosition;
338
- },
339
- setFloatingElemPositionForLinkEditor: function() {
340
- return _setFloatingElemPositionForLinkEditor.setFloatingElemPositionForLinkEditor;
341
- },
342
- sortFeaturesForOptimalLoading: function() {
343
- return _loader.sortFeaturesForOptimalLoading;
344
- },
345
- useEditorConfigContext: function() {
346
- return _EditorConfigProvider.useEditorConfigContext;
347
- },
348
- validateUrl: function() {
349
- return _url.validateUrl;
350
- }
351
- });
352
- const _utilities = require("payload/utilities");
353
- const _default = require("./field/lexical/config/server/default");
354
- const _loader = require("./field/lexical/config/server/loader");
355
- const _sanitize = require("./field/lexical/config/server/sanitize");
356
- const _cloneDeep = require("./field/lexical/utils/cloneDeep");
357
- const _generateComponentMap = require("./generateComponentMap");
358
- const _generateSchemaMap = require("./generateSchemaMap");
359
- const _richTextRelationshipPromise = require("./populate/richTextRelationshipPromise");
360
- const _validate = require("./validate");
361
- const _featureserver = require("./field/features/align/feature.server");
362
- const _featureserver1 = require("./field/features/blockquote/feature.server");
363
- const _featureserver2 = require("./field/features/blocks/feature.server");
364
- const _BlocksNode = require("./field/features/blocks/nodes/BlocksNode");
365
- const _floatingSelectToolbarTextDropdownSection = require("./field/features/common/floatingSelectToolbarTextDropdownSection");
366
- const _converter = require("./field/features/converters/html/converter");
367
- const _linebreak = require("./field/features/converters/html/converter/converters/linebreak");
368
- const _paragraph = require("./field/features/converters/html/converter/converters/paragraph");
369
- const _text = require("./field/features/converters/html/converter/converters/text");
370
- const _defaultConverters = require("./field/features/converters/html/converter/defaultConverters");
371
- const _featureserver3 = require("./field/features/converters/html/feature.server");
372
- const _field = require("./field/features/converters/html/field");
373
- const _createClientComponent = require("./field/features/createClientComponent");
374
- const _featureserver4 = require("./field/features/debug/testrecorder/feature.server");
375
- const _featureserver5 = require("./field/features/debug/treeview/feature.server");
376
- const _featureserver6 = require("./field/features/format/bold/feature.server");
377
- const _floatingSelectToolbarSection = require("./field/features/format/common/floatingSelectToolbarSection");
378
- const _featureserver7 = require("./field/features/format/inlinecode/feature.server");
379
- const _featureserver8 = require("./field/features/format/italic/feature.server");
380
- const _featureserver9 = require("./field/features/format/strikethrough/feature.server");
381
- const _featureserver10 = require("./field/features/format/subscript/feature.server");
382
- const _featureserver11 = require("./field/features/format/superscript/feature.server");
383
- const _featureserver12 = require("./field/features/format/underline/feature.server");
384
- const _featureserver13 = require("./field/features/heading/feature.server");
385
- const _featureserver14 = require("./field/features/indent/feature.server");
386
- const _featureserver15 = require("./field/features/link/feature.server");
387
- const _AutoLinkNode = require("./field/features/link/nodes/AutoLinkNode");
388
- const _LinkNode = require("./field/features/link/nodes/LinkNode");
389
- const _featureserver16 = require("./field/features/lists/checklist/feature.server");
390
- const _featureserver17 = require("./field/features/lists/orderedlist/feature.server");
391
- const _featureserver18 = require("./field/features/lists/unorderedlist/feature.server");
392
- const _featureserver19 = require("./field/features/migrations/lexicalPluginToLexical/feature.server");
393
- const _blockquote = require("./field/features/migrations/slateToLexical/converter/converters/blockquote");
394
- const _heading = require("./field/features/migrations/slateToLexical/converter/converters/heading");
395
- const _indent = require("./field/features/migrations/slateToLexical/converter/converters/indent");
396
- const _link = require("./field/features/migrations/slateToLexical/converter/converters/link");
397
- const _listItem = require("./field/features/migrations/slateToLexical/converter/converters/listItem");
398
- const _orderedList = require("./field/features/migrations/slateToLexical/converter/converters/orderedList");
399
- const _relationship = require("./field/features/migrations/slateToLexical/converter/converters/relationship");
400
- const _unknown = require("./field/features/migrations/slateToLexical/converter/converters/unknown");
401
- const _unorderedList = require("./field/features/migrations/slateToLexical/converter/converters/unorderedList");
402
- const _upload = require("./field/features/migrations/slateToLexical/converter/converters/upload");
403
- const _defaultConverters1 = require("./field/features/migrations/slateToLexical/converter/defaultConverters");
404
- const _index = require("./field/features/migrations/slateToLexical/converter/index");
405
- const _featureserver20 = require("./field/features/migrations/slateToLexical/feature.server");
406
- const _featureserver21 = require("./field/features/paragraph/feature.server");
407
- const _featureserver22 = require("./field/features/relationship/feature.server");
408
- const _RelationshipNode = require("./field/features/relationship/nodes/RelationshipNode");
409
- const _featureserver23 = require("./field/features/upload/feature.server");
410
- const _UploadNode = require("./field/features/upload/nodes/UploadNode");
411
- const _EditorConfigProvider = require("./field/lexical/config/client/EditorConfigProvider");
412
- const _sanitize1 = require("./field/lexical/config/client/sanitize");
413
- const _nodes = require("./field/lexical/nodes");
414
- const _index1 = require("./field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index");
415
- const _types = require("./field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types");
416
- const _canUseDOM = require("./field/lexical/utils/canUseDOM");
417
- const _getDOMRangeRect = require("./field/lexical/utils/getDOMRangeRect");
418
- const _getSelectedNode = require("./field/lexical/utils/getSelectedNode");
419
- const _guard = require("./field/lexical/utils/guard");
420
- const _invariant = require("./field/lexical/utils/invariant");
421
- const _joinClasses = require("./field/lexical/utils/joinClasses");
422
- const _createBlockNode = require("./field/lexical/utils/markdown/createBlockNode");
423
- const _nodeFormat = require("./field/lexical/utils/nodeFormat");
424
- const _point = require("./field/lexical/utils/point");
425
- const _rect = require("./field/lexical/utils/rect");
426
- const _setFloatingElemPosition = require("./field/lexical/utils/setFloatingElemPosition");
427
- const _setFloatingElemPositionForLinkEditor = require("./field/lexical/utils/setFloatingElemPositionForLinkEditor");
428
- const _swipe = require("./field/lexical/utils/swipe");
429
- const _url = require("./field/lexical/utils/url");
430
- const _defaultValue = require("./populate/defaultValue");
431
- function _getRequireWildcardCache(nodeInterop) {
432
- if (typeof WeakMap !== "function") return null;
433
- var cacheBabelInterop = new WeakMap();
434
- var cacheNodeInterop = new WeakMap();
435
- return (_getRequireWildcardCache = function(nodeInterop) {
436
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
437
- })(nodeInterop);
438
- }
439
- function _interop_require_wildcard(obj, nodeInterop) {
440
- if (!nodeInterop && obj && obj.__esModule) {
441
- return obj;
442
- }
443
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
444
- return {
445
- default: obj
446
- };
447
- }
448
- var cache = _getRequireWildcardCache(nodeInterop);
449
- if (cache && cache.has(obj)) {
450
- return cache.get(obj);
451
- }
452
- var newObj = {
453
- __proto__: null
454
- };
455
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
456
- for(var key in obj){
457
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
458
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
459
- if (desc && (desc.get || desc.set)) {
460
- Object.defineProperty(newObj, key, desc);
461
- } else {
462
- newObj[key] = obj[key];
463
- }
464
- }
465
- }
466
- newObj.default = obj;
467
- if (cache) {
468
- cache.set(obj, newObj);
469
- }
470
- return newObj;
471
- }
472
- function lexicalEditor(props) {
1
+ import { withNullableJSONSchemaType } from 'payload/utilities';
2
+ import { defaultEditorConfig, defaultEditorFeatures, defaultSanitizedServerEditorConfig } from './field/lexical/config/server/default';
3
+ import { loadFeatures } from './field/lexical/config/server/loader';
4
+ import { sanitizeServerFeatures } from './field/lexical/config/server/sanitize';
5
+ import { cloneDeep } from './field/lexical/utils/cloneDeep';
6
+ import { getGenerateComponentMap } from './generateComponentMap';
7
+ import { getGenerateSchemaMap } from './generateSchemaMap';
8
+ import { richTextRelationshipPromise } from './populate/richTextRelationshipPromise';
9
+ import { richTextValidateHOC } from './validate';
10
+ export function lexicalEditor(props) {
473
11
  let resolvedFeatureMap = null;
474
12
  let finalSanitizedEditorConfig// For server only
475
13
  ;
476
14
  if (!props || !props.features && !props.lexical) {
477
- finalSanitizedEditorConfig = (0, _cloneDeep.cloneDeep)(_default.defaultSanitizedServerEditorConfig);
15
+ finalSanitizedEditorConfig = cloneDeep(defaultSanitizedServerEditorConfig);
478
16
  resolvedFeatureMap = finalSanitizedEditorConfig.resolvedFeatureMap;
479
17
  } else {
480
18
  let features = props.features && typeof props.features === 'function' ? props.features({
481
- defaultFeatures: (0, _cloneDeep.cloneDeep)(_default.defaultEditorFeatures)
19
+ defaultFeatures: cloneDeep(defaultEditorFeatures)
482
20
  }) : props.features;
483
21
  if (!features) {
484
- features = (0, _cloneDeep.cloneDeep)(_default.defaultEditorFeatures);
22
+ features = cloneDeep(defaultEditorFeatures);
485
23
  }
486
24
  const lexical = props.lexical;
487
- resolvedFeatureMap = (0, _loader.loadFeatures)({
25
+ resolvedFeatureMap = loadFeatures({
488
26
  unSanitizedEditorConfig: {
489
27
  features,
490
- lexical: lexical ? lexical : _default.defaultEditorConfig.lexical
28
+ lexical: lexical ? lexical : defaultEditorConfig.lexical
491
29
  }
492
30
  });
493
31
  finalSanitizedEditorConfig = {
494
- features: (0, _sanitize.sanitizeServerFeatures)(resolvedFeatureMap),
495
- lexical: lexical ? lexical : _default.defaultEditorConfig.lexical,
32
+ features: sanitizeServerFeatures(resolvedFeatureMap),
33
+ lexical: lexical ? lexical : defaultEditorConfig.lexical,
496
34
  resolvedFeatureMap
497
35
  };
498
36
  }
499
37
  return {
500
38
  LazyCellComponent: ()=>// @ts-expect-error
501
- Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("./cell"))).then((module)=>{
39
+ import('./cell').then((module)=>{
502
40
  const RichTextCell = module.RichTextCell;
503
- return Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("@payloadcms/ui"))).then((module2)=>module2.withMergedProps({
41
+ return import('@payloadcms/ui').then((module2)=>module2.withMergedProps({
504
42
  Component: RichTextCell,
505
43
  toMergeIntoProps: {
506
44
  lexicalEditorConfig: finalSanitizedEditorConfig.lexical
@@ -508,9 +46,9 @@ function lexicalEditor(props) {
508
46
  }));
509
47
  }),
510
48
  LazyFieldComponent: ()=>// @ts-expect-error
511
- Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("./field"))).then((module)=>{
49
+ import('./field').then((module)=>{
512
50
  const RichTextField = module.RichTextField;
513
- return Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("@payloadcms/ui"))).then((module2)=>module2.withMergedProps({
51
+ return import('@payloadcms/ui').then((module2)=>module2.withMergedProps({
514
52
  Component: RichTextField,
515
53
  toMergeIntoProps: {
516
54
  lexicalEditorConfig: finalSanitizedEditorConfig.lexical
@@ -536,10 +74,10 @@ function lexicalEditor(props) {
536
74
  });
537
75
  },
538
76
  editorConfig: finalSanitizedEditorConfig,
539
- generateComponentMap: (0, _generateComponentMap.getGenerateComponentMap)({
77
+ generateComponentMap: getGenerateComponentMap({
540
78
  resolvedFeatureMap
541
79
  }),
542
- generateSchemaMap: (0, _generateSchemaMap.getGenerateSchemaMap)({
80
+ generateSchemaMap: getGenerateSchemaMap({
543
81
  resolvedFeatureMap
544
82
  }),
545
83
  outputSchema: ({ field, interfaceNameDefinitions, isRequired })=>{
@@ -548,7 +86,7 @@ function lexicalEditor(props) {
548
86
  // In the future, we should
549
87
  // 1) allow recursive children
550
88
  // 2) Pass in all the different types for every node added to the editorconfig. This can be done with refs in the schema.
551
- type: (0, _utilities.withNullableJSONSchemaType)('object', isRequired),
89
+ type: withNullableJSONSchemaType('object', isRequired),
552
90
  properties: {
553
91
  root: {
554
92
  type: 'object',
@@ -635,7 +173,7 @@ function lexicalEditor(props) {
635
173
  populationPromise ({ context, currentDepth, depth, field, findMany, flattenLocales, overrideAccess, populationPromises, req, showHiddenFields, siblingDoc }) {
636
174
  // check if there are any features with nodes which have populationPromises for this field
637
175
  if (finalSanitizedEditorConfig?.features?.populationPromises?.size) {
638
- return (0, _richTextRelationshipPromise.richTextRelationshipPromise)({
176
+ return richTextRelationshipPromise({
639
177
  context,
640
178
  currentDepth,
641
179
  depth,
@@ -652,10 +190,85 @@ function lexicalEditor(props) {
652
190
  }
653
191
  return null;
654
192
  },
655
- validate: (0, _validate.richTextValidateHOC)({
193
+ validate: richTextValidateHOC({
656
194
  editorConfig: finalSanitizedEditorConfig
657
195
  })
658
196
  };
659
197
  }
198
+ export { AlignFeature } from './field/features/align/feature.server';
199
+ export { BlockQuoteFeature } from './field/features/blockquote/feature.server';
200
+ export { BlocksFeature } from './field/features/blocks/feature.server';
201
+ export { $createBlockNode, $isBlockNode, BlockNode } from './field/features/blocks/nodes/BlocksNode';
202
+ export { TextDropdownSectionWithEntries } from './field/features/common/floatingSelectToolbarTextDropdownSection';
203
+ export { convertLexicalNodesToHTML, convertLexicalToHTML } from './field/features/converters/html/converter';
204
+ export { LinebreakHTMLConverter } from './field/features/converters/html/converter/converters/linebreak';
205
+ export { ParagraphHTMLConverter } from './field/features/converters/html/converter/converters/paragraph';
206
+ export { TextHTMLConverter } from './field/features/converters/html/converter/converters/text';
207
+ export { defaultHTMLConverters } from './field/features/converters/html/converter/defaultConverters';
208
+ export { HTMLConverterFeature } from './field/features/converters/html/feature.server';
209
+ export { consolidateHTMLConverters } from './field/features/converters/html/field';
210
+ export { lexicalHTML } from './field/features/converters/html/field';
211
+ export { createClientComponent } from './field/features/createClientComponent';
212
+ export { TestRecorderFeature } from './field/features/debug/testrecorder/feature.server';
213
+ export { TreeViewFeature } from './field/features/debug/treeview/feature.server';
214
+ export { BoldFeature } from './field/features/format/bold/feature.server';
215
+ export { SectionWithEntries as FormatSectionWithEntries } from './field/features/format/common/floatingSelectToolbarSection';
216
+ export { InlineCodeFeature } from './field/features/format/inlinecode/feature.server';
217
+ export { ItalicFeature } from './field/features/format/italic/feature.server';
218
+ export { StrikethroughFeature } from './field/features/format/strikethrough/feature.server';
219
+ export { SubscriptFeature } from './field/features/format/subscript/feature.server';
220
+ export { SuperscriptFeature } from './field/features/format/superscript/feature.server';
221
+ export { UnderlineFeature } from './field/features/format/underline/feature.server';
222
+ export { HeadingFeature } from './field/features/heading/feature.server';
223
+ export { IndentFeature } from './field/features/indent/feature.server';
224
+ export { LinkFeature } from './field/features/link/feature.server';
225
+ export { $createAutoLinkNode, $isAutoLinkNode, AutoLinkNode } from './field/features/link/nodes/AutoLinkNode';
226
+ export { $createLinkNode, $isLinkNode, LinkNode, TOGGLE_LINK_COMMAND } from './field/features/link/nodes/LinkNode';
227
+ export { CheckListFeature } from './field/features/lists/checklist/feature.server';
228
+ export { OrderedListFeature } from './field/features/lists/orderedlist/feature.server';
229
+ export { UnorderedListFeature } from './field/features/lists/unorderedlist/feature.server';
230
+ export { LexicalPluginToLexicalFeature } from './field/features/migrations/lexicalPluginToLexical/feature.server';
231
+ export { SlateBlockquoteConverter } from './field/features/migrations/slateToLexical/converter/converters/blockquote';
232
+ export { SlateHeadingConverter } from './field/features/migrations/slateToLexical/converter/converters/heading';
233
+ export { SlateIndentConverter } from './field/features/migrations/slateToLexical/converter/converters/indent';
234
+ export { SlateLinkConverter } from './field/features/migrations/slateToLexical/converter/converters/link';
235
+ export { SlateListItemConverter } from './field/features/migrations/slateToLexical/converter/converters/listItem';
236
+ export { SlateOrderedListConverter } from './field/features/migrations/slateToLexical/converter/converters/orderedList';
237
+ export { SlateRelationshipConverter } from './field/features/migrations/slateToLexical/converter/converters/relationship';
238
+ export { SlateUnknownConverter } from './field/features/migrations/slateToLexical/converter/converters/unknown';
239
+ export { SlateUnorderedListConverter } from './field/features/migrations/slateToLexical/converter/converters/unorderedList';
240
+ export { SlateUploadConverter } from './field/features/migrations/slateToLexical/converter/converters/upload';
241
+ export { defaultSlateConverters } from './field/features/migrations/slateToLexical/converter/defaultConverters';
242
+ export { convertSlateNodesToLexical, convertSlateToLexical } from './field/features/migrations/slateToLexical/converter/index';
243
+ export { SlateToLexicalFeature } from './field/features/migrations/slateToLexical/feature.server';
244
+ export { ParagraphFeature } from './field/features/paragraph/feature.server';
245
+ export { RelationshipFeature } from './field/features/relationship/feature.server';
246
+ export { $createRelationshipNode, $isRelationshipNode, RelationshipNode } from './field/features/relationship/nodes/RelationshipNode';
247
+ export { UploadFeature } from './field/features/upload/feature.server';
248
+ export { $createUploadNode, $isUploadNode, UploadNode } from './field/features/upload/nodes/UploadNode';
249
+ export { EditorConfigProvider, useEditorConfigContext } from './field/lexical/config/client/EditorConfigProvider';
250
+ export { sanitizeClientEditorConfig, sanitizeClientFeatures } from './field/lexical/config/client/sanitize';
251
+ export { defaultEditorConfig, defaultEditorFeatures, defaultEditorLexicalConfig, defaultSanitizedServerEditorConfig } from './field/lexical/config/server/default';
252
+ export { loadFeatures, sortFeaturesForOptimalLoading } from './field/lexical/config/server/loader';
253
+ export { sanitizeServerEditorConfig, sanitizeServerFeatures } from './field/lexical/config/server/sanitize';
254
+ export { getEnabledNodes } from './field/lexical/nodes';
255
+ export { ENABLE_SLASH_MENU_COMMAND } from './field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index';
256
+ export { SlashMenuGroup, SlashMenuOption } from './field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types';
257
+ export { CAN_USE_DOM } from './field/lexical/utils/canUseDOM';
258
+ export { cloneDeep } from './field/lexical/utils/cloneDeep';
259
+ export { getDOMRangeRect } from './field/lexical/utils/getDOMRangeRect';
260
+ export { getSelectedNode } from './field/lexical/utils/getSelectedNode';
261
+ export { isHTMLElement } from './field/lexical/utils/guard';
262
+ export { invariant } from './field/lexical/utils/invariant';
263
+ export { joinClasses } from './field/lexical/utils/joinClasses';
264
+ export { createBlockNode } from './field/lexical/utils/markdown/createBlockNode';
265
+ export { DETAIL_TYPE_TO_DETAIL, DOUBLE_LINE_BREAK, ELEMENT_FORMAT_TO_TYPE, ELEMENT_TYPE_TO_FORMAT, IS_ALL_FORMATTING, LTR_REGEX, NON_BREAKING_SPACE, NodeFormat, RTL_REGEX, TEXT_MODE_TO_TYPE, TEXT_TYPE_TO_FORMAT, TEXT_TYPE_TO_MODE } from './field/lexical/utils/nodeFormat';
266
+ export { Point, isPoint } from './field/lexical/utils/point';
267
+ export { Rect } from './field/lexical/utils/rect';
268
+ export { setFloatingElemPosition } from './field/lexical/utils/setFloatingElemPosition';
269
+ export { setFloatingElemPositionForLinkEditor } from './field/lexical/utils/setFloatingElemPositionForLinkEditor';
270
+ export { addSwipeDownListener, addSwipeLeftListener, addSwipeRightListener, addSwipeUpListener } from './field/lexical/utils/swipe';
271
+ export { sanitizeUrl, validateUrl } from './field/lexical/utils/url';
272
+ export { defaultRichTextValue } from './populate/defaultValue';
660
273
 
661
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEpTT05TY2hlbWE0IH0gZnJvbSAnanNvbi1zY2hlbWEnXG5pbXBvcnQgdHlwZSB7IFNlcmlhbGl6ZWRFZGl0b3JTdGF0ZSB9IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgdHlwZSB7IEVkaXRvckNvbmZpZyBhcyBMZXhpY2FsRWRpdG9yQ29uZmlnIH0gZnJvbSAnbGV4aWNhbC9MZXhpY2FsRWRpdG9yJ1xuaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSB9IGZyb20gJ3BheWxvYWQvdXRpbGl0aWVzJ1xuXG5pbXBvcnQgdHlwZSB7IEZlYXR1cmVQcm92aWRlclNlcnZlciwgUmVzb2x2ZWRTZXJ2ZXJGZWF0dXJlTWFwIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkU2VydmVyRWRpdG9yQ29uZmlnIH0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgQWRhcHRlclByb3BzIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHtcbiAgZGVmYXVsdEVkaXRvckNvbmZpZyxcbiAgZGVmYXVsdEVkaXRvckZlYXR1cmVzLFxuICBkZWZhdWx0U2FuaXRpemVkU2VydmVyRWRpdG9yQ29uZmlnLFxufSBmcm9tICcuL2ZpZWxkL2xleGljYWwvY29uZmlnL3NlcnZlci9kZWZhdWx0J1xuaW1wb3J0IHsgbG9hZEZlYXR1cmVzIH0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL2NvbmZpZy9zZXJ2ZXIvbG9hZGVyJ1xuaW1wb3J0IHsgc2FuaXRpemVTZXJ2ZXJGZWF0dXJlcyB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC9jb25maWcvc2VydmVyL3Nhbml0aXplJ1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL3V0aWxzL2Nsb25lRGVlcCdcbmltcG9ydCB7IGdldEdlbmVyYXRlQ29tcG9uZW50TWFwIH0gZnJvbSAnLi9nZW5lcmF0ZUNvbXBvbmVudE1hcCdcbmltcG9ydCB7IGdldEdlbmVyYXRlU2NoZW1hTWFwIH0gZnJvbSAnLi9nZW5lcmF0ZVNjaGVtYU1hcCdcbmltcG9ydCB7IHJpY2hUZXh0UmVsYXRpb25zaGlwUHJvbWlzZSB9IGZyb20gJy4vcG9wdWxhdGUvcmljaFRleHRSZWxhdGlvbnNoaXBQcm9taXNlJ1xuaW1wb3J0IHsgcmljaFRleHRWYWxpZGF0ZUhPQyB9IGZyb20gJy4vdmFsaWRhdGUnXG5cbmV4cG9ydCB0eXBlIExleGljYWxFZGl0b3JQcm9wcyA9IHtcbiAgZmVhdHVyZXM/OlxuICAgIHwgKCh7XG4gICAgICAgIGRlZmF1bHRGZWF0dXJlcyxcbiAgICAgIH06IHtcbiAgICAgICAgZGVmYXVsdEZlYXR1cmVzOiBGZWF0dXJlUHJvdmlkZXJTZXJ2ZXI8dW5rbm93biwgdW5rbm93bj5bXVxuICAgICAgfSkgPT4gRmVhdHVyZVByb3ZpZGVyU2VydmVyPHVua25vd24sIHVua25vd24+W10pXG4gICAgfCBGZWF0dXJlUHJvdmlkZXJTZXJ2ZXI8dW5rbm93biwgdW5rbm93bj5bXVxuICBsZXhpY2FsPzogTGV4aWNhbEVkaXRvckNvbmZpZ1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlZHVuZGFudC10eXBlLWNvbnN0aXR1ZW50c1xuZXhwb3J0IHR5cGUgTGV4aWNhbFJpY2hUZXh0QWRhcHRlciA9IFJpY2hUZXh0QWRhcHRlcjxTZXJpYWxpemVkRWRpdG9yU3RhdGUsIEFkYXB0ZXJQcm9wcywgYW55PiAmIHtcbiAgZWRpdG9yQ29uZmlnOiBTYW5pdGl6ZWRTZXJ2ZXJFZGl0b3JDb25maWdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxleGljYWxFZGl0b3IocHJvcHM/OiBMZXhpY2FsRWRpdG9yUHJvcHMpOiBMZXhpY2FsUmljaFRleHRBZGFwdGVyIHtcbiAgbGV0IHJlc29sdmVkRmVhdHVyZU1hcDogUmVzb2x2ZWRTZXJ2ZXJGZWF0dXJlTWFwID0gbnVsbFxuXG4gIGxldCBmaW5hbFNhbml0aXplZEVkaXRvckNvbmZpZzogU2FuaXRpemVkU2VydmVyRWRpdG9yQ29uZmlnIC8vIEZvciBzZXJ2ZXIgb25seVxuICBpZiAoIXByb3BzIHx8ICghcHJvcHMuZmVhdHVyZXMgJiYgIXByb3BzLmxleGljYWwpKSB7XG4gICAgZmluYWxTYW5pdGl6ZWRFZGl0b3JDb25maWcgPSBjbG9uZURlZXAoZGVmYXVsdFNhbml0aXplZFNlcnZlckVkaXRvckNvbmZpZylcbiAgICByZXNvbHZlZEZlYXR1cmVNYXAgPSBmaW5hbFNhbml0aXplZEVkaXRvckNvbmZpZy5yZXNvbHZlZEZlYXR1cmVNYXBcbiAgfSBlbHNlIHtcbiAgICBsZXQgZmVhdHVyZXM6IEZlYXR1cmVQcm92aWRlclNlcnZlcjx1bmtub3duLCB1bmtub3duPltdID1cbiAgICAgIHByb3BzLmZlYXR1cmVzICYmIHR5cGVvZiBwcm9wcy5mZWF0dXJlcyA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICA/IHByb3BzLmZlYXR1cmVzKHsgZGVmYXVsdEZlYXR1cmVzOiBjbG9uZURlZXAoZGVmYXVsdEVkaXRvckZlYXR1cmVzKSB9KVxuICAgICAgICA6IChwcm9wcy5mZWF0dXJlcyBhcyBGZWF0dXJlUHJvdmlkZXJTZXJ2ZXI8dW5rbm93biwgdW5rbm93bj5bXSlcbiAgICBpZiAoIWZlYXR1cmVzKSB7XG4gICAgICBmZWF0dXJlcyA9IGNsb25lRGVlcChkZWZhdWx0RWRpdG9yRmVhdHVyZXMpXG4gICAgfVxuXG4gICAgY29uc3QgbGV4aWNhbDogTGV4aWNhbEVkaXRvckNvbmZpZyA9IHByb3BzLmxleGljYWxcblxuICAgIHJlc29sdmVkRmVhdHVyZU1hcCA9IGxvYWRGZWF0dXJlcyh7XG4gICAgICB1blNhbml0aXplZEVkaXRvckNvbmZpZzoge1xuICAgICAgICBmZWF0dXJlcyxcbiAgICAgICAgbGV4aWNhbDogbGV4aWNhbCA/IGxleGljYWwgOiBkZWZhdWx0RWRpdG9yQ29uZmlnLmxleGljYWwsXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICBmaW5hbFNhbml0aXplZEVkaXRvckNvbmZpZyA9IHtcbiAgICAgIGZlYXR1cmVzOiBzYW5pdGl6ZVNlcnZlckZlYXR1cmVzKHJlc29sdmVkRmVhdHVyZU1hcCksXG4gICAgICBsZXhpY2FsOiBsZXhpY2FsID8gbGV4aWNhbCA6IGRlZmF1bHRFZGl0b3JDb25maWcubGV4aWNhbCxcbiAgICAgIHJlc29sdmVkRmVhdHVyZU1hcCxcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIExhenlDZWxsQ29tcG9uZW50OiAoKSA9PlxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgaW1wb3J0KCcuL2NlbGwnKS50aGVuKChtb2R1bGUpID0+IHtcbiAgICAgICAgY29uc3QgUmljaFRleHRDZWxsID0gbW9kdWxlLlJpY2hUZXh0Q2VsbFxuICAgICAgICByZXR1cm4gaW1wb3J0KCdAcGF5bG9hZGNtcy91aScpLnRoZW4oKG1vZHVsZTIpID0+XG4gICAgICAgICAgbW9kdWxlMi53aXRoTWVyZ2VkUHJvcHMoe1xuICAgICAgICAgICAgQ29tcG9uZW50OiBSaWNoVGV4dENlbGwsXG4gICAgICAgICAgICB0b01lcmdlSW50b1Byb3BzOiB7IGxleGljYWxFZGl0b3JDb25maWc6IGZpbmFsU2FuaXRpemVkRWRpdG9yQ29uZmlnLmxleGljYWwgfSwgLy8gbGV4aWNhbEVkaXRvckNvbmZpZyBpcyBzZXJpYWxpemFibGVcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgfSksXG5cbiAgICBMYXp5RmllbGRDb21wb25lbnQ6ICgpID0+XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICBpbXBvcnQoJy4vZmllbGQnKS50aGVuKChtb2R1bGUpID0+IHtcbiAgICAgICAgY29uc3QgUmljaFRleHRGaWVsZCA9IG1vZHVsZS5SaWNoVGV4dEZpZWxkXG4gICAgICAgIHJldHVybiBpbXBvcnQoJ0BwYXlsb2FkY21zL3VpJykudGhlbigobW9kdWxlMikgPT5cbiAgICAgICAgICBtb2R1bGUyLndpdGhNZXJnZWRQcm9wcyh7XG4gICAgICAgICAgICBDb21wb25lbnQ6IFJpY2hUZXh0RmllbGQsXG4gICAgICAgICAgICB0b01lcmdlSW50b1Byb3BzOiB7IGxleGljYWxFZGl0b3JDb25maWc6IGZpbmFsU2FuaXRpemVkRWRpdG9yQ29uZmlnLmxleGljYWwgfSwgLy8gbGV4aWNhbEVkaXRvckNvbmZpZyBpcyBzZXJpYWxpemFibGVcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgfSksXG4gICAgYWZ0ZXJSZWFkUHJvbWlzZTogKHsgZmllbGQsIGluY29taW5nRWRpdG9yU3RhdGUsIHNpYmxpbmdEb2MgfSkgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgcHJvbWlzZXM6IFByb21pc2U8dm9pZD5bXSA9IFtdXG5cbiAgICAgICAgaWYgKGZpbmFsU2FuaXRpemVkRWRpdG9yQ29uZmlnPy5mZWF0dXJlcz8uaG9va3M/LmFmdGVyUmVhZFByb21pc2VzPy5sZW5ndGgpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGFmdGVyUmVhZFByb21pc2Ugb2YgZmluYWxTYW5pdGl6ZWRFZGl0b3JDb25maWcuZmVhdHVyZXMuaG9va3NcbiAgICAgICAgICAgIC5hZnRlclJlYWRQcm9taXNlcykge1xuICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IGFmdGVyUmVhZFByb21pc2Uoe1xuICAgICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgICAgaW5jb21pbmdFZGl0b3JTdGF0ZSxcbiAgICAgICAgICAgICAgc2libGluZ0RvYyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBpZiAocHJvbWlzZSkge1xuICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgUHJvbWlzZS5hbGwocHJvbWlzZXMpXG4gICAgICAgICAgLnRoZW4oKCkgPT4gcmVzb2x2ZSgpKVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHJlamVjdChlcnJvcikpXG4gICAgICB9KVxuICAgIH0sXG4gICAgZWRpdG9yQ29uZmlnOiBmaW5hbFNhbml0aXplZEVkaXRvckNvbmZpZyxcbiAgICBnZW5lcmF0ZUNvbXBvbmVudE1hcDogZ2V0R2VuZXJhdGVDb21wb25lbnRNYXAoe1xuICAgICAgcmVzb2x2ZWRGZWF0dXJlTWFwLFxuICAgIH0pLFxuICAgIGdlbmVyYXRlU2NoZW1hTWFwOiBnZXRHZW5lcmF0ZVNjaGVtYU1hcCh7XG4gICAgICByZXNvbHZlZEZlYXR1cmVNYXAsXG4gICAgfSksXG4gICAgb3V0cHV0U2NoZW1hOiAoeyBmaWVsZCwgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zLCBpc1JlcXVpcmVkIH0pID0+IHtcbiAgICAgIGxldCBvdXRwdXRTY2hlbWE6IEpTT05TY2hlbWE0ID0ge1xuICAgICAgICAvLyBUaGlzIHNjaGVtYSBtYXRjaGVzIHRoZSBTZXJpYWxpemVkRWRpdG9yU3RhdGUgdHlwZSBzbyBmYXIsIHRoYXQgaXQncyBwb3NzaWJsZSB0byBjYXN0IFNlcmlhbGl6ZWRFZGl0b3JTdGF0ZSB0byB0aGlzIHNjaGVtYSB3aXRob3V0IGFueSBlcnJvcnMuXG4gICAgICAgIC8vIEluIHRoZSBmdXR1cmUsIHdlIHNob3VsZFxuICAgICAgICAvLyAxKSBhbGxvdyByZWN1cnNpdmUgY2hpbGRyZW5cbiAgICAgICAgLy8gMikgUGFzcyBpbiBhbGwgdGhlIGRpZmZlcmVudCB0eXBlcyBmb3IgZXZlcnkgbm9kZSBhZGRlZCB0byB0aGUgZWRpdG9yY29uZmlnLiBUaGlzIGNhbiBiZSBkb25lIHdpdGggcmVmcyBpbiB0aGUgc2NoZW1hLlxuICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSgnb2JqZWN0JywgaXNSZXF1aXJlZCksXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICByb290OiB7XG4gICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgdHlwZToge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBjaGlsZHJlbjoge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUsXG4gICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjoge1xuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogWyd0eXBlJywgJ3ZlcnNpb24nXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBkaXJlY3Rpb246IHtcbiAgICAgICAgICAgICAgICBvbmVPZjogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBlbnVtOiBbJ2x0cicsICdydGwnXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdudWxsJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZm9ybWF0OiB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgZW51bTogWydsZWZ0JywgJ3N0YXJ0JywgJ2NlbnRlcicsICdyaWdodCcsICdlbmQnLCAnanVzdGlmeScsICcnXSwgLy8gRWxlbWVudEZvcm1hdFR5cGUsIHNpbmNlIHRoZSByb290IG5vZGUgaXMgYW4gZWxlbWVudFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBpbmRlbnQ6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHZlcnNpb246IHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IFsnY2hpbGRyZW4nLCAnZGlyZWN0aW9uJywgJ2Zvcm1hdCcsICdpbmRlbnQnLCAndHlwZScsICd2ZXJzaW9uJ10sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWlyZWQ6IFsncm9vdCddLFxuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBtb2RpZnlPdXRwdXRTY2hlbWEgb2YgZmluYWxTYW5pdGl6ZWRFZGl0b3JDb25maWcuZmVhdHVyZXMuZ2VuZXJhdGVkVHlwZXNcbiAgICAgICAgLm1vZGlmeU91dHB1dFNjaGVtYXMpIHtcbiAgICAgICAgb3V0cHV0U2NoZW1hID0gbW9kaWZ5T3V0cHV0U2NoZW1hKHtcbiAgICAgICAgICBjdXJyZW50U2NoZW1hOiBvdXRwdXRTY2hlbWEsXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zLFxuICAgICAgICAgIGlzUmVxdWlyZWQsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvdXRwdXRTY2hlbWFcbiAgICB9LFxuICAgIHBvcHVsYXRpb25Qcm9taXNlKHtcbiAgICAgIGNvbnRleHQsXG4gICAgICBjdXJyZW50RGVwdGgsXG4gICAgICBkZXB0aCxcbiAgICAgIGZpZWxkLFxuICAgICAgZmluZE1hbnksXG4gICAgICBmbGF0dGVuTG9jYWxlcyxcbiAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgcG9wdWxhdGlvblByb21pc2VzLFxuICAgICAgcmVxLFxuICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgIHNpYmxpbmdEb2MsXG4gICAgfSkge1xuICAgICAgLy8gY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBmZWF0dXJlcyB3aXRoIG5vZGVzIHdoaWNoIGhhdmUgcG9wdWxhdGlvblByb21pc2VzIGZvciB0aGlzIGZpZWxkXG4gICAgICBpZiAoZmluYWxTYW5pdGl6ZWRFZGl0b3JDb25maWc/LmZlYXR1cmVzPy5wb3B1bGF0aW9uUHJvbWlzZXM/LnNpemUpIHtcbiAgICAgICAgcmV0dXJuIHJpY2hUZXh0UmVsYXRpb25zaGlwUHJvbWlzZSh7XG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgZWRpdG9yUG9wdWxhdGlvblByb21pc2VzOiBmaW5hbFNhbml0aXplZEVkaXRvckNvbmZpZy5mZWF0dXJlcy5wb3B1bGF0aW9uUHJvbWlzZXMsXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgZmluZE1hbnksXG4gICAgICAgICAgZmxhdHRlbkxvY2FsZXMsXG4gICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgcG9wdWxhdGlvblByb21pc2VzLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgICAgICAgIHNpYmxpbmdEb2MsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsXG4gICAgfSxcbiAgICB2YWxpZGF0ZTogcmljaFRleHRWYWxpZGF0ZUhPQyh7XG4gICAgICBlZGl0b3JDb25maWc6IGZpbmFsU2FuaXRpemVkRWRpdG9yQ29uZmlnLFxuICAgIH0pLFxuICB9XG59XG5cbmV4cG9ydCB7IEFsaWduRmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvYWxpZ24vZmVhdHVyZS5zZXJ2ZXInXG5leHBvcnQgeyBCbG9ja1F1b3RlRmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvYmxvY2txdW90ZS9mZWF0dXJlLnNlcnZlcidcbmV4cG9ydCB7IEJsb2Nrc0ZlYXR1cmUsIHR5cGUgQmxvY2tzRmVhdHVyZVByb3BzIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9ibG9ja3MvZmVhdHVyZS5zZXJ2ZXInXG5leHBvcnQge1xuICAkY3JlYXRlQmxvY2tOb2RlLFxuICAkaXNCbG9ja05vZGUsXG4gIHR5cGUgQmxvY2tGaWVsZHMsXG4gIEJsb2NrTm9kZSxcbiAgdHlwZSBTZXJpYWxpemVkQmxvY2tOb2RlLFxufSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2Jsb2Nrcy9ub2Rlcy9CbG9ja3NOb2RlJ1xuXG5leHBvcnQgeyBUZXh0RHJvcGRvd25TZWN0aW9uV2l0aEVudHJpZXMgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2NvbW1vbi9mbG9hdGluZ1NlbGVjdFRvb2xiYXJUZXh0RHJvcGRvd25TZWN0aW9uJ1xuZXhwb3J0IHtcbiAgY29udmVydExleGljYWxOb2Rlc1RvSFRNTCxcbiAgY29udmVydExleGljYWxUb0hUTUwsXG59IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvY29udmVydGVycy9odG1sL2NvbnZlcnRlcidcbmV4cG9ydCB7IExpbmVicmVha0hUTUxDb252ZXJ0ZXIgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2NvbnZlcnRlcnMvaHRtbC9jb252ZXJ0ZXIvY29udmVydGVycy9saW5lYnJlYWsnXG5cbmV4cG9ydCB7IFBhcmFncmFwaEhUTUxDb252ZXJ0ZXIgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2NvbnZlcnRlcnMvaHRtbC9jb252ZXJ0ZXIvY29udmVydGVycy9wYXJhZ3JhcGgnXG5leHBvcnQgeyBUZXh0SFRNTENvbnZlcnRlciB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvY29udmVydGVycy9odG1sL2NvbnZlcnRlci9jb252ZXJ0ZXJzL3RleHQnXG5leHBvcnQgeyBkZWZhdWx0SFRNTENvbnZlcnRlcnMgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2NvbnZlcnRlcnMvaHRtbC9jb252ZXJ0ZXIvZGVmYXVsdENvbnZlcnRlcnMnXG5leHBvcnQgdHlwZSB7IEhUTUxDb252ZXJ0ZXIgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2NvbnZlcnRlcnMvaHRtbC9jb252ZXJ0ZXIvdHlwZXMnXG5leHBvcnQge1xuICBIVE1MQ29udmVydGVyRmVhdHVyZSxcbiAgdHlwZSBIVE1MQ29udmVydGVyRmVhdHVyZVByb3BzLFxufSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2NvbnZlcnRlcnMvaHRtbC9mZWF0dXJlLnNlcnZlcidcbmV4cG9ydCB7IGNvbnNvbGlkYXRlSFRNTENvbnZlcnRlcnMgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2NvbnZlcnRlcnMvaHRtbC9maWVsZCdcbmV4cG9ydCB7IGxleGljYWxIVE1MIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9jb252ZXJ0ZXJzL2h0bWwvZmllbGQnXG5leHBvcnQgeyBjcmVhdGVDbGllbnRDb21wb25lbnQgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2NyZWF0ZUNsaWVudENvbXBvbmVudCdcbmV4cG9ydCB7IFRlc3RSZWNvcmRlckZlYXR1cmUgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2RlYnVnL3Rlc3RyZWNvcmRlci9mZWF0dXJlLnNlcnZlcidcbmV4cG9ydCB7IFRyZWVWaWV3RmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvZGVidWcvdHJlZXZpZXcvZmVhdHVyZS5zZXJ2ZXInXG5leHBvcnQgeyBCb2xkRmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvZm9ybWF0L2JvbGQvZmVhdHVyZS5zZXJ2ZXInXG5leHBvcnQgeyBTZWN0aW9uV2l0aEVudHJpZXMgYXMgRm9ybWF0U2VjdGlvbldpdGhFbnRyaWVzIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9mb3JtYXQvY29tbW9uL2Zsb2F0aW5nU2VsZWN0VG9vbGJhclNlY3Rpb24nXG5leHBvcnQgeyBJbmxpbmVDb2RlRmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvZm9ybWF0L2lubGluZWNvZGUvZmVhdHVyZS5zZXJ2ZXInXG5leHBvcnQgeyBJdGFsaWNGZWF0dXJlIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9mb3JtYXQvaXRhbGljL2ZlYXR1cmUuc2VydmVyJ1xuZXhwb3J0IHsgU3RyaWtldGhyb3VnaEZlYXR1cmUgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2Zvcm1hdC9zdHJpa2V0aHJvdWdoL2ZlYXR1cmUuc2VydmVyJ1xuZXhwb3J0IHsgU3Vic2NyaXB0RmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvZm9ybWF0L3N1YnNjcmlwdC9mZWF0dXJlLnNlcnZlcidcbmV4cG9ydCB7IFN1cGVyc2NyaXB0RmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvZm9ybWF0L3N1cGVyc2NyaXB0L2ZlYXR1cmUuc2VydmVyJ1xuZXhwb3J0IHsgVW5kZXJsaW5lRmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvZm9ybWF0L3VuZGVybGluZS9mZWF0dXJlLnNlcnZlcidcblxuZXhwb3J0IHsgSGVhZGluZ0ZlYXR1cmUgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2hlYWRpbmcvZmVhdHVyZS5zZXJ2ZXInXG5leHBvcnQgeyBJbmRlbnRGZWF0dXJlIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9pbmRlbnQvZmVhdHVyZS5zZXJ2ZXInXG5cbmV4cG9ydCB7IExpbmtGZWF0dXJlLCB0eXBlIExpbmtGZWF0dXJlU2VydmVyUHJvcHMgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2xpbmsvZmVhdHVyZS5zZXJ2ZXInXG5leHBvcnQge1xuICAkY3JlYXRlQXV0b0xpbmtOb2RlLFxuICAkaXNBdXRvTGlua05vZGUsXG4gIEF1dG9MaW5rTm9kZSxcbn0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9saW5rL25vZGVzL0F1dG9MaW5rTm9kZSdcbmV4cG9ydCB7XG4gICRjcmVhdGVMaW5rTm9kZSxcbiAgJGlzTGlua05vZGUsXG4gIExpbmtOb2RlLFxuICBUT0dHTEVfTElOS19DT01NQU5ELFxufSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2xpbmsvbm9kZXMvTGlua05vZGUnXG5leHBvcnQgdHlwZSB7XG4gIExpbmtGaWVsZHMsXG4gIFNlcmlhbGl6ZWRBdXRvTGlua05vZGUsXG4gIFNlcmlhbGl6ZWRMaW5rTm9kZSxcbn0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9saW5rL25vZGVzL3R5cGVzJ1xuZXhwb3J0IHsgQ2hlY2tMaXN0RmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvbGlzdHMvY2hlY2tsaXN0L2ZlYXR1cmUuc2VydmVyJ1xuZXhwb3J0IHsgT3JkZXJlZExpc3RGZWF0dXJlIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9saXN0cy9vcmRlcmVkbGlzdC9mZWF0dXJlLnNlcnZlcidcbmV4cG9ydCB7IFVub3JkZXJlZExpc3RGZWF0dXJlIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9saXN0cy91bm9yZGVyZWRsaXN0L2ZlYXR1cmUuc2VydmVyJ1xuZXhwb3J0IHsgTGV4aWNhbFBsdWdpblRvTGV4aWNhbEZlYXR1cmUgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL21pZ3JhdGlvbnMvbGV4aWNhbFBsdWdpblRvTGV4aWNhbC9mZWF0dXJlLnNlcnZlcidcbmV4cG9ydCB7IFNsYXRlQmxvY2txdW90ZUNvbnZlcnRlciB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvbWlncmF0aW9ucy9zbGF0ZVRvTGV4aWNhbC9jb252ZXJ0ZXIvY29udmVydGVycy9ibG9ja3F1b3RlJ1xuZXhwb3J0IHsgU2xhdGVIZWFkaW5nQ29udmVydGVyIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9taWdyYXRpb25zL3NsYXRlVG9MZXhpY2FsL2NvbnZlcnRlci9jb252ZXJ0ZXJzL2hlYWRpbmcnXG5leHBvcnQgeyBTbGF0ZUluZGVudENvbnZlcnRlciB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvbWlncmF0aW9ucy9zbGF0ZVRvTGV4aWNhbC9jb252ZXJ0ZXIvY29udmVydGVycy9pbmRlbnQnXG5leHBvcnQgeyBTbGF0ZUxpbmtDb252ZXJ0ZXIgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL21pZ3JhdGlvbnMvc2xhdGVUb0xleGljYWwvY29udmVydGVyL2NvbnZlcnRlcnMvbGluaydcbmV4cG9ydCB7IFNsYXRlTGlzdEl0ZW1Db252ZXJ0ZXIgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL21pZ3JhdGlvbnMvc2xhdGVUb0xleGljYWwvY29udmVydGVyL2NvbnZlcnRlcnMvbGlzdEl0ZW0nXG5leHBvcnQgeyBTbGF0ZU9yZGVyZWRMaXN0Q29udmVydGVyIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9taWdyYXRpb25zL3NsYXRlVG9MZXhpY2FsL2NvbnZlcnRlci9jb252ZXJ0ZXJzL29yZGVyZWRMaXN0J1xuZXhwb3J0IHsgU2xhdGVSZWxhdGlvbnNoaXBDb252ZXJ0ZXIgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL21pZ3JhdGlvbnMvc2xhdGVUb0xleGljYWwvY29udmVydGVyL2NvbnZlcnRlcnMvcmVsYXRpb25zaGlwJ1xuZXhwb3J0IHsgU2xhdGVVbmtub3duQ29udmVydGVyIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9taWdyYXRpb25zL3NsYXRlVG9MZXhpY2FsL2NvbnZlcnRlci9jb252ZXJ0ZXJzL3Vua25vd24nXG5leHBvcnQgeyBTbGF0ZVVub3JkZXJlZExpc3RDb252ZXJ0ZXIgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL21pZ3JhdGlvbnMvc2xhdGVUb0xleGljYWwvY29udmVydGVyL2NvbnZlcnRlcnMvdW5vcmRlcmVkTGlzdCdcblxuZXhwb3J0IHsgU2xhdGVVcGxvYWRDb252ZXJ0ZXIgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL21pZ3JhdGlvbnMvc2xhdGVUb0xleGljYWwvY29udmVydGVyL2NvbnZlcnRlcnMvdXBsb2FkJ1xuZXhwb3J0IHsgZGVmYXVsdFNsYXRlQ29udmVydGVycyB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvbWlncmF0aW9ucy9zbGF0ZVRvTGV4aWNhbC9jb252ZXJ0ZXIvZGVmYXVsdENvbnZlcnRlcnMnXG5leHBvcnQge1xuICBjb252ZXJ0U2xhdGVOb2Rlc1RvTGV4aWNhbCxcbiAgY29udmVydFNsYXRlVG9MZXhpY2FsLFxufSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL21pZ3JhdGlvbnMvc2xhdGVUb0xleGljYWwvY29udmVydGVyL2luZGV4J1xuXG5leHBvcnQgdHlwZSB7XG4gIFNsYXRlTm9kZSxcbiAgU2xhdGVOb2RlQ29udmVydGVyLFxufSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL21pZ3JhdGlvbnMvc2xhdGVUb0xleGljYWwvY29udmVydGVyL3R5cGVzJ1xuZXhwb3J0IHsgU2xhdGVUb0xleGljYWxGZWF0dXJlIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9taWdyYXRpb25zL3NsYXRlVG9MZXhpY2FsL2ZlYXR1cmUuc2VydmVyJ1xuZXhwb3J0IHsgUGFyYWdyYXBoRmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvcGFyYWdyYXBoL2ZlYXR1cmUuc2VydmVyJ1xuZXhwb3J0IHsgUmVsYXRpb25zaGlwRmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvcmVsYXRpb25zaGlwL2ZlYXR1cmUuc2VydmVyJ1xuZXhwb3J0IHtcbiAgJGNyZWF0ZVJlbGF0aW9uc2hpcE5vZGUsXG4gICRpc1JlbGF0aW9uc2hpcE5vZGUsXG4gIHR5cGUgUmVsYXRpb25zaGlwRGF0YSxcbiAgUmVsYXRpb25zaGlwTm9kZSxcbiAgdHlwZSBTZXJpYWxpemVkUmVsYXRpb25zaGlwTm9kZSxcbn0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9yZWxhdGlvbnNoaXAvbm9kZXMvUmVsYXRpb25zaGlwTm9kZSdcbmV4cG9ydCB0eXBlIHtcbiAgQ2xpZW50RmVhdHVyZSxcbiAgQ2xpZW50RmVhdHVyZVByb3ZpZGVyTWFwLFxuICBGZWF0dXJlUHJvdmlkZXJDbGllbnQsXG4gIEZlYXR1cmVQcm92aWRlclByb3ZpZGVyQ2xpZW50LFxuICBGZWF0dXJlUHJvdmlkZXJQcm92aWRlclNlcnZlcixcbiAgRmVhdHVyZVByb3ZpZGVyU2VydmVyLFxuICBOb2RlVmFsaWRhdGlvbixcbiAgUG9wdWxhdGlvblByb21pc2UsXG4gIFJlc29sdmVkQ2xpZW50RmVhdHVyZSxcbiAgUmVzb2x2ZWRDbGllbnRGZWF0dXJlTWFwLFxuICBSZXNvbHZlZFNlcnZlckZlYXR1cmUsXG4gIFJlc29sdmVkU2VydmVyRmVhdHVyZU1hcCxcbiAgU2FuaXRpemVkQ2xpZW50RmVhdHVyZXMsXG4gIFNhbml0aXplZFBsdWdpbixcbiAgU2FuaXRpemVkU2VydmVyRmVhdHVyZXMsXG4gIFNlcnZlckZlYXR1cmUsXG4gIFNlcnZlckZlYXR1cmVQcm92aWRlck1hcCxcbn0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy90eXBlcydcbmV4cG9ydCB7IFVwbG9hZEZlYXR1cmUgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL3VwbG9hZC9mZWF0dXJlLnNlcnZlcidcblxuZXhwb3J0IHR5cGUgeyBVcGxvYWRGZWF0dXJlUHJvcHMgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL3VwbG9hZC9mZWF0dXJlLnNlcnZlcidcblxuZXhwb3J0IHR5cGUgeyBSYXdVcGxvYWRQYXlsb2FkIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy91cGxvYWQvbm9kZXMvVXBsb2FkTm9kZSdcblxuZXhwb3J0IHtcbiAgJGNyZWF0ZVVwbG9hZE5vZGUsXG4gICRpc1VwbG9hZE5vZGUsXG4gIHR5cGUgU2VyaWFsaXplZFVwbG9hZE5vZGUsXG4gIHR5cGUgVXBsb2FkRGF0YSxcbiAgVXBsb2FkTm9kZSxcbn0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy91cGxvYWQvbm9kZXMvVXBsb2FkTm9kZSdcbmV4cG9ydCB7XG4gIEVkaXRvckNvbmZpZ1Byb3ZpZGVyLFxuICB1c2VFZGl0b3JDb25maWdDb250ZXh0LFxufSBmcm9tICcuL2ZpZWxkL2xleGljYWwvY29uZmlnL2NsaWVudC9FZGl0b3JDb25maWdQcm92aWRlcidcbmV4cG9ydCB7XG4gIHNhbml0aXplQ2xpZW50RWRpdG9yQ29uZmlnLFxuICBzYW5pdGl6ZUNsaWVudEZlYXR1cmVzLFxufSBmcm9tICcuL2ZpZWxkL2xleGljYWwvY29uZmlnL2NsaWVudC9zYW5pdGl6ZSdcbmV4cG9ydCB7XG4gIGRlZmF1bHRFZGl0b3JDb25maWcsXG4gIGRlZmF1bHRFZGl0b3JGZWF0dXJlcyxcbiAgZGVmYXVsdEVkaXRvckxleGljYWxDb25maWcsXG4gIGRlZmF1bHRTYW5pdGl6ZWRTZXJ2ZXJFZGl0b3JDb25maWcsXG59IGZyb20gJy4vZmllbGQvbGV4aWNhbC9jb25maWcvc2VydmVyL2RlZmF1bHQnXG5leHBvcnQgeyBsb2FkRmVhdHVyZXMsIHNvcnRGZWF0dXJlc0Zvck9wdGltYWxMb2FkaW5nIH0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL2NvbmZpZy9zZXJ2ZXIvbG9hZGVyJ1xuZXhwb3J0IHtcbiAgc2FuaXRpemVTZXJ2ZXJFZGl0b3JDb25maWcsXG4gIHNhbml0aXplU2VydmVyRmVhdHVyZXMsXG59IGZyb20gJy4vZmllbGQvbGV4aWNhbC9jb25maWcvc2VydmVyL3Nhbml0aXplJ1xuXG5leHBvcnQgdHlwZSB7XG4gIENsaWVudEVkaXRvckNvbmZpZyxcbiAgU2FuaXRpemVkQ2xpZW50RWRpdG9yQ29uZmlnLFxuICBTYW5pdGl6ZWRTZXJ2ZXJFZGl0b3JDb25maWcsXG4gIFNlcnZlckVkaXRvckNvbmZpZyxcbn0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL2NvbmZpZy90eXBlcydcbmV4cG9ydCB7IGdldEVuYWJsZWROb2RlcyB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC9ub2RlcydcblxuZXhwb3J0IHtcbiAgdHlwZSBGbG9hdGluZ1Rvb2xiYXJTZWN0aW9uLFxuICB0eXBlIEZsb2F0aW5nVG9vbGJhclNlY3Rpb25FbnRyeSxcbn0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL3BsdWdpbnMvRmxvYXRpbmdTZWxlY3RUb29sYmFyL3R5cGVzJ1xuZXhwb3J0IHsgRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC9wbHVnaW5zL1NsYXNoTWVudS9MZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbi9pbmRleCdcbmV4cG9ydCB0eXBlIHsgQWRhcHRlclByb3BzIH1cblxuZXhwb3J0IHtcbiAgU2xhc2hNZW51R3JvdXAsXG4gIFNsYXNoTWVudU9wdGlvbixcbn0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL3R5cGVzJ1xuZXhwb3J0IHsgQ0FOX1VTRV9ET00gfSBmcm9tICcuL2ZpZWxkL2xleGljYWwvdXRpbHMvY2FuVXNlRE9NJ1xuZXhwb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL3V0aWxzL2Nsb25lRGVlcCdcbmV4cG9ydCB7IGdldERPTVJhbmdlUmVjdCB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC91dGlscy9nZXRET01SYW5nZVJlY3QnXG5leHBvcnQgeyBnZXRTZWxlY3RlZE5vZGUgfSBmcm9tICcuL2ZpZWxkL2xleGljYWwvdXRpbHMvZ2V0U2VsZWN0ZWROb2RlJ1xuZXhwb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC91dGlscy9ndWFyZCdcbmV4cG9ydCB7IGludmFyaWFudCB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC91dGlscy9pbnZhcmlhbnQnXG5leHBvcnQgeyBqb2luQ2xhc3NlcyB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC91dGlscy9qb2luQ2xhc3NlcydcbmV4cG9ydCB7IGNyZWF0ZUJsb2NrTm9kZSB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC91dGlscy9tYXJrZG93bi9jcmVhdGVCbG9ja05vZGUnXG5leHBvcnQge1xuICBERVRBSUxfVFlQRV9UT19ERVRBSUwsXG4gIERPVUJMRV9MSU5FX0JSRUFLLFxuICBFTEVNRU5UX0ZPUk1BVF9UT19UWVBFLFxuICBFTEVNRU5UX1RZUEVfVE9fRk9STUFULFxuICBJU19BTExfRk9STUFUVElORyxcbiAgTFRSX1JFR0VYLFxuICBOT05fQlJFQUtJTkdfU1BBQ0UsXG4gIE5vZGVGb3JtYXQsXG4gIFJUTF9SRUdFWCxcbiAgVEVYVF9NT0RFX1RPX1RZUEUsXG4gIFRFWFRfVFlQRV9UT19GT1JNQVQsXG4gIFRFWFRfVFlQRV9UT19NT0RFLFxufSBmcm9tICcuL2ZpZWxkL2xleGljYWwvdXRpbHMvbm9kZUZvcm1hdCdcbmV4cG9ydCB7IFBvaW50LCBpc1BvaW50IH0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL3V0aWxzL3BvaW50J1xuZXhwb3J0IHsgUmVjdCB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC91dGlscy9yZWN0J1xuZXhwb3J0IHsgc2V0RmxvYXRpbmdFbGVtUG9zaXRpb24gfSBmcm9tICcuL2ZpZWxkL2xleGljYWwvdXRpbHMvc2V0RmxvYXRpbmdFbGVtUG9zaXRpb24nXG5leHBvcnQgeyBzZXRGbG9hdGluZ0VsZW1Qb3NpdGlvbkZvckxpbmtFZGl0b3IgfSBmcm9tICcuL2ZpZWxkL2xleGljYWwvdXRpbHMvc2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yJ1xuZXhwb3J0IHtcbiAgYWRkU3dpcGVEb3duTGlzdGVuZXIsXG4gIGFkZFN3aXBlTGVmdExpc3RlbmVyLFxuICBhZGRTd2lwZVJpZ2h0TGlzdGVuZXIsXG4gIGFkZFN3aXBlVXBMaXN0ZW5lcixcbn0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL3V0aWxzL3N3aXBlJ1xuZXhwb3J0IHsgc2FuaXRpemVVcmwsIHZhbGlkYXRlVXJsIH0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL3V0aWxzL3VybCdcbmV4cG9ydCB7IGRlZmF1bHRSaWNoVGV4dFZhbHVlIH0gZnJvbSAnLi9wb3B1bGF0ZS9kZWZhdWx0VmFsdWUnXG4iXSwibmFtZXMiOlsiJGNyZWF0ZUF1dG9MaW5rTm9kZSIsIiRjcmVhdGVCbG9ja05vZGUiLCIkY3JlYXRlTGlua05vZGUiLCIkY3JlYXRlUmVsYXRpb25zaGlwTm9kZSIsIiRjcmVhdGVVcGxvYWROb2RlIiwiJGlzQXV0b0xpbmtOb2RlIiwiJGlzQmxvY2tOb2RlIiwiJGlzTGlua05vZGUiLCIkaXNSZWxhdGlvbnNoaXBOb2RlIiwiJGlzVXBsb2FkTm9kZSIsIkFsaWduRmVhdHVyZSIsIkF1dG9MaW5rTm9kZSIsIkJsb2NrTm9kZSIsIkJsb2NrUXVvdGVGZWF0dXJlIiwiQmxvY2tzRmVhdHVyZSIsIkJvbGRGZWF0dXJlIiwiQ0FOX1VTRV9ET00iLCJDaGVja0xpc3RGZWF0dXJlIiwiREVUQUlMX1RZUEVfVE9fREVUQUlMIiwiRE9VQkxFX0xJTkVfQlJFQUsiLCJFTEVNRU5UX0ZPUk1BVF9UT19UWVBFIiwiRUxFTUVOVF9UWVBFX1RPX0ZPUk1BVCIsIkVOQUJMRV9TTEFTSF9NRU5VX0NPTU1BTkQiLCJFZGl0b3JDb25maWdQcm92aWRlciIsIkZvcm1hdFNlY3Rpb25XaXRoRW50cmllcyIsIlNlY3Rpb25XaXRoRW50cmllcyIsIkhUTUxDb252ZXJ0ZXJGZWF0dXJlIiwiSGVhZGluZ0ZlYXR1cmUiLCJJU19BTExfRk9STUFUVElORyIsIkluZGVudEZlYXR1cmUiLCJJbmxpbmVDb2RlRmVhdHVyZSIsIkl0YWxpY0ZlYXR1cmUiLCJMVFJfUkVHRVgiLCJMZXhpY2FsUGx1Z2luVG9MZXhpY2FsRmVhdHVyZSIsIkxpbmVicmVha0hUTUxDb252ZXJ0ZXIiLCJMaW5rRmVhdHVyZSIsIkxpbmtOb2RlIiwiTk9OX0JSRUFLSU5HX1NQQUNFIiwiTm9kZUZvcm1hdCIsIk9yZGVyZWRMaXN0RmVhdHVyZSIsIlBhcmFncmFwaEZlYXR1cmUiLCJQYXJhZ3JhcGhIVE1MQ29udmVydGVyIiwiUG9pbnQiLCJSVExfUkVHRVgiLCJSZWN0IiwiUmVsYXRpb25zaGlwRmVhdHVyZSIsIlJlbGF0aW9uc2hpcE5vZGUiLCJTbGFzaE1lbnVHcm91cCIsIlNsYXNoTWVudU9wdGlvbiIsIlNsYXRlQmxvY2txdW90ZUNvbnZlcnRlciIsIlNsYXRlSGVhZGluZ0NvbnZlcnRlciIsIlNsYXRlSW5kZW50Q29udmVydGVyIiwiU2xhdGVMaW5rQ29udmVydGVyIiwiU2xhdGVMaXN0SXRlbUNvbnZlcnRlciIsIlNsYXRlT3JkZXJlZExpc3RDb252ZXJ0ZXIiLCJTbGF0ZVJlbGF0aW9uc2hpcENvbnZlcnRlciIsIlNsYXRlVG9MZXhpY2FsRmVhdHVyZSIsIlNsYXRlVW5rbm93bkNvbnZlcnRlciIsIlNsYXRlVW5vcmRlcmVkTGlzdENvbnZlcnRlciIsIlNsYXRlVXBsb2FkQ29udmVydGVyIiwiU3RyaWtldGhyb3VnaEZlYXR1cmUiLCJTdWJzY3JpcHRGZWF0dXJlIiwiU3VwZXJzY3JpcHRGZWF0dXJlIiwiVEVYVF9NT0RFX1RPX1RZUEUiLCJURVhUX1RZUEVfVE9fRk9STUFUIiwiVEVYVF9UWVBFX1RPX01PREUiLCJUT0dHTEVfTElOS19DT01NQU5EIiwiVGVzdFJlY29yZGVyRmVhdHVyZSIsIlRleHREcm9wZG93blNlY3Rpb25XaXRoRW50cmllcyIsIlRleHRIVE1MQ29udmVydGVyIiwiVHJlZVZpZXdGZWF0dXJlIiwiVW5kZXJsaW5lRmVhdHVyZSIsIlVub3JkZXJlZExpc3RGZWF0dXJlIiwiVXBsb2FkRmVhdHVyZSIsIlVwbG9hZE5vZGUiLCJhZGRTd2lwZURvd25MaXN0ZW5lciIsImFkZFN3aXBlTGVmdExpc3RlbmVyIiwiYWRkU3dpcGVSaWdodExpc3RlbmVyIiwiYWRkU3dpcGVVcExpc3RlbmVyIiwiY2xvbmVEZWVwIiwiY29uc29saWRhdGVIVE1MQ29udmVydGVycyIsImNvbnZlcnRMZXhpY2FsTm9kZXNUb0hUTUwiLCJjb252ZXJ0TGV4aWNhbFRvSFRNTCIsImNvbnZlcnRTbGF0ZU5vZGVzVG9MZXhpY2FsIiwiY29udmVydFNsYXRlVG9MZXhpY2FsIiwiY3JlYXRlQmxvY2tOb2RlIiwiY3JlYXRlQ2xpZW50Q29tcG9uZW50IiwiZGVmYXVsdEVkaXRvckNvbmZpZyIsImRlZmF1bHRFZGl0b3JGZWF0dXJlcyIsImRlZmF1bHRFZGl0b3JMZXhpY2FsQ29uZmlnIiwiZGVmYXVsdEhUTUxDb252ZXJ0ZXJzIiwiZGVmYXVsdFJpY2hUZXh0VmFsdWUiLCJkZWZhdWx0U2FuaXRpemVkU2VydmVyRWRpdG9yQ29uZmlnIiwiZGVmYXVsdFNsYXRlQ29udmVydGVycyIsImdldERPTVJhbmdlUmVjdCIsImdldEVuYWJsZWROb2RlcyIsImdldFNlbGVjdGVkTm9kZSIsImludmFyaWFudCIsImlzSFRNTEVsZW1lbnQiLCJpc1BvaW50Iiwiam9pbkNsYXNzZXMiLCJsZXhpY2FsRWRpdG9yIiwibGV4aWNhbEhUTUwiLCJsb2FkRmVhdHVyZXMiLCJzYW5pdGl6ZUNsaWVudEVkaXRvckNvbmZpZyIsInNhbml0aXplQ2xpZW50RmVhdHVyZXMiLCJzYW5pdGl6ZVNlcnZlckVkaXRvckNvbmZpZyIsInNhbml0aXplU2VydmVyRmVhdHVyZXMiLCJzYW5pdGl6ZVVybCIsInNldEZsb2F0aW5nRWxlbVBvc2l0aW9uIiwic2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yIiwic29ydEZlYXR1cmVzRm9yT3B0aW1hbExvYWRpbmciLCJ1c2VFZGl0b3JDb25maWdDb250ZXh0IiwidmFsaWRhdGVVcmwiLCJwcm9wcyIsInJlc29sdmVkRmVhdHVyZU1hcCIsImZpbmFsU2FuaXRpemVkRWRpdG9yQ29uZmlnIiwiZmVhdHVyZXMiLCJsZXhpY2FsIiwiZGVmYXVsdEZlYXR1cmVzIiwidW5TYW5pdGl6ZWRFZGl0b3JDb25maWciLCJMYXp5Q2VsbENvbXBvbmVudCIsInRoZW4iLCJtb2R1bGUiLCJSaWNoVGV4dENlbGwiLCJtb2R1bGUyIiwid2l0aE1lcmdlZFByb3BzIiwiQ29tcG9uZW50IiwidG9NZXJnZUludG9Qcm9wcyIsImxleGljYWxFZGl0b3JDb25maWciLCJMYXp5RmllbGRDb21wb25lbnQiLCJSaWNoVGV4dEZpZWxkIiwiYWZ0ZXJSZWFkUHJvbWlzZSIsImZpZWxkIiwiaW5jb21pbmdFZGl0b3JTdGF0ZSIsInNpYmxpbmdEb2MiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInByb21pc2VzIiwiaG9va3MiLCJhZnRlclJlYWRQcm9taXNlcyIsImxlbmd0aCIsInByb21pc2UiLCJwdXNoIiwiYWxsIiwiY2F0Y2giLCJlcnJvciIsImVkaXRvckNvbmZpZyIsImdlbmVyYXRlQ29tcG9uZW50TWFwIiwiZ2V0R2VuZXJhdGVDb21wb25lbnRNYXAiLCJnZW5lcmF0ZVNjaGVtYU1hcCIsImdldEdlbmVyYXRlU2NoZW1hTWFwIiwib3V0cHV0U2NoZW1hIiwiaW50ZXJmYWNlTmFtZURlZmluaXRpb25zIiwiaXNSZXF1aXJlZCIsInR5cGUiLCJ3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSIsInByb3BlcnRpZXMiLCJyb290IiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJjaGlsZHJlbiIsIml0ZW1zIiwidmVyc2lvbiIsInJlcXVpcmVkIiwiZGlyZWN0aW9uIiwib25lT2YiLCJlbnVtIiwiZm9ybWF0IiwiaW5kZW50IiwibW9kaWZ5T3V0cHV0U2NoZW1hIiwiZ2VuZXJhdGVkVHlwZXMiLCJtb2RpZnlPdXRwdXRTY2hlbWFzIiwiY3VycmVudFNjaGVtYSIsInBvcHVsYXRpb25Qcm9taXNlIiwiY29udGV4dCIsImN1cnJlbnREZXB0aCIsImRlcHRoIiwiZmluZE1hbnkiLCJmbGF0dGVuTG9jYWxlcyIsIm92ZXJyaWRlQWNjZXNzIiwicG9wdWxhdGlvblByb21pc2VzIiwicmVxIiwic2hvd0hpZGRlbkZpZWxkcyIsInNpemUiLCJyaWNoVGV4dFJlbGF0aW9uc2hpcFByb21pc2UiLCJlZGl0b3JQb3B1bGF0aW9uUHJvbWlzZXMiLCJ2YWxpZGF0ZSIsInJpY2hUZXh0VmFsaWRhdGVIT0MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBdVJFQSxtQkFBbUI7ZUFBbkJBLGlDQUFtQjs7SUF6Q25CQyxnQkFBZ0I7ZUFBaEJBLDRCQUFnQjs7SUE4Q2hCQyxlQUFlO2VBQWZBLHlCQUFlOztJQXVDZkMsdUJBQXVCO2VBQXZCQSx5Q0FBdUI7O0lBZ0N2QkMsaUJBQWlCO2VBQWpCQSw2QkFBaUI7O0lBM0VqQkMsZUFBZTtlQUFmQSw2QkFBZTs7SUF6Q2ZDLFlBQVk7ZUFBWkEsd0JBQVk7O0lBOENaQyxXQUFXO2VBQVhBLHFCQUFXOztJQXVDWEMsbUJBQW1CO2VBQW5CQSxxQ0FBbUI7O0lBZ0NuQkMsYUFBYTtlQUFiQSx5QkFBYTs7SUExSE5DLFlBQVk7ZUFBWkEsMkJBQVk7O0lBK0NuQkMsWUFBWTtlQUFaQSwwQkFBWTs7SUF4Q1pDLFNBQVM7ZUFBVEEscUJBQVM7O0lBTkZDLGlCQUFpQjtlQUFqQkEsaUNBQWlCOztJQUNqQkMsYUFBYTtlQUFiQSw2QkFBYTs7SUE2QmJDLFdBQVc7ZUFBWEEsMkJBQVc7O0lBdUlYQyxXQUFXO2VBQVhBLHNCQUFXOztJQTFHWEMsZ0JBQWdCO2VBQWhCQSxpQ0FBZ0I7O0lBbUh2QkMscUJBQXFCO2VBQXJCQSxpQ0FBcUI7O0lBQ3JCQyxpQkFBaUI7ZUFBakJBLDZCQUFpQjs7SUFDakJDLHNCQUFzQjtlQUF0QkEsa0NBQXNCOztJQUN0QkMsc0JBQXNCO2VBQXRCQSxrQ0FBc0I7O0lBbkJmQyx5QkFBeUI7ZUFBekJBLGlDQUF5Qjs7SUEvQmhDQyxvQkFBb0I7ZUFBcEJBLDBDQUFvQjs7SUFoR1NDLHdCQUF3QjtlQUE5Q0MsZ0RBQWtCOztJQVR6QkMsb0JBQW9CO2VBQXBCQSxvQ0FBb0I7O0lBaUJiQyxjQUFjO2VBQWRBLCtCQUFjOztJQTJJckJDLGlCQUFpQjtlQUFqQkEsNkJBQWlCOztJQTFJVkMsYUFBYTtl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
274
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEpTT05TY2hlbWE0IH0gZnJvbSAnanNvbi1zY2hlbWEnXG5pbXBvcnQgdHlwZSB7IFNlcmlhbGl6ZWRFZGl0b3JTdGF0ZSB9IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgdHlwZSB7IEVkaXRvckNvbmZpZyBhcyBMZXhpY2FsRWRpdG9yQ29uZmlnIH0gZnJvbSAnbGV4aWNhbC9MZXhpY2FsRWRpdG9yJ1xuaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSB9IGZyb20gJ3BheWxvYWQvdXRpbGl0aWVzJ1xuXG5pbXBvcnQgdHlwZSB7IEZlYXR1cmVQcm92aWRlclNlcnZlciwgUmVzb2x2ZWRTZXJ2ZXJGZWF0dXJlTWFwIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkU2VydmVyRWRpdG9yQ29uZmlnIH0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgQWRhcHRlclByb3BzIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHtcbiAgZGVmYXVsdEVkaXRvckNvbmZpZyxcbiAgZGVmYXVsdEVkaXRvckZlYXR1cmVzLFxuICBkZWZhdWx0U2FuaXRpemVkU2VydmVyRWRpdG9yQ29uZmlnLFxufSBmcm9tICcuL2ZpZWxkL2xleGljYWwvY29uZmlnL3NlcnZlci9kZWZhdWx0J1xuaW1wb3J0IHsgbG9hZEZlYXR1cmVzIH0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL2NvbmZpZy9zZXJ2ZXIvbG9hZGVyJ1xuaW1wb3J0IHsgc2FuaXRpemVTZXJ2ZXJGZWF0dXJlcyB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC9jb25maWcvc2VydmVyL3Nhbml0aXplJ1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL3V0aWxzL2Nsb25lRGVlcCdcbmltcG9ydCB7IGdldEdlbmVyYXRlQ29tcG9uZW50TWFwIH0gZnJvbSAnLi9nZW5lcmF0ZUNvbXBvbmVudE1hcCdcbmltcG9ydCB7IGdldEdlbmVyYXRlU2NoZW1hTWFwIH0gZnJvbSAnLi9nZW5lcmF0ZVNjaGVtYU1hcCdcbmltcG9ydCB7IHJpY2hUZXh0UmVsYXRpb25zaGlwUHJvbWlzZSB9IGZyb20gJy4vcG9wdWxhdGUvcmljaFRleHRSZWxhdGlvbnNoaXBQcm9taXNlJ1xuaW1wb3J0IHsgcmljaFRleHRWYWxpZGF0ZUhPQyB9IGZyb20gJy4vdmFsaWRhdGUnXG5cbmV4cG9ydCB0eXBlIExleGljYWxFZGl0b3JQcm9wcyA9IHtcbiAgZmVhdHVyZXM/OlxuICAgIHwgKCh7XG4gICAgICAgIGRlZmF1bHRGZWF0dXJlcyxcbiAgICAgIH06IHtcbiAgICAgICAgZGVmYXVsdEZlYXR1cmVzOiBGZWF0dXJlUHJvdmlkZXJTZXJ2ZXI8dW5rbm93biwgdW5rbm93bj5bXVxuICAgICAgfSkgPT4gRmVhdHVyZVByb3ZpZGVyU2VydmVyPHVua25vd24sIHVua25vd24+W10pXG4gICAgfCBGZWF0dXJlUHJvdmlkZXJTZXJ2ZXI8dW5rbm93biwgdW5rbm93bj5bXVxuICBsZXhpY2FsPzogTGV4aWNhbEVkaXRvckNvbmZpZ1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlZHVuZGFudC10eXBlLWNvbnN0aXR1ZW50c1xuZXhwb3J0IHR5cGUgTGV4aWNhbFJpY2hUZXh0QWRhcHRlciA9IFJpY2hUZXh0QWRhcHRlcjxTZXJpYWxpemVkRWRpdG9yU3RhdGUsIEFkYXB0ZXJQcm9wcywgYW55PiAmIHtcbiAgZWRpdG9yQ29uZmlnOiBTYW5pdGl6ZWRTZXJ2ZXJFZGl0b3JDb25maWdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxleGljYWxFZGl0b3IocHJvcHM/OiBMZXhpY2FsRWRpdG9yUHJvcHMpOiBMZXhpY2FsUmljaFRleHRBZGFwdGVyIHtcbiAgbGV0IHJlc29sdmVkRmVhdHVyZU1hcDogUmVzb2x2ZWRTZXJ2ZXJGZWF0dXJlTWFwID0gbnVsbFxuXG4gIGxldCBmaW5hbFNhbml0aXplZEVkaXRvckNvbmZpZzogU2FuaXRpemVkU2VydmVyRWRpdG9yQ29uZmlnIC8vIEZvciBzZXJ2ZXIgb25seVxuICBpZiAoIXByb3BzIHx8ICghcHJvcHMuZmVhdHVyZXMgJiYgIXByb3BzLmxleGljYWwpKSB7XG4gICAgZmluYWxTYW5pdGl6ZWRFZGl0b3JDb25maWcgPSBjbG9uZURlZXAoZGVmYXVsdFNhbml0aXplZFNlcnZlckVkaXRvckNvbmZpZylcbiAgICByZXNvbHZlZEZlYXR1cmVNYXAgPSBmaW5hbFNhbml0aXplZEVkaXRvckNvbmZpZy5yZXNvbHZlZEZlYXR1cmVNYXBcbiAgfSBlbHNlIHtcbiAgICBsZXQgZmVhdHVyZXM6IEZlYXR1cmVQcm92aWRlclNlcnZlcjx1bmtub3duLCB1bmtub3duPltdID1cbiAgICAgIHByb3BzLmZlYXR1cmVzICYmIHR5cGVvZiBwcm9wcy5mZWF0dXJlcyA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICA/IHByb3BzLmZlYXR1cmVzKHsgZGVmYXVsdEZlYXR1cmVzOiBjbG9uZURlZXAoZGVmYXVsdEVkaXRvckZlYXR1cmVzKSB9KVxuICAgICAgICA6IChwcm9wcy5mZWF0dXJlcyBhcyBGZWF0dXJlUHJvdmlkZXJTZXJ2ZXI8dW5rbm93biwgdW5rbm93bj5bXSlcbiAgICBpZiAoIWZlYXR1cmVzKSB7XG4gICAgICBmZWF0dXJlcyA9IGNsb25lRGVlcChkZWZhdWx0RWRpdG9yRmVhdHVyZXMpXG4gICAgfVxuXG4gICAgY29uc3QgbGV4aWNhbDogTGV4aWNhbEVkaXRvckNvbmZpZyA9IHByb3BzLmxleGljYWxcblxuICAgIHJlc29sdmVkRmVhdHVyZU1hcCA9IGxvYWRGZWF0dXJlcyh7XG4gICAgICB1blNhbml0aXplZEVkaXRvckNvbmZpZzoge1xuICAgICAgICBmZWF0dXJlcyxcbiAgICAgICAgbGV4aWNhbDogbGV4aWNhbCA/IGxleGljYWwgOiBkZWZhdWx0RWRpdG9yQ29uZmlnLmxleGljYWwsXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICBmaW5hbFNhbml0aXplZEVkaXRvckNvbmZpZyA9IHtcbiAgICAgIGZlYXR1cmVzOiBzYW5pdGl6ZVNlcnZlckZlYXR1cmVzKHJlc29sdmVkRmVhdHVyZU1hcCksXG4gICAgICBsZXhpY2FsOiBsZXhpY2FsID8gbGV4aWNhbCA6IGRlZmF1bHRFZGl0b3JDb25maWcubGV4aWNhbCxcbiAgICAgIHJlc29sdmVkRmVhdHVyZU1hcCxcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIExhenlDZWxsQ29tcG9uZW50OiAoKSA9PlxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgaW1wb3J0KCcuL2NlbGwnKS50aGVuKChtb2R1bGUpID0+IHtcbiAgICAgICAgY29uc3QgUmljaFRleHRDZWxsID0gbW9kdWxlLlJpY2hUZXh0Q2VsbFxuICAgICAgICByZXR1cm4gaW1wb3J0KCdAcGF5bG9hZGNtcy91aScpLnRoZW4oKG1vZHVsZTIpID0+XG4gICAgICAgICAgbW9kdWxlMi53aXRoTWVyZ2VkUHJvcHMoe1xuICAgICAgICAgICAgQ29tcG9uZW50OiBSaWNoVGV4dENlbGwsXG4gICAgICAgICAgICB0b01lcmdlSW50b1Byb3BzOiB7IGxleGljYWxFZGl0b3JDb25maWc6IGZpbmFsU2FuaXRpemVkRWRpdG9yQ29uZmlnLmxleGljYWwgfSwgLy8gbGV4aWNhbEVkaXRvckNvbmZpZyBpcyBzZXJpYWxpemFibGVcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgfSksXG5cbiAgICBMYXp5RmllbGRDb21wb25lbnQ6ICgpID0+XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICBpbXBvcnQoJy4vZmllbGQnKS50aGVuKChtb2R1bGUpID0+IHtcbiAgICAgICAgY29uc3QgUmljaFRleHRGaWVsZCA9IG1vZHVsZS5SaWNoVGV4dEZpZWxkXG4gICAgICAgIHJldHVybiBpbXBvcnQoJ0BwYXlsb2FkY21zL3VpJykudGhlbigobW9kdWxlMikgPT5cbiAgICAgICAgICBtb2R1bGUyLndpdGhNZXJnZWRQcm9wcyh7XG4gICAgICAgICAgICBDb21wb25lbnQ6IFJpY2hUZXh0RmllbGQsXG4gICAgICAgICAgICB0b01lcmdlSW50b1Byb3BzOiB7IGxleGljYWxFZGl0b3JDb25maWc6IGZpbmFsU2FuaXRpemVkRWRpdG9yQ29uZmlnLmxleGljYWwgfSwgLy8gbGV4aWNhbEVkaXRvckNvbmZpZyBpcyBzZXJpYWxpemFibGVcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgfSksXG4gICAgYWZ0ZXJSZWFkUHJvbWlzZTogKHsgZmllbGQsIGluY29taW5nRWRpdG9yU3RhdGUsIHNpYmxpbmdEb2MgfSkgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgcHJvbWlzZXM6IFByb21pc2U8dm9pZD5bXSA9IFtdXG5cbiAgICAgICAgaWYgKGZpbmFsU2FuaXRpemVkRWRpdG9yQ29uZmlnPy5mZWF0dXJlcz8uaG9va3M/LmFmdGVyUmVhZFByb21pc2VzPy5sZW5ndGgpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGFmdGVyUmVhZFByb21pc2Ugb2YgZmluYWxTYW5pdGl6ZWRFZGl0b3JDb25maWcuZmVhdHVyZXMuaG9va3NcbiAgICAgICAgICAgIC5hZnRlclJlYWRQcm9taXNlcykge1xuICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IGFmdGVyUmVhZFByb21pc2Uoe1xuICAgICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgICAgaW5jb21pbmdFZGl0b3JTdGF0ZSxcbiAgICAgICAgICAgICAgc2libGluZ0RvYyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBpZiAocHJvbWlzZSkge1xuICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgUHJvbWlzZS5hbGwocHJvbWlzZXMpXG4gICAgICAgICAgLnRoZW4oKCkgPT4gcmVzb2x2ZSgpKVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHJlamVjdChlcnJvcikpXG4gICAgICB9KVxuICAgIH0sXG4gICAgZWRpdG9yQ29uZmlnOiBmaW5hbFNhbml0aXplZEVkaXRvckNvbmZpZyxcbiAgICBnZW5lcmF0ZUNvbXBvbmVudE1hcDogZ2V0R2VuZXJhdGVDb21wb25lbnRNYXAoe1xuICAgICAgcmVzb2x2ZWRGZWF0dXJlTWFwLFxuICAgIH0pLFxuICAgIGdlbmVyYXRlU2NoZW1hTWFwOiBnZXRHZW5lcmF0ZVNjaGVtYU1hcCh7XG4gICAgICByZXNvbHZlZEZlYXR1cmVNYXAsXG4gICAgfSksXG4gICAgb3V0cHV0U2NoZW1hOiAoeyBmaWVsZCwgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zLCBpc1JlcXVpcmVkIH0pID0+IHtcbiAgICAgIGxldCBvdXRwdXRTY2hlbWE6IEpTT05TY2hlbWE0ID0ge1xuICAgICAgICAvLyBUaGlzIHNjaGVtYSBtYXRjaGVzIHRoZSBTZXJpYWxpemVkRWRpdG9yU3RhdGUgdHlwZSBzbyBmYXIsIHRoYXQgaXQncyBwb3NzaWJsZSB0byBjYXN0IFNlcmlhbGl6ZWRFZGl0b3JTdGF0ZSB0byB0aGlzIHNjaGVtYSB3aXRob3V0IGFueSBlcnJvcnMuXG4gICAgICAgIC8vIEluIHRoZSBmdXR1cmUsIHdlIHNob3VsZFxuICAgICAgICAvLyAxKSBhbGxvdyByZWN1cnNpdmUgY2hpbGRyZW5cbiAgICAgICAgLy8gMikgUGFzcyBpbiBhbGwgdGhlIGRpZmZlcmVudCB0eXBlcyBmb3IgZXZlcnkgbm9kZSBhZGRlZCB0byB0aGUgZWRpdG9yY29uZmlnLiBUaGlzIGNhbiBiZSBkb25lIHdpdGggcmVmcyBpbiB0aGUgc2NoZW1hLlxuICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSgnb2JqZWN0JywgaXNSZXF1aXJlZCksXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICByb290OiB7XG4gICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgdHlwZToge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBjaGlsZHJlbjoge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUsXG4gICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjoge1xuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogWyd0eXBlJywgJ3ZlcnNpb24nXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBkaXJlY3Rpb246IHtcbiAgICAgICAgICAgICAgICBvbmVPZjogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBlbnVtOiBbJ2x0cicsICdydGwnXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdudWxsJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZm9ybWF0OiB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgZW51bTogWydsZWZ0JywgJ3N0YXJ0JywgJ2NlbnRlcicsICdyaWdodCcsICdlbmQnLCAnanVzdGlmeScsICcnXSwgLy8gRWxlbWVudEZvcm1hdFR5cGUsIHNpbmNlIHRoZSByb290IG5vZGUgaXMgYW4gZWxlbWVudFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBpbmRlbnQ6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHZlcnNpb246IHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IFsnY2hpbGRyZW4nLCAnZGlyZWN0aW9uJywgJ2Zvcm1hdCcsICdpbmRlbnQnLCAndHlwZScsICd2ZXJzaW9uJ10sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWlyZWQ6IFsncm9vdCddLFxuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBtb2RpZnlPdXRwdXRTY2hlbWEgb2YgZmluYWxTYW5pdGl6ZWRFZGl0b3JDb25maWcuZmVhdHVyZXMuZ2VuZXJhdGVkVHlwZXNcbiAgICAgICAgLm1vZGlmeU91dHB1dFNjaGVtYXMpIHtcbiAgICAgICAgb3V0cHV0U2NoZW1hID0gbW9kaWZ5T3V0cHV0U2NoZW1hKHtcbiAgICAgICAgICBjdXJyZW50U2NoZW1hOiBvdXRwdXRTY2hlbWEsXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zLFxuICAgICAgICAgIGlzUmVxdWlyZWQsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvdXRwdXRTY2hlbWFcbiAgICB9LFxuICAgIHBvcHVsYXRpb25Qcm9taXNlKHtcbiAgICAgIGNvbnRleHQsXG4gICAgICBjdXJyZW50RGVwdGgsXG4gICAgICBkZXB0aCxcbiAgICAgIGZpZWxkLFxuICAgICAgZmluZE1hbnksXG4gICAgICBmbGF0dGVuTG9jYWxlcyxcbiAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgcG9wdWxhdGlvblByb21pc2VzLFxuICAgICAgcmVxLFxuICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgIHNpYmxpbmdEb2MsXG4gICAgfSkge1xuICAgICAgLy8gY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBmZWF0dXJlcyB3aXRoIG5vZGVzIHdoaWNoIGhhdmUgcG9wdWxhdGlvblByb21pc2VzIGZvciB0aGlzIGZpZWxkXG4gICAgICBpZiAoZmluYWxTYW5pdGl6ZWRFZGl0b3JDb25maWc/LmZlYXR1cmVzPy5wb3B1bGF0aW9uUHJvbWlzZXM/LnNpemUpIHtcbiAgICAgICAgcmV0dXJuIHJpY2hUZXh0UmVsYXRpb25zaGlwUHJvbWlzZSh7XG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgZWRpdG9yUG9wdWxhdGlvblByb21pc2VzOiBmaW5hbFNhbml0aXplZEVkaXRvckNvbmZpZy5mZWF0dXJlcy5wb3B1bGF0aW9uUHJvbWlzZXMsXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgZmluZE1hbnksXG4gICAgICAgICAgZmxhdHRlbkxvY2FsZXMsXG4gICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgcG9wdWxhdGlvblByb21pc2VzLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgICAgICAgIHNpYmxpbmdEb2MsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsXG4gICAgfSxcbiAgICB2YWxpZGF0ZTogcmljaFRleHRWYWxpZGF0ZUhPQyh7XG4gICAgICBlZGl0b3JDb25maWc6IGZpbmFsU2FuaXRpemVkRWRpdG9yQ29uZmlnLFxuICAgIH0pLFxuICB9XG59XG5cbmV4cG9ydCB7IEFsaWduRmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvYWxpZ24vZmVhdHVyZS5zZXJ2ZXInXG5leHBvcnQgeyBCbG9ja1F1b3RlRmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvYmxvY2txdW90ZS9mZWF0dXJlLnNlcnZlcidcbmV4cG9ydCB7IEJsb2Nrc0ZlYXR1cmUsIHR5cGUgQmxvY2tzRmVhdHVyZVByb3BzIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9ibG9ja3MvZmVhdHVyZS5zZXJ2ZXInXG5leHBvcnQge1xuICAkY3JlYXRlQmxvY2tOb2RlLFxuICAkaXNCbG9ja05vZGUsXG4gIHR5cGUgQmxvY2tGaWVsZHMsXG4gIEJsb2NrTm9kZSxcbiAgdHlwZSBTZXJpYWxpemVkQmxvY2tOb2RlLFxufSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2Jsb2Nrcy9ub2Rlcy9CbG9ja3NOb2RlJ1xuXG5leHBvcnQgeyBUZXh0RHJvcGRvd25TZWN0aW9uV2l0aEVudHJpZXMgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2NvbW1vbi9mbG9hdGluZ1NlbGVjdFRvb2xiYXJUZXh0RHJvcGRvd25TZWN0aW9uJ1xuZXhwb3J0IHtcbiAgY29udmVydExleGljYWxOb2Rlc1RvSFRNTCxcbiAgY29udmVydExleGljYWxUb0hUTUwsXG59IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvY29udmVydGVycy9odG1sL2NvbnZlcnRlcidcbmV4cG9ydCB7IExpbmVicmVha0hUTUxDb252ZXJ0ZXIgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2NvbnZlcnRlcnMvaHRtbC9jb252ZXJ0ZXIvY29udmVydGVycy9saW5lYnJlYWsnXG5cbmV4cG9ydCB7IFBhcmFncmFwaEhUTUxDb252ZXJ0ZXIgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2NvbnZlcnRlcnMvaHRtbC9jb252ZXJ0ZXIvY29udmVydGVycy9wYXJhZ3JhcGgnXG5leHBvcnQgeyBUZXh0SFRNTENvbnZlcnRlciB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvY29udmVydGVycy9odG1sL2NvbnZlcnRlci9jb252ZXJ0ZXJzL3RleHQnXG5leHBvcnQgeyBkZWZhdWx0SFRNTENvbnZlcnRlcnMgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2NvbnZlcnRlcnMvaHRtbC9jb252ZXJ0ZXIvZGVmYXVsdENvbnZlcnRlcnMnXG5leHBvcnQgdHlwZSB7IEhUTUxDb252ZXJ0ZXIgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2NvbnZlcnRlcnMvaHRtbC9jb252ZXJ0ZXIvdHlwZXMnXG5leHBvcnQge1xuICBIVE1MQ29udmVydGVyRmVhdHVyZSxcbiAgdHlwZSBIVE1MQ29udmVydGVyRmVhdHVyZVByb3BzLFxufSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2NvbnZlcnRlcnMvaHRtbC9mZWF0dXJlLnNlcnZlcidcbmV4cG9ydCB7IGNvbnNvbGlkYXRlSFRNTENvbnZlcnRlcnMgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2NvbnZlcnRlcnMvaHRtbC9maWVsZCdcbmV4cG9ydCB7IGxleGljYWxIVE1MIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9jb252ZXJ0ZXJzL2h0bWwvZmllbGQnXG5leHBvcnQgeyBjcmVhdGVDbGllbnRDb21wb25lbnQgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2NyZWF0ZUNsaWVudENvbXBvbmVudCdcbmV4cG9ydCB7IFRlc3RSZWNvcmRlckZlYXR1cmUgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2RlYnVnL3Rlc3RyZWNvcmRlci9mZWF0dXJlLnNlcnZlcidcbmV4cG9ydCB7IFRyZWVWaWV3RmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvZGVidWcvdHJlZXZpZXcvZmVhdHVyZS5zZXJ2ZXInXG5leHBvcnQgeyBCb2xkRmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvZm9ybWF0L2JvbGQvZmVhdHVyZS5zZXJ2ZXInXG5leHBvcnQgeyBTZWN0aW9uV2l0aEVudHJpZXMgYXMgRm9ybWF0U2VjdGlvbldpdGhFbnRyaWVzIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9mb3JtYXQvY29tbW9uL2Zsb2F0aW5nU2VsZWN0VG9vbGJhclNlY3Rpb24nXG5leHBvcnQgeyBJbmxpbmVDb2RlRmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvZm9ybWF0L2lubGluZWNvZGUvZmVhdHVyZS5zZXJ2ZXInXG5leHBvcnQgeyBJdGFsaWNGZWF0dXJlIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9mb3JtYXQvaXRhbGljL2ZlYXR1cmUuc2VydmVyJ1xuZXhwb3J0IHsgU3RyaWtldGhyb3VnaEZlYXR1cmUgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2Zvcm1hdC9zdHJpa2V0aHJvdWdoL2ZlYXR1cmUuc2VydmVyJ1xuZXhwb3J0IHsgU3Vic2NyaXB0RmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvZm9ybWF0L3N1YnNjcmlwdC9mZWF0dXJlLnNlcnZlcidcbmV4cG9ydCB7IFN1cGVyc2NyaXB0RmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvZm9ybWF0L3N1cGVyc2NyaXB0L2ZlYXR1cmUuc2VydmVyJ1xuZXhwb3J0IHsgVW5kZXJsaW5lRmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvZm9ybWF0L3VuZGVybGluZS9mZWF0dXJlLnNlcnZlcidcblxuZXhwb3J0IHsgSGVhZGluZ0ZlYXR1cmUgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2hlYWRpbmcvZmVhdHVyZS5zZXJ2ZXInXG5leHBvcnQgeyBJbmRlbnRGZWF0dXJlIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9pbmRlbnQvZmVhdHVyZS5zZXJ2ZXInXG5cbmV4cG9ydCB7IExpbmtGZWF0dXJlLCB0eXBlIExpbmtGZWF0dXJlU2VydmVyUHJvcHMgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2xpbmsvZmVhdHVyZS5zZXJ2ZXInXG5leHBvcnQge1xuICAkY3JlYXRlQXV0b0xpbmtOb2RlLFxuICAkaXNBdXRvTGlua05vZGUsXG4gIEF1dG9MaW5rTm9kZSxcbn0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9saW5rL25vZGVzL0F1dG9MaW5rTm9kZSdcbmV4cG9ydCB7XG4gICRjcmVhdGVMaW5rTm9kZSxcbiAgJGlzTGlua05vZGUsXG4gIExpbmtOb2RlLFxuICBUT0dHTEVfTElOS19DT01NQU5ELFxufSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2xpbmsvbm9kZXMvTGlua05vZGUnXG5leHBvcnQgdHlwZSB7XG4gIExpbmtGaWVsZHMsXG4gIFNlcmlhbGl6ZWRBdXRvTGlua05vZGUsXG4gIFNlcmlhbGl6ZWRMaW5rTm9kZSxcbn0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9saW5rL25vZGVzL3R5cGVzJ1xuZXhwb3J0IHsgQ2hlY2tMaXN0RmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvbGlzdHMvY2hlY2tsaXN0L2ZlYXR1cmUuc2VydmVyJ1xuZXhwb3J0IHsgT3JkZXJlZExpc3RGZWF0dXJlIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9saXN0cy9vcmRlcmVkbGlzdC9mZWF0dXJlLnNlcnZlcidcbmV4cG9ydCB7IFVub3JkZXJlZExpc3RGZWF0dXJlIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9saXN0cy91bm9yZGVyZWRsaXN0L2ZlYXR1cmUuc2VydmVyJ1xuZXhwb3J0IHsgTGV4aWNhbFBsdWdpblRvTGV4aWNhbEZlYXR1cmUgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL21pZ3JhdGlvbnMvbGV4aWNhbFBsdWdpblRvTGV4aWNhbC9mZWF0dXJlLnNlcnZlcidcbmV4cG9ydCB7IFNsYXRlQmxvY2txdW90ZUNvbnZlcnRlciB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvbWlncmF0aW9ucy9zbGF0ZVRvTGV4aWNhbC9jb252ZXJ0ZXIvY29udmVydGVycy9ibG9ja3F1b3RlJ1xuZXhwb3J0IHsgU2xhdGVIZWFkaW5nQ29udmVydGVyIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9taWdyYXRpb25zL3NsYXRlVG9MZXhpY2FsL2NvbnZlcnRlci9jb252ZXJ0ZXJzL2hlYWRpbmcnXG5leHBvcnQgeyBTbGF0ZUluZGVudENvbnZlcnRlciB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvbWlncmF0aW9ucy9zbGF0ZVRvTGV4aWNhbC9jb252ZXJ0ZXIvY29udmVydGVycy9pbmRlbnQnXG5leHBvcnQgeyBTbGF0ZUxpbmtDb252ZXJ0ZXIgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL21pZ3JhdGlvbnMvc2xhdGVUb0xleGljYWwvY29udmVydGVyL2NvbnZlcnRlcnMvbGluaydcbmV4cG9ydCB7IFNsYXRlTGlzdEl0ZW1Db252ZXJ0ZXIgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL21pZ3JhdGlvbnMvc2xhdGVUb0xleGljYWwvY29udmVydGVyL2NvbnZlcnRlcnMvbGlzdEl0ZW0nXG5leHBvcnQgeyBTbGF0ZU9yZGVyZWRMaXN0Q29udmVydGVyIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9taWdyYXRpb25zL3NsYXRlVG9MZXhpY2FsL2NvbnZlcnRlci9jb252ZXJ0ZXJzL29yZGVyZWRMaXN0J1xuZXhwb3J0IHsgU2xhdGVSZWxhdGlvbnNoaXBDb252ZXJ0ZXIgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL21pZ3JhdGlvbnMvc2xhdGVUb0xleGljYWwvY29udmVydGVyL2NvbnZlcnRlcnMvcmVsYXRpb25zaGlwJ1xuZXhwb3J0IHsgU2xhdGVVbmtub3duQ29udmVydGVyIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9taWdyYXRpb25zL3NsYXRlVG9MZXhpY2FsL2NvbnZlcnRlci9jb252ZXJ0ZXJzL3Vua25vd24nXG5leHBvcnQgeyBTbGF0ZVVub3JkZXJlZExpc3RDb252ZXJ0ZXIgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL21pZ3JhdGlvbnMvc2xhdGVUb0xleGljYWwvY29udmVydGVyL2NvbnZlcnRlcnMvdW5vcmRlcmVkTGlzdCdcblxuZXhwb3J0IHsgU2xhdGVVcGxvYWRDb252ZXJ0ZXIgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL21pZ3JhdGlvbnMvc2xhdGVUb0xleGljYWwvY29udmVydGVyL2NvbnZlcnRlcnMvdXBsb2FkJ1xuZXhwb3J0IHsgZGVmYXVsdFNsYXRlQ29udmVydGVycyB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvbWlncmF0aW9ucy9zbGF0ZVRvTGV4aWNhbC9jb252ZXJ0ZXIvZGVmYXVsdENvbnZlcnRlcnMnXG5leHBvcnQge1xuICBjb252ZXJ0U2xhdGVOb2Rlc1RvTGV4aWNhbCxcbiAgY29udmVydFNsYXRlVG9MZXhpY2FsLFxufSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL21pZ3JhdGlvbnMvc2xhdGVUb0xleGljYWwvY29udmVydGVyL2luZGV4J1xuXG5leHBvcnQgdHlwZSB7XG4gIFNsYXRlTm9kZSxcbiAgU2xhdGVOb2RlQ29udmVydGVyLFxufSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL21pZ3JhdGlvbnMvc2xhdGVUb0xleGljYWwvY29udmVydGVyL3R5cGVzJ1xuZXhwb3J0IHsgU2xhdGVUb0xleGljYWxGZWF0dXJlIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9taWdyYXRpb25zL3NsYXRlVG9MZXhpY2FsL2ZlYXR1cmUuc2VydmVyJ1xuZXhwb3J0IHsgUGFyYWdyYXBoRmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvcGFyYWdyYXBoL2ZlYXR1cmUuc2VydmVyJ1xuZXhwb3J0IHsgUmVsYXRpb25zaGlwRmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvcmVsYXRpb25zaGlwL2ZlYXR1cmUuc2VydmVyJ1xuZXhwb3J0IHtcbiAgJGNyZWF0ZVJlbGF0aW9uc2hpcE5vZGUsXG4gICRpc1JlbGF0aW9uc2hpcE5vZGUsXG4gIHR5cGUgUmVsYXRpb25zaGlwRGF0YSxcbiAgUmVsYXRpb25zaGlwTm9kZSxcbiAgdHlwZSBTZXJpYWxpemVkUmVsYXRpb25zaGlwTm9kZSxcbn0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9yZWxhdGlvbnNoaXAvbm9kZXMvUmVsYXRpb25zaGlwTm9kZSdcbmV4cG9ydCB0eXBlIHtcbiAgQ2xpZW50RmVhdHVyZSxcbiAgQ2xpZW50RmVhdHVyZVByb3ZpZGVyTWFwLFxuICBGZWF0dXJlUHJvdmlkZXJDbGllbnQsXG4gIEZlYXR1cmVQcm92aWRlclByb3ZpZGVyQ2xpZW50LFxuICBGZWF0dXJlUHJvdmlkZXJQcm92aWRlclNlcnZlcixcbiAgRmVhdHVyZVByb3ZpZGVyU2VydmVyLFxuICBOb2RlVmFsaWRhdGlvbixcbiAgUG9wdWxhdGlvblByb21pc2UsXG4gIFJlc29sdmVkQ2xpZW50RmVhdHVyZSxcbiAgUmVzb2x2ZWRDbGllbnRGZWF0dXJlTWFwLFxuICBSZXNvbHZlZFNlcnZlckZlYXR1cmUsXG4gIFJlc29sdmVkU2VydmVyRmVhdHVyZU1hcCxcbiAgU2FuaXRpemVkQ2xpZW50RmVhdHVyZXMsXG4gIFNhbml0aXplZFBsdWdpbixcbiAgU2FuaXRpemVkU2VydmVyRmVhdHVyZXMsXG4gIFNlcnZlckZlYXR1cmUsXG4gIFNlcnZlckZlYXR1cmVQcm92aWRlck1hcCxcbn0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy90eXBlcydcbmV4cG9ydCB7IFVwbG9hZEZlYXR1cmUgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL3VwbG9hZC9mZWF0dXJlLnNlcnZlcidcblxuZXhwb3J0IHR5cGUgeyBVcGxvYWRGZWF0dXJlUHJvcHMgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL3VwbG9hZC9mZWF0dXJlLnNlcnZlcidcblxuZXhwb3J0IHR5cGUgeyBSYXdVcGxvYWRQYXlsb2FkIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy91cGxvYWQvbm9kZXMvVXBsb2FkTm9kZSdcblxuZXhwb3J0IHtcbiAgJGNyZWF0ZVVwbG9hZE5vZGUsXG4gICRpc1VwbG9hZE5vZGUsXG4gIHR5cGUgU2VyaWFsaXplZFVwbG9hZE5vZGUsXG4gIHR5cGUgVXBsb2FkRGF0YSxcbiAgVXBsb2FkTm9kZSxcbn0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy91cGxvYWQvbm9kZXMvVXBsb2FkTm9kZSdcbmV4cG9ydCB7XG4gIEVkaXRvckNvbmZpZ1Byb3ZpZGVyLFxuICB1c2VFZGl0b3JDb25maWdDb250ZXh0LFxufSBmcm9tICcuL2ZpZWxkL2xleGljYWwvY29uZmlnL2NsaWVudC9FZGl0b3JDb25maWdQcm92aWRlcidcbmV4cG9ydCB7XG4gIHNhbml0aXplQ2xpZW50RWRpdG9yQ29uZmlnLFxuICBzYW5pdGl6ZUNsaWVudEZlYXR1cmVzLFxufSBmcm9tICcuL2ZpZWxkL2xleGljYWwvY29uZmlnL2NsaWVudC9zYW5pdGl6ZSdcbmV4cG9ydCB7XG4gIGRlZmF1bHRFZGl0b3JDb25maWcsXG4gIGRlZmF1bHRFZGl0b3JGZWF0dXJlcyxcbiAgZGVmYXVsdEVkaXRvckxleGljYWxDb25maWcsXG4gIGRlZmF1bHRTYW5pdGl6ZWRTZXJ2ZXJFZGl0b3JDb25maWcsXG59IGZyb20gJy4vZmllbGQvbGV4aWNhbC9jb25maWcvc2VydmVyL2RlZmF1bHQnXG5leHBvcnQgeyBsb2FkRmVhdHVyZXMsIHNvcnRGZWF0dXJlc0Zvck9wdGltYWxMb2FkaW5nIH0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL2NvbmZpZy9zZXJ2ZXIvbG9hZGVyJ1xuZXhwb3J0IHtcbiAgc2FuaXRpemVTZXJ2ZXJFZGl0b3JDb25maWcsXG4gIHNhbml0aXplU2VydmVyRmVhdHVyZXMsXG59IGZyb20gJy4vZmllbGQvbGV4aWNhbC9jb25maWcvc2VydmVyL3Nhbml0aXplJ1xuXG5leHBvcnQgdHlwZSB7XG4gIENsaWVudEVkaXRvckNvbmZpZyxcbiAgU2FuaXRpemVkQ2xpZW50RWRpdG9yQ29uZmlnLFxuICBTYW5pdGl6ZWRTZXJ2ZXJFZGl0b3JDb25maWcsXG4gIFNlcnZlckVkaXRvckNvbmZpZyxcbn0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL2NvbmZpZy90eXBlcydcbmV4cG9ydCB7IGdldEVuYWJsZWROb2RlcyB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC9ub2RlcydcblxuZXhwb3J0IHtcbiAgdHlwZSBGbG9hdGluZ1Rvb2xiYXJTZWN0aW9uLFxuICB0eXBlIEZsb2F0aW5nVG9vbGJhclNlY3Rpb25FbnRyeSxcbn0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL3BsdWdpbnMvRmxvYXRpbmdTZWxlY3RUb29sYmFyL3R5cGVzJ1xuZXhwb3J0IHsgRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC9wbHVnaW5zL1NsYXNoTWVudS9MZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbi9pbmRleCdcbmV4cG9ydCB0eXBlIHsgQWRhcHRlclByb3BzIH1cblxuZXhwb3J0IHtcbiAgU2xhc2hNZW51R3JvdXAsXG4gIFNsYXNoTWVudU9wdGlvbixcbn0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL3R5cGVzJ1xuZXhwb3J0IHsgQ0FOX1VTRV9ET00gfSBmcm9tICcuL2ZpZWxkL2xleGljYWwvdXRpbHMvY2FuVXNlRE9NJ1xuZXhwb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL3V0aWxzL2Nsb25lRGVlcCdcbmV4cG9ydCB7IGdldERPTVJhbmdlUmVjdCB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC91dGlscy9nZXRET01SYW5nZVJlY3QnXG5leHBvcnQgeyBnZXRTZWxlY3RlZE5vZGUgfSBmcm9tICcuL2ZpZWxkL2xleGljYWwvdXRpbHMvZ2V0U2VsZWN0ZWROb2RlJ1xuZXhwb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC91dGlscy9ndWFyZCdcbmV4cG9ydCB7IGludmFyaWFudCB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC91dGlscy9pbnZhcmlhbnQnXG5leHBvcnQgeyBqb2luQ2xhc3NlcyB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC91dGlscy9qb2luQ2xhc3NlcydcbmV4cG9ydCB7IGNyZWF0ZUJsb2NrTm9kZSB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC91dGlscy9tYXJrZG93bi9jcmVhdGVCbG9ja05vZGUnXG5leHBvcnQge1xuICBERVRBSUxfVFlQRV9UT19ERVRBSUwsXG4gIERPVUJMRV9MSU5FX0JSRUFLLFxuICBFTEVNRU5UX0ZPUk1BVF9UT19UWVBFLFxuICBFTEVNRU5UX1RZUEVfVE9fRk9STUFULFxuICBJU19BTExfRk9STUFUVElORyxcbiAgTFRSX1JFR0VYLFxuICBOT05fQlJFQUtJTkdfU1BBQ0UsXG4gIE5vZGVGb3JtYXQsXG4gIFJUTF9SRUdFWCxcbiAgVEVYVF9NT0RFX1RPX1RZUEUsXG4gIFRFWFRfVFlQRV9UT19GT1JNQVQsXG4gIFRFWFRfVFlQRV9UT19NT0RFLFxufSBmcm9tICcuL2ZpZWxkL2xleGljYWwvdXRpbHMvbm9kZUZvcm1hdCdcbmV4cG9ydCB7IFBvaW50LCBpc1BvaW50IH0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL3V0aWxzL3BvaW50J1xuZXhwb3J0IHsgUmVjdCB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC91dGlscy9yZWN0J1xuZXhwb3J0IHsgc2V0RmxvYXRpbmdFbGVtUG9zaXRpb24gfSBmcm9tICcuL2ZpZWxkL2xleGljYWwvdXRpbHMvc2V0RmxvYXRpbmdFbGVtUG9zaXRpb24nXG5leHBvcnQgeyBzZXRGbG9hdGluZ0VsZW1Qb3NpdGlvbkZvckxpbmtFZGl0b3IgfSBmcm9tICcuL2ZpZWxkL2xleGljYWwvdXRpbHMvc2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yJ1xuZXhwb3J0IHtcbiAgYWRkU3dpcGVEb3duTGlzdGVuZXIsXG4gIGFkZFN3aXBlTGVmdExpc3RlbmVyLFxuICBhZGRTd2lwZVJpZ2h0TGlzdGVuZXIsXG4gIGFkZFN3aXBlVXBMaXN0ZW5lcixcbn0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL3V0aWxzL3N3aXBlJ1xuZXhwb3J0IHsgc2FuaXRpemVVcmwsIHZhbGlkYXRlVXJsIH0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL3V0aWxzL3VybCdcbmV4cG9ydCB7IGRlZmF1bHRSaWNoVGV4dFZhbHVlIH0gZnJvbSAnLi9wb3B1bGF0ZS9kZWZhdWx0VmFsdWUnXG4iXSwibmFtZXMiOlsid2l0aE51bGxhYmxlSlNPTlNjaGVtYVR5cGUiLCJkZWZhdWx0RWRpdG9yQ29uZmlnIiwiZGVmYXVsdEVkaXRvckZlYXR1cmVzIiwiZGVmYXVsdFNhbml0aXplZFNlcnZlckVkaXRvckNvbmZpZyIsImxvYWRGZWF0dXJlcyIsInNhbml0aXplU2VydmVyRmVhdHVyZXMiLCJjbG9uZURlZXAiLCJnZXRHZW5lcmF0ZUNvbXBvbmVudE1hcCIsImdldEdlbmVyYXRlU2NoZW1hTWFwIiwicmljaFRleHRSZWxhdGlvbnNoaXBQcm9taXNlIiwicmljaFRleHRWYWxpZGF0ZUhPQyIsImxleGljYWxFZGl0b3IiLCJwcm9wcyIsInJlc29sdmVkRmVhdHVyZU1hcCIsImZpbmFsU2FuaXRpemVkRWRpdG9yQ29uZmlnIiwiZmVhdHVyZXMiLCJsZXhpY2FsIiwiZGVmYXVsdEZlYXR1cmVzIiwidW5TYW5pdGl6ZWRFZGl0b3JDb25maWciLCJMYXp5Q2VsbENvbXBvbmVudCIsInRoZW4iLCJtb2R1bGUiLCJSaWNoVGV4dENlbGwiLCJtb2R1bGUyIiwid2l0aE1lcmdlZFByb3BzIiwiQ29tcG9uZW50IiwidG9NZXJnZUludG9Qcm9wcyIsImxleGljYWxFZGl0b3JDb25maWciLCJMYXp5RmllbGRDb21wb25lbnQiLCJSaWNoVGV4dEZpZWxkIiwiYWZ0ZXJSZWFkUHJvbWlzZSIsImZpZWxkIiwiaW5jb21pbmdFZGl0b3JTdGF0ZSIsInNpYmxpbmdEb2MiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInByb21pc2VzIiwiaG9va3MiLCJhZnRlclJlYWRQcm9taXNlcyIsImxlbmd0aCIsInByb21pc2UiLCJwdXNoIiwiYWxsIiwiY2F0Y2giLCJlcnJvciIsImVkaXRvckNvbmZpZyIsImdlbmVyYXRlQ29tcG9uZW50TWFwIiwiZ2VuZXJhdGVTY2hlbWFNYXAiLCJvdXRwdXRTY2hlbWEiLCJpbnRlcmZhY2VOYW1lRGVmaW5pdGlvbnMiLCJpc1JlcXVpcmVkIiwidHlwZSIsInByb3BlcnRpZXMiLCJyb290IiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJjaGlsZHJlbiIsIml0ZW1zIiwidmVyc2lvbiIsInJlcXVpcmVkIiwiZGlyZWN0aW9uIiwib25lT2YiLCJlbnVtIiwiZm9ybWF0IiwiaW5kZW50IiwibW9kaWZ5T3V0cHV0U2NoZW1hIiwiZ2VuZXJhdGVkVHlwZXMiLCJtb2RpZnlPdXRwdXRTY2hlbWFzIiwiY3VycmVudFNjaGVtYSIsInBvcHVsYXRpb25Qcm9taXNlIiwiY29udGV4dCIsImN1cnJlbnREZXB0aCIsImRlcHRoIiwiZmluZE1hbnkiLCJmbGF0dGVuTG9jYWxlcyIsIm92ZXJyaWRlQWNjZXNzIiwicG9wdWxhdGlvblByb21pc2VzIiwicmVxIiwic2hvd0hpZGRlbkZpZWxkcyIsInNpemUiLCJlZGl0b3JQb3B1bGF0aW9uUHJvbWlzZXMiLCJ2YWxpZGF0ZSIsIkFsaWduRmVhdHVyZSIsIkJsb2NrUXVvdGVGZWF0dXJlIiwiQmxvY2tzRmVhdHVyZSIsIiRjcmVhdGVCbG9ja05vZGUiLCIkaXNCbG9ja05vZGUiLCJCbG9ja05vZGUiLCJUZXh0RHJvcGRvd25TZWN0aW9uV2l0aEVudHJpZXMiLCJjb252ZXJ0TGV4aWNhbE5vZGVzVG9IVE1MIiwiY29udmVydExleGljYWxUb0hUTUwiLCJMaW5lYnJlYWtIVE1MQ29udmVydGVyIiwiUGFyYWdyYXBoSFRNTENvbnZlcnRlciIsIlRleHRIVE1MQ29udmVydGVyIiwiZGVmYXVsdEhUTUxDb252ZXJ0ZXJzIiwiSFRNTENvbnZlcnRlckZlYXR1cmUiLCJjb25zb2xpZGF0ZUhUTUxDb252ZXJ0ZXJzIiwibGV4aWNhbEhUTUwiLCJjcmVhdGVDbGllbnRDb21wb25lbnQiLCJUZXN0UmVjb3JkZXJGZWF0dXJlIiwiVHJlZVZpZXdGZWF0dXJlIiwiQm9sZEZlYXR1cmUiLCJTZWN0aW9uV2l0aEVudHJpZXMiLCJGb3JtYXRTZWN0aW9uV2l0aEVudHJpZXMiLCJJbmxpbmVDb2RlRmVhdHVyZSIsIkl0YWxpY0ZlYXR1cmUiLCJTdHJpa2V0aHJvdWdoRmVhdHVyZSIsIlN1YnNjcmlwdEZlYXR1cmUiLCJTdXBlcnNjcmlwdEZlYXR1cmUiLCJVbmRlcmxpbmVGZWF0dXJlIiwiSGVhZGluZ0ZlYXR1cmUiLCJJbmRlbnRGZWF0dXJlIiwiTGlua0ZlYXR1cmUiLCIkY3JlYXRlQXV0b0xpbmtOb2RlIiwiJGlzQXV0b0xpbmtOb2RlIiwiQXV0b0xpbmtOb2RlIiwiJGNyZWF0ZUxpbmtOb2RlIiwiJGlzTGlua05vZGUiLCJMaW5rTm9kZSIsIlRPR0dMRV9MSU5LX0NPTU1BTkQiLCJDaGVja0xpc3RGZWF0dXJlIiwiT3JkZXJlZExpc3RGZWF0dXJlIiwiVW5vcmRlcmVkTGlzdEZlYXR1cmUiLCJMZXhpY2FsUGx1Z2luVG9MZXhpY2FsRmVhdHVyZSIsIlNsYXRlQmxvY2txdW90ZUNvbnZlcnRlciIsIlNsYXRlSGVhZGluZ0NvbnZlcnRlciIsIlNsYXRlSW5kZW50Q29udmVydGVyIiwiU2xhdGVMaW5rQ29udmVydGVyIiwiU2xhdGVMaXN0SXRlbUNvbnZlcnRlciIsIlNsYXRlT3JkZXJlZExpc3RDb252ZXJ0ZXIiLCJTbGF0ZVJlbGF0aW9uc2hpcENvbnZlcnRlciIsIlNsYXRlVW5rbm93bkNvbnZlcnRlciIsIlNsYXRlVW5vcmRlcmVkTGlzdENvbnZlcnRlciIsIlNsYXRlVXBsb2FkQ29udmVydGVyIiwiZGVmYXVsdFNsYXRlQ29udmVydGVycyIsImNvbnZlcnRTbGF0ZU5vZGVzVG9MZXhpY2FsIiwiY29udmVydFNsYXRlVG9MZXhpY2FsIiwiU2xhdGVUb0xleGljYWxGZWF0dXJlIiwiUGFyYWdyYXBoRmVhdHVyZSIsIlJlbGF0aW9uc2hpcEZlYXR1cmUiLCIkY3JlYXRlUmVsYXRpb25zaGlwTm9kZSIsIiRpc1JlbGF0aW9uc2hpcE5vZGUiLCJSZWxhdGlvbnNoaXBOb2RlIiwiVXBsb2FkRmVhdHVyZSIsIiRjcmVhdGVVcGxvYWROb2RlIiwiJGlzVXBsb2FkTm9kZSIsIlVwbG9hZE5vZGUiLCJFZGl0b3JDb25maWdQcm92aWRlciIsInVzZUVkaXRvckNvbmZpZ0NvbnRleHQiLCJzYW5pdGl6ZUNsaWVudEVkaXRvckNvbmZpZyIsInNhbml0aXplQ2xpZW50RmVhdHVyZXMiLCJkZWZhdWx0RWRpdG9yTGV4aWNhbENvbmZpZyIsInNvcnRGZWF0dXJlc0Zvck9wdGltYWxMb2FkaW5nIiwic2FuaXRpemVTZXJ2ZXJFZGl0b3JDb25maWciLCJnZXRFbmFibGVkTm9kZXMiLCJFTkFCTEVfU0xBU0hfTUVOVV9DT01NQU5EIiwiU2xhc2hNZW51R3JvdXAiLCJTbGFzaE1lbnVPcHRpb24iLCJDQU5fVVNFX0RPTSIsImdldERPTVJhbmdlUmVjdCIsImdldFNlbGVjdGVkTm9kZSIsImlzSFRNTEVsZW1lbnQiLCJpbnZhcmlhbnQiLCJqb2luQ2xhc3NlcyIsImNyZWF0ZUJsb2NrTm9kZSIsIkRFVEFJTF9UWVBFX1RPX0RFVEFJTCIsIkRPVUJMRV9MSU5FX0JSRUFLIiwiRUxFTUVOVF9GT1JNQVRfVE9fVFlQRSIsIkVMRU1FTlRfVFlQRV9UT19GT1JNQVQiLCJJU19BTExfRk9STUFUVElORyIsIkxUUl9SRUdFWCIsIk5PTl9CUkVBS0lOR19TUEFDRSIsIk5vZGVGb3JtYXQiLCJSVExfUkVHRVgiLCJURVhUX01PREVfVE9fVFlQRSIsIlRFWFRfVFlQRV9UT19GT1JNQVQiLCJURVhUX1RZUEVfVE9fTU9ERSIsIlBvaW50IiwiaXNQb2ludCIsIlJlY3QiLCJzZXRGbG9hdGluZ0VsZW1Qb3NpdGlvbiIsInNldEZsb2F0aW5nRWxlbVBvc2l0aW9uRm9yTGlua0VkaXRvciIsImFkZFN3aXBlRG93bkxpc3RlbmVyIiwiYWRkU3dpcGVMZWZ0TGlzdGVuZXIiLCJhZGRTd2lwZVJpZ2h0TGlzdGVuZXIiLCJhZGRTd2lwZVVwTGlzdGVuZXIiLCJzYW5pdGl6ZVVybCIsInZhbGlkYXRlVXJsIiwiZGVmYXVsdFJpY2hUZXh0VmFsdWUiXSwibWFwcGluZ3MiOiJBQUtBLFNBQVNBLDBCQUEwQixRQUFRLG9CQUFtQjtBQU05RCxTQUNFQyxtQkFBbUIsRUFDbkJDLHFCQUFxQixFQUNyQkMsa0NBQWtDLFFBQzdCLHdDQUF1QztBQUM5QyxTQUFTQyxZQUFZLFFBQVEsdUNBQXNDO0FBQ25FLFNBQVNDLHNCQUFzQixRQUFRLHlDQUF3QztBQUMvRSxTQUFTQyxTQUFTLFFBQVEsa0NBQWlDO0FBQzNELFNBQVNDLHVCQUF1QixRQUFRLHlCQUF3QjtBQUNoRSxTQUFTQyxvQkFBb0IsUUFBUSxzQkFBcUI7QUFDMUQsU0FBU0MsMkJBQTJCLFFBQVEseUNBQXdDO0FBQ3BGLFNBQVNDLG1CQUFtQixRQUFRLGFBQVk7QUFrQmhELE9BQU8sU0FBU0MsY0FBY0MsS0FBMEI7SUFDdEQsSUFBSUMscUJBQStDO0lBRW5ELElBQUlDLDBCQUF3RCxrQkFBa0I7O0lBQzlFLElBQUksQ0FBQ0YsU0FBVSxDQUFDQSxNQUFNRyxRQUFRLElBQUksQ0FBQ0gsTUFBTUksT0FBTyxFQUFHO1FBQ2pERiw2QkFBNkJSLFVBQVVIO1FBQ3ZDVSxxQkFBcUJDLDJCQUEyQkQsa0JBQWtCO0lBQ3BFLE9BQU87UUFDTCxJQUFJRSxXQUNGSCxNQUFNRyxRQUFRLElBQUksT0FBT0gsTUFBTUcsUUFBUSxLQUFLLGFBQ3hDSCxNQUFNRyxRQUFRLENBQUM7WUFBRUUsaUJBQWlCWCxVQUFVSjtRQUF1QixLQUNsRVUsTUFBTUcsUUFBUTtRQUNyQixJQUFJLENBQUNBLFVBQVU7WUFDYkEsV0FBV1QsVUFBVUo7UUFDdkI7UUFFQSxNQUFNYyxVQUErQkosTUFBTUksT0FBTztRQUVsREgscUJBQXFCVCxhQUFhO1lBQ2hDYyx5QkFBeUI7Z0JBQ3ZCSDtnQkFDQUMsU0FBU0EsVUFBVUEsVUFBVWYsb0JBQW9CZSxPQUFPO1lBQzFEO1FBQ0Y7UUFF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