@payloadcms/richtext-lexical 3.0.0-alpha.21 → 3.0.0-alpha.23

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 (494) hide show
  1. package/components.d.ts +5 -5
  2. package/components.js +6 -6
  3. package/dist/cell/index.d.ts +1 -1
  4. package/dist/cell/index.d.ts.map +1 -1
  5. package/dist/cell/index.js +5 -5
  6. package/dist/exports/components.d.ts +5 -5
  7. package/dist/exports/components.d.ts.map +1 -1
  8. package/dist/exports/components.js +6 -6
  9. package/dist/field/Field.d.ts +1 -1
  10. package/dist/field/Field.d.ts.map +1 -1
  11. package/dist/field/Field.js +2 -2
  12. package/dist/field/features/align/feature.client.js +7 -7
  13. package/dist/field/features/align/feature.server.d.ts +1 -1
  14. package/dist/field/features/align/feature.server.d.ts.map +1 -1
  15. package/dist/field/features/align/feature.server.js +2 -2
  16. package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.d.ts +1 -1
  17. package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.d.ts.map +1 -1
  18. package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.js +2 -2
  19. package/dist/field/features/blockquote/feature.client.js +6 -6
  20. package/dist/field/features/blockquote/feature.server.d.ts +1 -1
  21. package/dist/field/features/blockquote/feature.server.d.ts.map +1 -1
  22. package/dist/field/features/blockquote/feature.server.js +4 -4
  23. package/dist/field/features/blocks/component/BlockContent.d.ts +2 -2
  24. package/dist/field/features/blocks/component/BlockContent.d.ts.map +1 -1
  25. package/dist/field/features/blocks/component/BlockContent.js +3 -3
  26. package/dist/field/features/blocks/component/index.d.ts +1 -1
  27. package/dist/field/features/blocks/component/index.d.ts.map +1 -1
  28. package/dist/field/features/blocks/component/index.js +3 -3
  29. package/dist/field/features/blocks/drawer/index.js +5 -5
  30. package/dist/field/features/blocks/feature.client.d.ts +1 -1
  31. package/dist/field/features/blocks/feature.client.d.ts.map +1 -1
  32. package/dist/field/features/blocks/feature.client.js +7 -7
  33. package/dist/field/features/blocks/feature.server.d.ts +2 -2
  34. package/dist/field/features/blocks/feature.server.d.ts.map +1 -1
  35. package/dist/field/features/blocks/feature.server.js +5 -5
  36. package/dist/field/features/blocks/nodes/BlocksNode.d.ts +2 -2
  37. package/dist/field/features/blocks/nodes/BlocksNode.d.ts.map +1 -1
  38. package/dist/field/features/blocks/nodes/BlocksNode.js +4 -4
  39. package/dist/field/features/blocks/plugin/commands.d.ts +1 -1
  40. package/dist/field/features/blocks/plugin/commands.d.ts.map +1 -1
  41. package/dist/field/features/blocks/plugin/commands.js +1 -1
  42. package/dist/field/features/blocks/plugin/index.d.ts +1 -1
  43. package/dist/field/features/blocks/plugin/index.d.ts.map +1 -1
  44. package/dist/field/features/blocks/plugin/index.js +5 -5
  45. package/dist/field/features/blocks/populationPromise.d.ts +3 -3
  46. package/dist/field/features/blocks/populationPromise.d.ts.map +1 -1
  47. package/dist/field/features/blocks/populationPromise.js +2 -2
  48. package/dist/field/features/blocks/validate.d.ts +3 -3
  49. package/dist/field/features/blocks/validate.d.ts.map +1 -1
  50. package/dist/field/features/blocks/validate.js +1 -1
  51. package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.d.ts +1 -1
  52. package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.d.ts.map +1 -1
  53. package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.js +1 -1
  54. package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.d.ts +1 -1
  55. package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.d.ts.map +1 -1
  56. package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.js +2 -2
  57. package/dist/field/features/converters/html/converter/converters/linebreak.d.ts +1 -1
  58. package/dist/field/features/converters/html/converter/converters/linebreak.d.ts.map +1 -1
  59. package/dist/field/features/converters/html/converter/converters/linebreak.js +1 -1
  60. package/dist/field/features/converters/html/converter/converters/paragraph.d.ts +1 -1
  61. package/dist/field/features/converters/html/converter/converters/paragraph.d.ts.map +1 -1
  62. package/dist/field/features/converters/html/converter/converters/paragraph.js +2 -2
  63. package/dist/field/features/converters/html/converter/converters/text.d.ts +1 -1
  64. package/dist/field/features/converters/html/converter/converters/text.d.ts.map +1 -1
  65. package/dist/field/features/converters/html/converter/converters/text.js +2 -2
  66. package/dist/field/features/converters/html/converter/defaultConverters.d.ts +1 -1
  67. package/dist/field/features/converters/html/converter/defaultConverters.d.ts.map +1 -1
  68. package/dist/field/features/converters/html/converter/defaultConverters.js +4 -4
  69. package/dist/field/features/converters/html/converter/index.d.ts +1 -1
  70. package/dist/field/features/converters/html/converter/index.d.ts.map +1 -1
  71. package/dist/field/features/converters/html/converter/index.js +1 -1
  72. package/dist/field/features/converters/html/feature.server.d.ts +2 -2
  73. package/dist/field/features/converters/html/feature.server.d.ts.map +1 -1
  74. package/dist/field/features/converters/html/feature.server.js +1 -1
  75. package/dist/field/features/converters/html/field/index.d.ts +2 -2
  76. package/dist/field/features/converters/html/field/index.d.ts.map +1 -1
  77. package/dist/field/features/converters/html/field/index.js +3 -3
  78. package/dist/field/features/createClientComponent.d.ts +2 -2
  79. package/dist/field/features/createClientComponent.d.ts.map +1 -1
  80. package/dist/field/features/createClientComponent.js +2 -2
  81. package/dist/field/features/debug/testrecorder/feature.client.js +3 -3
  82. package/dist/field/features/debug/testrecorder/feature.server.d.ts +1 -1
  83. package/dist/field/features/debug/testrecorder/feature.server.d.ts.map +1 -1
  84. package/dist/field/features/debug/testrecorder/feature.server.js +2 -2
  85. package/dist/field/features/debug/testrecorder/plugin/index.js +3 -3
  86. package/dist/field/features/debug/treeview/feature.client.js +3 -3
  87. package/dist/field/features/debug/treeview/feature.server.d.ts +1 -1
  88. package/dist/field/features/debug/treeview/feature.server.d.ts.map +1 -1
  89. package/dist/field/features/debug/treeview/feature.server.js +2 -2
  90. package/dist/field/features/debug/treeview/plugin/index.js +3 -3
  91. package/dist/field/features/format/bold/feature.client.js +5 -5
  92. package/dist/field/features/format/bold/feature.server.d.ts +1 -1
  93. package/dist/field/features/format/bold/feature.server.d.ts.map +1 -1
  94. package/dist/field/features/format/bold/feature.server.js +3 -3
  95. package/dist/field/features/format/common/floatingSelectToolbarSection.d.ts +1 -1
  96. package/dist/field/features/format/common/floatingSelectToolbarSection.d.ts.map +1 -1
  97. package/dist/field/features/format/common/floatingSelectToolbarSection.js +1 -1
  98. package/dist/field/features/format/inlinecode/feature.client.js +5 -5
  99. package/dist/field/features/format/inlinecode/feature.server.d.ts +1 -1
  100. package/dist/field/features/format/inlinecode/feature.server.d.ts.map +1 -1
  101. package/dist/field/features/format/inlinecode/feature.server.js +3 -3
  102. package/dist/field/features/format/italic/feature.client.js +5 -5
  103. package/dist/field/features/format/italic/feature.server.d.ts +1 -1
  104. package/dist/field/features/format/italic/feature.server.d.ts.map +1 -1
  105. package/dist/field/features/format/italic/feature.server.js +3 -3
  106. package/dist/field/features/format/strikethrough/feature.client.js +5 -5
  107. package/dist/field/features/format/strikethrough/feature.server.d.ts +1 -1
  108. package/dist/field/features/format/strikethrough/feature.server.d.ts.map +1 -1
  109. package/dist/field/features/format/strikethrough/feature.server.js +3 -3
  110. package/dist/field/features/format/subscript/feature.client.js +4 -4
  111. package/dist/field/features/format/subscript/feature.server.d.ts +1 -1
  112. package/dist/field/features/format/subscript/feature.server.d.ts.map +1 -1
  113. package/dist/field/features/format/subscript/feature.server.js +2 -2
  114. package/dist/field/features/format/superscript/feature.client.js +4 -4
  115. package/dist/field/features/format/superscript/feature.server.d.ts +1 -1
  116. package/dist/field/features/format/superscript/feature.server.d.ts.map +1 -1
  117. package/dist/field/features/format/superscript/feature.server.js +2 -2
  118. package/dist/field/features/format/underline/feature.client.js +4 -4
  119. package/dist/field/features/format/underline/feature.server.d.ts +1 -1
  120. package/dist/field/features/format/underline/feature.server.d.ts.map +1 -1
  121. package/dist/field/features/format/underline/feature.server.js +2 -2
  122. package/dist/field/features/heading/feature.client.d.ts +2 -2
  123. package/dist/field/features/heading/feature.client.d.ts.map +1 -1
  124. package/dist/field/features/heading/feature.client.js +11 -11
  125. package/dist/field/features/heading/feature.server.d.ts +1 -1
  126. package/dist/field/features/heading/feature.server.d.ts.map +1 -1
  127. package/dist/field/features/heading/feature.server.js +4 -4
  128. package/dist/field/features/heading/markdownTransformer.js +2 -2
  129. package/dist/field/features/indent/feature.client.js +5 -5
  130. package/dist/field/features/indent/feature.server.d.ts +1 -1
  131. package/dist/field/features/indent/feature.server.d.ts.map +1 -1
  132. package/dist/field/features/indent/feature.server.js +2 -2
  133. package/dist/field/features/indent/floatingSelectToolbarIndentSection.d.ts +1 -1
  134. package/dist/field/features/indent/floatingSelectToolbarIndentSection.d.ts.map +1 -1
  135. package/dist/field/features/indent/floatingSelectToolbarIndentSection.js +1 -1
  136. package/dist/field/features/link/drawer/baseFields.js +2 -2
  137. package/dist/field/features/link/drawer/index.d.ts +1 -1
  138. package/dist/field/features/link/drawer/index.d.ts.map +1 -1
  139. package/dist/field/features/link/drawer/index.js +2 -2
  140. package/dist/field/features/link/drawer/types.d.ts +1 -1
  141. package/dist/field/features/link/drawer/types.d.ts.map +1 -1
  142. package/dist/field/features/link/drawer/types.js +1 -1
  143. package/dist/field/features/link/feature.client.d.ts +2 -2
  144. package/dist/field/features/link/feature.client.d.ts.map +1 -1
  145. package/dist/field/features/link/feature.client.js +12 -12
  146. package/dist/field/features/link/feature.server.d.ts +2 -2
  147. package/dist/field/features/link/feature.server.d.ts.map +1 -1
  148. package/dist/field/features/link/feature.server.js +7 -7
  149. package/dist/field/features/link/nodes/AutoLinkNode.d.ts +2 -2
  150. package/dist/field/features/link/nodes/AutoLinkNode.d.ts.map +1 -1
  151. package/dist/field/features/link/nodes/AutoLinkNode.js +2 -2
  152. package/dist/field/features/link/nodes/LinkNode.d.ts +2 -2
  153. package/dist/field/features/link/nodes/LinkNode.d.ts.map +1 -1
  154. package/dist/field/features/link/nodes/LinkNode.js +1 -1
  155. package/dist/field/features/link/plugins/autoLink/index.d.ts +1 -1
  156. package/dist/field/features/link/plugins/autoLink/index.d.ts.map +1 -1
  157. package/dist/field/features/link/plugins/autoLink/index.js +5 -5
  158. package/dist/field/features/link/plugins/clickableLink/index.d.ts.map +1 -1
  159. package/dist/field/features/link/plugins/clickableLink/index.js +4 -3
  160. package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.d.ts +1 -1
  161. package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.d.ts.map +1 -1
  162. package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.js +1 -1
  163. package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.js +10 -10
  164. package/dist/field/features/link/plugins/floatingLinkEditor/index.js +2 -2
  165. package/dist/field/features/link/plugins/floatingLinkEditor/types.d.ts +1 -1
  166. package/dist/field/features/link/plugins/floatingLinkEditor/types.d.ts.map +1 -1
  167. package/dist/field/features/link/plugins/floatingLinkEditor/types.js +1 -1
  168. package/dist/field/features/link/plugins/floatingLinkEditor/utilities.js +2 -2
  169. package/dist/field/features/link/plugins/link/index.js +4 -4
  170. package/dist/field/features/link/populationPromise.d.ts +3 -3
  171. package/dist/field/features/link/populationPromise.d.ts.map +1 -1
  172. package/dist/field/features/link/populationPromise.js +3 -3
  173. package/dist/field/features/lists/checklist/feature.client.js +8 -8
  174. package/dist/field/features/lists/checklist/feature.server.d.ts +1 -1
  175. package/dist/field/features/lists/checklist/feature.server.d.ts.map +1 -1
  176. package/dist/field/features/lists/checklist/feature.server.js +4 -4
  177. package/dist/field/features/lists/checklist/markdownTransformers.js +2 -2
  178. package/dist/field/features/lists/checklist/plugin/index.js +2 -2
  179. package/dist/field/features/lists/htmlConverter.d.ts +1 -1
  180. package/dist/field/features/lists/htmlConverter.d.ts.map +1 -1
  181. package/dist/field/features/lists/htmlConverter.js +2 -2
  182. package/dist/field/features/lists/orderedlist/feature.client.js +7 -7
  183. package/dist/field/features/lists/orderedlist/feature.server.d.ts +1 -1
  184. package/dist/field/features/lists/orderedlist/feature.server.d.ts.map +1 -1
  185. package/dist/field/features/lists/orderedlist/feature.server.js +4 -4
  186. package/dist/field/features/lists/orderedlist/markdownTransformer.js +2 -2
  187. package/dist/field/features/lists/plugin/index.js +2 -2
  188. package/dist/field/features/lists/unorderedlist/feature.client.js +7 -7
  189. package/dist/field/features/lists/unorderedlist/feature.server.d.ts +1 -1
  190. package/dist/field/features/lists/unorderedlist/feature.server.d.ts.map +1 -1
  191. package/dist/field/features/lists/unorderedlist/feature.server.js +4 -4
  192. package/dist/field/features/lists/unorderedlist/markdownTransformer.js +2 -2
  193. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.js +3 -3
  194. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.d.ts +1 -1
  195. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.d.ts.map +1 -1
  196. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js +2 -2
  197. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.d.ts +1 -1
  198. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.d.ts.map +1 -1
  199. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.js +3 -3
  200. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/client.js +3 -3
  201. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.d.ts +1 -1
  202. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.d.ts.map +1 -1
  203. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js +2 -2
  204. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/index.d.ts +1 -1
  205. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/index.d.ts.map +1 -1
  206. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/index.js +3 -3
  207. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/client.js +3 -3
  208. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.d.ts +1 -1
  209. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.d.ts.map +1 -1
  210. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js +2 -2
  211. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/index.d.ts +1 -1
  212. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/index.d.ts.map +1 -1
  213. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/index.js +3 -3
  214. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.js +3 -3
  215. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.d.ts +1 -1
  216. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.d.ts.map +1 -1
  217. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js +2 -2
  218. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.d.ts +1 -1
  219. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.d.ts.map +1 -1
  220. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.js +3 -3
  221. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.js +3 -3
  222. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.d.ts +1 -1
  223. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.d.ts.map +1 -1
  224. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js +2 -2
  225. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.d.ts +1 -1
  226. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.d.ts.map +1 -1
  227. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.js +3 -3
  228. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.js +3 -3
  229. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.d.ts +1 -1
  230. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.d.ts.map +1 -1
  231. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js +2 -2
  232. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.d.ts +1 -1
  233. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.d.ts.map +1 -1
  234. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.js +3 -3
  235. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.js +3 -3
  236. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.d.ts +1 -1
  237. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.d.ts.map +1 -1
  238. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js +1 -1
  239. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.d.ts +1 -1
  240. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.d.ts.map +1 -1
  241. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.js +3 -3
  242. package/dist/field/features/migrations/lexicalPluginToLexical/converter/defaultConverters.d.ts +1 -1
  243. package/dist/field/features/migrations/lexicalPluginToLexical/converter/defaultConverters.d.ts.map +1 -1
  244. package/dist/field/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js +8 -8
  245. package/dist/field/features/migrations/lexicalPluginToLexical/converter/index.d.ts +1 -1
  246. package/dist/field/features/migrations/lexicalPluginToLexical/converter/index.d.ts.map +1 -1
  247. package/dist/field/features/migrations/lexicalPluginToLexical/converter/index.js +1 -1
  248. package/dist/field/features/migrations/lexicalPluginToLexical/feature.client.js +4 -4
  249. package/dist/field/features/migrations/lexicalPluginToLexical/feature.server.d.ts +2 -2
  250. package/dist/field/features/migrations/lexicalPluginToLexical/feature.server.d.ts.map +1 -1
  251. package/dist/field/features/migrations/lexicalPluginToLexical/feature.server.js +4 -4
  252. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.d.ts +1 -1
  253. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.d.ts.map +1 -1
  254. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +1 -1
  255. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +2 -2
  256. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/client.js +3 -3
  257. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/converter.d.ts +1 -1
  258. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/converter.d.ts.map +1 -1
  259. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/converter.js +2 -2
  260. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.d.ts +1 -1
  261. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.d.ts.map +1 -1
  262. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.js +3 -3
  263. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/client.js +3 -3
  264. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/converter.d.ts +1 -1
  265. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/converter.d.ts.map +1 -1
  266. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/converter.js +2 -2
  267. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/index.d.ts +1 -1
  268. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/index.d.ts.map +1 -1
  269. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/index.js +3 -3
  270. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/client.js +3 -3
  271. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/converter.d.ts +1 -1
  272. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/converter.d.ts.map +1 -1
  273. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/converter.js +2 -2
  274. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/index.d.ts +1 -1
  275. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/index.d.ts.map +1 -1
  276. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/index.js +3 -3
  277. package/dist/field/features/migrations/slateToLexical/converter/converters/link/client.js +3 -3
  278. package/dist/field/features/migrations/slateToLexical/converter/converters/link/converter.d.ts +1 -1
  279. package/dist/field/features/migrations/slateToLexical/converter/converters/link/converter.d.ts.map +1 -1
  280. package/dist/field/features/migrations/slateToLexical/converter/converters/link/converter.js +2 -2
  281. package/dist/field/features/migrations/slateToLexical/converter/converters/link/index.d.ts +1 -1
  282. package/dist/field/features/migrations/slateToLexical/converter/converters/link/index.d.ts.map +1 -1
  283. package/dist/field/features/migrations/slateToLexical/converter/converters/link/index.js +3 -3
  284. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/client.js +3 -3
  285. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/converter.d.ts +1 -1
  286. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/converter.d.ts.map +1 -1
  287. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/converter.js +2 -2
  288. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/index.d.ts +1 -1
  289. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/index.d.ts.map +1 -1
  290. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/index.js +3 -3
  291. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/client.js +3 -3
  292. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/converter.d.ts +1 -1
  293. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/converter.d.ts.map +1 -1
  294. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/converter.js +2 -2
  295. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/index.d.ts +1 -1
  296. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/index.d.ts.map +1 -1
  297. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/index.js +3 -3
  298. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/client.js +3 -3
  299. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.d.ts +1 -1
  300. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.d.ts.map +1 -1
  301. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.js +1 -1
  302. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/index.d.ts +1 -1
  303. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/index.d.ts.map +1 -1
  304. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/index.js +3 -3
  305. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/client.js +3 -3
  306. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/converter.d.ts +1 -1
  307. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/converter.d.ts.map +1 -1
  308. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/converter.js +2 -2
  309. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/index.d.ts +1 -1
  310. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/index.d.ts.map +1 -1
  311. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/index.js +3 -3
  312. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/client.js +3 -3
  313. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/converter.d.ts +1 -1
  314. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/converter.d.ts.map +1 -1
  315. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js +2 -2
  316. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/index.d.ts +1 -1
  317. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/index.d.ts.map +1 -1
  318. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/index.js +3 -3
  319. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/client.js +3 -3
  320. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.d.ts +1 -1
  321. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.d.ts.map +1 -1
  322. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.js +1 -1
  323. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/index.d.ts +1 -1
  324. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/index.d.ts.map +1 -1
  325. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/index.js +3 -3
  326. package/dist/field/features/migrations/slateToLexical/converter/defaultConverters.d.ts +1 -1
  327. package/dist/field/features/migrations/slateToLexical/converter/defaultConverters.d.ts.map +1 -1
  328. package/dist/field/features/migrations/slateToLexical/converter/defaultConverters.js +11 -11
  329. package/dist/field/features/migrations/slateToLexical/converter/index.d.ts +1 -1
  330. package/dist/field/features/migrations/slateToLexical/converter/index.d.ts.map +1 -1
  331. package/dist/field/features/migrations/slateToLexical/converter/index.js +2 -2
  332. package/dist/field/features/migrations/slateToLexical/feature.client.js +4 -4
  333. package/dist/field/features/migrations/slateToLexical/feature.server.d.ts +2 -2
  334. package/dist/field/features/migrations/slateToLexical/feature.server.d.ts.map +1 -1
  335. package/dist/field/features/migrations/slateToLexical/feature.server.js +4 -4
  336. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.d.ts +1 -1
  337. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.d.ts.map +1 -1
  338. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +1 -1
  339. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +2 -2
  340. package/dist/field/features/paragraph/feature.client.js +5 -5
  341. package/dist/field/features/paragraph/feature.server.d.ts +1 -1
  342. package/dist/field/features/paragraph/feature.server.d.ts.map +1 -1
  343. package/dist/field/features/paragraph/feature.server.js +2 -2
  344. package/dist/field/features/relationship/drawer/index.js +6 -6
  345. package/dist/field/features/relationship/feature.client.d.ts +2 -2
  346. package/dist/field/features/relationship/feature.client.d.ts.map +1 -1
  347. package/dist/field/features/relationship/feature.client.js +7 -7
  348. package/dist/field/features/relationship/feature.server.d.ts +1 -1
  349. package/dist/field/features/relationship/feature.server.d.ts.map +1 -1
  350. package/dist/field/features/relationship/feature.server.js +4 -4
  351. package/dist/field/features/relationship/nodes/RelationshipNode.d.ts +1 -1
  352. package/dist/field/features/relationship/nodes/RelationshipNode.d.ts.map +1 -1
  353. package/dist/field/features/relationship/nodes/RelationshipNode.js +3 -3
  354. package/dist/field/features/relationship/nodes/components/RelationshipComponent.d.ts +1 -1
  355. package/dist/field/features/relationship/nodes/components/RelationshipComponent.d.ts.map +1 -1
  356. package/dist/field/features/relationship/nodes/components/RelationshipComponent.js +5 -5
  357. package/dist/field/features/relationship/plugins/index.d.ts +2 -2
  358. package/dist/field/features/relationship/plugins/index.d.ts.map +1 -1
  359. package/dist/field/features/relationship/plugins/index.js +4 -4
  360. package/dist/field/features/relationship/populationPromise.d.ts +2 -2
  361. package/dist/field/features/relationship/populationPromise.d.ts.map +1 -1
  362. package/dist/field/features/relationship/populationPromise.js +2 -2
  363. package/dist/field/features/types.d.ts +5 -5
  364. package/dist/field/features/types.d.ts.map +1 -1
  365. package/dist/field/features/types.js +1 -1
  366. package/dist/field/features/upload/component/ExtraFieldsDrawer/index.d.ts +1 -1
  367. package/dist/field/features/upload/component/ExtraFieldsDrawer/index.d.ts.map +1 -1
  368. package/dist/field/features/upload/component/ExtraFieldsDrawer/index.js +3 -3
  369. package/dist/field/features/upload/component/index.d.ts +1 -1
  370. package/dist/field/features/upload/component/index.d.ts.map +1 -1
  371. package/dist/field/features/upload/component/index.js +7 -7
  372. package/dist/field/features/upload/drawer/index.js +6 -6
  373. package/dist/field/features/upload/feature.client.d.ts +1 -1
  374. package/dist/field/features/upload/feature.client.d.ts.map +1 -1
  375. package/dist/field/features/upload/feature.client.js +7 -7
  376. package/dist/field/features/upload/feature.server.d.ts +2 -2
  377. package/dist/field/features/upload/feature.server.d.ts.map +1 -1
  378. package/dist/field/features/upload/feature.server.js +5 -5
  379. package/dist/field/features/upload/nodes/UploadNode.d.ts +2 -2
  380. package/dist/field/features/upload/nodes/UploadNode.d.ts.map +1 -1
  381. package/dist/field/features/upload/nodes/UploadNode.js +3 -3
  382. package/dist/field/features/upload/plugin/index.d.ts +1 -1
  383. package/dist/field/features/upload/plugin/index.d.ts.map +1 -1
  384. package/dist/field/features/upload/plugin/index.js +4 -4
  385. package/dist/field/features/upload/populationPromise.d.ts +3 -3
  386. package/dist/field/features/upload/populationPromise.d.ts.map +1 -1
  387. package/dist/field/features/upload/populationPromise.js +3 -3
  388. package/dist/field/features/upload/validate.d.ts +2 -2
  389. package/dist/field/features/upload/validate.d.ts.map +1 -1
  390. package/dist/field/features/upload/validate.js +2 -2
  391. package/dist/field/index.d.ts +1 -1
  392. package/dist/field/index.d.ts.map +1 -1
  393. package/dist/field/index.js +5 -5
  394. package/dist/field/lexical/EditorPlugin.d.ts +1 -1
  395. package/dist/field/lexical/EditorPlugin.d.ts.map +1 -1
  396. package/dist/field/lexical/EditorPlugin.js +1 -1
  397. package/dist/field/lexical/LexicalEditor.d.ts +1 -1
  398. package/dist/field/lexical/LexicalEditor.d.ts.map +1 -1
  399. package/dist/field/lexical/LexicalEditor.js +16 -15
  400. package/dist/field/lexical/LexicalProvider.d.ts +1 -1
  401. package/dist/field/lexical/LexicalProvider.d.ts.map +1 -1
  402. package/dist/field/lexical/LexicalProvider.js +5 -5
  403. package/dist/field/lexical/config/client/EditorConfigProvider.d.ts +1 -1
  404. package/dist/field/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
  405. package/dist/field/lexical/config/client/EditorConfigProvider.js +1 -1
  406. package/dist/field/lexical/config/client/default.d.ts +1 -1
  407. package/dist/field/lexical/config/client/default.d.ts.map +1 -1
  408. package/dist/field/lexical/config/client/default.js +2 -2
  409. package/dist/field/lexical/config/client/loader.d.ts +2 -1
  410. package/dist/field/lexical/config/client/loader.d.ts.map +1 -1
  411. package/dist/field/lexical/config/client/loader.js +1 -1
  412. package/dist/field/lexical/config/client/sanitize.d.ts +3 -3
  413. package/dist/field/lexical/config/client/sanitize.d.ts.map +1 -1
  414. package/dist/field/lexical/config/client/sanitize.js +1 -1
  415. package/dist/field/lexical/config/server/default.d.ts +3 -3
  416. package/dist/field/lexical/config/server/default.d.ts.map +1 -1
  417. package/dist/field/lexical/config/server/default.js +21 -21
  418. package/dist/field/lexical/config/server/loader.d.ts +2 -2
  419. package/dist/field/lexical/config/server/loader.d.ts.map +1 -1
  420. package/dist/field/lexical/config/server/loader.js +1 -1
  421. package/dist/field/lexical/config/server/sanitize.d.ts +2 -2
  422. package/dist/field/lexical/config/server/sanitize.d.ts.map +1 -1
  423. package/dist/field/lexical/config/server/sanitize.js +2 -2
  424. package/dist/field/lexical/config/types.d.ts +2 -2
  425. package/dist/field/lexical/config/types.d.ts.map +1 -1
  426. package/dist/field/lexical/config/types.js +1 -1
  427. package/dist/field/lexical/nodes/index.d.ts +1 -1
  428. package/dist/field/lexical/nodes/index.d.ts.map +1 -1
  429. package/dist/field/lexical/nodes/index.js +1 -1
  430. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.d.ts +1 -1
  431. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.d.ts.map +1 -1
  432. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js +2 -2
  433. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.d.ts +1 -1
  434. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.d.ts.map +1 -1
  435. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.js +2 -2
  436. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.d.ts +1 -1
  437. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.d.ts.map +1 -1
  438. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js +2 -2
  439. package/dist/field/lexical/plugins/FloatingSelectToolbar/index.js +7 -7
  440. package/dist/field/lexical/plugins/MarkdownShortcut/index.js +3 -3
  441. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +2 -3
  442. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
  443. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +2 -2
  444. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts +4 -4
  445. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts.map +1 -1
  446. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +4 -4
  447. package/dist/field/lexical/plugins/SlashMenu/index.js +5 -5
  448. package/dist/field/lexical/plugins/SlashMenu/useMenuTriggerMatch.js +2 -2
  449. package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.js +10 -10
  450. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.d.ts +1 -1
  451. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.d.ts.map +1 -1
  452. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.js +6 -6
  453. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js +2 -2
  454. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.js +10 -10
  455. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +4 -4
  456. package/dist/field/lexical/ui/ContentEditable.js +2 -2
  457. package/dist/field/lexical/utils/environment.js +2 -2
  458. package/dist/field/lexical/utils/nodeFormat.d.ts +1 -1
  459. package/dist/field/lexical/utils/nodeFormat.d.ts.map +1 -1
  460. package/dist/field/lexical/utils/nodeFormat.js +1 -1
  461. package/dist/field/lexical/utils/rect.d.ts +1 -1
  462. package/dist/field/lexical/utils/rect.d.ts.map +1 -1
  463. package/dist/field/lexical/utils/rect.js +2 -2
  464. package/dist/generateComponentMap.d.ts +1 -1
  465. package/dist/generateComponentMap.d.ts.map +1 -1
  466. package/dist/generateComponentMap.js +1 -1
  467. package/dist/generateSchemaMap.d.ts +1 -1
  468. package/dist/generateSchemaMap.d.ts.map +1 -1
  469. package/dist/generateSchemaMap.js +1 -1
  470. package/dist/index.d.ts +87 -87
  471. package/dist/index.d.ts.map +1 -1
  472. package/dist/index.js +86 -86
  473. package/dist/populate/populate.d.ts +1 -1
  474. package/dist/populate/populate.d.ts.map +1 -1
  475. package/dist/populate/populate.js +1 -1
  476. package/dist/populate/recurseNestedFields.d.ts +1 -1
  477. package/dist/populate/recurseNestedFields.d.ts.map +1 -1
  478. package/dist/populate/recurseNestedFields.js +1 -1
  479. package/dist/populate/richTextRelationshipPromise.d.ts +2 -2
  480. package/dist/populate/richTextRelationshipPromise.d.ts.map +1 -1
  481. package/dist/populate/richTextRelationshipPromise.js +1 -1
  482. package/dist/types.d.ts +1 -1
  483. package/dist/types.d.ts.map +1 -1
  484. package/dist/types.js +1 -1
  485. package/dist/useLexicalFeature.d.ts +1 -1
  486. package/dist/useLexicalFeature.d.ts.map +1 -1
  487. package/dist/useLexicalFeature.js +1 -1
  488. package/dist/validate/index.d.ts +2 -2
  489. package/dist/validate/index.d.ts.map +1 -1
  490. package/dist/validate/index.js +3 -3
  491. package/dist/validate/validateNodes.d.ts +1 -1
  492. package/dist/validate/validateNodes.d.ts.map +1 -1
  493. package/dist/validate/validateNodes.js +1 -1
  494. package/package.json +7 -7
@@ -1,10 +1,10 @@
1
1
  'use client';
2
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
2
+ import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
3
3
  import { mergeRegister } from '@lexical/utils';
4
4
  import { $getSelection, $isRangeSelection, $isTextNode, COMMAND_PRIORITY_LOW, createCommand } from 'lexical';
5
5
  import { useCallback, useEffect, useState } from 'react';
6
6
  import * as React from 'react';
7
- import { LexicalMenu, useMenuAnchorRef } from './LexicalMenu';
7
+ import { LexicalMenu, useMenuAnchorRef } from './LexicalMenu.js';
8
8
  export const PUNCTUATION = '\\.,\\+\\*\\?\\$\\@\\|#{}\\(\\)\\^\\-\\[\\]\\\\/!%\'"~=<>_:;';
9
9
  function getTextUpToAnchor(selection) {
10
10
  const anchor = selection.anchor;
@@ -90,7 +90,7 @@ export function getScrollParent(element, includeHidden) {
90
90
  }
91
91
  return document.body;
92
92
  }
93
- export { useDynamicPositioning } from './LexicalMenu';
93
+ export { useDynamicPositioning } from './LexicalMenu.js';
94
94
  export const ENABLE_SLASH_MENU_COMMAND = createCommand('ENABLE_SLASH_MENU_COMMAND');
95
95
  export function LexicalTypeaheadMenuPlugin({ anchorClassName, anchorElem, groupsWithOptions, menuRenderFn, onClose, onOpen, onQueryChange, onSelectOption, triggerFn }) {
96
96
  const [editor] = useLexicalComposerContext();
@@ -201,4 +201,4 @@ export function LexicalTypeaheadMenuPlugin({ anchorClassName, anchorElem, groups
201
201
  });
202
202
  }
