nsc-react-component 2.10.30 → 3.0.0

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 (355) hide show
  1. package/.babelrc +2 -2
  2. package/lib/Interface.js +1 -1
  3. package/lib/Interface.js.map +1 -0
  4. package/lib/base/affix/index.js +5 -47
  5. package/lib/base/affix/index.js.map +1 -0
  6. package/lib/base/alert/index.js +5 -47
  7. package/lib/base/alert/index.js.map +1 -0
  8. package/lib/base/anchor/index.d.ts +1 -1
  9. package/lib/base/anchor/index.js +8 -50
  10. package/lib/base/anchor/index.js.map +1 -0
  11. package/lib/base/avatar/index.d.ts +1 -1
  12. package/lib/base/avatar/index.js +8 -50
  13. package/lib/base/avatar/index.js.map +1 -0
  14. package/lib/base/backTop/index.js +5 -47
  15. package/lib/base/backTop/index.js.map +1 -0
  16. package/lib/base/badge/index.d.ts +1 -1
  17. package/lib/base/badge/index.js +8 -50
  18. package/lib/base/badge/index.js.map +1 -0
  19. package/lib/base/breadcrumb/index.js +5 -47
  20. package/lib/base/breadcrumb/index.js.map +1 -0
  21. package/lib/base/button/index.d.ts +1 -1
  22. package/lib/base/button/index.js +93 -135
  23. package/lib/base/button/index.js.map +1 -0
  24. package/lib/base/calendar/index.js +5 -47
  25. package/lib/base/calendar/index.js.map +1 -0
  26. package/lib/base/card/index.d.ts +2 -2
  27. package/lib/base/card/index.js +8 -51
  28. package/lib/base/card/index.js.map +1 -0
  29. package/lib/base/carousel/index.js +5 -47
  30. package/lib/base/carousel/index.js.map +1 -0
  31. package/lib/base/cascader/index.d.ts +3 -3
  32. package/lib/base/cascader/index.js +156 -224
  33. package/lib/base/cascader/index.js.map +1 -0
  34. package/lib/base/chart/index.d.ts +2 -2
  35. package/lib/base/chart/index.js +177 -287
  36. package/lib/base/chart/index.js.map +1 -0
  37. package/lib/base/checkbox/CheckboxGroup.d.ts +3 -3
  38. package/lib/base/checkbox/CheckboxGroup.js +165 -259
  39. package/lib/base/checkbox/CheckboxGroup.js.map +1 -0
  40. package/lib/base/checkbox/index.d.ts +2 -2
  41. package/lib/base/checkbox/index.js +8 -49
  42. package/lib/base/checkbox/index.js.map +1 -0
  43. package/lib/base/collapse/index.d.ts +1 -1
  44. package/lib/base/collapse/index.js +8 -50
  45. package/lib/base/collapse/index.js.map +1 -0
  46. package/lib/base/colorpicker/index.d.ts +5 -0
  47. package/lib/base/colorpicker/index.js +8 -0
  48. package/lib/base/colorpicker/index.js.map +1 -0
  49. package/lib/base/common/BodyRow/index.js +48 -102
  50. package/lib/base/common/BodyRow/index.js.map +1 -0
  51. package/lib/base/common/EllipseCell/index.d.ts +1 -1
  52. package/lib/base/common/EllipseCell/index.js +16 -58
  53. package/lib/base/common/EllipseCell/index.js.map +1 -0
  54. package/lib/base/common/FileIcon.d.ts +2 -2
  55. package/lib/base/common/FileIcon.js +86 -132
  56. package/lib/base/common/FileIcon.js.map +1 -0
  57. package/lib/base/common/Icon.d.ts +2 -2
  58. package/lib/base/common/Icon.js +42 -96
  59. package/lib/base/common/Icon.js.map +1 -0
  60. package/lib/base/common/IconData.js +2 -2
  61. package/lib/base/common/IconData.js.map +1 -0
  62. package/lib/base/common/IconFont.d.ts +2 -2
  63. package/lib/base/common/IconFont.js +7 -8
  64. package/lib/base/common/IconFont.js.map +1 -0
  65. package/lib/base/common/NoAuthority.d.ts +2 -2
  66. package/lib/base/common/NoAuthority.js +13 -53
  67. package/lib/base/common/NoAuthority.js.map +1 -0
  68. package/lib/base/common/NoData.d.ts +2 -2
  69. package/lib/base/common/NoData.js +29 -74
  70. package/lib/base/common/NoData.js.map +1 -0
  71. package/lib/base/common/NoData.less +8 -2
  72. package/lib/base/common/NoMessage.d.ts +2 -2
  73. package/lib/base/common/NoMessage.js +30 -70
  74. package/lib/base/common/NoMessage.js.map +1 -0
  75. package/lib/base/common/NoNetWork.d.ts +2 -2
  76. package/lib/base/common/NoNetWork.js +30 -70
  77. package/lib/base/common/NoNetWork.js.map +1 -0
  78. package/lib/base/common/Page404.d.ts +2 -2
  79. package/lib/base/common/Page404.js +30 -70
  80. package/lib/base/common/Page404.js.map +1 -0
  81. package/lib/base/common/PageRequest.js +91 -154
  82. package/lib/base/common/PageRequest.js.map +1 -0
  83. package/lib/base/common/TreePanel.d.ts +1 -1
  84. package/lib/base/common/TreePanel.js +133 -212
  85. package/lib/base/common/TreePanel.js.map +1 -0
  86. package/lib/base/common/iconfontalibaba.js +15 -22
  87. package/lib/base/common/iconfontalibaba.js.map +1 -0
  88. package/lib/base/common/withZhLocale.d.ts +1 -1
  89. package/lib/base/common/withZhLocale.js +3 -8
  90. package/lib/base/common/withZhLocale.js.map +1 -0
  91. package/lib/base/configProvider/index.js +8 -50
  92. package/lib/base/configProvider/index.js.map +1 -0
  93. package/lib/base/datepick/Rangepicker.d.ts +4 -4
  94. package/lib/base/datepick/Rangepicker.js +231 -330
  95. package/lib/base/datepick/Rangepicker.js.map +1 -0
  96. package/lib/base/datepick/index.d.ts +2 -2
  97. package/lib/base/datepick/index.js +56 -115
  98. package/lib/base/datepick/index.js.map +1 -0
  99. package/lib/base/datepick/index.less +5 -5
  100. package/lib/base/descriptions/index.d.ts +1 -1
  101. package/lib/base/descriptions/index.js +8 -50
  102. package/lib/base/descriptions/index.js.map +1 -0
  103. package/lib/base/divider/index.js +5 -47
  104. package/lib/base/divider/index.js.map +1 -0
  105. package/lib/base/download/index.js +42 -84
  106. package/lib/base/download/index.js.map +1 -0
  107. package/lib/base/drawer/index.d.ts +2 -11
  108. package/lib/base/drawer/index.js +8 -57
  109. package/lib/base/drawer/index.js.map +1 -0
  110. package/lib/base/dropdown/index.js +19 -66
  111. package/lib/base/dropdown/index.js.map +1 -0
  112. package/lib/base/editor/index.d.ts +1 -1
  113. package/lib/base/editor/index.js +83 -128
  114. package/lib/base/editor/index.js.map +1 -0
  115. package/lib/base/errorboundary/index.js +19 -63
  116. package/lib/base/errorboundary/index.js.map +1 -0
  117. package/lib/base/form/Form.d.ts +2 -2
  118. package/lib/base/form/Form.js +302 -429
  119. package/lib/base/form/Form.js.map +1 -0
  120. package/lib/base/form/filed/Cascader.d.ts +2 -2
  121. package/lib/base/form/filed/Cascader.js +6 -45
  122. package/lib/base/form/filed/Cascader.js.map +1 -0
  123. package/lib/base/form/filed/Checkbox.d.ts +2 -2
  124. package/lib/base/form/filed/Checkbox.js +6 -45
  125. package/lib/base/form/filed/Checkbox.js.map +1 -0
  126. package/lib/base/form/filed/DatePicker.d.ts +2 -2
  127. package/lib/base/form/filed/DatePicker.js +6 -45
  128. package/lib/base/form/filed/DatePicker.js.map +1 -0
  129. package/lib/base/form/filed/FormItem.d.ts +2 -2
  130. package/lib/base/form/filed/FormItem.js +64 -128
  131. package/lib/base/form/filed/FormItem.js.map +1 -0
  132. package/lib/base/form/filed/Input.d.ts +2 -2
  133. package/lib/base/form/filed/Input.js +14 -51
  134. package/lib/base/form/filed/Input.js.map +1 -0
  135. package/lib/base/form/filed/InputEamil.d.ts +2 -2
  136. package/lib/base/form/filed/InputEamil.js +5 -44
  137. package/lib/base/form/filed/InputEamil.js.map +1 -0
  138. package/lib/base/form/filed/InputNumber.d.ts +2 -2
  139. package/lib/base/form/filed/InputNumber.js +5 -44
  140. package/lib/base/form/filed/InputNumber.js.map +1 -0
  141. package/lib/base/form/filed/InputPassword.d.ts +2 -2
  142. package/lib/base/form/filed/InputPassword.js +5 -44
  143. package/lib/base/form/filed/InputPassword.js.map +1 -0
  144. package/lib/base/form/filed/Item.d.ts +3 -3
  145. package/lib/base/form/filed/Item.js +90 -164
  146. package/lib/base/form/filed/Item.js.map +1 -0
  147. package/lib/base/form/filed/Radio.d.ts +2 -2
  148. package/lib/base/form/filed/Radio.js +7 -45
  149. package/lib/base/form/filed/Radio.js.map +1 -0
  150. package/lib/base/form/filed/RangerPicker.d.ts +2 -2
  151. package/lib/base/form/filed/RangerPicker.js +6 -45
  152. package/lib/base/form/filed/RangerPicker.js.map +1 -0
  153. package/lib/base/form/filed/Rate.d.ts +2 -2
  154. package/lib/base/form/filed/Rate.js +6 -47
  155. package/lib/base/form/filed/Rate.js.map +1 -0
  156. package/lib/base/form/filed/Select.d.ts +2 -2
  157. package/lib/base/form/filed/Select.js +9 -49
  158. package/lib/base/form/filed/Select.js.map +1 -0
  159. package/lib/base/form/filed/Slider.d.ts +2 -2
  160. package/lib/base/form/filed/Slider.js +6 -47
  161. package/lib/base/form/filed/Slider.js.map +1 -0
  162. package/lib/base/form/filed/Switch.d.ts +2 -2
  163. package/lib/base/form/filed/Switch.js +6 -47
  164. package/lib/base/form/filed/Switch.js.map +1 -0
  165. package/lib/base/form/filed/TagSelect.d.ts +2 -2
  166. package/lib/base/form/filed/TagSelect.js +6 -45
  167. package/lib/base/form/filed/TagSelect.js.map +1 -0
  168. package/lib/base/form/filed/TextArea.d.ts +2 -2
  169. package/lib/base/form/filed/TextArea.js +5 -44
  170. package/lib/base/form/filed/TextArea.js.map +1 -0
  171. package/lib/base/form/filed/Upload.d.ts +2 -2
  172. package/lib/base/form/filed/Upload.js +9 -45
  173. package/lib/base/form/filed/Upload.js.map +1 -0
  174. package/lib/base/form/index.d.ts +2 -2
  175. package/lib/base/form/index.js +17 -59
  176. package/lib/base/form/index.js.map +1 -0
  177. package/lib/base/grid/Col.js +5 -47
  178. package/lib/base/grid/Col.js.map +1 -0
  179. package/lib/base/grid/Row.js +5 -47
  180. package/lib/base/grid/Row.js.map +1 -0
  181. package/lib/base/grid/index.js +1 -1
  182. package/lib/base/grid/index.js.map +1 -0
  183. package/lib/base/iframe/index.d.ts +1 -1
  184. package/lib/base/iframe/index.js +44 -94
  185. package/lib/base/iframe/index.js.map +1 -0
  186. package/lib/base/image/index.js +159 -260
  187. package/lib/base/image/index.js.map +1 -0
  188. package/lib/base/input/Email.d.ts +2 -2
  189. package/lib/base/input/Email.js +55 -104
  190. package/lib/base/input/Email.js.map +1 -0
  191. package/lib/base/input/Number.d.ts +1 -1
  192. package/lib/base/input/Number.js +46 -105
  193. package/lib/base/input/Number.js.map +1 -0
  194. package/lib/base/input/Password.d.ts +1 -1
  195. package/lib/base/input/Password.js +46 -105
  196. package/lib/base/input/Password.js.map +1 -0
  197. package/lib/base/input/Search.d.ts +1 -1
  198. package/lib/base/input/Search.js +44 -103
  199. package/lib/base/input/Search.js.map +1 -0
  200. package/lib/base/input/TextArea.d.ts +1 -1
  201. package/lib/base/input/TextArea.js +62 -124
  202. package/lib/base/input/TextArea.js.map +1 -0
  203. package/lib/base/input/index.d.ts +3 -3
  204. package/lib/base/input/index.js +119 -196
  205. package/lib/base/input/index.js.map +1 -0
  206. package/lib/base/layout/index.d.ts +3 -3
  207. package/lib/base/layout/index.js +14 -57
  208. package/lib/base/layout/index.js.map +1 -0
  209. package/lib/base/list/index.d.ts +1 -1
  210. package/lib/base/list/index.js +8 -50
  211. package/lib/base/list/index.js.map +1 -0
  212. package/lib/base/menu/index.d.ts +7 -7
  213. package/lib/base/menu/index.js +100 -166
  214. package/lib/base/menu/index.js.map +1 -0
  215. package/lib/base/message/index.d.ts +8 -9
  216. package/lib/base/message/index.js +5 -49
  217. package/lib/base/message/index.js.map +1 -0
  218. package/lib/base/modal/Confirm.d.ts +1 -1
  219. package/lib/base/modal/Confirm.js +15 -23
  220. package/lib/base/modal/Confirm.js.map +1 -0
  221. package/lib/base/modal/index.d.ts +8 -8
  222. package/lib/base/modal/index.js +275 -363
  223. package/lib/base/modal/index.js.map +1 -0
  224. package/lib/base/modal/index.less +8 -8
  225. package/lib/base/notification/index.d.ts +8 -10
  226. package/lib/base/notification/index.js +12 -57
  227. package/lib/base/notification/index.js.map +1 -0
  228. package/lib/base/pagination/index.js +5 -47
  229. package/lib/base/pagination/index.js.map +1 -0
  230. package/lib/base/pdfviwer/index.d.ts +1 -1
  231. package/lib/base/pdfviwer/index.js +68 -93
  232. package/lib/base/pdfviwer/index.js.map +1 -0
  233. package/lib/base/popconfirm/index.js +5 -47
  234. package/lib/base/popconfirm/index.js.map +1 -0
  235. package/lib/base/popover/index.js +19 -66
  236. package/lib/base/popover/index.js.map +1 -0
  237. package/lib/base/progress/index.js +5 -47
  238. package/lib/base/progress/index.js.map +1 -0
  239. package/lib/base/qecode/index.d.ts +5 -0
  240. package/lib/base/qecode/index.js +8 -0
  241. package/lib/base/qecode/index.js.map +1 -0
  242. package/lib/base/radio/RadioGroup.d.ts +1 -1
  243. package/lib/base/radio/RadioGroup.js +198 -296
  244. package/lib/base/radio/RadioGroup.js.map +1 -0
  245. package/lib/base/radio/index.d.ts +2 -2
  246. package/lib/base/radio/index.js +8 -51
  247. package/lib/base/radio/index.js.map +1 -0
  248. package/lib/base/result/index.js +5 -47
  249. package/lib/base/result/index.js.map +1 -0
  250. package/lib/base/select/index.d.ts +4 -4
  251. package/lib/base/select/index.js +351 -468
  252. package/lib/base/select/index.js.map +1 -0
  253. package/lib/base/skeleton/index.js +5 -47
  254. package/lib/base/skeleton/index.js.map +1 -0
  255. package/lib/base/space/index.js +5 -47
  256. package/lib/base/space/index.js.map +1 -0
  257. package/lib/base/spin/index.js +5 -47
  258. package/lib/base/spin/index.js.map +1 -0
  259. package/lib/base/statistic/index.d.ts +1 -1
  260. package/lib/base/statistic/index.js +8 -50
  261. package/lib/base/statistic/index.js.map +1 -0
  262. package/lib/base/steps/index.d.ts +1 -1
  263. package/lib/base/steps/index.js +8 -50
  264. package/lib/base/steps/index.js.map +1 -0
  265. package/lib/base/switch/index.js +5 -47
  266. package/lib/base/switch/index.js.map +1 -0
  267. package/lib/base/table/index.d.ts +9 -8
  268. package/lib/base/table/index.js +747 -934
  269. package/lib/base/table/index.js.map +1 -0
  270. package/lib/base/table/index.module.less +14 -12
  271. package/lib/base/tabs/Tabpane.d.ts +1 -1
  272. package/lib/base/tabs/Tabpane.js +22 -59
  273. package/lib/base/tabs/Tabpane.js.map +1 -0
  274. package/lib/base/tabs/index.d.ts +1 -1
  275. package/lib/base/tabs/index.js +110 -158
  276. package/lib/base/tabs/index.js.map +1 -0
  277. package/lib/base/tabs/index.less +4 -4
  278. package/lib/base/tagSelect/TagSelect.d.ts +3 -3
  279. package/lib/base/tagSelect/TagSelect.js +124 -214
  280. package/lib/base/tagSelect/TagSelect.js.map +1 -0
  281. package/lib/base/tagSelect/index.d.ts +3 -3
  282. package/lib/base/tagSelect/index.js +90 -145
  283. package/lib/base/tagSelect/index.js.map +1 -0
  284. package/lib/base/tagSelect/index.less +4 -4
  285. package/lib/base/timeline/index.js +8 -50
  286. package/lib/base/timeline/index.js.map +1 -0
  287. package/lib/base/tooltip/index.js +19 -66
  288. package/lib/base/tooltip/index.js.map +1 -0
  289. package/lib/base/tour/index.d.ts +5 -0
  290. package/lib/base/tour/index.js +8 -0
  291. package/lib/base/tour/index.js.map +1 -0
  292. package/lib/base/transfer/index.js +5 -47
  293. package/lib/base/transfer/index.js.map +1 -0
  294. package/lib/base/tree/TreeSearch.d.ts +3 -3
  295. package/lib/base/tree/TreeSearch.js +121 -194
  296. package/lib/base/tree/TreeSearch.js.map +1 -0
  297. package/lib/base/tree/index.d.ts +7 -7
  298. package/lib/base/tree/index.js +169 -243
  299. package/lib/base/tree/index.js.map +1 -0
  300. package/lib/base/treeselect/index.js +5 -47
  301. package/lib/base/treeselect/index.js.map +1 -0
  302. package/lib/base/typography/index.js +5 -47
  303. package/lib/base/typography/index.js.map +1 -0
  304. package/lib/base/upload/Dragger.js +363 -542
  305. package/lib/base/upload/Dragger.js.map +1 -0
  306. package/lib/base/upload/Upload.d.ts +3 -1
  307. package/lib/base/upload/Upload.js +352 -530
  308. package/lib/base/upload/Upload.js.map +1 -0
  309. package/lib/base/upload/index copy.d.ts +1 -1
  310. package/lib/base/upload/index copy.js +315 -432
  311. package/lib/base/upload/index copy.js.map +1 -0
  312. package/lib/base/upload/index.js +365 -591
  313. package/lib/base/upload/index.js.map +1 -0
  314. package/lib/base/upload/index.less +12 -12
  315. package/lib/base/watermark/index.d.ts +5 -0
  316. package/lib/base/watermark/index.js +8 -0
  317. package/lib/base/watermark/index.js.map +1 -0
  318. package/lib/config.js +5 -8
  319. package/lib/config.js.map +1 -0
  320. package/lib/constants.js +2 -2
  321. package/lib/constants.js.map +1 -0
  322. package/lib/index.d.ts +4 -2
  323. package/lib/index.js +6 -3
  324. package/lib/index.js.map +1 -0
  325. package/lib/page/BasePage/Form.d.ts +1 -1
  326. package/lib/page/BasePage/Form.js +253 -360
  327. package/lib/page/BasePage/Form.js.map +1 -0
  328. package/lib/page/BasePage/index copy.d.ts +107 -0
  329. package/lib/page/BasePage/index copy.js +857 -0
  330. package/lib/page/BasePage/index copy.js.map +1 -0
  331. package/lib/page/BasePage/index.d.ts +4 -3
  332. package/lib/page/BasePage/index.js +767 -935
  333. package/lib/page/BasePage/index.js.map +1 -0
  334. package/lib/page/BasePage/index.module copy.less +143 -0
  335. package/lib/page/BasePage/index.module.less +55 -45
  336. package/lib/page/HeaderSearch/index.d.ts +2 -1
  337. package/lib/page/HeaderSearch/index.js +198 -273
  338. package/lib/page/HeaderSearch/index.js.map +1 -0
  339. package/lib/page/HeaderSearch/index.less +7 -7
  340. package/lib/page/PasswordCheck/index.d.ts +1 -1
  341. package/lib/page/PasswordCheck/index.js +50 -109
  342. package/lib/page/PasswordCheck/index.js.map +1 -0
  343. package/lib/page/PasswordCheck/index.less +2 -2
  344. package/lib/treeUtils.js +45 -58
  345. package/lib/treeUtils.js.map +1 -0
  346. package/lib/utils.d.ts +2 -2
  347. package/lib/utils.js +48 -61
  348. package/lib/utils.js.map +1 -0
  349. package/package.json +102 -98
  350. package/.vscode/settings.json +0 -3
  351. package/lib/base/comment/index.d.ts +0 -5
  352. package/lib/base/comment/index.js +0 -50
  353. package/lib/base/form/index.less +0 -41
  354. package/lib/base/pageHeader/index.d.ts +0 -5
  355. package/lib/base/pageHeader/index.js +0 -50