203
203
 
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHtcbiAgTGV4aWNhbENvbW1hbmQsXG4gIExleGljYWxFZGl0b3IsXG4gIFBhcmFncmFwaE5vZGUsXG4gIFJhbmdlU2VsZWN0aW9uLFxuICBUZXh0Tm9kZSxcbn0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCB9IGZyb20gJ0BsZXhpY2FsL3JlYWN0L0xleGljYWxDb21wb3NlckNvbnRleHQnXG5pbXBvcnQgeyBtZXJnZVJlZ2lzdGVyIH0gZnJvbSAnQGxleGljYWwvdXRpbHMnXG5pbXBvcnQge1xuICAkZ2V0U2VsZWN0aW9uLFxuICAkaXNSYW5nZVNlbGVjdGlvbixcbiAgJGlzVGV4dE5vZGUsXG4gIENPTU1BTkRfUFJJT1JJVFlfTE9XLFxuICBjcmVhdGVDb21tYW5kLFxufSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IE1lbnVUZXh0TWF0Y2gsIFRyaWdnZXJGbiB9IGZyb20gJy4uL3VzZU1lbnVUcmlnZ2VyTWF0Y2gnXG5pbXBvcnQgdHlwZSB7IE1lbnVSZW5kZXJGbiwgTWVudVJlc29sdXRpb24gfSBmcm9tICcuL0xleGljYWxNZW51J1xuaW1wb3J0IHR5cGUgeyBTbGFzaE1lbnVHcm91cCwgU2xhc2hNZW51T3B0aW9uIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgTGV4aWNhbE1lbnUsIHVzZU1lbnVBbmNob3JSZWYgfSBmcm9tICcuL0xleGljYWxNZW51J1xuXG5leHBvcnQgY29uc3QgUFVOQ1RVQVRJT04gPSAnXFxcXC4sXFxcXCtcXFxcKlxcXFw/XFxcXCRcXFxcQFxcXFx8I3t9XFxcXChcXFxcKVxcXFxeXFxcXC1cXFxcW1xcXFxdXFxcXFxcXFwvISVcXCdcIn49PD5fOjsnXG5cbmZ1bmN0aW9uIGdldFRleHRVcFRvQW5jaG9yKHNlbGVjdGlvbjogUmFuZ2VTZWxlY3Rpb24pOiBudWxsIHwgc3RyaW5nIHtcbiAgY29uc3QgYW5jaG9yID0gc2VsZWN0aW9uLmFuY2hvclxuICBpZiAoYW5jaG9yLnR5cGUgIT09ICd0ZXh0Jykge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgYW5jaG9yTm9kZSA9IGFuY2hvci5nZXROb2RlKClcbiAgaWYgKCFhbmNob3JOb2RlLmlzU2ltcGxlVGV4dCgpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBhbmNob3JPZmZzZXQgPSBhbmNob3Iub2Zmc2V0XG4gIHJldHVybiBhbmNob3JOb2RlLmdldFRleHRDb250ZW50KCkuc2xpY2UoMCwgYW5jaG9yT2Zmc2V0KVxufVxuXG5mdW5jdGlvbiB0cnlUb1Bvc2l0aW9uUmFuZ2UobGVhZE9mZnNldDogbnVtYmVyLCByYW5nZTogUmFuZ2UsIGVkaXRvcldpbmRvdzogV2luZG93KTogYm9vbGVhbiB7XG4gIGNvbnN0IGRvbVNlbGVjdGlvbiA9IGVkaXRvcldpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICBpZiAoZG9tU2VsZWN0aW9uID09PSBudWxsIHx8ICFkb21TZWxlY3Rpb24uaXNDb2xsYXBzZWQpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICBjb25zdCBhbmNob3JOb2RlID0gZG9tU2VsZWN0aW9uLmFuY2hvck5vZGVcbiAgY29uc3Qgc3RhcnRPZmZzZXQgPSBsZWFkT2Zmc2V0XG4gIGNvbnN0IGVuZE9mZnNldCA9IGRvbVNlbGVjdGlvbi5hbmNob3JPZmZzZXRcblxuICBpZiAoYW5jaG9yTm9kZSA9PSBudWxsIHx8IGVuZE9mZnNldCA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICB0cnkge1xuICAgIHJhbmdlLnNldFN0YXJ0KGFuY2hvck5vZGUsIHN0YXJ0T2Zmc2V0KVxuICAgIC8vIGlmIGVuZE9mZnNldCBpcyAwLCBwb3NpdGlvbmluZyB0aGUgcmFuZ2UgZm9yIHdoZW4geW91IGNsaWNrIHRoZSBwbHVzIGJ1dHRvbiB0byBvcGVuIHRoZSBzbGFzaCBtZW51IHdpbGwgZmlhbFxuICAgIHJhbmdlLnNldEVuZChhbmNob3JOb2RlLCBlbmRPZmZzZXQgPiAxID8gZW5kT2Zmc2V0IDogMSlcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmZ1bmN0aW9uIGdldFF1ZXJ5VGV4dEZvclNlYXJjaChlZGl0b3I6IExleGljYWxFZGl0b3IpOiBudWxsIHwgc3RyaW5nIHtcbiAgbGV0IHRleHQgPSBudWxsXG4gIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9ICRnZXRTZWxlY3Rpb24oKVxuICAgIGlmICghJGlzUmFuZ2VTZWxlY3Rpb24oc2VsZWN0aW9uKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRleHQgPSBnZXRUZXh0VXBUb0FuY2hvcihzZWxlY3Rpb24pXG4gIH0pXG4gIHJldHVybiB0ZXh0XG59XG5cbmZ1bmN0aW9uIGlzU2VsZWN0aW9uT25FbnRpdHlCb3VuZGFyeShlZGl0b3I6IExleGljYWxFZGl0b3IsIG9mZnNldDogbnVtYmVyKTogYm9vbGVhbiB7XG4gIGlmIChvZmZzZXQgIT09IDApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICByZXR1cm4gZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gJGdldFNlbGVjdGlvbigpXG4gICAgaWYgKCRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikpIHtcbiAgICAgIGNvbnN0IGFuY2hvciA9IHNlbGVjdGlvbi5hbmNob3JcbiAgICAgIGNvbnN0IGFuY2hvck5vZGUgPSBhbmNob3IuZ2V0Tm9kZSgpXG4gICAgICBjb25zdCBwcmV2U2libGluZyA9IGFuY2hvck5vZGUuZ2V0UHJldmlvdXNTaWJsaW5nKClcbiAgICAgIHJldHVybiAkaXNUZXh0Tm9kZShwcmV2U2libGluZykgJiYgcHJldlNpYmxpbmcuaXNUZXh0RW50aXR5KClcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH0pXG59XG5cbmZ1bmN0aW9uIHN0YXJ0VHJhbnNpdGlvbihjYWxsYmFjazogKCkgPT4gdm9pZCkge1xuICBpZiAoUmVhY3Quc3RhcnRUcmFuc2l0aW9uKSB7XG4gICAgUmVhY3Quc3RhcnRUcmFuc2l0aW9uKGNhbGxiYWNrKVxuICB9IGVsc2Uge1xuICAgIGNhbGxiYWNrKClcbiAgfVxufVxuXG4vLyBHb3QgZnJvbSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDI1NDM5MDgvMjAxMzU4MFxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcm9sbFBhcmVudChcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIGluY2x1ZGVIaWRkZW46IGJvb2xlYW4sXG4pOiBIVE1MQm9keUVsZW1lbnQgfCBIVE1MRWxlbWVudCB7XG4gIGxldCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudClcbiAgY29uc3QgZXhjbHVkZVN0YXRpY1BhcmVudCA9IHN0eWxlLnBvc2l0aW9uID09PSAnYWJzb2x1dGUnXG4gIGNvbnN0IG92ZXJmbG93UmVnZXggPSBpbmNsdWRlSGlkZGVuID8gLyhhdXRvfHNjcm9sbHxoaWRkZW4pLyA6IC8oYXV0b3xzY3JvbGwpL1xuICBpZiAoc3R5bGUucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuYm9keVxuICB9XG4gIGZvciAobGV0IHBhcmVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWxlbWVudDsgKHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50KTsgKSB7XG4gICAgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKHBhcmVudClcbiAgICBpZiAoZXhjbHVkZVN0YXRpY1BhcmVudCAmJiBzdHlsZS5wb3NpdGlvbiA9PT0gJ3N0YXRpYycpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChvdmVyZmxvd1JlZ2V4LnRlc3Qoc3R5bGUub3ZlcmZsb3cgKyBzdHlsZS5vdmVyZmxvd1kgKyBzdHlsZS5vdmVyZmxvd1gpKSB7XG4gICAgICByZXR1cm4gcGFyZW50XG4gICAgfVxuICB9XG4gIHJldHVybiBkb2N1bWVudC5ib2R5XG59XG5cbmV4cG9ydCB7IHVzZUR5bmFtaWNQb3NpdGlvbmluZyB9IGZyb20gJy4vTGV4aWNhbE1lbnUnXG5cbmV4cG9ydCB0eXBlIFR5cGVhaGVhZE1lbnVQbHVnaW5Qcm9wcyA9IHtcbiAgYW5jaG9yQ2xhc3NOYW1lPzogc3RyaW5nXG4gIGFuY2hvckVsZW06IEhUTUxFbGVtZW50XG4gIGdyb3Vwc1dpdGhPcHRpb25zOiBBcnJheTxTbGFzaE1lbnVHcm91cD5cbiAgbWVudVJlbmRlckZuOiBNZW51UmVuZGVyRm5cbiAgb25DbG9zZT86ICgpID0+IHZvaWRcbiAgb25PcGVuPzogKHJlc29sdXRpb246IE1lbnVSZXNvbHV0aW9uKSA9PiB2b2lkXG4gIG9uUXVlcnlDaGFuZ2U6IChtYXRjaGluZ1N0cmluZzogbnVsbCB8IHN0cmluZykgPT4gdm9pZFxuICBvblNlbGVjdE9wdGlvbjogKFxuICAgIG9wdGlvbjogU2xhc2hNZW51T3B0aW9uLFxuICAgIHRleHROb2RlQ29udGFpbmluZ1F1ZXJ5OiBUZXh0Tm9kZSB8IG51bGwsXG4gICAgY2xvc2VNZW51OiAoKSA9PiB2b2lkLFxuICAgIG1hdGNoaW5nU3RyaW5nOiBzdHJpbmcsXG4gICkgPT4gdm9pZFxuICB0cmlnZ2VyRm46IFRyaWdnZXJGblxufVxuXG5leHBvcnQgY29uc3QgRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORDogTGV4aWNhbENvbW1hbmQ8e1xuICBub2RlOiBQYXJhZ3JhcGhOb2RlXG59PiA9IGNyZWF0ZUNvbW1hbmQoJ0VOQUJMRV9TTEFTSF9NRU5VX0NPTU1BTkQnKVxuXG5leHBvcnQgZnVuY3Rpb24gTGV4aWNhbFR5cGVhaGVhZE1lbnVQbHVnaW4oe1xuICBhbmNob3JDbGFzc05hbWUsXG4gIGFuY2hvckVsZW0sXG4gIGdyb3Vwc1dpdGhPcHRpb25zLFxuICBtZW51UmVuZGVyRm4sXG4gIG9uQ2xvc2UsXG4gIG9uT3BlbixcbiAgb25RdWVyeUNoYW5nZSxcbiAgb25TZWxlY3RPcHRpb24sXG4gIHRyaWdnZXJGbixcbn06IFR5cGVhaGVhZE1lbnVQbHVnaW5Qcm9wcyk6IEpTWC5FbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG4gIGNvbnN0IFtyZXNvbHV0aW9uLCBzZXRSZXNvbHV0aW9uXSA9IHVzZVN0YXRlPE1lbnVSZXNvbHV0aW9uIHwgbnVsbD4obnVsbClcbiAgY29uc3QgYW5jaG9yRWxlbWVudFJlZiA9IHVzZU1lbnVBbmNob3JSZWYoYW5jaG9yRWxlbSwgcmVzb2x1dGlvbiwgc2V0UmVzb2x1dGlvbiwgYW5jaG9yQ2xhc3NOYW1lKVxuXG4gIGNvbnN0IGNsb3NlVHlwZWFoZWFkID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFJlc29sdXRpb24obnVsbClcbiAgICBpZiAob25DbG9zZSAhPSBudWxsICYmIHJlc29sdXRpb24gIT09IG51bGwpIHtcbiAgICAgIG9uQ2xvc2UoKVxuICAgIH1cbiAgfSwgW29uQ2xvc2UsIHJlc29sdXRpb25dKVxuXG4gIGNvbnN0IG9wZW5UeXBlYWhlYWQgPSB1c2VDYWxsYmFjayhcbiAgICAocmVzOiBNZW51UmVzb2x1dGlvbikgPT4ge1xuICAgICAgc2V0UmVzb2x1dGlvbihyZXMpXG4gICAgICBpZiAob25PcGVuICE9IG51bGwgJiYgcmVzb2x1dGlvbiA9PT0gbnVsbCkge1xuICAgICAgICBvbk9wZW4ocmVzKVxuICAgICAgfVxuICAgIH0sXG4gICAgW29uT3BlbiwgcmVzb2x1dGlvbl0sXG4gIClcblxuICAvLyBUaGlzIGlzIG1haW5seSB1c2VkIGZvciB0aGUgQWRkQmxvY2tIYW5kbGVQbHVnaW4sIHNvIHRoYXQgdGhlIHNsYXNoIG1lbnUgY2FuIGJlIG9wZW5lZCBmcm9tIHRoZXJlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBFTkFCTEVfU0xBU0hfTUVOVV9DT01NQU5ELFxuICAgICAgICAoeyBub2RlIH0pID0+IHtcbiAgICAgICAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoOiBNZW51VGV4dE1hdGNoID0ge1xuICAgICAgICAgICAgICBsZWFkT2Zmc2V0OiAwLFxuICAgICAgICAgICAgICBtYXRjaGluZ1N0cmluZzogJycsXG4gICAgICAgICAgICAgIHJlcGxhY2VhYmxlU3RyaW5nOiAnJyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtYXRjaCAhPT0gbnVsbCAmJiAhaXNTZWxlY3Rpb25PbkVudGl0eUJvdW5kYXJ5KGVkaXRvciwgbWF0Y2gubGVhZE9mZnNldCkpIHtcbiAgICAgICAgICAgICAgaWYgKG5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlZGl0b3JXaW5kb3cgPSBlZGl0b3IuX3dpbmRvdyA/PyB3aW5kb3dcbiAgICAgICAgICAgICAgICBjb25zdCByYW5nZSA9IGVkaXRvcldpbmRvdy5kb2N1bWVudC5jcmVhdGVSYW5nZSgpXG5cbiAgICAgICAgICAgICAgICBjb25zdCBpc1JhbmdlUG9zaXRpb25lZCA9IHRyeVRvUG9zaXRpb25SYW5nZShtYXRjaC5sZWFkT2Zmc2V0LCByYW5nZSwgZWRpdG9yV2luZG93KVxuICAgICAgICAgICAgICAgIGlmIChpc1JhbmdlUG9zaXRpb25lZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+XG4gICAgICAgICAgICAgICAgICAgIG9wZW5UeXBlYWhlYWQoe1xuICAgICAgICAgICAgICAgICAgICAgIGdldFJlY3Q6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgbWF0Y2gsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcblxuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIENPTU1BTkRfUFJJT1JJVFlfTE9XLFxuICAgICAgKSxcbiAgICApXG4gIH0sIFtlZGl0b3IsIG9wZW5UeXBlYWhlYWRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdXBkYXRlTGlzdGVuZXIgPSAoKSA9PiB7XG4gICAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgICAgY29uc3QgZWRpdG9yV2luZG93ID0gZWRpdG9yLl93aW5kb3cgPz8gd2luZG93XG4gICAgICAgIGNvbnN0IHJhbmdlID0gZWRpdG9yV2luZG93LmRvY3VtZW50LmNyZWF0ZVJhbmdlKClcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gJGdldFNlbGVjdGlvbigpXG4gICAgICAgIGNvbnN0IHRleHQgPSBnZXRRdWVyeVRleHRGb3JTZWFyY2goZWRpdG9yKVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAhJGlzUmFuZ2VTZWxlY3Rpb24oc2VsZWN0aW9uKSB8fFxuICAgICAgICAgICFzZWxlY3Rpb24uaXNDb2xsYXBzZWQoKSB8fFxuICAgICAgICAgIHRleHQgPT09IG51bGwgfHxcbiAgICAgICAgICByYW5nZSA9PT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBjbG9zZVR5cGVhaGVhZCgpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtYXRjaCA9IHRyaWdnZXJGbih7IGVkaXRvciwgcXVlcnk6IHRleHQgfSlcbiAgICAgICAgb25RdWVyeUNoYW5nZShtYXRjaCA/IG1hdGNoLm1hdGNoaW5nU3RyaW5nIDogbnVsbClcblxuICAgICAgICBpZiAobWF0Y2ggIT09IG51bGwgJiYgIWlzU2VsZWN0aW9uT25FbnRpdHlCb3VuZGFyeShlZGl0b3IsIG1hdGNoLmxlYWRPZmZzZXQpKSB7XG4gICAgICAgICAgY29uc3QgaXNSYW5nZVBvc2l0aW9uZWQgPSB0cnlUb1Bvc2l0aW9uUmFuZ2UobWF0Y2gubGVhZE9mZnNldCwgcmFuZ2UsIGVkaXRvcldpbmRvdylcbiAgICAgICAgICBpZiAoaXNSYW5nZVBvc2l0aW9uZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHN0YXJ0VHJhbnNpdGlvbigoKSA9PlxuICAgICAgICAgICAgICBvcGVuVHlwZWFoZWFkKHtcbiAgICAgICAgICAgICAgICBnZXRSZWN0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gcmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG1hdGNoLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjbG9zZVR5cGVhaGVhZCgpXG4gICAgICB9KVxuICAgIH1cblxuICAgIGNvbnN0IHJlbW92ZVVwZGF0ZUxpc3RlbmVyID0gZWRpdG9yLnJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIodXBkYXRlTGlzdGVuZXIpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgcmVtb3ZlVXBkYXRlTGlzdGVuZXIoKVxuICAgIH1cbiAgfSwgW2VkaXRvciwgdHJpZ2dlckZuLCBvblF1ZXJ5Q2hhbmdlLCByZXNvbHV0aW9uLCBjbG9zZVR5cGVhaGVhZCwgb3BlblR5cGVhaGVhZF0pXG5cbiAgcmV0dXJuIHJlc29sdXRpb24gPT09IG51bGwgfHwgZWRpdG9yID09PSBudWxsID8gbnVsbCA6IChcbiAgICA8TGV4aWNhbE1lbnVcbiAgICAgIGFuY2hvckVsZW1lbnRSZWY9e2FuY2hvckVsZW1lbnRSZWZ9XG4gICAgICBjbG9zZT17Y2xvc2VUeXBlYWhlYWR9XG4gICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgIGdyb3Vwc1dpdGhPcHRpb25zPXtncm91cHNXaXRoT3B0aW9uc31cbiAgICAgIG1lbnVSZW5kZXJGbj17bWVudVJlbmRlckZufVxuICAgICAgb25TZWxlY3RPcHRpb249e29uU2VsZWN0T3B0aW9ufVxuICAgICAgcmVzb2x1dGlvbj17cmVzb2x1dGlvbn1cbiAgICAgIHNob3VsZFNwbGl0Tm9kZVdpdGhRdWVyeVxuICAgIC8+XG4gIClcbn1cblxuZXhwb3J0IHR5cGUgeyBNZW51UmVuZGVyRm4sIE1lbnVSZXNvbHV0aW9uLCBNZW51VGV4dE1hdGNoLCBUcmlnZ2VyRm4gfVxuIl0sIm5hbWVzIjpbInVzZUxleGljYWxDb21wb3NlckNvbnRleHQiLCJtZXJnZVJlZ2lzdGVyIiwiJGdldFNlbGVjdGlvbiIsIiRpc1JhbmdlU2VsZWN0aW9uIiwiJGlzVGV4dE5vZGUiLCJDT01NQU5EX1BSSU9SSVRZX0xPVyIsImNyZWF0ZUNvbW1hbmQiLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiUmVhY3QiLCJMZXhpY2FsTWVudSIsInVzZU1lbnVBbmNob3JSZWYiLCJQVU5DVFVBVElPTiIsImdldFRleHRVcFRvQW5jaG9yIiwic2VsZWN0aW9uIiwiYW5jaG9yIiwidHlwZSIsImFuY2hvck5vZGUiLCJnZXROb2RlIiwiaXNTaW1wbGVUZXh0IiwiYW5jaG9yT2Zmc2V0Iiwib2Zmc2V0IiwiZ2V0VGV4dENvbnRlbnQiLCJzbGljZSIsInRyeVRvUG9zaXRpb25SYW5nZSIsImxlYWRPZmZzZXQiLCJyYW5nZSIsImVkaXRvcldpbmRvdyIsImRvbVNlbGVjdGlvbiIsImdldFNlbGVjdGlvbiIsImlzQ29sbGFwc2VkIiwic3RhcnRPZmZzZXQiLCJlbmRPZmZzZXQiLCJzZXRTdGFydCIsInNldEVuZCIsImVycm9yIiwiZ2V0UXVlcnlUZXh0Rm9yU2VhcmNoIiwiZWRpdG9yIiwidGV4dCIsImdldEVkaXRvclN0YXRlIiwicmVhZCIsImlzU2VsZWN0aW9uT25FbnRpdHlCb3VuZGFyeSIsInByZXZTaWJsaW5nIiwiZ2V0UHJldmlvdXNTaWJsaW5nIiwiaXNUZXh0RW50aXR5Iiwic3RhcnRUcmFuc2l0aW9uIiwiY2FsbGJhY2siLCJnZXRTY3JvbGxQYXJlbnQiLCJlbGVtZW50IiwiaW5jbHVkZUhpZGRlbiIsInN0eWxlIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImV4Y2x1ZGVTdGF0aWNQYXJlbnQiLCJwb3NpdGlvbiIsIm92ZXJmbG93UmVnZXgiLCJkb2N1bWVudCIsImJvZHkiLCJwYXJlbnQiLCJwYXJlbnRFbGVtZW50IiwidGVzdCIsIm92ZXJmbG93Iiwib3ZlcmZsb3dZIiwib3ZlcmZsb3dYIiwidXNlRHluYW1pY1Bvc2l0aW9uaW5nIiwiRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCIsIkxleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luIiwiYW5jaG9yQ2xhc3NOYW1lIiwiYW5jaG9yRWxlbSIsImdyb3Vwc1dpdGhPcHRpb25zIiwibWVudVJlbmRlckZuIiwib25DbG9zZSIsIm9uT3BlbiIsIm9uUXVlcnlDaGFuZ2UiLCJvblNlbGVjdE9wdGlvbiIsInRyaWdnZXJGbiIsInJlc29sdXRpb24iLCJzZXRSZXNvbHV0aW9uIiwiYW5jaG9yRWxlbWVudFJlZiIsImNsb3NlVHlwZWFoZWFkIiwib3BlblR5cGVhaGVhZCIsInJlcyIsInJlZ2lzdGVyQ29tbWFuZCIsIm5vZGUiLCJtYXRjaCIsIm1hdGNoaW5nU3RyaW5nIiwicmVwbGFjZWFibGVTdHJpbmciLCJfd2luZG93Iiwid2luZG93IiwiY3JlYXRlUmFuZ2UiLCJpc1JhbmdlUG9zaXRpb25lZCIsImdldFJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ1cGRhdGVMaXN0ZW5lciIsInF1ZXJ5IiwicmVtb3ZlVXBkYXRlTGlzdGVuZXIiLCJyZWdpc3RlclVwZGF0ZUxpc3RlbmVyIiwiY2xvc2UiLCJzaG91bGRTcGxpdE5vZGVXaXRoUXVlcnkiXSwibWFwcGluZ3MiOiJBQUFBO0FBU0EsU0FBU0EseUJBQXlCLFFBQVEsd0NBQXVDO0FBQ2pGLFNBQVNDLGFBQWEsUUFBUSxpQkFBZ0I7QUFDOUMsU0FDRUMsYUFBYSxFQUNiQyxpQkFBaUIsRUFDakJDLFdBQVcsRUFDWEMsb0JBQW9CLEVBQ3BCQyxhQUFhLFFBQ1IsVUFBUztBQUNoQixTQUFTQyxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxRQUFRLFFBQU87QUFDeEQsWUFBWUMsV0FBVyxRQUFPO0FBTTlCLFNBQVNDLFdBQVcsRUFBRUMsZ0JBQWdCLFFBQVEsZ0JBQWU7QUFFN0QsT0FBTyxNQUFNQyxjQUFjLCtEQUE4RDtBQUV6RixTQUFTQyxrQkFBa0JDLFNBQXlCO0lBQ2xELE1BQU1DLFNBQVNELFVBQVVDLE1BQU07SUFDL0IsSUFBSUEsT0FBT0MsSUFBSSxLQUFLLFFBQVE7UUFDMUIsT0FBTztJQUNUO0lBQ0EsTUFBTUMsYUFBYUYsT0FBT0csT0FBTztJQUNqQyxJQUFJLENBQUNELFdBQVdFLFlBQVksSUFBSTtRQUM5QixPQUFPO0lBQ1Q7SUFDQSxNQUFNQyxlQUFlTCxPQUFPTSxNQUFNO0lBQ2xDLE9BQU9KLFdBQVdLLGNBQWMsR0FBR0MsS0FBSyxDQUFDLEdBQUdIO0FBQzlDO0FBRUEsU0FBU0ksbUJBQW1CQyxVQUFrQixFQUFFQyxLQUFZLEVBQUVDLFlBQW9CO0lBQ2hGLE1BQU1DLGVBQWVELGFBQWFFLFlBQVk7SUFDOUMsSUFBSUQsaUJBQWlCLFFBQVEsQ0FBQ0EsYUFBYUUs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
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHtcbiAgTGV4aWNhbENvbW1hbmQsXG4gIExleGljYWxFZGl0b3IsXG4gIFBhcmFncmFwaE5vZGUsXG4gIFJhbmdlU2VsZWN0aW9uLFxuICBUZXh0Tm9kZSxcbn0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCB9IGZyb20gJ0BsZXhpY2FsL3JlYWN0L0xleGljYWxDb21wb3NlckNvbnRleHQuanMnXG5pbXBvcnQgeyBtZXJnZVJlZ2lzdGVyIH0gZnJvbSAnQGxleGljYWwvdXRpbHMnXG5pbXBvcnQge1xuICAkZ2V0U2VsZWN0aW9uLFxuICAkaXNSYW5nZVNlbGVjdGlvbixcbiAgJGlzVGV4dE5vZGUsXG4gIENPTU1BTkRfUFJJT1JJVFlfTE9XLFxuICBjcmVhdGVDb21tYW5kLFxufSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IE1lbnVUZXh0TWF0Y2gsIFRyaWdnZXJGbiB9IGZyb20gJy4uL3VzZU1lbnVUcmlnZ2VyTWF0Y2guanMnXG5pbXBvcnQgdHlwZSB7IE1lbnVSZW5kZXJGbiwgTWVudVJlc29sdXRpb24gfSBmcm9tICcuL0xleGljYWxNZW51LmpzJ1xuaW1wb3J0IHR5cGUgeyBTbGFzaE1lbnVHcm91cCwgU2xhc2hNZW51T3B0aW9uIH0gZnJvbSAnLi90eXBlcy5qcydcblxuaW1wb3J0IHsgTGV4aWNhbE1lbnUsIHVzZU1lbnVBbmNob3JSZWYgfSBmcm9tICcuL0xleGljYWxNZW51LmpzJ1xuXG5leHBvcnQgY29uc3QgUFVOQ1RVQVRJT04gPSAnXFxcXC4sXFxcXCtcXFxcKlxcXFw/XFxcXCRcXFxcQFxcXFx8I3t9XFxcXChcXFxcKVxcXFxeXFxcXC1cXFxcW1xcXFxdXFxcXFxcXFwvISVcXCdcIn49PD5fOjsnXG5cbmZ1bmN0aW9uIGdldFRleHRVcFRvQW5jaG9yKHNlbGVjdGlvbjogUmFuZ2VTZWxlY3Rpb24pOiBudWxsIHwgc3RyaW5nIHtcbiAgY29uc3QgYW5jaG9yID0gc2VsZWN0aW9uLmFuY2hvclxuICBpZiAoYW5jaG9yLnR5cGUgIT09ICd0ZXh0Jykge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgYW5jaG9yTm9kZSA9IGFuY2hvci5nZXROb2RlKClcbiAgaWYgKCFhbmNob3JOb2RlLmlzU2ltcGxlVGV4dCgpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBhbmNob3JPZmZzZXQgPSBhbmNob3Iub2Zmc2V0XG4gIHJldHVybiBhbmNob3JOb2RlLmdldFRleHRDb250ZW50KCkuc2xpY2UoMCwgYW5jaG9yT2Zmc2V0KVxufVxuXG5mdW5jdGlvbiB0cnlUb1Bvc2l0aW9uUmFuZ2UobGVhZE9mZnNldDogbnVtYmVyLCByYW5nZTogUmFuZ2UsIGVkaXRvcldpbmRvdzogV2luZG93KTogYm9vbGVhbiB7XG4gIGNvbnN0IGRvbVNlbGVjdGlvbiA9IGVkaXRvcldpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICBpZiAoZG9tU2VsZWN0aW9uID09PSBudWxsIHx8ICFkb21TZWxlY3Rpb24uaXNDb2xsYXBzZWQpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICBjb25zdCBhbmNob3JOb2RlID0gZG9tU2VsZWN0aW9uLmFuY2hvck5vZGVcbiAgY29uc3Qgc3RhcnRPZmZzZXQgPSBsZWFkT2Zmc2V0XG4gIGNvbnN0IGVuZE9mZnNldCA9IGRvbVNlbGVjdGlvbi5hbmNob3JPZmZzZXRcblxuICBpZiAoYW5jaG9yTm9kZSA9PSBudWxsIHx8IGVuZE9mZnNldCA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICB0cnkge1xuICAgIHJhbmdlLnNldFN0YXJ0KGFuY2hvck5vZGUsIHN0YXJ0T2Zmc2V0KVxuICAgIC8vIGlmIGVuZE9mZnNldCBpcyAwLCBwb3NpdGlvbmluZyB0aGUgcmFuZ2UgZm9yIHdoZW4geW91IGNsaWNrIHRoZSBwbHVzIGJ1dHRvbiB0byBvcGVuIHRoZSBzbGFzaCBtZW51IHdpbGwgZmlhbFxuICAgIHJhbmdlLnNldEVuZChhbmNob3JOb2RlLCBlbmRPZmZzZXQgPiAxID8gZW5kT2Zmc2V0IDogMSlcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmZ1bmN0aW9uIGdldFF1ZXJ5VGV4dEZvclNlYXJjaChlZGl0b3I6IExleGljYWxFZGl0b3IpOiBudWxsIHwgc3RyaW5nIHtcbiAgbGV0IHRleHQgPSBudWxsXG4gIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9ICRnZXRTZWxlY3Rpb24oKVxuICAgIGlmICghJGlzUmFuZ2VTZWxlY3Rpb24oc2VsZWN0aW9uKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRleHQgPSBnZXRUZXh0VXBUb0FuY2hvcihzZWxlY3Rpb24pXG4gIH0pXG4gIHJldHVybiB0ZXh0XG59XG5cbmZ1bmN0aW9uIGlzU2VsZWN0aW9uT25FbnRpdHlCb3VuZGFyeShlZGl0b3I6IExleGljYWxFZGl0b3IsIG9mZnNldDogbnVtYmVyKTogYm9vbGVhbiB7XG4gIGlmIChvZmZzZXQgIT09IDApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICByZXR1cm4gZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gJGdldFNlbGVjdGlvbigpXG4gICAgaWYgKCRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikpIHtcbiAgICAgIGNvbnN0IGFuY2hvciA9IHNlbGVjdGlvbi5hbmNob3JcbiAgICAgIGNvbnN0IGFuY2hvck5vZGUgPSBhbmNob3IuZ2V0Tm9kZSgpXG4gICAgICBjb25zdCBwcmV2U2libGluZyA9IGFuY2hvck5vZGUuZ2V0UHJldmlvdXNTaWJsaW5nKClcbiAgICAgIHJldHVybiAkaXNUZXh0Tm9kZShwcmV2U2libGluZykgJiYgcHJldlNpYmxpbmcuaXNUZXh0RW50aXR5KClcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH0pXG59XG5cbmZ1bmN0aW9uIHN0YXJ0VHJhbnNpdGlvbihjYWxsYmFjazogKCkgPT4gdm9pZCkge1xuICBpZiAoUmVhY3Quc3RhcnRUcmFuc2l0aW9uKSB7XG4gICAgUmVhY3Quc3RhcnRUcmFuc2l0aW9uKGNhbGxiYWNrKVxuICB9IGVsc2Uge1xuICAgIGNhbGxiYWNrKClcbiAgfVxufVxuXG4vLyBHb3QgZnJvbSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDI1NDM5MDgvMjAxMzU4MFxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcm9sbFBhcmVudChcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIGluY2x1ZGVIaWRkZW46IGJvb2xlYW4sXG4pOiBIVE1MQm9keUVsZW1lbnQgfCBIVE1MRWxlbWVudCB7XG4gIGxldCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudClcbiAgY29uc3QgZXhjbHVkZVN0YXRpY1BhcmVudCA9IHN0eWxlLnBvc2l0aW9uID09PSAnYWJzb2x1dGUnXG4gIGNvbnN0IG92ZXJmbG93UmVnZXggPSBpbmNsdWRlSGlkZGVuID8gLyhhdXRvfHNjcm9sbHxoaWRkZW4pLyA6IC8oYXV0b3xzY3JvbGwpL1xuICBpZiAoc3R5bGUucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuYm9keVxuICB9XG4gIGZvciAobGV0IHBhcmVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWxlbWVudDsgKHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50KTsgKSB7XG4gICAgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKHBhcmVudClcbiAgICBpZiAoZXhjbHVkZVN0YXRpY1BhcmVudCAmJiBzdHlsZS5wb3NpdGlvbiA9PT0gJ3N0YXRpYycpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChvdmVyZmxvd1JlZ2V4LnRlc3Qoc3R5bGUub3ZlcmZsb3cgKyBzdHlsZS5vdmVyZmxvd1kgKyBzdHlsZS5vdmVyZmxvd1gpKSB7XG4gICAgICByZXR1cm4gcGFyZW50XG4gICAgfVxuICB9XG4gIHJldHVybiBkb2N1bWVudC5ib2R5XG59XG5cbmV4cG9ydCB7IHVzZUR5bmFtaWNQb3NpdGlvbmluZyB9IGZyb20gJy4vTGV4aWNhbE1lbnUuanMnXG5cbmV4cG9ydCB0eXBlIFR5cGVhaGVhZE1lbnVQbHVnaW5Qcm9wcyA9IHtcbiAgYW5jaG9yQ2xhc3NOYW1lPzogc3RyaW5nXG4gIGFuY2hvckVsZW06IEhUTUxFbGVtZW50XG4gIGdyb3Vwc1dpdGhPcHRpb25zOiBBcnJheTxTbGFzaE1lbnVHcm91cD5cbiAgbWVudVJlbmRlckZuOiBNZW51UmVuZGVyRm5cbiAgb25DbG9zZT86ICgpID0+IHZvaWRcbiAgb25PcGVuPzogKHJlc29sdXRpb246IE1lbnVSZXNvbHV0aW9uKSA9PiB2b2lkXG4gIG9uUXVlcnlDaGFuZ2U6IChtYXRjaGluZ1N0cmluZzogbnVsbCB8IHN0cmluZykgPT4gdm9pZFxuICBvblNlbGVjdE9wdGlvbjogKFxuICAgIG9wdGlvbjogU2xhc2hNZW51T3B0aW9uLFxuICAgIHRleHROb2RlQ29udGFpbmluZ1F1ZXJ5OiBUZXh0Tm9kZSB8IG51bGwsXG4gICAgY2xvc2VNZW51OiAoKSA9PiB2b2lkLFxuICAgIG1hdGNoaW5nU3RyaW5nOiBzdHJpbmcsXG4gICkgPT4gdm9pZFxuICB0cmlnZ2VyRm46IFRyaWdnZXJGblxufVxuXG5leHBvcnQgY29uc3QgRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORDogTGV4aWNhbENvbW1hbmQ8e1xuICBub2RlOiBQYXJhZ3JhcGhOb2RlXG59PiA9IGNyZWF0ZUNvbW1hbmQoJ0VOQUJMRV9TTEFTSF9NRU5VX0NPTU1BTkQnKVxuXG5leHBvcnQgZnVuY3Rpb24gTGV4aWNhbFR5cGVhaGVhZE1lbnVQbHVnaW4oe1xuICBhbmNob3JDbGFzc05hbWUsXG4gIGFuY2hvckVsZW0sXG4gIGdyb3Vwc1dpdGhPcHRpb25zLFxuICBtZW51UmVuZGVyRm4sXG4gIG9uQ2xvc2UsXG4gIG9uT3BlbixcbiAgb25RdWVyeUNoYW5nZSxcbiAgb25TZWxlY3RPcHRpb24sXG4gIHRyaWdnZXJGbixcbn06IFR5cGVhaGVhZE1lbnVQbHVnaW5Qcm9wcyk6IEpTWC5FbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG4gIGNvbnN0IFtyZXNvbHV0aW9uLCBzZXRSZXNvbHV0aW9uXSA9IHVzZVN0YXRlPE1lbnVSZXNvbHV0aW9uIHwgbnVsbD4obnVsbClcbiAgY29uc3QgYW5jaG9yRWxlbWVudFJlZiA9IHVzZU1lbnVBbmNob3JSZWYoYW5jaG9yRWxlbSwgcmVzb2x1dGlvbiwgc2V0UmVzb2x1dGlvbiwgYW5jaG9yQ2xhc3NOYW1lKVxuXG4gIGNvbnN0IGNsb3NlVHlwZWFoZWFkID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFJlc29sdXRpb24obnVsbClcbiAgICBpZiAob25DbG9zZSAhPSBudWxsICYmIHJlc29sdXRpb24gIT09IG51bGwpIHtcbiAgICAgIG9uQ2xvc2UoKVxuICAgIH1cbiAgfSwgW29uQ2xvc2UsIHJlc29sdXRpb25dKVxuXG4gIGNvbnN0IG9wZW5UeXBlYWhlYWQgPSB1c2VDYWxsYmFjayhcbiAgICAocmVzOiBNZW51UmVzb2x1dGlvbikgPT4ge1xuICAgICAgc2V0UmVzb2x1dGlvbihyZXMpXG4gICAgICBpZiAob25PcGVuICE9IG51bGwgJiYgcmVzb2x1dGlvbiA9PT0gbnVsbCkge1xuICAgICAgICBvbk9wZW4ocmVzKVxuICAgICAgfVxuICAgIH0sXG4gICAgW29uT3BlbiwgcmVzb2x1dGlvbl0sXG4gIClcblxuICAvLyBUaGlzIGlzIG1haW5seSB1c2VkIGZvciB0aGUgQWRkQmxvY2tIYW5kbGVQbHVnaW4sIHNvIHRoYXQgdGhlIHNsYXNoIG1lbnUgY2FuIGJlIG9wZW5lZCBmcm9tIHRoZXJlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBFTkFCTEVfU0xBU0hfTUVOVV9DT01NQU5ELFxuICAgICAgICAoeyBub2RlIH0pID0+IHtcbiAgICAgICAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoOiBNZW51VGV4dE1hdGNoID0ge1xuICAgICAgICAgICAgICBsZWFkT2Zmc2V0OiAwLFxuICAgICAgICAgICAgICBtYXRjaGluZ1N0cmluZzogJycsXG4gICAgICAgICAgICAgIHJlcGxhY2VhYmxlU3RyaW5nOiAnJyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtYXRjaCAhPT0gbnVsbCAmJiAhaXNTZWxlY3Rpb25PbkVudGl0eUJvdW5kYXJ5KGVkaXRvciwgbWF0Y2gubGVhZE9mZnNldCkpIHtcbiAgICAgICAgICAgICAgaWYgKG5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlZGl0b3JXaW5kb3cgPSBlZGl0b3IuX3dpbmRvdyA/PyB3aW5kb3dcbiAgICAgICAgICAgICAgICBjb25zdCByYW5nZSA9IGVkaXRvcldpbmRvdy5kb2N1bWVudC5jcmVhdGVSYW5nZSgpXG5cbiAgICAgICAgICAgICAgICBjb25zdCBpc1JhbmdlUG9zaXRpb25lZCA9IHRyeVRvUG9zaXRpb25SYW5nZShtYXRjaC5sZWFkT2Zmc2V0LCByYW5nZSwgZWRpdG9yV2luZG93KVxuICAgICAgICAgICAgICAgIGlmIChpc1JhbmdlUG9zaXRpb25lZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+XG4gICAgICAgICAgICAgICAgICAgIG9wZW5UeXBlYWhlYWQoe1xuICAgICAgICAgICAgICAgICAgICAgIGdldFJlY3Q6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgbWF0Y2gsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcblxuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIENPTU1BTkRfUFJJT1JJVFlfTE9XLFxuICAgICAgKSxcbiAgICApXG4gIH0sIFtlZGl0b3IsIG9wZW5UeXBlYWhlYWRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdXBkYXRlTGlzdGVuZXIgPSAoKSA9PiB7XG4gICAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgICAgY29uc3QgZWRpdG9yV2luZG93ID0gZWRpdG9yLl93aW5kb3cgPz8gd2luZG93XG4gICAgICAgIGNvbnN0IHJhbmdlID0gZWRpdG9yV2luZG93LmRvY3VtZW50LmNyZWF0ZVJhbmdlKClcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gJGdldFNlbGVjdGlvbigpXG4gICAgICAgIGNvbnN0IHRleHQgPSBnZXRRdWVyeVRleHRGb3JTZWFyY2goZWRpdG9yKVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAhJGlzUmFuZ2VTZWxlY3Rpb24oc2VsZWN0aW9uKSB8fFxuICAgICAgICAgICFzZWxlY3Rpb24uaXNDb2xsYXBzZWQoKSB8fFxuICAgICAgICAgIHRleHQgPT09IG51bGwgfHxcbiAgICAgICAgICByYW5nZSA9PT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBjbG9zZVR5cGVhaGVhZCgpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtYXRjaCA9IHRyaWdnZXJGbih7IGVkaXRvciwgcXVlcnk6IHRleHQgfSlcbiAgICAgICAgb25RdWVyeUNoYW5nZShtYXRjaCA/IG1hdGNoLm1hdGNoaW5nU3RyaW5nIDogbnVsbClcblxuICAgICAgICBpZiAobWF0Y2ggIT09IG51bGwgJiYgIWlzU2VsZWN0aW9uT25FbnRpdHlCb3VuZGFyeShlZGl0b3IsIG1hdGNoLmxlYWRPZmZzZXQpKSB7XG4gICAgICAgICAgY29uc3QgaXNSYW5nZVBvc2l0aW9uZWQgPSB0cnlUb1Bvc2l0aW9uUmFuZ2UobWF0Y2gubGVhZE9mZnNldCwgcmFuZ2UsIGVkaXRvcldpbmRvdylcbiAgICAgICAgICBpZiAoaXNSYW5nZVBvc2l0aW9uZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHN0YXJ0VHJhbnNpdGlvbigoKSA9PlxuICAgICAgICAgICAgICBvcGVuVHlwZWFoZWFkKHtcbiAgICAgICAgICAgICAgICBnZXRSZWN0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gcmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG1hdGNoLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjbG9zZVR5cGVhaGVhZCgpXG4gICAgICB9KVxuICAgIH1cblxuICAgIGNvbnN0IHJlbW92ZVVwZGF0ZUxpc3RlbmVyID0gZWRpdG9yLnJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIodXBkYXRlTGlzdGVuZXIpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgcmVtb3ZlVXBkYXRlTGlzdGVuZXIoKVxuICAgIH1cbiAgfSwgW2VkaXRvciwgdHJpZ2dlckZuLCBvblF1ZXJ5Q2hhbmdlLCByZXNvbHV0aW9uLCBjbG9zZVR5cGVhaGVhZCwgb3BlblR5cGVhaGVhZF0pXG5cbiAgcmV0dXJuIHJlc29sdXRpb24gPT09IG51bGwgfHwgZWRpdG9yID09PSBudWxsID8gbnVsbCA6IChcbiAgICA8TGV4aWNhbE1lbnVcbiAgICAgIGFuY2hvckVsZW1lbnRSZWY9e2FuY2hvckVsZW1lbnRSZWZ9XG4gICAgICBjbG9zZT17Y2xvc2VUeXBlYWhlYWR9XG4gICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgIGdyb3Vwc1dpdGhPcHRpb25zPXtncm91cHNXaXRoT3B0aW9uc31cbiAgICAgIG1lbnVSZW5kZXJGbj17bWVudVJlbmRlckZufVxuICAgICAgb25TZWxlY3RPcHRpb249e29uU2VsZWN0T3B0aW9ufVxuICAgICAgcmVzb2x1dGlvbj17cmVzb2x1dGlvbn1cbiAgICAgIHNob3VsZFNwbGl0Tm9kZVdpdGhRdWVyeVxuICAgIC8+XG4gIClcbn1cblxuZXhwb3J0IHR5cGUgeyBNZW51UmVuZGVyRm4sIE1lbnVSZXNvbHV0aW9uLCBNZW51VGV4dE1hdGNoLCBUcmlnZ2VyRm4gfVxuIl0sIm5hbWVzIjpbInVzZUxleGljYWxDb21wb3NlckNvbnRleHQiLCJtZXJnZVJlZ2lzdGVyIiwiJGdldFNlbGVjdGlvbiIsIiRpc1JhbmdlU2VsZWN0aW9uIiwiJGlzVGV4dE5vZGUiLCJDT01NQU5EX1BSSU9SSVRZX0xPVyIsImNyZWF0ZUNvbW1hbmQiLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiUmVhY3QiLCJMZXhpY2FsTWVudSIsInVzZU1lbnVBbmNob3JSZWYiLCJQVU5DVFVBVElPTiIsImdldFRleHRVcFRvQW5jaG9yIiwic2VsZWN0aW9uIiwiYW5jaG9yIiwidHlwZSIsImFuY2hvck5vZGUiLCJnZXROb2RlIiwiaXNTaW1wbGVUZXh0IiwiYW5jaG9yT2Zmc2V0Iiwib2Zmc2V0IiwiZ2V0VGV4dENvbnRlbnQiLCJzbGljZSIsInRyeVRvUG9zaXRpb25SYW5nZSIsImxlYWRPZmZzZXQiLCJyYW5nZSIsImVkaXRvcldpbmRvdyIsImRvbVNlbGVjdGlvbiIsImdldFNlbGVjdGlvbiIsImlzQ29sbGFwc2VkIiwic3RhcnRPZmZzZXQiLCJlbmRPZmZzZXQiLCJzZXRTdGFydCIsInNldEVuZCIsImVycm9yIiwiZ2V0UXVlcnlUZXh0Rm9yU2VhcmNoIiwiZWRpdG9yIiwidGV4dCIsImdldEVkaXRvclN0YXRlIiwicmVhZCIsImlzU2VsZWN0aW9uT25FbnRpdHlCb3VuZGFyeSIsInByZXZTaWJsaW5nIiwiZ2V0UHJldmlvdXNTaWJsaW5nIiwiaXNUZXh0RW50aXR5Iiwic3RhcnRUcmFuc2l0aW9uIiwiY2FsbGJhY2siLCJnZXRTY3JvbGxQYXJlbnQiLCJlbGVtZW50IiwiaW5jbHVkZUhpZGRlbiIsInN0eWxlIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImV4Y2x1ZGVTdGF0aWNQYXJlbnQiLCJwb3NpdGlvbiIsIm92ZXJmbG93UmVnZXgiLCJkb2N1bWVudCIsImJvZHkiLCJwYXJlbnQiLCJwYXJlbnRFbGVtZW50IiwidGVzdCIsIm92ZXJmbG93Iiwib3ZlcmZsb3dZIiwib3ZlcmZsb3dYIiwidXNlRHluYW1pY1Bvc2l0aW9uaW5nIiwiRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCIsIkxleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luIiwiYW5jaG9yQ2xhc3NOYW1lIiwiYW5jaG9yRWxlbSIsImdyb3Vwc1dpdGhPcHRpb25zIiwibWVudVJlbmRlckZuIiwib25DbG9zZSIsIm9uT3BlbiIsIm9uUXVlcnlDaGFuZ2UiLCJvblNlbGVjdE9wdGlvbiIsInRyaWdnZXJGbiIsInJlc29sdXRpb24iLCJzZXRSZXNvbHV0aW9uIiwiYW5jaG9yRWxlbWVudFJlZiIsImNsb3NlVHlwZWFoZWFkIiwib3BlblR5cGVhaGVhZCIsInJlcyIsInJlZ2lzdGVyQ29tbWFuZCIsIm5vZGUiLCJtYXRjaCIsIm1hdGNoaW5nU3RyaW5nIiwicmVwbGFjZWFibGVTdHJpbmciLCJfd2luZG93Iiwid2luZG93IiwiY3JlYXRlUmFuZ2UiLCJpc1JhbmdlUG9zaXRpb25lZCIsImdldFJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ1cGRhdGVMaXN0ZW5lciIsInF1ZXJ5IiwicmVtb3ZlVXBkYXRlTGlzdGVuZXIiLCJyZWdpc3RlclVwZGF0ZUxpc3RlbmVyIiwiY2xvc2UiLCJzaG91bGRTcGxpdE5vZGVXaXRoUXVlcnkiXSwibWFwcGluZ3MiOiJBQUFBO0FBU0EsU0FBU0EseUJBQXlCLFFBQVEsMkNBQTBDO0FBQ3BGLFNBQVNDLGFBQWEsUUFBUSxpQkFBZ0I7QUFDOUMsU0FDRUMsYUFBYSxFQUNiQyxpQkFBaUIsRUFDakJDLFdBQVcsRUFDWEMsb0JBQW9CLEVBQ3BCQyxhQUFhLFFBQ1IsVUFBUztBQUNoQixTQUFTQyxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxRQUFRLFFBQU87QUFDeEQsWUFBWUMsV0FBVyxRQUFPO0FBTTlCLFNBQVNDLFdBQVcsRUFBRUMsZ0JBQWdCLFFBQVEsbUJBQWtCO0FBRWhFLE9BQU8sTUFBTUMsY0FBYywrREFBOEQ7QUFFekYsU0FBU0Msa0JBQWtCQyxTQUF5QjtJQUNsRCxNQUFNQyxTQUFTRCxVQUFVQyxNQUFNO0lBQy9CLElBQUlBLE9BQU9DLElBQUksS0FBSyxRQUFRO1FBQzFCLE9BQU87SUFDVDtJQUNBLE1BQU1DLGFBQWFGLE9BQU9HLE9BQU87SUFDakMsSUFBSSxDQUFDRCxXQUFXRSxZQUFZLElBQUk7UUFDOUIsT0FBTztJQUNUO0lBQ0EsTUFBTUMsZUFBZUwsT0FBT00sTUFBTTtJQUNsQyxPQUFPSixXQUFXSyxjQUFjLEdBQUdDLEtBQUssQ0FBQyxHQUFHSDtBQUM5QztBQUVBLFNBQVNJLG1CQUFtQkMsVUFBa0IsRUFBRUMsS0FBWSxFQUFFQyxZQUFvQjtJQUNoRixNQUFNQyxlQUFlRCxhQUFhRSxZQUFZO0lBQzlDLElBQUlELGlCQUFp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
@@ -1,13 +1,13 @@
1
1
  'use client';
2
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
2
+ import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
3
3
  import { useTranslation } from '@payloadcms/ui';
4
4
  import { useCallback, useMemo, useState } from 'react';
5
5
  import * as React from 'react';
6
6
  import * as ReactDOM from 'react-dom';
7
- import { useEditorConfigContext } from '../../config/client/EditorConfigProvider';
8
- import { LexicalTypeaheadMenuPlugin } from './LexicalTypeaheadMenuPlugin';
7
+ import { useEditorConfigContext } from '../../config/client/EditorConfigProvider.js';
8
+ import { LexicalTypeaheadMenuPlugin } from './LexicalTypeaheadMenuPlugin/index.js';
9
9
  import './index.scss';
10
- import { useMenuTriggerMatch } from './useMenuTriggerMatch';
10
+ import { useMenuTriggerMatch } from './useMenuTriggerMatch.js';
11
11
  const baseClass = 'slash-menu-popup';
12
12
  function SlashMenuItem({ isSelected, onClick, onMouseEnter, option }) {
13
13
  const { i18n } = useTranslation();
@@ -168,4 +168,4 @@ export function SlashMenuPlugin({ anchorElem = document.body }) {
168
168
  }));
169
169
  }
170
170
 
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgVGV4dE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdWknXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJ1xuXG5pbXBvcnQgdHlwZSB7IFNsYXNoTWVudUdyb3VwLCBTbGFzaE1lbnVPcHRpb24gfSBmcm9tICcuL0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL3R5cGVzJ1xuXG5pbXBvcnQgeyB1c2VFZGl0b3JDb25maWdDb250ZXh0IH0gZnJvbSAnLi4vLi4vY29uZmlnL2NsaWVudC9FZGl0b3JDb25maWdQcm92aWRlcidcbmltcG9ydCB7IExleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luIH0gZnJvbSAnLi9MZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbidcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuaW1wb3J0IHsgdXNlTWVudVRyaWdnZXJNYXRjaCB9IGZyb20gJy4vdXNlTWVudVRyaWdnZXJNYXRjaCdcblxuY29uc3QgYmFzZUNsYXNzID0gJ3NsYXNoLW1lbnUtcG9wdXAnXG5cbmZ1bmN0aW9uIFNsYXNoTWVudUl0ZW0oe1xuICBpc1NlbGVjdGVkLFxuICBvbkNsaWNrLFxuICBvbk1vdXNlRW50ZXIsXG4gIG9wdGlvbixcbn06IHtcbiAgaW5kZXg6IG51bWJlclxuICBpc1NlbGVjdGVkOiBib29sZWFuXG4gIG9uQ2xpY2s6ICgpID0+IHZvaWRcbiAgb25Nb3VzZUVudGVyOiAoKSA9PiB2b2lkXG4gIG9wdGlvbjogU2xhc2hNZW51T3B0aW9uXG59KSB7XG4gIGNvbnN0IHsgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oKVxuXG4gIGxldCBjbGFzc05hbWUgPSBgJHtiYXNlQ2xhc3N9X19pdGVtICR7YmFzZUNsYXNzfV9faXRlbS0ke29wdGlvbi5rZXl9YFxuICBpZiAoaXNTZWxlY3RlZCkge1xuICAgIGNsYXNzTmFtZSArPSBgICR7YmFzZUNsYXNzfV9faXRlbS0tc2VsZWN0ZWRgXG4gIH1cblxuICBsZXQgdGl0bGUgPSBvcHRpb24ua2V5XG4gIGlmIChvcHRpb24uZGlzcGxheU5hbWUpIHtcbiAgICB0aXRsZSA9XG4gICAgICB0eXBlb2Ygb3B0aW9uLmRpc3BsYXlOYW1lID09PSAnZnVuY3Rpb24nID8gb3B0aW9uLmRpc3BsYXlOYW1lKHsgaTE4biB9KSA6IG9wdGlvbi5kaXNwbGF5TmFtZVxuICB9XG4gIC8vIENyb3AgdGl0bGUgdG8gbWF4LiA1MCBjaGFyYWN0ZXJzXG4gIGlmICh0aXRsZS5sZW5ndGggPiAyNSkge1xuICAgIHRpdGxlID0gdGl0bGUuc3Vic3RyaW5nKDAsIDI1KSArICcuLi4nXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIGFyaWEtc2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGlkPXtiYXNlQ2xhc3MgKyAnX19pdGVtLScgKyBvcHRpb24ua2V5fVxuICAgICAga2V5PXtvcHRpb24ua2V5fVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIG9uTW91c2VFbnRlcj17b25Nb3VzZUVudGVyfVxuICAgICAgcmVmPXtvcHRpb24uc2V0UmVmRWxlbWVudH1cbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAge29wdGlvbj8uSWNvbiAmJiA8b3B0aW9uLkljb24gLz59XG5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faXRlbS10ZXh0YH0+e3RpdGxlfTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gU2xhc2hNZW51UGx1Z2luKHtcbiAgYW5jaG9yRWxlbSA9IGRvY3VtZW50LmJvZHksXG59OiB7XG4gIGFuY2hvckVsZW0/OiBIVE1MRWxlbWVudFxufSk6IEpTWC5FbGVtZW50IHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcbiAgY29uc3QgW3F1ZXJ5U3RyaW5nLCBzZXRRdWVyeVN0cmluZ10gPSB1c2VTdGF0ZTxudWxsIHwgc3RyaW5nPihudWxsKVxuICBjb25zdCB7IGVkaXRvckNvbmZpZyB9ID0gdXNlRWRpdG9yQ29uZmlnQ29udGV4dCgpXG4gIGNvbnN0IHsgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oKVxuXG4gIGNvbnN0IGNoZWNrRm9yVHJpZ2dlck1hdGNoID0gdXNlTWVudVRyaWdnZXJNYXRjaCgnLycsIHtcbiAgICBtaW5MZW5ndGg6IDAsXG4gIH0pXG5cbiAgY29uc3QgZ2V0RHluYW1pY09wdGlvbnMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbGV0IGdyb3VwV2l0aE9wdGlvbnM6IEFycmF5PFNsYXNoTWVudUdyb3VwPiA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGR5bmFtaWNPcHRpb24gb2YgZWRpdG9yQ29uZmlnLmZlYXR1cmVzLnNsYXNoTWVudS5keW5hbWljT3B0aW9ucykge1xuICAgICAgY29uc3QgZHluYW1pY0dyb3VwV2l0aE9wdGlvbnMgPSBkeW5hbWljT3B0aW9uKHtcbiAgICAgICAgZWRpdG9yLFxuICAgICAgICBxdWVyeVN0cmluZyxcbiAgICAgIH0pXG4gICAgICBncm91cFdpdGhPcHRpb25zID0gZ3JvdXBXaXRoT3B0aW9ucy5jb25jYXQoZHluYW1pY0dyb3VwV2l0aE9wdGlvbnMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3VwV2l0aE9wdGlvbnNcbiAgfSwgW2VkaXRvciwgcXVlcnlTdHJpbmcsIGVkaXRvckNvbmZpZz8uZmVhdHVyZXNdKVxuXG4gIGNvbnN0IGdyb3VwczogU2xhc2hNZW51R3JvdXBbXSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGxldCBncm91cHNXaXRoT3B0aW9uczogU2xhc2hNZW51R3JvdXBbXSA9IFtdXG4gICAgZm9yIChjb25zdCBncm91cFdpdGhPcHRpb24gb2YgZWRpdG9yQ29uZmlnPy5mZWF0dXJlcy5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnMgPz8gW10pIHtcbiAgICAgIGdyb3Vwc1dpdGhPcHRpb25zLnB1c2goZ3JvdXBXaXRoT3B0aW9uKVxuICAgIH1cblxuICAgIGlmIChxdWVyeVN0cmluZykge1xuICAgICAgLy8gRmlsdGVyIGN1cnJlbnQgZ3JvdXBzIGZpcnN0XG4gICAgICBncm91cHNXaXRoT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLm1hcCgoZ3JvdXApID0+IHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0gZ3JvdXAub3B0aW9ucy5maWx0ZXIoKG9wdGlvbikgPT4ge1xuICAgICAgICAgIGxldCBvcHRpb25UaXRsZSA9IG9wdGlvbi5rZXlcbiAgICAgICAgICBpZiAob3B0aW9uLmRpc3BsYXlOYW1lKSB7XG4gICAgICAgICAgICBvcHRpb25UaXRsZSA9XG4gICAgICAgICAgICAgIHR5cGVvZiBvcHRpb24uZGlzcGxheU5hbWUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICA/IG9wdGlvbi5kaXNwbGF5TmFtZSh7IGkxOG4gfSlcbiAgICAgICAgICAgICAgICA6IG9wdGlvbi5kaXNwbGF5TmFtZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBuZXcgUmVnRXhwKHF1ZXJ5U3RyaW5nLCAnZ2knKS5leGVjKG9wdGlvblRpdGxlKSB8fCBvcHRpb24ua2V5d29yZHMgIT0gbnVsbFxuICAgICAgICAgICAgPyBvcHRpb24ua2V5d29yZHMuc29tZSgoa2V5d29yZCkgPT4gbmV3IFJlZ0V4cChxdWVyeVN0cmluZywgJ2dpJykuZXhlYyhrZXl3b3JkKSlcbiAgICAgICAgICAgIDogZmFsc2VcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uZ3JvdXAsXG4gICAgICAgICAgICBvcHRpb25zOiBmaWx0ZXJlZE9wdGlvbnMsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9KVxuXG4gICAgICBncm91cHNXaXRoT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLmZpbHRlcigoZ3JvdXApID0+IGdyb3VwICE9IG51bGwpXG5cbiAgICAgIC8vIE5vdyBhZGQgZHluYW1pYyBncm91cHNcbiAgICAgIGNvbnN0IGR5bmFtaWNPcHRpb25Hcm91cHMgPSBnZXREeW5hbWljT3B0aW9ucygpXG5cbiAgICAgIC8vIG1lcmdlIGR5bmFtaWMgb3B0aW9ucyBpbnRvIGdyb3Vwc1xuICAgICAgZm9yIChjb25zdCBkeW5hbWljR3JvdXAgb2YgZHluYW1pY09wdGlvbkdyb3Vwcykge1xuICAgICAgICAvLyAxLiBmaW5kIHRoZSBncm91cCB3aXRoIHRoZSBzYW1lIG5hbWUgb3IgY3JlYXRlIG5ldyBvbmVcbiAgICAgICAgbGV0IGdyb3VwID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmluZCgoZ3JvdXApID0+IGdyb3VwLmtleSA9PT0gZHluYW1pY0dyb3VwLmtleSlcbiAgICAgICAgaWYgKCFncm91cCkge1xuICAgICAgICAgIGdyb3VwID0ge1xuICAgICAgICAgICAgLi4uZHluYW1pY0dyb3VwLFxuICAgICAgICAgICAgb3B0aW9uczogW10sXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmlsdGVyKChncm91cCkgPT4gZ3JvdXAua2V5ICE9PSBkeW5hbWljR3JvdXAua2V5KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gMi4gQWRkIG9wdGlvbnMgdG8gZ3JvdXAgb3B0aW9ucyBhcnJheSBhbmQgYWRkIHRvIHNhbml0aXplZC5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnNcbiAgICAgICAgaWYgKGdyb3VwPy5vcHRpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgICBncm91cC5vcHRpb25zID0gZ3JvdXAub3B0aW9ucy5jb25jYXQoZ3JvdXAub3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgICBncm91cHNXaXRoT3B0aW9ucy5wdXNoKGdyb3VwKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBncm91cHNXaXRoT3B0aW9uc1xuICB9LCBbZ2V0RHluYW1pY09wdGlvbnMsIHF1ZXJ5U3RyaW5nLCBlZGl0b3JDb25maWc/LmZlYXR1cmVzLCBpMThuXSlcblxuICBjb25zdCBvblNlbGVjdE9wdGlvbiA9IHVzZUNhbGxiYWNrKFxuICAgIChcbiAgICAgIHNlbGVjdGVkT3B0aW9uOiBTbGFzaE1lbnVPcHRpb24sXG4gICAgICBub2RlVG9SZW1vdmU6IFRleHROb2RlIHwgbnVsbCxcbiAgICAgIGNsb3NlTWVudTogKCkgPT4gdm9pZCxcbiAgICAgIG1hdGNoaW5nU3RyaW5nOiBzdHJpbmcsXG4gICAgKSA9PiB7XG4gICAgICBlZGl0b3IudXBkYXRlKCgpID0+IHtcbiAgICAgICAgaWYgKG5vZGVUb1JlbW92ZSkge1xuICAgICAgICAgIG5vZGVUb1JlbW92ZS5yZW1vdmUoKVxuICAgICAgICB9XG4gICAgICAgIHNlbGVjdGVkT3B0aW9uLm9uU2VsZWN0KHsgZWRpdG9yLCBxdWVyeVN0cmluZzogbWF0Y2hpbmdTdHJpbmcgfSlcbiAgICAgICAgY2xvc2VNZW51KClcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbZWRpdG9yXSxcbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPExleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luXG4gICAgICAgIGFuY2hvckVsZW09e2FuY2hvckVsZW19XG4gICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zPXtncm91cHN9XG4gICAgICAgIG1lbnVSZW5kZXJGbj17KFxuICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYsXG4gICAgICAgICAgeyBzZWxlY3RPcHRpb25BbmRDbGVhblVwLCBzZWxlY3RlZE9wdGlvbktleSwgc2V0U2VsZWN0ZWRPcHRpb25LZXkgfSxcbiAgICAgICAgKSA9PlxuICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCAmJiBncm91cHMubGVuZ3RoXG4gICAgICAgICAgICA/IFJlYWN0RE9NLmNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YmFzZUNsYXNzfT5cbiAgICAgICAgICAgICAgICAgIHtncm91cHMubWFwKChncm91cCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZ3JvdXBUaXRsZSA9IGdyb3VwLmtleVxuICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXAuZGlzcGxheU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICBncm91cFRpdGxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBncm91cC5kaXNwbGF5TmFtZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGdyb3VwLmRpc3BsYXlOYW1lKHsgaTE4biB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGdyb3VwLmRpc3BsYXlOYW1lXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZ3JvdXAgJHtiYXNlQ2xhc3N9X19ncm91cC0ke2dyb3VwLmtleX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtncm91cC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2dyb3VwLXRpdGxlYH0+e2dyb3VwVGl0bGV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Z3JvdXAub3B0aW9ucy5tYXAoKG9wdGlvbiwgb2k6IG51bWJlcikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U2xhc2hNZW51SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4PXtvaX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZE9wdGlvbktleSA9PT0gb3B0aW9uLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e29wdGlvbi5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRPcHRpb25LZXkob3B0aW9uLmtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAob3B0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbktleShvcHRpb24ua2V5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uPXtvcHRpb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPC9kaXY+LFxuICAgICAgICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBudWxsXG4gICAgICAgIH1cbiAgICAgICAgb25RdWVyeUNoYW5nZT17c2V0UXVlcnlTdHJpbmd9XG4gICAgICAgIG9uU2VsZWN0T3B0aW9uPXtvblNlbGVjdE9wdGlvbn1cbiAgICAgICAgdHJpZ2dlckZuPXtjaGVja0ZvclRyaWdnZXJNYXRjaH1cbiAgICAgIC8+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKVxufVxuIl0sIm5hbWVzIjpbInVzZUxleGljYWxDb21wb3NlckNvbnRleHQiLCJ1c2VUcmFuc2xhdGlvbiIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsInVzZVN0YXRlIiwiUmVhY3QiLCJSZWFjdERPTSIsInVzZUVkaXRvckNvbmZpZ0NvbnRleHQiLCJMZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbiIsInVzZU1lbnVUcmlnZ2VyTWF0Y2giLCJiYXNlQ2xhc3MiLCJTbGFzaE1lbnVJdGVtIiwiaXNTZWxlY3RlZCIsIm9uQ2xpY2siLCJvbk1vdXNlRW50ZXIiLCJvcHRpb24iLCJpMThuIiwiY2xhc3NOYW1lIiwia2V5IiwidGl0bGUiLCJkaXNwbGF5TmFtZSIsImxlbmd0aCIsInN1YnN0cmluZyIsImJ1dHRvbiIsImFyaWEtc2VsZWN0ZWQiLCJpZCIsInJlZiIsInNldFJlZkVsZW1lbnQiLCJyb2xlIiwidGFiSW5kZXgiLCJ0eXBlIiwiSWNvbiIsInNwYW4iLCJTbGFzaE1lbnVQbHVnaW4iLCJhbmNob3JFbGVtIiwiZG9jdW1lbnQiLCJib2R5IiwiZWRpdG9yIiwicXVlcnlTdHJpbmciLCJzZXRRdWVyeVN0cmluZyIsImVkaXRvckNvbmZpZyIsImNoZWNrRm9yVHJpZ2dlck1hdGNoIiwibWluTGVuZ3RoIiwiZ2V0RHluYW1pY09wdGlvbnMiLCJncm91cFdpdGhPcHRpb25zIiwiZHluYW1pY09wdGlvbiIsImZlYXR1cmVzIiwic2xhc2hNZW51IiwiZHluYW1pY09wdGlvbnMiLCJkeW5hbWljR3JvdXBXaXRoT3B0aW9ucyIsImNvbmNhdCIsImdyb3VwcyIsImdyb3Vwc1dpdGhPcHRpb25zIiwiZ3JvdXBXaXRoT3B0aW9uIiwicHVzaCIsIm1hcCIsImdyb3VwIiwiZmlsdGVyZWRPcHRpb25zIiwib3B0aW9ucyIsImZpbHRlciIsIm9wdGlvblRpdGxlIiwiUmVnRXhwIiwiZXhlYyIsImtleXdvcmRzIiwic29tZSIsImtleXdvcmQiLCJkeW5hbWljT3B0aW9uR3JvdXBzIiwiZHluYW1pY0dyb3VwIiwiZmluZCIsIm9uU2VsZWN0T3B0aW9uIiwic2VsZWN0ZWRPcHRpb24iLCJub2RlVG9SZW1vdmUiLCJjbG9zZU1lbnUiLCJtYXRjaGluZ1N0cmluZyIsInVwZGF0ZSIsInJlbW92ZSIsIm9uU2VsZWN0IiwiRnJhZ21lbnQiLCJtZW51UmVuZGVyRm4iLCJhbmNob3JFbGVtZW50UmVmIiwic2VsZWN0T3B0aW9uQW5kQ2xlYW5VcCIsInNlbGVjdGVkT3B0aW9uS2V5Iiwic2V0U2VsZWN0ZWRPcHRpb25LZXkiLCJjdXJyZW50IiwiY3JlYXRlUG9ydGFsIiwiZGl2IiwiZ3JvdXBUaXRsZSIsIm9pIiwiaW5kZXgiLCJvblF1ZXJ5Q2hhbmdlIiwidHJpZ2dlckZuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUdBLFNBQVNBLHlCQUF5QixRQUFRLHdDQUF1QztBQUNqRixTQUFTQyxjQUFjLFFBQVEsaUJBQWdCO0FBQy9DLFNBQVNDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxRQUFRLFFBQVEsUUFBTztBQUN0RCxZQUFZQyxXQUFXLFFBQU87QUFDOUIsWUFBWUMsY0FBYyxZQUFXO0FBSXJDLFNBQVNDLHNCQUFzQixRQUFRLDJDQUEwQztBQUNqRixTQUFT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
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgVGV4dE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dC5qcydcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdWknXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJ1xuXG5pbXBvcnQgdHlwZSB7IFNsYXNoTWVudUdyb3VwLCBTbGFzaE1lbnVPcHRpb24gfSBmcm9tICcuL0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL3R5cGVzLmpzJ1xuXG5pbXBvcnQgeyB1c2VFZGl0b3JDb25maWdDb250ZXh0IH0gZnJvbSAnLi4vLi4vY29uZmlnL2NsaWVudC9FZGl0b3JDb25maWdQcm92aWRlci5qcydcbmltcG9ydCB7IExleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luIH0gZnJvbSAnLi9MZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbi9pbmRleC5qcydcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuaW1wb3J0IHsgdXNlTWVudVRyaWdnZXJNYXRjaCB9IGZyb20gJy4vdXNlTWVudVRyaWdnZXJNYXRjaC5qcydcblxuY29uc3QgYmFzZUNsYXNzID0gJ3NsYXNoLW1lbnUtcG9wdXAnXG5cbmZ1bmN0aW9uIFNsYXNoTWVudUl0ZW0oe1xuICBpc1NlbGVjdGVkLFxuICBvbkNsaWNrLFxuICBvbk1vdXNlRW50ZXIsXG4gIG9wdGlvbixcbn06IHtcbiAgaW5kZXg6IG51bWJlclxuICBpc1NlbGVjdGVkOiBib29sZWFuXG4gIG9uQ2xpY2s6ICgpID0+IHZvaWRcbiAgb25Nb3VzZUVudGVyOiAoKSA9PiB2b2lkXG4gIG9wdGlvbjogU2xhc2hNZW51T3B0aW9uXG59KSB7XG4gIGNvbnN0IHsgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oKVxuXG4gIGxldCBjbGFzc05hbWUgPSBgJHtiYXNlQ2xhc3N9X19pdGVtICR7YmFzZUNsYXNzfV9faXRlbS0ke29wdGlvbi5rZXl9YFxuICBpZiAoaXNTZWxlY3RlZCkge1xuICAgIGNsYXNzTmFtZSArPSBgICR7YmFzZUNsYXNzfV9faXRlbS0tc2VsZWN0ZWRgXG4gIH1cblxuICBsZXQgdGl0bGUgPSBvcHRpb24ua2V5XG4gIGlmIChvcHRpb24uZGlzcGxheU5hbWUpIHtcbiAgICB0aXRsZSA9XG4gICAgICB0eXBlb2Ygb3B0aW9uLmRpc3BsYXlOYW1lID09PSAnZnVuY3Rpb24nID8gb3B0aW9uLmRpc3BsYXlOYW1lKHsgaTE4biB9KSA6IG9wdGlvbi5kaXNwbGF5TmFtZVxuICB9XG4gIC8vIENyb3AgdGl0bGUgdG8gbWF4LiA1MCBjaGFyYWN0ZXJzXG4gIGlmICh0aXRsZS5sZW5ndGggPiAyNSkge1xuICAgIHRpdGxlID0gdGl0bGUuc3Vic3RyaW5nKDAsIDI1KSArICcuLi4nXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIGFyaWEtc2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGlkPXtiYXNlQ2xhc3MgKyAnX19pdGVtLScgKyBvcHRpb24ua2V5fVxuICAgICAga2V5PXtvcHRpb24ua2V5fVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIG9uTW91c2VFbnRlcj17b25Nb3VzZUVudGVyfVxuICAgICAgcmVmPXtvcHRpb24uc2V0UmVmRWxlbWVudH1cbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAge29wdGlvbj8uSWNvbiAmJiA8b3B0aW9uLkljb24gLz59XG5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faXRlbS10ZXh0YH0+e3RpdGxlfTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gU2xhc2hNZW51UGx1Z2luKHtcbiAgYW5jaG9yRWxlbSA9IGRvY3VtZW50LmJvZHksXG59OiB7XG4gIGFuY2hvckVsZW0/OiBIVE1MRWxlbWVudFxufSk6IEpTWC5FbGVtZW50IHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcbiAgY29uc3QgW3F1ZXJ5U3RyaW5nLCBzZXRRdWVyeVN0cmluZ10gPSB1c2VTdGF0ZTxudWxsIHwgc3RyaW5nPihudWxsKVxuICBjb25zdCB7IGVkaXRvckNvbmZpZyB9ID0gdXNlRWRpdG9yQ29uZmlnQ29udGV4dCgpXG4gIGNvbnN0IHsgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oKVxuXG4gIGNvbnN0IGNoZWNrRm9yVHJpZ2dlck1hdGNoID0gdXNlTWVudVRyaWdnZXJNYXRjaCgnLycsIHtcbiAgICBtaW5MZW5ndGg6IDAsXG4gIH0pXG5cbiAgY29uc3QgZ2V0RHluYW1pY09wdGlvbnMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbGV0IGdyb3VwV2l0aE9wdGlvbnM6IEFycmF5PFNsYXNoTWVudUdyb3VwPiA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGR5bmFtaWNPcHRpb24gb2YgZWRpdG9yQ29uZmlnLmZlYXR1cmVzLnNsYXNoTWVudS5keW5hbWljT3B0aW9ucykge1xuICAgICAgY29uc3QgZHluYW1pY0dyb3VwV2l0aE9wdGlvbnMgPSBkeW5hbWljT3B0aW9uKHtcbiAgICAgICAgZWRpdG9yLFxuICAgICAgICBxdWVyeVN0cmluZyxcbiAgICAgIH0pXG4gICAgICBncm91cFdpdGhPcHRpb25zID0gZ3JvdXBXaXRoT3B0aW9ucy5jb25jYXQoZHluYW1pY0dyb3VwV2l0aE9wdGlvbnMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3VwV2l0aE9wdGlvbnNcbiAgfSwgW2VkaXRvciwgcXVlcnlTdHJpbmcsIGVkaXRvckNvbmZpZz8uZmVhdHVyZXNdKVxuXG4gIGNvbnN0IGdyb3VwczogU2xhc2hNZW51R3JvdXBbXSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGxldCBncm91cHNXaXRoT3B0aW9uczogU2xhc2hNZW51R3JvdXBbXSA9IFtdXG4gICAgZm9yIChjb25zdCBncm91cFdpdGhPcHRpb24gb2YgZWRpdG9yQ29uZmlnPy5mZWF0dXJlcy5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnMgPz8gW10pIHtcbiAgICAgIGdyb3Vwc1dpdGhPcHRpb25zLnB1c2goZ3JvdXBXaXRoT3B0aW9uKVxuICAgIH1cblxuICAgIGlmIChxdWVyeVN0cmluZykge1xuICAgICAgLy8gRmlsdGVyIGN1cnJlbnQgZ3JvdXBzIGZpcnN0XG4gICAgICBncm91cHNXaXRoT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLm1hcCgoZ3JvdXApID0+IHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0gZ3JvdXAub3B0aW9ucy5maWx0ZXIoKG9wdGlvbikgPT4ge1xuICAgICAgICAgIGxldCBvcHRpb25UaXRsZSA9IG9wdGlvbi5rZXlcbiAgICAgICAgICBpZiAob3B0aW9uLmRpc3BsYXlOYW1lKSB7XG4gICAgICAgICAgICBvcHRpb25UaXRsZSA9XG4gICAgICAgICAgICAgIHR5cGVvZiBvcHRpb24uZGlzcGxheU5hbWUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICA/IG9wdGlvbi5kaXNwbGF5TmFtZSh7IGkxOG4gfSlcbiAgICAgICAgICAgICAgICA6IG9wdGlvbi5kaXNwbGF5TmFtZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBuZXcgUmVnRXhwKHF1ZXJ5U3RyaW5nLCAnZ2knKS5leGVjKG9wdGlvblRpdGxlKSB8fCBvcHRpb24ua2V5d29yZHMgIT0gbnVsbFxuICAgICAgICAgICAgPyBvcHRpb24ua2V5d29yZHMuc29tZSgoa2V5d29yZCkgPT4gbmV3IFJlZ0V4cChxdWVyeVN0cmluZywgJ2dpJykuZXhlYyhrZXl3b3JkKSlcbiAgICAgICAgICAgIDogZmFsc2VcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uZ3JvdXAsXG4gICAgICAgICAgICBvcHRpb25zOiBmaWx0ZXJlZE9wdGlvbnMsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9KVxuXG4gICAgICBncm91cHNXaXRoT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLmZpbHRlcigoZ3JvdXApID0+IGdyb3VwICE9IG51bGwpXG5cbiAgICAgIC8vIE5vdyBhZGQgZHluYW1pYyBncm91cHNcbiAgICAgIGNvbnN0IGR5bmFtaWNPcHRpb25Hcm91cHMgPSBnZXREeW5hbWljT3B0aW9ucygpXG5cbiAgICAgIC8vIG1lcmdlIGR5bmFtaWMgb3B0aW9ucyBpbnRvIGdyb3Vwc1xuICAgICAgZm9yIChjb25zdCBkeW5hbWljR3JvdXAgb2YgZHluYW1pY09wdGlvbkdyb3Vwcykge1xuICAgICAgICAvLyAxLiBmaW5kIHRoZSBncm91cCB3aXRoIHRoZSBzYW1lIG5hbWUgb3IgY3JlYXRlIG5ldyBvbmVcbiAgICAgICAgbGV0IGdyb3VwID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmluZCgoZ3JvdXApID0+IGdyb3VwLmtleSA9PT0gZHluYW1pY0dyb3VwLmtleSlcbiAgICAgICAgaWYgKCFncm91cCkge1xuICAgICAgICAgIGdyb3VwID0ge1xuICAgICAgICAgICAgLi4uZHluYW1pY0dyb3VwLFxuICAgICAgICAgICAgb3B0aW9uczogW10sXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmlsdGVyKChncm91cCkgPT4gZ3JvdXAua2V5ICE9PSBkeW5hbWljR3JvdXAua2V5KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gMi4gQWRkIG9wdGlvbnMgdG8gZ3JvdXAgb3B0aW9ucyBhcnJheSBhbmQgYWRkIHRvIHNhbml0aXplZC5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnNcbiAgICAgICAgaWYgKGdyb3VwPy5vcHRpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgICBncm91cC5vcHRpb25zID0gZ3JvdXAub3B0aW9ucy5jb25jYXQoZ3JvdXAub3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgICBncm91cHNXaXRoT3B0aW9ucy5wdXNoKGdyb3VwKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBncm91cHNXaXRoT3B0aW9uc1xuICB9LCBbZ2V0RHluYW1pY09wdGlvbnMsIHF1ZXJ5U3RyaW5nLCBlZGl0b3JDb25maWc/LmZlYXR1cmVzLCBpMThuXSlcblxuICBjb25zdCBvblNlbGVjdE9wdGlvbiA9IHVzZUNhbGxiYWNrKFxuICAgIChcbiAgICAgIHNlbGVjdGVkT3B0aW9uOiBTbGFzaE1lbnVPcHRpb24sXG4gICAgICBub2RlVG9SZW1vdmU6IFRleHROb2RlIHwgbnVsbCxcbiAgICAgIGNsb3NlTWVudTogKCkgPT4gdm9pZCxcbiAgICAgIG1hdGNoaW5nU3RyaW5nOiBzdHJpbmcsXG4gICAgKSA9PiB7XG4gICAgICBlZGl0b3IudXBkYXRlKCgpID0+IHtcbiAgICAgICAgaWYgKG5vZGVUb1JlbW92ZSkge1xuICAgICAgICAgIG5vZGVUb1JlbW92ZS5yZW1vdmUoKVxuICAgICAgICB9XG4gICAgICAgIHNlbGVjdGVkT3B0aW9uLm9uU2VsZWN0KHsgZWRpdG9yLCBxdWVyeVN0cmluZzogbWF0Y2hpbmdTdHJpbmcgfSlcbiAgICAgICAgY2xvc2VNZW51KClcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbZWRpdG9yXSxcbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPExleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luXG4gICAgICAgIGFuY2hvckVsZW09e2FuY2hvckVsZW19XG4gICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zPXtncm91cHN9XG4gICAgICAgIG1lbnVSZW5kZXJGbj17KFxuICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYsXG4gICAgICAgICAgeyBzZWxlY3RPcHRpb25BbmRDbGVhblVwLCBzZWxlY3RlZE9wdGlvbktleSwgc2V0U2VsZWN0ZWRPcHRpb25LZXkgfSxcbiAgICAgICAgKSA9PlxuICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCAmJiBncm91cHMubGVuZ3RoXG4gICAgICAgICAgICA/IFJlYWN0RE9NLmNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YmFzZUNsYXNzfT5cbiAgICAgICAgICAgICAgICAgIHtncm91cHMubWFwKChncm91cCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZ3JvdXBUaXRsZSA9IGdyb3VwLmtleVxuICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXAuZGlzcGxheU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICBncm91cFRpdGxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBncm91cC5kaXNwbGF5TmFtZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGdyb3VwLmRpc3BsYXlOYW1lKHsgaTE4biB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGdyb3VwLmRpc3BsYXlOYW1lXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZ3JvdXAgJHtiYXNlQ2xhc3N9X19ncm91cC0ke2dyb3VwLmtleX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtncm91cC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2dyb3VwLXRpdGxlYH0+e2dyb3VwVGl0bGV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Z3JvdXAub3B0aW9ucy5tYXAoKG9wdGlvbiwgb2k6IG51bWJlcikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U2xhc2hNZW51SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4PXtvaX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZE9wdGlvbktleSA9PT0gb3B0aW9uLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e29wdGlvbi5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRPcHRpb25LZXkob3B0aW9uLmtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAob3B0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbktleShvcHRpb24ua2V5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uPXtvcHRpb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPC9kaXY+LFxuICAgICAgICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBudWxsXG4gICAgICAgIH1cbiAgICAgICAgb25RdWVyeUNoYW5nZT17c2V0UXVlcnlTdHJpbmd9XG4gICAgICAgIG9uU2VsZWN0T3B0aW9uPXtvblNlbGVjdE9wdGlvbn1cbiAgICAgICAgdHJpZ2dlckZuPXtjaGVja0ZvclRyaWdnZXJNYXRjaH1cbiAgICAgIC8+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKVxufVxuIl0sIm5hbWVzIjpbInVzZUxleGljYWxDb21wb3NlckNvbnRleHQiLCJ1c2VUcmFuc2xhdGlvbiIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsInVzZVN0YXRlIiwiUmVhY3QiLCJSZWFjdERPTSIsInVzZUVkaXRvckNvbmZpZ0NvbnRleHQiLCJMZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbiIsInVzZU1lbnVUcmlnZ2VyTWF0Y2giLCJiYXNlQ2xhc3MiLCJTbGFzaE1lbnVJdGVtIiwiaXNTZWxlY3RlZCIsIm9uQ2xpY2siLCJvbk1vdXNlRW50ZXIiLCJvcHRpb24iLCJpMThuIiwiY2xhc3NOYW1lIiwia2V5IiwidGl0bGUiLCJkaXNwbGF5TmFtZSIsImxlbmd0aCIsInN1YnN0cmluZyIsImJ1dHRvbiIsImFyaWEtc2VsZWN0ZWQiLCJpZCIsInJlZiIsInNldFJlZkVsZW1lbnQiLCJyb2xlIiwidGFiSW5kZXgiLCJ0eXBlIiwiSWNvbiIsInNwYW4iLCJTbGFzaE1lbnVQbHVnaW4iLCJhbmNob3JFbGVtIiwiZG9jdW1lbnQiLCJib2R5IiwiZWRpdG9yIiwicXVlcnlTdHJpbmciLCJzZXRRdWVyeVN0cmluZyIsImVkaXRvckNvbmZpZyIsImNoZWNrRm9yVHJpZ2dlck1hdGNoIiwibWluTGVuZ3RoIiwiZ2V0RHluYW1pY09wdGlvbnMiLCJncm91cFdpdGhPcHRpb25zIiwiZHluYW1pY09wdGlvbiIsImZlYXR1cmVzIiwic2xhc2hNZW51IiwiZHluYW1pY09wdGlvbnMiLCJkeW5hbWljR3JvdXBXaXRoT3B0aW9ucyIsImNvbmNhdCIsImdyb3VwcyIsImdyb3Vwc1dpdGhPcHRpb25zIiwiZ3JvdXBXaXRoT3B0aW9uIiwicHVzaCIsIm1hcCIsImdyb3VwIiwiZmlsdGVyZWRPcHRpb25zIiwib3B0aW9ucyIsImZpbHRlciIsIm9wdGlvblRpdGxlIiwiUmVnRXhwIiwiZXhlYyIsImtleXdvcmRzIiwic29tZSIsImtleXdvcmQiLCJkeW5hbWljT3B0aW9uR3JvdXBzIiwiZHluYW1pY0dyb3VwIiwiZmluZCIsIm9uU2VsZWN0T3B0aW9uIiwic2VsZWN0ZWRPcHRpb24iLCJub2RlVG9SZW1vdmUiLCJjbG9zZU1lbnUiLCJtYXRjaGluZ1N0cmluZyIsInVwZGF0ZSIsInJlbW92ZSIsIm9uU2VsZWN0IiwiRnJhZ21lbnQiLCJtZW51UmVuZGVyRm4iLCJhbmNob3JFbGVtZW50UmVmIiwic2VsZWN0T3B0aW9uQW5kQ2xlYW5VcCIsInNlbGVjdGVkT3B0aW9uS2V5Iiwic2V0U2VsZWN0ZWRPcHRpb25LZXkiLCJjdXJyZW50IiwiY3JlYXRlUG9ydGFsIiwiZGl2IiwiZ3JvdXBUaXRsZSIsIm9pIiwiaW5kZXgiLCJvblF1ZXJ5Q2hhbmdlIiwidHJpZ2dlckZuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUdBLFNBQVNBLHlCQUF5QixRQUFRLDJDQUEwQztBQUNwRixTQUFTQyxjQUFjLFFBQVEsaUJBQWdCO0FBQy9DLFNBQVNDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxRQUFRLFFBQVEsUUFBTztBQUN0RCxZQUFZQyxXQUFXLFFBQU87QUFDOUIsWUFBWUMsY0FBYyxZQUFXO0FBSXJDLFNBQVNDLHNCQUFzQixR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
@@ -1,5 +1,5 @@
1
1
  import { useCallback } from 'react';