@@ -1,54 +1,14 @@
1
- import "antd/es/radio/style/css";
2
1
  import _Radio from "antd/es/radio";
3
- var _excluded = ["url", "listeners", "viewname", "cached", "cacheKey"],
4
- _excluded2 = ["data", "options"];
5
-
6
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
7
-
8
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
9
-
10
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
11
-
12
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
13
-
14
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
15
-
16
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
-
18
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
19
-
20
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
21
-
22
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
23
-
24
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
25
-
2
+ const _excluded = ["url", "listeners", "viewname", "cached", "cacheKey"],
3
+ _excluded2 = ["data", "options"];
4
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
5
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
26
7
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
27
-
28
8
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
29
-
30
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
31
-
32
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
33
-
34
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
35
-
36
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
37
-
38
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
39
-
40
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
41
-
42
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
43
-
44
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
45
-
46
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
47
-
48
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
49
-
50
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
51
-
9
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
11
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
52
12
  /*
53
13
  * @Descripttion:
54
14
  * @version:
@@ -62,82 +22,64 @@ import omit from "omit.js";
62
22
  import Store from "@bj-nsc/msn";
63
23
  import { utils } from "@bj-nsc/msn/lib/utils";
64
24
  import config from "../../config";
65
-
66
- var RadioGroup = /*#__PURE__*/function (_Component) {
67
- _inherits(RadioGroup, _Component);
68
-
69
- var _super = _createSuper(RadioGroup);
70
-
71
- function RadioGroup(props) {
72
- var _this2;
73
-
74
- _classCallCheck(this, RadioGroup);
75
-
76
- _this2 = _super.call(this, props);
77
-
78
- _defineProperty(_assertThisInitialized(_this2), "state", {
25
+ export default class RadioGroup extends Component {
26
+ constructor(props) {
27
+ super(props);
28
+ _defineProperty(this, "state", {
79
29
  dataSource: [],
80
30
  dataStore: [],
81
31
  value: ""
82
32
  });
83
-
84
- _defineProperty(_assertThisInitialized(_this2), "store", {});
85
-
86
- var _this = _assertThisInitialized(_this2);
87
-
88
- var _props$store = props.store,
89
- store = _props$store === void 0 ? {} : _props$store,
90
- options = props.options,
91
- data = props.data,
92
- children = props.children,
93
- _props$addData = props.addData,
94
- addData = _props$addData === void 0 ? [] : _props$addData,
95
- _props$deleteData = props.deleteData,
96
- deleteData = _props$deleteData === void 0 ? [] : _props$deleteData,
97
- _props$viewtype = props.viewtype,
98
- viewtype = _props$viewtype === void 0 ? "sys" : _props$viewtype;
99
- var valueField = props.valueField;
100
- var viewname = store.viewname;
33
+ _defineProperty(this, "store", {});
34
+ const _this = this;
35
+ const {
36
+ store = {},
37
+ options,
38
+ data,
39
+ children,
40
+ addData = [],
41
+ deleteData = [],
42
+ viewtype = "sys"
43
+ } = props;
44
+ let {
45
+ valueField
46
+ } = props;
47
+ const {
48
+ viewname
49
+ } = store;
101
50
  valueField = valueField ? valueField : viewname ? "dictKey" : "value";
102
-
103
- var _config = config(),
104
- viewUrl = _config.viewUrl,
105
- viewBizUrl = _config.viewBizUrl;
106
-
107
- var requestViewUrl = viewtype == "sys" ? viewUrl : viewBizUrl;
108
-
51
+ let {
52
+ viewUrl,
53
+ viewBizUrl
54
+ } = config();
55
+ let requestViewUrl = viewtype == "sys" ? viewUrl : viewBizUrl;
109
56
  if (!children) {
110
- var url = store.url,
111
- _store$listeners = store.listeners,
112
- listenersPops = _store$listeners === void 0 ? {} : _store$listeners,
113
- _viewname = store.viewname,
114
- cached = store.cached,
115
- cacheKey = store.cacheKey,
116
- stores = _objectWithoutProperties(store, _excluded);
117
-
118
- if (!url && !options && !data && !_viewname) throw new Error("url、viewname、data和options不能都为空!");
119
-
120
- var getAllData = function getAllData(data) {
57
+ const {
58
+ url,
59
+ listeners: listenersPops = {},
60
+ viewname,
61
+ cached,
62
+ cacheKey
63
+ } = store,
64
+ stores = _objectWithoutProperties(store, _excluded);
65
+ if (!url && !options && !data && !viewname) throw new Error("url、viewname、data和options不能都为空!");
66
+ const getAllData = data => {
121
67
  if (!Array.isArray(data)) {
122
68
  return [];
123
69
  }
124
-
125
- var newData = _toConsumableArray(data);
126
-
70
+ let newData = [...data];
127
71
  if (addData.length > 0) {
128
- newData = [].concat(_toConsumableArray(addData), _toConsumableArray(newData));
72
+ newData = [...addData, ...newData];
129
73
  }
130
-
131
74
  if (deleteData.length > 0) {
132
- var valueFields = valueField.split(",");
133
- newData.map(function (item, i) {
134
- if (_typeof(item) === "object") {
135
- var _value = "";
136
- valueFields.map(function (v, index) {
137
- _value = index == 0 ? _value + item[v] : _value + "," + item[v];
75
+ const valueFields = valueField.split(",");
76
+ newData.map((item, i) => {
77
+ if (typeof item === "object") {
78
+ let value = "";
79
+ valueFields.map((v, index) => {
80
+ value = index == 0 ? value + item[v] : value + "," + item[v];
138
81
  });
139
-
140
- if (deleteData.indexOf(_value) > -1) {
82
+ if (deleteData.indexOf(value) > -1) {
141
83
  newData.splice(i, 1);
142
84
  }
143
85
  } else if (typeof item === "string") {
@@ -147,236 +89,196 @@ var RadioGroup = /*#__PURE__*/function (_Component) {
147
89
  }
148
90
  });
149
91
  }
150
-
151
92
  return newData;
152
93
  };
153
-
154
94
  var storeProps = _objectSpread({
155
95
  model: "model",
156
- component: _assertThisInitialized(_this2),
96
+ component: this,
157
97
  listeners: {
158
- onBeforeLoad: function onBeforeLoad(store, options) {
98
+ onBeforeLoad: function (store, options) {
159
99
  utils.callback(listenersPops.onBeforeLoad, _this, [store, options]);
160
100
  },
161
- load: function load(data, modelData, store) {
162
- var dataSource = _this.convertData(getAllData(data));
163
-
101
+ load: function (data, modelData, store) {
102
+ let dataSource = _this.convertData(getAllData(data));
164
103
  _this.setState({
165
104
  dataSource: dataSource
166
105
  });
167
-
168
106
  utils.callback(listenersPops.load, _this, [data, modelData, store]);
169
107
  },
170
- dataChanged: function dataChanged(data, modelData, store) {
108
+ dataChanged: function (data, modelData, store) {
171
109
  _this.setState({
172
110
  dataSource: _this.convertData(getAllData(data))
173
111
  });
174
-
175
112
  utils.callback(listenersPops.dataChanged, _this, [data, modelData, store]);
176
113
  }
177
114
  }
178
115
  }, stores);
179
-
180
- if ((_viewname || url) && data == null && options == null) {
181
- var isCached = cached;
182
- var isCacheKey = cacheKey;
183
-
184
- if (_viewname) {
116
+ if ((viewname || url) && data == null && options == null) {
117
+ let isCached = cached;
118
+ let isCacheKey = cacheKey;
119
+ if (viewname) {
185
120
  if (typeof cached !== "boolean") {
186
121
  isCached = true;
187
- isCacheKey = isCacheKey ? isCacheKey : _viewname;
122
+ isCacheKey = isCacheKey ? isCacheKey : viewname;
188
123
  }
189
124
  }
190
-
191
125
  storeProps = _objectSpread(_objectSpread({}, {
192
126
  autoLoad: true,
193
- url: url ? url : requestViewUrl + _viewname,
127
+ url: url ? url : requestViewUrl + viewname,
194
128
  //读字典,url固定,viewname
195
129
  cached: isCached,
196
130
  cacheKey: isCacheKey
197
131
  }), storeProps);
198
132
  }
199
-
200
- _this2.store = new Store(storeProps);
133
+ this.store = new Store(storeProps);
201
134
  }
202
-
203
- return _this2;
204
135
  }
205
-
206
- _createClass(RadioGroup, [{
207
- key: "handleActiveChange",
208
- value: function handleActiveChange(e) {
209
- var _this$props = this.props,
210
- customize = _this$props.customize,
211
- onChange = _this$props.onChange;
212
-
213
- if (customize) {
214
- onChange && onChange(e);
215
- this.setState({
216
- value: e
217
- });
218
- } else {
219
- this.setState({
220
- value: e.target.value
221
- });
222
- onChange && onChange(e.target.value, e);
223
- }
224
- }
225
- }, {
226
- key: "getValue",
227
- value: function getValue() {
228
- return this.state.value;
229
- }
230
- }, {
231
- key: "setValue",
232
- value: function setValue(value) {
136
+ handleActiveChange(e) {
137
+ const {
138
+ customize,
139
+ onChange
140
+ } = this.props;
141
+ if (customize) {
142
+ onChange && onChange(e);
233
143
  this.setState({
234
- value: value
144
+ value: e
235
145
  });
146
+ } else {
147
+ this.setState({
148
+ value: e.target.value
149
+ });
150
+ onChange && onChange(e.target.value, e);
236
151
  }
237
- }, {
238
- key: "convertData",
239
- value: function convertData(data) {
240
- var _this$props2 = this.props,
241
- _this$props2$store = _this$props2.store,
242
- store = _this$props2$store === void 0 ? {} : _this$props2$store,
243
- valueField = _this$props2.valueField,
244
- labelField = _this$props2.labelField;
245
- var viewname = store.viewname;
246
- valueField = valueField ? valueField : viewname ? "dictKey" : "value";
247
- labelField = labelField ? labelField : viewname ? "dictValue" : "label";
248
- var dataSoure = [];
249
-
250
- var _loop = function _loop(i) {
251
- if (_typeof(data[i]) === "object") {
252
- var obj = _objectSpread({}, data[i]);
253
-
254
- var _value2 = "";
255
-
256
- if (valueField.split(",").length == 1) {
257
- _value2 = data[i][valueField];
258
- } else {
259
- var valueFields = valueField.split(",");
260
- valueFields.map(function (v, index) {
261
- _value2 = index == 0 ? _value2 + data[i][v] : _value2 + "," + data[i][v];
262
- });
263
- }
264
-
265
- var label = "";
266
-
267
- if (labelField.split(",").length == 1) {
268
- label = data[i][labelField];
269
- } else {
270
- var labelFields = labelField.split(",");
271
- labelFields.map(function (l, index) {
272
- label = index == 0 ? label + data[i][l] : label + "-" + data[i][l];
273
- });
274
- }
275
-
276
- obj.label = label;
277
- obj.value = _value2;
278
- obj.disabled = data[i].disabled ? data[i].disabled : false;
279
- dataSoure.push(obj);
152
+ }
153
+ getValue() {
154
+ return this.state.value;
155
+ }
156
+ setValue(value) {
157
+ this.setState({
158
+ value: value
159
+ });
160
+ }
161
+ convertData(data) {
162
+ let {
163
+ store = {},
164
+ valueField,
165
+ labelField
166
+ } = this.props;
167
+ const {
168
+ viewname
169
+ } = store;
170
+ valueField = valueField ? valueField : viewname ? "dictKey" : "value";
171
+ labelField = labelField ? labelField : viewname ? "dictValue" : "label";
172
+ let dataSoure = [];
173
+ for (let i = 0; i < data.length; i++) {
174
+ if (typeof data[i] === "object") {
175
+ let obj = _objectSpread({}, data[i]);
176
+ let value = "";
177
+ if (valueField.split(",").length == 1) {
178
+ value = data[i][valueField];
280
179
  } else {
281
- var _obj = {};
282
- _obj.label = data[i];
283
- _obj.value = data[i];
284
- _obj.disabled = false;
285
- dataSoure.push(_obj);
180
+ const valueFields = valueField.split(",");
181
+ valueFields.map((v, index) => {
182
+ value = index == 0 ? value + data[i][v] : value + "," + data[i][v];
183
+ });
286
184
  }
287
- };
288
-
289
- for (var i = 0; i < data.length; i++) {
290
- _loop(i);
185
+ let label = "";
186
+ if (labelField.split(",").length == 1) {
187
+ label = data[i][labelField];
188
+ } else {
189
+ const labelFields = labelField.split(",");
190
+ labelFields.map((l, index) => {
191
+ label = index == 0 ? label + data[i][l] : label + "-" + data[i][l];
192
+ });
193
+ }
194
+ obj.label = label;
195
+ obj.value = value;
196
+ obj.disabled = data[i].disabled ? data[i].disabled : false;
197
+ dataSoure.push(obj);
198
+ } else {
199
+ let obj = {};
200
+ obj.label = data[i];
201
+ obj.value = data[i];
202
+ obj.disabled = false;
203
+ dataSoure.push(obj);
291
204
  }
292
-
293
- return dataSoure;
294
205
  }
295
- }, {
296
- key: "componentDidMount",
297
- value: function componentDidMount() {
298
- var _this$props3 = this.props,
299
- data = _this$props3.data,
300
- options = _this$props3.options,
301
- children = _this$props3.children;
302
-
303
- if (!children && (data || options)) {
206
+ return dataSoure;
207
+ }
208
+ componentDidMount() {
209
+ const {
210
+ data,
211
+ options,
212
+ children
213
+ } = this.props;
214
+ if (!children && (data || options)) {
215
+ this.setState({
216
+ dataSource: this.convertData(data ? data : options),
217
+ dataStore: data ? data : options
218
+ });
219
+ }
220
+ }
221
+ componentDidUpdate() {
222
+ const {
223
+ dataStore
224
+ } = this.state;
225
+ const {
226
+ data,
227
+ options
228
+ } = this.props;
229
+ const newData = data ? data : options;
230
+ if (data || options) {
231
+ if (JSON.stringify(dataStore) !== JSON.stringify(newData)) {
304
232
  this.setState({
305
- dataSource: this.convertData(data ? data : options),
306
- dataStore: data ? data : options
233
+ dataSource: this.convertData(newData),
234
+ dataStore: newData
307
235
  });
308
236
  }
309
237
  }
310
- }, {
311
- key: "componentDidUpdate",
312
- value: function componentDidUpdate() {
313
- var dataStore = this.state.dataStore;
314
- var _this$props4 = this.props,
315
- data = _this$props4.data,
316
- options = _this$props4.options;
317
- var newData = data ? data : options;
318
-
319
- if (data || options) {
320
- if (JSON.stringify(dataStore) !== JSON.stringify(newData)) {
321
- this.setState({
322
- dataSource: this.convertData(newData),
323
- dataStore: newData
324
- });
325
- }
326
- }
327
- }
328
- }, {
329
- key: "render",
330
- value: function render() {
331
- var _this3 = this;
332
-
333
- var _this$props5 = this.props,
334
- children = _this$props5.children,
335
- _this$props5$customiz = _this$props5.customize,
336
- customize = _this$props5$customiz === void 0 ? false : _this$props5$customiz;
337
- var radios;
338
- radios = children;
339
- var isArray = Array.isArray(children);
340
-
341
- if (customize) {
342
- if (isArray) {
343
- return radios.map(function (child, index) {
344
- var isActive = _this3.props.value === child.props.value ? true : false;
345
- return /*#__PURE__*/React.cloneElement(child, {
346
- label: child.props.children,
347
- value: child.props.value,
348
- active: isActive,
349
- onClick: _this3.handleActiveChange.bind(_this3, child.props.value),
350
- key: index
351
- });
352
- });
353
- } else {
354
- var isActive = this.props.value === radios.props.value ? true : false;
355
- return /*#__PURE__*/React.cloneElement(radios, {
356
- label: radios.props.children,
357
- value: radios.props.value,
238
+ }
239
+ render() {
240
+ const {
241
+ children,
242
+ customize = false
243
+ } = this.props;
244
+ let radios;
245
+ radios = children;
246
+ const isArray = Array.isArray(children);
247
+ if (customize) {
248
+ if (isArray) {
249
+ return radios.map((child, index) => {
250
+ let isActive = this.props.value === child.props.value ? true : false;
251
+ return /*#__PURE__*/React.cloneElement(child, {
252
+ label: child.props.children,
253
+ value: child.props.value,
358
254
  active: isActive,
359
- onClick: this.handleActiveChange.bind(this, radios.props.value)
255
+ onClick: this.handleActiveChange.bind(this, child.props.value),
256
+ key: index
360
257
  });
361
- }
258
+ });
362
259
  } else {
363
- var _this$props6 = this.props,
364
- data = _this$props6.data,
365
- options = _this$props6.options,
366
- params = _objectWithoutProperties(_this$props6, _excluded2);
367
-
368
- var RadioProps = omit(_objectSpread({}, params), ["store", "labelField", "valueField", "customize", "onChange", "addData", "deleteData"]);
369
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Radio.Group, _extends({
370
- value: this.state.value,
371
- options: this.state.dataSource,
372
- onChange: this.handleActiveChange.bind(this)
373
- }, RadioProps)));
260
+ let isActive = this.props.value === radios.props.value ? true : false;
261
+ return /*#__PURE__*/React.cloneElement(radios, {
262
+ label: radios.props.children,
263
+ value: radios.props.value,
264
+ active: isActive,
265
+ onClick: this.handleActiveChange.bind(this, radios.props.value)
266
+ });
374
267
  }
268
+ } else {
269
+ const _this$props = this.props,
270
+ {
271
+ data,
272
+ options
273
+ } = _this$props,
274
+ params = _objectWithoutProperties(_this$props, _excluded2);
275
+ const RadioProps = omit(_objectSpread({}, params), ["store", "labelField", "valueField", "customize", "onChange", "addData", "deleteData"]);
276
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Radio.Group, _extends({
277
+ value: this.state.value,
278
+ options: this.state.dataSource,
279
+ onChange: this.handleActiveChange.bind(this)
280
+ }, RadioProps)));
375
281
  }
376
- }]);
377
-
378
- return RadioGroup;
379
- }(Component);
380
-
381
- export { RadioGroup as default };
382
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvcmFkaW8vUmFkaW9Hcm91cC50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJDb21wb25lbnQiLCJvbWl0IiwiU3RvcmUiLCJ1dGlscyIsImNvbmZpZyIsIlJhZGlvR3JvdXAiLCJwcm9wcyIsImRhdGFTb3VyY2UiLCJkYXRhU3RvcmUiLCJ2YWx1ZSIsIl90aGlzIiwic3RvcmUiLCJvcHRpb25zIiwiZGF0YSIsImNoaWxkcmVuIiwiYWRkRGF0YSIsImRlbGV0ZURhdGEiLCJ2aWV3dHlwZSIsInZhbHVlRmllbGQiLCJ2aWV3bmFtZSIsInZpZXdVcmwiLCJ2aWV3Qml6VXJsIiwicmVxdWVzdFZpZXdVcmwiLCJ1cmwiLCJsaXN0ZW5lcnMiLCJsaXN0ZW5lcnNQb3BzIiwiY2FjaGVkIiwiY2FjaGVLZXkiLCJzdG9yZXMiLCJFcnJvciIsImdldEFsbERhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJuZXdEYXRhIiwibGVuZ3RoIiwidmFsdWVGaWVsZHMiLCJzcGxpdCIsIm1hcCIsIml0ZW0iLCJpIiwidiIsImluZGV4IiwiaW5kZXhPZiIsInNwbGljZSIsInN0b3JlUHJvcHMiLCJtb2RlbCIsImNvbXBvbmVudCIsIm9uQmVmb3JlTG9hZCIsImNhbGxiYWNrIiwibG9hZCIsIm1vZGVsRGF0YSIsImNvbnZlcnREYXRhIiwic2V0U3RhdGUiLCJkYXRhQ2hhbmdlZCIsImlzQ2FjaGVkIiwiaXNDYWNoZUtleSIsImF1dG9Mb2FkIiwiZSIsImN1c3RvbWl6ZSIsIm9uQ2hhbmdlIiwidGFyZ2V0Iiwic3RhdGUiLCJsYWJlbEZpZWxkIiwiZGF0YVNvdXJlIiwib2JqIiwibGFiZWwiLCJsYWJlbEZpZWxkcyIsImwiLCJkaXNhYmxlZCIsInB1c2giLCJKU09OIiwic3RyaW5naWZ5IiwicmFkaW9zIiwiY2hpbGQiLCJpc0FjdGl2ZSIsImNsb25lRWxlbWVudCIsImFjdGl2ZSIsIm9uQ2xpY2siLCJoYW5kbGVBY3RpdmVDaGFuZ2UiLCJi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QyxFQU1yQyxTQU5xQyxFQU9yQyxZQVBxQyxDQUFoQixDQUF2QjtBQVNBLDRCQUNFLHVEQUNFLDJCQUFPLEtBQVA7QUFDRSxVQUFBLEtBQUssRUFBRSxLQUFLcEIsS0FBTCxDQUFXcEQsS0FEcEI7QUFFRSxVQUFBLE9BQU8sRUFBRSxLQUFLb0QsS0FBTCxDQUFXdEQsVUFGdEI7QUFHRSxVQUFBLFFBQVEsRUFBRSxLQUFLdUUsa0JBQUwsQ0FBd0JDLElBQXhCLENBQTZCLElBQTdCO0FBSFosV0FJTUcsVUFKTixFQURGLENBREY7QUFVRDtBQUNGOzs7O0VBdlBxQ2xGLFM7O1NBQW5CSyxVIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQERlc2NyaXB0dGlvbjpcclxuICogQHZlcnNpb246XHJcbiAqIEBBdXRob3I6IHJ4emh1XHJcbiAqIEBEYXRlOiAyMDIxLTAzLTI0IDE0OjMzOjM1XHJcbiAqIEBMYXN0RWRpdG9yczogcnh6aHVcclxuICogQExhc3RFZGl0VGltZTogMjAyMS0wNC0yMyAxNjo0NjoxN1xyXG4gKi9cclxuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBSYWRpbywgUmFkaW9Hcm91cFByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IFN0b3JlLCB7IFN0b3JlUHJvcHMgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3V0aWxzXCI7XHJcbmltcG9ydCBjb25maWcgZnJvbSBcIi4uLy4uL2NvbmZpZ1wiO1xyXG5cclxuaW50ZXJmYWNlIElSYWRpb0dyb3VwUHJvcHMgZXh0ZW5kcyBSYWRpb0dyb3VwUHJvcHMge1xyXG4gIGN1c3RvbWl6ZT86IGJvb2xlYW47XHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIGRhdGE/OiBBcnJheTxzdHJpbmcgfCBPYmplY3Q+OyAvL+m7mOiupOaVsOaNrlxyXG4gIGxhYmVsRmllbGQ/OiBzdHJpbmc7XHJcbiAgdmFsdWVGaWVsZD86IHN0cmluZztcclxuICBhZGREYXRhPzogQXJyYXk8c3RyaW5nIHwgT2JqZWN0PjsgLy/kuI5zdG9yZeS4gOi1t+eUqFxyXG4gIGRlbGV0ZURhdGE/OiBBcnJheTxzdHJpbmc+O1xyXG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBhbnksIGU/OiBhbnkpID0+IHZvaWQ7XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmFkaW9Hcm91cCBleHRlbmRzIENvbXBvbmVudDxJUmFkaW9Hcm91cFByb3BzPiB7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBkYXRhU291cmNlOiBbXSxcclxuICAgIGRhdGFTdG9yZTogW10sXHJcbiAgICB2YWx1ZTogXCJcIixcclxuICB9O1xyXG4gIHN0b3JlID0ge30gYXMgU3RvcmVQcm9wcztcclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgY29uc3QgX3RoaXMgPSB0aGlzO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzdG9yZSA9IHt9LFxyXG4gICAgICBvcHRpb25zLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgYWRkRGF0YSA9IFtdLFxyXG4gICAgICBkZWxldGVEYXRhID0gW10sXHJcbiAgICAgIHZpZXd0eXBlID0gXCJzeXNcIixcclxuICAgIH0gPSBwcm9wcztcclxuICAgIGxldCB7IHZhbHVlRmllbGQgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgeyB2aWV3bmFtZSB9ID0gc3RvcmU7XHJcbiAgICB2YWx1ZUZpZWxkID0gdmFsdWVGaWVsZCA/IHZhbHVlRmllbGQgOiB2aWV3bmFtZSA/IFwiZGljdEtleVwiIDogXCJ2YWx1ZVwiO1xyXG4gICAgbGV0IHsgdmlld1VybCwgdmlld0JpelVybCB9ID0gY29uZmlnKCk7XHJcbiAgICBsZXQgcmVxdWVzdFZpZXdVcmwgPSB2aWV3dHlwZSA9PSBcInN5c1wiID8gdmlld1VybCA6IHZpZXdCaXpVcmw7XHJcbiAgICBpZiAoIWNoaWxkcmVuKSB7XHJcbiAgICAgIGNvbnN0IHtcclxuICAgICAgICB1cmwsXHJcbiAgICAgICAgbGlzdGVuZXJzOiBsaXN0ZW5lcnNQb3BzID0ge30sXHJcbiAgICAgICAgdmlld25hbWUsXHJcbiAgICAgICAgY2FjaGVkLFxyXG4gICAgICAgIGNhY2hlS2V5LFxyXG4gICAgICAgIC4uLnN0b3Jlc1xyXG4gICAgICB9ID0gc3RvcmU7XHJcbiAgICAgIGlmICghdXJsICYmICFvcHRpb25zICYmICFkYXRhICYmICF2aWV3bmFtZSlcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1cmzjgIF2aWV3bmFtZeOAgWRhdGHlkoxvcHRpb25z5LiN6IO96YO95Li656m677yBXCIpO1xyXG4gICAgICBjb25zdCBnZXRBbGxEYXRhID0gKGRhdGEpID0+IHtcclxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YSkpIHtcclxuICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IG5ld0RhdGEgPSBbLi4uZGF0YV07XHJcbiAgICAgICAgaWYgKGFkZERhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgbmV3RGF0YSA9IFsuLi5hZGREYXRhLCAuLi5uZXdEYXRhXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRlbGV0ZURhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgY29uc3QgdmFsdWVGaWVsZHM6IGFueSA9IHZhbHVlRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgICAgbmV3RGF0YS5tYXAoKGl0ZW0sIGkpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSBcIm9iamVjdFwiKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHZhbHVlID0gXCJcIjtcclxuICAgICAgICAgICAgICB2YWx1ZUZpZWxkcy5tYXAoKHYsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGluZGV4ID09IDAgPyB2YWx1ZSArIGl0ZW1bdl0gOiB2YWx1ZSArIFwiLFwiICsgaXRlbVt2XTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICBpZiAoZGVsZXRlRGF0YS5pbmRleE9mKHZhbHVlKSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICBuZXdEYXRhLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGl0ZW0gPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAgICAgICBpZiAoZGVsZXRlRGF0YS5pbmRleE9mKGl0ZW0pID4gLTEpIHtcclxuICAgICAgICAgICAgICAgIG5ld0RhdGEuc3BsaWNlKGksIDEpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBuZXdEYXRhO1xyXG4gICAgICB9O1xyXG4gICAgICB2YXIgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICBtb2RlbDogXCJtb2RlbFwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICBsaXN0ZW5lcnM6IHtcclxuICAgICAgICAgIG9uQmVmb3JlTG9hZDogZnVuY3Rpb24gKHN0b3JlLCBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMub25CZWZvcmVMb2FkLCBfdGhpcywgW3N0b3JlLCBvcHRpb25zXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgbG9hZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgbGV0IGRhdGFTb3VyY2UgPSBfdGhpcy5jb252ZXJ0RGF0YShnZXRBbGxEYXRhKGRhdGEpKTtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBkYXRhU291cmNlIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmxvYWQsIF90aGlzLCBbZGF0YSwgbW9kZWxEYXRhLCBzdG9yZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGRhdGFDaGFuZ2VkOiBmdW5jdGlvbiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkge1xyXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgZGF0YVNvdXJjZTogX3RoaXMuY29udmVydERhdGEoZ2V0QWxsRGF0YShkYXRhKSksXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmRhdGFDaGFuZ2VkLCBfdGhpcywgW1xyXG4gICAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgICAgbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgIHN0b3JlLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi5zdG9yZXMsXHJcbiAgICAgIH07XHJcbiAgICAgIGlmICgodmlld25hbWUgfHwgdXJsKSAmJiBkYXRhID09IG51bGwgJiYgb3B0aW9ucyA9PSBudWxsKSB7XHJcbiAgICAgICAgbGV0IGlzQ2FjaGVkID0gY2FjaGVkO1xyXG4gICAgICAgIGxldCBpc0NhY2hlS2V5ID0gY2FjaGVLZXk7XHJcbiAgICAgICAgaWYgKHZpZXduYW1lKSB7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIGNhY2hlZCAhPT0gXCJib29sZWFuXCIpIHtcclxuICAgICAgICAgICAgaXNDYWNoZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICBpc0NhY2hlS2V5ID0gaXNDYWNoZUtleSA/IGlzQ2FjaGVLZXkgOiB2aWV3bmFtZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICAgIC4uLntcclxuICAgICAgICAgICAgYXV0b0xvYWQ6IHRydWUsXHJcbiAgICAgICAgICAgIHVybDogdXJsID8gdXJsIDogcmVxdWVzdFZpZXdVcmwgKyB2aWV3bmFtZSwgLy/or7vlrZflhbjvvIx1cmzlm7rlrprvvIx2aWV3bmFtZVxyXG4gICAgICAgICAgICBjYWNoZWQ6IGlzQ2FjaGVkLFxyXG4gICAgICAgICAgICBjYWNoZUtleTogaXNDYWNoZUtleSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAuLi5zdG9yZVByb3BzLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zdG9yZSA9IG5ldyBTdG9yZShzdG9yZVByb3BzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUFjdGl2ZUNoYW5nZShlKSB7XHJcbiAgICBjb25zdCB7IGN1c3RvbWl6ZSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoY3VzdG9taXplKSB7XHJcbiAgICAgIG9uQ2hhbmdlICYmIG9uQ2hhbmdlKGUpO1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICB2YWx1ZTogZSxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICB2YWx1ZTogZS50YXJnZXQudmFsdWUsXHJcbiAgICAgIH0pO1xyXG4gICAgICBvbkNoYW5nZSAmJiBvbkNoYW5nZShlLnRhcmdldC52YWx1ZSwgZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldFZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUudmFsdWU7XHJcbiAgfVxyXG4gIHNldFZhbHVlKHZhbHVlKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgdmFsdWU6IHZhbHVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvbnZlcnREYXRhKGRhdGEpIHtcclxuICAgIGxldCB7IHN0b3JlID0ge30sIHZhbHVlRmllbGQsIGxhYmVsRmllbGQgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHZpZXduYW1lIH0gPSBzdG9yZTtcclxuXHJcbiAgICB2YWx1ZUZpZWxkID0gdmFsdWVGaWVsZCA/IHZhbHVlRmllbGQgOiB2aWV3bmFtZSA/IFwiZGljdEtleVwiIDogXCJ2YWx1ZVwiO1xyXG4gICAgbGFiZWxGaWVsZCA9IGxhYmVsRmllbGQgPyBsYWJlbEZpZWxkIDogdmlld25hbWUgPyBcImRpY3RWYWx1ZVwiIDogXCJsYWJlbFwiO1xyXG4gICAgbGV0IGRhdGFTb3VyZSA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgZGF0YVtpXSA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICAgIGxldCBvYmogPSB7IC4uLmRhdGFbaV0gfTtcclxuICAgICAgICBsZXQgdmFsdWUgPSBcIlwiO1xyXG4gICAgICAgIGlmICh2YWx1ZUZpZWxkLnNwbGl0KFwiLFwiKS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgdmFsdWUgPSBkYXRhW2ldW3ZhbHVlRmllbGRdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCB2YWx1ZUZpZWxkczogYW55ID0gdmFsdWVGaWVsZC5zcGxpdChcIixcIik7XHJcbiAgICAgICAgICB2YWx1ZUZpZWxkcy5tYXAoKHYsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gaW5kZXggPT0gMCA/IHZhbHVlICsgZGF0YVtpXVt2XSA6IHZhbHVlICsgXCIsXCIgKyBkYXRhW2ldW3ZdO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBsYWJlbCA9IFwiXCI7XHJcbiAgICAgICAgaWYgKGxhYmVsRmllbGQuc3BsaXQoXCIsXCIpLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICBsYWJlbCA9IGRhdGFbaV1bbGFiZWxGaWVsZF07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IGxhYmVsRmllbGRzOiBhbnkgPSBsYWJlbEZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICAgIGxhYmVsRmllbGRzLm1hcCgobCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgbGFiZWwgPSBpbmRleCA9PSAwID8gbGFiZWwgKyBkYXRhW2ldW2xdIDogbGFiZWwgKyBcIi1cIiArIGRhdGFbaV1bbF07XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgb2JqLmxhYmVsID0gbGFiZWw7XHJcbiAgICAgICAgb2JqLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgb2JqLmRpc2FibGVkID0gZGF0YVtpXS5kaXNhYmxlZCA/IGRhdGFbaV0uZGlzYWJsZWQgOiBmYWxzZTtcclxuICAgICAgICBkYXRhU291cmUucHVzaChvYmopO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBvYmogPSB7fSBhcyB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBhbnk7IGRpc2FibGVkPzogYm9vbGVhbiB9O1xyXG4gICAgICAgIG9iai5sYWJlbCA9IGRhdGFbaV07XHJcbiAgICAgICAgb2JqLnZhbHVlID0gZGF0YVtpXTtcclxuICAgICAgICBvYmouZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICBkYXRhU291cmUucHVzaChvYmopO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGF0YVNvdXJlO1xyXG4gIH1cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucywgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIWNoaWxkcmVuICYmIChkYXRhIHx8IG9wdGlvbnMpKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGRhdGFTb3VyY2U6IHRoaXMuY29udmVydERhdGEoZGF0YSA/IGRhdGEgOiBvcHRpb25zKSxcclxuICAgICAgICBkYXRhU3RvcmU6IGRhdGEgPyBkYXRhIDogb3B0aW9ucyxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRVcGRhdGUoKSB7XHJcbiAgICBjb25zdCB7IGRhdGFTdG9yZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucyB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld0RhdGEgPSBkYXRhID8gZGF0YSA6IG9wdGlvbnM7XHJcbiAgICBpZiAoZGF0YSB8fCBvcHRpb25zKSB7XHJcbiAgICAgIGlmIChKU09OLnN0cmluZ2lmeShkYXRhU3RvcmUpICE9PSBKU09OLnN0cmluZ2lmeShuZXdEYXRhKSkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgZGF0YVNvdXJjZTogdGhpcy5jb252ZXJ0RGF0YShuZXdEYXRhKSxcclxuICAgICAgICAgIGRhdGFTdG9yZTogbmV3RGF0YSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY3VzdG9taXplID0gZmFsc2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgcmFkaW9zOiBhbnk7XHJcbiAgICByYWRpb3MgPSBjaGlsZHJlbjtcclxuICAgIGNvbnN0IGlzQXJyYXkgPSBBcnJheS5pc0FycmF5KGNoaWxkcmVuKTtcclxuICAgIGlmIChjdXN0b21pemUpIHtcclxuICAgICAgaWYgKGlzQXJyYXkpIHtcclxuICAgICAgICByZXR1cm4gcmFkaW9zLm1hcCgoY2hpbGQsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICBsZXQgaXNBY3RpdmUgPSB0aGlzLnByb3BzLnZhbHVlID09PSBjaGlsZC5wcm9wcy52YWx1ZSA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcclxuICAgICAgICAgICAgbGFiZWw6IGNoaWxkLnByb3BzLmNoaWxkcmVuLFxyXG4gICAgICAgICAgICB2YWx1ZTogY2hpbGQucHJvcHMudmFsdWUsXHJcbiAgICAgICAgICAgIGFjdGl2ZTogaXNBY3RpdmUsXHJcbiAgICAgICAgICAgIG9uQ2xpY2s6IHRoaXMuaGFuZGxlQWN0aXZlQ2hhbmdlLmJpbmQodGhpcywgY2hpbGQucHJvcHMudmFsdWUpLFxyXG4gICAgICAgICAgICBrZXk6IGluZGV4LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbGV0IGlzQWN0aXZlID0gdGhpcy5wcm9wcy52YWx1ZSA9PT0gcmFkaW9zLnByb3BzLnZhbHVlID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQocmFkaW9zLCB7XHJcbiAgICAgICAgICBsYWJlbDogcmFkaW9zLnByb3BzLmNoaWxkcmVuLFxyXG4gICAgICAgICAgdmFsdWU6IHJhZGlvcy5wcm9wcy52YWx1ZSxcclxuICAgICAgICAgIGFjdGl2ZTogaXNBY3RpdmUsXHJcbiAgICAgICAgICBvbkNsaWNrOiB0aGlzLmhhbmRsZUFjdGl2ZUNoYW5nZS5iaW5kKHRoaXMsIHJhZGlvcy5wcm9wcy52YWx1ZSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucywgLi4ucGFyYW1zIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICBjb25zdCBSYWRpb1Byb3BzID0gb21pdCh7IC4uLnBhcmFtcyB9LCBbXHJcbiAgICAgICAgXCJzdG9yZVwiLFxyXG4gICAgICAgIFwibGFiZWxGaWVsZFwiLFxyXG4gICAgICAgIFwidmFsdWVGaWVsZFwiLFxyXG4gICAgICAgIFwiY3VzdG9taXplXCIsXHJcbiAgICAgICAgXCJvbkNoYW5nZVwiLFxyXG4gICAgICAgIFwiYWRkRGF0YVwiLFxyXG4gICAgICAgIFwiZGVsZXRlRGF0YVwiLFxyXG4gICAgICBdKTtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8PlxyXG4gICAgICAgICAgPFJhZGlvLkdyb3VwXHJcbiAgICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLnZhbHVlfVxyXG4gICAgICAgICAgICBvcHRpb25zPXt0aGlzLnN0YXRlLmRhdGFTb3VyY2V9XHJcbiAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLmhhbmRsZUFjdGl2ZUNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICB7Li4uUmFkaW9Qcm9wc31cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC8+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
282
+ }
283
+ }
284
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkNvbXBvbmVudCIsIm9taXQiLCJTdG9yZSIsInV0aWxzIiwiY29uZmlnIiwiUmFkaW9Hcm91cCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJfZGVmaW5lUHJvcGVydHkiLCJkYXRhU291cmNlIiwiZGF0YVN0b3JlIiwidmFsdWUiLCJfdGhpcyIsInN0b3JlIiwib3B0aW9ucyIsImRhdGEiLCJjaGlsZHJlbiIsImFkZERhdGEiLCJkZWxldGVEYXRhIiwidmlld3R5cGUiLCJ2YWx1ZUZpZWxkIiwidmlld25hbWUiLCJ2aWV3VXJsIiwidmlld0JpelVybCIsInJlcXVlc3RWaWV3VXJsIiwidXJsIiwibGlzdGVuZXJzIiwibGlzdGVuZXJzUG9wcyIsImNhY2hlZCIsImNhY2hlS2V5Iiwic3RvcmVzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwiRXJyb3IiLCJnZXRBbGxEYXRhIiwiQXJyYXkiLCJpc0FycmF5IiwibmV3RGF0YSIsImxlbmd0aCIsInZhbHVlRmllbGRzIiwic3BsaXQiLCJtYXAiLCJpdGVtIiwiaSIsInYiLCJpbmRleCIsImluZGV4T2YiLCJzcGxpY2UiLCJzdG9yZVByb3BzIiwiX29iamVjdFNwcmVhZCIsIm1vZGVsIiwiY29tcG9uZW50Iiwib25CZWZvcmVMb2FkIiwiY2FsbGJhY2siLCJsb2FkIiwibW9kZWxEYXRhIiwiY29udmVydERhdGEiLCJzZXRTdGF0ZSIsImRhdGFDaGFuZ2VkIiwiaXNDYWNoZWQiLCJpc0NhY2hlS2V5IiwiYXV0b0xvYWQiLCJoYW5kbGVBY3RpdmVDaGFuZ2UiLCJlIiwiY3VzdG9taXplIiwib25DaGFuZ2UiLCJ0YXJnZXQiLCJnZXRWYWx1ZSIsInN0YXRlIiwic2V0VmFsdWUiLCJsYWJlbEZpZWxkIiwiZGF0YVNvdXJlIiwib2JqIiwibGFiZWwiLCJsYWJlbEZpZWxkcyIsImwiLCJkaXNhYmxlZCIsInB1c2giLCJjb21wb25lbnREaWRNb3VudCIsImNvbXBvbmVudERpZFVwZGF0ZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJyZW5kZXIiLCJyYWRpb3MiLCJjaGlsZCIsImlzQWN0aXZlIiwiY2xvbmVFbGVtZW50IiwiYWN0aXZlIiwib25DbGljayIsImJpbmQiLCJrZXkiLCJfdGhpcyRwcm9wcyIsInBhcmFtcyIsIl9leGNsdWRlZDIiLCJSYWRpb1Byb3BzIiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwiX1JhZGlvIiwiR3JvdXAiLCJfZXh0ZW5kcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvcmFkaW8vUmFkaW9Hcm91cC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQERlc2NyaXB0dGlvbjpcclxuICogQHZlcnNpb246XHJcbiAqIEBBdXRob3I6IHJ4emh1XHJcbiAqIEBEYXRlOiAyMDIxLTAzLTI0IDE0OjMzOjM1XHJcbiAqIEBMYXN0RWRpdG9yczogcnh6aHVcclxuICogQExhc3RFZGl0VGltZTogMjAyMS0wNC0yMyAxNjo0NjoxN1xyXG4gKi9cclxuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBSYWRpbywgUmFkaW9Hcm91cFByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IFN0b3JlLCB7IFN0b3JlUHJvcHMgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3V0aWxzXCI7XHJcbmltcG9ydCBjb25maWcgZnJvbSBcIi4uLy4uL2NvbmZpZ1wiO1xyXG5cclxuaW50ZXJmYWNlIElSYWRpb0dyb3VwUHJvcHMgZXh0ZW5kcyBSYWRpb0dyb3VwUHJvcHMge1xyXG4gIGN1c3RvbWl6ZT86IGJvb2xlYW47XHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIGRhdGE/OiBBcnJheTxzdHJpbmcgfCBPYmplY3Q+OyAvL+m7mOiupOaVsOaNrlxyXG4gIGxhYmVsRmllbGQ/OiBzdHJpbmc7XHJcbiAgdmFsdWVGaWVsZD86IHN0cmluZztcclxuICBhZGREYXRhPzogQXJyYXk8c3RyaW5nIHwgT2JqZWN0PjsgLy/kuI5zdG9yZeS4gOi1t+eUqFxyXG4gIGRlbGV0ZURhdGE/OiBBcnJheTxzdHJpbmc+O1xyXG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBhbnksIGU/OiBhbnkpID0+IHZvaWQ7XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmFkaW9Hcm91cCBleHRlbmRzIENvbXBvbmVudDxJUmFkaW9Hcm91cFByb3BzPiB7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBkYXRhU291cmNlOiBbXSxcclxuICAgIGRhdGFTdG9yZTogW10sXHJcbiAgICB2YWx1ZTogXCJcIixcclxuICB9O1xyXG4gIHN0b3JlID0ge30gYXMgU3RvcmVQcm9wcztcclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgY29uc3QgX3RoaXMgPSB0aGlzO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzdG9yZSA9IHt9LFxyXG4gICAgICBvcHRpb25zLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgYWRkRGF0YSA9IFtdLFxyXG4gICAgICBkZWxldGVEYXRhID0gW10sXHJcbiAgICAgIHZpZXd0eXBlID0gXCJzeXNcIixcclxuICAgIH0gPSBwcm9wcztcclxuICAgIGxldCB7IHZhbHVlRmllbGQgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgeyB2aWV3bmFtZSB9ID0gc3RvcmU7XHJcbiAgICB2YWx1ZUZpZWxkID0gdmFsdWVGaWVsZCA/IHZhbHVlRmllbGQgOiB2aWV3bmFtZSA/IFwiZGljdEtleVwiIDogXCJ2YWx1ZVwiO1xyXG4gICAgbGV0IHsgdmlld1VybCwgdmlld0JpelVybCB9ID0gY29uZmlnKCk7XHJcbiAgICBsZXQgcmVxdWVzdFZpZXdVcmwgPSB2aWV3dHlwZSA9PSBcInN5c1wiID8gdmlld1VybCA6IHZpZXdCaXpVcmw7XHJcbiAgICBpZiAoIWNoaWxkcmVuKSB7XHJcbiAgICAgIGNvbnN0IHtcclxuICAgICAgICB1cmwsXHJcbiAgICAgICAgbGlzdGVuZXJzOiBsaXN0ZW5lcnNQb3BzID0ge30sXHJcbiAgICAgICAgdmlld25hbWUsXHJcbiAgICAgICAgY2FjaGVkLFxyXG4gICAgICAgIGNhY2hlS2V5LFxyXG4gICAgICAgIC4uLnN0b3Jlc1xyXG4gICAgICB9ID0gc3RvcmU7XHJcbiAgICAgIGlmICghdXJsICYmICFvcHRpb25zICYmICFkYXRhICYmICF2aWV3bmFtZSlcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1cmzjgIF2aWV3bmFtZeOAgWRhdGHlkoxvcHRpb25z5LiN6IO96YO95Li656m677yBXCIpO1xyXG4gICAgICBjb25zdCBnZXRBbGxEYXRhID0gKGRhdGEpID0+IHtcclxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YSkpIHtcclxuICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IG5ld0RhdGEgPSBbLi4uZGF0YV07XHJcbiAgICAgICAgaWYgKGFkZERhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgbmV3RGF0YSA9IFsuLi5hZGREYXRhLCAuLi5uZXdEYXRhXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRlbGV0ZURhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgY29uc3QgdmFsdWVGaWVsZHM6IGFueSA9IHZhbHVlRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgICAgbmV3RGF0YS5tYXAoKGl0ZW0sIGkpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSBcIm9iamVjdFwiKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHZhbHVlID0gXCJcIjtcclxuICAgICAgICAgICAgICB2YWx1ZUZpZWxkcy5tYXAoKHYsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGluZGV4ID09IDAgPyB2YWx1ZSArIGl0ZW1bdl0gOiB2YWx1ZSArIFwiLFwiICsgaXRlbVt2XTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICBpZiAoZGVsZXRlRGF0YS5pbmRleE9mKHZhbHVlKSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICBuZXdEYXRhLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGl0ZW0gPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAgICAgICBpZiAoZGVsZXRlRGF0YS5pbmRleE9mKGl0ZW0pID4gLTEpIHtcclxuICAgICAgICAgICAgICAgIG5ld0RhdGEuc3BsaWNlKGksIDEpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBuZXdEYXRhO1xyXG4gICAgICB9O1xyXG4gICAgICB2YXIgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICBtb2RlbDogXCJtb2RlbFwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICBsaXN0ZW5lcnM6IHtcclxuICAgICAgICAgIG9uQmVmb3JlTG9hZDogZnVuY3Rpb24gKHN0b3JlLCBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMub25CZWZvcmVMb2FkLCBfdGhpcywgW3N0b3JlLCBvcHRpb25zXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgbG9hZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgbGV0IGRhdGFTb3VyY2UgPSBfdGhpcy5jb252ZXJ0RGF0YShnZXRBbGxEYXRhKGRhdGEpKTtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBkYXRhU291cmNlIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmxvYWQsIF90aGlzLCBbZGF0YSwgbW9kZWxEYXRhLCBzdG9yZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGRhdGFDaGFuZ2VkOiBmdW5jdGlvbiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkge1xyXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgZGF0YVNvdXJjZTogX3RoaXMuY29udmVydERhdGEoZ2V0QWxsRGF0YShkYXRhKSksXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmRhdGFDaGFuZ2VkLCBfdGhpcywgW1xyXG4gICAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgICAgbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgIHN0b3JlLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi5zdG9yZXMsXHJcbiAgICAgIH07XHJcbiAgICAgIGlmICgodmlld25hbWUgfHwgdXJsKSAmJiBkYXRhID09IG51bGwgJiYgb3B0aW9ucyA9PSBudWxsKSB7XHJcbiAgICAgICAgbGV0IGlzQ2FjaGVkID0gY2FjaGVkO1xyXG4gICAgICAgIGxldCBpc0NhY2hlS2V5ID0gY2FjaGVLZXk7XHJcbiAgICAgICAgaWYgKHZpZXduYW1lKSB7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIGNhY2hlZCAhPT0gXCJib29sZWFuXCIpIHtcclxuICAgICAgICAgICAgaXNDYWNoZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICBpc0NhY2hlS2V5ID0gaXNDYWNoZUtleSA/IGlzQ2FjaGVLZXkgOiB2aWV3bmFtZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICAgIC4uLntcclxuICAgICAgICAgICAgYXV0b0xvYWQ6IHRydWUsXHJcbiAgICAgICAgICAgIHVybDogdXJsID8gdXJsIDogcmVxdWVzdFZpZXdVcmwgKyB2aWV3bmFtZSwgLy/or7vlrZflhbjvvIx1cmzlm7rlrprvvIx2aWV3bmFtZVxyXG4gICAgICAgICAgICBjYWNoZWQ6IGlzQ2FjaGVkLFxyXG4gICAgICAgICAgICBjYWNoZUtleTogaXNDYWNoZUtleSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAuLi5zdG9yZVByb3BzLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zdG9yZSA9IG5ldyBTdG9yZShzdG9yZVByb3BzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUFjdGl2ZUNoYW5nZShlKSB7XHJcbiAgICBjb25zdCB7IGN1c3RvbWl6ZSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoY3VzdG9taXplKSB7XHJcbiAgICAgIG9uQ2hhbmdlICYmIG9uQ2hhbmdlKGUpO1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICB2YWx1ZTogZSxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICB2YWx1ZTogZS50YXJnZXQudmFsdWUsXHJcbiAgICAgIH0pO1xyXG4gICAgICBvbkNoYW5nZSAmJiBvbkNoYW5nZShlLnRhcmdldC52YWx1ZSwgZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldFZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUudmFsdWU7XHJcbiAgfVxyXG4gIHNldFZhbHVlKHZhbHVlKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgdmFsdWU6IHZhbHVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvbnZlcnREYXRhKGRhdGEpIHtcclxuICAgIGxldCB7IHN0b3JlID0ge30sIHZhbHVlRmllbGQsIGxhYmVsRmllbGQgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHZpZXduYW1lIH0gPSBzdG9yZTtcclxuXHJcbiAgICB2YWx1ZUZpZWxkID0gdmFsdWVGaWVsZCA/IHZhbHVlRmllbGQgOiB2aWV3bmFtZSA/IFwiZGljdEtleVwiIDogXCJ2YWx1ZVwiO1xyXG4gICAgbGFiZWxGaWVsZCA9IGxhYmVsRmllbGQgPyBsYWJlbEZpZWxkIDogdmlld25hbWUgPyBcImRpY3RWYWx1ZVwiIDogXCJsYWJlbFwiO1xyXG4gICAgbGV0IGRhdGFTb3VyZSA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgZGF0YVtpXSA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICAgIGxldCBvYmogPSB7IC4uLmRhdGFbaV0gfTtcclxuICAgICAgICBsZXQgdmFsdWUgPSBcIlwiO1xyXG4gICAgICAgIGlmICh2YWx1ZUZpZWxkLnNwbGl0KFwiLFwiKS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgdmFsdWUgPSBkYXRhW2ldW3ZhbHVlRmllbGRdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCB2YWx1ZUZpZWxkczogYW55ID0gdmFsdWVGaWVsZC5zcGxpdChcIixcIik7XHJcbiAgICAgICAgICB2YWx1ZUZpZWxkcy5tYXAoKHYsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gaW5kZXggPT0gMCA/IHZhbHVlICsgZGF0YVtpXVt2XSA6IHZhbHVlICsgXCIsXCIgKyBkYXRhW2ldW3ZdO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBsYWJlbCA9IFwiXCI7XHJcbiAgICAgICAgaWYgKGxhYmVsRmllbGQuc3BsaXQoXCIsXCIpLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICBsYWJlbCA9IGRhdGFbaV1bbGFiZWxGaWVsZF07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IGxhYmVsRmllbGRzOiBhbnkgPSBsYWJlbEZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICAgIGxhYmVsRmllbGRzLm1hcCgobCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgbGFiZWwgPSBpbmRleCA9PSAwID8gbGFiZWwgKyBkYXRhW2ldW2xdIDogbGFiZWwgKyBcIi1cIiArIGRhdGFbaV1bbF07XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgb2JqLmxhYmVsID0gbGFiZWw7XHJcbiAgICAgICAgb2JqLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgb2JqLmRpc2FibGVkID0gZGF0YVtpXS5kaXNhYmxlZCA/IGRhdGFbaV0uZGlzYWJsZWQgOiBmYWxzZTtcclxuICAgICAgICBkYXRhU291cmUucHVzaChvYmopO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBvYmogPSB7fSBhcyB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBhbnk7IGRpc2FibGVkPzogYm9vbGVhbiB9O1xyXG4gICAgICAgIG9iai5sYWJlbCA9IGRhdGFbaV07XHJcbiAgICAgICAgb2JqLnZhbHVlID0gZGF0YVtpXTtcclxuICAgICAgICBvYmouZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICBkYXRhU291cmUucHVzaChvYmopO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGF0YVNvdXJlO1xyXG4gIH1cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucywgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIWNoaWxkcmVuICYmIChkYXRhIHx8IG9wdGlvbnMpKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGRhdGFTb3VyY2U6IHRoaXMuY29udmVydERhdGEoZGF0YSA/IGRhdGEgOiBvcHRpb25zKSxcclxuICAgICAgICBkYXRhU3RvcmU6IGRhdGEgPyBkYXRhIDogb3B0aW9ucyxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRVcGRhdGUoKSB7XHJcbiAgICBjb25zdCB7IGRhdGFTdG9yZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucyB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld0RhdGEgPSBkYXRhID8gZGF0YSA6IG9wdGlvbnM7XHJcbiAgICBpZiAoZGF0YSB8fCBvcHRpb25zKSB7XHJcbiAgICAgIGlmIChKU09OLnN0cmluZ2lmeShkYXRhU3RvcmUpICE9PSBKU09OLnN0cmluZ2lmeShuZXdEYXRhKSkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgZGF0YVNvdXJjZTogdGhpcy5jb252ZXJ0RGF0YShuZXdEYXRhKSxcclxuICAgICAgICAgIGRhdGFTdG9yZTogbmV3RGF0YSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY3VzdG9taXplID0gZmFsc2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgcmFkaW9zOiBhbnk7XHJcbiAgICByYWRpb3MgPSBjaGlsZHJlbjtcclxuICAgIGNvbnN0IGlzQXJyYXkgPSBBcnJheS5pc0FycmF5KGNoaWxkcmVuKTtcclxuICAgIGlmIChjdXN0b21pemUpIHtcclxuICAgICAgaWYgKGlzQXJyYXkpIHtcclxuICAgICAgICByZXR1cm4gcmFkaW9zLm1hcCgoY2hpbGQsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICBsZXQgaXNBY3RpdmUgPSB0aGlzLnByb3BzLnZhbHVlID09PSBjaGlsZC5wcm9wcy52YWx1ZSA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcclxuICAgICAgICAgICAgbGFiZWw6IGNoaWxkLnByb3BzLmNoaWxkcmVuLFxyXG4gICAgICAgICAgICB2YWx1ZTogY2hpbGQucHJvcHMudmFsdWUsXHJcbiAgICAgICAgICAgIGFjdGl2ZTogaXNBY3RpdmUsXHJcbiAgICAgICAgICAgIG9uQ2xpY2s6IHRoaXMuaGFuZGxlQWN0aXZlQ2hhbmdlLmJpbmQodGhpcywgY2hpbGQucHJvcHMudmFsdWUpLFxyXG4gICAgICAgICAgICBrZXk6IGluZGV4LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbGV0IGlzQWN0aXZlID0gdGhpcy5wcm9wcy52YWx1ZSA9PT0gcmFkaW9zLnByb3BzLnZhbHVlID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQocmFkaW9zLCB7XHJcbiAgICAgICAgICBsYWJlbDogcmFkaW9zLnByb3BzLmNoaWxkcmVuLFxyXG4gICAgICAgICAgdmFsdWU6IHJhZGlvcy5wcm9wcy52YWx1ZSxcclxuICAgICAgICAgIGFjdGl2ZTogaXNBY3RpdmUsXHJcbiAgICAgICAgICBvbkNsaWNrOiB0aGlzLmhhbmRsZUFjdGl2ZUNoYW5nZS5iaW5kKHRoaXMsIHJhZGlvcy5wcm9wcy52YWx1ZSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucywgLi4ucGFyYW1zIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICBjb25zdCBSYWRpb1Byb3BzID0gb21pdCh7IC4uLnBhcmFtcyB9LCBbXHJcbiAgICAgICAgXCJzdG9yZVwiLFxyXG4gICAgICAgIFwibGFiZWxGaWVsZFwiLFxyXG4gICAgICAgIFwidmFsdWVGaWVsZFwiLFxyXG4gICAgICAgIFwiY3VzdG9taXplXCIsXHJcbiAgICAgICAgXCJvbkNoYW5nZVwiLFxyXG4gICAgICAgIFwiYWRkRGF0YVwiLFxyXG4gICAgICAgIFwiZGVsZXRlRGF0YVwiLFxyXG4gICAgICBdKTtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8PlxyXG4gICAgICAgICAgPFJhZGlvLkdyb3VwXHJcbiAgICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLnZhbHVlfVxyXG4gICAgICAgICAgICBvcHRpb25zPXt0aGlzLnN0YXRlLmRhdGFTb3VyY2V9XHJcbiAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLmhhbmRsZUFjdGl2ZUNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICB7Li4uUmFkaW9Qcm9wc31cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC8+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBT0EsS0FBSyxJQUFJQyxTQUFTLFFBQVEsT0FBTztBQUV4QyxPQUFPQyxJQUFJLE1BQU0sU0FBUztBQUMxQixPQUFPQyxLQUFLLE1BQXNCLGFBQWE7QUFDL0MsU0FBU0MsS0FBSyxRQUFRLHVCQUF1QjtBQUM3QyxPQUFPQyxNQUFNLE1BQU0sY0FBYztBQVlqQyxlQUFlLE1BQU1DLFVBQVUsU0FBU0wsU0FBUyxDQUFtQjtFQU9sRU0sV0FBV0EsQ0FBQ0MsS0FBSyxFQUFFO0lBQ2pCLEtBQUssQ0FBQ0EsS0FBSyxDQUFDO0lBQUNDLGVBQUEsZ0JBUFA7TUFDTkMsVUFBVSxFQUFFLEVBQUU7TUFDZEMsU0FBUyxFQUFFLEVBQUU7TUFDYkMsS0FBSyxFQUFFO0lBQ1QsQ0FBQztJQUFBSCxlQUFBLGdCQUNPLENBQUMsQ0FBQztJQUdSLE1BQU1JLEtBQUssR0FBRyxJQUFJO0lBQ2xCLE1BQU07TUFDSkMsS0FBSyxHQUFHLENBQUMsQ0FBQztNQUNWQyxPQUFPO01BQ1BDLElBQUk7TUFDSkMsUUFBUTtNQUNSQyxPQUFPLEdBQUcsRUFBRTtNQUNaQyxVQUFVLEdBQUcsRUFBRTtNQUNmQyxRQUFRLEdBQUc7SUFDYixDQUFDLEdBQUdaLEtBQUs7SUFDVCxJ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