2
- import { PUNCTUATION } from './LexicalTypeaheadMenuPlugin';
2
+ import { PUNCTUATION } from './LexicalTypeaheadMenuPlugin/index.js';
3
3
  /**
4
4
  * Returns a function which checks if the trigger (e.g. '/') is present in the query and, if so, returns the matching string (text after the trigger)
5
5
  */ export function useMenuTriggerMatch(/**
@@ -30,4 +30,4 @@ import { PUNCTUATION } from './LexicalTypeaheadMenuPlugin';
30
30
  ]);
31
31
  }
32
32
 
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L3VzZU1lbnVUcmlnZ2VyTWF0Y2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMZXhpY2FsRWRpdG9yIH0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgUFVOQ1RVQVRJT04gfSBmcm9tICcuL0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luJ1xuXG5leHBvcnQgdHlwZSBUcmlnZ2VyRm4gPSAoe1xuICBlZGl0b3IsXG4gIHF1ZXJ5LFxufToge1xuICBlZGl0b3I6IExleGljYWxFZGl0b3JcbiAgLyoqIFRoZSBxdWVyeSBzdHJpbmcgaXMgdGhlIFBPVEVOVElBTCB0cmlnZ2VyIEFORCB0aGUgdGV4dCBhZnRlciB0aGUgdHJpZ2dlciB0ZXh0LiAqL1xuICBxdWVyeTogc3RyaW5nXG59KSA9PiBNZW51VGV4dE1hdGNoIHwgbnVsbFxuXG5leHBvcnQgdHlwZSBNZW51VGV4dE1hdGNoID0ge1xuICBsZWFkT2Zmc2V0OiBudW1iZXJcbiAgbWF0Y2hpbmdTdHJpbmc6IHN0cmluZ1xuICByZXBsYWNlYWJsZVN0cmluZzogc3RyaW5nXG59XG5cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHdoaWNoIGNoZWNrcyBpZiB0aGUgdHJpZ2dlciAoZS5nLiAnLycpIGlzIHByZXNlbnQgaW4gdGhlIHF1ZXJ5IGFuZCwgaWYgc28sIHJldHVybnMgdGhlIG1hdGNoaW5nIHN0cmluZyAodGV4dCBhZnRlciB0aGUgdHJpZ2dlcilcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU1lbnVUcmlnZ2VyTWF0Y2goXG4gIC8qKlxuICAgKiBUZXh0IHdoaWNoIHRyaWdnZXJzIHRoZSBtZW51LiBFdmVyeXRoaW5nIGFmdGVyIHRoaXMgdGV4dCB3aWxsIGJlIHVzZWQgYXMgdGhlIHF1ZXJ5LlxuICAgKi9cbiAgdHJpZ2dlcjogc3RyaW5nLFxuICB7IG1heExlbmd0aCA9IDc1LCBtaW5MZW5ndGggPSAxIH06IHsgbWF4TGVuZ3RoPzogbnVtYmVyOyBtaW5MZW5ndGg/OiBudW1iZXIgfSxcbik6IFRyaWdnZXJGbiB7XG4gIHJldHVybiB1c2VDYWxsYmFjayhcbiAgICAoeyBxdWVyeSB9KSA9PiB7XG4gICAgICBjb25zdCB2YWxpZENoYXJzID0gJ1teJyArIHRyaWdnZXIgKyBQVU5DVFVBVElPTiArICdcXFxcc10nXG4gICAgICBjb25zdCBUeXBlYWhlYWRUcmlnZ2VyUmVnZXggPSBuZXcgUmVnRXhwKFxuICAgICAgICAnKF58XFxcXHN8XFxcXCgpKCcgK1xuICAgICAgICAgICdbJyArXG4gICAgICAgICAgdHJpZ2dlciArXG4gICAgICAgICAgJ10nICtcbiAgICAgICAgICAnKCg/OicgK1xuICAgICAgICAgIHZhbGlkQ2hhcnMgK1xuICAgICAgICAgICcpezAsJyArXG4gICAgICAgICAgbWF4TGVuZ3RoICtcbiAgICAgICAgICAnfSknICtcbiAgICAgICAgICAnKSQnLFxuICAgICAgKVxuICAgICAgY29uc3QgbWF0Y2ggPSBUeXBlYWhlYWRUcmlnZ2VyUmVnZXguZXhlYyhxdWVyeSlcbiAgICAgIGlmIChtYXRjaCAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBtYXliZUxlYWRpbmdXaGl0ZXNwYWNlID0gbWF0Y2hbMV1cblxuICAgICAgICAvKipcbiAgICAgICAgICogbWF0Y2hpbmdTdHJpbmcgaXMgb25seSB0aGUgdGV4dCBBRlRFUiB0aGUgdHJpZ2dlciB0ZXh0LiAoU28gZXZlcnl0aGluZyBhZnRlciB0aGUgLylcbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IG1hdGNoaW5nU3RyaW5nID0gbWF0Y2hbM11cblxuICAgICAgICBpZiAobWF0Y2hpbmdTdHJpbmcubGVuZ3RoID49IG1pbkxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsZWFkT2Zmc2V0OiBtYXRjaC5pbmRleCArIG1heWJlTGVhZGluZ1doaXRlc3BhY2UubGVuZ3RoLFxuICAgICAgICAgICAgbWF0Y2hpbmdTdHJpbmcsXG4gICAgICAgICAgICByZXBsYWNlYWJsZVN0cmluZzogbWF0Y2hbMl0sIC8vIHJlcGxhY2VhYmxlU3RyaW5nIGlzIHRoZSB0cmlnZ2VyIHRleHQgKyB0aGUgbWF0Y2hpbmcgc3RyaW5nXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH0sXG4gICAgW21heExlbmd0aCwgbWluTGVuZ3RoLCB0cmlnZ2VyXSxcbiAgKVxufVxuIl0sIm5hbWVzIjpbInVzZUNhbGxiYWNrIiwiUFVOQ1RVQVRJT04iLCJ1c2VNZW51VHJpZ2dlck1hdGNoIiwidHJpZ2dlciIsIm1heExlbmd0aCIsIm1pbkxlbmd0aCIsInF1ZXJ5IiwidmFsaWRDaGFycyIsIlR5cGVhaGVhZFRyaWdnZXJSZWdleCIsIlJlZ0V4cCIsIm1hdGNoIiwiZXhlYyIsIm1heWJlTGVhZGluZ1doaXRlc3BhY2UiLCJtYXRjaGluZ1N0cmluZyIsImxlbmd0aCIsImxlYWRPZmZzZXQiLCJpbmRleCIsInJlcGxhY2VhYmxlU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSxXQUFXLFFBQVEsUUFBTztBQUVuQyxTQUFTQyxXQUFXLFFBQVEsK0JBQThCO0FBaUIxRDs7Q0FFQyxHQUNELE9BQU8sU0FBU0Msb0JBQ2Q7O0dBRUMsR0FDREMsT0FBZSxFQUNmLEVBQUVDLFlBQVksRUFBRSxFQUFFQyxZQUFZLENBQUMsRUFBOEM7SUFFN0UsT0FBT0wsWUFDTCxDQUFDLEVBQUVNLEtBQUssRUFBRTtRQUNSLE1BQU1DLGFBQWEsT0FBT0osVUFBVUYsY0FBYztRQUNsRCxNQUFNTyx3QkFBd0IsSUFBSUMsT0FDaEMsaUJBQ0UsTUFDQU4sVUFDQSxNQUNBLFNBQ0FJLGFBQ0EsU0FDQUgsWUFDQSxPQUNBO1FBRUosTUFBTU0sUUFBUUYsc0JBQXNCRyxJQUFJLENBQUNMO1FBQ3pDLElBQUlJLFVBQVUsTUFBTTtZQUNsQixNQUFNRSx5QkFBeUJGLEtBQUssQ0FBQyxFQUFFO1lBRXZDOztTQUVDLEdBQ0QsTUFBTUcsaUJBQWlCSCxLQUFLLENBQUMsRUFBRTtZQUUvQixJQUFJRyxlQUFlQyxNQUFNLElBQUlULFdBQVc7Z0JBQ3RDLE9BQU87b0JBQ0xVLFlBQVlMLE1BQU1NLEtBQUssR0FBR0osdUJBQXVCRSxNQUFNO29CQUN2REQ7b0JBQ0FJLG1CQUFtQlAsS0FBSyxDQUFDLEVBQUU7Z0JBQzdCO1lBQ0Y7UUFDRjtRQUNBLE9BQU87SUFDVCxHQUNBO1FBQUNOO1FBQVdDO1FBQVdGO0tBQVE7QUFFbkMifQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L3VzZU1lbnVUcmlnZ2VyTWF0Y2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMZXhpY2FsRWRpdG9yIH0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgUFVOQ1RVQVRJT04gfSBmcm9tICcuL0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL2luZGV4LmpzJ1xuXG5leHBvcnQgdHlwZSBUcmlnZ2VyRm4gPSAoe1xuICBlZGl0b3IsXG4gIHF1ZXJ5LFxufToge1xuICBlZGl0b3I6IExleGljYWxFZGl0b3JcbiAgLyoqIFRoZSBxdWVyeSBzdHJpbmcgaXMgdGhlIFBPVEVOVElBTCB0cmlnZ2VyIEFORCB0aGUgdGV4dCBhZnRlciB0aGUgdHJpZ2dlciB0ZXh0LiAqL1xuICBxdWVyeTogc3RyaW5nXG59KSA9PiBNZW51VGV4dE1hdGNoIHwgbnVsbFxuXG5leHBvcnQgdHlwZSBNZW51VGV4dE1hdGNoID0ge1xuICBsZWFkT2Zmc2V0OiBudW1iZXJcbiAgbWF0Y2hpbmdTdHJpbmc6IHN0cmluZ1xuICByZXBsYWNlYWJsZVN0cmluZzogc3RyaW5nXG59XG5cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHdoaWNoIGNoZWNrcyBpZiB0aGUgdHJpZ2dlciAoZS5nLiAnLycpIGlzIHByZXNlbnQgaW4gdGhlIHF1ZXJ5IGFuZCwgaWYgc28sIHJldHVybnMgdGhlIG1hdGNoaW5nIHN0cmluZyAodGV4dCBhZnRlciB0aGUgdHJpZ2dlcilcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU1lbnVUcmlnZ2VyTWF0Y2goXG4gIC8qKlxuICAgKiBUZXh0IHdoaWNoIHRyaWdnZXJzIHRoZSBtZW51LiBFdmVyeXRoaW5nIGFmdGVyIHRoaXMgdGV4dCB3aWxsIGJlIHVzZWQgYXMgdGhlIHF1ZXJ5LlxuICAgKi9cbiAgdHJpZ2dlcjogc3RyaW5nLFxuICB7IG1heExlbmd0aCA9IDc1LCBtaW5MZW5ndGggPSAxIH06IHsgbWF4TGVuZ3RoPzogbnVtYmVyOyBtaW5MZW5ndGg/OiBudW1iZXIgfSxcbik6IFRyaWdnZXJGbiB7XG4gIHJldHVybiB1c2VDYWxsYmFjayhcbiAgICAoeyBxdWVyeSB9KSA9PiB7XG4gICAgICBjb25zdCB2YWxpZENoYXJzID0gJ1teJyArIHRyaWdnZXIgKyBQVU5DVFVBVElPTiArICdcXFxcc10nXG4gICAgICBjb25zdCBUeXBlYWhlYWRUcmlnZ2VyUmVnZXggPSBuZXcgUmVnRXhwKFxuICAgICAgICAnKF58XFxcXHN8XFxcXCgpKCcgK1xuICAgICAgICAgICdbJyArXG4gICAgICAgICAgdHJpZ2dlciArXG4gICAgICAgICAgJ10nICtcbiAgICAgICAgICAnKCg/OicgK1xuICAgICAgICAgIHZhbGlkQ2hhcnMgK1xuICAgICAgICAgICcpezAsJyArXG4gICAgICAgICAgbWF4TGVuZ3RoICtcbiAgICAgICAgICAnfSknICtcbiAgICAgICAgICAnKSQnLFxuICAgICAgKVxuICAgICAgY29uc3QgbWF0Y2ggPSBUeXBlYWhlYWRUcmlnZ2VyUmVnZXguZXhlYyhxdWVyeSlcbiAgICAgIGlmIChtYXRjaCAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBtYXliZUxlYWRpbmdXaGl0ZXNwYWNlID0gbWF0Y2hbMV1cblxuICAgICAgICAvKipcbiAgICAgICAgICogbWF0Y2hpbmdTdHJpbmcgaXMgb25seSB0aGUgdGV4dCBBRlRFUiB0aGUgdHJpZ2dlciB0ZXh0LiAoU28gZXZlcnl0aGluZyBhZnRlciB0aGUgLylcbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IG1hdGNoaW5nU3RyaW5nID0gbWF0Y2hbM11cblxuICAgICAgICBpZiAobWF0Y2hpbmdTdHJpbmcubGVuZ3RoID49IG1pbkxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsZWFkT2Zmc2V0OiBtYXRjaC5pbmRleCArIG1heWJlTGVhZGluZ1doaXRlc3BhY2UubGVuZ3RoLFxuICAgICAgICAgICAgbWF0Y2hpbmdTdHJpbmcsXG4gICAgICAgICAgICByZXBsYWNlYWJsZVN0cmluZzogbWF0Y2hbMl0sIC8vIHJlcGxhY2VhYmxlU3RyaW5nIGlzIHRoZSB0cmlnZ2VyIHRleHQgKyB0aGUgbWF0Y2hpbmcgc3RyaW5nXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH0sXG4gICAgW21heExlbmd0aCwgbWluTGVuZ3RoLCB0cmlnZ2VyXSxcbiAgKVxufVxuIl0sIm5hbWVzIjpbInVzZUNhbGxiYWNrIiwiUFVOQ1RVQVRJT04iLCJ1c2VNZW51VHJpZ2dlck1hdGNoIiwidHJpZ2dlciIsIm1heExlbmd0aCIsIm1pbkxlbmd0aCIsInF1ZXJ5IiwidmFsaWRDaGFycyIsIlR5cGVhaGVhZFRyaWdnZXJSZWdleCIsIlJlZ0V4cCIsIm1hdGNoIiwiZXhlYyIsIm1heWJlTGVhZGluZ1doaXRlc3BhY2UiLCJtYXRjaGluZ1N0cmluZyIsImxlbmd0aCIsImxlYWRPZmZzZXQiLCJpbmRleCIsInJlcGxhY2VhYmxlU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSxXQUFXLFFBQVEsUUFBTztBQUVuQyxTQUFTQyxXQUFXLFFBQVEsd0NBQXVDO0FBaUJuRTs7Q0FFQyxHQUNELE9BQU8sU0FBU0Msb0JBQ2Q7O0dBRUMsR0FDREMsT0FBZSxFQUNmLEVBQUVDLFlBQVksRUFBRSxFQUFFQyxZQUFZLENBQUMsRUFBOEM7SUFFN0UsT0FBT0wsWUFDTCxDQUFDLEVBQUVNLEtBQUssRUFBRTtRQUNSLE1BQU1DLGFBQWEsT0FBT0osVUFBVUYsY0FBYztRQUNsRCxNQUFNTyx3QkFBd0IsSUFBSUMsT0FDaEMsaUJBQ0UsTUFDQU4sVUFDQSxNQUNBLFNBQ0FJLGFBQ0EsU0FDQUgsWUFDQSxPQUNBO1FBRUosTUFBTU0sUUFBUUYsc0JBQXNCRyxJQUFJLENBQUNMO1FBQ3pDLElBQUlJLFVBQVUsTUFBTTtZQUNsQixNQUFNRSx5QkFBeUJGLEtBQUssQ0FBQyxFQUFFO1lBRXZDOztTQUVDLEdBQ0QsTUFBTUcsaUJBQWlCSCxLQUFLLENBQUMsRUFBRTtZQUUvQixJQUFJRyxlQUFlQyxNQUFNLElBQUlULFdBQVc7Z0JBQ3RDLE9BQU87b0JBQ0xVLFlBQVlMLE1BQU1NLEtBQUssR0FBR0osdUJBQXVCRSxNQUFNO29CQUN2REQ7b0JBQ0FJLG1CQUFtQlAsS0FBSyxDQUFDLEVBQUU7Z0JBQzdCO1lBQ0Y7UUFDRjtRQUNBLE9BQU87SUFDVCxHQUNBO1FBQUNOO1FBQVdDO1FBQVdGO0tBQVE7QUFFbkMifQ==
@@ -1,18 +1,18 @@
1
1
  'use client';
2
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
2
+ import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
3
3
  import { $createParagraphNode } from 'lexical';
4
4
  import { $getNodeByKey } from 'lexical';
5
5
  import * as React from 'react';
6
6
  import { useCallback, useEffect, useRef, useState } from 'react';
7
7
  import { createPortal } from 'react-dom';
8
- import { isHTMLElement } from '../../../utils/guard';
9
- import { Point } from '../../../utils/point';
10
- import { Rect } from '../../../utils/rect';
11
- import { ENABLE_SLASH_MENU_COMMAND } from '../../SlashMenu/LexicalTypeaheadMenuPlugin';
12
- import { getCollapsedMargins } from '../utils/getCollapsedMargins';
13
- import { getTopLevelNodeKeys } from '../utils/getTopLevelNodeKeys';
14
- import { isOnHandleElement } from '../utils/isOnHandleElement';
15
- import { setHandlePosition } from '../utils/setHandlePosition';
8
+ import { isHTMLElement } from '../../../utils/guard.js';
9
+ import { Point } from '../../../utils/point.js';
10
+ import { Rect } from '../../../utils/rect.js';
11
+ import { ENABLE_SLASH_MENU_COMMAND } from '../../SlashMenu/LexicalTypeaheadMenuPlugin/index.js';
12
+ import { getCollapsedMargins } from '../utils/getCollapsedMargins.js';
13
+ import { getTopLevelNodeKeys } from '../utils/getTopLevelNodeKeys.js';
14
+ import { isOnHandleElement } from '../utils/isOnHandleElement.js';
15
+ import { setHandlePosition } from '../utils/setHandlePosition.js';
16
16
  import './index.scss';
17
17
  const SPACE = -24;
18
18
  const ADD_BLOCK_MENU_CLASSNAME = 'add-block-menu';
@@ -232,4 +232,4 @@ export function AddBlockHandlePlugin({ anchorElem = document.body }) {
232
232
  return useAddBlockHandle(editor, anchorElem, editor._editable);
233
233
  }
234
234
 
235
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy9BZGRCbG9ja0hhbmRsZVBsdWdpbi9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgdHlwZSB7IFBhcmFncmFwaE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7ICRjcmVhdGVQYXJhZ3JhcGhOb2RlIH0gZnJvbSAnbGV4aWNhbCdcbmltcG9ydCB7ICRnZXROb2RlQnlLZXksIHR5cGUgTGV4aWNhbEVkaXRvciwgdHlwZSBMZXhpY2FsTm9kZSB9IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcblxuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2d1YXJkJ1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9wb2ludCdcbmltcG9ydCB7IFJlY3QgfSBmcm9tICcuLi8uLi8uLi91dGlscy9yZWN0J1xuaW1wb3J0IHsgRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCB9IGZyb20gJy4uLy4uL1NsYXNoTWVudS9MZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbidcbmltcG9ydCB7IGdldENvbGxhcHNlZE1hcmdpbnMgfSBmcm9tICcuLi91dGlscy9nZXRDb2xsYXBzZWRNYXJnaW5zJ1xuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxOb2RlS2V5cyB9IGZyb20gJy4uL3V0aWxzL2dldFRvcExldmVsTm9kZUtleXMnXG5pbXBvcnQgeyBpc09uSGFuZGxlRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL2lzT25IYW5kbGVFbGVtZW50J1xuaW1wb3J0IHsgc2V0SGFuZGxlUG9zaXRpb24gfSBmcm9tICcuLi91dGlscy9zZXRIYW5kbGVQb3NpdGlvbidcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBTUEFDRSA9IC0yNFxuY29uc3QgQUREX0JMT0NLX01FTlVfQ0xBU1NOQU1FID0gJ2FkZC1ibG9jay1tZW51J1xuXG5jb25zdCBEb3dud2FyZCA9IDFcbmNvbnN0IFVwd2FyZCA9IC0xXG5jb25zdCBJbmRldGVybWluYXRlID0gMFxuXG5sZXQgcHJldkluZGV4ID0gSW5maW5pdHlcblxuZnVuY3Rpb24gZ2V0Q3VycmVudEluZGV4KGtleXNMZW5ndGg6IG51bWJlcik6IG51bWJlciB7XG4gIGlmIChrZXlzTGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIEluZmluaXR5XG4gIH1cbiAgaWYgKHByZXZJbmRleCA+PSAwICYmIHByZXZJbmRleCA8IGtleXNMZW5ndGgpIHtcbiAgICByZXR1cm4gcHJldkluZGV4XG4gIH1cblxuICByZXR1cm4gTWF0aC5mbG9vcihrZXlzTGVuZ3RoIC8gMilcbn1cblxuZnVuY3Rpb24gZ2V0QmxvY2tFbGVtZW50KFxuICBhbmNob3JFbGVtOiBIVE1MRWxlbWVudCxcbiAgZWRpdG9yOiBMZXhpY2FsRWRpdG9yLFxuICBldmVudDogTW91c2VFdmVudCxcbiAgdXNlRWRnZUFzRGVmYXVsdCA9IGZhbHNlLFxuICBob3Jpem9udGFsT2Zmc2V0ID0gMCxcbik6IHtcbiAgYmxvY2tFbGVtOiBIVE1MRWxlbWVudCB8IG51bGxcbiAgYmxvY2tOb2RlOiBMZXhpY2FsTm9kZSB8IG51bGxcbn0ge1xuICBjb25zdCBhbmNob3JFbGVtZW50UmVjdCA9IGFuY2hvckVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgY29uc3QgdG9wTGV2ZWxOb2RlS2V5cyA9IGdldFRvcExldmVsTm9kZUtleXMoZWRpdG9yKVxuXG4gIGxldCBibG9ja0VsZW06IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGxcbiAgbGV0IGJsb2NrTm9kZTogTGV4aWNhbE5vZGUgfCBudWxsID0gbnVsbFxuXG4gIC8vIFJldHVybiBudWxsIGlmIG1hdGNoaW5nIGJsb2NrIGVsZW1lbnQgaXMgdGhlIGZpcnN0IG9yIGxhc3Qgbm9kZVxuICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICBpZiAodXNlRWRnZUFzRGVmYXVsdCkge1xuICAgICAgY29uc3QgW2ZpcnN0Tm9kZSwgbGFzdE5vZGVdID0gW1xuICAgICAgICBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KHRvcExldmVsTm9kZUtleXNbMF0pLFxuICAgICAgICBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KHRvcExldmVsTm9kZUtleXNbdG9wTGV2ZWxOb2RlS2V5cy5sZW5ndGggLSAxXSksXG4gICAgICBdXG5cbiAgICAgIGNvbnN0IFtmaXJzdE5vZGVSZWN0LCBsYXN0Tm9kZVJlY3RdID0gW1xuICAgICAgICBmaXJzdE5vZGU/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICBsYXN0Tm9kZT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgICBdXG5cbiAgICAgIGlmIChmaXJzdE5vZGVSZWN0ICYmIGxhc3ROb2RlUmVjdCkge1xuICAgICAgICBpZiAoZXZlbnQueSA8IGZpcnN0Tm9kZVJlY3QudG9wKSB7XG4gICAgICAgICAgYmxvY2tFbGVtID0gZmlyc3ROb2RlXG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQueSA+IGxhc3ROb2RlUmVjdC5ib3R0b20pIHtcbiAgICAgICAgICBibG9ja0VsZW0gPSBsYXN0Tm9kZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGJsb2NrRWxlbSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBibG9ja0VsZW06IG51bGwsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmluZCBtYXRjaGluZyBibG9jayBlbGVtZW50XG4gICAgbGV0IGluZGV4ID0gZ2V0Q3VycmVudEluZGV4KHRvcExldmVsTm9kZUtleXMubGVuZ3RoKVxuICAgIGxldCBkaXJlY3Rpb24gPSBJbmRldGVybWluYXRlXG5cbiAgICB3aGlsZSAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRvcExldmVsTm9kZUtleXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBrZXkgPSB0b3BMZXZlbE5vZGVLZXlzW2luZGV4XVxuICAgICAgY29uc3QgZWxlbSA9IGVkaXRvci5nZXRFbGVtZW50QnlLZXkoa2V5KVxuICAgICAgaWYgKGVsZW0gPT09IG51bGwpIHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBvaW50ID0gbmV3IFBvaW50KGV2ZW50LnggKyBob3Jpem9udGFsT2Zmc2V0LCBldmVudC55KVxuICAgICAgY29uc3QgZG9tUmVjdCA9IFJlY3QuZnJvbURPTShlbGVtKVxuICAgICAgY29uc3QgeyBtYXJnaW5Cb3R0b20sIG1hcmdpblRvcCB9ID0gZ2V0Q29sbGFwc2VkTWFyZ2lucyhlbGVtKVxuXG4gICAgICBjb25zdCByZWN0ID0gZG9tUmVjdC5nZW5lcmF0ZU5ld1JlY3Qoe1xuICAgICAgICBib3R0b206IGRvbVJlY3QuYm90dG9tICsgbWFyZ2luQm90dG9tLFxuICAgICAgICBsZWZ0OiBhbmNob3JFbGVtZW50UmVjdC5sZWZ0LFxuICAgICAgICByaWdodDogYW5jaG9yRWxlbWVudFJlY3QucmlnaHQsXG4gICAgICAgIHRvcDogZG9tUmVjdC50b3AgLSBtYXJnaW5Ub3AsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCB7XG4gICAgICAgIHJlYXNvbjogeyBpc09uQm90dG9tU2lkZSwgaXNPblRvcFNpZGUgfSxcbiAgICAgICAgcmVzdWx0LFxuICAgICAgfSA9IHJlY3QuY29udGFpbnMocG9pbnQpXG5cbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgYmxvY2tFbGVtID0gZWxlbVxuICAgICAgICBibG9ja05vZGUgPSAkZ2V0Tm9kZUJ5S2V5KGtleSlcbiAgICAgICAgcHJldkluZGV4ID0gaW5kZXhcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gSW5kZXRlcm1pbmF0ZSkge1xuICAgICAgICBpZiAoaXNPblRvcFNpZGUpIHtcbiAgICAgICAgICBkaXJlY3Rpb24gPSBVcHdhcmRcbiAgICAgICAgfSBlbHNlIGlmIChpc09uQm90dG9tU2lkZSkge1xuICAgICAgICAgIGRpcmVjdGlvbiA9IERvd253YXJkXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gc3RvcCBzZWFyY2ggYmxvY2sgZWxlbWVudFxuICAgICAgICAgIGRpcmVjdGlvbiA9IEluZmluaXR5XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaW5kZXggKz0gZGlyZWN0aW9uXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiB7XG4gICAgYmxvY2tFbGVtLFxuICAgIGJsb2NrTm9kZSxcbiAgfVxufVxuXG5mdW5jdGlvbiB1c2VBZGRCbG9ja0hhbmRsZShcbiAgZWRpdG9yOiBMZXhpY2FsRWRpdG9yLFxuICBhbmNob3JFbGVtOiBIVE1MRWxlbWVudCxcbiAgaXNFZGl0YWJsZTogYm9vbGVhbixcbik6IEpTWC5FbGVtZW50IHtcbiAgY29uc3Qgc2Nyb2xsZXJFbGVtID0gYW5jaG9yRWxlbS5wYXJlbnRFbGVtZW50XG5cbiAgY29uc3QgbWVudVJlZiA9IHVzZVJlZjxIVE1MQnV0dG9uRWxlbWVudD4obnVsbClcbiAgY29uc3QgW2hvdmVyZWRFbGVtZW50LCBzZXRIb3ZlcmVkRWxlbWVudF0gPSB1c2VTdGF0ZTx7XG4gICAgZWxlbTogSFRNTEVsZW1lbnRcbiAgICBub2RlOiBMZXhpY2FsTm9kZVxuICB9IHwgbnVsbD4obnVsbClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGZ1bmN0aW9uIG9uRG9jdW1lbnRNb3VzZU1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldFxuICAgICAgaWYgKCFpc0hUTUxFbGVtZW50KHRhcmdldCkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGxldCBkaXN0YW5jZUZyb21TY3JvbGxlckVsZW0gPSAwXG4gICAgICAvLyBDYWxjdWxhdGUgZGlzdGFuY2UgYmV0d2VlbiBzY3JvbGxlckVsZW0gYW5kIHRhcmdldCBpZiB0YXJnZXQgaXMgbm90IGluIHNjcm9sbGVyRWxlbVxuICAgICAgaWYgKHNjcm9sbGVyRWxlbSAmJiAhc2Nyb2xsZXJFbGVtLmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgICAgY29uc3QgeyBib3R0b20sIGxlZnQsIHJpZ2h0LCB0b3AgfSA9IHNjcm9sbGVyRWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgICBjb25zdCB7IHBhZ2VYLCBwYWdlWSB9ID0gZXZlbnRcbiAgICAgICAgY29uc3QgaG9yaXpvbnRhbEJ1ZmZlciA9IDUwXG4gICAgICAgIGNvbnN0IHZlcnRpY2FsQnVmZmVyID0gMjVcbiAgICAgICAgY29uc3QgYWRqdXN0ZWRUb3AgPSB0b3AgKyB3aW5kb3cuc2Nyb2xsWVxuICAgICAgICBjb25zdCBhZGp1c3RlZEJvdHRvbSA9IGJvdHRvbSArIHdpbmRvdy5zY3JvbGxZXG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHBhZ2VZIDwgYWRqdXN0ZWRUb3AgLSB2ZXJ0aWNhbEJ1ZmZlciB8fFxuICAgICAgICAgIHBhZ2VZID4gYWRqdXN0ZWRCb3R0b20gKyB2ZXJ0aWNhbEJ1ZmZlciB8fFxuICAgICAgICAgIHBhZ2VYIDwgbGVmdCAtIGhvcml6b250YWxCdWZmZXIgfHxcbiAgICAgICAgICBwYWdlWCA+IHJpZ2h0ICsgaG9yaXpvbnRhbEJ1ZmZlclxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRIb3ZlcmVkRWxlbWVudChudWxsKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhpcyBpcyB1c2VkIHRvIGFsbG93IHRoZSBfZW1wdHlCbG9ja0VsZW0gdG8gYmUgZm91bmQgd2hlbiB0aGUgbW91c2UgaXMgaW4gdGhlXG4gICAgICAgIC8vIGJ1ZmZlciB6b25lIGFyb3VuZCB0aGUgc2Nyb2xsZXJFbGVtLlxuICAgICAgICBpZiAocGFnZVggPCBsZWZ0IHx8IHBhZ2VYID4gcmlnaHQpIHtcbiAgICAgICAgICBkaXN0YW5jZUZyb21TY3JvbGxlckVsZW0gPSBwYWdlWCA8IGxlZnQgPyBwYWdlWCAtIGxlZnQgOiBwYWdlWCAtIHJpZ2h0XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGlzT25IYW5kbGVFbGVtZW50KHRhcmdldCwgQUREX0JMT0NLX01FTlVfQ0xBU1NOQU1FKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNvbnN0IHsgYmxvY2tFbGVtOiBfZW1wdHlCbG9ja0VsZW0sIGJsb2NrTm9kZSB9ID0gZ2V0QmxvY2tFbGVtZW50KFxuICAgICAgICBhbmNob3JFbGVtLFxuICAgICAgICBlZGl0b3IsXG4gICAgICAgIGV2ZW50LFxuICAgICAgICBmYWxzZSxcbiAgICAgICAgLWRpc3RhbmNlRnJvbVNjcm9sbGVyRWxlbSxcbiAgICAgIClcbiAgICAgIGlmICghX2VtcHR5QmxvY2tFbGVtKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgc2V0SG92ZXJlZEVsZW1lbnQoe1xuICAgICAgICBlbGVtOiBfZW1wdHlCbG9ja0VsZW0sXG4gICAgICAgIG5vZGU6IGJsb2NrTm9kZSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gU2luY2UgdGhlIGRyYWdnYWJsZUJsb2NrRWxlbSBpcyBvdXRzaWRlIHRoZSBhY3R1YWwgZWRpdG9yLCB3ZSBuZWVkIHRvIGxpc3RlbiB0byB0aGUgZG9jdW1lbnRcbiAgICAvLyB0byBiZSBhYmxlIHRvIGRldGVjdCB3aGVuIHRoZSBtb3VzZSBpcyBvdXRzaWRlIHRoZSBlZGl0b3IgYW5kIHJlc3BlY3QgYSBidWZmZXIgYXJvdW5kXG4gICAgLy8gdGhlIHNjcm9sbGVyRWxlbSB0byBhdm9pZCB0aGUgZHJhZ2dhYmxlQmxvY2tFbGVtIGRpc2FwcGVhcmluZyB0b28gZWFybHkuXG4gICAgZG9jdW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG9uRG9jdW1lbnRNb3VzZU1vdmUpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG9uRG9jdW1lbnRNb3VzZU1vdmUpXG4gICAgfVxuICB9LCBbc2Nyb2xsZXJFbGVtLCBhbmNob3JFbGVtLCBlZGl0b3JdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKG1lbnVSZWYuY3VycmVudCAmJiBob3ZlcmVkRWxlbWVudD8ubm9kZSkge1xuICAgICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICAgIC8vIENoZWNrIGlmIGJsb2NrTm9kZSBpcyBhbiBlbXB0eSB0ZXh0IG5vZGVcbiAgICAgICAgbGV0IGlzRW1wdHlQYXJhZ3JhcGggPSB0cnVlXG4gICAgICAgIGlmIChcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudC5ub2RlLmdldFR5cGUoKSAhPT0gJ3BhcmFncmFwaCcgfHxcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudC5ub2RlLmdldFRleHRDb250ZW50KCkgIT09ICcnXG4gICAgICAgICkge1xuICAgICAgICAgIGlzRW1wdHlQYXJhZ3JhcGggPSBmYWxzZVxuICAgICAgICB9XG5cbiAgICAgICAgc2V0SGFuZGxlUG9zaXRpb24oXG4gICAgICAgICAgaG92ZXJlZEVsZW1lbnQ/LmVsZW0sXG4gICAgICAgICAgbWVudVJlZi5jdXJyZW50LFxuICAgICAgICAgIGFuY2hvckVsZW0sXG4gICAgICAgICAgaXNFbXB0eVBhcmFncmFwaCA/IFNQQUNFIDogU1BBQ0UgLSAyMCxcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICB9XG4gIH0sIFthbmNob3JFbGVtLCBob3ZlcmVkRWxlbWVudCwgZWRpdG9yXSlcblxuICBjb25zdCBoYW5kbGVBZGRDbGljayA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudCkgPT4ge1xuICAgICAgbGV0IGhvdmVyZWRFbGVtZW50VG9Vc2UgPSBob3ZlcmVkRWxlbWVudFxuICAgICAgaWYgKCFob3ZlcmVkRWxlbWVudFRvVXNlPy5ub2RlKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyAxLiBVcGRhdGUgaG92ZXJlZEVsZW1lbnQubm9kZSB0byBhIG5ldyBwYXJhZ3JhcGggbm9kZSBpZiB0aGUgaG92ZXJlZEVsZW1lbnQubm9kZSBpcyBub3QgYSBwYXJhZ3JhcGggbm9kZVxuICAgICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgIC8vIENoZWNrIGlmIGJsb2NrTm9kZSBpcyBhbiBlbXB0eSB0ZXh0IG5vZGVcbiAgICAgICAgbGV0IGlzRW1wdHlQYXJhZ3JhcGggPSB0cnVlXG4gICAgICAgIGlmIChcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUuZ2V0VHlwZSgpICE9PSAncGFyYWdyYXBoJyB8fFxuICAgICAgICAgIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZS5nZXRUZXh0Q29udGVudCgpICE9PSAnJ1xuICAgICAgICApIHtcbiAgICAgICAgICBpc0VtcHR5UGFyYWdyYXBoID0gZmFsc2VcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNFbXB0eVBhcmFncmFwaCkge1xuICAgICAgICAgIGNvbnN0IG5ld1BhcmFncmFwaCA9ICRjcmVhdGVQYXJhZ3JhcGhOb2RlKClcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUuaW5zZXJ0QWZ0ZXIobmV3UGFyYWdyYXBoKVxuXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlID0ge1xuICAgICAgICAgICAgICBlbGVtOiBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KG5ld1BhcmFncmFwaC5nZXRLZXkoKSksXG4gICAgICAgICAgICAgIG5vZGU6IG5ld1BhcmFncmFwaCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldEhvdmVyZWRFbGVtZW50KGhvdmVyZWRFbGVtZW50VG9Vc2UpXG4gICAgICAgICAgfSwgMClcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgLy8gMi4gRm9jdXMgb24gdGhlIG5ldyBwYXJhZ3JhcGggbm9kZVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGVkaXRvci51cGRhdGUoKCkgPT4ge1xuICAgICAgICAgIGVkaXRvci5mb2N1cygpXG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUgJiZcbiAgICAgICAgICAgICdzZWxlY3QnIGluIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZSAmJlxuICAgICAgICAgICAgdHlwZW9mIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZS5zZWxlY3QgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZS5zZWxlY3QoKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0sIDEpXG5cbiAgICAgIC8vIE1ha2Ugc3VyZSB0aGlzIGlzIGNhbGxlZCBBRlRFUiB0aGUgZm9jdXNpbmcgaGFzIGJlZW4gcHJvY2Vzc2VkIGJ5IHRoZSBicm93c2VyXG4gICAgICAvLyBPdGhlcndpc2UsIHRoaXMgd29uJ3Qgd29ya1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGVkaXRvci5kaXNwYXRjaENvbW1hbmQoRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCwge1xuICAgICAgICAgIG5vZGU6IGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZSBhcyBQYXJhZ3JhcGhOb2RlLFxuICAgICAgICB9KVxuICAgICAgfSwgMilcblxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICB9LFxuICAgIFtlZGl0b3IsIGhvdmVyZWRFbGVtZW50XSxcbiAgKVxuXG4gIHJldHVybiBjcmVhdGVQb3J0YWwoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzc05hbWU9XCJpY29uIGFkZC1ibG9jay1tZW51XCJcbiAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgaGFuZGxlQWRkQ2xpY2soZXZlbnQpXG4gICAgICAgIH19XG4gICAgICAgIHJlZj17bWVudVJlZn1cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtpc0VkaXRhYmxlID8gJ2ljb24nIDogJyd9IC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L1JlYWN0LkZyYWdtZW50PixcbiAgICBhbmNob3JFbGVtLFxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBBZGRCbG9ja0hhbmRsZVBsdWdpbih7XG4gIGFuY2hvckVsZW0gPSBkb2N1bWVudC5ib2R5LFxufToge1xuICBhbmNob3JFbGVtPzogSFRNTEVsZW1lbnRcbn0pOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG4gIHJldHVybiB1c2VBZGRCbG9ja0hhbmRsZShlZGl0b3IsIGFuY2hvckVsZW0sIGVkaXRvci5fZWRpdGFibGUpXG59XG4iXSwibmFtZXMiOlsidXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCIsIiRjcmVhdGVQYXJhZ3JhcGhOb2RlIiwiJGdldE5vZGVCeUtleSIsIlJlYWN0IiwidXNlQ2FsbGJhY2siLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImNyZWF0ZVBvcnRhbCIsImlzSFRNTEVsZW1lbnQiLCJQb2ludCIsIlJlY3QiLCJFTkFCTEVfU0xBU0hfTUVOVV9DT01NQU5EIiwiZ2V0Q29sbGFwc2VkTWFyZ2lucyIsImdldFRvcExldmVsTm9kZUtleXMiLCJpc09uSGFuZGxlRWxlbWVudCIsInNldEhhbmRsZVBvc2l0aW9uIiwiU1BBQ0UiLCJBRERfQkxPQ0tfTUVOVV9DTEFTU05BTUUiLCJEb3dud2FyZCIsIlVwd2FyZCIsIkluZGV0ZXJtaW5hdGUiLCJwcmV2SW5kZXgiLCJJbmZpbml0eSIsImdldEN1cnJlbnRJbmRleCIsImtleXNMZW5ndGgiLCJNYXRoIiwiZmxvb3IiLCJnZXRCbG9ja0VsZW1lbnQiLCJhbmNob3JFbGVtIiwiZWRpdG9yIiwiZXZlbnQiLCJ1c2VFZGdlQXNEZWZhdWx0IiwiaG9yaXpvbnRhbE9mZnNldCIsImFuY2hvckVsZW1lbnRSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidG9wTGV2ZWxOb2RlS2V5cyIsImJsb2NrRWxlbSIsImJsb2NrTm9kZSIsImdldEVkaXRvclN0YXRlIiwicmVhZCIsImZpcnN0Tm9kZSIsImxhc3ROb2RlIiwiZ2V0RWxlbWVudEJ5S2V5IiwibGVuZ3RoIiwiZmlyc3ROb2RlUmVjdCIsImxhc3ROb2RlUmVjdCIsInkiLCJ0b3AiLCJib3R0b20iLCJpbmRleCIsImRpcmVjdGlvbiIsImtleSIsImVsZW0iLCJwb2ludCIsIngiLCJkb21SZWN0IiwiZnJvbURPTSIsIm1hcmdpbkJvdHRvbSIsIm1hcmdpblRvcCIsInJlY3QiLCJnZW5lcmF0ZU5ld1JlY3QiLCJsZWZ0IiwicmlnaHQiLCJyZWFzb24iLCJpc09uQm90dG9tU2lkZSIsImlzT25Ub3BTaWRlIiwicmVzdWx0IiwiY29udGFpbnMiLCJ1c2VBZGRCbG9ja0hhbmRsZSIsImlzRWRpdGFibGUiLCJzY3JvbGxlckVsZW0iLCJwYXJlbnRFbGVtZW50IiwibWVudVJlZiIsImhvdmVyZWRFbGVtZW50Iiwic2V0SG92ZXJlZEVsZW1lbnQiLCJvbkRvY3VtZW50TW91c2VNb3ZlIiwidGFyZ2V0IiwiZGlzdGFuY2VGcm9tU2Nyb2xsZXJFbGVtIiwicGFnZVgiLCJwYWdlWSIsImhvcml6b250YWxCdWZmZXIiLCJ2ZXJ0aWNhbEJ1ZmZlciIsImFkanVzdGVkVG9wIiwid2luZG93Iiwic2Nyb2xsWSIsImFkanVzdGVkQm90dG9tIiwiX2VtcHR5QmxvY2tFbGVtIiwibm9kZSIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjdXJyZW50IiwiaXNFbXB0eVBhcmFncmFwaCIsImdldFR5cGUiLCJnZXRUZXh0Q29udGVudCIsImhhbmRsZUFkZENsaWNrIiwiaG92ZXJlZEVsZW1lbnRUb1VzZSIsInVwZGF0ZSIsIm5ld1BhcmFncmFwaCIsImluc2VydEFmdGVyIiwic2V0VGltZW91dCIsImdldEtleSIsImZvY3VzIiwic2VsZWN0IiwiZGlzcGF0Y2hDb21tYW5kIiwic3RvcFByb3BhZ2F0aW9uIiwicHJldmVudERlZmF1bHQiLCJGcmFnbWVudCIsImJ1dHRvbiIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJyZWYiLCJ0eXBlIiwiZGl2IiwiQWRkQmxvY2tIYW5kbGVQbHVnaW4iLCJib2R5IiwiX2VkaXRhYmxlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUdBLFNBQVNBLHlCQUF5QixRQUFRLHdDQUF1QztBQUNqRixTQUFTQyxvQkFBb0IsUUFBUSxVQUFTO0FBQzlDLFNBQVNDLGFBQWEsUUFBOEMsVUFBUztBQUM3RSxZQUFZQyxXQUFXLFFBQU87QUFDOUIsU0FBU0MsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLFFBQU87QUFDaEUsU0FBU0MsWUFBWSxRQUFRLFlBQVc7QUFFeEMsU0FBU0MsYUFBYSxRQUFRLHVCQUFzQjtBQUNwRCxTQUFTQyxLQUFLLFFBQVEsdUJBQXNCO0FBQzVDLFNBQVNDLElBQUksUUFBUSxzQkFBcUI7QUFDMUMsU0FBU0MseUJBQXlCLFFBQVEsNkNBQTRDO0FBQ3RGLFNBQVNDLG1CQUFtQixRQUFRLCtCQUE4QjtBQUNsRSxTQUFTQyxtQkFBbUIsUUFBUSwrQkFBOEI7QUFDbEUs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
235
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy9BZGRCbG9ja0hhbmRsZVBsdWdpbi9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgdHlwZSB7IFBhcmFncmFwaE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dC5qcydcbmltcG9ydCB7ICRjcmVhdGVQYXJhZ3JhcGhOb2RlIH0gZnJvbSAnbGV4aWNhbCdcbmltcG9ydCB7ICRnZXROb2RlQnlLZXksIHR5cGUgTGV4aWNhbEVkaXRvciwgdHlwZSBMZXhpY2FsTm9kZSB9IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcblxuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2d1YXJkLmpzJ1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9wb2ludC5qcydcbmltcG9ydCB7IFJlY3QgfSBmcm9tICcuLi8uLi8uLi91dGlscy9yZWN0LmpzJ1xuaW1wb3J0IHsgRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCB9IGZyb20gJy4uLy4uL1NsYXNoTWVudS9MZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbi9pbmRleC5qcydcbmltcG9ydCB7IGdldENvbGxhcHNlZE1hcmdpbnMgfSBmcm9tICcuLi91dGlscy9nZXRDb2xsYXBzZWRNYXJnaW5zLmpzJ1xuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxOb2RlS2V5cyB9IGZyb20gJy4uL3V0aWxzL2dldFRvcExldmVsTm9kZUtleXMuanMnXG5pbXBvcnQgeyBpc09uSGFuZGxlRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL2lzT25IYW5kbGVFbGVtZW50LmpzJ1xuaW1wb3J0IHsgc2V0SGFuZGxlUG9zaXRpb24gfSBmcm9tICcuLi91dGlscy9zZXRIYW5kbGVQb3NpdGlvbi5qcydcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBTUEFDRSA9IC0yNFxuY29uc3QgQUREX0JMT0NLX01FTlVfQ0xBU1NOQU1FID0gJ2FkZC1ibG9jay1tZW51J1xuXG5jb25zdCBEb3dud2FyZCA9IDFcbmNvbnN0IFVwd2FyZCA9IC0xXG5jb25zdCBJbmRldGVybWluYXRlID0gMFxuXG5sZXQgcHJldkluZGV4ID0gSW5maW5pdHlcblxuZnVuY3Rpb24gZ2V0Q3VycmVudEluZGV4KGtleXNMZW5ndGg6IG51bWJlcik6IG51bWJlciB7XG4gIGlmIChrZXlzTGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIEluZmluaXR5XG4gIH1cbiAgaWYgKHByZXZJbmRleCA+PSAwICYmIHByZXZJbmRleCA8IGtleXNMZW5ndGgpIHtcbiAgICByZXR1cm4gcHJldkluZGV4XG4gIH1cblxuICByZXR1cm4gTWF0aC5mbG9vcihrZXlzTGVuZ3RoIC8gMilcbn1cblxuZnVuY3Rpb24gZ2V0QmxvY2tFbGVtZW50KFxuICBhbmNob3JFbGVtOiBIVE1MRWxlbWVudCxcbiAgZWRpdG9yOiBMZXhpY2FsRWRpdG9yLFxuICBldmVudDogTW91c2VFdmVudCxcbiAgdXNlRWRnZUFzRGVmYXVsdCA9IGZhbHNlLFxuICBob3Jpem9udGFsT2Zmc2V0ID0gMCxcbik6IHtcbiAgYmxvY2tFbGVtOiBIVE1MRWxlbWVudCB8IG51bGxcbiAgYmxvY2tOb2RlOiBMZXhpY2FsTm9kZSB8IG51bGxcbn0ge1xuICBjb25zdCBhbmNob3JFbGVtZW50UmVjdCA9IGFuY2hvckVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgY29uc3QgdG9wTGV2ZWxOb2RlS2V5cyA9IGdldFRvcExldmVsTm9kZUtleXMoZWRpdG9yKVxuXG4gIGxldCBibG9ja0VsZW06IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGxcbiAgbGV0IGJsb2NrTm9kZTogTGV4aWNhbE5vZGUgfCBudWxsID0gbnVsbFxuXG4gIC8vIFJldHVybiBudWxsIGlmIG1hdGNoaW5nIGJsb2NrIGVsZW1lbnQgaXMgdGhlIGZpcnN0IG9yIGxhc3Qgbm9kZVxuICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICBpZiAodXNlRWRnZUFzRGVmYXVsdCkge1xuICAgICAgY29uc3QgW2ZpcnN0Tm9kZSwgbGFzdE5vZGVdID0gW1xuICAgICAgICBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KHRvcExldmVsTm9kZUtleXNbMF0pLFxuICAgICAgICBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KHRvcExldmVsTm9kZUtleXNbdG9wTGV2ZWxOb2RlS2V5cy5sZW5ndGggLSAxXSksXG4gICAgICBdXG5cbiAgICAgIGNvbnN0IFtmaXJzdE5vZGVSZWN0LCBsYXN0Tm9kZVJlY3RdID0gW1xuICAgICAgICBmaXJzdE5vZGU/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICBsYXN0Tm9kZT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgICBdXG5cbiAgICAgIGlmIChmaXJzdE5vZGVSZWN0ICYmIGxhc3ROb2RlUmVjdCkge1xuICAgICAgICBpZiAoZXZlbnQueSA8IGZpcnN0Tm9kZVJlY3QudG9wKSB7XG4gICAgICAgICAgYmxvY2tFbGVtID0gZmlyc3ROb2RlXG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQueSA+IGxhc3ROb2RlUmVjdC5ib3R0b20pIHtcbiAgICAgICAgICBibG9ja0VsZW0gPSBsYXN0Tm9kZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGJsb2NrRWxlbSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBibG9ja0VsZW06IG51bGwsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmluZCBtYXRjaGluZyBibG9jayBlbGVtZW50XG4gICAgbGV0IGluZGV4ID0gZ2V0Q3VycmVudEluZGV4KHRvcExldmVsTm9kZUtleXMubGVuZ3RoKVxuICAgIGxldCBkaXJlY3Rpb24gPSBJbmRldGVybWluYXRlXG5cbiAgICB3aGlsZSAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRvcExldmVsTm9kZUtleXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBrZXkgPSB0b3BMZXZlbE5vZGVLZXlzW2luZGV4XVxuICAgICAgY29uc3QgZWxlbSA9IGVkaXRvci5nZXRFbGVtZW50QnlLZXkoa2V5KVxuICAgICAgaWYgKGVsZW0gPT09IG51bGwpIHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBvaW50ID0gbmV3IFBvaW50KGV2ZW50LnggKyBob3Jpem9udGFsT2Zmc2V0LCBldmVudC55KVxuICAgICAgY29uc3QgZG9tUmVjdCA9IFJlY3QuZnJvbURPTShlbGVtKVxuICAgICAgY29uc3QgeyBtYXJnaW5Cb3R0b20sIG1hcmdpblRvcCB9ID0gZ2V0Q29sbGFwc2VkTWFyZ2lucyhlbGVtKVxuXG4gICAgICBjb25zdCByZWN0ID0gZG9tUmVjdC5nZW5lcmF0ZU5ld1JlY3Qoe1xuICAgICAgICBib3R0b206IGRvbVJlY3QuYm90dG9tICsgbWFyZ2luQm90dG9tLFxuICAgICAgICBsZWZ0OiBhbmNob3JFbGVtZW50UmVjdC5sZWZ0LFxuICAgICAgICByaWdodDogYW5jaG9yRWxlbWVudFJlY3QucmlnaHQsXG4gICAgICAgIHRvcDogZG9tUmVjdC50b3AgLSBtYXJnaW5Ub3AsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCB7XG4gICAgICAgIHJlYXNvbjogeyBpc09uQm90dG9tU2lkZSwgaXNPblRvcFNpZGUgfSxcbiAgICAgICAgcmVzdWx0LFxuICAgICAgfSA9IHJlY3QuY29udGFpbnMocG9pbnQpXG5cbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgYmxvY2tFbGVtID0gZWxlbVxuICAgICAgICBibG9ja05vZGUgPSAkZ2V0Tm9kZUJ5S2V5KGtleSlcbiAgICAgICAgcHJldkluZGV4ID0gaW5kZXhcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gSW5kZXRlcm1pbmF0ZSkge1xuICAgICAgICBpZiAoaXNPblRvcFNpZGUpIHtcbiAgICAgICAgICBkaXJlY3Rpb24gPSBVcHdhcmRcbiAgICAgICAgfSBlbHNlIGlmIChpc09uQm90dG9tU2lkZSkge1xuICAgICAgICAgIGRpcmVjdGlvbiA9IERvd253YXJkXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gc3RvcCBzZWFyY2ggYmxvY2sgZWxlbWVudFxuICAgICAgICAgIGRpcmVjdGlvbiA9IEluZmluaXR5XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaW5kZXggKz0gZGlyZWN0aW9uXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiB7XG4gICAgYmxvY2tFbGVtLFxuICAgIGJsb2NrTm9kZSxcbiAgfVxufVxuXG5mdW5jdGlvbiB1c2VBZGRCbG9ja0hhbmRsZShcbiAgZWRpdG9yOiBMZXhpY2FsRWRpdG9yLFxuICBhbmNob3JFbGVtOiBIVE1MRWxlbWVudCxcbiAgaXNFZGl0YWJsZTogYm9vbGVhbixcbik6IEpTWC5FbGVtZW50IHtcbiAgY29uc3Qgc2Nyb2xsZXJFbGVtID0gYW5jaG9yRWxlbS5wYXJlbnRFbGVtZW50XG5cbiAgY29uc3QgbWVudVJlZiA9IHVzZVJlZjxIVE1MQnV0dG9uRWxlbWVudD4obnVsbClcbiAgY29uc3QgW2hvdmVyZWRFbGVtZW50LCBzZXRIb3ZlcmVkRWxlbWVudF0gPSB1c2VTdGF0ZTx7XG4gICAgZWxlbTogSFRNTEVsZW1lbnRcbiAgICBub2RlOiBMZXhpY2FsTm9kZVxuICB9IHwgbnVsbD4obnVsbClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGZ1bmN0aW9uIG9uRG9jdW1lbnRNb3VzZU1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldFxuICAgICAgaWYgKCFpc0hUTUxFbGVtZW50KHRhcmdldCkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGxldCBkaXN0YW5jZUZyb21TY3JvbGxlckVsZW0gPSAwXG4gICAgICAvLyBDYWxjdWxhdGUgZGlzdGFuY2UgYmV0d2VlbiBzY3JvbGxlckVsZW0gYW5kIHRhcmdldCBpZiB0YXJnZXQgaXMgbm90IGluIHNjcm9sbGVyRWxlbVxuICAgICAgaWYgKHNjcm9sbGVyRWxlbSAmJiAhc2Nyb2xsZXJFbGVtLmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgICAgY29uc3QgeyBib3R0b20sIGxlZnQsIHJpZ2h0LCB0b3AgfSA9IHNjcm9sbGVyRWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgICBjb25zdCB7IHBhZ2VYLCBwYWdlWSB9ID0gZXZlbnRcbiAgICAgICAgY29uc3QgaG9yaXpvbnRhbEJ1ZmZlciA9IDUwXG4gICAgICAgIGNvbnN0IHZlcnRpY2FsQnVmZmVyID0gMjVcbiAgICAgICAgY29uc3QgYWRqdXN0ZWRUb3AgPSB0b3AgKyB3aW5kb3cuc2Nyb2xsWVxuICAgICAgICBjb25zdCBhZGp1c3RlZEJvdHRvbSA9IGJvdHRvbSArIHdpbmRvdy5zY3JvbGxZXG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHBhZ2VZIDwgYWRqdXN0ZWRUb3AgLSB2ZXJ0aWNhbEJ1ZmZlciB8fFxuICAgICAgICAgIHBhZ2VZID4gYWRqdXN0ZWRCb3R0b20gKyB2ZXJ0aWNhbEJ1ZmZlciB8fFxuICAgICAgICAgIHBhZ2VYIDwgbGVmdCAtIGhvcml6b250YWxCdWZmZXIgfHxcbiAgICAgICAgICBwYWdlWCA+IHJpZ2h0ICsgaG9yaXpvbnRhbEJ1ZmZlclxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRIb3ZlcmVkRWxlbWVudChudWxsKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhpcyBpcyB1c2VkIHRvIGFsbG93IHRoZSBfZW1wdHlCbG9ja0VsZW0gdG8gYmUgZm91bmQgd2hlbiB0aGUgbW91c2UgaXMgaW4gdGhlXG4gICAgICAgIC8vIGJ1ZmZlciB6b25lIGFyb3VuZCB0aGUgc2Nyb2xsZXJFbGVtLlxuICAgICAgICBpZiAocGFnZVggPCBsZWZ0IHx8IHBhZ2VYID4gcmlnaHQpIHtcbiAgICAgICAgICBkaXN0YW5jZUZyb21TY3JvbGxlckVsZW0gPSBwYWdlWCA8IGxlZnQgPyBwYWdlWCAtIGxlZnQgOiBwYWdlWCAtIHJpZ2h0XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGlzT25IYW5kbGVFbGVtZW50KHRhcmdldCwgQUREX0JMT0NLX01FTlVfQ0xBU1NOQU1FKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNvbnN0IHsgYmxvY2tFbGVtOiBfZW1wdHlCbG9ja0VsZW0sIGJsb2NrTm9kZSB9ID0gZ2V0QmxvY2tFbGVtZW50KFxuICAgICAgICBhbmNob3JFbGVtLFxuICAgICAgICBlZGl0b3IsXG4gICAgICAgIGV2ZW50LFxuICAgICAgICBmYWxzZSxcbiAgICAgICAgLWRpc3RhbmNlRnJvbVNjcm9sbGVyRWxlbSxcbiAgICAgIClcbiAgICAgIGlmICghX2VtcHR5QmxvY2tFbGVtKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgc2V0SG92ZXJlZEVsZW1lbnQoe1xuICAgICAgICBlbGVtOiBfZW1wdHlCbG9ja0VsZW0sXG4gICAgICAgIG5vZGU6IGJsb2NrTm9kZSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gU2luY2UgdGhlIGRyYWdnYWJsZUJsb2NrRWxlbSBpcyBvdXRzaWRlIHRoZSBhY3R1YWwgZWRpdG9yLCB3ZSBuZWVkIHRvIGxpc3RlbiB0byB0aGUgZG9jdW1lbnRcbiAgICAvLyB0byBiZSBhYmxlIHRvIGRldGVjdCB3aGVuIHRoZSBtb3VzZSBpcyBvdXRzaWRlIHRoZSBlZGl0b3IgYW5kIHJlc3BlY3QgYSBidWZmZXIgYXJvdW5kXG4gICAgLy8gdGhlIHNjcm9sbGVyRWxlbSB0byBhdm9pZCB0aGUgZHJhZ2dhYmxlQmxvY2tFbGVtIGRpc2FwcGVhcmluZyB0b28gZWFybHkuXG4gICAgZG9jdW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG9uRG9jdW1lbnRNb3VzZU1vdmUpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG9uRG9jdW1lbnRNb3VzZU1vdmUpXG4gICAgfVxuICB9LCBbc2Nyb2xsZXJFbGVtLCBhbmNob3JFbGVtLCBlZGl0b3JdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKG1lbnVSZWYuY3VycmVudCAmJiBob3ZlcmVkRWxlbWVudD8ubm9kZSkge1xuICAgICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICAgIC8vIENoZWNrIGlmIGJsb2NrTm9kZSBpcyBhbiBlbXB0eSB0ZXh0IG5vZGVcbiAgICAgICAgbGV0IGlzRW1wdHlQYXJhZ3JhcGggPSB0cnVlXG4gICAgICAgIGlmIChcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudC5ub2RlLmdldFR5cGUoKSAhPT0gJ3BhcmFncmFwaCcgfHxcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudC5ub2RlLmdldFRleHRDb250ZW50KCkgIT09ICcnXG4gICAgICAgICkge1xuICAgICAgICAgIGlzRW1wdHlQYXJhZ3JhcGggPSBmYWxzZVxuICAgICAgICB9XG5cbiAgICAgICAgc2V0SGFuZGxlUG9zaXRpb24oXG4gICAgICAgICAgaG92ZXJlZEVsZW1lbnQ/LmVsZW0sXG4gICAgICAgICAgbWVudVJlZi5jdXJyZW50LFxuICAgICAgICAgIGFuY2hvckVsZW0sXG4gICAgICAgICAgaXNFbXB0eVBhcmFncmFwaCA/IFNQQUNFIDogU1BBQ0UgLSAyMCxcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICB9XG4gIH0sIFthbmNob3JFbGVtLCBob3ZlcmVkRWxlbWVudCwgZWRpdG9yXSlcblxuICBjb25zdCBoYW5kbGVBZGRDbGljayA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudCkgPT4ge1xuICAgICAgbGV0IGhvdmVyZWRFbGVtZW50VG9Vc2UgPSBob3ZlcmVkRWxlbWVudFxuICAgICAgaWYgKCFob3ZlcmVkRWxlbWVudFRvVXNlPy5ub2RlKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyAxLiBVcGRhdGUgaG92ZXJlZEVsZW1lbnQubm9kZSB0byBhIG5ldyBwYXJhZ3JhcGggbm9kZSBpZiB0aGUgaG92ZXJlZEVsZW1lbnQubm9kZSBpcyBub3QgYSBwYXJhZ3JhcGggbm9kZVxuICAgICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgIC8vIENoZWNrIGlmIGJsb2NrTm9kZSBpcyBhbiBlbXB0eSB0ZXh0IG5vZGVcbiAgICAgICAgbGV0IGlzRW1wdHlQYXJhZ3JhcGggPSB0cnVlXG4gICAgICAgIGlmIChcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUuZ2V0VHlwZSgpICE9PSAncGFyYWdyYXBoJyB8fFxuICAgICAgICAgIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZS5nZXRUZXh0Q29udGVudCgpICE9PSAnJ1xuICAgICAgICApIHtcbiAgICAgICAgICBpc0VtcHR5UGFyYWdyYXBoID0gZmFsc2VcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNFbXB0eVBhcmFncmFwaCkge1xuICAgICAgICAgIGNvbnN0IG5ld1BhcmFncmFwaCA9ICRjcmVhdGVQYXJhZ3JhcGhOb2RlKClcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUuaW5zZXJ0QWZ0ZXIobmV3UGFyYWdyYXBoKVxuXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlID0ge1xuICAgICAgICAgICAgICBlbGVtOiBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KG5ld1BhcmFncmFwaC5nZXRLZXkoKSksXG4gICAgICAgICAgICAgIG5vZGU6IG5ld1BhcmFncmFwaCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldEhvdmVyZWRFbGVtZW50KGhvdmVyZWRFbGVtZW50VG9Vc2UpXG4gICAgICAgICAgfSwgMClcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgLy8gMi4gRm9jdXMgb24gdGhlIG5ldyBwYXJhZ3JhcGggbm9kZVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGVkaXRvci51cGRhdGUoKCkgPT4ge1xuICAgICAgICAgIGVkaXRvci5mb2N1cygpXG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUgJiZcbiAgICAgICAgICAgICdzZWxlY3QnIGluIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZSAmJlxuICAgICAgICAgICAgdHlwZW9mIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZS5zZWxlY3QgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZS5zZWxlY3QoKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0sIDEpXG5cbiAgICAgIC8vIE1ha2Ugc3VyZSB0aGlzIGlzIGNhbGxlZCBBRlRFUiB0aGUgZm9jdXNpbmcgaGFzIGJlZW4gcHJvY2Vzc2VkIGJ5IHRoZSBicm93c2VyXG4gICAgICAvLyBPdGhlcndpc2UsIHRoaXMgd29uJ3Qgd29ya1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGVkaXRvci5kaXNwYXRjaENvbW1hbmQoRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCwge1xuICAgICAgICAgIG5vZGU6IGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZSBhcyBQYXJhZ3JhcGhOb2RlLFxuICAgICAgICB9KVxuICAgICAgfSwgMilcblxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICB9LFxuICAgIFtlZGl0b3IsIGhvdmVyZWRFbGVtZW50XSxcbiAgKVxuXG4gIHJldHVybiBjcmVhdGVQb3J0YWwoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzc05hbWU9XCJpY29uIGFkZC1ibG9jay1tZW51XCJcbiAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgaGFuZGxlQWRkQ2xpY2soZXZlbnQpXG4gICAgICAgIH19XG4gICAgICAgIHJlZj17bWVudVJlZn1cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtpc0VkaXRhYmxlID8gJ2ljb24nIDogJyd9IC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L1JlYWN0LkZyYWdtZW50PixcbiAgICBhbmNob3JFbGVtLFxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBBZGRCbG9ja0hhbmRsZVBsdWdpbih7XG4gIGFuY2hvckVsZW0gPSBkb2N1bWVudC5ib2R5LFxufToge1xuICBhbmNob3JFbGVtPzogSFRNTEVsZW1lbnRcbn0pOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG4gIHJldHVybiB1c2VBZGRCbG9ja0hhbmRsZShlZGl0b3IsIGFuY2hvckVsZW0sIGVkaXRvci5fZWRpdGFibGUpXG59XG4iXSwibmFtZXMiOlsidXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCIsIiRjcmVhdGVQYXJhZ3JhcGhOb2RlIiwiJGdldE5vZGVCeUtleSIsIlJlYWN0IiwidXNlQ2FsbGJhY2siLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImNyZWF0ZVBvcnRhbCIsImlzSFRNTEVsZW1lbnQiLCJQb2ludCIsIlJlY3QiLCJFTkFCTEVfU0xBU0hfTUVOVV9DT01NQU5EIiwiZ2V0Q29sbGFwc2VkTWFyZ2lucyIsImdldFRvcExldmVsTm9kZUtleXMiLCJpc09uSGFuZGxlRWxlbWVudCIsInNldEhhbmRsZVBvc2l0aW9uIiwiU1BBQ0UiLCJBRERfQkxPQ0tfTUVOVV9DTEFTU05BTUUiLCJEb3dud2FyZCIsIlVwd2FyZCIsIkluZGV0ZXJtaW5hdGUiLCJwcmV2SW5kZXgiLCJJbmZpbml0eSIsImdldEN1cnJlbnRJbmRleCIsImtleXNMZW5ndGgiLCJNYXRoIiwiZmxvb3IiLCJnZXRCbG9ja0VsZW1lbnQiLCJhbmNob3JFbGVtIiwiZWRpdG9yIiwiZXZlbnQiLCJ1c2VFZGdlQXNEZWZhdWx0IiwiaG9yaXpvbnRhbE9mZnNldCIsImFuY2hvckVsZW1lbnRSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidG9wTGV2ZWxOb2RlS2V5cyIsImJsb2NrRWxlbSIsImJsb2NrTm9kZSIsImdldEVkaXRvclN0YXRlIiwicmVhZCIsImZpcnN0Tm9kZSIsImxhc3ROb2RlIiwiZ2V0RWxlbWVudEJ5S2V5IiwibGVuZ3RoIiwiZmlyc3ROb2RlUmVjdCIsImxhc3ROb2RlUmVjdCIsInkiLCJ0b3AiLCJib3R0b20iLCJpbmRleCIsImRpcmVjdGlvbiIsImtleSIsImVsZW0iLCJwb2ludCIsIngiLCJkb21SZWN0IiwiZnJvbURPTSIsIm1hcmdpbkJvdHRvbSIsIm1hcmdpblRvcCIsInJlY3QiLCJnZW5lcmF0ZU5ld1JlY3QiLCJsZWZ0IiwicmlnaHQiLCJyZWFzb24iLCJpc09uQm90dG9tU2lkZSIsImlzT25Ub3BTaWRlIiwicmVzdWx0IiwiY29udGFpbnMiLCJ1c2VBZGRCbG9ja0hhbmRsZSIsImlzRWRpdGFibGUiLCJzY3JvbGxlckVsZW0iLCJwYXJlbnRFbGVtZW50IiwibWVudVJlZiIsImhvdmVyZWRFbGVtZW50Iiwic2V0SG92ZXJlZEVsZW1lbnQiLCJvbkRvY3VtZW50TW91c2VNb3ZlIiwidGFyZ2V0IiwiZGlzdGFuY2VGcm9tU2Nyb2xsZXJFbGVtIiwicGFnZVgiLCJwYWdlWSIsImhvcml6b250YWxCdWZmZXIiLCJ2ZXJ0aWNhbEJ1ZmZlciIsImFkanVzdGVkVG9wIiwid2luZG93Iiwic2Nyb2xsWSIsImFkanVzdGVkQm90dG9tIiwiX2VtcHR5QmxvY2tFbGVtIiwibm9kZSIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjdXJyZW50IiwiaXNFbXB0eVBhcmFncmFwaCIsImdldFR5cGUiLCJnZXRUZXh0Q29udGVudCIsImhhbmRsZUFkZENsaWNrIiwiaG92ZXJlZEVsZW1lbnRUb1VzZSIsInVwZGF0ZSIsIm5ld1BhcmFncmFwaCIsImluc2VydEFmdGVyIiwic2V0VGltZW91dCIsImdldEtleSIsImZvY3VzIiwic2VsZWN0IiwiZGlzcGF0Y2hDb21tYW5kIiwic3RvcFByb3BhZ2F0aW9uIiwicHJldmVudERlZmF1bHQiLCJGcmFnbWVudCIsImJ1dHRvbiIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJyZWYiLCJ0eXBlIiwiZGl2IiwiQWRkQmxvY2tIYW5kbGVQbHVnaW4iLCJib2R5IiwiX2VkaXRhYmxlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUdBLFNBQVNBLHlCQUF5QixRQUFRLDJDQUEwQztBQUNwRixTQUFTQyxvQkFBb0IsUUFBUSxVQUFTO0FBQzlDLFNBQVNDLGFBQWEsUUFBOEMsVUFBUztBQUM3RSxZQUFZQyxXQUFXLFFBQU87QUFDOUIsU0FBU0MsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLFFBQU87QUFDaEUsU0FBU0MsWUFBWSxRQUFRLFlBQVc7QUFFeEMsU0FBU0MsYUFBYSxRQUFRLDBCQUF5QjtBQUN2RCxTQUFTQyxLQUFLLFFBQVEsMEJBQXlCO0FBQy9DLFNBQVNDLElBQUksUUFBUSx5QkFBd0I7QUFDN0MsU0FBU0MseUJBQXlCLFFBQVEsc0RBQXFEO0FBQy9GLFNBQVNDLG1CQUFtQixRQUFRLGtDQUFpQztBQUNyRSxTQUFTQyxtQkFBbUIsUUFBUSxrQ0FBaUM7QUFDckUsU0FBU0MsaUJBQWlCLFFBQVEsZ0NBQStCO0FBQ2pFLFNBQVNDLGlCQUFpQixRQUFRLGdDQUErQjtBQUNqRSxPQUFPLGVBQWM7QUFFckIsTUFBTUMsUUFBUSxDQUFDO0FBQ2YsTUFBTUMsMkJBQTJCO0FBRWpDLE1BQU1DLFdBQVc7QUFDakIsTUFBTUMsU0FBUyxDQUFDO0FBQ2hCLE1BQU1DLGdCQUFnQjtBQUV0QixJQUFJQyxZQUFZQztBQUVoQixTQUFTQyxnQkFBZ0JDLFVBQWtCO0lBQ3pDLElBQUlBLGVBQWUsR0FBRztRQUNwQixPQUFPRjtJQUNUO0lBQ0EsSUFBSUQsYUFBYSxLQUFLQSxZQUFZRyxZQUFZO1FBQzVDLE9BQU9IO0lBQ1Q7SUFFQSxPQUFPSSxLQUFLQyxLQUFLLENBQUNGLGFBQWE7QUFDakM7QUFFQSxTQUFTRyxnQkFDUEMsVUFBdUIsRUFDdkJDLE1BQXFCLEVBQ3JCQyxLQUFpQixFQUNqQkMsbUJBQW1CLEtBQUssRUFDeEJDLG1CQUFtQixDQUFDO0lBS3BCLE1BQU1DLG9CQUFvQkwsV0FBV00scUJBQXFCO0lBQzFELE1BQU1DLG1CQUFtQnRCLG9CQUFvQmdCO0lBRTdDLElBQUlPLFlBQWdDO0lBQ3BDLElBQUlDLFlBQWdDO0lBRXBDLGtFQUFrRTtJQUNsRVIsT0FBT1MsY0FBYyxHQUFHQyxJQUFJLENBQUM7UUFDM0IsSUFBSVIsa0JBQWtCO1lBQ3BCLE1BQU0sQ0FBQ1MsV0FBV0MsU0FBUyxHQUFHO2dCQUM1QlosT0FBT2EsZUFBZSxDQUFDUCxnQkFBZ0IsQ0FBQyxFQUFFO2dCQUMxQ04sT0FBT2EsZUFBZSxDQUFDUCxnQkFBZ0IsQ0FBQ0EsaUJBQWlCUSxNQUFNLEdBQUcsRUFBRTthQUNyRTtZQUVELE1BQU0sQ0FBQ0MsZUFBZUMsYUFBYSxHQUFHO2dCQUNwQ0wsV0FBV047Z0JBQ1hPLFVBQVVQO2FBQ1g7WUFFRCxJQUFJVSxpQkFBaUJDLGNBQWM7Z0JBQ2pDLElBQUlmLE1BQU1nQixDQUFDLEdBQUdGLGNBQWNHLEdBQUcsRUFBRTtvQkFDL0JYLFlBQVlJO2dCQUNkLE9BQU8sSUFBSVYsTUFBTWdCLENBQUMsR0FBR0QsYUFBYUcsTUFBTSxFQUFFO29CQUN4Q1osWUFBWUs7Z0JBQ2Q7Z0JBRUEsSUFBSUwsV0FBVztvQkFDYixPQUFPO3dCQUNMQSxXQUFXO29CQUNiO2dCQUNGO1lBQ0Y7UUFDRjtRQUVBLDhCQUE4QjtRQUM5QixJQUFJYSxRQUFRMUIsZ0JBQWdCWSxpQkFBaUJRLE1BQU07UUFDbkQsSUFBSU8sWUFBWTlCO1FBRWhCLE1BQU82QixTQUFTLEtBQUtBLFFBQVFkLGlCQUFpQlEsTUFBTSxDQUFFO1lBQ3BELE1BQU1RLE1BQU1oQixnQkFBZ0IsQ0FBQ2MsTUFBTTtZQUNuQyxNQUFNRyxPQUFPdkIsT0FBT2EsZUFBZSxDQUFDUztZQUNwQyxJQUFJQyxTQUFTLE1BQU07Z0JBQ2pCO1lBQ0Y7WUFDQSxNQUFNQyxRQUFRLElBQUk1QyxNQUFNcUIsTUFBTXdCLENBQUMsR0FBR3RCLGtCQUFrQkYsTUFBTWdCLENBQUM7WUFDM0QsTUFBTVMsVUFBVTdDLEtBQUs4QyxPQUFPLENBQUNKO1lBQzdCLE1BQU0sRUFBRUssWUFBWSxFQUFFQyxTQUFTLEVBQUUsR0FBRzlDLG9CQUFvQndDO1lBRXhELE1BQU1PLE9BQU9KLFFBQVFLLGVBQWUsQ0FBQztnQkFDbkNaLFFBQVFPLFFBQVFQLE1BQU0sR0FBR1M7Z0JBQ3pCSSxNQUFNNUIsa0JBQWtCNEIsSUFBSTtnQkFDNUJDLE9BQU83QixrQkFBa0I2QixLQUFLO2dCQUM5QmYsS0FBS1EsUUFBUVIsR0FBRyxHQUFHVztZQUNyQjtZQUVBLE1BQU0sRUFDSkssUUFBUSxFQUFFQyxjQUFjLEVBQUVDLFdBQVcsRUFBRSxFQUN2Q0MsTUFBTSxFQUNQLEdBQUdQLEtBQUtRLFFBQVEsQ0FBQ2Q7WUFFbEIsSUFBSWEsUUFBUTtnQkFDVjlCLFlBQVlnQjtnQkFDWmYsWUFBWXBDLGNBQWNrRDtnQkFDMUI5QixZQUFZNEI7Z0JBQ1o7WUFDRjtZQUVBLElBQUlDLGNBQWM5QixlQUFlO2dCQUMvQixJQUFJNkMsYUFBYTtvQkFDZmYsWUFBWS9CO2dCQUNkLE9BQU8sSUFBSTZDLGdCQUFnQjtvQkFDekJkLFlBQVloQztnQkFDZCxPQUFPO29CQUNMLDRCQUE0QjtvQkFDNUJnQyxZQUFZNUI7Z0JBQ2Q7WUFDRjtZQUVBMkIsU0FBU0M7UUFDWDtJQUNGO0lBRUEsT0FBTztRQUNMZDtRQUNBQztJQUNGO0FBQ0Y7QUFFQSxTQUFTK0Isa0JBQ1B2QyxNQUFxQixFQUNyQkQsVUFBdUIsRUFDdkJ5QyxVQUFtQjtJQUVuQixNQUFNQyxlQUFlMUMsV0FBVzJDLGFBQWE7SUFFN0MsTUFBTUMsVUFBVW5FLE9BQTBCO0lBQzFDLE1BQU0sQ0FBQ29FLGdCQUFnQkMsa0JBQWtCLEdBQUdwRSxTQUdsQztJQUVWRixVQUFVO1FBQ1IsU0FBU3VFLG9CQUFvQjdDLEtBQWlCO1lBQzVDLE1BQU04QyxTQUFTOUMsTUFBTThDLE1BQU07WUFDM0IsSUFBSSxDQUFDcEUsY0FBY29FLFNBQVM7Z0JBQzFCO1lBQ0Y7WUFFQSxJQUFJQywyQkFBMkI7WUFDL0Isc0ZBQXNGO1lBQ3RGLElBQUlQLGdCQUFnQixDQUFDQSxhQUFhSCxRQUFRLENBQUNTLFNBQVM7Z0JBQ2xELE1BQU0sRUFBRTVCLE1BQU0sRUFBRWEsSUFBSSxFQUFFQyxLQUFLLEVBQUVmLEdBQUcsRUFBRSxHQUFHdUIsYUFBYXBDLHFCQUFxQjtnQkFDdkUsTUFBTSxFQUFFNEMsS0FBSyxFQUFFQyxLQUFLLEVBQUUsR0FBR2pEO2dCQUN6QixNQUFNa0QsbUJBQW1CO2dCQUN6QixNQUFNQyxpQkFBaUI7Z0JBQ3ZCLE1BQU1DLGNBQWNuQyxNQUFNb0MsT0FBT0MsT0FBTztnQkFDeEMsTUFBTUMsaUJBQWlCckMsU0FBU21DLE9BQU9DLE9BQU87Z0JBRTlDLElBQ0VMLFFBQVFHLGNBQWNELGtCQUN0QkYsUUFBUU0saUJBQWlCSixrQkFDekJILFFBQVFqQixPQUFPbUIsb0JBQ2ZGLFFBQVFoQixRQUFRa0Isa0JBQ2hCO29CQUNBTixrQkFBa0I7b0JBQ2xCO2dCQUNGO2dCQUVBLGlGQUFpRjtnQkFDakYsdUNBQXVDO2dCQUN2QyxJQUFJSSxRQUFRakIsUUFBUWlCLFFBQVFoQixPQUFPO29CQUNqQ2UsMkJBQTJCQyxRQUFRakIsT0FBT2lCLFFBQVFqQixPQUFPaUIsUUFBUWhCO2dCQUNuRTtZQUNGO1lBRUEsSUFBSWhELGtCQUFrQjhELFFBQVEzRCwyQkFBMkI7Z0JBQ3ZEO1lBQ0Y7WUFDQSxNQUFNLEVBQUVtQixXQUFXa0QsZUFBZSxFQUFFakQsU0FBUyxFQUFFLEdBQUdWLGdCQUNoREMsWUFDQUMsUUFDQUMsT0FDQSxPQUNBLENBQUMrQztZQUVILElBQUksQ0FBQ1MsaUJBQWlCO2dCQUNwQjtZQUNGO1lBQ0FaLGtCQUFrQjtnQkFDaEJ0QixNQUFNa0M7Z0JBQ05DLE1BQU1sRDtZQUNSO1FBQ0Y7UUFFQSwrRkFBK0Y7UUFDL0Ysd0ZBQXdGO1FBQ3hGLDJFQUEyRTtRQUMzRW1ELFVBQVVDLGlCQUFpQixhQUFhZDtRQUV4QyxPQUFPO1lBQ0xhLFVBQVVFLG9CQUFvQixhQUFhZjtRQUM3QztJQUNGLEdBQUc7UUFBQ0w7UUFBYzFDO1FBQVlDO0tBQU87SUFFckN6QixVQUFVO1FBQ1IsSUFBSW9FLFFBQVFtQixPQUFPLElBQUlsQixnQkFBZ0JjLE1BQU07WUFDM0MxRCxPQUFPUyxjQUFjLEdBQUdDLElBQUksQ0FBQztnQkFDM0IsMkNBQTJDO2dCQUMzQyxJQUFJcUQsbUJBQW1CO2dCQUN2QixJQUNFbkIsZUFBZWMsSUFBSSxDQUFDTSxPQUFPLE9BQU8sZUFDbENwQixlQUFlYyxJQUFJLENBQUNPLGNBQWMsT0FBTyxJQUN6QztvQkFDQUYsbUJBQW1CO2dCQUNyQjtnQkFFQTdFLGtCQUNFMEQsZ0JBQWdCckIsTUFDaEJvQixRQUFRbUIsT0FBTyxFQUNmL0QsWUFDQWdFLG1CQUFtQjVFLFFBQVFBLFFBQVE7WUFFdkM7UUFDRjtJQUNGLEdBQUc7UUFBQ1k7UUFBWTZDO1FBQWdCNUM7S0FBTztJQUV2QyxNQUFNa0UsaUJBQWlCNUYsWUFDckIsQ0FBQzJCO1FBQ0MsSUFBSWtFLHNCQUFzQnZCO1FBQzFCLElBQUksQ0FBQ3VCLHFCQUFxQlQsTUFBTTtZQUM5QjtRQUNGO1FBRUEsMkdBQTJHO1FBQzNHMUQsT0FBT29FLE1BQU0sQ0FBQztZQUNaLDJDQUEyQztZQUMzQyxJQUFJTCxtQkFBbUI7WUFDdkIsSUFDRUksb0JBQW9CVCxJQUFJLENBQUNNLE9BQU8sT0FBTyxlQUN2Q0csb0JBQW9CVCxJQUFJLENBQUNPLGNBQWMsT0FBTyxJQUM5QztnQkFDQUYsbUJBQW1CO1lBQ3JCO1lBRUEsSUFBSSxDQUFDQSxrQkFBa0I7Z0JBQ3JCLE1BQU1NLGVBQWVsRztnQkFDckJnRyxvQkFBb0JULElBQUksQ0FBQ1ksV0FBVyxDQUFDRDtnQkFFckNFLFdBQVc7b0JBQ1RKLHNCQUFzQjt3QkFDcEI1QyxNQUFNdkIsT0FBT2EsZUFBZSxDQUFDd0QsYUFBYUcsTUFBTTt3QkFDaERkLE1BQU1XO29CQUNSO29CQUNBeEIsa0JBQWtCc0I7Z0JBQ3BCLEdBQUc7WUFDTDtRQUNGO1FBRUEscUNBQXFDO1FBQ3JDSSxXQUFXO1lBQ1R2RSxPQUFPb0UsTUFBTSxDQUFDO2dCQUNacEUsT0FBT3lFLEtBQUs7Z0JBRVosSUFDRU4sb0JBQW9CVCxJQUFJLElBQ3hCLFlBQVlTLG9CQUFvQlQsSUFBSSxJQUNwQyxPQUFPUyxvQkFBb0JULElBQUksQ0FBQ2dCLE1BQU0sS0FBSyxZQUMzQztvQkFDQVAsb0JBQW9CVCxJQUFJLENBQUNnQixNQUFNO2dCQUNqQztZQUNGO1FBQ0YsR0FBRztRQUVILGdGQUFnRjtRQUNoRiw2QkFBNkI7UUFDN0JILFdBQVc7WUFDVHZFLE9BQU8yRSxlQUFlLENBQUM3RiwyQkFBMkI7Z0JBQ2hENEUsTUFBTVMsb0JBQW9CVCxJQUFJO1lBQ2hDO1FBQ0YsR0FBRztRQUVIekQsTUFBTTJFLGVBQWU7UUFDckIzRSxNQUFNNEUsY0FBYztJQUN0QixHQUNBO1FBQUM3RTtRQUFRNEM7S0FBZTtJQUcxQixxQkFBT2xFLDJCQUNMLG9CQUFDTCxNQUFNeUcsUUFBUSxzQkFDYixvQkFBQ0M7UUFDQ0MsV0FBVTtRQUNWQyxTQUFTLENBQUNoRjtZQUNSaUUsZUFBZWpFO1FBQ2pCO1FBQ0FpRixLQUFLdkM7UUFDTHdDLE1BQUs7cUJBRUwsb0JBQUNDO1FBQUlKLFdBQVd4QyxhQUFhLFNBQVM7VUFHMUN6QztBQUVKO0FBRUEsT0FBTyxTQUFTc0YscUJBQXFCLEVBQ25DdEYsYUFBYTRELFNBQVMyQixJQUFJLEVBRzNCO0lBQ0MsTUFBTSxDQUFDdEYsT0FBTyxHQUFHOUI7SUFDakIsT0FBT3FFLGtCQUFrQnZDLFFBQVFELFlBQVlDLE9BQU91RixTQUFTO0FBQy9EIn0=
@@ -1,5 +1,5 @@
1
1
  import type { LexicalEditor, LexicalNode } from 'lexical';
2
- import { Point } from '../../../utils/point';
2
+ import { Point } from '../../../utils/point.js';
3
3
  type Props = {
4
4
  anchorElem: HTMLElement;
5
5
  cache_treshold?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"getNodeCloseToPoint.d.ts","sourceRoot":"","sources":["../../../../../../src/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAIzD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAW5C,KAAK,KAAK,GAAG;IACX,UAAU,EAAE,WAAW,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,aAAa,CAAA;IACrB,gHAAgH;IAChH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,EAAE,KAAK,CAAA;IACZ;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,SAAS,EAAE,WAAW,GAAG,IAAI,CAAA;IAC7B,SAAS,EAAE,WAAW,GAAG,IAAI,CAAA;IAC7B,YAAY,EAAE,MAAM,CAAA;IACpB,yBAAyB,EAAE,OAAO,CAAA;CACnC,CAAA;AAaD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAkLxD"}
1
+ {"version":3,"file":"getNodeCloseToPoint.d.ts","sourceRoot":"","sources":["../../../../../../src/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAIzD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAW/C,KAAK,KAAK,GAAG;IACX,UAAU,EAAE,WAAW,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,aAAa,CAAA;IACrB,gHAAgH;IAChH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,EAAE,KAAK,CAAA;IACZ;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,SAAS,EAAE,WAAW,GAAG,IAAI,CAAA;IAC7B,SAAS,EAAE,WAAW,GAAG,IAAI,CAAA;IAC7B,YAAY,EAAE,MAAM,CAAA;IACpB,yBAAyB,EAAE,OAAO,CAAA;CACnC,CAAA;AAaD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAkLxD"}
@@ -1,9 +1,9 @@
1
1
  import { $getNodeByKey } from 'lexical';
2
- import { Point } from '../../../utils/point';
3
- import { Rect } from '../../../utils/rect';
4
- import { getCollapsedMargins } from '../utils/getCollapsedMargins';
5
- import { getTopLevelNodeKeys } from '../utils/getTopLevelNodeKeys';
6
- import { getBoundingClientRectWithoutTransform } from './getBoundingRectWithoutTransform';
2
+ import { Point } from '../../../utils/point.js';
3
+ import { Rect } from '../../../utils/rect.js';
4
+ import { getCollapsedMargins } from '../utils/getCollapsedMargins.js';
5
+ import { getTopLevelNodeKeys } from '../utils/getTopLevelNodeKeys.js';
6
+ import { getBoundingClientRectWithoutTransform } from './getBoundingRectWithoutTransform.js';
7
7
  // Directions
8
8
  const Downward = 1;
9
9
  const Upward = -1;
@@ -147,4 +147,4 @@ export function getNodeCloseToPoint(props) {
147
147
  };
148
148
  }
149
149
 
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy9EcmFnZ2FibGVCbG9ja1BsdWdpbi9nZXROb2RlQ2xvc2VUb1BvaW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGV4aWNhbEVkaXRvciwgTGV4aWNhbE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyAkZ2V0Tm9kZUJ5S2V5IH0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9wb2ludCdcbmltcG9ydCB7IFJlY3QgfSBmcm9tICcuLi8uLi8uLi91dGlscy9yZWN0J1xuaW1wb3J0IHsgZ2V0Q29sbGFwc2VkTWFyZ2lucyB9IGZyb20gJy4uL3V0aWxzL2dldENvbGxhcHNlZE1hcmdpbnMnXG5pbXBvcnQgeyBnZXRUb3BMZXZlbE5vZGVLZXlzIH0gZnJvbSAnLi4vdXRpbHMvZ2V0VG9wTGV2ZWxOb2RlS2V5cydcbmltcG9ydCB7IGdldEJvdW5kaW5nQ2xpZW50UmVjdFdpdGhvdXRUcmFuc2Zvcm0gfSBmcm9tICcuL2dldEJvdW5kaW5nUmVjdFdpdGhvdXRUcmFuc2Zvcm0nXG5cbi8vIERpcmVjdGlvbnNcbmNvbnN0IERvd253YXJkID0gMVxuY29uc3QgVXB3YXJkID0gLTFcbmNvbnN0IEluZGV0ZXJtaW5hdGUgPSAwXG5cbnR5cGUgUHJvcHMgPSB7XG4gIGFuY2hvckVsZW06IEhUTUxFbGVtZW50XG4gIGNhY2hlX3RyZXNob2xkPzogbnVtYmVyXG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvclxuICAvKiogZnV6enkgbWFrZXMgdGhlIHNlYXJjaCBub3QgZXhhY3QuIElmIG5vIGV4YWN0IG1hdGNoIGZvdW5kLCBmaW5kIHRoZSBjbG9zZXMgbm9kZSBpbnN0ZWFkIG9mIHJldHVybmluZyBudWxsICovXG4gIGZ1enp5PzogYm9vbGVhblxuICBob3Jpem9udGFsT2Zmc2V0PzogbnVtYmVyXG4gIHBvaW50OiBQb2ludFxuICAvKipcbiAgICogVGhlIGluZGV4IHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tLiBJdCBjYW4gYmUgYSBjb25zaWRlcmFibGUgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uIHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tIHRoZSBpbmRleCBvZiB0aGVcbiAgICogcHJldmlvdXNseSBmb3VuZCBub2RlLCBhcyB0aGUgbm9kZSBpcyBsaWtlbHkgdG8gYmUgY2xvc2UgdG8gdGhlIG5leHQgbm9kZS5cbiAgICovXG4gIHN0YXJ0SW5kZXg/OiBudW1iZXJcbiAgdXNlRWRnZUFzRGVmYXVsdD86IGJvb2xlYW5cbiAgdmVyYm9zZT86IGJvb2xlYW5cbn1cblxudHlwZSBPdXRwdXQgPSB7XG4gIGJsb2NrRWxlbTogSFRNTEVsZW1lbnQgfCBudWxsXG4gIGJsb2NrTm9kZTogTGV4aWNhbE5vZGUgfCBudWxsXG4gIGZvdW5kQXRJbmRleDogbnVtYmVyXG4gIGlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGg6IGJvb2xlYW5cbn1cblxuY29uc3QgY2FjaGUgPSB7XG4gIHByb3BzOiBudWxsIGFzIFByb3BzIHwgbnVsbCxcbiAgcmVzdWx0OiBudWxsIGFzIE91dHB1dCB8IG51bGwsXG59XG5cbmZ1bmN0aW9uIGlzUG9pbnRDbG9zZShwcmV2aW91czogUG9pbnQsIGN1cnJlbnQ6IFBvaW50LCB0aHJlc2hvbGQ6IG51bWJlciA9IDIwKTogYm9vbGVhbiB7XG4gIGNvbnN0IGR4ID0gcHJldmlvdXMueCAtIGN1cnJlbnQueFxuICBjb25zdCBkeSA9IHByZXZpb3VzLnkgLSBjdXJyZW50LnlcbiAgcmV0dXJuIGR4ICogZHggKyBkeSAqIGR5IDw9IHRocmVzaG9sZCAqIHRocmVzaG9sZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Tm9kZUNsb3NlVG9Qb2ludChwcm9wczogUHJvcHMpOiBPdXRwdXQge1xuICBjb25zdCB7XG4gICAgYW5jaG9yRWxlbSxcbiAgICBjYWNoZV90cmVzaG9sZCA9IDIwLFxuICAgIGVkaXRvcixcbiAgICBmdXp6eSA9IGZhbHNlLFxuICAgIGhvcml6b250YWxPZmZzZXQgPSAwLFxuICAgIHBvaW50OiB7IHgsIHkgfSxcbiAgICBzdGFydEluZGV4ID0gMCxcbiAgICB1c2VFZGdlQXNEZWZhdWx0ID0gZmFsc2UsXG4gICAgdmVyYm9zZSA9IGZhbHNlLFxuICB9ID0gcHJvcHNcblxuICAvLyBVc2UgY2FjaGVcbiAgaWYgKFxuICAgIGNhY2hlX3RyZXNob2xkID4gMCAmJlxuICAgIGNhY2hlLnByb3BzICYmXG4gICAgY2FjaGUucmVzdWx0ICYmXG4gICAgY2FjaGUucHJvcHMuZnV6enkgPT09IHByb3BzLmZ1enp5ICYmXG4gICAgY2FjaGUucHJvcHMuaG9yaXpvbnRhbE9mZnNldCA9PT0gcHJvcHMuaG9yaXpvbnRhbE9mZnNldCAmJlxuICAgIGNhY2hlLnByb3BzLnVzZUVkZ2VBc0RlZmF1bHQgPT09IHByb3BzLnVzZUVkZ2VBc0RlZmF1bHQgJiZcbiAgICBpc1BvaW50Q2xvc2UoY2FjaGUucHJvcHMucG9pbnQsIHByb3BzLnBvaW50LCBjYWNoZV90cmVzaG9sZClcbiAgKSB7XG4gICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgIC8vY29uc29sZS5sb2coJ1JldHVybmluZyBjYWNoZWQgcmVzdWx0JylcbiAgICB9XG4gICAgcmV0dXJuIGNhY2hlLnJlc3VsdFxuICB9XG5cbiAgY29uc3QgYW5jaG9yRWxlbWVudFJlY3QgPSBhbmNob3JFbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gIGNvbnN0IHRvcExldmVsTm9kZUtleXMgPSBnZXRUb3BMZXZlbE5vZGVLZXlzKGVkaXRvcilcblxuICBjb25zdCBjbG9zZXN0QmxvY2tFbGVtOiB7XG4gICAgYmxvY2tFbGVtOiBIVE1MRWxlbWVudCB8IG51bGxcbiAgICBibG9ja05vZGU6IExleGljYWxOb2RlIHwgbnVsbFxuICAgIGRpc3RhbmNlOiBudW1iZXJcbiAgICBmb3VuZEF0SW5kZXg6IG51bWJlclxuICAgIGlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGg6IGJvb2xlYW5cbiAgfSA9IHtcbiAgICBibG9ja0VsZW06IG51bGwsXG4gICAgYmxvY2tOb2RlOiBudWxsLFxuICAgIGRpc3RhbmNlOiBJbmZpbml0eSxcbiAgICBmb3VuZEF0SW5kZXg6IC0xLFxuICAgIGlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGg6IGZhbHNlLFxuICB9XG5cbiAgLy8gUmV0dXJuIG51bGwgaWYgbWF0Y2hpbmcgYmxvY2sgZWxlbWVudCBpcyB0aGUgZmlyc3Qgb3IgbGFzdCBub2RlXG4gIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgIGlmICh1c2VFZGdlQXNEZWZhdWx0KSB7XG4gICAgICBjb25zdCBbZmlyc3ROb2RlLCBsYXN0Tm9kZV0gPSBbXG4gICAgICAgIGVkaXRvci5nZXRFbGVtZW50QnlLZXkodG9wTGV2ZWxOb2RlS2V5c1swXSksXG4gICAgICAgIGVkaXRvci5nZXRFbGVtZW50QnlLZXkodG9wTGV2ZWxOb2RlS2V5c1t0b3BMZXZlbE5vZGVLZXlzLmxlbmd0aCAtIDFdKSxcbiAgICAgIF1cblxuICAgICAgY29uc3QgW2ZpcnN0Tm9kZVJlY3QsIGxhc3ROb2RlUmVjdF0gPSBbXG4gICAgICAgIGdldEJvdW5kaW5nQ2xpZW50UmVjdFdpdGhvdXRUcmFuc2Zvcm0oZmlyc3ROb2RlKSxcbiAgICAgICAgZ2V0Qm91bmRpbmdDbGllbnRSZWN0V2l0aG91dFRyYW5zZm9ybShsYXN0Tm9kZSksXG4gICAgICBdXG5cbiAgICAgIGlmIChmaXJzdE5vZGVSZWN0ICYmIGxhc3ROb2RlUmVjdCkge1xuICAgICAgICBpZiAoeSA8IGZpcnN0Tm9kZVJlY3QudG9wKSB7XG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5ibG9ja0VsZW0gPSBmaXJzdE5vZGVcbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmRpc3RhbmNlID0gZmlyc3ROb2RlUmVjdC50b3AgLSB5XG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5ibG9ja05vZGUgPSAkZ2V0Tm9kZUJ5S2V5KHRvcExldmVsTm9kZUtleXNbMF0pXG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5mb3VuZEF0SW5kZXggPSAwXG4gICAgICAgIH0gZWxzZSBpZiAoeSA+IGxhc3ROb2RlUmVjdC5ib3R0b20pIHtcbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmRpc3RhbmNlID0geSAtIGxhc3ROb2RlUmVjdC5ib3R0b21cbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrTm9kZSA9ICRnZXROb2RlQnlLZXkodG9wTGV2ZWxOb2RlS2V5c1t0b3BMZXZlbE5vZGVLZXlzLmxlbmd0aCAtIDFdKVxuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tFbGVtID0gbGFzdE5vZGVcbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmZvdW5kQXRJbmRleCA9IHRvcExldmVsTm9kZUtleXMubGVuZ3RoIC0gMVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNsb3Nlc3RCbG9ja0VsZW0/LmJsb2NrRWxlbSkge1xuICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKCd1c2VFZGdlQXNEZWZhdWx0JywgdXNlRWRnZUFzRGVmYXVsdClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYmxvY2tFbGVtOiBudWxsLFxuICAgICAgICAgICAgaXNGb3VuZE5vZGVFbXB0eVBhcmFncmFwaDogZmFsc2UsXG4gICAgICAgICAgfSBhcyBPdXRwdXRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZpbmQgbWF0Y2hpbmcgYmxvY2sgZWxlbWVudFxuICAgIGxldCBpbmRleCA9IHN0YXJ0SW5kZXhcbiAgICBsZXQgZGlyZWN0aW9uID0gSW5kZXRlcm1pbmF0ZVxuXG4gICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgIC8vY29uc29sZS5sb2coJ3N0YXJ0IGluZGV4Jywgc3RhcnRJbmRleClcbiAgICB9XG5cbiAgICB3aGlsZSAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRvcExldmVsTm9kZUtleXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBrZXkgPSB0b3BMZXZlbE5vZGVLZXlzW2luZGV4XVxuICAgICAgY29uc3QgZWxlbSA9IGVkaXRvci5nZXRFbGVtZW50QnlLZXkoa2V5KVxuICAgICAgaWYgKGVsZW0gPT09IG51bGwpIHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBvaW50ID0gbmV3IFBvaW50KHggKyBob3Jpem9udGFsT2Zmc2V0LCB5KVxuICAgICAgLy9jb25zdCBkb21SZWN0ID0gUmVjdC5mcm9tRE9NKGVsZW0pXG4gICAgICAvLyBEbyBub3QgY29uc2lkZXIgdHJhbnNmb3JtIG9mIGJsb2NrcyB3aGVuIGNhbGN1bGF0aW5nIGRpc3RhbmNlXG4gICAgICBjb25zdCBkb21SZWN0ID0gUmVjdC5mcm9tRE9NUmVjdChnZXRCb3VuZGluZ0NsaWVudFJlY3RXaXRob3V0VHJhbnNmb3JtKGVsZW0pKVxuXG4gICAgICBjb25zdCB7IG1hcmdpbkJvdHRvbSwgbWFyZ2luVG9wIH0gPSBnZXRDb2xsYXBzZWRNYXJnaW5zKGVsZW0pXG5cbiAgICAgIGNvbnN0IHJlY3QgPSBkb21SZWN0LmdlbmVyYXRlTmV3UmVjdCh7XG4gICAgICAgIGJvdHRvbTogZG9tUmVjdC5ib3R0b20gKyBtYXJnaW5Cb3R0b20sXG4gICAgICAgIGxlZnQ6IGFuY2hvckVsZW1lbnRSZWN0LmxlZnQsXG4gICAgICAgIHJpZ2h0OiBhbmNob3JFbGVtZW50UmVjdC5yaWdodCxcbiAgICAgICAgdG9wOiBkb21SZWN0LnRvcCAtIG1hcmdpblRvcCxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHsgZGlzdGFuY2UsIGlzT25Cb3R0b21TaWRlLCBpc09uVG9wU2lkZSB9ID0gcmVjdC5kaXN0YW5jZUZyb21Qb2ludChwb2ludClcblxuICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgLy9jb25zb2xlLmxvZygnZGlzdGFuY2UnLCBkaXN0YW5jZSlcbiAgICAgIH1cblxuICAgICAgaWYgKGRpc3RhbmNlID09PSAwKSB7XG4gICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tFbGVtID0gZWxlbVxuICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrTm9kZSA9ICRnZXROb2RlQnlLZXkoa2V5KVxuICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmZvdW5kQXRJbmRleCA9IGluZGV4XG4gICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uZGlzdGFuY2UgPSBkaXN0YW5jZVxuXG4gICAgICAgIC8vIENoZWNrIGlmIGJsb2NrTm9kZSBpcyBhbiBlbXB0eSB0ZXh0IG5vZGVcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tOb2RlICYmXG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5ibG9ja05vZGUuZ2V0VHlwZSgpID09PSAncGFyYWdyYXBoJyAmJlxuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tOb2RlLmdldFRleHRDb250ZW50KCkgPT09ICcnXG4gICAgICAgICkge1xuICAgICAgICAgIGlmICghZnV6enkpIHtcbiAgICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tFbGVtID0gbnVsbFxuICAgICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5ibG9ja05vZGUgPSBudWxsXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5pc0ZvdW5kTm9kZUVtcHR5UGFyYWdyYXBoID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICB9IGVsc2UgaWYgKGZ1enp5KSB7XG4gICAgICAgIGlmIChkaXN0YW5jZSA8IGNsb3Nlc3RCbG9ja0VsZW0uZGlzdGFuY2UpIHtcbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrRWxlbSA9IGVsZW1cbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrTm9kZSA9ICRnZXROb2RlQnlLZXkoa2V5KVxuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uZGlzdGFuY2UgPSBkaXN0YW5jZVxuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uZm91bmRBdEluZGV4ID0gaW5kZXhcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZGlyZWN0aW9uID09PSBJbmRldGVybWluYXRlKSB7XG4gICAgICAgIGlmIChpc09uVG9wU2lkZSkge1xuICAgICAgICAgIGRpcmVjdGlvbiA9IFVwd2FyZFxuICAgICAgICB9IGVsc2UgaWYgKGlzT25Cb3R0b21TaWRlKSB7XG4gICAgICAgICAgZGlyZWN0aW9uID0gRG93bndhcmRcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBzdG9wIHNlYXJjaCBibG9jayBlbGVtZW50XG4gICAgICAgICAgZGlyZWN0aW9uID0gSW5maW5pdHlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpbmRleCArPSBkaXJlY3Rpb25cbiAgICB9XG4gIH0pXG5cbiAgLy8gU3RvcmUgaW4gY2FjaGUgYmVmb3JlIHJldHVybmluZ1xuICBjYWNoZS5wcm9wcyA9IHByb3BzXG4gIGNhY2hlLnJlc3VsdCA9IHtcbiAgICBibG9ja0VsZW06IGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tFbGVtLFxuICAgIGJsb2NrTm9kZTogY2xvc2VzdEJsb2NrRWxlbS5ibG9ja05vZGUsXG4gICAgZm91bmRBdEluZGV4OiBjbG9zZXN0QmxvY2tFbGVtLmZvdW5kQXRJbmRleCxcbiAgICBpc0ZvdW5kTm9kZUVtcHR5UGFyYWdyYXBoOiBjbG9zZXN0QmxvY2tFbGVtLmlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGgsXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGJsb2NrRWxlbTogY2xvc2VzdEJsb2NrRWxlbS5ibG9ja0VsZW0sXG4gICAgYmxvY2tOb2RlOiBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrTm9kZSxcbiAgICBmb3VuZEF0SW5kZXg6IGNsb3Nlc3RCbG9ja0VsZW0uZm91bmRBdEluZGV4LFxuICAgIGlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGg6IGNsb3Nlc3RCbG9ja0VsZW0uaXNGb3VuZE5vZGVFbXB0eVBhcmFncmFwaCxcbiAgfVxufVxuIl0sIm5hbWVzIjpbIiRnZXROb2RlQnlLZXkiLCJQb2ludCIsIlJlY3QiLCJnZXRDb2xsYXBzZWRNYXJnaW5zIiwiZ2V0VG9wTGV2ZWxOb2RlS2V5cyIsImdldEJvdW5kaW5nQ2xpZW50UmVjdFdpdGhvdXRUcmFuc2Zvcm0iLCJEb3dud2FyZCIsIlVwd2FyZCIsIkluZGV0ZXJtaW5hdGUiLCJjYWNoZSIsInByb3BzIiwicmVzdWx0IiwiaXNQb2ludENsb3NlIiwicHJldmlvdXMiLCJjdXJyZW50IiwidGhyZXNob2xkIiwiZHgiLCJ4IiwiZHkiLCJ5IiwiZ2V0Tm9kZUNsb3NlVG9Qb2ludCIsImFuY2hvckVsZW0iLCJjYWNoZV90cmVzaG9sZCIsImVkaXRvciIsImZ1enp5IiwiaG9yaXpvbnRhbE9mZnNldCIsInBvaW50Iiwic3RhcnRJbmRleCIsInVzZUVkZ2VBc0RlZmF1bHQiLCJ2ZXJib3NlIiwiYW5jaG9yRWxlbWVudFJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ0b3BMZXZlbE5vZGVLZXlzIiwiY2xvc2VzdEJsb2NrRWxlbSIsImJsb2NrRWxlbSIsImJsb2NrTm9kZSIsImRpc3RhbmNlIiwiSW5maW5pdHkiLCJmb3VuZEF0SW5kZXgiLCJpc0ZvdW5kTm9kZUVtcHR5UGFyYWdyYXBoIiwiZ2V0RWRpdG9yU3RhdGUiLCJyZWFkIiwiZmlyc3ROb2RlIiwibGFzdE5vZGUiLCJnZXRFbGVtZW50QnlLZXkiLCJsZW5ndGgiLCJmaXJzdE5vZGVSZWN0IiwibGFzdE5vZGVSZWN0IiwidG9wIiwiYm90dG9tIiwiaW5kZXgiLCJkaXJlY3Rpb24iLCJrZXkiLCJlbGVtIiwiZG9tUmVjdCIsImZyb21ET01SZWN0IiwibWFyZ2luQm90dG9tIiwibWFyZ2luVG9wIiwicmVjdCIsImdlbmVyYXRlTmV3UmVjdCIsImxlZnQiLCJyaWdodCIsImlzT25Cb3R0b21TaWRlIiwiaXNPblRvcFNpZGUiLCJkaXN0YW5jZUZyb21Qb2ludCIsImdldFR5cGUiLCJnZXRUZXh0Q29udGVudCJdLCJtYXBwaW5ncyI6IkFBRUEsU0FBU0EsYUFBYSxRQUFRLFVBQVM7QUFFdkMsU0FBU0MsS0FBSyxRQUFRLHVCQUFzQjtBQUM1QyxTQUFTQyxJQUFJLFFBQVEsc0JBQXFCO0FBQzFDLFNBQVNDLG1CQUFtQixRQUFRLCtCQUE4QjtBQUNsRSxTQUFTQyxtQkFBbUIsUUFBUSwrQkFBOEI7QUFDbEUsU0FBU0MscUNBQXFDLFFBQVEsb0NBQW1DO0FBRXpGLGFBQWE7QUFDYixNQUFNQyxXQUFXO0FBQ2pCLE1BQU1DLFNBQVMsQ0FBQztBQUNoQixNQUFNQyxnQkFBZ0I7QUEwQnRCLE1BQU1DLFFBQVE7SUFDWkMsT0FBTztJQUNQQyxRQUFRO0FBQ1Y7QUFFQSxTQUFTQyxhQUFhQyxRQUFlLEVBQUVDLE9BQWMsRUFBRUMsWUFBb0IsRUFBRTtJQUMzRSxNQUFNQyxLQUFLSCxTQUFTSSxDQUFDLEdBQUdILFFBQVFHLENBQUM7SUFDakMsTUFBTUMsS0FBS0wsU0FBU00sQ0FBQyxHQUFHTCxRQUFRSyxDQUFDO0lBQ2pDLE9BQU9ILEtBQUtBLEtBQUtFLEtBQUtBLE1BQU1ILFlBQVlBO0FBQzFDO0FBRUEsT0FBTyxTQUFTSyxvQkFBb0JWLEtBQVk7SUFDOUMsTUFBTSxFQUNKVyxVQUFVLEVBQ1ZDLGlCQUFpQixFQUFFLEVBQ25CQyxNQUFNLEVBQ05DLFFBQVEsS0FBSyxFQUNiQyxtQkFBbUIsQ0FBQyxFQUNwQkMsT0FBTyxFQUFFVCxDQUFDLEVBQUVFLENBQUMsRUFBRSxFQUNmUSxhQUFhLENBQUMsRUFDZEMsbUJBQW1CLEtBQUssRUFDeEJDLFVBQVUsS0FBSyxFQUNoQixHQUFHbkI7SUFFSixZQUFZO0lBQ1osSUFDRVksaUJBQWlCLEtBQ2pCYixNQUFNQyxLQUFLLElBQ1hELE1BQU1FLE1BQU0sSUFDWkYsTUFBTUMsS0FBSyxDQUFDYyxLQUFLLEtBQUtkLE1BQU1jLEtBQUssSUFDakNmLE1B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
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy9EcmFnZ2FibGVCbG9ja1BsdWdpbi9nZXROb2RlQ2xvc2VUb1BvaW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGV4aWNhbEVkaXRvciwgTGV4aWNhbE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyAkZ2V0Tm9kZUJ5S2V5IH0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9wb2ludC5qcydcbmltcG9ydCB7IFJlY3QgfSBmcm9tICcuLi8uLi8uLi91dGlscy9yZWN0LmpzJ1xuaW1wb3J0IHsgZ2V0Q29sbGFwc2VkTWFyZ2lucyB9IGZyb20gJy4uL3V0aWxzL2dldENvbGxhcHNlZE1hcmdpbnMuanMnXG5pbXBvcnQgeyBnZXRUb3BMZXZlbE5vZGVLZXlzIH0gZnJvbSAnLi4vdXRpbHMvZ2V0VG9wTGV2ZWxOb2RlS2V5cy5qcydcbmltcG9ydCB7IGdldEJvdW5kaW5nQ2xpZW50UmVjdFdpdGhvdXRUcmFuc2Zvcm0gfSBmcm9tICcuL2dldEJvdW5kaW5nUmVjdFdpdGhvdXRUcmFuc2Zvcm0uanMnXG5cbi8vIERpcmVjdGlvbnNcbmNvbnN0IERvd253YXJkID0gMVxuY29uc3QgVXB3YXJkID0gLTFcbmNvbnN0IEluZGV0ZXJtaW5hdGUgPSAwXG5cbnR5cGUgUHJvcHMgPSB7XG4gIGFuY2hvckVsZW06IEhUTUxFbGVtZW50XG4gIGNhY2hlX3RyZXNob2xkPzogbnVtYmVyXG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvclxuICAvKiogZnV6enkgbWFrZXMgdGhlIHNlYXJjaCBub3QgZXhhY3QuIElmIG5vIGV4YWN0IG1hdGNoIGZvdW5kLCBmaW5kIHRoZSBjbG9zZXMgbm9kZSBpbnN0ZWFkIG9mIHJldHVybmluZyBudWxsICovXG4gIGZ1enp5PzogYm9vbGVhblxuICBob3Jpem9udGFsT2Zmc2V0PzogbnVtYmVyXG4gIHBvaW50OiBQb2ludFxuICAvKipcbiAgICogVGhlIGluZGV4IHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tLiBJdCBjYW4gYmUgYSBjb25zaWRlcmFibGUgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uIHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tIHRoZSBpbmRleCBvZiB0aGVcbiAgICogcHJldmlvdXNseSBmb3VuZCBub2RlLCBhcyB0aGUgbm9kZSBpcyBsaWtlbHkgdG8gYmUgY2xvc2UgdG8gdGhlIG5leHQgbm9kZS5cbiAgICovXG4gIHN0YXJ0SW5kZXg/OiBudW1iZXJcbiAgdXNlRWRnZUFzRGVmYXVsdD86IGJvb2xlYW5cbiAgdmVyYm9zZT86IGJvb2xlYW5cbn1cblxudHlwZSBPdXRwdXQgPSB7XG4gIGJsb2NrRWxlbTogSFRNTEVsZW1lbnQgfCBudWxsXG4gIGJsb2NrTm9kZTogTGV4aWNhbE5vZGUgfCBudWxsXG4gIGZvdW5kQXRJbmRleDogbnVtYmVyXG4gIGlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGg6IGJvb2xlYW5cbn1cblxuY29uc3QgY2FjaGUgPSB7XG4gIHByb3BzOiBudWxsIGFzIFByb3BzIHwgbnVsbCxcbiAgcmVzdWx0OiBudWxsIGFzIE91dHB1dCB8IG51bGwsXG59XG5cbmZ1bmN0aW9uIGlzUG9pbnRDbG9zZShwcmV2aW91czogUG9pbnQsIGN1cnJlbnQ6IFBvaW50LCB0aHJlc2hvbGQ6IG51bWJlciA9IDIwKTogYm9vbGVhbiB7XG4gIGNvbnN0IGR4ID0gcHJldmlvdXMueCAtIGN1cnJlbnQueFxuICBjb25zdCBkeSA9IHByZXZpb3VzLnkgLSBjdXJyZW50LnlcbiAgcmV0dXJuIGR4ICogZHggKyBkeSAqIGR5IDw9IHRocmVzaG9sZCAqIHRocmVzaG9sZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Tm9kZUNsb3NlVG9Qb2ludChwcm9wczogUHJvcHMpOiBPdXRwdXQge1xuICBjb25zdCB7XG4gICAgYW5jaG9yRWxlbSxcbiAgICBjYWNoZV90cmVzaG9sZCA9IDIwLFxuICAgIGVkaXRvcixcbiAgICBmdXp6eSA9IGZhbHNlLFxuICAgIGhvcml6b250YWxPZmZzZXQgPSAwLFxuICAgIHBvaW50OiB7IHgsIHkgfSxcbiAgICBzdGFydEluZGV4ID0gMCxcbiAgICB1c2VFZGdlQXNEZWZhdWx0ID0gZmFsc2UsXG4gICAgdmVyYm9zZSA9IGZhbHNlLFxuICB9ID0gcHJvcHNcblxuICAvLyBVc2UgY2FjaGVcbiAgaWYgKFxuICAgIGNhY2hlX3RyZXNob2xkID4gMCAmJlxuICAgIGNhY2hlLnByb3BzICYmXG4gICAgY2FjaGUucmVzdWx0ICYmXG4gICAgY2FjaGUucHJvcHMuZnV6enkgPT09IHByb3BzLmZ1enp5ICYmXG4gICAgY2FjaGUucHJvcHMuaG9yaXpvbnRhbE9mZnNldCA9PT0gcHJvcHMuaG9yaXpvbnRhbE9mZnNldCAmJlxuICAgIGNhY2hlLnByb3BzLnVzZUVkZ2VBc0RlZmF1bHQgPT09IHByb3BzLnVzZUVkZ2VBc0RlZmF1bHQgJiZcbiAgICBpc1BvaW50Q2xvc2UoY2FjaGUucHJvcHMucG9pbnQsIHByb3BzLnBvaW50LCBjYWNoZV90cmVzaG9sZClcbiAgKSB7XG4gICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgIC8vY29uc29sZS5sb2coJ1JldHVybmluZyBjYWNoZWQgcmVzdWx0JylcbiAgICB9XG4gICAgcmV0dXJuIGNhY2hlLnJlc3VsdFxuICB9XG5cbiAgY29uc3QgYW5jaG9yRWxlbWVudFJlY3QgPSBhbmNob3JFbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gIGNvbnN0IHRvcExldmVsTm9kZUtleXMgPSBnZXRUb3BMZXZlbE5vZGVLZXlzKGVkaXRvcilcblxuICBjb25zdCBjbG9zZXN0QmxvY2tFbGVtOiB7XG4gICAgYmxvY2tFbGVtOiBIVE1MRWxlbWVudCB8IG51bGxcbiAgICBibG9ja05vZGU6IExleGljYWxOb2RlIHwgbnVsbFxuICAgIGRpc3RhbmNlOiBudW1iZXJcbiAgICBmb3VuZEF0SW5kZXg6IG51bWJlclxuICAgIGlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGg6IGJvb2xlYW5cbiAgfSA9IHtcbiAgICBibG9ja0VsZW06IG51bGwsXG4gICAgYmxvY2tOb2RlOiBudWxsLFxuICAgIGRpc3RhbmNlOiBJbmZpbml0eSxcbiAgICBmb3VuZEF0SW5kZXg6IC0xLFxuICAgIGlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGg6IGZhbHNlLFxuICB9XG5cbiAgLy8gUmV0dXJuIG51bGwgaWYgbWF0Y2hpbmcgYmxvY2sgZWxlbWVudCBpcyB0aGUgZmlyc3Qgb3IgbGFzdCBub2RlXG4gIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgIGlmICh1c2VFZGdlQXNEZWZhdWx0KSB7XG4gICAgICBjb25zdCBbZmlyc3ROb2RlLCBsYXN0Tm9kZV0gPSBbXG4gICAgICAgIGVkaXRvci5nZXRFbGVtZW50QnlLZXkodG9wTGV2ZWxOb2RlS2V5c1swXSksXG4gICAgICAgIGVkaXRvci5nZXRFbGVtZW50QnlLZXkodG9wTGV2ZWxOb2RlS2V5c1t0b3BMZXZlbE5vZGVLZXlzLmxlbmd0aCAtIDFdKSxcbiAgICAgIF1cblxuICAgICAgY29uc3QgW2ZpcnN0Tm9kZVJlY3QsIGxhc3ROb2RlUmVjdF0gPSBbXG4gICAgICAgIGdldEJvdW5kaW5nQ2xpZW50UmVjdFdpdGhvdXRUcmFuc2Zvcm0oZmlyc3ROb2RlKSxcbiAgICAgICAgZ2V0Qm91bmRpbmdDbGllbnRSZWN0V2l0aG91dFRyYW5zZm9ybShsYXN0Tm9kZSksXG4gICAgICBdXG5cbiAgICAgIGlmIChmaXJzdE5vZGVSZWN0ICYmIGxhc3ROb2RlUmVjdCkge1xuICAgICAgICBpZiAoeSA8IGZpcnN0Tm9kZVJlY3QudG9wKSB7XG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5ibG9ja0VsZW0gPSBmaXJzdE5vZGVcbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmRpc3RhbmNlID0gZmlyc3ROb2RlUmVjdC50b3AgLSB5XG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5ibG9ja05vZGUgPSAkZ2V0Tm9kZUJ5S2V5KHRvcExldmVsTm9kZUtleXNbMF0pXG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5mb3VuZEF0SW5kZXggPSAwXG4gICAgICAgIH0gZWxzZSBpZiAoeSA+IGxhc3ROb2RlUmVjdC5ib3R0b20pIHtcbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmRpc3RhbmNlID0geSAtIGxhc3ROb2RlUmVjdC5ib3R0b21cbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrTm9kZSA9ICRnZXROb2RlQnlLZXkodG9wTGV2ZWxOb2RlS2V5c1t0b3BMZXZlbE5vZGVLZXlzLmxlbmd0aCAtIDFdKVxuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tFbGVtID0gbGFzdE5vZGVcbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmZvdW5kQXRJbmRleCA9IHRvcExldmVsTm9kZUtleXMubGVuZ3RoIC0gMVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNsb3Nlc3RCbG9ja0VsZW0/LmJsb2NrRWxlbSkge1xuICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKCd1c2VFZGdlQXNEZWZhdWx0JywgdXNlRWRnZUFzRGVmYXVsdClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYmxvY2tFbGVtOiBudWxsLFxuICAgICAgICAgICAgaXNGb3VuZE5vZGVFbXB0eVBhcmFncmFwaDogZmFsc2UsXG4gICAgICAgICAgfSBhcyBPdXRwdXRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZpbmQgbWF0Y2hpbmcgYmxvY2sgZWxlbWVudFxuICAgIGxldCBpbmRleCA9IHN0YXJ0SW5kZXhcbiAgICBsZXQgZGlyZWN0aW9uID0gSW5kZXRlcm1pbmF0ZVxuXG4gICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgIC8vY29uc29sZS5sb2coJ3N0YXJ0IGluZGV4Jywgc3RhcnRJbmRleClcbiAgICB9XG5cbiAgICB3aGlsZSAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRvcExldmVsTm9kZUtleXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBrZXkgPSB0b3BMZXZlbE5vZGVLZXlzW2luZGV4XVxuICAgICAgY29uc3QgZWxlbSA9IGVkaXRvci5nZXRFbGVtZW50QnlLZXkoa2V5KVxuICAgICAgaWYgKGVsZW0gPT09IG51bGwpIHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBvaW50ID0gbmV3IFBvaW50KHggKyBob3Jpem9udGFsT2Zmc2V0LCB5KVxuICAgICAgLy9jb25zdCBkb21SZWN0ID0gUmVjdC5mcm9tRE9NKGVsZW0pXG4gICAgICAvLyBEbyBub3QgY29uc2lkZXIgdHJhbnNmb3JtIG9mIGJsb2NrcyB3aGVuIGNhbGN1bGF0aW5nIGRpc3RhbmNlXG4gICAgICBjb25zdCBkb21SZWN0ID0gUmVjdC5mcm9tRE9NUmVjdChnZXRCb3VuZGluZ0NsaWVudFJlY3RXaXRob3V0VHJhbnNmb3JtKGVsZW0pKVxuXG4gICAgICBjb25zdCB7IG1hcmdpbkJvdHRvbSwgbWFyZ2luVG9wIH0gPSBnZXRDb2xsYXBzZWRNYXJnaW5zKGVsZW0pXG5cbiAgICAgIGNvbnN0IHJlY3QgPSBkb21SZWN0LmdlbmVyYXRlTmV3UmVjdCh7XG4gICAgICAgIGJvdHRvbTogZG9tUmVjdC5ib3R0b20gKyBtYXJnaW5Cb3R0b20sXG4gICAgICAgIGxlZnQ6IGFuY2hvckVsZW1lbnRSZWN0LmxlZnQsXG4gICAgICAgIHJpZ2h0OiBhbmNob3JFbGVtZW50UmVjdC5yaWdodCxcbiAgICAgICAgdG9wOiBkb21SZWN0LnRvcCAtIG1hcmdpblRvcCxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHsgZGlzdGFuY2UsIGlzT25Cb3R0b21TaWRlLCBpc09uVG9wU2lkZSB9ID0gcmVjdC5kaXN0YW5jZUZyb21Qb2ludChwb2ludClcblxuICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgLy9jb25zb2xlLmxvZygnZGlzdGFuY2UnLCBkaXN0YW5jZSlcbiAgICAgIH1cblxuICAgICAgaWYgKGRpc3RhbmNlID09PSAwKSB7XG4gICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tFbGVtID0gZWxlbVxuICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrTm9kZSA9ICRnZXROb2RlQnlLZXkoa2V5KVxuICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmZvdW5kQXRJbmRleCA9IGluZGV4XG4gICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uZGlzdGFuY2UgPSBkaXN0YW5jZVxuXG4gICAgICAgIC8vIENoZWNrIGlmIGJsb2NrTm9kZSBpcyBhbiBlbXB0eSB0ZXh0IG5vZGVcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tOb2RlICYmXG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5ibG9ja05vZGUuZ2V0VHlwZSgpID09PSAncGFyYWdyYXBoJyAmJlxuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tOb2RlLmdldFRleHRDb250ZW50KCkgPT09ICcnXG4gICAgICAgICkge1xuICAgICAgICAgIGlmICghZnV6enkpIHtcbiAgICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tFbGVtID0gbnVsbFxuICAgICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5ibG9ja05vZGUgPSBudWxsXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5pc0ZvdW5kTm9kZUVtcHR5UGFyYWdyYXBoID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICB9IGVsc2UgaWYgKGZ1enp5KSB7XG4gICAgICAgIGlmIChkaXN0YW5jZSA8IGNsb3Nlc3RCbG9ja0VsZW0uZGlzdGFuY2UpIHtcbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrRWxlbSA9IGVsZW1cbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrTm9kZSA9ICRnZXROb2RlQnlLZXkoa2V5KVxuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uZGlzdGFuY2UgPSBkaXN0YW5jZVxuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uZm91bmRBdEluZGV4ID0gaW5kZXhcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZGlyZWN0aW9uID09PSBJbmRldGVybWluYXRlKSB7XG4gICAgICAgIGlmIChpc09uVG9wU2lkZSkge1xuICAgICAgICAgIGRpcmVjdGlvbiA9IFVwd2FyZFxuICAgICAgICB9IGVsc2UgaWYgKGlzT25Cb3R0b21TaWRlKSB7XG4gICAgICAgICAgZGlyZWN0aW9uID0gRG93bndhcmRcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBzdG9wIHNlYXJjaCBibG9jayBlbGVtZW50XG4gICAgICAgICAgZGlyZWN0aW9uID0gSW5maW5pdHlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpbmRleCArPSBkaXJlY3Rpb25cbiAgICB9XG4gIH0pXG5cbiAgLy8gU3RvcmUgaW4gY2FjaGUgYmVmb3JlIHJldHVybmluZ1xuICBjYWNoZS5wcm9wcyA9IHByb3BzXG4gIGNhY2hlLnJlc3VsdCA9IHtcbiAgICBibG9ja0VsZW06IGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tFbGVtLFxuICAgIGJsb2NrTm9kZTogY2xvc2VzdEJsb2NrRWxlbS5ibG9ja05vZGUsXG4gICAgZm91bmRBdEluZGV4OiBjbG9zZXN0QmxvY2tFbGVtLmZvdW5kQXRJbmRleCxcbiAgICBpc0ZvdW5kTm9kZUVtcHR5UGFyYWdyYXBoOiBjbG9zZXN0QmxvY2tFbGVtLmlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGgsXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGJsb2NrRWxlbTogY2xvc2VzdEJsb2NrRWxlbS5ibG9ja0VsZW0sXG4gICAgYmxvY2tOb2RlOiBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrTm9kZSxcbiAgICBmb3VuZEF0SW5kZXg6IGNsb3Nlc3RCbG9ja0VsZW0uZm91bmRBdEluZGV4LFxuICAgIGlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGg6IGNsb3Nlc3RCbG9ja0VsZW0uaXNGb3VuZE5vZGVFbXB0eVBhcmFncmFwaCxcbiAgfVxufVxuIl0sIm5hbWVzIjpbIiRnZXROb2RlQnlLZXkiLCJQb2ludCIsIlJlY3QiLCJnZXRDb2xsYXBzZWRNYXJnaW5zIiwiZ2V0VG9wTGV2ZWxOb2RlS2V5cyIsImdldEJvdW5kaW5nQ2xpZW50UmVjdFdpdGhvdXRUcmFuc2Zvcm0iLCJEb3dud2FyZCIsIlVwd2FyZCIsIkluZGV0ZXJtaW5hdGUiLCJjYWNoZSIsInByb3BzIiwicmVzdWx0IiwiaXNQb2ludENsb3NlIiwicHJldmlvdXMiLCJjdXJyZW50IiwidGhyZXNob2xkIiwiZHgiLCJ4IiwiZHkiLCJ5IiwiZ2V0Tm9kZUNsb3NlVG9Qb2ludCIsImFuY2hvckVsZW0iLCJjYWNoZV90cmVzaG9sZCIsImVkaXRvciIsImZ1enp5IiwiaG9yaXpvbnRhbE9mZnNldCIsInBvaW50Iiwic3RhcnRJbmRleCIsInVzZUVkZ2VBc0RlZmF1bHQiLCJ2ZXJib3NlIiwiYW5jaG9yRWxlbWVudFJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ0b3BMZXZlbE5vZGVLZXlzIiwiY2xvc2VzdEJsb2NrRWxlbSIsImJsb2NrRWxlbSIsImJsb2NrTm9kZSIsImRpc3RhbmNlIiwiSW5maW5pdHkiLCJmb3VuZEF0SW5kZXgiLCJpc0ZvdW5kTm9kZUVtcHR5UGFyYWdyYXBoIiwiZ2V0RWRpdG9yU3RhdGUiLCJyZWFkIiwiZmlyc3ROb2RlIiwibGFzdE5vZGUiLCJnZXRFbGVtZW50QnlLZXkiLCJsZW5ndGgiLCJmaXJzdE5vZGVSZWN0IiwibGFzdE5vZGVSZWN0IiwidG9wIiwiYm90dG9tIiwiaW5kZXgiLCJkaXJlY3Rpb24iLCJrZXkiLCJlbGVtIiwiZG9tUmVjdCIsImZyb21ET01SZWN0IiwibWFyZ2luQm90dG9tIiwibWFyZ2luVG9wIiwicmVjdCIsImdlbmVyYXRlTmV3UmVjdCIsImxlZnQiLCJyaWdodCIsImlzT25Cb3R0b21TaWRlIiwiaXNPblRvcFNpZGUiLCJkaXN0YW5jZUZyb21Qb2ludCIsImdldFR5cGUiLCJnZXRUZXh0Q29udGVudCJdLCJtYXBwaW5ncyI6IkFBRUEsU0FBU0EsYUFBYSxRQUFRLFVBQVM7QUFFdkMsU0FBU0MsS0FBSyxRQUFRLDBCQUF5QjtBQUMvQyxTQUFTQyxJQUFJLFFBQVEseUJBQXdCO0FBQzdDLFNBQVNDLG1CQUFtQixRQUFRLGtDQUFpQztBQUNyRSxTQUFTQyxtQkFBbUIsUUFBUSxrQ0FBaUM7QUFDckUsU0FBU0MscUNBQXFDLFFBQVEsdUNBQXNDO0FBRTVGLGFBQWE7QUFDYixNQUFNQyxXQUFXO0FBQ2pCLE1BQU1DLFNBQVMsQ0FBQztBQUNoQixNQUFNQyxnQkFBZ0I7QUEwQnRCLE1BQU1DLFFBQVE7SUFDWkMsT0FBTztJQUNQQyxRQUFRO0FBQ1Y7QUFFQSxTQUFTQyxhQUFhQyxRQUFlLEVBQUVDLE9BQWMsRUFBRUMsWUFBb0IsRUFBRTtJQUMzRSxNQUFNQyxLQUFLSCxTQUFTSSxDQUFDLEdBQUdILFFBQVFHLENBQUM7SUFDakMsTUFBTUMsS0FBS0wsU0FBU00sQ0FBQyxHQUFHTCxRQUFRSyxDQUFDO0lBQ2pDLE9BQU9ILEtBQUtBLEtBQUtFLEtBQUtBLE1BQU1ILFlBQVlBO0FBQzFDO0FBRUEsT0FBTyxTQUFTSyxvQkFBb0JWLEtBQVk7SUFDOUMsTUFBTSxFQUNKVyxVQUFVLEVBQ1ZDLGlCQUFpQixFQUFFLEVBQ25CQyxNQUFNLEVBQ05DLFFBQVEsS0FBSyxFQUNiQyxtQkFBbUIsQ0FBQyxFQUNwQkMsT0FBTyxFQUFFVCxDQUFDLEVBQUVFLENBQUMsRUFBRSxFQUNmUSxhQUFhLENBQUMsRUFDZEMsbUJBQW1CLEtBQUssRUFDeEJDLFVBQVUsS0FBSyxFQUNoQixHQUFHbkI7SUFFSixZQUFZO0lBQ1osSUFDRVksaUJBQWlCLEtBQ2pCYixNQUFNQyxLQUFLLElBQ1hELE1BQU1FLE1BQU0sSUFDWkYsTUFBTUMsS0FBSyxDQUFDYyxLQUFLLEtBQUtkLE1BQU1j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
@@ -1,4 +1,4 @@
1
- import { getBoundingClientRectWithoutTransform } from './getBoundingRectWithoutTransform';
1
+ import { getBoundingClientRectWithoutTransform } from './getBoundingRectWithoutTransform.js';
2
2
  export function highlightElemOriginalPosition(debugHighlightRef, htmlElem, anchorElem) {
3
3
  if (!debugHighlightRef.current) {
4
4
  // If the ref doesn't point to an existing element, we can't set styles
@@ -24,4 +24,4 @@ export function highlightElemOriginalPosition(debugHighlightRef, htmlElem, ancho
24
24
  debugHighlightRef.current.style.opacity = '0.5';
25
25
  }
26
26
 
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy9EcmFnZ2FibGVCbG9ja1BsdWdpbi9oaWdobGlnaHRFbGVtT3JpZ2luYWxQb3NpdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBSZWFjdCBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgZ2V0Qm91bmRpbmdDbGllbnRSZWN0V2l0aG91dFRyYW5zZm9ybSB9IGZyb20gJy4vZ2V0Qm91bmRpbmdSZWN0V2l0aG91dFRyYW5zZm9ybSdcblxuZXhwb3J0IGZ1bmN0aW9uIGhpZ2hsaWdodEVsZW1PcmlnaW5hbFBvc2l0aW9uKFxuICBkZWJ1Z0hpZ2hsaWdodFJlZjogUmVhY3QuUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PixcbiAgaHRtbEVsZW06IEhUTUxFbGVtZW50LFxuICBhbmNob3JFbGVtOiBIVE1MRWxlbWVudCxcbikge1xuICBpZiAoIWRlYnVnSGlnaGxpZ2h0UmVmLmN1cnJlbnQpIHtcbiAgICAvLyBJZiB0aGUgcmVmIGRvZXNuJ3QgcG9pbnQgdG8gYW4gZXhpc3RpbmcgZWxlbWVudCwgd2UgY2FuJ3Qgc2V0IHN0eWxlc1xuICAgIHJldHVyblxuICB9XG5cbiAgY29uc3QgeyBsZWZ0OiBhbmNob3JMZWZ0LCB0b3A6IGFuY2hvclRvcCB9ID0gYW5jaG9yRWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuXG4gIC8vIEdldCBjb21wdXRlZCBzdHlsZXMgb2YgdGhlIGdpdmVuIGVsZW1lbnRcbiAgY29uc3QgYm91bmRpbmdSZWN0ID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0V2l0aG91dFRyYW5zZm9ybShodG1sRWxlbSlcblxuICAvLyBFeHRyYWN0IG5lY2Vzc2FyeSBzdHlsZXMgKGlnbm9yaW5nIHRyYW5zZm9ybSlcbiAgY29uc3Qgd2lkdGggPSBib3VuZGluZ1JlY3Qud2lkdGhcbiAgY29uc3QgaGVpZ2h0ID0gYm91bmRpbmdSZWN0LmhlaWdodFxuICBjb25zdCB0b3AgPSBib3VuZGluZ1JlY3QudG9wIC0gYW5jaG9yVG9wXG4gIGNvbnN0IGxlZnQgPSBib3VuZGluZ1JlY3QubGVmdCAtIGFuY2hvckxlZnRcblxuICBkZWJ1Z0hpZ2hsaWdodFJlZi5jdXJyZW50LnN0eWxlLmJvcmRlciA9ICcycHggc29saWQgZ3JlZW4nXG4gIGRlYnVnSGlnaGxpZ2h0UmVmLmN1cnJlbnQuc3R5bGUuYm94U2l6aW5nID0gJ2JvcmRlci1ib3gnXG4gIGRlYnVnSGlnaGxpZ2h0UmVmLmN1cnJlbnQuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0ICsgJ3B4J1xuICBkZWJ1Z0hpZ2hsaWdodFJlZi5jdXJyZW50LnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnbm9uZSdcbiAgZGVidWdIaWdobGlnaHRSZWYuY3VycmVudC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSdcbiAgZGVidWdIaWdobGlnaHRSZWYuY3VycmVudC5zdHlsZS50b3AgPSB0b3AgKyAncHgnXG4gIGRlYnVnSGlnaGxpZ2h0UmVmLmN1cnJlbnQuc3R5bGUubGVmdCA9IGxlZnQgKyAncHgnXG4gIGRlYnVnSGlnaGxpZ2h0UmVmLmN1cnJlbnQuc3R5bGUud2lkdGggPSB3aWR0aCArICdweCdcbiAgZGVidWdIaWdobGlnaHRSZWYuY3VycmVudC5zdHlsZS56SW5kZXggPSAnMTAwMCdcbiAgZGVidWdIaWdobGlnaHRSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbn1cbiJdLCJuYW1lcyI6WyJnZXRCb3VuZGluZ0NsaWVudFJlY3RXaXRob3V0VHJhbnNmb3JtIiwiaGlnaGxpZ2h0RWxlbU9yaWdpbmFsUG9zaXRpb24iLCJkZWJ1Z0hpZ2hsaWdodFJlZiIsImh0bWxFbGVtIiwiYW5jaG9yRWxlbSIsImN1cnJlbnQiLCJsZWZ0IiwiYW5jaG9yTGVmdCIsInRvcCIsImFuY2hvclRvcCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImJvdW5kaW5nUmVjdCIsIndpZHRoIiwiaGVpZ2h0Iiwic3R5bGUiLCJib3JkZXIiLCJib3hTaXppbmciLCJwb2ludGVyRXZlbnRzIiwicG9zaXRpb24iLCJ6SW5kZXgiLCJvcGFjaXR5Il0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSxxQ0FBcUMsUUFBUSxvQ0FBbUM7QUFFekYsT0FBTyxTQUFTQyw4QkFDZEMsaUJBQWtELEVBQ2xEQyxRQUFxQixFQUNyQkMsVUFBdUI7SUFFdkIsSUFBSSxDQUFDRixrQkFBa0JHLE9BQU8sRUFBRTtRQUM5Qix1RUFBdUU7UUFDdkU7SUFDRjtJQUVBLE1BQU0sRUFBRUMsTUFBTUMsVUFBVSxFQUFFQyxLQUFLQyxTQUFTLEVBQUUsR0FBR0wsV0FBV00scUJBQXFCO0lBRTdFLDJDQUEyQztJQUMzQyxNQUFNQyxlQUFlWCxzQ0FBc0NHO0lBRTNELGdEQUFnRDtJQUNoRCxNQUFNUyxRQUFRRCxhQUFhQyxLQUFLO0lBQ2hDLE1BQU1DLFNBQVNGLGFBQWFFLE1BQU07SUFDbEMsTUFBTUwsTUFBTUcsYUFBYUgsR0FBRyxHQUFHQztJQUMvQixNQUFNSCxPQUFPSyxhQUFhTCxJQUFJLEdBQUdDO0lBRWpDTCxrQkFBa0JHLE9BQU8sQ0FBQ1MsS0FBSyxDQUFDQyxNQUFNLEdBQUc7SUFDekNiLGtCQUFrQkcsT0FBTyxDQUFDUyxLQUFLLENBQUNFLFNBQVMsR0FBRztJQUM1Q2Qsa0JBQWtCRyxPQUFPLENBQUNTLEtBQUssQ0FBQ0QsTUFBTSxHQUFHQSxTQUFTO0lBQ2xEWCxrQkFBa0JHLE9BQU8sQ0FBQ1MsS0FBSyxDQUFDRyxhQUFhLEdBQUc7SUFDaERmLGtCQUFrQkcsT0FBTyxDQUFDUyxLQUFLLENBQUNJLFFBQVEsR0FBRztJQUMzQ2hCLGtCQUFrQkcsT0FBTyxDQUFDUyxLQUFLLENBQUNOLEdBQUcsR0FBR0EsTUFBTTtJQUM1Q04sa0JBQWtCRyxPQUFPLENBQUNTLEtBQUssQ0FBQ1IsSUFBSSxHQUFHQSxPQUFPO0lBQzlDSixrQkFBa0JHLE9BQU8sQ0FBQ1MsS0FBSyxDQUFDRixLQUFLLEdBQUdBLFFBQVE7SUFDaERWLGtCQUFrQkcsT0FBTyxDQUFDUyxLQUFLLENBQUNLLE1BQU0sR0FBRztJQUN6Q2pCLGtCQUFrQkcsT0FBTyxDQUFDUyxLQUFLLENBQUNNLE9BQU8sR0FBRztBQUM1QyJ9
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy9EcmFnZ2FibGVCbG9ja1BsdWdpbi9oaWdobGlnaHRFbGVtT3JpZ2luYWxQb3NpdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBSZWFjdCBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgZ2V0Qm91bmRpbmdDbGllbnRSZWN0V2l0aG91dFRyYW5zZm9ybSB9IGZyb20gJy4vZ2V0Qm91bmRpbmdSZWN0V2l0aG91dFRyYW5zZm9ybS5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIGhpZ2hsaWdodEVsZW1PcmlnaW5hbFBvc2l0aW9uKFxuICBkZWJ1Z0hpZ2hsaWdodFJlZjogUmVhY3QuUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PixcbiAgaHRtbEVsZW06IEhUTUxFbGVtZW50LFxuICBhbmNob3JFbGVtOiBIVE1MRWxlbWVudCxcbikge1xuICBpZiAoIWRlYnVnSGlnaGxpZ2h0UmVmLmN1cnJlbnQpIHtcbiAgICAvLyBJZiB0aGUgcmVmIGRvZXNuJ3QgcG9pbnQgdG8gYW4gZXhpc3RpbmcgZWxlbWVudCwgd2UgY2FuJ3Qgc2V0IHN0eWxlc1xuICAgIHJldHVyblxuICB9XG5cbiAgY29uc3QgeyBsZWZ0OiBhbmNob3JMZWZ0LCB0b3A6IGFuY2hvclRvcCB9ID0gYW5jaG9yRWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuXG4gIC8vIEdldCBjb21wdXRlZCBzdHlsZXMgb2YgdGhlIGdpdmVuIGVsZW1lbnRcbiAgY29uc3QgYm91bmRpbmdSZWN0ID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0V2l0aG91dFRyYW5zZm9ybShodG1sRWxlbSlcblxuICAvLyBFeHRyYWN0IG5lY2Vzc2FyeSBzdHlsZXMgKGlnbm9yaW5nIHRyYW5zZm9ybSlcbiAgY29uc3Qgd2lkdGggPSBib3VuZGluZ1JlY3Qud2lkdGhcbiAgY29uc3QgaGVpZ2h0ID0gYm91bmRpbmdSZWN0LmhlaWdodFxuICBjb25zdCB0b3AgPSBib3VuZGluZ1JlY3QudG9wIC0gYW5jaG9yVG9wXG4gIGNvbnN0IGxlZnQgPSBib3VuZGluZ1JlY3QubGVmdCAtIGFuY2hvckxlZnRcblxuICBkZWJ1Z0hpZ2hsaWdodFJlZi5jdXJyZW50LnN0eWxlLmJvcmRlciA9ICcycHggc29saWQgZ3JlZW4nXG4gIGRlYnVnSGlnaGxpZ2h0UmVmLmN1cnJlbnQuc3R5bGUuYm94U2l6aW5nID0gJ2JvcmRlci1ib3gnXG4gIGRlYnVnSGlnaGxpZ2h0UmVmLmN1cnJlbnQuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0ICsgJ3B4J1xuICBkZWJ1Z0hpZ2hsaWdodFJlZi5jdXJyZW50LnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnbm9uZSdcbiAgZGVidWdIaWdobGlnaHRSZWYuY3VycmVudC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSdcbiAgZGVidWdIaWdobGlnaHRSZWYuY3VycmVudC5zdHlsZS50b3AgPSB0b3AgKyAncHgnXG4gIGRlYnVnSGlnaGxpZ2h0UmVmLmN1cnJlbnQuc3R5bGUubGVmdCA9IGxlZnQgKyAncHgnXG4gIGRlYnVnSGlnaGxpZ2h0UmVmLmN1cnJlbnQuc3R5bGUud2lkdGggPSB3aWR0aCArICdweCdcbiAgZGVidWdIaWdobGlnaHRSZWYuY3VycmVudC5zdHlsZS56SW5kZXggPSAnMTAwMCdcbiAgZGVidWdIaWdobGlnaHRSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbn1cbiJdLCJuYW1lcyI6WyJnZXRCb3VuZGluZ0NsaWVudFJlY3RXaXRob3V0VHJhbnNmb3JtIiwiaGlnaGxpZ2h0RWxlbU9yaWdpbmFsUG9zaXRpb24iLCJkZWJ1Z0hpZ2hsaWdodFJlZiIsImh0bWxFbGVtIiwiYW5jaG9yRWxlbSIsImN1cnJlbnQiLCJsZWZ0IiwiYW5jaG9yTGVmdCIsInRvcCIsImFuY2hvclRvcCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImJvdW5kaW5nUmVjdCIsIndpZHRoIiwiaGVpZ2h0Iiwic3R5bGUiLCJib3JkZXIiLCJib3hTaXppbmciLCJwb2ludGVyRXZlbnRzIiwicG9zaXRpb24iLCJ6SW5kZXgiLCJvcGFjaXR5Il0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSxxQ0FBcUMsUUFBUSx1Q0FBc0M7QUFFNUYsT0FBTyxTQUFTQyw4QkFDZEMsaUJBQWtELEVBQ2xEQyxRQUFxQixFQUNyQkMsVUFBdUI7SUFFdkIsSUFBSSxDQUFDRixrQkFBa0JHLE9BQU8sRUFBRTtRQUM5Qix1RUFBdUU7UUFDdkU7SUFDRjtJQUVBLE1BQU0sRUFBRUMsTUFBTUMsVUFBVSxFQUFFQyxLQUFLQyxTQUFTLEVBQUUsR0FBR0wsV0FBV00scUJBQXFCO0lBRTdFLDJDQUEyQztJQUMzQyxNQUFNQyxlQUFlWCxzQ0FBc0NHO0lBRTNELGdEQUFnRDtJQUNoRCxNQUFNUyxRQUFRRCxhQUFhQyxLQUFLO0lBQ2hDLE1BQU1DLFNBQVNGLGFBQWFFLE1BQU07SUFDbEMsTUFBTUwsTUFBTUcsYUFBYUgsR0FBRyxHQUFHQztJQUMvQixNQUFNSCxPQUFPSyxhQUFhTCxJQUFJLEdBQUdDO0lBRWpDTCxrQkFBa0JHLE9BQU8sQ0FBQ1MsS0FBSyxDQUFDQyxNQUFNLEdBQUc7SUFDekNiLGtCQUFrQkcsT0FBTyxDQUFDUyxLQUFLLENBQUNFLFNBQVMsR0FBRztJQUM1Q2Qsa0JBQWtCRyxPQUFPLENBQUNTLEtBQUssQ0FBQ0QsTUFBTSxHQUFHQSxTQUFTO0lBQ2xEWCxrQkFBa0JHLE9BQU8sQ0FBQ1MsS0FBSyxDQUFDRyxhQUFhLEdBQUc7SUFDaERmLGtCQUFrQkcsT0FBTyxDQUFDUyxLQUFLLENBQUNJLFFBQVEsR0FBRztJQUMzQ2hCLGtCQUFrQkcsT0FBTyxDQUFDUyxLQUFLLENBQUNOLEdBQUcsR0FBR0EsTUFBTTtJQUM1Q04sa0JBQWtCRyxPQUFPLENBQUNTLEtBQUssQ0FBQ1IsSUFBSSxHQUFHQSxPQUFPO0lBQzlDSixrQkFBa0JHLE9BQU8sQ0FBQ1MsS0FBSyxDQUFDRixLQUFLLEdBQUdBLFFBQVE7SUFDaERWLGtCQUFrQkcsT0FBTyxDQUFDUyxLQUFLLENBQUNLLE1BQU0sR0FBRztJQUN6Q2pCLGtCQUFrQkcsT0FBTyxDQUFDUyxLQUFLLENBQUNNLE9BQU8sR0FBRztBQUM1QyJ9