@wavemaker/app-ng-runtime 11.10.0-next.25079 → 11.10.0-next.27705

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 (829) hide show
  1. package/components/advanced/custom/bundles/index.umd.js +1 -0
  2. package/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +1 -0
  3. package/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +2 -1
  4. package/components/advanced/custom/fesm2022/index.mjs +1 -0
  5. package/components/advanced/custom/fesm2022/index.mjs.map +1 -1
  6. package/components/base/bundles/index.umd.js +2 -2
  7. package/components/base/esm2022/widgets/framework/property-change-handler.mjs +3 -3
  8. package/components/base/fesm2022/index.mjs +2 -2
  9. package/components/base/fesm2022/index.mjs.map +1 -1
  10. package/components/containers/tabs/bundles/index.umd.js +1 -1
  11. package/components/containers/wizard/bundles/index.umd.js +14 -112
  12. package/components/containers/wizard/esm2022/wizard-step/wizard-step.directive.mjs +3 -4
  13. package/components/containers/wizard/esm2022/wizard.component.mjs +13 -110
  14. package/components/containers/wizard/fesm2022/index.mjs +14 -112
  15. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  16. package/components/containers/wizard/wizard.component.d.ts +0 -1
  17. package/components/data/list/bundles/index.umd.js +2 -2
  18. package/components/data/list/esm2022/list.component.mjs +3 -3
  19. package/components/data/list/fesm2022/index.mjs +2 -2
  20. package/components/data/list/fesm2022/index.mjs.map +1 -1
  21. package/components/dialogs/default/bundles/index.umd.js +2 -2
  22. package/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +3 -3
  23. package/components/dialogs/default/fesm2022/index.mjs +2 -2
  24. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  25. package/components/input/default/bundles/index.umd.js +7 -7
  26. package/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +2 -2
  27. package/components/input/default/esm2022/dataset-aware-form.component.mjs +2 -2
  28. package/components/input/default/esm2022/radioset/radioset.component.mjs +2 -2
  29. package/components/input/default/esm2022/switch/switch.component.mjs +4 -4
  30. package/components/input/default/esm2022/switch/switch.props.mjs +2 -2
  31. package/components/input/default/fesm2022/index.mjs +7 -7
  32. package/components/input/default/fesm2022/index.mjs.map +1 -1
  33. package/locales/angular/global/af-na.js +24 -0
  34. package/locales/angular/global/af.js +24 -0
  35. package/locales/angular/global/agq.js +22 -0
  36. package/locales/angular/global/ak.js +24 -0
  37. package/locales/angular/global/am.js +24 -0
  38. package/locales/angular/global/ar-ae.js +32 -0
  39. package/locales/angular/global/ar-bh.js +32 -0
  40. package/locales/angular/global/ar-dj.js +32 -0
  41. package/locales/angular/global/ar-dz.js +32 -0
  42. package/locales/angular/global/ar-eg.js +32 -0
  43. package/locales/angular/global/ar-eh.js +32 -0
  44. package/locales/angular/global/ar-er.js +32 -0
  45. package/locales/angular/global/ar-il.js +32 -0
  46. package/locales/angular/global/ar-iq.js +32 -0
  47. package/locales/angular/global/ar-jo.js +32 -0
  48. package/locales/angular/global/ar-km.js +32 -0
  49. package/locales/angular/global/ar-kw.js +32 -0
  50. package/locales/angular/global/ar-lb.js +32 -0
  51. package/locales/angular/global/ar-ly.js +32 -0
  52. package/locales/angular/global/ar-ma.js +32 -0
  53. package/locales/angular/global/ar-mr.js +32 -0
  54. package/locales/angular/global/ar-om.js +32 -0
  55. package/locales/angular/global/ar-ps.js +32 -0
  56. package/locales/angular/global/ar-qa.js +32 -0
  57. package/locales/angular/global/ar-sa.js +32 -0
  58. package/locales/angular/global/ar-sd.js +32 -0
  59. package/locales/angular/global/ar-so.js +32 -0
  60. package/locales/angular/global/ar-ss.js +32 -0
  61. package/locales/angular/global/ar-sy.js +32 -0
  62. package/locales/angular/global/ar-td.js +32 -0
  63. package/locales/angular/global/ar-tn.js +32 -0
  64. package/locales/angular/global/ar-ye.js +32 -0
  65. package/locales/angular/global/ar.js +32 -0
  66. package/locales/angular/global/as.js +24 -0
  67. package/locales/angular/global/asa.js +24 -0
  68. package/locales/angular/global/ast.js +24 -0
  69. package/locales/angular/global/az-cyrl.js +22 -0
  70. package/locales/angular/global/az-latn.js +24 -0
  71. package/locales/angular/global/az.js +24 -0
  72. package/locales/angular/global/bas.js +22 -0
  73. package/locales/angular/global/be-tarask.js +28 -0
  74. package/locales/angular/global/be.js +28 -0
  75. package/locales/angular/global/bem.js +24 -0
  76. package/locales/angular/global/bez.js +24 -0
  77. package/locales/angular/global/bg.js +24 -0
  78. package/locales/angular/global/bm.js +22 -0
  79. package/locales/angular/global/bn-in.js +24 -0
  80. package/locales/angular/global/bn.js +24 -0
  81. package/locales/angular/global/bo-in.js +22 -0
  82. package/locales/angular/global/bo.js +22 -0
  83. package/locales/angular/global/br.js +30 -0
  84. package/locales/angular/global/brx.js +24 -0
  85. package/locales/angular/global/bs-cyrl.js +22 -0
  86. package/locales/angular/global/bs-latn.js +26 -0
  87. package/locales/angular/global/bs.js +26 -0
  88. package/locales/angular/global/ca-ad.js +24 -0
  89. package/locales/angular/global/ca-es-valencia.js +24 -0
  90. package/locales/angular/global/ca-fr.js +24 -0
  91. package/locales/angular/global/ca-it.js +24 -0
  92. package/locales/angular/global/ca.js +24 -0
  93. package/locales/angular/global/ccp-in.js +22 -0
  94. package/locales/angular/global/ccp.js +22 -0
  95. package/locales/angular/global/ce.js +24 -0
  96. package/locales/angular/global/ceb.js +24 -0
  97. package/locales/angular/global/cgg.js +24 -0
  98. package/locales/angular/global/chr.js +24 -0
  99. package/locales/angular/global/ckb-ir.js +24 -0
  100. package/locales/angular/global/ckb.js +24 -0
  101. package/locales/angular/global/cs.js +28 -0
  102. package/locales/angular/global/cy.js +32 -0
  103. package/locales/angular/global/da-gl.js +24 -0
  104. package/locales/angular/global/da.js +24 -0
  105. package/locales/angular/global/dav.js +22 -0
  106. package/locales/angular/global/de-at.js +24 -0
  107. package/locales/angular/global/de-be.js +24 -0
  108. package/locales/angular/global/de-ch.js +24 -0
  109. package/locales/angular/global/de-it.js +24 -0
  110. package/locales/angular/global/de-li.js +24 -0
  111. package/locales/angular/global/de-lu.js +24 -0
  112. package/locales/angular/global/de.js +24 -0
  113. package/locales/angular/global/dje.js +22 -0
  114. package/locales/angular/global/doi.js +24 -0
  115. package/locales/angular/global/dsb.js +28 -0
  116. package/locales/angular/global/dua.js +22 -0
  117. package/locales/angular/global/dyo.js +22 -0
  118. package/locales/angular/global/dz.js +22 -0
  119. package/locales/angular/global/ebu.js +22 -0
  120. package/locales/angular/global/ee-tg.js +24 -0
  121. package/locales/angular/global/ee.js +24 -0
  122. package/locales/angular/global/el-cy.js +24 -0
  123. package/locales/angular/global/el.js +24 -0
  124. package/locales/angular/global/en-001.js +24 -0
  125. package/locales/angular/global/en-150.js +24 -0
  126. package/locales/angular/global/en-ae.js +24 -0
  127. package/locales/angular/global/en-ag.js +24 -0
  128. package/locales/angular/global/en-ai.js +24 -0
  129. package/locales/angular/global/en-as.js +24 -0
  130. package/locales/angular/global/en-at.js +24 -0
  131. package/locales/angular/global/en-au.js +24 -0
  132. package/locales/angular/global/en-bb.js +24 -0
  133. package/locales/angular/global/en-be.js +24 -0
  134. package/locales/angular/global/en-bi.js +24 -0
  135. package/locales/angular/global/en-bm.js +24 -0
  136. package/locales/angular/global/en-bs.js +24 -0
  137. package/locales/angular/global/en-bw.js +24 -0
  138. package/locales/angular/global/en-bz.js +24 -0
  139. package/locales/angular/global/en-ca.js +24 -0
  140. package/locales/angular/global/en-cc.js +24 -0
  141. package/locales/angular/global/en-ch.js +24 -0
  142. package/locales/angular/global/en-ck.js +24 -0
  143. package/locales/angular/global/en-cm.js +24 -0
  144. package/locales/angular/global/en-cx.js +24 -0
  145. package/locales/angular/global/en-cy.js +24 -0
  146. package/locales/angular/global/en-de.js +24 -0
  147. package/locales/angular/global/en-dg.js +24 -0
  148. package/locales/angular/global/en-dk.js +24 -0
  149. package/locales/angular/global/en-dm.js +24 -0
  150. package/locales/angular/global/en-er.js +24 -0
  151. package/locales/angular/global/en-fi.js +24 -0
  152. package/locales/angular/global/en-fj.js +24 -0
  153. package/locales/angular/global/en-fk.js +24 -0
  154. package/locales/angular/global/en-fm.js +24 -0
  155. package/locales/angular/global/en-gb.js +24 -0
  156. package/locales/angular/global/en-gd.js +24 -0
  157. package/locales/angular/global/en-gg.js +24 -0
  158. package/locales/angular/global/en-gh.js +24 -0
  159. package/locales/angular/global/en-gi.js +24 -0
  160. package/locales/angular/global/en-gm.js +24 -0
  161. package/locales/angular/global/en-gu.js +24 -0
  162. package/locales/angular/global/en-gy.js +24 -0
  163. package/locales/angular/global/en-hk.js +24 -0
  164. package/locales/angular/global/en-ie.js +24 -0
  165. package/locales/angular/global/en-il.js +24 -0
  166. package/locales/angular/global/en-im.js +24 -0
  167. package/locales/angular/global/en-in.js +24 -0
  168. package/locales/angular/global/en-io.js +24 -0
  169. package/locales/angular/global/en-je.js +24 -0
  170. package/locales/angular/global/en-jm.js +24 -0
  171. package/locales/angular/global/en-ke.js +24 -0
  172. package/locales/angular/global/en-ki.js +24 -0
  173. package/locales/angular/global/en-kn.js +24 -0
  174. package/locales/angular/global/en-ky.js +24 -0
  175. package/locales/angular/global/en-lc.js +24 -0
  176. package/locales/angular/global/en-lr.js +24 -0
  177. package/locales/angular/global/en-ls.js +24 -0
  178. package/locales/angular/global/en-mg.js +24 -0
  179. package/locales/angular/global/en-mh.js +24 -0
  180. package/locales/angular/global/en-mo.js +24 -0
  181. package/locales/angular/global/en-mp.js +24 -0
  182. package/locales/angular/global/en-ms.js +24 -0
  183. package/locales/angular/global/en-mt.js +24 -0
  184. package/locales/angular/global/en-mu.js +24 -0
  185. package/locales/angular/global/en-mv.js +24 -0
  186. package/locales/angular/global/en-mw.js +24 -0
  187. package/locales/angular/global/en-my.js +24 -0
  188. package/locales/angular/global/en-na.js +24 -0
  189. package/locales/angular/global/en-nf.js +24 -0
  190. package/locales/angular/global/en-ng.js +24 -0
  191. package/locales/angular/global/en-nl.js +24 -0
  192. package/locales/angular/global/en-nr.js +24 -0
  193. package/locales/angular/global/en-nu.js +24 -0
  194. package/locales/angular/global/en-nz.js +24 -0
  195. package/locales/angular/global/en-pg.js +24 -0
  196. package/locales/angular/global/en-ph.js +24 -0
  197. package/locales/angular/global/en-pk.js +24 -0
  198. package/locales/angular/global/en-pn.js +24 -0
  199. package/locales/angular/global/en-pr.js +24 -0
  200. package/locales/angular/global/en-pw.js +24 -0
  201. package/locales/angular/global/en-rw.js +24 -0
  202. package/locales/angular/global/en-sb.js +24 -0
  203. package/locales/angular/global/en-sc.js +24 -0
  204. package/locales/angular/global/en-sd.js +24 -0
  205. package/locales/angular/global/en-se.js +24 -0
  206. package/locales/angular/global/en-sg.js +24 -0
  207. package/locales/angular/global/en-sh.js +24 -0
  208. package/locales/angular/global/en-si.js +24 -0
  209. package/locales/angular/global/en-sl.js +24 -0
  210. package/locales/angular/global/en-ss.js +24 -0
  211. package/locales/angular/global/en-sx.js +24 -0
  212. package/locales/angular/global/en-sz.js +24 -0
  213. package/locales/angular/global/en-tc.js +24 -0
  214. package/locales/angular/global/en-tk.js +24 -0
  215. package/locales/angular/global/en-to.js +24 -0
  216. package/locales/angular/global/en-tt.js +24 -0
  217. package/locales/angular/global/en-tv.js +24 -0
  218. package/locales/angular/global/en-tz.js +24 -0
  219. package/locales/angular/global/en-ug.js +24 -0
  220. package/locales/angular/global/en-um.js +24 -0
  221. package/locales/angular/global/en-vc.js +24 -0
  222. package/locales/angular/global/en-vg.js +24 -0
  223. package/locales/angular/global/en-vi.js +24 -0
  224. package/locales/angular/global/en-vu.js +24 -0
  225. package/locales/angular/global/en-ws.js +24 -0
  226. package/locales/angular/global/en-za.js +24 -0
  227. package/locales/angular/global/en-zm.js +24 -0
  228. package/locales/angular/global/en-zw.js +24 -0
  229. package/locales/angular/global/en.js +24 -0
  230. package/locales/angular/global/eo.js +24 -0
  231. package/locales/angular/global/es-419.js +26 -0
  232. package/locales/angular/global/es-ar.js +26 -0
  233. package/locales/angular/global/es-bo.js +26 -0
  234. package/locales/angular/global/es-br.js +26 -0
  235. package/locales/angular/global/es-bz.js +26 -0
  236. package/locales/angular/global/es-cl.js +26 -0
  237. package/locales/angular/global/es-co.js +26 -0
  238. package/locales/angular/global/es-cr.js +26 -0
  239. package/locales/angular/global/es-cu.js +26 -0
  240. package/locales/angular/global/es-do.js +26 -0
  241. package/locales/angular/global/es-ea.js +26 -0
  242. package/locales/angular/global/es-ec.js +26 -0
  243. package/locales/angular/global/es-gq.js +26 -0
  244. package/locales/angular/global/es-gt.js +26 -0
  245. package/locales/angular/global/es-hn.js +26 -0
  246. package/locales/angular/global/es-ic.js +26 -0
  247. package/locales/angular/global/es-mx.js +26 -0
  248. package/locales/angular/global/es-ni.js +26 -0
  249. package/locales/angular/global/es-pa.js +26 -0
  250. package/locales/angular/global/es-pe.js +26 -0
  251. package/locales/angular/global/es-ph.js +26 -0
  252. package/locales/angular/global/es-pr.js +26 -0
  253. package/locales/angular/global/es-py.js +26 -0
  254. package/locales/angular/global/es-sv.js +26 -0
  255. package/locales/angular/global/es-us.js +26 -0
  256. package/locales/angular/global/es-uy.js +26 -0
  257. package/locales/angular/global/es-ve.js +26 -0
  258. package/locales/angular/global/es.js +26 -0
  259. package/locales/angular/global/et.js +24 -0
  260. package/locales/angular/global/eu.js +24 -0
  261. package/locales/angular/global/ewo.js +22 -0
  262. package/locales/angular/global/fa-af.js +24 -0
  263. package/locales/angular/global/fa.js +24 -0
  264. package/locales/angular/global/ff-adlm-bf.js +22 -0
  265. package/locales/angular/global/ff-adlm-cm.js +22 -0
  266. package/locales/angular/global/ff-adlm-gh.js +22 -0
  267. package/locales/angular/global/ff-adlm-gm.js +22 -0
  268. package/locales/angular/global/ff-adlm-gw.js +22 -0
  269. package/locales/angular/global/ff-adlm-lr.js +22 -0
  270. package/locales/angular/global/ff-adlm-mr.js +22 -0
  271. package/locales/angular/global/ff-adlm-ne.js +22 -0
  272. package/locales/angular/global/ff-adlm-ng.js +22 -0
  273. package/locales/angular/global/ff-adlm-sl.js +22 -0
  274. package/locales/angular/global/ff-adlm-sn.js +22 -0
  275. package/locales/angular/global/ff-adlm.js +22 -0
  276. package/locales/angular/global/ff-cm.js +74 -0
  277. package/locales/angular/global/ff-gn.js +74 -0
  278. package/locales/angular/global/ff-latn-bf.js +24 -0
  279. package/locales/angular/global/ff-latn-cm.js +24 -0
  280. package/locales/angular/global/ff-latn-gh.js +24 -0
  281. package/locales/angular/global/ff-latn-gm.js +24 -0
  282. package/locales/angular/global/ff-latn-gn.js +24 -0
  283. package/locales/angular/global/ff-latn-gw.js +24 -0
  284. package/locales/angular/global/ff-latn-lr.js +24 -0
  285. package/locales/angular/global/ff-latn-mr.js +24 -0
  286. package/locales/angular/global/ff-latn-ne.js +24 -0
  287. package/locales/angular/global/ff-latn-ng.js +24 -0
  288. package/locales/angular/global/ff-latn-sl.js +24 -0
  289. package/locales/angular/global/ff-latn.js +24 -0
  290. package/locales/angular/global/ff-mr.js +74 -0
  291. package/locales/angular/global/ff.js +24 -0
  292. package/locales/angular/global/fi.js +24 -0
  293. package/locales/angular/global/fil.js +24 -0
  294. package/locales/angular/global/fo-dk.js +24 -0
  295. package/locales/angular/global/fo.js +24 -0
  296. package/locales/angular/global/fr-be.js +26 -0
  297. package/locales/angular/global/fr-bf.js +26 -0
  298. package/locales/angular/global/fr-bi.js +26 -0
  299. package/locales/angular/global/fr-bj.js +26 -0
  300. package/locales/angular/global/fr-bl.js +26 -0
  301. package/locales/angular/global/fr-ca.js +26 -0
  302. package/locales/angular/global/fr-cd.js +26 -0
  303. package/locales/angular/global/fr-cf.js +26 -0
  304. package/locales/angular/global/fr-cg.js +26 -0
  305. package/locales/angular/global/fr-ch.js +26 -0
  306. package/locales/angular/global/fr-ci.js +26 -0
  307. package/locales/angular/global/fr-cm.js +26 -0
  308. package/locales/angular/global/fr-dj.js +26 -0
  309. package/locales/angular/global/fr-dz.js +26 -0
  310. package/locales/angular/global/fr-ga.js +26 -0
  311. package/locales/angular/global/fr-gf.js +26 -0
  312. package/locales/angular/global/fr-gn.js +26 -0
  313. package/locales/angular/global/fr-gp.js +26 -0
  314. package/locales/angular/global/fr-gq.js +26 -0
  315. package/locales/angular/global/fr-ht.js +26 -0
  316. package/locales/angular/global/fr-km.js +26 -0
  317. package/locales/angular/global/fr-lu.js +26 -0
  318. package/locales/angular/global/fr-ma.js +26 -0
  319. package/locales/angular/global/fr-mc.js +26 -0
  320. package/locales/angular/global/fr-mf.js +26 -0
  321. package/locales/angular/global/fr-mg.js +26 -0
  322. package/locales/angular/global/fr-ml.js +26 -0
  323. package/locales/angular/global/fr-mq.js +26 -0
  324. package/locales/angular/global/fr-mr.js +26 -0
  325. package/locales/angular/global/fr-mu.js +26 -0
  326. package/locales/angular/global/fr-nc.js +26 -0
  327. package/locales/angular/global/fr-ne.js +26 -0
  328. package/locales/angular/global/fr-pf.js +26 -0
  329. package/locales/angular/global/fr-pm.js +26 -0
  330. package/locales/angular/global/fr-re.js +26 -0
  331. package/locales/angular/global/fr-rw.js +26 -0
  332. package/locales/angular/global/fr-sc.js +26 -0
  333. package/locales/angular/global/fr-sn.js +26 -0
  334. package/locales/angular/global/fr-sy.js +26 -0
  335. package/locales/angular/global/fr-td.js +26 -0
  336. package/locales/angular/global/fr-tg.js +26 -0
  337. package/locales/angular/global/fr-tn.js +26 -0
  338. package/locales/angular/global/fr-vu.js +26 -0
  339. package/locales/angular/global/fr-wf.js +26 -0
  340. package/locales/angular/global/fr-yt.js +26 -0
  341. package/locales/angular/global/fr.js +26 -0
  342. package/locales/angular/global/fur.js +24 -0
  343. package/locales/angular/global/fy.js +24 -0
  344. package/locales/angular/global/ga-gb.js +30 -0
  345. package/locales/angular/global/ga.js +30 -0
  346. package/locales/angular/global/gd.js +28 -0
  347. package/locales/angular/global/gl.js +24 -0
  348. package/locales/angular/global/gsw-fr.js +24 -0
  349. package/locales/angular/global/gsw-li.js +24 -0
  350. package/locales/angular/global/gsw.js +24 -0
  351. package/locales/angular/global/gu.js +24 -0
  352. package/locales/angular/global/guz.js +22 -0
  353. package/locales/angular/global/gv.js +30 -0
  354. package/locales/angular/global/ha-gh.js +24 -0
  355. package/locales/angular/global/ha-ne.js +24 -0
  356. package/locales/angular/global/ha.js +24 -0
  357. package/locales/angular/global/haw.js +24 -0
  358. package/locales/angular/global/he.js +28 -0
  359. package/locales/angular/global/hi-latn.js +24 -0
  360. package/locales/angular/global/hi.js +24 -0
  361. package/locales/angular/global/hr-ba.js +26 -0
  362. package/locales/angular/global/hr.js +26 -0
  363. package/locales/angular/global/hsb.js +28 -0
  364. package/locales/angular/global/hu.js +24 -0
  365. package/locales/angular/global/hy.js +24 -0
  366. package/locales/angular/global/ia.js +24 -0
  367. package/locales/angular/global/id.js +22 -0
  368. package/locales/angular/global/ig.js +22 -0
  369. package/locales/angular/global/ii.js +22 -0
  370. package/locales/angular/global/is.js +24 -0
  371. package/locales/angular/global/it-ch.js +26 -0
  372. package/locales/angular/global/it-sm.js +26 -0
  373. package/locales/angular/global/it-va.js +26 -0
  374. package/locales/angular/global/it.js +26 -0
  375. package/locales/angular/global/ja.js +22 -0
  376. package/locales/angular/global/jgo.js +24 -0
  377. package/locales/angular/global/jmc.js +24 -0
  378. package/locales/angular/global/jv.js +22 -0
  379. package/locales/angular/global/ka.js +24 -0
  380. package/locales/angular/global/kab.js +24 -0
  381. package/locales/angular/global/kam.js +22 -0
  382. package/locales/angular/global/kde.js +22 -0
  383. package/locales/angular/global/kea.js +22 -0
  384. package/locales/angular/global/kgp.js +22 -0
  385. package/locales/angular/global/khq.js +22 -0
  386. package/locales/angular/global/ki.js +22 -0
  387. package/locales/angular/global/kk.js +24 -0
  388. package/locales/angular/global/kkj.js +24 -0
  389. package/locales/angular/global/kl.js +24 -0
  390. package/locales/angular/global/kln.js +22 -0
  391. package/locales/angular/global/km.js +22 -0
  392. package/locales/angular/global/kn.js +24 -0
  393. package/locales/angular/global/ko-kp.js +22 -0
  394. package/locales/angular/global/ko.js +22 -0
  395. package/locales/angular/global/kok.js +22 -0
  396. package/locales/angular/global/ks-arab.js +24 -0
  397. package/locales/angular/global/ks-deva.js +22 -0
  398. package/locales/angular/global/ks.js +24 -0
  399. package/locales/angular/global/ksb.js +24 -0
  400. package/locales/angular/global/ksf.js +22 -0
  401. package/locales/angular/global/ksh.js +26 -0
  402. package/locales/angular/global/ku.js +24 -0
  403. package/locales/angular/global/kw.js +32 -0
  404. package/locales/angular/global/ky.js +24 -0
  405. package/locales/angular/global/lag.js +26 -0
  406. package/locales/angular/global/lb.js +24 -0
  407. package/locales/angular/global/lg.js +24 -0
  408. package/locales/angular/global/lkt.js +22 -0
  409. package/locales/angular/global/ln-ao.js +24 -0
  410. package/locales/angular/global/ln-cf.js +24 -0
  411. package/locales/angular/global/ln-cg.js +24 -0
  412. package/locales/angular/global/ln.js +24 -0
  413. package/locales/angular/global/lo.js +22 -0
  414. package/locales/angular/global/lrc-iq.js +22 -0
  415. package/locales/angular/global/lrc.js +22 -0
  416. package/locales/angular/global/lt.js +28 -0
  417. package/locales/angular/global/lu.js +22 -0
  418. package/locales/angular/global/luo.js +22 -0
  419. package/locales/angular/global/luy.js +22 -0
  420. package/locales/angular/global/lv.js +26 -0
  421. package/locales/angular/global/mai.js +22 -0
  422. package/locales/angular/global/mas-tz.js +24 -0
  423. package/locales/angular/global/mas.js +24 -0
  424. package/locales/angular/global/mer.js +22 -0
  425. package/locales/angular/global/mfe.js +22 -0
  426. package/locales/angular/global/mg.js +24 -0
  427. package/locales/angular/global/mgh.js +22 -0
  428. package/locales/angular/global/mgo.js +24 -0
  429. package/locales/angular/global/mi.js +22 -0
  430. package/locales/angular/global/mk.js +24 -0
  431. package/locales/angular/global/ml.js +24 -0
  432. package/locales/angular/global/mn.js +24 -0
  433. package/locales/angular/global/mni-beng.js +22 -0
  434. package/locales/angular/global/mni.js +22 -0
  435. package/locales/angular/global/mr.js +24 -0
  436. package/locales/angular/global/ms-bn.js +22 -0
  437. package/locales/angular/global/ms-id.js +22 -0
  438. package/locales/angular/global/ms-sg.js +22 -0
  439. package/locales/angular/global/ms.js +22 -0
  440. package/locales/angular/global/mt.js +28 -0
  441. package/locales/angular/global/mua.js +22 -0
  442. package/locales/angular/global/my.js +22 -0
  443. package/locales/angular/global/mzn.js +22 -0
  444. package/locales/angular/global/naq.js +26 -0
  445. package/locales/angular/global/nb-sj.js +24 -0
  446. package/locales/angular/global/nb.js +24 -0
  447. package/locales/angular/global/nd.js +24 -0
  448. package/locales/angular/global/nds-nl.js +22 -0
  449. package/locales/angular/global/nds.js +22 -0
  450. package/locales/angular/global/ne-in.js +24 -0
  451. package/locales/angular/global/ne.js +24 -0
  452. package/locales/angular/global/nl-aw.js +24 -0
  453. package/locales/angular/global/nl-be.js +24 -0
  454. package/locales/angular/global/nl-bq.js +24 -0
  455. package/locales/angular/global/nl-cw.js +24 -0
  456. package/locales/angular/global/nl-sr.js +24 -0
  457. package/locales/angular/global/nl-sx.js +24 -0
  458. package/locales/angular/global/nl.js +24 -0
  459. package/locales/angular/global/nmg.js +22 -0
  460. package/locales/angular/global/nn.js +24 -0
  461. package/locales/angular/global/nnh.js +24 -0
  462. package/locales/angular/global/no.js +24 -0
  463. package/locales/angular/global/nus.js +22 -0
  464. package/locales/angular/global/nyn.js +24 -0
  465. package/locales/angular/global/om-ke.js +24 -0
  466. package/locales/angular/global/om.js +24 -0
  467. package/locales/angular/global/or.js +24 -0
  468. package/locales/angular/global/os-ru.js +24 -0
  469. package/locales/angular/global/os.js +24 -0
  470. package/locales/angular/global/pa-arab.js +22 -0
  471. package/locales/angular/global/pa-guru.js +24 -0
  472. package/locales/angular/global/pa.js +24 -0
  473. package/locales/angular/global/pcm.js +24 -0
  474. package/locales/angular/global/pl.js +28 -0
  475. package/locales/angular/global/ps-pk.js +24 -0
  476. package/locales/angular/global/ps.js +24 -0
  477. package/locales/angular/global/pt-ao.js +26 -0
  478. package/locales/angular/global/pt-ch.js +26 -0
  479. package/locales/angular/global/pt-cv.js +26 -0
  480. package/locales/angular/global/pt-gq.js +26 -0
  481. package/locales/angular/global/pt-gw.js +26 -0
  482. package/locales/angular/global/pt-lu.js +26 -0
  483. package/locales/angular/global/pt-mo.js +26 -0
  484. package/locales/angular/global/pt-mz.js +26 -0
  485. package/locales/angular/global/pt-pt.js +26 -0
  486. package/locales/angular/global/pt-st.js +26 -0
  487. package/locales/angular/global/pt-tl.js +26 -0
  488. package/locales/angular/global/pt.js +26 -0
  489. package/locales/angular/global/qu-bo.js +22 -0
  490. package/locales/angular/global/qu-ec.js +22 -0
  491. package/locales/angular/global/qu.js +22 -0
  492. package/locales/angular/global/rm.js +24 -0
  493. package/locales/angular/global/rn.js +22 -0
  494. package/locales/angular/global/ro-md.js +26 -0
  495. package/locales/angular/global/ro.js +26 -0
  496. package/locales/angular/global/rof.js +24 -0
  497. package/locales/angular/global/ru-by.js +28 -0
  498. package/locales/angular/global/ru-kg.js +28 -0
  499. package/locales/angular/global/ru-kz.js +28 -0
  500. package/locales/angular/global/ru-md.js +28 -0
  501. package/locales/angular/global/ru-ua.js +28 -0
  502. package/locales/angular/global/ru.js +28 -0
  503. package/locales/angular/global/rw.js +22 -0
  504. package/locales/angular/global/rwk.js +24 -0
  505. package/locales/angular/global/sa.js +22 -0
  506. package/locales/angular/global/sah.js +22 -0
  507. package/locales/angular/global/saq.js +24 -0
  508. package/locales/angular/global/sat-olck.js +26 -0
  509. package/locales/angular/global/sat.js +26 -0
  510. package/locales/angular/global/sbp.js +22 -0
  511. package/locales/angular/global/sc.js +24 -0
  512. package/locales/angular/global/sd-arab.js +24 -0
  513. package/locales/angular/global/sd-deva.js +22 -0
  514. package/locales/angular/global/sd.js +24 -0
  515. package/locales/angular/global/se-fi.js +26 -0
  516. package/locales/angular/global/se-se.js +26 -0
  517. package/locales/angular/global/se.js +26 -0
  518. package/locales/angular/global/seh.js +24 -0
  519. package/locales/angular/global/ses.js +22 -0
  520. package/locales/angular/global/sg.js +22 -0
  521. package/locales/angular/global/shi-latn.js +22 -0
  522. package/locales/angular/global/shi-tfng.js +26 -0
  523. package/locales/angular/global/shi.js +26 -0
  524. package/locales/angular/global/si.js +24 -0
  525. package/locales/angular/global/sk.js +28 -0
  526. package/locales/angular/global/sl.js +28 -0
  527. package/locales/angular/global/smn.js +26 -0
  528. package/locales/angular/global/sn.js +24 -0
  529. package/locales/angular/global/so-dj.js +24 -0
  530. package/locales/angular/global/so-et.js +24 -0
  531. package/locales/angular/global/so-ke.js +24 -0
  532. package/locales/angular/global/so.js +24 -0
  533. package/locales/angular/global/sq-mk.js +24 -0
  534. package/locales/angular/global/sq-xk.js +24 -0
  535. package/locales/angular/global/sq.js +24 -0
  536. package/locales/angular/global/sr-cyrl-ba.js +26 -0
  537. package/locales/angular/global/sr-cyrl-me.js +26 -0
  538. package/locales/angular/global/sr-cyrl-xk.js +26 -0
  539. package/locales/angular/global/sr-cyrl.js +26 -0
  540. package/locales/angular/global/sr-latn-ba.js +22 -0
  541. package/locales/angular/global/sr-latn-me.js +22 -0
  542. package/locales/angular/global/sr-latn-xk.js +22 -0
  543. package/locales/angular/global/sr-latn.js +22 -0
  544. package/locales/angular/global/sr.js +26 -0
  545. package/locales/angular/global/su-latn.js +22 -0
  546. package/locales/angular/global/su.js +22 -0
  547. package/locales/angular/global/sv-ax.js +24 -0
  548. package/locales/angular/global/sv-fi.js +24 -0
  549. package/locales/angular/global/sv.js +24 -0
  550. package/locales/angular/global/sw-cd.js +24 -0
  551. package/locales/angular/global/sw-ke.js +24 -0
  552. package/locales/angular/global/sw-ug.js +24 -0
  553. package/locales/angular/global/sw.js +24 -0
  554. package/locales/angular/global/ta-lk.js +24 -0
  555. package/locales/angular/global/ta-my.js +24 -0
  556. package/locales/angular/global/ta-sg.js +24 -0
  557. package/locales/angular/global/ta.js +24 -0
  558. package/locales/angular/global/te.js +24 -0
  559. package/locales/angular/global/teo-ke.js +24 -0
  560. package/locales/angular/global/teo.js +24 -0
  561. package/locales/angular/global/tg.js +22 -0
  562. package/locales/angular/global/th.js +22 -0
  563. package/locales/angular/global/ti-er.js +24 -0
  564. package/locales/angular/global/ti.js +24 -0
  565. package/locales/angular/global/tk.js +24 -0
  566. package/locales/angular/global/to.js +22 -0
  567. package/locales/angular/global/tr-cy.js +24 -0
  568. package/locales/angular/global/tr.js +24 -0
  569. package/locales/angular/global/tt.js +22 -0
  570. package/locales/angular/global/twq.js +22 -0
  571. package/locales/angular/global/tzm.js +24 -0
  572. package/locales/angular/global/ug.js +24 -0
  573. package/locales/angular/global/uk.js +28 -0
  574. package/locales/angular/global/und.js +24 -0
  575. package/locales/angular/global/ur-in.js +24 -0
  576. package/locales/angular/global/ur.js +24 -0
  577. package/locales/angular/global/uz-arab.js +22 -0
  578. package/locales/angular/global/uz-cyrl.js +22 -0
  579. package/locales/angular/global/uz-latn.js +24 -0
  580. package/locales/angular/global/uz.js +24 -0
  581. package/locales/angular/global/vai-latn.js +22 -0
  582. package/locales/angular/global/vai-vaii.js +22 -0
  583. package/locales/angular/global/vai.js +22 -0
  584. package/locales/angular/global/vi.js +22 -0
  585. package/locales/angular/global/vun.js +24 -0
  586. package/locales/angular/global/wae.js +24 -0
  587. package/locales/angular/global/wo.js +22 -0
  588. package/locales/angular/global/xh.js +24 -0
  589. package/locales/angular/global/xog.js +24 -0
  590. package/locales/angular/global/yav.js +22 -0
  591. package/locales/angular/global/yi.js +24 -0
  592. package/locales/angular/global/yo-bj.js +22 -0
  593. package/locales/angular/global/yo.js +22 -0
  594. package/locales/angular/global/yrl-co.js +22 -0
  595. package/locales/angular/global/yrl-ve.js +22 -0
  596. package/locales/angular/global/yrl.js +22 -0
  597. package/locales/angular/global/yue-hans.js +22 -0
  598. package/locales/angular/global/yue-hant.js +22 -0
  599. package/locales/angular/global/yue.js +22 -0
  600. package/locales/angular/global/zgh.js +22 -0
  601. package/locales/angular/global/zh-hans-hk.js +22 -0
  602. package/locales/angular/global/zh-hans-mo.js +22 -0
  603. package/locales/angular/global/zh-hans-sg.js +22 -0
  604. package/locales/angular/global/zh-hans.js +22 -0
  605. package/locales/angular/global/zh-hant-hk.js +22 -0
  606. package/locales/angular/global/zh-hant-mo.js +22 -0
  607. package/locales/angular/global/zh-hant.js +22 -0
  608. package/locales/angular/global/zh.js +22 -0
  609. package/locales/angular/global/zu.js +24 -0
  610. package/locales/fullcalendar/af.js +27 -0
  611. package/locales/fullcalendar/ar-dz.js +28 -0
  612. package/locales/fullcalendar/ar-kw.js +28 -0
  613. package/locales/fullcalendar/ar-ly.js +28 -0
  614. package/locales/fullcalendar/ar-ma.js +28 -0
  615. package/locales/fullcalendar/ar-sa.js +28 -0
  616. package/locales/fullcalendar/ar-tn.js +28 -0
  617. package/locales/fullcalendar/ar.js +28 -0
  618. package/locales/fullcalendar/az.js +29 -0
  619. package/locales/fullcalendar/bg.js +28 -0
  620. package/locales/fullcalendar/bs.js +29 -0
  621. package/locales/fullcalendar/ca.js +27 -0
  622. package/locales/fullcalendar/cs.js +29 -0
  623. package/locales/fullcalendar/da.js +27 -0
  624. package/locales/fullcalendar/de.js +30 -0
  625. package/locales/fullcalendar/el.js +27 -0
  626. package/locales/fullcalendar/en-au.js +14 -0
  627. package/locales/fullcalendar/en-gb.js +14 -0
  628. package/locales/fullcalendar/en-nz.js +14 -0
  629. package/locales/fullcalendar/es-us.js +27 -0
  630. package/locales/fullcalendar/es.js +27 -0
  631. package/locales/fullcalendar/et.js +29 -0
  632. package/locales/fullcalendar/eu.js +27 -0
  633. package/locales/fullcalendar/fa.js +30 -0
  634. package/locales/fullcalendar/fi.js +27 -0
  635. package/locales/fullcalendar/fr-ca.js +24 -0
  636. package/locales/fullcalendar/fr-ch.js +28 -0
  637. package/locales/fullcalendar/fr.js +28 -0
  638. package/locales/fullcalendar/gl.js +27 -0
  639. package/locales/fullcalendar/he.js +24 -0
  640. package/locales/fullcalendar/hi.js +29 -0
  641. package/locales/fullcalendar/hr.js +29 -0
  642. package/locales/fullcalendar/hu.js +27 -0
  643. package/locales/fullcalendar/id.js +27 -0
  644. package/locales/fullcalendar/is.js +27 -0
  645. package/locales/fullcalendar/it.js +29 -0
  646. package/locales/fullcalendar/ja.js +25 -0
  647. package/locales/fullcalendar/ka.js +29 -0
  648. package/locales/fullcalendar/kk.js +29 -0
  649. package/locales/fullcalendar/ko.js +23 -0
  650. package/locales/fullcalendar/lb.js +27 -0
  651. package/locales/fullcalendar/lt.js +27 -0
  652. package/locales/fullcalendar/lv.js +29 -0
  653. package/locales/fullcalendar/mk.js +25 -0
  654. package/locales/fullcalendar/ms.js +29 -0
  655. package/locales/fullcalendar/nb.js +27 -0
  656. package/locales/fullcalendar/ne.js +27 -0
  657. package/locales/fullcalendar/nl.js +27 -0
  658. package/locales/fullcalendar/nn.js +27 -0
  659. package/locales/fullcalendar/pl.js +27 -0
  660. package/locales/fullcalendar/pt-br.js +25 -0
  661. package/locales/fullcalendar/pt.js +27 -0
  662. package/locales/fullcalendar/ro.js +29 -0
  663. package/locales/fullcalendar/ru.js +29 -0
  664. package/locales/fullcalendar/sk.js +29 -0
  665. package/locales/fullcalendar/sl.js +27 -0
  666. package/locales/fullcalendar/sq.js +29 -0
  667. package/locales/fullcalendar/sr-cyrl.js +29 -0
  668. package/locales/fullcalendar/sr.js +29 -0
  669. package/locales/fullcalendar/sv.js +27 -0
  670. package/locales/fullcalendar/th.js +30 -0
  671. package/locales/fullcalendar/tr.js +27 -0
  672. package/locales/fullcalendar/ug.js +17 -0
  673. package/locales/fullcalendar/uk.js +29 -0
  674. package/locales/fullcalendar/uz.js +21 -0
  675. package/locales/fullcalendar/vi.js +29 -0
  676. package/locales/fullcalendar/zh-cn.js +30 -0
  677. package/locales/fullcalendar/zh-tw.js +23 -0
  678. package/locales/moment/af.js +82 -0
  679. package/locales/moment/ar-dz.js +167 -0
  680. package/locales/moment/ar-kw.js +66 -0
  681. package/locales/moment/ar-ly.js +182 -0
  682. package/locales/moment/ar-ma.js +67 -0
  683. package/locales/moment/ar-sa.js +116 -0
  684. package/locales/moment/ar-tn.js +66 -0
  685. package/locales/moment/ar.js +200 -0
  686. package/locales/moment/az.js +113 -0
  687. package/locales/moment/be.js +153 -0
  688. package/locales/moment/bg.js +98 -0
  689. package/locales/moment/bm.js +62 -0
  690. package/locales/moment/bn-bd.js +140 -0
  691. package/locales/moment/bn.js +130 -0
  692. package/locales/moment/bo.js +135 -0
  693. package/locales/moment/br.js +179 -0
  694. package/locales/moment/bs.js +161 -0
  695. package/locales/moment/ca.js +111 -0
  696. package/locales/moment/cs.js +191 -0
  697. package/locales/moment/cv.js +74 -0
  698. package/locales/moment/cy.js +109 -0
  699. package/locales/moment/da.js +64 -0
  700. package/locales/moment/de-at.js +90 -0
  701. package/locales/moment/de-ch.js +87 -0
  702. package/locales/moment/de.js +89 -0
  703. package/locales/moment/dv.js +101 -0
  704. package/locales/moment/el.js +117 -0
  705. package/locales/moment/en-au.js +79 -0
  706. package/locales/moment/en-ca.js +75 -0
  707. package/locales/moment/en-gb.js +79 -0
  708. package/locales/moment/en-ie.js +79 -0
  709. package/locales/moment/en-il.js +75 -0
  710. package/locales/moment/en-in.js +79 -0
  711. package/locales/moment/en-nz.js +79 -0
  712. package/locales/moment/en-sg.js +79 -0
  713. package/locales/moment/eo.js +79 -0
  714. package/locales/moment/es-do.js +119 -0
  715. package/locales/moment/es-mx.js +121 -0
  716. package/locales/moment/es-us.js +121 -0
  717. package/locales/moment/es.js +121 -0
  718. package/locales/moment/et.js +89 -0
  719. package/locales/moment/eu.js +76 -0
  720. package/locales/moment/fa.js +124 -0
  721. package/locales/moment/fi.js +135 -0
  722. package/locales/moment/fil.js +69 -0
  723. package/locales/moment/fo.js +68 -0
  724. package/locales/moment/fr-ca.js +81 -0
  725. package/locales/moment/fr-ch.js +85 -0
  726. package/locales/moment/fr.js +119 -0
  727. package/locales/moment/fy.js +86 -0
  728. package/locales/moment/ga.js +106 -0
  729. package/locales/moment/gd.js +106 -0
  730. package/locales/moment/gl.js +86 -0
  731. package/locales/moment/gom-deva.js +137 -0
  732. package/locales/moment/gom-latn.js +135 -0
  733. package/locales/moment/gu.js +133 -0
  734. package/locales/moment/he.js +105 -0
  735. package/locales/moment/hi.js +179 -0
  736. package/locales/moment/hr.js +167 -0
  737. package/locales/moment/hu.js +129 -0
  738. package/locales/moment/hy-am.js +105 -0
  739. package/locales/moment/id.js +87 -0
  740. package/locales/moment/is.js +151 -0
  741. package/locales/moment/it-ch.js +75 -0
  742. package/locales/moment/it.js +117 -0
  743. package/locales/moment/ja.js +159 -0
  744. package/locales/moment/jv.js +87 -0
  745. package/locales/moment/ka.js +103 -0
  746. package/locales/moment/kk.js +93 -0
  747. package/locales/moment/km.js +114 -0
  748. package/locales/moment/kn.js +135 -0
  749. package/locales/moment/ko.js +86 -0
  750. package/locales/moment/ku.js +129 -0
  751. package/locales/moment/ky.js +95 -0
  752. package/locales/moment/lb.js +148 -0
  753. package/locales/moment/lo.js +77 -0
  754. package/locales/moment/lt.js +136 -0
  755. package/locales/moment/lv.js +105 -0
  756. package/locales/moment/me.js +128 -0
  757. package/locales/moment/mi.js +71 -0
  758. package/locales/moment/mk.js +97 -0
  759. package/locales/moment/ml.js +93 -0
  760. package/locales/moment/mn.js +111 -0
  761. package/locales/moment/mr.js +214 -0
  762. package/locales/moment/ms-my.js +87 -0
  763. package/locales/moment/ms.js +86 -0
  764. package/locales/moment/mt.js +67 -0
  765. package/locales/moment/my.js +102 -0
  766. package/locales/moment/nb.js +71 -0
  767. package/locales/moment/ne.js +132 -0
  768. package/locales/moment/nl-be.js +113 -0
  769. package/locales/moment/nl.js +115 -0
  770. package/locales/moment/nn.js +70 -0
  771. package/locales/moment/oc-lnc.js +96 -0
  772. package/locales/moment/pa-in.js +133 -0
  773. package/locales/moment/pl.js +151 -0
  774. package/locales/moment/pt-br.js +69 -0
  775. package/locales/moment/pt.js +74 -0
  776. package/locales/moment/ro.js +87 -0
  777. package/locales/moment/ru.js +224 -0
  778. package/locales/moment/sd.js +92 -0
  779. package/locales/moment/se.js +68 -0
  780. package/locales/moment/si.js +80 -0
  781. package/locales/moment/sk.js +156 -0
  782. package/locales/moment/sl.js +182 -0
  783. package/locales/moment/sq.js +76 -0
  784. package/locales/moment/sr-cyrl.js +138 -0
  785. package/locales/moment/sr.js +140 -0
  786. package/locales/moment/ss.js +95 -0
  787. package/locales/moment/sv.js +79 -0
  788. package/locales/moment/sw.js +66 -0
  789. package/locales/moment/ta.js +142 -0
  790. package/locales/moment/te.js +99 -0
  791. package/locales/moment/tet.js +79 -0
  792. package/locales/moment/tg.js +128 -0
  793. package/locales/moment/th.js +76 -0
  794. package/locales/moment/tk.js +102 -0
  795. package/locales/moment/tl-ph.js +68 -0
  796. package/locales/moment/tlh.js +135 -0
  797. package/locales/moment/tr.js +117 -0
  798. package/locales/moment/tzl.js +100 -0
  799. package/locales/moment/tzm-latn.js +65 -0
  800. package/locales/moment/tzm.js +65 -0
  801. package/locales/moment/ug-cn.js +122 -0
  802. package/locales/moment/uk.js +178 -0
  803. package/locales/moment/ur.js +93 -0
  804. package/locales/moment/uz-latn.js +65 -0
  805. package/locales/moment/uz.js +62 -0
  806. package/locales/moment/vi.js +91 -0
  807. package/locales/moment/x-pseudo.js +84 -0
  808. package/locales/moment/yo.js +64 -0
  809. package/locales/moment/zh-cn.js +131 -0
  810. package/locales/moment/zh-hk.js +112 -0
  811. package/locales/moment/zh-mo.js +111 -0
  812. package/locales/moment/zh-tw.js +110 -0
  813. package/locales/moment-timezone/moment-timezone-with-data.js +1581 -0
  814. package/mobile/components/containers/segmented-control/bundles/index.umd.js +1 -1
  815. package/npm-shrinkwrap.json +2 -2
  816. package/package-lock.json +2 -2
  817. package/package.json +1 -1
  818. package/runtime/base/bundles/index.umd.js +20 -9
  819. package/runtime/base/esm2022/services/app.manager.service.mjs +13 -8
  820. package/runtime/base/esm2022/services/http-interceptor.services.mjs +9 -3
  821. package/runtime/base/fesm2022/index.mjs +20 -9
  822. package/runtime/base/fesm2022/index.mjs.map +1 -1
  823. package/runtime/base/services/app.manager.service.d.ts +1 -1
  824. package/runtime/base/services/http-interceptor.services.d.ts +1 -0
  825. package/scripts/datatable/datatable.js +3 -0
  826. package/variables/bundles/index.umd.js +1 -1
  827. package/variables/esm2022/service/metadata-service/metadata.service.mjs +2 -2
  828. package/variables/fesm2022/index.mjs +1 -1
  829. package/variables/fesm2022/index.mjs.map +1 -1
@@ -184,7 +184,7 @@ export class DatasetAwareFormComponent extends BaseFormCustomComponent {
184
184
  }
185
185
  });
186
186
  this.displayValue = this.multiple ? displayValues : displayValues[0] || '';
187
- if (this.viewParent.containerWidget)
187
+ if (this.viewParent.containerWidget && this.viewParent.containerWidget._isCustom)
188
188
  this.viewParent.containerWidget.displayValue = this.displayValue.length ? this.displayValue : '';
189
189
  }
190
190
  // This function parses the dataset and extracts the displayOptions from parsed dataset.
@@ -304,4 +304,4 @@ export class DatasetAwareFormComponent extends BaseFormCustomComponent {
304
304
  type: Attribute,
305
305
  args: ['groupby']
306
306
  }] }, { type: Promise }], null); })();
307
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNldC1hd2FyZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9kYXRhc2V0LWF3YXJlLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQXFCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFlLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQWlCLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BSLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxRQUFRLElBQUksU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7QUFHN0csTUFBTSxPQUFnQix5QkFBMEIsU0FBUSx1QkFBdUI7SUE4QzNFLElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELDBFQUEwRTtJQUMxRSxJQUFXLFVBQVUsQ0FBQyxHQUFRO1FBQzFC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O3NCQUNuQyxNQUFNO3VCQUFDLGtCQUFrQjs7c0JBQUcsUUFBUTs7c0JBQ3BDLFNBQVM7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXR0cmlidXRlLCBJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7JGFwcERpZ2VzdCwgQXBwRGVmYXVsdHMsIGRlYm91bmNlLCBpc0RlZmluZWQsIGlzRXF1YWxXaXRoRmllbGRzLCBub29wLCB0b0Jvb2xlYW59IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IEFMTEZJRUxEUywgY29udmVydERhdGFUb09iamVjdCwgRGF0YVNldEl0ZW0sIGV4dHJhY3REYXRhQXNBcnJheSwgZ2V0T3JkZXJlZERhdGFzZXQsIGdldFVuaXFPYmpzQnlEYXRhRmllbGQsIGhhbmRsZUhlYWRlckNsaWNrLCB0b2dnbGVBbGxIZWFkZXJzLCB0cmFuc2Zvcm1Gb3JtRGF0YSwgdHJhbnNmb3JtRGF0YVdpdGhLZXlzLCBncm91cERhdGEsIFRvRGF0ZVBpcGUsIElXaWRnZXRDb25maWcsIFdpZGdldENvbmZpZyB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHsgQmFzZUZvcm1DdXN0b21Db21wb25lbnQgfSBmcm9tICcuL2Jhc2UtZm9ybS1jdXN0b20uY29tcG9uZW50JztcbmltcG9ydCB7ZGVib3VuY2UgYXMgX2RlYm91bmNlLCBmaW5kLCBpc0FycmF5LCBpc0VtcHR5LCBpc0VxdWFsLCBpc051bGwsIGlzT2JqZWN0LCB0b1N0cmluZ30gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0YXNldEF3YXJlRm9ybUNvbXBvbmVudCBleHRlbmRzIEJhc2VGb3JtQ3VzdG9tQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyBkYXRhc2V0OiBhbnk7XG4gICAgcHVibGljIGRhdGFmaWVsZDogc3RyaW5nO1xuICAgIHB1YmxpYyBkaXNwbGF5ZmllbGQ6IHN0cmluZztcbiAgICBwdWJsaWMgZGlzcGxheWxhYmVsOiBzdHJpbmc7XG4gICAgcHVibGljIGRpc3BsYXlpbWFnZXNyYzogc3RyaW5nO1xuICAgIHB1YmxpYyBkaXNwbGF5ZXhwcmVzc2lvbjogc3RyaW5nO1xuICAgIHB1YmxpYyB1c2VrZXlzOiBib29sZWFuO1xuICAgIHB1YmxpYyBvcmRlcmJ5OiBzdHJpbmc7XG4gICAgcHVibGljIG11bHRpcGxlOiBib29sZWFuO1xuICAgIHB1YmxpYyByZWFkb25seTogYm9vbGVhbjtcbiAgICBwdWJsaWMgY29udGVudDogc3RyaW5nO1xuICAgIHB1YmxpYyBjb2xsYXBzaWJsZTogYm9vbGVhbjtcbiAgICBwdWJsaWMgZGF0ZVBpcGU7XG5cbiAgICBwdWJsaWMgaGFuZGxlSGVhZGVyQ2xpY2s6ICgkZXZlbnQpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSB0b2dnbGVBbGxIZWFkZXJzOiB2b2lkO1xuICAgIHB1YmxpYyBhcHBEZWZhdWx0cztcblxuICAgIHB1YmxpYyBiaW5kZGlzcGxheWV4cHJlc3Npb246IHN0cmluZztcbiAgICBwdWJsaWMgYmluZGRpc3BsYXlpbWFnZXNyYzogc3RyaW5nO1xuICAgIHB1YmxpYyBiaW5kZGlzcGxheWxhYmVsOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgZGlzcGxheVZhbHVlOiBBcnJheTxzdHJpbmc+IHwgc3RyaW5nO1xuXG4gICAgcHVibGljIGRhdGFzZXRJdGVtczogRGF0YVNldEl0ZW1bXSA9IFtdO1xuICAgIHB1YmxpYyBhY2NlcHRzQXJyYXkgPSBmYWxzZTsgLy8gc2V0IHRvIHRydWUgaWYgcHJveHlNb2RlbCBvbiB3aWRnZXQgYWNjZXB0cyBhcnJheSB0eXBlLlxuICAgIHByb3RlY3RlZCBkYXRhc2V0JCA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHJvdGVjdGVkIGRhdGF2YWx1ZSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgcHJvdGVjdGVkIG1hdGNoOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIGRhdGVmb3JtYXQ6IHN0cmluZztcbiAgICBwdWJsaWMgZ3JvdXBlZERhdGE6IGFueVtdO1xuXG4gICAgcHJvdGVjdGVkIF9tb2RlbEJ5S2V5OiBhbnk7XG4gICAgcHVibGljIF9tb2RlbEJ5VmFsdWU6IGFueTtcbiAgICBwdWJsaWMgX2RlZmF1bHRRdWVyeUludm9rZWQ6IGJvb2xlYW47IC8vIGZvciBzZWFyY2gvY2hpcHMgaWYgZGF0YXZhbHVlIGlzIG9idGFpbmVkIGZyb20gdGhlIGRlZmF1bHQgbi93IGNhbGwgdGhlbiBzZXQgdG8gdHJ1ZSBhbmQgZG8gbm90IHVwZGF0ZSB0aGUgbW9kZWxCeUtleXMuXG5cbiAgICAvLyB0aGlzIGZpZWxkIGNvbnRhaW5zIHRoZSBpbml0aWFsIGRhdGF2YWx1ZSB3aGljaCBuZWVkcyB0byBiZSBwcm9jZXNzZWQgb25jZSB0aGUgZGF0YXNldCBpcyBhdmFpbGFibGVcbiAgICBwdWJsaWMgdG9CZVByb2Nlc3NlZERhdGF2YWx1ZTogYW55O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RlYm91bmNlZEluaXREYXRhc2V0SXRlbXM6IEZ1bmN0aW9uO1xuICAgIHByb3RlY3RlZCBhbGxvd2VtcHR5ID0gdHJ1ZTtcbiAgICBwdWJsaWMgY29tcGFyZWJ5OiBhbnk7XG5cbiAgICBwcml2YXRlIGNhbmNlbExvY2FsZUNoYW5nZVN1YnNjcmlwdGlvbjtcblxuICAgIHB1YmxpYyBnZXQgbW9kZWxCeUtleSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21vZGVsQnlLZXk7XG4gICAgfVxuXG4gICAgLy8gdHJpZ2dlcnMgb24gbmdNb2RlbCBjaGFuZ2UuIFRoaXMgZnVuY3Rpb24gZXh0cmFjdHMgdGhlIGRhdGF2YWx1ZSB2YWx1ZS5cbiAgICBwdWJsaWMgc2V0IG1vZGVsQnlLZXkodmFsOiBhbnkpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RCeUtleSh2YWwpO1xuXG4gICAgICAgIC8vIGludm9rZSBvbiBkYXRhdmFsdWUgY2hhbmdlLlxuICAgICAgICB0aGlzLmludm9rZU9uQ2hhbmdlKHRoaXMuX21vZGVsQnlWYWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHB1YmxpYyBnZXQgZGF0YXZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbW9kZWxCeVZhbHVlO1xuICAgIH1cblxuICAgIC8vIHRyaWdnZXJzIG9uIHNldHRpbmcgdGhlIGRhdGF2YWx1ZS4gVGhpcyBmdW5jdGlvbiBleHRyYWN0cyB0aGUgbW9kZWwgdmFsdWUuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHB1YmxpYyBzZXQgZGF0YXZhbHVlKHZhbDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgICAgICB2YWwgPSBleHRyYWN0RGF0YUFzQXJyYXkodmFsKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9tb2RlbEJ5VmFsdWUgPSB2YWw7XG5cbiAgICAgICAgdGhpcy5zZWxlY3RCeVZhbHVlKHZhbCk7XG5cbiAgICAgICAgLy8gY2hhbmdlcyBvbiB0aGUgZGF0YXZhbHVlIGNhbiBiZSBzdWJzY3JpYmVkIHVzaW5nIGxpc3RlblRvRGF0YXZhbHVlXG4gICAgICAgIHRoaXMuZGF0YXZhbHVlJC5uZXh0KHZhbCk7XG5cbiAgICAgICAgLy8gaW52b2tlIG9uIGRhdGF2YWx1ZSBjaGFuZ2UuXG4gICAgICAgIHRoaXMuaW52b2tlT25DaGFuZ2UodmFsLCB1bmRlZmluZWQsIHRydWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCAgQEluamVjdChXaWRnZXRDb25maWcpIGNvbmZpZzogSVdpZGdldENvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBAQXR0cmlidXRlKCdncm91cGJ5JykgcHVibGljIGdyb3VwYnk/OiBzdHJpbmcsIGluaXRQcm9taXNlPzogUHJvbWlzZTxhbnk+KSB7XG4gICAgICAgIHN1cGVyKGluaiwgY29uZmlnLCBleHBsaWNpdENvbnRleHQsIGluaXRQcm9taXNlKTtcbiAgICAgICAgdGhpcy5kYXRlUGlwZSA9IHRoaXMuaW5qLmdldChUb0RhdGVQaXBlKTtcbiAgICAgICAgdGhpcy5hcHBEZWZhdWx0cyA9IHRoaXMuaW5qLmdldChBcHBEZWZhdWx0cyk7XG4gICAgICAgIHRoaXMuYmluZGRpc3BsYXlleHByZXNzaW9uID0gdGhpcy5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGlzcGxheWV4cHJlc3Npb24uYmluZCcpO1xuICAgICAgICB0aGlzLmJpbmRkaXNwbGF5aW1hZ2VzcmMgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkaXNwbGF5aW1hZ2VzcmMuYmluZCcpO1xuICAgICAgICB0aGlzLmJpbmRkaXNwbGF5bGFiZWwgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkaXNwbGF5bGFiZWwuYmluZCcpO1xuXG4gICAgICAgIHRoaXMuX2RlYm91bmNlZEluaXREYXRhc2V0SXRlbXMgPSBkZWJvdW5jZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmluaXREYXRhc2V0SXRlbXMoKTtcbiAgICAgICAgICAgICRhcHBEaWdlc3QoKTtcbiAgICAgICAgfSwgMTUwKTtcbiAgICAgICAgdGhpcy5oYW5kbGVIZWFkZXJDbGljayA9IG5vb3A7XG5cbiAgICAgICAgdGhpcy5jYW5jZWxMb2NhbGVDaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLmdldEFwcEluc3RhbmNlKCkuc3Vic2NyaWJlKFwibG9jYWxlLWNoYW5nZWRcIiwgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fZGVib3VuY2VkSW5pdERhdGFzZXRJdGVtcygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIHNldHMgdGhlIF9kYXRhdmFsdWUgdmFsdWUgZnJvbSB0aGUgbW9kZWwgYW5kIHNldHMgdGhlIHNlbGVjdGVkIGZsYWcgd2hlbiBpdGVtIGlzIGZvdW5kLlxuICAgICAqIEhlcmUgbW9kZWwgaXMgdGhlIHZhbHVlIG9idGFpbmVkIGZyb20gbmdNb2RlbC5cbiAgICAgKiBAcGFyYW0ga2V5cyByZXByZXNlbnQgdGhlIG1vZGVsLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzZWxlY3RCeUtleShrZXlzKSB7XG4gICAgICAgIHRoaXMucmVzZXREYXRhc2V0SXRlbXMoKTtcblxuICAgICAgICBpZiAoIXRoaXMuZGF0YXNldEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUgJiYgIWlzQXJyYXkoa2V5cykpIHtcbiAgICAgICAgICAgIGtleXMgPSBba2V5c107XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgdGhlIF9tb2RlbEJ5S2V5IHRvIHRoZSBtb2RpZmllZCBrZXlzLlxuICAgICAgICB0aGlzLl9tb2RlbEJ5S2V5ID0ga2V5cztcblxuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgdGhpcy5fbW9kZWxCeVZhbHVlID0gW107XG4gICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtQnlLZXkgPSBmaW5kKHRoaXMuZGF0YXNldEl0ZW1zLCBpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gbm90IHRyaXBsZSBlcXVhbCwgYXMgdGhlIGluc3RhbmNlIHR5cGUgY2FuIGJlIGRpZmZlcmVudC5cbiAgICAgICAgICAgICAgICAgICAgLy8gb25seSB2YWx1ZSBjb21wYXJpc29uIHNob3VsZCBiZSBkb25lLlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9TdHJpbmcoaXRlbS5rZXkpID09PSB0b1N0cmluZyhrZXkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChpdGVtQnlLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbUJ5S2V5LnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbW9kZWxCeVZhbHVlID0gWy4uLnRoaXMuX21vZGVsQnlWYWx1ZSwgaXRlbUJ5S2V5LnZhbHVlXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX21vZGVsQnlWYWx1ZSA9ICcnO1xuICAgICAgICAgICAgY29uc3QgaXRlbUJ5S2V5ID0gZmluZCh0aGlzLmRhdGFzZXRJdGVtcywgaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gbm90IHRyaXBsZSBlcXVhbCwgYXMgdGhlIGluc3RhbmNlIHR5cGUgY2FuIGJlIGRpZmZlcmVudC5cbiAgICAgICAgICAgICAgICAvLyBvbmx5IHZhbHVlIGNvbXBhcmlzb24gc2hvdWxkIGJlIGRvbmUuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRvU3RyaW5nKGl0ZW0ua2V5KSA9PT0gdG9TdHJpbmcoa2V5cyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChpdGVtQnlLZXkpIHtcbiAgICAgICAgICAgICAgICBpdGVtQnlLZXkuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuX21vZGVsQnlWYWx1ZSA9IGl0ZW1CeUtleS52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluaXREaXNwbGF5VmFsdWVzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBzZXRzIHRoZSBfbW9kZWwgdmFsdWUgZnJvbSB0aGUgZGF0YXZhbHVlIChzZWxlY3RlZHZhbHVlcykgYW5kIHNldHMgdGhlIHNlbGVjdGVkIGZsYWcgd2hlbiBpdGVtIGlzIGZvdW5kLlxuICAgICAqIGRhdGF2YWx1ZSBpcyB0aGUgZGVmYXVsdCB2YWx1ZSBvciBhIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgZGlzcGxheUZpZWxkIChmb3Igc3VwcG9zZTogb2JqZWN0IGluIGNhc2Ugb2YgQUxMRklFTERTKS5cbiAgICAgKiBJZiBhY2NlcHRzQXJyYXkgaXMgdHJ1ZSwgdGhlIG1vZGVsIGFsd2F5cyBhY2NlcHRzIGFuIGFycmF5LlxuICAgICAqIEZvciBleGFtcGxlLCBzZWxlY3QgYWx3YXlzIGFjY2VwdHMgbW9kZWwgYXMgYXJyYXkgd2hldGhlciBtdWx0aXBsZSBzZWxlY3QgaXMgdHJ1ZSBvciBmYWxzZS5cbiAgICAgKiBAcGFyYW0gdmFsdWVzIHJlcHJlc2VudCB0aGUgZGF0YXZhbHVlLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzZWxlY3RCeVZhbHVlKHZhbHVlczogQXJyYXk8YW55PiB8IGFueSkge1xuICAgICAgICB0aGlzLnJlc2V0RGF0YXNldEl0ZW1zKCk7XG5cbiAgICAgICAgLy8gaWYgZGF0YXZhbHVlIGlzIG5vdCBkZWZpbmVkIG9yIGVtcHR5IHRoZW4gc2V0IHRoZSBtb2RlbCBhcyB1bmRlZmluZWQuXG4gICAgICAgIGlmICghaXNEZWZpbmVkKHZhbHVlcykgfHwgdmFsdWVzID09PSAnJyB8fCBpc051bGwodmFsdWVzKSB8fCAodmFsdWVzIGluc3RhbmNlb2YgQXJyYXkgJiYgIXZhbHVlcy5sZW5ndGgpKSB7XG4gICAgICAgICAgICB0aGlzLl9tb2RlbEJ5S2V5ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgLy8gZG8gbm90IHJldHVybiB3aGVuIGFsbG93ZW1wdHkgaXMgc2V0IHRvIHRydWUuXG4gICAgICAgICAgICBpZiAoIXRoaXMuYWxsb3dlbXB0eSB8fCAhaXNEZWZpbmVkKHZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hY2NlcHRzQXJyYXkgJiYgIWlzQXJyYXkodmFsdWVzKSkge1xuICAgICAgICAgICAgdmFsdWVzID0gdGhpcy5hbGxvd2VtcHR5ID8gW3ZhbHVlc10gOiBleHRyYWN0RGF0YUFzQXJyYXkodmFsdWVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHByZXNlcnZlIHRoZSBkYXRhdmFsdWUgaWYgZGF0YXNldEl0ZW1zIGFyZSBlbXB0eS5cbiAgICAgICAgaWYgKCF0aGlzLmRhdGFzZXRJdGVtcy5sZW5ndGggJiYgaXNEZWZpbmVkKHZhbHVlcykpIHtcbiAgICAgICAgICAgIHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZSA9IHZhbHVlcztcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpbHRlckZpZWxkID0gdGhpcy5kYXRhZmllbGQgPT09IEFMTEZJRUxEUyA/ICdkYXRhT2JqZWN0JyA6ICdrZXknO1xuXG4gICAgICAgIGlmIChpc0FycmF5KHZhbHVlcykpIHtcbiAgICAgICAgICAgIHRoaXMuX21vZGVsQnlLZXkgPSBbXTtcbiAgICAgICAgICAgIHZhbHVlcy5mb3JFYWNoKHZhbCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbUJ5VmFsdWUgPSBmaW5kKHRoaXMuZGF0YXNldEl0ZW1zLCBpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlckZpZWxkID09PSAnZGF0YU9iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbXBhcmVieSAmJiB0aGlzLmNvbXBhcmVieS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXNFcXVhbFdpdGhGaWVsZHMoaXRlbVtmaWx0ZXJGaWVsZF0sIHZhbCwgdGhpcy5jb21wYXJlYnkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoaXNPYmplY3QoaXRlbS52YWx1ZSkgPyBpc0VxdWFsKGl0ZW0udmFsdWUsIHZhbCkgOiAodG9TdHJpbmcoaXRlbS52YWx1ZSkpLnRvTG93ZXJDYXNlKCkgPT09ICh0b1N0cmluZyh2YWwpKS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbUJ5VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbUJ5VmFsdWUuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9tb2RlbEJ5S2V5LnB1c2goaXRlbUJ5VmFsdWUua2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX21vZGVsQnlLZXkgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBpdGVtQnlWYWx1ZSA9IGZpbmQodGhpcy5kYXRhc2V0SXRlbXMsIGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJGaWVsZCA9PT0gJ2RhdGFPYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbXBhcmVieSAmJiB0aGlzLmNvbXBhcmVieS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpc0VxdWFsV2l0aEZpZWxkcyhpdGVtW2ZpbHRlckZpZWxkXSwgdmFsdWVzLCB0aGlzLmNvbXBhcmVieSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIChpc09iamVjdChpdGVtLnZhbHVlKSA/IGlzRXF1YWwoaXRlbS52YWx1ZSwgdmFsdWVzKSA6ICh0b1N0cmluZyhpdGVtLnZhbHVlKSkudG9Mb3dlckNhc2UoKSA9PT0gKHRvU3RyaW5nKHZhbHVlcykpLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoaXRlbUJ5VmFsdWUpIHtcbiAgICAgICAgICAgICAgICBpdGVtQnlWYWx1ZS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5fbW9kZWxCeUtleSA9IGl0ZW1CeVZhbHVlLmtleTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBkZWxheWluZyB0aGUgZGF0YXZhbHVlIHVwZGF0ZSBhcyB0aGUgd2lkZ2V0cyBpbiBsaXZlZm9ybSBhcmUgaGF2aW5nIGRhdGF2YWx1ZSBhcyB1bmRlZmluZWQgYW5kIG5vdCB0aGUgZGVmYXVsdCBwcm92aWRlZCB2YWx1ZVxuICAgICAgICAvLyBiZWNhdXNlIGRhdGF2YWx1ZSBpcyB1cGRhdGVkIGxhdGVyIHdoZW4gbmV3IGRhdGFzZXQgaXMgYXZhaWxhYmxlLlxuICAgICAgICB0aGlzLl9kZWJvdW5jZURhdGF2YWx1ZVVwZGF0aW9uKHZhbHVlcyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9kZWJvdW5jZURhdGF2YWx1ZVVwZGF0aW9uID0gX2RlYm91bmNlKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgLy8gaWYgbm8gaXRlbSBpcyBmb3VuZCBpbiBkYXRhc2V0SXRlbXMsIHdhaXQgdW50aWxsIHRoZSBkYXRhc2V0IHVwZGF0ZXMgYnkgcHJlc2VydmluZyB0aGUgZGF0YXZhbHVlIGluIHRvQmVQcm9jZXNzZWREYXRhdmFsdWUuXG4gICAgICAgIGlmICghaXNEZWZpbmVkKHRoaXMuX21vZGVsQnlLZXkpIHx8IChpc0FycmF5KHRoaXMuX21vZGVsQnlLZXkpICYmICF0aGlzLl9tb2RlbEJ5S2V5Lmxlbmd0aCkpIHtcbiAgICAgICAgICAgIHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZSA9IHZhbHVlcztcbiAgICAgICAgICAgIHRoaXMuX21vZGVsQnlWYWx1ZSA9ICcnO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRGVmaW5lZCh0aGlzLnRvQmVQcm9jZXNzZWREYXRhdmFsdWUpKSB7XG4gICAgICAgICAgICAvLyBvYnRhaW4gdGhlIGZpcnN0IGFycmF5IHZhbHVlIHdoZW4gbXVsdGlwbGUgaXMgc2V0IHRvIGZhbHNlLlxuICAgICAgICAgICAgLy8gc2V0IHRoZSBtb2RlbEJ5VmFsdWUgb25seSB3aGVuIHVuZGVmaW5lZC5cbiAgICAgICAgICAgIGlmICghaXNEZWZpbmVkKHRoaXMuX21vZGVsQnlWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tb2RlbEJ5VmFsdWUgPSAoIXRoaXMubXVsdGlwbGUgJiYgaXNBcnJheSh0aGlzLnRvQmVQcm9jZXNzZWREYXRhdmFsdWUpKSA/IHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZVswXSA6IHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5pdERpc3BsYXlWYWx1ZXMoKTtcbiAgICB9LCAxNTApO1xuXG4gICAgLy8gVXBkYXRlcyB0aGUgZGlzcGxheVZhbHVlIHByb3BlcnR5LlxuICAgIHByb3RlY3RlZCBpbml0RGlzcGxheVZhbHVlcygpIHtcbiAgICAgICAgY29uc3QgZGlzcGxheVZhbHVlcyA9IFtdO1xuICAgICAgICB0aGlzLmRhdGFzZXRJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0uc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWVzLnB1c2goaXRlbS5sYWJlbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5tdWx0aXBsZSA/IGRpc3BsYXlWYWx1ZXMgOiBkaXNwbGF5VmFsdWVzWzBdIHx8ICcnO1xuICAgICAgICBpZih0aGlzLnZpZXdQYXJlbnQuY29udGFpbmVyV2lkZ2V0KVxuICAgICAgICAgICAgdGhpcy52aWV3UGFyZW50LmNvbnRhaW5lcldpZGdldC5kaXNwbGF5VmFsdWUgPSB0aGlzLmRpc3BsYXlWYWx1ZS5sZW5ndGggPyB0aGlzLmRpc3BsYXlWYWx1ZSA6ICcnO1xuICAgIH1cblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gcGFyc2VzIHRoZSBkYXRhc2V0IGFuZCBleHRyYWN0cyB0aGUgZGlzcGxheU9wdGlvbnMgZnJvbSBwYXJzZWQgZGF0YXNldC5cbiAgICBwcm90ZWN0ZWQgaW5pdERhdGFzZXRJdGVtcygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRhdGFzZXQgfHwgaXNFbXB0eSh0aGlzLmRhdGFzZXQpKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFzZXRJdGVtcyA9IFtdO1xuICAgICAgICAgICAgLy8gbm90aWZ5IHRoZSBkYXRhc2V0IGxpc3RlbmVyc1xuICAgICAgICAgICAgdGhpcy5kYXRhc2V0JC5uZXh0KHRoaXMuZGF0YXNldEl0ZW1zKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNvbnZlcnQgYW55IGRhdGFzZXQgdG8gdGhlIG9iamVjdCBmb3JtYXQuXG4gICAgICAgIGNvbnN0IG9yZGVyZWREYXRhc2V0ID0gZ2V0T3JkZXJlZERhdGFzZXQoY29udmVydERhdGFUb09iamVjdCh0aGlzLmRhdGFzZXQpLCB0aGlzLm9yZGVyYnkpO1xuXG4gICAgICAgIGlmICh0aGlzLnVzZWtleXMpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YXNldEl0ZW1zID0gdHJhbnNmb3JtRGF0YVdpdGhLZXlzKG9yZGVyZWREYXRhc2V0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlPcHRpb25zID0gdHJhbnNmb3JtRm9ybURhdGEodGhpcy52aWV3UGFyZW50LCBvcmRlcmVkRGF0YXNldCwgdGhpcy5kYXRhZmllbGQsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5RmllbGQ6IHRoaXMuZGlzcGxheWZpZWxkIHx8IHRoaXMuZGlzcGxheWxhYmVsLFxuICAgICAgICAgICAgICAgIGRpc3BsYXlFeHByOiB0aGlzLmRpc3BsYXlleHByZXNzaW9uLFxuICAgICAgICAgICAgICAgIGJpbmREaXNwbGF5RXhwcjogdGhpcy5iaW5kZGlzcGxheWV4cHJlc3Npb24gfHwgdGhpcy5iaW5kZGlzcGxheWxhYmVsLFxuICAgICAgICAgICAgICAgIGJpbmREaXNwbGF5SW1nU3JjOiB0aGlzLmJpbmRkaXNwbGF5aW1hZ2VzcmMsXG4gICAgICAgICAgICAgICAgZGlzcGxheUltZ1NyYzogdGhpcy5kaXNwbGF5aW1hZ2VzcmNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gZ2V0IHRoZSB1bmlxdWUgb2JqZWN0cyBvdXQgb2YgdGhlIGV4dHJhY3RlZCBkYXRhLiBOb3RpZnkgY2hhbmdlIGluIGRhdGFzZXRJdGVtcyB1c2luZyBbLi4uZGF0YXNldEl0ZW1zXSBub3RhdGlvblxuICAgICAgICAgICAgdGhpcy5kYXRhc2V0SXRlbXMgPSBbLi4uZ2V0VW5pcU9ianNCeURhdGFGaWVsZChkaXNwbGF5T3B0aW9ucywgdGhpcy5kYXRhZmllbGQsIHRoaXMuZGlzcGxheWZpZWxkIHx8IHRoaXMuZGlzcGxheWxhYmVsLCB0b0Jvb2xlYW4odGhpcy5hbGxvd2VtcHR5KSldO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wb3N0RGF0YXNldEl0ZW1zSW5pdCgpO1xuICAgIH1cblxuICAgIC8vIE9uY2UgdGhlIGRhdGFzZXRJdGVtcyBhcmUgcmVhZHksIHNldCB0aGUgcHJveHlNb2RlbCBieSB1c2luZyBkYXRhdmFsdWUuXG4gICAgcHJvdGVjdGVkIHBvc3REYXRhc2V0SXRlbXNJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5kYXRhc2V0SXRlbXMubGVuZ3RoICYmICF0aGlzLl9kZWZhdWx0UXVlcnlJbnZva2VkKSB7XG4gICAgICAgICAgICAvLyB1c2UgdGhlIGxhdGVzdCBvZiB0b0JlUHJvY2Vzc2VkRGF0YXZhbHVlLCBkYXRhdmFsdWVcbiAgICAgICAgICAgIGNvbnN0IF9kYXRhdmFsdWUgPSBpc0VtcHR5KHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZSkgPyB0aGlzLmRhdGF2YWx1ZSA6IHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0QnlWYWx1ZShfZGF0YXZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBub3RpZnkgdGhlIGRhdGFzZXQgbGlzdGVuZXJzXG4gICAgICAgIHRoaXMuZGF0YXNldCQubmV4dCh0aGlzLmRhdGFzZXRJdGVtcyk7XG4gICAgfVxuXG4gICAgLy8gUmVzZXQgdGhlIHNlbGVjdGVkIGZsYWcgb24gZGF0YXNldEl0ZW1zIHRvIGZhbHNlLlxuICAgIHByb3RlY3RlZCByZXNldERhdGFzZXRJdGVtcygpIHtcbiAgICAgICAgdGhpcy5kYXRhc2V0SXRlbXMuZm9yRWFjaChpdGVtID0+IGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldFRlbXBsYXRlKHBhcnRpYWxOYW1lKSB7XG4gICAgICAgIHRoaXMuY29udGVudCA9IHBhcnRpYWxOYW1lO1xuICAgICAgICBpZiAodGhpcy52aWV3UGFyZW50ICYmIHRoaXMudmlld1BhcmVudC5wcmVmYWJOYW1lKSB7XG4gICAgICAgICAgICB0aGlzWydwcmVmYWJOYW1lJ10gPSB0aGlzLnZpZXdQYXJlbnQucHJlZmFiTmFtZTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBnZXRHcm91cGVkRGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YXNldEl0ZW1zLmxlbmd0aCA/IGdyb3VwRGF0YSh0aGlzLCBjb252ZXJ0RGF0YVRvT2JqZWN0KHRoaXMuZGF0YXNldEl0ZW1zKSwgdGhpcy5ncm91cGJ5LCB0aGlzLm1hdGNoLCB0aGlzLm9yZGVyYnksIHRoaXMuZGF0ZWZvcm1hdCwgdGhpcy5kYXRlUGlwZSwgJ2RhdGFPYmplY3QnLCB0aGlzLmFwcERlZmF1bHRzKSA6IFtdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGF0YXNldFN1YnNjcmlwdGlvbigpIHtcbiAgICAgICAgY29uc3QgZGF0YXNldFN1YnNjcmlwdGlvbiA9IHRoaXMuZGF0YXNldCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBlZERhdGEgPSB0aGlzLmdldEdyb3VwZWREYXRhKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKCgpID0+IGRhdGFzZXRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldEdyb3VwRGF0YSgpIHtcbiAgICAgICAgdGhpcy5kYXRhc2V0U3Vic2NyaXB0aW9uKCk7XG4gICAgICAgIC8vIElmIGdyb3VwYnkgaXMgc2V0LCBnZXQgdGhlIGdyb3VwZWREYXRhIGZyb20gdGhlIGRhdGFzZXRJdGVtcy5cbiAgICAgICAgdGhpcy5ncm91cGVkRGF0YSA9IHRoaXMuZ2V0R3JvdXBlZERhdGEoKTtcbiAgICB9XG5cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KSB7XG4gICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAnZGF0YXNldCc6XG4gICAgICAgICAgICBjYXNlICdkYXRhZmllbGQnOlxuICAgICAgICAgICAgY2FzZSAnZGlzcGxheWZpZWxkJzpcbiAgICAgICAgICAgIGNhc2UgJ2Rpc3BsYXlsYWJlbCc6XG4gICAgICAgICAgICBjYXNlICdkaXNwbGF5ZXhwcmVzc2lvbic6XG4gICAgICAgICAgICBjYXNlICdvcmRlcmJ5JzpcbiAgICAgICAgICAgIGNhc2UgJ3VzZWtleXMnOlxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYm91bmNlZEluaXREYXRhc2V0SXRlbXMoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3JlcXVpcmVkJzpcbiAgICAgICAgICAgIGNhc2UgJ2RhdGF2YWx1ZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy5kYXRhdmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZ3JvdXBieSc6XG4gICAgICAgICAgICBjYXNlICdtYXRjaCc6XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMud2lkZ2V0VHlwZSAhPT0gJ3dtLXNlYXJjaCcgJiYgdGhpcy53aWRnZXRUeXBlICE9PSAnd20tY2hpcHMnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0R3JvdXBEYXRhKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgaWYgKHRoaXMuZ3JvdXBieSAmJiAodGhpcy53aWRnZXRUeXBlICE9PSAnd20tc2VhcmNoJyAmJiB0aGlzLndpZGdldFR5cGUgIT09ICd3bS1jaGlwcycpKSB7XG4gICAgICAgICAgICB0aGlzLnNldEdyb3VwRGF0YSgpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGFkZGluZyB0aGUgaGFuZGxlciBmb3IgaGVhZGVyIGNsaWNrIGFuZCB0b2dnbGUgaGVhZGVycy5cbiAgICAgICAgaWYgKHRoaXMuZ3JvdXBieSAmJiB0aGlzLmNvbGxhcHNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUhlYWRlckNsaWNrID0gaGFuZGxlSGVhZGVyQ2xpY2s7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZUFsbEhlYWRlcnMgPSB0b2dnbGVBbGxIZWFkZXJzLmJpbmQodW5kZWZpbmVkLCB0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZih0aGlzLmNhbmNlbExvY2FsZUNoYW5nZVN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5jYW5jZWxMb2NhbGVDaGFuZ2VTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
307
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNldC1hd2FyZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9kYXRhc2V0LWF3YXJlLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQXFCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFlLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQWlCLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BSLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxRQUFRLElBQUksU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7QUFHN0csTUFBTSxPQUFnQix5QkFBMEIsU0FBUSx1QkFBdUI7SUE4QzNFLElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELDBFQUEwRTtJQUMxRSxJQUFXLFVBQVUsQ0FBQyxHQUFRO1FBQzFC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QXlCO2NBRDlDLFVBQVU7O3NCQWlGZ0MsTUFBTTt1QkFBQyxZQUFZOztzQkFDbkMsTUFBTTt1QkFBQyxrQkFBa0I7O3NCQUFHLFFBQVE7O3NCQUNwQyxTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0F0dHJpYnV0ZSwgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyRhcHBEaWdlc3QsIEFwcERlZmF1bHRzLCBkZWJvdW5jZSwgaXNEZWZpbmVkLCBpc0VxdWFsV2l0aEZpZWxkcywgbm9vcCwgdG9Cb29sZWFufSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBBTExGSUVMRFMsIGNvbnZlcnREYXRhVG9PYmplY3QsIERhdGFTZXRJdGVtLCBleHRyYWN0RGF0YUFzQXJyYXksIGdldE9yZGVyZWREYXRhc2V0LCBnZXRVbmlxT2Jqc0J5RGF0YUZpZWxkLCBoYW5kbGVIZWFkZXJDbGljaywgdG9nZ2xlQWxsSGVhZGVycywgdHJhbnNmb3JtRm9ybURhdGEsIHRyYW5zZm9ybURhdGFXaXRoS2V5cywgZ3JvdXBEYXRhLCBUb0RhdGVQaXBlLCBJV2lkZ2V0Q29uZmlnLCBXaWRnZXRDb25maWcgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7IEJhc2VGb3JtQ3VzdG9tQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLWZvcm0tY3VzdG9tLmNvbXBvbmVudCc7XG5pbXBvcnQge2RlYm91bmNlIGFzIF9kZWJvdW5jZSwgZmluZCwgaXNBcnJheSwgaXNFbXB0eSwgaXNFcXVhbCwgaXNOdWxsLCBpc09iamVjdCwgdG9TdHJpbmd9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERhdGFzZXRBd2FyZUZvcm1Db21wb25lbnQgZXh0ZW5kcyBCYXNlRm9ybUN1c3RvbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBwdWJsaWMgZGF0YXNldDogYW55O1xuICAgIHB1YmxpYyBkYXRhZmllbGQ6IHN0cmluZztcbiAgICBwdWJsaWMgZGlzcGxheWZpZWxkOiBzdHJpbmc7XG4gICAgcHVibGljIGRpc3BsYXlsYWJlbDogc3RyaW5nO1xuICAgIHB1YmxpYyBkaXNwbGF5aW1hZ2VzcmM6IHN0cmluZztcbiAgICBwdWJsaWMgZGlzcGxheWV4cHJlc3Npb246IHN0cmluZztcbiAgICBwdWJsaWMgdXNla2V5czogYm9vbGVhbjtcbiAgICBwdWJsaWMgb3JkZXJieTogc3RyaW5nO1xuICAgIHB1YmxpYyBtdWx0aXBsZTogYm9vbGVhbjtcbiAgICBwdWJsaWMgcmVhZG9ubHk6IGJvb2xlYW47XG4gICAgcHVibGljIGNvbnRlbnQ6IHN0cmluZztcbiAgICBwdWJsaWMgY29sbGFwc2libGU6IGJvb2xlYW47XG4gICAgcHVibGljIGRhdGVQaXBlO1xuXG4gICAgcHVibGljIGhhbmRsZUhlYWRlckNsaWNrOiAoJGV2ZW50KSA9PiB2b2lkO1xuICAgIHByaXZhdGUgdG9nZ2xlQWxsSGVhZGVyczogdm9pZDtcbiAgICBwdWJsaWMgYXBwRGVmYXVsdHM7XG5cbiAgICBwdWJsaWMgYmluZGRpc3BsYXlleHByZXNzaW9uOiBzdHJpbmc7XG4gICAgcHVibGljIGJpbmRkaXNwbGF5aW1hZ2VzcmM6IHN0cmluZztcbiAgICBwdWJsaWMgYmluZGRpc3BsYXlsYWJlbDogc3RyaW5nO1xuXG4gICAgcHVibGljIGRpc3BsYXlWYWx1ZTogQXJyYXk8c3RyaW5nPiB8IHN0cmluZztcblxuICAgIHB1YmxpYyBkYXRhc2V0SXRlbXM6IERhdGFTZXRJdGVtW10gPSBbXTtcbiAgICBwdWJsaWMgYWNjZXB0c0FycmF5ID0gZmFsc2U7IC8vIHNldCB0byB0cnVlIGlmIHByb3h5TW9kZWwgb24gd2lkZ2V0IGFjY2VwdHMgYXJyYXkgdHlwZS5cbiAgICBwcm90ZWN0ZWQgZGF0YXNldCQgPSBuZXcgU3ViamVjdCgpO1xuICAgIHByb3RlY3RlZCBkYXRhdmFsdWUkID0gbmV3IFN1YmplY3QoKTtcblxuICAgIHByb3RlY3RlZCBtYXRjaDogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBkYXRlZm9ybWF0OiBzdHJpbmc7XG4gICAgcHVibGljIGdyb3VwZWREYXRhOiBhbnlbXTtcblxuICAgIHByb3RlY3RlZCBfbW9kZWxCeUtleTogYW55O1xuICAgIHB1YmxpYyBfbW9kZWxCeVZhbHVlOiBhbnk7XG4gICAgcHVibGljIF9kZWZhdWx0UXVlcnlJbnZva2VkOiBib29sZWFuOyAvLyBmb3Igc2VhcmNoL2NoaXBzIGlmIGRhdGF2YWx1ZSBpcyBvYnRhaW5lZCBmcm9tIHRoZSBkZWZhdWx0IG4vdyBjYWxsIHRoZW4gc2V0IHRvIHRydWUgYW5kIGRvIG5vdCB1cGRhdGUgdGhlIG1vZGVsQnlLZXlzLlxuXG4gICAgLy8gdGhpcyBmaWVsZCBjb250YWlucyB0aGUgaW5pdGlhbCBkYXRhdmFsdWUgd2hpY2ggbmVlZHMgdG8gYmUgcHJvY2Vzc2VkIG9uY2UgdGhlIGRhdGFzZXQgaXMgYXZhaWxhYmxlXG4gICAgcHVibGljIHRvQmVQcm9jZXNzZWREYXRhdmFsdWU6IGFueTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZWJvdW5jZWRJbml0RGF0YXNldEl0ZW1zOiBGdW5jdGlvbjtcbiAgICBwcm90ZWN0ZWQgYWxsb3dlbXB0eSA9IHRydWU7XG4gICAgcHVibGljIGNvbXBhcmVieTogYW55O1xuXG4gICAgcHJpdmF0ZSBjYW5jZWxMb2NhbGVDaGFuZ2VTdWJzY3JpcHRpb247XG5cbiAgICBwdWJsaWMgZ2V0IG1vZGVsQnlLZXkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tb2RlbEJ5S2V5O1xuICAgIH1cblxuICAgIC8vIHRyaWdnZXJzIG9uIG5nTW9kZWwgY2hhbmdlLiBUaGlzIGZ1bmN0aW9uIGV4dHJhY3RzIHRoZSBkYXRhdmFsdWUgdmFsdWUuXG4gICAgcHVibGljIHNldCBtb2RlbEJ5S2V5KHZhbDogYW55KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0QnlLZXkodmFsKTtcblxuICAgICAgICAvLyBpbnZva2Ugb24gZGF0YXZhbHVlIGNoYW5nZS5cbiAgICAgICAgdGhpcy5pbnZva2VPbkNoYW5nZSh0aGlzLl9tb2RlbEJ5VmFsdWUpO1xuICAgIH1cblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBwdWJsaWMgZ2V0IGRhdGF2YWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21vZGVsQnlWYWx1ZTtcbiAgICB9XG5cbiAgICAvLyB0cmlnZ2VycyBvbiBzZXR0aW5nIHRoZSBkYXRhdmFsdWUuIFRoaXMgZnVuY3Rpb24gZXh0cmFjdHMgdGhlIG1vZGVsIHZhbHVlLlxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBwdWJsaWMgc2V0IGRhdGF2YWx1ZSh2YWw6IGFueSkge1xuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgdmFsID0gZXh0cmFjdERhdGFBc0FycmF5KHZhbCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbW9kZWxCeVZhbHVlID0gdmFsO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0QnlWYWx1ZSh2YWwpO1xuXG4gICAgICAgIC8vIGNoYW5nZXMgb24gdGhlIGRhdGF2YWx1ZSBjYW4gYmUgc3Vic2NyaWJlZCB1c2luZyBsaXN0ZW5Ub0RhdGF2YWx1ZVxuICAgICAgICB0aGlzLmRhdGF2YWx1ZSQubmV4dCh2YWwpO1xuXG4gICAgICAgIC8vIGludm9rZSBvbiBkYXRhdmFsdWUgY2hhbmdlLlxuICAgICAgICB0aGlzLmludm9rZU9uQ2hhbmdlKHZhbCwgdW5kZWZpbmVkLCB0cnVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoaW5qOiBJbmplY3RvciwgIEBJbmplY3QoV2lkZ2V0Q29uZmlnKSBjb25maWc6IElXaWRnZXRDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQEF0dHJpYnV0ZSgnZ3JvdXBieScpIHB1YmxpYyBncm91cGJ5Pzogc3RyaW5nLCBpbml0UHJvbWlzZT86IFByb21pc2U8YW55Pikge1xuICAgICAgICBzdXBlcihpbmosIGNvbmZpZywgZXhwbGljaXRDb250ZXh0LCBpbml0UHJvbWlzZSk7XG4gICAgICAgIHRoaXMuZGF0ZVBpcGUgPSB0aGlzLmluai5nZXQoVG9EYXRlUGlwZSk7XG4gICAgICAgIHRoaXMuYXBwRGVmYXVsdHMgPSB0aGlzLmluai5nZXQoQXBwRGVmYXVsdHMpO1xuICAgICAgICB0aGlzLmJpbmRkaXNwbGF5ZXhwcmVzc2lvbiA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2Rpc3BsYXlleHByZXNzaW9uLmJpbmQnKTtcbiAgICAgICAgdGhpcy5iaW5kZGlzcGxheWltYWdlc3JjID0gdGhpcy5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGlzcGxheWltYWdlc3JjLmJpbmQnKTtcbiAgICAgICAgdGhpcy5iaW5kZGlzcGxheWxhYmVsID0gdGhpcy5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGlzcGxheWxhYmVsLmJpbmQnKTtcblxuICAgICAgICB0aGlzLl9kZWJvdW5jZWRJbml0RGF0YXNldEl0ZW1zID0gZGVib3VuY2UoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pbml0RGF0YXNldEl0ZW1zKCk7XG4gICAgICAgICAgICAkYXBwRGlnZXN0KCk7XG4gICAgICAgIH0sIDE1MCk7XG4gICAgICAgIHRoaXMuaGFuZGxlSGVhZGVyQ2xpY2sgPSBub29wO1xuXG4gICAgICAgIHRoaXMuY2FuY2VsTG9jYWxlQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy5nZXRBcHBJbnN0YW5jZSgpLnN1YnNjcmliZShcImxvY2FsZS1jaGFuZ2VkXCIsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2RlYm91bmNlZEluaXREYXRhc2V0SXRlbXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBzZXRzIHRoZSBfZGF0YXZhbHVlIHZhbHVlIGZyb20gdGhlIG1vZGVsIGFuZCBzZXRzIHRoZSBzZWxlY3RlZCBmbGFnIHdoZW4gaXRlbSBpcyBmb3VuZC5cbiAgICAgKiBIZXJlIG1vZGVsIGlzIHRoZSB2YWx1ZSBvYnRhaW5lZCBmcm9tIG5nTW9kZWwuXG4gICAgICogQHBhcmFtIGtleXMgcmVwcmVzZW50IHRoZSBtb2RlbC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc2VsZWN0QnlLZXkoa2V5cykge1xuICAgICAgICB0aGlzLnJlc2V0RGF0YXNldEl0ZW1zKCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmRhdGFzZXRJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlICYmICFpc0FycmF5KGtleXMpKSB7XG4gICAgICAgICAgICBrZXlzID0gW2tleXNdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2V0IHRoZSBfbW9kZWxCeUtleSB0byB0aGUgbW9kaWZpZWQga2V5cy5cbiAgICAgICAgdGhpcy5fbW9kZWxCeUtleSA9IGtleXM7XG5cbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHRoaXMuX21vZGVsQnlWYWx1ZSA9IFtdO1xuICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbUJ5S2V5ID0gZmluZCh0aGlzLmRhdGFzZXRJdGVtcywgaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIG5vdCB0cmlwbGUgZXF1YWwsIGFzIHRoZSBpbnN0YW5jZSB0eXBlIGNhbiBiZSBkaWZmZXJlbnQuXG4gICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgdmFsdWUgY29tcGFyaXNvbiBzaG91bGQgYmUgZG9uZS5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvU3RyaW5nKGl0ZW0ua2V5KSA9PT0gdG9TdHJpbmcoa2V5KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbUJ5S2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW1CeUtleS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX21vZGVsQnlWYWx1ZSA9IFsuLi50aGlzLl9tb2RlbEJ5VmFsdWUsIGl0ZW1CeUtleS52YWx1ZV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9tb2RlbEJ5VmFsdWUgPSAnJztcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1CeUtleSA9IGZpbmQodGhpcy5kYXRhc2V0SXRlbXMsIGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIC8vIG5vdCB0cmlwbGUgZXF1YWwsIGFzIHRoZSBpbnN0YW5jZSB0eXBlIGNhbiBiZSBkaWZmZXJlbnQuXG4gICAgICAgICAgICAgICAgLy8gb25seSB2YWx1ZSBjb21wYXJpc29uIHNob3VsZCBiZSBkb25lLlxuICAgICAgICAgICAgICAgIHJldHVybiB0b1N0cmluZyhpdGVtLmtleSkgPT09IHRvU3RyaW5nKGtleXMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoaXRlbUJ5S2V5KSB7XG4gICAgICAgICAgICAgICAgaXRlbUJ5S2V5LnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLl9tb2RlbEJ5VmFsdWUgPSBpdGVtQnlLZXkudmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbml0RGlzcGxheVZhbHVlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gc2V0cyB0aGUgX21vZGVsIHZhbHVlIGZyb20gdGhlIGRhdGF2YWx1ZSAoc2VsZWN0ZWR2YWx1ZXMpIGFuZCBzZXRzIHRoZSBzZWxlY3RlZCBmbGFnIHdoZW4gaXRlbSBpcyBmb3VuZC5cbiAgICAgKiBkYXRhdmFsdWUgaXMgdGhlIGRlZmF1bHQgdmFsdWUgb3IgYSB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIGRpc3BsYXlGaWVsZCAoZm9yIHN1cHBvc2U6IG9iamVjdCBpbiBjYXNlIG9mIEFMTEZJRUxEUykuXG4gICAgICogSWYgYWNjZXB0c0FycmF5IGlzIHRydWUsIHRoZSBtb2RlbCBhbHdheXMgYWNjZXB0cyBhbiBhcnJheS5cbiAgICAgKiBGb3IgZXhhbXBsZSwgc2VsZWN0IGFsd2F5cyBhY2NlcHRzIG1vZGVsIGFzIGFycmF5IHdoZXRoZXIgbXVsdGlwbGUgc2VsZWN0IGlzIHRydWUgb3IgZmFsc2UuXG4gICAgICogQHBhcmFtIHZhbHVlcyByZXByZXNlbnQgdGhlIGRhdGF2YWx1ZS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc2VsZWN0QnlWYWx1ZSh2YWx1ZXM6IEFycmF5PGFueT4gfCBhbnkpIHtcbiAgICAgICAgdGhpcy5yZXNldERhdGFzZXRJdGVtcygpO1xuXG4gICAgICAgIC8vIGlmIGRhdGF2YWx1ZSBpcyBub3QgZGVmaW5lZCBvciBlbXB0eSB0aGVuIHNldCB0aGUgbW9kZWwgYXMgdW5kZWZpbmVkLlxuICAgICAgICBpZiAoIWlzRGVmaW5lZCh2YWx1ZXMpIHx8IHZhbHVlcyA9PT0gJycgfHwgaXNOdWxsKHZhbHVlcykgfHwgKHZhbHVlcyBpbnN0YW5jZW9mIEFycmF5ICYmICF2YWx1ZXMubGVuZ3RoKSkge1xuICAgICAgICAgICAgdGhpcy5fbW9kZWxCeUtleSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIC8vIGRvIG5vdCByZXR1cm4gd2hlbiBhbGxvd2VtcHR5IGlzIHNldCB0byB0cnVlLlxuICAgICAgICAgICAgaWYgKCF0aGlzLmFsbG93ZW1wdHkgfHwgIWlzRGVmaW5lZCh2YWx1ZXMpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYWNjZXB0c0FycmF5ICYmICFpc0FycmF5KHZhbHVlcykpIHtcbiAgICAgICAgICAgIHZhbHVlcyA9IHRoaXMuYWxsb3dlbXB0eSA/IFt2YWx1ZXNdIDogZXh0cmFjdERhdGFBc0FycmF5KHZhbHVlcyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBwcmVzZXJ2ZSB0aGUgZGF0YXZhbHVlIGlmIGRhdGFzZXRJdGVtcyBhcmUgZW1wdHkuXG4gICAgICAgIGlmICghdGhpcy5kYXRhc2V0SXRlbXMubGVuZ3RoICYmIGlzRGVmaW5lZCh2YWx1ZXMpKSB7XG4gICAgICAgICAgICB0aGlzLnRvQmVQcm9jZXNzZWREYXRhdmFsdWUgPSB2YWx1ZXM7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWx0ZXJGaWVsZCA9IHRoaXMuZGF0YWZpZWxkID09PSBBTExGSUVMRFMgPyAnZGF0YU9iamVjdCcgOiAna2V5JztcblxuICAgICAgICBpZiAoaXNBcnJheSh2YWx1ZXMpKSB7XG4gICAgICAgICAgICB0aGlzLl9tb2RlbEJ5S2V5ID0gW107XG4gICAgICAgICAgICB2YWx1ZXMuZm9yRWFjaCh2YWwgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1CeVZhbHVlID0gZmluZCh0aGlzLmRhdGFzZXRJdGVtcywgaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJGaWVsZCA9PT0gJ2RhdGFPYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jb21wYXJlYnkgJiYgdGhpcy5jb21wYXJlYnkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlzRXF1YWxXaXRoRmllbGRzKGl0ZW1bZmlsdGVyRmllbGRdLCB2YWwsIHRoaXMuY29tcGFyZWJ5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGlzT2JqZWN0KGl0ZW0udmFsdWUpID8gaXNFcXVhbChpdGVtLnZhbHVlLCB2YWwpIDogKHRvU3RyaW5nKGl0ZW0udmFsdWUpKS50b0xvd2VyQ2FzZSgpID09PSAodG9TdHJpbmcodmFsKSkudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW1CeVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW1CeVZhbHVlLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbW9kZWxCeUtleS5wdXNoKGl0ZW1CeVZhbHVlLmtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9tb2RlbEJ5S2V5ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgaXRlbUJ5VmFsdWUgPSBmaW5kKHRoaXMuZGF0YXNldEl0ZW1zLCBpdGVtID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyRmllbGQgPT09ICdkYXRhT2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jb21wYXJlYnkgJiYgdGhpcy5jb21wYXJlYnkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXNFcXVhbFdpdGhGaWVsZHMoaXRlbVtmaWx0ZXJGaWVsZF0sIHZhbHVlcywgdGhpcy5jb21wYXJlYnkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiAoaXNPYmplY3QoaXRlbS52YWx1ZSkgPyBpc0VxdWFsKGl0ZW0udmFsdWUsIHZhbHVlcykgOiAodG9TdHJpbmcoaXRlbS52YWx1ZSkpLnRvTG93ZXJDYXNlKCkgPT09ICh0b1N0cmluZyh2YWx1ZXMpKS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKGl0ZW1CeVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgaXRlbUJ5VmFsdWUuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuX21vZGVsQnlLZXkgPSBpdGVtQnlWYWx1ZS5rZXk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gZGVsYXlpbmcgdGhlIGRhdGF2YWx1ZSB1cGRhdGUgYXMgdGhlIHdpZGdldHMgaW4gbGl2ZWZvcm0gYXJlIGhhdmluZyBkYXRhdmFsdWUgYXMgdW5kZWZpbmVkIGFuZCBub3QgdGhlIGRlZmF1bHQgcHJvdmlkZWQgdmFsdWVcbiAgICAgICAgLy8gYmVjYXVzZSBkYXRhdmFsdWUgaXMgdXBkYXRlZCBsYXRlciB3aGVuIG5ldyBkYXRhc2V0IGlzIGF2YWlsYWJsZS5cbiAgICAgICAgdGhpcy5fZGVib3VuY2VEYXRhdmFsdWVVcGRhdGlvbih2YWx1ZXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZWFkb25seSBfZGVib3VuY2VEYXRhdmFsdWVVcGRhdGlvbiA9IF9kZWJvdW5jZSgodmFsdWVzKSA9PiB7XG4gICAgICAgIC8vIGlmIG5vIGl0ZW0gaXMgZm91bmQgaW4gZGF0YXNldEl0ZW1zLCB3YWl0IHVudGlsbCB0aGUgZGF0YXNldCB1cGRhdGVzIGJ5IHByZXNlcnZpbmcgdGhlIGRhdGF2YWx1ZSBpbiB0b0JlUHJvY2Vzc2VkRGF0YXZhbHVlLlxuICAgICAgICBpZiAoIWlzRGVmaW5lZCh0aGlzLl9tb2RlbEJ5S2V5KSB8fCAoaXNBcnJheSh0aGlzLl9tb2RlbEJ5S2V5KSAmJiAhdGhpcy5fbW9kZWxCeUtleS5sZW5ndGgpKSB7XG4gICAgICAgICAgICB0aGlzLnRvQmVQcm9jZXNzZWREYXRhdmFsdWUgPSB2YWx1ZXM7XG4gICAgICAgICAgICB0aGlzLl9tb2RlbEJ5VmFsdWUgPSAnJztcbiAgICAgICAgfSBlbHNlIGlmIChpc0RlZmluZWQodGhpcy50b0JlUHJvY2Vzc2VkRGF0YXZhbHVlKSkge1xuICAgICAgICAgICAgLy8gb2J0YWluIHRoZSBmaXJzdCBhcnJheSB2YWx1ZSB3aGVuIG11bHRpcGxlIGlzIHNldCB0byBmYWxzZS5cbiAgICAgICAgICAgIC8vIHNldCB0aGUgbW9kZWxCeVZhbHVlIG9ubHkgd2hlbiB1bmRlZmluZWQuXG4gICAgICAgICAgICBpZiAoIWlzRGVmaW5lZCh0aGlzLl9tb2RlbEJ5VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbW9kZWxCeVZhbHVlID0gKCF0aGlzLm11bHRpcGxlICYmIGlzQXJyYXkodGhpcy50b0JlUHJvY2Vzc2VkRGF0YXZhbHVlKSkgPyB0aGlzLnRvQmVQcm9jZXNzZWREYXRhdmFsdWVbMF0gOiB0aGlzLnRvQmVQcm9jZXNzZWREYXRhdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnRvQmVQcm9jZXNzZWREYXRhdmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmluaXREaXNwbGF5VmFsdWVzKCk7XG4gICAgfSwgMTUwKTtcblxuICAgIC8vIFVwZGF0ZXMgdGhlIGRpc3BsYXlWYWx1ZSBwcm9wZXJ0eS5cbiAgICBwcm90ZWN0ZWQgaW5pdERpc3BsYXlWYWx1ZXMoKSB7XG4gICAgICAgIGNvbnN0IGRpc3BsYXlWYWx1ZXMgPSBbXTtcbiAgICAgICAgdGhpcy5kYXRhc2V0SXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlcy5wdXNoKGl0ZW0ubGFiZWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMubXVsdGlwbGUgPyBkaXNwbGF5VmFsdWVzIDogZGlzcGxheVZhbHVlc1swXSB8fCAnJztcbiAgICAgICAgaWYodGhpcy52aWV3UGFyZW50LmNvbnRhaW5lcldpZGdldCAmJiB0aGlzLnZpZXdQYXJlbnQuY29udGFpbmVyV2lkZ2V0Ll9pc0N1c3RvbSlcbiAgICAgICAgICAgIHRoaXMudmlld1BhcmVudC5jb250YWluZXJXaWRnZXQuZGlzcGxheVZhbHVlID0gdGhpcy5kaXNwbGF5VmFsdWUubGVuZ3RoID8gdGhpcy5kaXNwbGF5VmFsdWUgOiAnJztcbiAgICB9XG5cbiAgICAvLyBUaGlzIGZ1bmN0aW9uIHBhcnNlcyB0aGUgZGF0YXNldCBhbmQgZXh0cmFjdHMgdGhlIGRpc3BsYXlPcHRpb25zIGZyb20gcGFyc2VkIGRhdGFzZXQuXG4gICAgcHJvdGVjdGVkIGluaXREYXRhc2V0SXRlbXMoKSB7XG4gICAgICAgIGlmICghdGhpcy5kYXRhc2V0IHx8IGlzRW1wdHkodGhpcy5kYXRhc2V0KSkge1xuICAgICAgICAgICAgdGhpcy5kYXRhc2V0SXRlbXMgPSBbXTtcbiAgICAgICAgICAgIC8vIG5vdGlmeSB0aGUgZGF0YXNldCBsaXN0ZW5lcnNcbiAgICAgICAgICAgIHRoaXMuZGF0YXNldCQubmV4dCh0aGlzLmRhdGFzZXRJdGVtcyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjb252ZXJ0IGFueSBkYXRhc2V0IHRvIHRoZSBvYmplY3QgZm9ybWF0LlxuICAgICAgICBjb25zdCBvcmRlcmVkRGF0YXNldCA9IGdldE9yZGVyZWREYXRhc2V0KGNvbnZlcnREYXRhVG9PYmplY3QodGhpcy5kYXRhc2V0KSwgdGhpcy5vcmRlcmJ5KTtcblxuICAgICAgICBpZiAodGhpcy51c2VrZXlzKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFzZXRJdGVtcyA9IHRyYW5zZm9ybURhdGFXaXRoS2V5cyhvcmRlcmVkRGF0YXNldCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBkaXNwbGF5T3B0aW9ucyA9IHRyYW5zZm9ybUZvcm1EYXRhKHRoaXMudmlld1BhcmVudCwgb3JkZXJlZERhdGFzZXQsIHRoaXMuZGF0YWZpZWxkLCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheUZpZWxkOiB0aGlzLmRpc3BsYXlmaWVsZCB8fCB0aGlzLmRpc3BsYXlsYWJlbCxcbiAgICAgICAgICAgICAgICBkaXNwbGF5RXhwcjogdGhpcy5kaXNwbGF5ZXhwcmVzc2lvbixcbiAgICAgICAgICAgICAgICBiaW5kRGlzcGxheUV4cHI6IHRoaXMuYmluZGRpc3BsYXlleHByZXNzaW9uIHx8IHRoaXMuYmluZGRpc3BsYXlsYWJlbCxcbiAgICAgICAgICAgICAgICBiaW5kRGlzcGxheUltZ1NyYzogdGhpcy5iaW5kZGlzcGxheWltYWdlc3JjLFxuICAgICAgICAgICAgICAgIGRpc3BsYXlJbWdTcmM6IHRoaXMuZGlzcGxheWltYWdlc3JjXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIGdldCB0aGUgdW5pcXVlIG9iamVjdHMgb3V0IG9mIHRoZSBleHRyYWN0ZWQgZGF0YS4gTm90aWZ5IGNoYW5nZSBpbiBkYXRhc2V0SXRlbXMgdXNpbmcgWy4uLmRhdGFzZXRJdGVtc10gbm90YXRpb25cbiAgICAgICAgICAgIHRoaXMuZGF0YXNldEl0ZW1zID0gWy4uLmdldFVuaXFPYmpzQnlEYXRhRmllbGQoZGlzcGxheU9wdGlvbnMsIHRoaXMuZGF0YWZpZWxkLCB0aGlzLmRpc3BsYXlmaWVsZCB8fCB0aGlzLmRpc3BsYXlsYWJlbCwgdG9Cb29sZWFuKHRoaXMuYWxsb3dlbXB0eSkpXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucG9zdERhdGFzZXRJdGVtc0luaXQoKTtcbiAgICB9XG5cbiAgICAvLyBPbmNlIHRoZSBkYXRhc2V0SXRlbXMgYXJlIHJlYWR5LCBzZXQgdGhlIHByb3h5TW9kZWwgYnkgdXNpbmcgZGF0YXZhbHVlLlxuICAgIHByb3RlY3RlZCBwb3N0RGF0YXNldEl0ZW1zSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0YXNldEl0ZW1zLmxlbmd0aCAmJiAhdGhpcy5fZGVmYXVsdFF1ZXJ5SW52b2tlZCkge1xuICAgICAgICAgICAgLy8gdXNlIHRoZSBsYXRlc3Qgb2YgdG9CZVByb2Nlc3NlZERhdGF2YWx1ZSwgZGF0YXZhbHVlXG4gICAgICAgICAgICBjb25zdCBfZGF0YXZhbHVlID0gaXNFbXB0eSh0aGlzLnRvQmVQcm9jZXNzZWREYXRhdmFsdWUpID8gdGhpcy5kYXRhdmFsdWUgOiB0aGlzLnRvQmVQcm9jZXNzZWREYXRhdmFsdWU7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdEJ5VmFsdWUoX2RhdGF2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbm90aWZ5IHRoZSBkYXRhc2V0IGxpc3RlbmVyc1xuICAgICAgICB0aGlzLmRhdGFzZXQkLm5leHQodGhpcy5kYXRhc2V0SXRlbXMpO1xuICAgIH1cblxuICAgIC8vIFJlc2V0IHRoZSBzZWxlY3RlZCBmbGFnIG9uIGRhdGFzZXRJdGVtcyB0byBmYWxzZS5cbiAgICBwcm90ZWN0ZWQgcmVzZXREYXRhc2V0SXRlbXMoKSB7XG4gICAgICAgIHRoaXMuZGF0YXNldEl0ZW1zLmZvckVhY2goaXRlbSA9PiBpdGVtLnNlbGVjdGVkID0gZmFsc2UpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXRUZW1wbGF0ZShwYXJ0aWFsTmFtZSkge1xuICAgICAgICB0aGlzLmNvbnRlbnQgPSBwYXJ0aWFsTmFtZTtcbiAgICAgICAgaWYgKHRoaXMudmlld1BhcmVudCAmJiB0aGlzLnZpZXdQYXJlbnQucHJlZmFiTmFtZSkge1xuICAgICAgICAgICAgdGhpc1sncHJlZmFiTmFtZSddID0gdGhpcy52aWV3UGFyZW50LnByZWZhYk5hbWU7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIHByaXZhdGUgZ2V0R3JvdXBlZERhdGEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFzZXRJdGVtcy5sZW5ndGggPyBncm91cERhdGEodGhpcywgY29udmVydERhdGFUb09iamVjdCh0aGlzLmRhdGFzZXRJdGVtcyksIHRoaXMuZ3JvdXBieSwgdGhpcy5tYXRjaCwgdGhpcy5vcmRlcmJ5LCB0aGlzLmRhdGVmb3JtYXQsIHRoaXMuZGF0ZVBpcGUsICdkYXRhT2JqZWN0JywgdGhpcy5hcHBEZWZhdWx0cykgOiBbXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRhdGFzZXRTdWJzY3JpcHRpb24oKSB7XG4gICAgICAgIGNvbnN0IGRhdGFzZXRTdWJzY3JpcHRpb24gPSB0aGlzLmRhdGFzZXQkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdyb3VwZWREYXRhID0gdGhpcy5nZXRHcm91cGVkRGF0YSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcigoKSA9PiBkYXRhc2V0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXRHcm91cERhdGEoKSB7XG4gICAgICAgIHRoaXMuZGF0YXNldFN1YnNjcmlwdGlvbigpO1xuICAgICAgICAvLyBJZiBncm91cGJ5IGlzIHNldCwgZ2V0IHRoZSBncm91cGVkRGF0YSBmcm9tIHRoZSBkYXRhc2V0SXRlbXMuXG4gICAgICAgIHRoaXMuZ3JvdXBlZERhdGEgPSB0aGlzLmdldEdyb3VwZWREYXRhKCk7XG4gICAgfVxuXG5cbiAgICBvblByb3BlcnR5Q2hhbmdlKGtleTogc3RyaW5nLCBudjogYW55LCBvdj86IGFueSkge1xuICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2RhdGFzZXQnOlxuICAgICAgICAgICAgY2FzZSAnZGF0YWZpZWxkJzpcbiAgICAgICAgICAgIGNhc2UgJ2Rpc3BsYXlmaWVsZCc6XG4gICAgICAgICAgICBjYXNlICdkaXNwbGF5bGFiZWwnOlxuICAgICAgICAgICAgY2FzZSAnZGlzcGxheWV4cHJlc3Npb24nOlxuICAgICAgICAgICAgY2FzZSAnb3JkZXJieSc6XG4gICAgICAgICAgICBjYXNlICd1c2VrZXlzJzpcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJvdW5jZWRJbml0RGF0YXNldEl0ZW1zKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdyZXF1aXJlZCc6XG4gICAgICAgICAgICBjYXNlICdkYXRhdmFsdWUnOlxuICAgICAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuZGF0YXZhbHVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2dyb3VwYnknOlxuICAgICAgICAgICAgY2FzZSAnbWF0Y2gnOlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLndpZGdldFR5cGUgIT09ICd3bS1zZWFyY2gnICYmIHRoaXMud2lkZ2V0VHlwZSAhPT0gJ3dtLWNoaXBzJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEdyb3VwRGF0YSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGlmICh0aGlzLmdyb3VwYnkgJiYgKHRoaXMud2lkZ2V0VHlwZSAhPT0gJ3dtLXNlYXJjaCcgJiYgdGhpcy53aWRnZXRUeXBlICE9PSAnd20tY2hpcHMnKSkge1xuICAgICAgICAgICAgdGhpcy5zZXRHcm91cERhdGEoKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBhZGRpbmcgdGhlIGhhbmRsZXIgZm9yIGhlYWRlciBjbGljayBhbmQgdG9nZ2xlIGhlYWRlcnMuXG4gICAgICAgIGlmICh0aGlzLmdyb3VwYnkgJiYgdGhpcy5jb2xsYXBzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVIZWFkZXJDbGljayA9IGhhbmRsZUhlYWRlckNsaWNrO1xuICAgICAgICAgICAgdGhpcy50b2dnbGVBbGxIZWFkZXJzID0gdG9nZ2xlQWxsSGVhZGVycy5iaW5kKHVuZGVmaW5lZCwgdGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYodGhpcy5jYW5jZWxMb2NhbGVDaGFuZ2VTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuY2FuY2VsTG9jYWxlQ2hhbmdlU3Vic2NyaXB0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -174,7 +174,7 @@ export class RadiosetComponent extends DatasetAwareFormComponent {
174
174
  }
175
175
  triggerInvokeOnChange(key, $event) {
176
176
  this.modelByKey = key;
177
- if (this.viewParent.containerWidget)
177
+ if (this.viewParent.containerWidget && this.viewParent.containerWidget.updateDataValue)
178
178
  this.viewParent.containerWidget.updateDataValue(this.datavalue);
179
179
  this.invokeOnTouched();
180
180
  // invoke on datavalue change.
@@ -247,4 +247,4 @@ export class RadiosetComponent extends DatasetAwareFormComponent {
247
247
  type: Optional
248
248
  }] }], null); })();
249
249
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RadiosetComponent, { className: "RadiosetComponent", filePath: "radioset/radioset.component.ts", lineNumber: 26 }); })();
250
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW9zZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2RlZmF1bHQvc3JjL3JhZGlvc2V0L3JhZGlvc2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9yYWRpb3NldC9yYWRpb3NldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUMsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7Ozs7SUNENUIsZ0NBQ3FEO0lBSWpELEFBSEEsMkJBRXFCLGNBQ21DO0lBQzVELGlCQUFROzs7Ozs7SUFMRCx3RkFBNkM7SUFDZCxjQUF5QjtJQUNFLEFBQXRCLEFBQWhDLEFBRHFELEFBQTFCLDBDQUF5QixnREFBa0MsdUNBQ3ZELDZCQUFzQixzQkFBbUI7O0lBRXpELGNBQTBCO0lBQTFCLDJDQUEwQjs7O0lBR3BELGdDQUNxRDtJQUlqRCxBQUhBLDJCQUVxQixlQUNnRDtJQUN6RSxpQkFBUTs7Ozs7O0lBTEQsd0ZBQTZDO0lBQ2Qs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RUFBRSxFQUFHO1FBQ3pCLElBQUksR0FBRyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxHQUFHLEtBQUssYUFBYSxFQUFFLENBQUM7WUFDeEIsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7YUFBTSxDQUFDO1lBQ0osS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNMLENBQUM7a0hBaEVRLGlCQUFpQiwwREFRUyxrQkFBa0I7b0VBUjVDLGlCQUFpQixrR0FOZjtnQkFDUCxTQUFTLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDO2dCQUNyRCxTQUFTLENBQUMsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQztnQkFDakQsa0JBQWtCLENBQUMsaUJBQWlCLENBQUM7YUFDeEM7WUN2Qkwsa0ZBQWdFO1lBeUJoRSwyQkFBcUU7WUFJckUsQUFIQSxrRUFBZ0Ysc0dBRzlDOzs7WUE3QkgsQUFBbEIsbUNBQWlCLHFDQUFpQztZQXlCeEQsY0FBaUM7WUFBakMsdURBQWlDO1lBQ2xDLGNBQTBCO1lBQTFCLG1EQUEwQjs7O2lGRERuQixpQkFBaUI7Y0FWN0IsU0FBUzsyQkFDSSxjQUFjLFlBQ2QsWUFBWSxhQUVYO29CQUNQLFNBQVMsb0JBQW9CLGlCQUFpQixFQUFFLElBQUksQ0FBQztvQkFDckQsU0FBUyxvQkFBb0IsYUFBYSxFQUFFLElBQUksQ0FBQztvQkFDakQsa0JBQWtCLG1CQUFtQjtpQkFDeEM7O3NCQVUyQixNQUFNO3VCQUFDLGtCQUFrQjs7c0JBQUcsUUFBUTs7a0ZBUnZELGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIEluamVjdG9yLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgTkdfVkFMSURBVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtzZXRMaXN0Q2xhc3N9IGZyb20gJ0B3bS9jb3JlJztcblxuaW1wb3J0IHsgcHJvdmlkZUFzV2lkZ2V0UmVmLCBzdHlsZXIsIHByb3ZpZGVBcyB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHsgRGF0YXNldEF3YXJlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGFzZXQtYXdhcmUtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgcmVnaXN0ZXJQcm9wcyB9IGZyb20gJy4vcmFkaW9zZXQucHJvcHMnO1xuaW1wb3J0IHsgaW5jbHVkZXN9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuZGVjbGFyZSBjb25zdCAkO1xuXG5jb25zdCBERUZBVUxUX0NMUyA9ICdhcHAtcmFkaW9zZXQgbGlzdC1ncm91cCBpbmxpbmUnO1xuY29uc3QgV0lER0VUX0NPTkZJRyA9IHt3aWRnZXRUeXBlOiAnd20tcmFkaW9zZXQnLCBob3N0Q2xhc3M6IERFRkFVTFRfQ0xTfTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdbd21SYWRpb3NldF0nLFxuICAgIGV4cG9ydEFzOiAnd21SYWRpb3NldCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvc2V0LmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzKFJhZGlvc2V0Q29tcG9uZW50LCBOR19WQUxVRV9BQ0NFU1NPUiwgdHJ1ZSksXG4gICAgICAgIHByb3ZpZGVBcyhSYWRpb3NldENvbXBvbmVudCwgTkdfVkFMSURBVE9SUywgdHJ1ZSksXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihSYWRpb3NldENvbXBvbmVudClcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvc2V0Q29tcG9uZW50IGV4dGVuZHMgRGF0YXNldEF3YXJlRm9ybUNvbXBvbmVudCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIHB1YmxpYyBsYXlvdXQgPSAnJztcbiAgICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIGl0ZW1zcGVycm93OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBpdGVtc1BlclJvd0NsYXNzOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnkpIHtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQpO1xuICAgICAgICBzdHlsZXIodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzKTtcbiAgICAgICAgdGhpcy5tdWx0aXBsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHRyaWdnZXJJbnZva2VPbkNoYW5nZShrZXksICRldmVudCkge1xuICAgICAgICB0aGlzLm1vZGVsQnlLZXkgPSBrZXk7XG5cbiAgICAgICAgaWYodGhpcy52aWV3UGFyZW50LmNvbnRhaW5lcldpZGdldClcbiAgICAgICAgICAgIHRoaXMudmlld1BhcmVudC5jb250YWluZXJXaWRnZXQudXBkYXRlRGF0YVZhbHVlKHRoaXMuZGF0YXZhbHVlKTtcblxuICAgICAgICB0aGlzLmludm9rZU9uVG91Y2hlZCgpO1xuICAgICAgICAvLyBpbnZva2Ugb24gZGF0YXZhbHVlIGNoYW5nZS5cbiAgICAgICAgdGhpcy5pbnZva2VPbkNoYW5nZSh0aGlzLmRhdGF2YWx1ZSwgJGV2ZW50IHx8IHt9LCB0cnVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPbiBjbGljayBvZiB0aGUgb3B0aW9uLCB1cGRhdGUgdGhlIGRhdGF2YWx1ZVxuICAgICAqL1xuICAgIG9uUmFkaW9MYWJlbENsaWNrKCRldmVudCwga2V5KSB7XG4gICAgICAgIGlmICghJCgkZXZlbnQudGFyZ2V0KS5pcygnaW5wdXQnKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50cmlnZ2VySW52b2tlT25DaGFuZ2Uoa2V5LCAkZXZlbnQpO1xuICAgIH1cblxuICAgIC8vIGNoYW5nZSBhbmQgYmx1ciBldmVudHMgYXJlIGFkZGVkIGZyb20gdGhlIHRlbXBsYXRlXG4gICAgcHJvdGVjdGVkIGhhbmRsZUV2ZW50KG5vZGU6IEhUTUxFbGVtZW50LCBldmVudE5hbWU6IHN0cmluZywgY2FsbGJhY2s6IEZ1bmN0aW9uLCBsb2NhbHM6IGFueSkge1xuICAgICAgICBpZiAoZXZlbnROYW1lID09PSAnY2xpY2snKSB7XG4gICAgICAgICAgICB0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgZXZlbnROYW1lLFxuICAgICAgICAgICAgICAgIGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZS50YXJnZXQpLmlzKCdpbnB1dCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbG9jYWxzLiRldmVudCA9IGU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAoIWluY2x1ZGVzKFsnY2hhbmdlJ10sIGV2ZW50TmFtZSkpIHtcbiAgICAgICAgICAgIHN1cGVyLmhhbmRsZUV2ZW50KG5vZGUsIGV2ZW50TmFtZSwgY2FsbGJhY2ssIGxvY2Fscyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92Pykge1xuICAgICAgICBpZiAoa2V5ID09PSAndGFiaW5kZXgnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGtleSA9PT0gJ2l0ZW1zcGVycm93Jykge1xuICAgICAgICAgICAgc2V0TGlzdENsYXNzKHRoaXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgW25nSWZdPVwiIWdyb3VwYnlcIiBbbmdJZkVsc2VdPVwiZ3JvdXBlZExpc3RUZW1wbGF0ZVwiPlxuICAgIDxsaSBbbmdDbGFzc109XCJbJ3JhZGlvJywgJ2FwcC1yYWRpbycsIGl0ZW1jbGFzcywgaXRlbXNQZXJSb3dDbGFzc11cIlxuICAgICAgICBbY2xhc3MuYWN0aXZlXT1cIml0ZW0uc2VsZWN0ZWRcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhc2V0SXRlbXM7bGV0IGkgPSBpbmRleFwiXG4gICAgICAgIFt3bUl0ZW1UZW1wbGF0ZV09XCJjb250ZW50XCIgW3VzZXJDb21wb25lbnRQYXJhbXNdPVwiaXRlbVwiIHBhcnRpYWxDb250YWluZXJcbiAgICAgICAgKGNsaWNrKT1cIm9uUmFkaW9MYWJlbENsaWNrKCRldmVudCwgaXRlbS5rZXkpXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICA8IS0tIERlZmF1bHQgaXRlbSB0ZW1wbGF0ZSAtLT5cbiAgICAgICAgPGxhYmVsICpuZ0lmPVwiIWNvbnRlbnRcIiBjbGFzcz1cImFwcC1yYWRpb3NldC1sYWJlbFwiXG4gICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzpkaXNhYmxlZCB8fCByZWFkb25seX1cIj5cbiAgICAgICAgICAgIDxpbnB1dCBbYXR0ci5kYXRhLWF0dHItaW5kZXhdPVwiaVwiIFtjaGVja2VkXT1cIml0ZW0uc2VsZWN0ZWRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIlxuICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIidyYWRpb3NldF8nICsgd2lkZ2V0SWRcIiBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIiBbdmFsdWVdPVwiaXRlbS5rZXlcIlxuICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FwdGlvblwiIFt0ZXh0Q29udGVudF09XCJpdGVtLmxhYmVsXCI+PC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8IS0tIEN1c3RvbSBwYXJ0aWFsIHRlbXBsYXRlIC0tPlxuICAgICAgICA8bGFiZWwgKm5nSWY9XCJjb250ZW50XCIgY2xhc3M9XCJhcHAtcmFkaW9zZXQtbGFiZWxcIlxuICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydkaXNhYmxlZCc6ZGlzYWJsZWQgfHwgcmVhZG9ubHl9XCI+XG4gICAgICAgICAgICA8aW5wdXQgW2F0dHIuZGF0YS1hdHRyLWluZGV4XT1cImlcIiBbY2hlY2tlZF09XCJpdGVtLnNlbGVjdGVkXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCJcbiAgICAgICAgICAgICAgICAgICBbbmFtZV09XCIncmFkaW9zZXRfJyArIHdpZGdldElkXCIgW3RhYmluZGV4XT1cInRhYmluZGV4XCIgW3ZhbHVlXT1cIml0ZW0ua2V5XCJcbiAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIi8+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcHRpb24gY3VzdG9tVGVtcGxhdGVcIiBwYXJ0aWFsLWNvbnRhaW5lci10YXJnZXQ+PC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgIDwvbGk+XG48L25nLXRlbXBsYXRlPlxuXG48aW5wdXQgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCIgaGlkZGVuIGNsYXNzPVwibW9kZWwtaG9sZGVyXCI+XG48ZGl2ICpuZ0lmPVwicmVhZG9ubHkgfHwgZGlzYWJsZWRcIiBhcmlhLXJlYWRvbmx5PVwidHJ1ZVwiIGNsYXNzPVwicmVhZG9ubHktd3JhcHBlclwiPjwvZGl2PlxuXG48IS0tIFRoaXMgdGVtcGxhdGUgd2lsbCBiZSBkaXNwbGF5ZWQgd2hlbiBncm91cGJ5IGlzIHNwZWNpZmllZC4gLS0+XG48bmctdGVtcGxhdGUgI2dyb3VwZWRMaXN0VGVtcGxhdGU+XG4gICAgPGxpICpuZ0Zvcj1cImxldCBncm91cE9iaiBvZiBncm91cGVkRGF0YTsgbGV0IGdyb3VwaW5kZXggPSBpbmRleDtcIiBjbGFzcz1cImFwcC1saXN0LWl0ZW0tZ3JvdXBcIiByb2xlPVwicHJlc2VudGF0aW9uXCIgPlxuICAgICAgICA8dWwgY2xhc3M9XCJpdGVtLWdyb3VwXCIgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIidncm91cF8nICsgd2lkZ2V0SWQgKyAnXycgKyBncm91cGluZGV4XCI+XG4gICAgICAgICAgICA8bGkgW2lkXT1cIidncm91cF8nICsgd2lkZ2V0SWQgKyAnXycgKyBncm91cGluZGV4XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJsaXN0LWdyb3VwLWhlYWRlclwiIChjbGljayk9XCJoYW5kbGVIZWFkZXJDbGljaygkZXZlbnQpXCIgW3RpdGxlXT1cImdyb3VwT2JqLmtleVwiIFtuZ0NsYXNzXT1cInsnY29sbGFwc2libGUtY29udGVudCc6IGNvbGxhcHNpYmxlfVwiPlxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cImdyb3VwLXRpdGxlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInR3JvdXAgJytncm91cE9iai5rZXlcIj57e2dyb3VwT2JqLmtleX19XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImFwcC1pY29uIHdpIGFjdGlvbiB3aS1jaGV2cm9uLXVwXCIgKm5nSWY9XCJjb2xsYXBzaWJsZVwiIHRpdGxlPVwie3thcHBMb2NhbGUuTEFCRUxfQ09MTEFQU0V9fS97e2FwcExvY2FsZS5MQUJFTF9FWFBBTkR9fVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2hvd2NvdW50XCIgY2xhc3M9XCJsYWJlbCBsYWJlbC1kZWZhdWx0XCIgW3RleHRDb250ZW50XT1cImdyb3VwT2JqLmRhdGEubGVuZ3RoXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBncm91cE9iai5kYXRhOyBsZXQgaSA9IGluZGV4O1wiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiWydyYWRpbycsICdhcHAtcmFkaW8nLCAnZ3JvdXAtbGlzdC1pdGVtJywgaXRlbWNsYXNzLCBpdGVtc1BlclJvd0NsYXNzXVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICBbd21JdGVtVGVtcGxhdGVdPVwiY29udGVudFwiIFt1c2VyQ29tcG9uZW50UGFyYW1zXT1cIml0ZW1cIiBwYXJ0aWFsQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUmFkaW9MYWJlbENsaWNrKCRldmVudCwgaXRlbSlcIj5cbiAgICAgICAgICAgICAgICA8IS0tIERlZmF1bHQgaXRlbSB0ZW1wbGF0ZSAtLT5cbiAgICAgICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCIhY29udGVudFwiIGNsYXNzPVwiYXBwLXJhZGlvc2V0LWxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydkaXNhYmxlZCc6ZGlzYWJsZWQgfHwgcmVhZG9ubHl9XCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbYXR0ci5kYXRhLWF0dHItaW5kZXhdPVwiaVwiIFtuYW1lXT1cIidyYWRpb3NldF8nICsgd2lkZ2V0SWRcIiB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0ua2V5XCIgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCIgW3RhYmluZGV4XT1cInRhYmluZGV4XCIgW2NoZWNrZWRdPVwiaXRlbS5zZWxlY3RlZFwiLz5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXB0aW9uXCIgW3RleHRDb250ZW50XT1cIml0ZW0ubGFiZWxcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8IS0tIEN1c3RvbSBwYXJ0aWFsIHRlbXBsYXRlIC0tPlxuICAgICAgICAgICAgICAgIDxsYWJlbCAqbmdJZj1cImNvbnRlbnRcIiBjbGFzcz1cImFwcC1yYWRpb3NldC1sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOmRpc2FibGVkIHx8IHJlYWRvbmx5fVwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW2F0dHIuZGF0YS1hdHRyLWluZGV4XT1cImlcIiBbbmFtZV09XCIncmFkaW9zZXRfJyArIHdpZGdldElkXCIgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLmtleVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiIFtjaGVja2VkXT1cIml0ZW0uc2VsZWN0ZWRcIi8+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FwdGlvbiBjdXN0b21UZW1wbGF0ZVwiIHBhcnRpYWwtY29udGFpbmVyLXRhcmdldD48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgPC9saT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
250
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW9zZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2RlZmF1bHQvc3JjL3JhZGlvc2V0L3JhZGlvc2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9yYWRpb3NldC9yYWRpb3NldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUMsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7Ozs7SUNENUIsZ0NBQ3FEO0lBSWpELEFBSEEsMkJBRXFCLGNBQ21DO0lBQzVELGlCQUFROzs7Ozs7SUFMRCx3RkFBNkM7SUFDZCxjQUF5QjtJQUNFLEFBQXRCLEFBQWhDLEFBRHFELEFBQTFCLDBDQUF5QixnREFBa0MsdUNBQ3ZELDZCQUFzQixzQkFBbUI7O0lBRXpELGNBQTBCO0lBQTFCLDJDQUEwQjs7O0lBR3BELGdDQUNxRDtJQUlqRCxBQUhBLDJCQUVxQixlQUNnRDtJQUN6RSxpQkFBUTs7Ozs7O0lBTEQsd0ZBQTZDO0lBQ2QsY0FBeUI7SUFDRSxBQUF0QixBQUFoQyxBQURxRCxBQUExQiwwQ0FBeUIsZ0RBQWtDLHVDQUN2RCw2QkFBc0Isc0JBQW1COzs7OztJQWpCdkYsNkJBSXNFO0lBQWxFLHVOQUFTLDZDQUFtQyxLQUFDO0lBVTdDLEFBUkEsMEZBQ3FELDRFQVFBO0lBTXpELGlCQUFLOzs7O0lBcEJELDBDQUE4QjtJQUVILEFBQTNCLEFBSEEsK0ZBQStELGtDQUdyQyxnQ0FBNkI7SUFHL0MsY0FBYztJQUFkLHNDQUFjO0lBUWQsY0FBYTtJQUFiLHFDQUFhOzs7SUFkekIsK0VBSXNFOzs7SUFGakQsNkNBQWdCOzs7SUF1QnpDLDBCQUFzRjs7O0lBUzlELHdCQUFvSTs7O0lBQXBFLCtHQUErRDs7O0lBQy9ILDJCQUFnRzs7O0lBQTVDLHFEQUFvQzs7O0lBVWhHLGdDQUNxRDtJQUdqRCxBQUZBLDRCQUM2RyxjQUNyRDtJQUM1RCxpQkFBUTs7Ozs7O0lBSkQsd0ZBQTZDO0lBQ2QsY0FBK0I7SUFDaUIsQUFBdEIsQUFBbEMsQUFBbkIsQUFEMkIsb0RBQStCLHNCQUN4QyxnREFBa0MsNkJBQXNCLDZCQUEwQjs7SUFDckYsY0FBMEI7SUFBMUIsMkNBQTBCOzs7SUFHcEQsZ0NBQ3FEO0lBR2pELEFBRkEsNEJBQzZHLGVBQ3hDO0lBQ3pFLGlCQUFROzs7Ozs7SUFKRCx3RkFBNkM7SUFDZCxjQUErQjtJQUNpQixBQUF0QixBQUFsQyxBQUFuQixBQUQyQixvREFBK0Isc0JBQ3hDLGdEQUFrQyw2QkFBc0IsNkJBQTBCOzs7OztJQWhCbkgsOEJBSThDO0lBQTFDLDROQUFTLHlDQUErQixLQUFDO0lBU3pDLEFBUEEsK0ZBQ3FELGlGQU9BO0lBS3pELGlCQUFLOzs7O0lBakJELDBDQUE4QjtJQUNILEFBQTNCLEFBRkEsK0ZBQWtGLGtDQUV4RCxnQ0FBNkI7SUFHL0MsY0FBYztJQUFkLHNDQUFjO0lBT2QsY0FBYTtJQUFiLHFDQUFhOzs7O0lBckJ6QixBQURKLEFBREosOEJBQW1ILGFBQ3hCLGFBQ3dIO0lBQTVHLDZMQUFTLGdDQUF5QixLQUFDO0lBQzlILDhCQUFrRTtJQUFBLFlBQzlEO0lBQUEsK0JBQTJCO0lBRXZCLEFBREEsa0ZBQWdJLDJFQUN2QztJQUdyRyxBQURJLEFBREksaUJBQU0sRUFDTCxFQUNKO0lBQ0wscUZBSThDO0lBaUJ0RCxBQURJLGlCQUFLLEVBQ0o7Ozs7O0lBOUJzQixjQUErRDs7SUFDOUUsY0FBNkM7SUFBeUcsQUFBdkIsQUFBL0gsc0VBQTZDLDBCQUF3RywyREFBaUQ7SUFDOUssY0FBeUM7O0lBQUMsY0FDOUQ7SUFEOEQsK0NBQzlEO0lBQ2lELGVBQWlCO0lBQWpCLHlDQUFpQjtJQUN2RCxjQUFlO0lBQWYsdUNBQWU7SUFJYixjQUFrQjtJQUFsQiwwQ0FBa0I7OztJQVYvQyxnRkFBbUg7OztJQUExRiw0Q0FBZ0I7O0FEbEI3QyxNQUFNLFdBQVcsR0FBRyxnQ0FBZ0MsQ0FBQztBQUNyRCxNQUFNLGFBQWEsR0FBRyxFQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBQyxDQUFDO0FBWTFFLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSx5QkFBeUI7YUFDckQsb0JBQWUsR0FBRyxhQUFhLEVBQUUsQUFBbEIsQ0FBbUI7SUFPekMsWUFBWSxHQUFhLEVBQTBDLGVBQW9CO1FBQ25GLEtBQUssQ0FBQyxHQUFHLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBTnhDLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFPZixNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQscUJBQXFCLENBQUMsR0FBRyxFQUFFLE1BQU07UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7UUFFdEIsSUFBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxlQUFlO1lBQ2pGLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFcEUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLDhCQUE4QjtRQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsR0FBRztRQUN6QixJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELHFEQUFxRDtJQUMzQyxXQUFXLENBQUMsSUFBaUIsRUFBRSxTQUFpQixFQUFFLFFBQWtCLEVBQUUsTUFBVztRQUN2RixJQUFJLFNBQVMsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUM5QixJQUFJLEVBQ0osU0FBUyxFQUNULENBQUMsQ0FBQyxFQUFFO2dCQUNBLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO29CQUMzQixPQUFPO2dCQUNYLENBQUM7Z0JBQ0QsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7Z0JBQ2xCLE9BQU8sUUFBUSxFQUFFLENBQUM7WUFDdEIsQ0FBQyxDQUNKLENBQUM7UUFDTixDQUFDO2FBQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDMUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQixDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRztRQUN6QixJQUFJLEdBQUcsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNyQixPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksR0FBRyxLQUFLLGFBQWEsRUFBRSxDQUFDO1lBQ3hCLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QixDQUFDO2FBQU0sQ0FBQztZQUNKLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDTCxDQUFDO2tIQWhFUSxpQkFBaUIsMERBUVMsa0JBQWtCO29FQVI1QyxpQkFBaUIsa0dBTmY7Z0JBQ1AsU0FBUyxDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLElBQUksQ0FBQztnQkFDckQsU0FBUyxDQUFDLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUM7Z0JBQ2pELGtCQUFrQixDQUFDLGlCQUFpQixDQUFDO2FBQ3hDO1lDdkJMLGtGQUFnRTtZQXlCaEUsMkJBQXFFO1lBSXJFLEFBSEEsa0VBQWdGLHNHQUc5Qzs7O1lBN0JILEFBQWxCLG1DQUFpQixxQ0FBaUM7WUF5QnhELGNBQWlDO1lBQWpDLHVEQUFpQztZQUNsQyxjQUEwQjtZQUExQixtREFBMEI7OztpRkREbkIsaUJBQWlCO2NBVjdCLFNBQVM7MkJBQ0ksY0FBYyxZQUNkLFlBQVksYUFFWDtvQkFDUCxTQUFTLG9CQUFvQixpQkFBaUIsRUFBRSxJQUFJLENBQUM7b0JBQ3JELFNBQVMsb0JBQW9CLGFBQWEsRUFBRSxJQUFJLENBQUM7b0JBQ2pELGtCQUFrQixtQkFBbUI7aUJBQ3hDOztzQkFVMkIsTUFBTTt1QkFBQyxrQkFBa0I7O3NCQUFHLFFBQVE7O2tGQVJ2RCxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0LCBJbmplY3RvciwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IsIE5HX1ZBTElEQVRPUlMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7c2V0TGlzdENsYXNzfSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7IHByb3ZpZGVBc1dpZGdldFJlZiwgc3R5bGVyLCBwcm92aWRlQXMgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7IERhdGFzZXRBd2FyZUZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9kYXRhc2V0LWF3YXJlLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL3JhZGlvc2V0LnByb3BzJztcbmltcG9ydCB7IGluY2x1ZGVzfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmRlY2xhcmUgY29uc3QgJDtcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLXJhZGlvc2V0IGxpc3QtZ3JvdXAgaW5saW5lJztcbmNvbnN0IFdJREdFVF9DT05GSUcgPSB7d2lkZ2V0VHlwZTogJ3dtLXJhZGlvc2V0JywgaG9zdENsYXNzOiBERUZBVUxUX0NMU307XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3dtUmFkaW9zZXRdJyxcbiAgICBleHBvcnRBczogJ3dtUmFkaW9zZXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yYWRpb3NldC5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBcyhSYWRpb3NldENvbXBvbmVudCwgTkdfVkFMVUVfQUNDRVNTT1IsIHRydWUpLFxuICAgICAgICBwcm92aWRlQXMoUmFkaW9zZXRDb21wb25lbnQsIE5HX1ZBTElEQVRPUlMsIHRydWUpLFxuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoUmFkaW9zZXRDb21wb25lbnQpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBSYWRpb3NldENvbXBvbmVudCBleHRlbmRzIERhdGFzZXRBd2FyZUZvcm1Db21wb25lbnQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBwdWJsaWMgbGF5b3V0ID0gJyc7XG4gICAgcHVibGljIGRpc2FibGVkOiBib29sZWFuO1xuICAgIHB1YmxpYyBpdGVtc3BlcnJvdzogc3RyaW5nO1xuICAgIHByaXZhdGUgaXRlbXNQZXJSb3dDbGFzczogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoaW5qOiBJbmplY3RvciwgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55KSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgZXhwbGljaXRDb250ZXh0KTtcbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcyk7XG4gICAgICAgIHRoaXMubXVsdGlwbGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICB0cmlnZ2VySW52b2tlT25DaGFuZ2Uoa2V5LCAkZXZlbnQpIHtcbiAgICAgICAgdGhpcy5tb2RlbEJ5S2V5ID0ga2V5O1xuXG4gICAgICAgIGlmKHRoaXMudmlld1BhcmVudC5jb250YWluZXJXaWRnZXQgJiYgdGhpcy52aWV3UGFyZW50LmNvbnRhaW5lcldpZGdldC51cGRhdGVEYXRhVmFsdWUpXG4gICAgICAgICAgICB0aGlzLnZpZXdQYXJlbnQuY29udGFpbmVyV2lkZ2V0LnVwZGF0ZURhdGFWYWx1ZSh0aGlzLmRhdGF2YWx1ZSk7XG5cbiAgICAgICAgdGhpcy5pbnZva2VPblRvdWNoZWQoKTtcbiAgICAgICAgLy8gaW52b2tlIG9uIGRhdGF2YWx1ZSBjaGFuZ2UuXG4gICAgICAgIHRoaXMuaW52b2tlT25DaGFuZ2UodGhpcy5kYXRhdmFsdWUsICRldmVudCB8fCB7fSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT24gY2xpY2sgb2YgdGhlIG9wdGlvbiwgdXBkYXRlIHRoZSBkYXRhdmFsdWVcbiAgICAgKi9cbiAgICBvblJhZGlvTGFiZWxDbGljaygkZXZlbnQsIGtleSkge1xuICAgICAgICBpZiAoISQoJGV2ZW50LnRhcmdldCkuaXMoJ2lucHV0JykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudHJpZ2dlckludm9rZU9uQ2hhbmdlKGtleSwgJGV2ZW50KTtcbiAgICB9XG5cbiAgICAvLyBjaGFuZ2UgYW5kIGJsdXIgZXZlbnRzIGFyZSBhZGRlZCBmcm9tIHRoZSB0ZW1wbGF0ZVxuICAgIHByb3RlY3RlZCBoYW5kbGVFdmVudChub2RlOiBIVE1MRWxlbWVudCwgZXZlbnROYW1lOiBzdHJpbmcsIGNhbGxiYWNrOiBGdW5jdGlvbiwgbG9jYWxzOiBhbnkpIHtcbiAgICAgICAgaWYgKGV2ZW50TmFtZSA9PT0gJ2NsaWNrJykge1xuICAgICAgICAgICAgdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgICAgIGV2ZW50TmFtZSxcbiAgICAgICAgICAgICAgICBlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGUudGFyZ2V0KS5pcygnaW5wdXQnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGxvY2Fscy4kZXZlbnQgPSBlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2UgaWYgKCFpbmNsdWRlcyhbJ2NoYW5nZSddLCBldmVudE5hbWUpKSB7XG4gICAgICAgICAgICBzdXBlci5oYW5kbGVFdmVudChub2RlLCBldmVudE5hbWUsIGNhbGxiYWNrLCBsb2NhbHMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdj8pIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ3RhYmluZGV4Jykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgPT09ICdpdGVtc3BlcnJvdycpIHtcbiAgICAgICAgICAgIHNldExpc3RDbGFzcyh0aGlzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFncm91cGJ5XCIgW25nSWZFbHNlXT1cImdyb3VwZWRMaXN0VGVtcGxhdGVcIj5cbiAgICA8bGkgW25nQ2xhc3NdPVwiWydyYWRpbycsICdhcHAtcmFkaW8nLCBpdGVtY2xhc3MsIGl0ZW1zUGVyUm93Q2xhc3NdXCJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YXNldEl0ZW1zO2xldCBpID0gaW5kZXhcIlxuICAgICAgICBbd21JdGVtVGVtcGxhdGVdPVwiY29udGVudFwiIFt1c2VyQ29tcG9uZW50UGFyYW1zXT1cIml0ZW1cIiBwYXJ0aWFsQ29udGFpbmVyXG4gICAgICAgIChjbGljayk9XCJvblJhZGlvTGFiZWxDbGljaygkZXZlbnQsIGl0ZW0ua2V5KVwiIHJvbGU9XCJwcmVzZW50YXRpb25cIj5cbiAgICAgICAgPCEtLSBEZWZhdWx0IGl0ZW0gdGVtcGxhdGUgLS0+XG4gICAgICAgIDxsYWJlbCAqbmdJZj1cIiFjb250ZW50XCIgY2xhc3M9XCJhcHAtcmFkaW9zZXQtbGFiZWxcIlxuICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydkaXNhYmxlZCc6ZGlzYWJsZWQgfHwgcmVhZG9ubHl9XCI+XG4gICAgICAgICAgICA8aW5wdXQgW2F0dHIuZGF0YS1hdHRyLWluZGV4XT1cImlcIiBbY2hlY2tlZF09XCJpdGVtLnNlbGVjdGVkXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCJcbiAgICAgICAgICAgICAgICAgICBbbmFtZV09XCIncmFkaW9zZXRfJyArIHdpZGdldElkXCIgW3RhYmluZGV4XT1cInRhYmluZGV4XCIgW3ZhbHVlXT1cIml0ZW0ua2V5XCJcbiAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIi8+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiaXRlbS5sYWJlbFwiPjwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPCEtLSBDdXN0b20gcGFydGlhbCB0ZW1wbGF0ZSAtLT5cbiAgICAgICAgPGxhYmVsICpuZ0lmPVwiY29udGVudFwiIGNsYXNzPVwiYXBwLXJhZGlvc2V0LWxhYmVsXCJcbiAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOmRpc2FibGVkIHx8IHJlYWRvbmx5fVwiPlxuICAgICAgICAgICAgPGlucHV0IFthdHRyLmRhdGEtYXR0ci1pbmRleF09XCJpXCIgW2NoZWNrZWRdPVwiaXRlbS5zZWxlY3RlZFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiXG4gICAgICAgICAgICAgICAgICAgW25hbWVdPVwiJ3JhZGlvc2V0XycgKyB3aWRnZXRJZFwiIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiIFt2YWx1ZV09XCJpdGVtLmtleVwiXG4gICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCIvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXB0aW9uIGN1c3RvbVRlbXBsYXRlXCIgcGFydGlhbC1jb250YWluZXItdGFyZ2V0Pjwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICA8L2xpPlxuPC9uZy10ZW1wbGF0ZT5cblxuPGlucHV0IFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiIGhpZGRlbiBjbGFzcz1cIm1vZGVsLWhvbGRlclwiPlxuPGRpdiAqbmdJZj1cInJlYWRvbmx5IHx8IGRpc2FibGVkXCIgYXJpYS1yZWFkb25seT1cInRydWVcIiBjbGFzcz1cInJlYWRvbmx5LXdyYXBwZXJcIj48L2Rpdj5cblxuPCEtLSBUaGlzIHRlbXBsYXRlIHdpbGwgYmUgZGlzcGxheWVkIHdoZW4gZ3JvdXBieSBpcyBzcGVjaWZpZWQuIC0tPlxuPG5nLXRlbXBsYXRlICNncm91cGVkTGlzdFRlbXBsYXRlPlxuICAgIDxsaSAqbmdGb3I9XCJsZXQgZ3JvdXBPYmogb2YgZ3JvdXBlZERhdGE7IGxldCBncm91cGluZGV4ID0gaW5kZXg7XCIgY2xhc3M9XCJhcHAtbGlzdC1pdGVtLWdyb3VwXCIgcm9sZT1cInByZXNlbnRhdGlvblwiID5cbiAgICAgICAgPHVsIGNsYXNzPVwiaXRlbS1ncm91cFwiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCInZ3JvdXBfJyArIHdpZGdldElkICsgJ18nICsgZ3JvdXBpbmRleFwiPlxuICAgICAgICAgICAgPGxpIFtpZF09XCInZ3JvdXBfJyArIHdpZGdldElkICsgJ18nICsgZ3JvdXBpbmRleFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwibGlzdC1ncm91cC1oZWFkZXJcIiAoY2xpY2spPVwiaGFuZGxlSGVhZGVyQ2xpY2soJGV2ZW50KVwiIFt0aXRsZV09XCJncm91cE9iai5rZXlcIiBbbmdDbGFzc109XCJ7J2NvbGxhcHNpYmxlLWNvbnRlbnQnOiBjb2xsYXBzaWJsZX1cIj5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJncm91cC10aXRsZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0dyb3VwICcrZ3JvdXBPYmoua2V5XCI+e3tncm91cE9iai5rZXl9fVxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWFjdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJhcHAtaWNvbiB3aSBhY3Rpb24gd2ktY2hldnJvbi11cFwiICpuZ0lmPVwiY29sbGFwc2libGVcIiB0aXRsZT1cInt7YXBwTG9jYWxlLkxBQkVMX0NPTExBUFNFfX0ve3thcHBMb2NhbGUuTEFCRUxfRVhQQU5EfX1cIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNob3djb3VudFwiIGNsYXNzPVwibGFiZWwgbGFiZWwtZGVmYXVsdFwiIFt0ZXh0Q29udGVudF09XCJncm91cE9iai5kYXRhLmxlbmd0aFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9oND5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ3JvdXBPYmouZGF0YTsgbGV0IGkgPSBpbmRleDtcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlsncmFkaW8nLCAnYXBwLXJhZGlvJywgJ2dyb3VwLWxpc3QtaXRlbScsIGl0ZW1jbGFzcywgaXRlbXNQZXJSb3dDbGFzc11cIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaXRlbS5zZWxlY3RlZFwiXG4gICAgICAgICAgICAgICAgW3dtSXRlbVRlbXBsYXRlXT1cImNvbnRlbnRcIiBbdXNlckNvbXBvbmVudFBhcmFtc109XCJpdGVtXCIgcGFydGlhbENvbnRhaW5lclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJhZGlvTGFiZWxDbGljaygkZXZlbnQsIGl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgPCEtLSBEZWZhdWx0IGl0ZW0gdGVtcGxhdGUgLS0+XG4gICAgICAgICAgICAgICAgPGxhYmVsICpuZ0lmPVwiIWNvbnRlbnRcIiBjbGFzcz1cImFwcC1yYWRpb3NldC1sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOmRpc2FibGVkIHx8IHJlYWRvbmx5fVwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW2F0dHIuZGF0YS1hdHRyLWluZGV4XT1cImlcIiBbbmFtZV09XCIncmFkaW9zZXRfJyArIHdpZGdldElkXCIgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLmtleVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiIFtjaGVja2VkXT1cIml0ZW0uc2VsZWN0ZWRcIi8+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FwdGlvblwiIFt0ZXh0Q29udGVudF09XCJpdGVtLmxhYmVsXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPCEtLSBDdXN0b20gcGFydGlhbCB0ZW1wbGF0ZSAtLT5cbiAgICAgICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJjb250ZW50XCIgY2xhc3M9XCJhcHAtcmFkaW9zZXQtbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzpkaXNhYmxlZCB8fCByZWFkb25seX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IFthdHRyLmRhdGEtYXR0ci1pbmRleF09XCJpXCIgW25hbWVdPVwiJ3JhZGlvc2V0XycgKyB3aWRnZXRJZFwiIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS5rZXlcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIiBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIiBbY2hlY2tlZF09XCJpdGVtLnNlbGVjdGVkXCIvPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcHRpb24gY3VzdG9tVGVtcGxhdGVcIiBwYXJ0aWFsLWNvbnRhaW5lci10YXJnZXQ+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgIDwvbGk+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -41,7 +41,7 @@ function SwitchComponent_a_1_Template(rf, ctx) { if (rf & 1) {
41
41
  i0.ɵɵadvance();
42
42
  i0.ɵɵproperty("ngIf", opt_r3.dataObject && opt_r3.dataObject[ctx_r4.iconclass] && !opt_r3.selected);
43
43
  i0.ɵɵadvance();
44
- i0.ɵɵproperty("ngIf", opt_r3.selected);
44
+ i0.ɵɵproperty("ngIf", opt_r3.selected && ctx_r4.checkediconclass);
45
45
  i0.ɵɵadvance();
46
46
  i0.ɵɵproperty("textContent", opt_r3[ctx_r4.displayfield] || opt_r3.label);
47
47
  } }
@@ -67,7 +67,7 @@ export class SwitchComponent extends DatasetAwareFormComponent {
67
67
  super(inj, WIDGET_CONFIG, explicitContext);
68
68
  this.options = [];
69
69
  this.multiple = this.getAttr("multiple") === "true";
70
- this.checkediconclass = this.getAttr("checkediconclass") || 'wm-sl-l sl-check';
70
+ this.checkediconclass = this.getAttr("checkediconclass");
71
71
  this._debounceSetSelectedValue = debounce((val) => {
72
72
  this.setSelectedValue();
73
73
  this.updateHighlighter(val);
@@ -206,7 +206,7 @@ export class SwitchComponent extends DatasetAwareFormComponent {
206
206
  args: [{ selector: '[wmSwitch]', providers: [
207
207
  provideAs(SwitchComponent, NG_VALUE_ACCESSOR, true),
208
208
  provideAsWidgetRef(SwitchComponent)
209
- ], exportAs: 'wmSwitch', template: "<div role=\"group\" class=\"btn-group btn-group-justified\" [ngClass]=\"{'multi-select': multiple}\">\n <a *ngFor=\"let opt of datasetItems; let $index = index;\"\n focus-target\n href=\"javascript:void(0);\"\n class=\"btn btn-default\"\n [name]=\"'wm-switch-' + opt.key\"\n role=\"button\"\n [ngClass]=\"{'selected': opt.selected, 'disabled': disabled}\"\n [attr.aria-pressed]=\"opt.selected ? true : false\"\n (click)=\"selectOpt($event, $index, opt)\"\n >\n <i *ngIf=\"opt.dataObject && opt.dataObject[iconclass] && !opt.selected\" aria-hidden=\"true\" [ngClass]=\"['app-icon', opt.dataObject[iconclass] || opt['icon']]\"></i>\n <i *ngIf=\"opt.selected\" aria-hidden=\"true\" [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\" [textContent]=\"opt[displayfield] || opt.label\"></span>\n </a>\n</div>\n<span [title]=\"selectedItem ? selectedItem.label : modelByKey\" aria-hidden=\"true\"\n class=\"btn btn-primary app-switch-overlay switch-handle\" *ngIf=\"!multiple\">\n <i [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\">{{selectedItem ? selectedItem.label : modelByKey}}</span>\n</span>\n<input [name]=\"name\" class=\"model-holder ng-hide\" [disabled]=\"disabled\" [value]=\"modelByKey\" [required]=\"required\" aria-hidden=\"true\">\n" }]
209
+ ], exportAs: 'wmSwitch', template: "<div role=\"group\" class=\"btn-group btn-group-justified\" [ngClass]=\"{'multi-select': multiple}\">\n <a *ngFor=\"let opt of datasetItems; let $index = index;\"\n focus-target\n href=\"javascript:void(0);\"\n class=\"btn btn-default\"\n [name]=\"'wm-switch-' + opt.key\"\n role=\"button\"\n [ngClass]=\"{'selected': opt.selected, 'disabled': disabled}\"\n [attr.aria-pressed]=\"opt.selected ? true : false\"\n (click)=\"selectOpt($event, $index, opt)\"\n >\n <i *ngIf=\"opt.dataObject && opt.dataObject[iconclass] && !opt.selected\" aria-hidden=\"true\" [ngClass]=\"['app-icon', opt.dataObject[iconclass] || opt['icon']]\"></i>\n <i *ngIf=\"opt.selected && checkediconclass\" aria-hidden=\"true\" [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\" [textContent]=\"opt[displayfield] || opt.label\"></span>\n </a>\n</div>\n<span [title]=\"selectedItem ? selectedItem.label : modelByKey\" aria-hidden=\"true\"\n class=\"btn btn-primary app-switch-overlay switch-handle\" *ngIf=\"!multiple\">\n <i [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\">{{selectedItem ? selectedItem.label : modelByKey}}</span>\n</span>\n<input [name]=\"name\" class=\"model-holder ng-hide\" [disabled]=\"disabled\" [value]=\"modelByKey\" [required]=\"required\" aria-hidden=\"true\">\n" }]
210
210
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
211
211
  type: Inject,
212
212
  args: ['EXPLICIT_CONTEXT']
@@ -214,4 +214,4 @@ export class SwitchComponent extends DatasetAwareFormComponent {
214
214
  type: Optional
215
215
  }] }], null); })();
216
216
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SwitchComponent, { className: "SwitchComponent", filePath: "switch/switch.component.ts", lineNumber: 25 }); })();
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQzVFLE9BQU8sRUFBZSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7OztJQ0czQyx1QkFBa0s7Ozs7SUFBdkUsMkdBQWtFOzs7SUFDN0osdUJBQThFOzs7SUFBbkMsNkVBQThCOzs7O0lBWDdFLDRCQVNDO0lBREUsMFBBQVMsMkNBQThCLEtBQUM7SUFHdkMsQUFEQSxnRUFBOEosbURBQ3BGO0lBQzFFLDBCQUE0RTtJQUNoRixpQkFBSTs7OztJQVBELEFBRkEsZ0RBQStCLHlFQUU2Qjs7SUFJdkQsY0FBa0U7SUFBbEUsbUdBQWtF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QUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxDQUFDO2FBQU0sQ0FBQztZQUNKLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDTCxDQUFDO2dIQW5KUSxlQUFlLDBEQWNXLGtCQUFrQjtvRUFkNUMsZUFBZSw4RkFOYjtnQkFDUCxTQUFTLENBQUMsZUFBZSxFQUFFLGlCQUFpQixFQUFFLElBQUksQ0FBQztnQkFDbkQsa0JBQWtCLENBQUMsZUFBZSxDQUFDO2FBQ3RDO1lDckJMLDhCQUErRjtZQUMzRiw0REFTQztZQUtMLGlCQUFNO1lBQ04sa0VBQ2lGO1lBSWpGLDJCQUFzSTs7WUFyQjlFLGtFQUFzQztZQUN2RSxjQUFpQjtZQUFqQiwwQ0FBaUI7WUFnQndCLGNBQWU7WUFBZixvQ0FBZTtZQUl4RSxjQUFhO1lBQXlFLEFBQXJCLEFBQXRCLEFBQTNDLCtCQUFhLDBCQUFtRCx5QkFBcUIsMEJBQXNCOzs7aUZER3JHLGVBQWU7Y0FUM0IsU0FBUzsyQkFDSSxZQUFZLGFBRVg7b0JBQ1AsU0FBUyxrQkFBa0IsaUJBQWlCLEVBQUUsSUFBSSxDQUFDO29CQUNuRCxrQkFBa0IsaUJBQWlCO2lCQUN0QyxZQUNTLFVBQVU7O3NCQWdCUSxNQUFNO3VCQUFDLGtCQUFrQjs7c0JBQUcsUUFBUTs7a0ZBZHZELGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5qZWN0LCBJbmplY3RvciwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7JGFwcERpZ2VzdCwgZGVib3VuY2UsIGlzRGVmaW5lZCwgc2V0Q1NTLCB0b0Jvb2xlYW59IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IERhdGFTZXRJdGVtLCBwcm92aWRlQXMsIHByb3ZpZGVBc1dpZGdldFJlZiwgc3R5bGVyIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyBEYXRhc2V0QXdhcmVGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0YXNldC1hd2FyZS1mb3JtLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL3N3aXRjaC5wcm9wcyc7XG5pbXBvcnQge2ZpbmQsIGZpbmRJbmRleCwgZm9yRWFjaH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5kZWNsYXJlIGNvbnN0ICQ7XG5cbmNvbnN0IERFRkFVTFRfQ0xTID0gJ2FwcC1zd2l0Y2gnO1xuY29uc3QgV0lER0VUX0NPTkZJRyA9IHt3aWRnZXRUeXBlOiAnd20tc3dpdGNoJywgaG9zdENsYXNzOiBERUZBVUxUX0NMU307XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3dtU3dpdGNoXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N3aXRjaC5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBcyhTd2l0Y2hDb21wb25lbnQsIE5HX1ZBTFVFX0FDQ0VTU09SLCB0cnVlKSxcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKFN3aXRjaENvbXBvbmVudClcbiAgICBdLFxuICAgIGV4cG9ydEFzOiAnd21Td2l0Y2gnXG59KVxuZXhwb3J0IGNsYXNzIFN3aXRjaENvbXBvbmVudCBleHRlbmRzIERhdGFzZXRBd2FyZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuXG4gICAgb3B0aW9ucyA9IFtdO1xuICAgIHNlbGVjdGVkSXRlbTogRGF0YVNldEl0ZW07XG4gICAgaWNvbmNsYXNzO1xuICAgIGNoZWNrZWRpY29uY2xhc3M7XG4gICAgbXVsdGlwbGU6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBidG53aWR0aDtcbiAgICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2RlYm91bmNlU2V0U2VsZWN0ZWRWYWx1ZTogRnVuY3Rpb247XG4gICAgcHVibGljIG5hbWU6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueSkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHRoaXMubXVsdGlwbGUgPSB0aGlzLmdldEF0dHIoXCJtdWx0aXBsZVwiKSA9PT0gXCJ0cnVlXCI7XG4gICAgICAgIHRoaXMuY2hlY2tlZGljb25jbGFzcyA9IHRoaXMuZ2V0QXR0cihcImNoZWNrZWRpY29uY2xhc3NcIikgfHwgJ3dtLXNsLWwgc2wtY2hlY2snO1xuXG4gICAgICAgIHRoaXMuX2RlYm91bmNlU2V0U2VsZWN0ZWRWYWx1ZSA9IGRlYm91bmNlKCh2YWwpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRWYWx1ZSgpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVIaWdobGlnaHRlcih2YWwpO1xuICAgICAgICAgICAgLy8gb25seSBmb3IgZGVmYXVsdCB2YWx1ZSB0cmlnZ2VyIGFwcCBkaWdlc3QgdG8gYXBwbHkgdGhlIHNlbGVjdGVkSXRlbVxuICAgICAgICAgICAgaWYgKHZhbCkge1xuICAgICAgICAgICAgICAgICRhcHBEaWdlc3QoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgMjAwKTtcblxuICAgICAgICBjb25zdCBkYXRhc2V0U3Vic2NyaXB0aW9uID0gdGhpcy5kYXRhc2V0JC5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVTd2l0Y2hPcHRpb25zKCkpO1xuXG4gICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoKCkgPT4gZGF0YXNldFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcblxuICAgICAgICBjb25zdCBkYXRhdmFsdWVTdWJzY3JpcHRpb24gPSB0aGlzLmRhdGF2YWx1ZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2RlYm91bmNlU2V0U2VsZWN0ZWRWYWx1ZSh0cnVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoKCkgPT4gZGF0YXZhbHVlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQsIHRoaXMpO1xuICAgIH1cblxuICAgIG9uU3R5bGVDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KSB7XG4gICAgICAgIGlmIChrZXkgPT09ICdoZWlnaHQnKSB7XG4gICAgICAgICAgICBzZXRDU1ModGhpcy5uYXRpdmVFbGVtZW50LCAnb3ZlcmZsb3cnLCBudiA/ICdhdXRvJyA6ICcnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uU3R5bGVDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiBzZXRzIHRoZSBzZWxlY3RlZEl0ZW0gYnkgZWl0aGVyIHVzaW5nIGNvbXBhcmVieSBmaWVsZHMgb3Igc2VsZWN0ZWQgZmxhZyBvbiBkYXRhc2V0SXRlbXMuXG4gICAgcHJpdmF0ZSBzZXRTZWxlY3RlZFZhbHVlKCkge1xuICAgICAgICBpZiAoaXNEZWZpbmVkKHRoaXMuZGF0YXZhbHVlKSB8fCBpc0RlZmluZWQodGhpcy50b0JlUHJvY2Vzc2VkRGF0YXZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBmaW5kKHRoaXMuZGF0YXNldEl0ZW1zLCB7c2VsZWN0ZWQ6IHRydWV9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIG5vIHZhbHVlIGlzIHByb3ZpZGVkLCBzZXQgZmlyc3QgdmFsdWUgYXMgZGVmYXVsdCBpZiBvcHRpb25zIGFyZSBhdmFpbGFibGUgZWxzZSBzZXQgLTEgaWUgbm8gc2VsZWN0aW9uXG4gICAgICAgIHRoaXMuc2VsZWN0T3B0QXRJbmRleCgwKTtcbiAgICB9XG5cbiAgICAvLyBzZXQgdGhlIGNzcyBmb3Igc3dpdGNoIG92ZXJsYXkgZWxlbWVudC5cbiAgICAvLyBzZXQgdGhlIHNlbGVjdGVkIGluZGV4IGZyb20gdGhlIGRhdGFzZXRJdGVtcyBhbmQgaGlnaGxpZ2h0IHRoZSBkYXRhdmFsdWUgb24gc3dpdGNoLlxuICAgIHByaXZhdGUgdXBkYXRlU3dpdGNoT3B0aW9ucygpIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0YXNldEl0ZW1zLmxlbmd0aCAmJiAhdGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgdGhpcy5idG53aWR0aCA9ICgxMDAgLyB0aGlzLmRhdGFzZXRJdGVtcy5sZW5ndGgpO1xuICAgICAgICAgICAgc2V0Q1NTKHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuYXBwLXN3aXRjaC1vdmVybGF5JykgYXMgSFRNTEVsZW1lbnQsICd3aWR0aCcsIHRoaXMuYnRud2lkdGggKyAnJScpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZGVib3VuY2VTZXRTZWxlY3RlZFZhbHVlKHRydWUpO1xuICAgIH1cblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gYW5pbWF0ZXMgdGhlIGhpZ2hsaWdodGVkIHNwYW4gb24gdG8gdGhlIHNlbGVjdGVkIHZhbHVlLlxuICAgIHByaXZhdGUgdXBkYXRlSGlnaGxpZ2h0ZXIoc2tpcEFuaW1hdGlvbj8pIHtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9ICQodGhpcy5uYXRpdmVFbGVtZW50KS5maW5kKCdzcGFuLmFwcC1zd2l0Y2gtb3ZlcmxheScpO1xuXG4gICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRWYWx1ZSgpO1xuXG4gICAgICAgIGxldCBsZWZ0LFxuICAgICAgICAgICAgaW5kZXggPSB0aGlzLnNlbGVjdGVkSXRlbSA/IGZpbmRJbmRleCh0aGlzLmRhdGFzZXRJdGVtcywge2tleTogdGhpcy5zZWxlY3RlZEl0ZW0ua2V5fSkgOiAtMTtcblxuICAgICAgICBpZiAoaW5kZXggPT09IHVuZGVmaW5lZCB8fCBpbmRleCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgaW5kZXggPSAtMTtcbiAgICAgICAgfVxuICAgICAgICBsZWZ0ID0gaW5kZXggKiB0aGlzLmJ0bndpZHRoO1xuICAgICAgICBpZiAoc2tpcEFuaW1hdGlvbikge1xuICAgICAgICAgICAgaGFuZGxlci5jc3MoJ2xlZnQnLCBsZWZ0ICsgJyUnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGhhbmRsZXIuYW5pbWF0ZSh7XG4gICAgICAgICAgICAgICAgbGVmdDogbGVmdCArICclJ1xuICAgICAgICAgICAgfSwgMzAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNlbGVjdE9wdEF0SW5kZXgoJGluZGV4KSB7XG4gICAgICAgIGlmICghdGhpcy5kYXRhc2V0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3B0ID0gdGhpcy5kYXRhc2V0SXRlbXNbJGluZGV4XTtcbiAgICAgICAgdGhpcy5fbW9kZWxCeVZhbHVlID0gb3B0LnZhbHVlO1xuICAgIH1cblxuICAgIC8vIFRyaWdnZXJlZCBvbiBzZWxlY3RlZCB0aGUgb3B0aW9uIGZyb20gdGhlIHN3aXRjaC5cbiAgICAvLyBzZXQgdGhlIGluZGV4IGFuZCBoaWdobGlnaHQgdGhlIGRlZmF1bHQgdmFsdWUuIEludm9rZSBvbmNoYW5nZSBldmVudCBoYW5kbGVyLlxuICAgIHNlbGVjdE9wdCgkZXZlbnQsICRpbmRleCwgb3B0aW9uKSB7XG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZih0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgICAgICBjb25zdCBrZXlzID0gW107XG4gICAgICAgICAgICB0aGlzLmRhdGFzZXRJdGVtc1skaW5kZXhdLnNlbGVjdGVkID0gIXRoaXMuZGF0YXNldEl0ZW1zWyRpbmRleF0uc2VsZWN0ZWQ7XG4gICAgICAgICAgICBmb3JFYWNoKHRoaXMuZGF0YXNldEl0ZW1zLCAoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYoaXRlbS5zZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAga2V5cy5wdXNoKGl0ZW0ua2V5KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5tb2RlbEJ5S2V5ID0ga2V5cztcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gZmluZCh0aGlzLmRhdGFzZXRJdGVtcywge3NlbGVjdGVkOiB0cnVlfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsQnlLZXkgPSBvcHRpb24ua2V5O1xuICAgICAgICAgICAgaWYgKCF0aGlzLm11bHRpcGxlICYmIHRoaXMuc2VsZWN0ZWRJdGVtICYmICRpbmRleCA9PT0gZmluZEluZGV4KHRoaXMuZGF0YXNldEl0ZW1zLCB7a2V5OiB0aGlzLnNlbGVjdGVkSXRlbS5rZXl9KSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRhdGFzZXRJdGVtcy5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgJGluZGV4ID0gJGluZGV4ID09PSAxID8gMCA6IDE7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gdGhpcy5kYXRhc2V0SXRlbXNbJGluZGV4XTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSGlnaGxpZ2h0ZXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW52b2tlT25Ub3VjaGVkKCk7XG4gICAgICAgIC8vIGludm9rZSBvbiBkYXRhdmFsdWUgY2hhbmdlLlxuICAgICAgICB0aGlzLmludm9rZU9uQ2hhbmdlKHRoaXMuZGF0YXZhbHVlLCAkZXZlbnQgfHwge30sIHRydWUpO1xuICAgICAgICAkYXBwRGlnZXN0KCk7XG4gICAgfVxuXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdj8pIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ2Rpc2FibGVkJyAmJiAhdG9Cb29sZWFuKG52KSkge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShrZXkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IHJvbGU9XCJncm91cFwiIGNsYXNzPVwiYnRuLWdyb3VwIGJ0bi1ncm91cC1qdXN0aWZpZWRcIiBbbmdDbGFzc109XCJ7J211bHRpLXNlbGVjdCc6IG11bHRpcGxlfVwiPlxuICAgIDxhICpuZ0Zvcj1cImxldCBvcHQgb2YgZGF0YXNldEl0ZW1zOyBsZXQgJGluZGV4ID0gaW5kZXg7XCJcbiAgICAgICBmb2N1cy10YXJnZXRcbiAgICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiXG4gICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgICAgIFtuYW1lXT1cIid3bS1zd2l0Y2gtJyArIG9wdC5rZXlcIlxuICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWQnOiBvcHQuc2VsZWN0ZWQsICdkaXNhYmxlZCc6IGRpc2FibGVkfVwiXG4gICAgICAgW2F0dHIuYXJpYS1wcmVzc2VkXT1cIm9wdC5zZWxlY3RlZCA/IHRydWUgOiBmYWxzZVwiXG4gICAgICAgKGNsaWNrKT1cInNlbGVjdE9wdCgkZXZlbnQsICRpbmRleCwgb3B0KVwiXG4gICAgPlxuICAgICAgICA8aSAqbmdJZj1cIm9wdC5kYXRhT2JqZWN0ICYmIG9wdC5kYXRhT2JqZWN0W2ljb25jbGFzc10gJiYgIW9wdC5zZWxlY3RlZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtuZ0NsYXNzXT1cIlsnYXBwLWljb24nLCBvcHQuZGF0YU9iamVjdFtpY29uY2xhc3NdIHx8IG9wdFsnaWNvbiddXVwiPjwvaT5cbiAgICAgICAgPGkgKm5nSWY9XCJvcHQuc2VsZWN0ZWRcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBbbmdDbGFzc109XCJbY2hlY2tlZGljb25jbGFzc11cIj48L2k+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY2FwdGlvblwiIFt0ZXh0Q29udGVudF09XCJvcHRbZGlzcGxheWZpZWxkXSB8fCBvcHQubGFiZWxcIj48L3NwYW4+XG4gICAgPC9hPlxuPC9kaXY+XG48c3BhbiBbdGl0bGVdPVwic2VsZWN0ZWRJdGVtID8gc2VsZWN0ZWRJdGVtLmxhYmVsIDogbW9kZWxCeUtleVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBhcHAtc3dpdGNoLW92ZXJsYXkgc3dpdGNoLWhhbmRsZVwiICpuZ0lmPVwiIW11bHRpcGxlXCI+XG4gICAgPGkgW25nQ2xhc3NdPVwiW2NoZWNrZWRpY29uY2xhc3NdXCI+PC9pPlxuICAgIDxzcGFuIGNsYXNzPVwiY2FwdGlvblwiPnt7c2VsZWN0ZWRJdGVtID8gc2VsZWN0ZWRJdGVtLmxhYmVsIDogbW9kZWxCeUtleX19PC9zcGFuPlxuPC9zcGFuPlxuPGlucHV0IFtuYW1lXT1cIm5hbWVcIiBjbGFzcz1cIm1vZGVsLWhvbGRlciBuZy1oaWRlXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3ZhbHVlXT1cIm1vZGVsQnlLZXlcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiJdfQ==
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQzVFLE9BQU8sRUFBZSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7OztJQ0czQyx1QkFBa0s7Ozs7SUFBdkUsMkdBQWtFOzs7SUFDN0osdUJBQWtHOzs7SUFBbkMsNkVBQThCOzs7O0lBWGpHLDRCQVNDO0lBREUsMFBBQVMsMkNBQThCLEtBQUM7SUFHdkMsQUFEQSxnRUFBOEosbURBQ2hFO0lBQzlGLDBCQUE0RTtJQUNoRixpQkFBSTs7OztJQVBELEFBRkEsZ0RBQStCLHlFQUU2Qjs7SUFJdkQsY0FBa0U7SUFBbEUsbUdBQWtFO0lBQ2xFLGNBQXNDO0lBQXRDLGlFQUFzQztJQUNwQixjQUE4QztJQUE5Qyx5RUFBOEM7OztJQUc1RSwrQkFDaUY7SUFDN0UsdUJBQXNDO0lBQ3RDLGdDQUFzQjtJQUFBLFlBQWtEO0lBQzVFLEFBRDRFLGlCQUFPLEVBQzVFOzs7SUFKRCwyRkFBd0Q7SUFFdkQsY0FBOEI7SUFBOUIsNkVBQThCO0lBQ1gsZUFBa0Q7SUFBbEQseUZBQWtEOztBRFA1RSxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUM7QUFDakMsTUFBTSxhQUFhLEdBQUcsRUFBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUMsQ0FBQztBQVd4RSxNQUFNLE9BQU8sZUFBZ0IsU0FBUSx5QkFBeUI7YUFDbkQsb0JBQWUsR0FBRyxhQUFhLEVBQUUsQUFBbEIsQ0FBbUI7SUFhekMsWUFBWSxHQUFhLEVBQTBDLGVBQW9CO1FBQ25GLEtBQUssQ0FBQyxHQUFHLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBWi9DLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFhVCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssTUFBTSxDQUFDO1FBQ3BELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFekQsSUFBSSxDQUFDLHlCQUF5QixHQUFHLFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQzlDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM1QixzRUFBc0U7WUFDdEUsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDTixVQUFVLEVBQUUsQ0FBQztZQUNqQixDQUFDO1FBQ0wsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRVIsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO1FBRXRGLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRXRFLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3pELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxlQUFlO1FBQ1gsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBNEIsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQVcsRUFBRSxFQUFPLEVBQUUsRUFBUTtRQUN4QyxJQUFJLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdELENBQUM7YUFBTSxDQUFDO1lBQ0osS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7SUFDTCxDQUFDO0lBRUQseUdBQXlHO0lBQ2pHLGdCQUFnQjtRQUNwQixJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUM7WUFDdEUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1lBQzlELE9BQU87UUFDWCxDQUFDO1FBRUQsMkdBQTJHO1FBQzNHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsMENBQTBDO0lBQzFDLHNGQUFzRjtJQUM5RSxtQkFBbUI7UUFDdkIsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM3QyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakQsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFnQixFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ2pILENBQUM7UUFFRCxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELHdFQUF3RTtJQUNoRSxpQkFBaUIsQ0FBQyxhQUFjO1FBQ3BDLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFFdEUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFeEIsSUFBSSxJQUFJLEVBQ0osS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFaEcsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN4QyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzdCLElBQUksYUFBYSxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxDQUFDLE9BQU8sQ0FBQztnQkFDWixJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUc7YUFDbkIsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNaLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBTTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixPQUFPO1FBQ1gsQ0FBQztRQUNELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO0lBQ25DLENBQUM7SUFFRCxvREFBb0Q7SUFDcEQsZ0ZBQWdGO0lBQ2hGLFNBQVMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU07UUFDNUIsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXhCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUN6RSxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUNyQyxJQUFHLElBQUksQ0FBQyxRQUFRO29CQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7YUFDSSxDQUFDO1lBQ0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksTUFBTSxLQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMvRyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUNqQyxNQUFNLEdBQUcsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLENBQUM7cUJBQU0sQ0FBQztvQkFDSixPQUFPO2dCQUNYLENBQUM7WUFDTCxDQUFDO1lBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzdCLENBQUM7UUFFRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsOEJBQThCO1FBQzlCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hELFVBQVUsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUc7UUFDekIsSUFBSSxHQUFHLEtBQUssVUFBVSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsQ0FBQzthQUFNLENBQUM7WUFDSixLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0wsQ0FBQztnSEFuSlEsZUFBZSwwREFjVyxrQkFBa0I7b0VBZDVDLGVBQWUsOEZBTmI7Z0JBQ1AsU0FBUyxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLENBQUM7Z0JBQ25ELGtCQUFrQixDQUFDLGVBQWUsQ0FBQzthQUN0QztZQ3JCTCw4QkFBK0Y7WUFDM0YsNERBU0M7WUFLTCxpQkFBTTtZQUNOLGtFQUNpRjtZQUlqRiwyQkFBc0k7O1lBckI5RSxrRUFBc0M7WUFDdkUsY0FBaUI7WUFBakIsMENBQWlCO1lBZ0J3QixjQUFlO1lBQWYsb0NBQWU7WUFJeEUsY0FBYTtZQUF5RSxBQUFyQixBQUF0QixBQUEzQywrQkFBYSwwQkFBbUQseUJBQXFCLDBCQUFzQjs7O2lGREdyRyxlQUFlO2NBVDNCLFNBQVM7MkJBQ0ksWUFBWSxhQUVYO29CQUNQLFNBQVMsa0JBQWtCLGlCQUFpQixFQUFFLElBQUksQ0FBQztvQkFDbkQsa0JBQWtCLGlCQUFpQjtpQkFDdEMsWUFDUyxVQUFVOztzQkFnQlEsTUFBTTt1QkFBQyxrQkFBa0I7O3NCQUFHLFFBQVE7O2tGQWR2RCxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEluamVjdCwgSW5qZWN0b3IsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyRhcHBEaWdlc3QsIGRlYm91bmNlLCBpc0RlZmluZWQsIHNldENTUywgdG9Cb29sZWFufSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBEYXRhU2V0SXRlbSwgcHJvdmlkZUFzLCBwcm92aWRlQXNXaWRnZXRSZWYsIHN0eWxlciB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHsgRGF0YXNldEF3YXJlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGFzZXQtYXdhcmUtZm9ybS5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi9zd2l0Y2gucHJvcHMnO1xuaW1wb3J0IHtmaW5kLCBmaW5kSW5kZXgsIGZvckVhY2h9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuZGVjbGFyZSBjb25zdCAkO1xuXG5jb25zdCBERUZBVUxUX0NMUyA9ICdhcHAtc3dpdGNoJztcbmNvbnN0IFdJREdFVF9DT05GSUcgPSB7d2lkZ2V0VHlwZTogJ3dtLXN3aXRjaCcsIGhvc3RDbGFzczogREVGQVVMVF9DTFN9O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ1t3bVN3aXRjaF0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zd2l0Y2guY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXMoU3dpdGNoQ29tcG9uZW50LCBOR19WQUxVRV9BQ0NFU1NPUiwgdHJ1ZSksXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihTd2l0Y2hDb21wb25lbnQpXG4gICAgXSxcbiAgICBleHBvcnRBczogJ3dtU3dpdGNoJ1xufSlcbmV4cG9ydCBjbGFzcyBTd2l0Y2hDb21wb25lbnQgZXh0ZW5kcyBEYXRhc2V0QXdhcmVGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIG9wdGlvbnMgPSBbXTtcbiAgICBzZWxlY3RlZEl0ZW06IERhdGFTZXRJdGVtO1xuICAgIGljb25jbGFzcztcbiAgICBjaGVja2VkaWNvbmNsYXNzO1xuICAgIG11bHRpcGxlOiBib29sZWFuO1xuICAgIHByaXZhdGUgYnRud2lkdGg7XG4gICAgcHVibGljIGRpc2FibGVkOiBib29sZWFuO1xuICAgIHB1YmxpYyByZXF1aXJlZDogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9kZWJvdW5jZVNldFNlbGVjdGVkVmFsdWU6IEZ1bmN0aW9uO1xuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnkpIHtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQpO1xuICAgICAgICB0aGlzLm11bHRpcGxlID0gdGhpcy5nZXRBdHRyKFwibXVsdGlwbGVcIikgPT09IFwidHJ1ZVwiO1xuICAgICAgICB0aGlzLmNoZWNrZWRpY29uY2xhc3MgPSB0aGlzLmdldEF0dHIoXCJjaGVja2VkaWNvbmNsYXNzXCIpO1xuXG4gICAgICAgIHRoaXMuX2RlYm91bmNlU2V0U2VsZWN0ZWRWYWx1ZSA9IGRlYm91bmNlKCh2YWwpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRWYWx1ZSgpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVIaWdobGlnaHRlcih2YWwpO1xuICAgICAgICAgICAgLy8gb25seSBmb3IgZGVmYXVsdCB2YWx1ZSB0cmlnZ2VyIGFwcCBkaWdlc3QgdG8gYXBwbHkgdGhlIHNlbGVjdGVkSXRlbVxuICAgICAgICAgICAgaWYgKHZhbCkge1xuICAgICAgICAgICAgICAgICRhcHBEaWdlc3QoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgMjAwKTtcblxuICAgICAgICBjb25zdCBkYXRhc2V0U3Vic2NyaXB0aW9uID0gdGhpcy5kYXRhc2V0JC5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVTd2l0Y2hPcHRpb25zKCkpO1xuXG4gICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoKCkgPT4gZGF0YXNldFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcblxuICAgICAgICBjb25zdCBkYXRhdmFsdWVTdWJzY3JpcHRpb24gPSB0aGlzLmRhdGF2YWx1ZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2RlYm91bmNlU2V0U2VsZWN0ZWRWYWx1ZSh0cnVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoKCkgPT4gZGF0YXZhbHVlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQsIHRoaXMpO1xuICAgIH1cblxuICAgIG9uU3R5bGVDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KSB7XG4gICAgICAgIGlmIChrZXkgPT09ICdoZWlnaHQnKSB7XG4gICAgICAgICAgICBzZXRDU1ModGhpcy5uYXRpdmVFbGVtZW50LCAnb3ZlcmZsb3cnLCBudiA/ICdhdXRvJyA6ICcnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uU3R5bGVDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiBzZXRzIHRoZSBzZWxlY3RlZEl0ZW0gYnkgZWl0aGVyIHVzaW5nIGNvbXBhcmVieSBmaWVsZHMgb3Igc2VsZWN0ZWQgZmxhZyBvbiBkYXRhc2V0SXRlbXMuXG4gICAgcHJpdmF0ZSBzZXRTZWxlY3RlZFZhbHVlKCkge1xuICAgICAgICBpZiAoaXNEZWZpbmVkKHRoaXMuZGF0YXZhbHVlKSB8fCBpc0RlZmluZWQodGhpcy50b0JlUHJvY2Vzc2VkRGF0YXZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBmaW5kKHRoaXMuZGF0YXNldEl0ZW1zLCB7c2VsZWN0ZWQ6IHRydWV9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIG5vIHZhbHVlIGlzIHByb3ZpZGVkLCBzZXQgZmlyc3QgdmFsdWUgYXMgZGVmYXVsdCBpZiBvcHRpb25zIGFyZSBhdmFpbGFibGUgZWxzZSBzZXQgLTEgaWUgbm8gc2VsZWN0aW9uXG4gICAgICAgIHRoaXMuc2VsZWN0T3B0QXRJbmRleCgwKTtcbiAgICB9XG5cbiAgICAvLyBzZXQgdGhlIGNzcyBmb3Igc3dpdGNoIG92ZXJsYXkgZWxlbWVudC5cbiAgICAvLyBzZXQgdGhlIHNlbGVjdGVkIGluZGV4IGZyb20gdGhlIGRhdGFzZXRJdGVtcyBhbmQgaGlnaGxpZ2h0IHRoZSBkYXRhdmFsdWUgb24gc3dpdGNoLlxuICAgIHByaXZhdGUgdXBkYXRlU3dpdGNoT3B0aW9ucygpIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0YXNldEl0ZW1zLmxlbmd0aCAmJiAhdGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgdGhpcy5idG53aWR0aCA9ICgxMDAgLyB0aGlzLmRhdGFzZXRJdGVtcy5sZW5ndGgpO1xuICAgICAgICAgICAgc2V0Q1NTKHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuYXBwLXN3aXRjaC1vdmVybGF5JykgYXMgSFRNTEVsZW1lbnQsICd3aWR0aCcsIHRoaXMuYnRud2lkdGggKyAnJScpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZGVib3VuY2VTZXRTZWxlY3RlZFZhbHVlKHRydWUpO1xuICAgIH1cblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gYW5pbWF0ZXMgdGhlIGhpZ2hsaWdodGVkIHNwYW4gb24gdG8gdGhlIHNlbGVjdGVkIHZhbHVlLlxuICAgIHByaXZhdGUgdXBkYXRlSGlnaGxpZ2h0ZXIoc2tpcEFuaW1hdGlvbj8pIHtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9ICQodGhpcy5uYXRpdmVFbGVtZW50KS5maW5kKCdzcGFuLmFwcC1zd2l0Y2gtb3ZlcmxheScpO1xuXG4gICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRWYWx1ZSgpO1xuXG4gICAgICAgIGxldCBsZWZ0LFxuICAgICAgICAgICAgaW5kZXggPSB0aGlzLnNlbGVjdGVkSXRlbSA/IGZpbmRJbmRleCh0aGlzLmRhdGFzZXRJdGVtcywge2tleTogdGhpcy5zZWxlY3RlZEl0ZW0ua2V5fSkgOiAtMTtcblxuICAgICAgICBpZiAoaW5kZXggPT09IHVuZGVmaW5lZCB8fCBpbmRleCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgaW5kZXggPSAtMTtcbiAgICAgICAgfVxuICAgICAgICBsZWZ0ID0gaW5kZXggKiB0aGlzLmJ0bndpZHRoO1xuICAgICAgICBpZiAoc2tpcEFuaW1hdGlvbikge1xuICAgICAgICAgICAgaGFuZGxlci5jc3MoJ2xlZnQnLCBsZWZ0ICsgJyUnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGhhbmRsZXIuYW5pbWF0ZSh7XG4gICAgICAgICAgICAgICAgbGVmdDogbGVmdCArICclJ1xuICAgICAgICAgICAgfSwgMzAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNlbGVjdE9wdEF0SW5kZXgoJGluZGV4KSB7XG4gICAgICAgIGlmICghdGhpcy5kYXRhc2V0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3B0ID0gdGhpcy5kYXRhc2V0SXRlbXNbJGluZGV4XTtcbiAgICAgICAgdGhpcy5fbW9kZWxCeVZhbHVlID0gb3B0LnZhbHVlO1xuICAgIH1cblxuICAgIC8vIFRyaWdnZXJlZCBvbiBzZWxlY3RlZCB0aGUgb3B0aW9uIGZyb20gdGhlIHN3aXRjaC5cbiAgICAvLyBzZXQgdGhlIGluZGV4IGFuZCBoaWdobGlnaHQgdGhlIGRlZmF1bHQgdmFsdWUuIEludm9rZSBvbmNoYW5nZSBldmVudCBoYW5kbGVyLlxuICAgIHNlbGVjdE9wdCgkZXZlbnQsICRpbmRleCwgb3B0aW9uKSB7XG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZih0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgICAgICBjb25zdCBrZXlzID0gW107XG4gICAgICAgICAgICB0aGlzLmRhdGFzZXRJdGVtc1skaW5kZXhdLnNlbGVjdGVkID0gIXRoaXMuZGF0YXNldEl0ZW1zWyRpbmRleF0uc2VsZWN0ZWQ7XG4gICAgICAgICAgICBmb3JFYWNoKHRoaXMuZGF0YXNldEl0ZW1zLCAoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYoaXRlbS5zZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAga2V5cy5wdXNoKGl0ZW0ua2V5KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5tb2RlbEJ5S2V5ID0ga2V5cztcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gZmluZCh0aGlzLmRhdGFzZXRJdGVtcywge3NlbGVjdGVkOiB0cnVlfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsQnlLZXkgPSBvcHRpb24ua2V5O1xuICAgICAgICAgICAgaWYgKCF0aGlzLm11bHRpcGxlICYmIHRoaXMuc2VsZWN0ZWRJdGVtICYmICRpbmRleCA9PT0gZmluZEluZGV4KHRoaXMuZGF0YXNldEl0ZW1zLCB7a2V5OiB0aGlzLnNlbGVjdGVkSXRlbS5rZXl9KSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRhdGFzZXRJdGVtcy5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgJGluZGV4ID0gJGluZGV4ID09PSAxID8gMCA6IDE7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gdGhpcy5kYXRhc2V0SXRlbXNbJGluZGV4XTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSGlnaGxpZ2h0ZXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW52b2tlT25Ub3VjaGVkKCk7XG4gICAgICAgIC8vIGludm9rZSBvbiBkYXRhdmFsdWUgY2hhbmdlLlxuICAgICAgICB0aGlzLmludm9rZU9uQ2hhbmdlKHRoaXMuZGF0YXZhbHVlLCAkZXZlbnQgfHwge30sIHRydWUpO1xuICAgICAgICAkYXBwRGlnZXN0KCk7XG4gICAgfVxuXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdj8pIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ2Rpc2FibGVkJyAmJiAhdG9Cb29sZWFuKG52KSkge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShrZXkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IHJvbGU9XCJncm91cFwiIGNsYXNzPVwiYnRuLWdyb3VwIGJ0bi1ncm91cC1qdXN0aWZpZWRcIiBbbmdDbGFzc109XCJ7J211bHRpLXNlbGVjdCc6IG11bHRpcGxlfVwiPlxuICAgIDxhICpuZ0Zvcj1cImxldCBvcHQgb2YgZGF0YXNldEl0ZW1zOyBsZXQgJGluZGV4ID0gaW5kZXg7XCJcbiAgICAgICBmb2N1cy10YXJnZXRcbiAgICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiXG4gICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgICAgIFtuYW1lXT1cIid3bS1zd2l0Y2gtJyArIG9wdC5rZXlcIlxuICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWQnOiBvcHQuc2VsZWN0ZWQsICdkaXNhYmxlZCc6IGRpc2FibGVkfVwiXG4gICAgICAgW2F0dHIuYXJpYS1wcmVzc2VkXT1cIm9wdC5zZWxlY3RlZCA/IHRydWUgOiBmYWxzZVwiXG4gICAgICAgKGNsaWNrKT1cInNlbGVjdE9wdCgkZXZlbnQsICRpbmRleCwgb3B0KVwiXG4gICAgPlxuICAgICAgICA8aSAqbmdJZj1cIm9wdC5kYXRhT2JqZWN0ICYmIG9wdC5kYXRhT2JqZWN0W2ljb25jbGFzc10gJiYgIW9wdC5zZWxlY3RlZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtuZ0NsYXNzXT1cIlsnYXBwLWljb24nLCBvcHQuZGF0YU9iamVjdFtpY29uY2xhc3NdIHx8IG9wdFsnaWNvbiddXVwiPjwvaT5cbiAgICAgICAgPGkgKm5nSWY9XCJvcHQuc2VsZWN0ZWQgJiYgY2hlY2tlZGljb25jbGFzc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtuZ0NsYXNzXT1cIltjaGVja2VkaWNvbmNsYXNzXVwiPjwvaT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXB0aW9uXCIgW3RleHRDb250ZW50XT1cIm9wdFtkaXNwbGF5ZmllbGRdIHx8IG9wdC5sYWJlbFwiPjwvc3Bhbj5cbiAgICA8L2E+XG48L2Rpdj5cbjxzcGFuIFt0aXRsZV09XCJzZWxlY3RlZEl0ZW0gPyBzZWxlY3RlZEl0ZW0ubGFiZWwgOiBtb2RlbEJ5S2V5XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGFwcC1zd2l0Y2gtb3ZlcmxheSBzd2l0Y2gtaGFuZGxlXCIgKm5nSWY9XCIhbXVsdGlwbGVcIj5cbiAgICA8aSBbbmdDbGFzc109XCJbY2hlY2tlZGljb25jbGFzc11cIj48L2k+XG4gICAgPHNwYW4gY2xhc3M9XCJjYXB0aW9uXCI+e3tzZWxlY3RlZEl0ZW0gPyBzZWxlY3RlZEl0ZW0ubGFiZWwgOiBtb2RlbEJ5S2V5fX08L3NwYW4+XG48L3NwYW4+XG48aW5wdXQgW25hbWVdPVwibmFtZVwiIGNsYXNzPVwibW9kZWwtaG9sZGVyIG5nLWhpZGVcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbdmFsdWVdPVwibW9kZWxCeUtleVwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuIl19
@@ -13,7 +13,7 @@ export const switchProps = new Map([
13
13
  ['hint', PROP_STRING],
14
14
  ['arialabel', PROP_STRING],
15
15
  ['iconclass', PROP_STRING],
16
- ['checkediconclass', { value: 'wm-sl-l sl-check', ...PROP_STRING }],
16
+ ['checkediconclass', { value: '', ...PROP_STRING }],
17
17
  ['name', PROP_STRING],
18
18
  ['orderby', PROP_STRING],
19
19
  ['required', PROP_BOOLEAN],
@@ -25,4 +25,4 @@ export const registerProps = () => {
25
25
  registerFormWidget(FormWidgetType.SWITCH, new Map(switchProps));
26
26
  registerFormWidget(FormWidgetType.TOGGLE, new Map(switchProps));
27
27
  };
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLnByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2RlZmF1bHQvc3JjL3N3aXRjaC9zd2l0Y2gucHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNuSCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsQ0FDOUI7SUFDSSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUM7SUFDdEIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDO0lBQzFCLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQztJQUMxQixDQUFDLFNBQVMsRUFBRSxFQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLFFBQVEsRUFBQyxDQUFDO0lBQ25ELENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDO0lBQzdCLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQztJQUMxQixDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUM7SUFDMUIsQ0FBQyxtQkFBbUIsRUFBRSxXQUFXLENBQUM7SUFDbEMsQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDO0lBQzdCLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQztJQUNyQixDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUM7SUFDMUIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDO0lBQzFCLENBQUMsa0JBQWtCLEVBQUUsRUFBQyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxXQUFXLEVBQUMsQ0FBQztJQUNqRSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUM7SUFDckIsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDO0lBQ3hCLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQztJQUMxQixDQUFDLE1BQU0sRUFBRSxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxZQUFZLEVBQUMsQ0FBQztJQUN4QyxDQUFDLFVBQVUsRUFBRSxFQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxXQUFXLEVBQUMsQ0FBQztDQUMzQyxDQUNKLENBQUM7QUFHRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFO0lBQzlCLFFBQVEsQ0FDSixXQUFXLEVBQ1gsV0FBVyxDQUNkLENBQUM7SUFDRixrQkFBa0IsQ0FDZCxjQUFjLENBQUMsTUFBTSxFQUNyQixJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FDdkIsQ0FBQztJQUNGLGtCQUFrQixDQUNkLGNBQWMsQ0FBQyxNQUFNLEVBQ3JCLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUN2QixDQUFDO0FBQ04sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQUk9QX0FOWSwgUFJPUF9CT09MRUFOLCBQUk9QX05VTUJFUiwgUFJPUF9TVFJJTkcsIHJlZ2lzdGVyLCByZWdpc3RlckZvcm1XaWRnZXR9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHtGb3JtV2lkZ2V0VHlwZX0gZnJvbSAnQHdtL2NvcmUnO1xuXG5leHBvcnQgY29uc3Qgc3dpdGNoUHJvcHMgPSBuZXcgTWFwKFxuICAgIFtcbiAgICAgICAgWydjbGFzcycsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgWydjb21wYXJlYnknLCBQUk9QX1NUUklOR10sXG4gICAgICAgIFsnZGF0YWZpZWxkJywgUFJPUF9TVFJJTkddLFxuICAgICAgICBbJ2RhdGFzZXQnLCB7dmFsdWU6ICd5ZXMsIG5vLCBtYXliZScsIC4uLlBST1BfQU5ZfV0sXG4gICAgICAgIFsnZGF0YXZhbHVlc291cmNlJywgUFJPUF9BTlldLFxuICAgICAgICBbJ2RhdGF2YWx1ZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgWydkaXNhYmxlZCcsIFBST1BfQk9PTEVBTl0sXG4gICAgICAgIFsnZGlzcGxheWV4cHJlc3Npb24nLCBQUk9QX1NUUklOR10sXG4gICAgICAgIFsnZGlzcGxheWZpZWxkJywgUFJPUF9TVFJJTkddLFxuICAgICAgICBbJ2hpbnQnLCBQUk9QX1NUUklOR10sXG4gICAgICAgIFsnYXJpYWxhYmVsJywgUFJPUF9TVFJJTkddLFxuICAgICAgICBbJ2ljb25jbGFzcycsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgWydjaGVja2VkaWNvbmNsYXNzJywge3ZhbHVlOiAnd20tc2wtbCBzbC1jaGVjaycsIC4uLlBST1BfU1RSSU5HfV0sXG4gICAgICAgIFsnbmFtZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgWydvcmRlcmJ5JywgUFJPUF9TVFJJTkddLFxuICAgICAgICBbJ3JlcXVpcmVkJywgUFJPUF9CT09MRUFOXSxcbiAgICAgICAgWydzaG93Jywge3ZhbHVlOiB0cnVlLCAuLi5QUk9QX0JPT0xFQU59XSxcbiAgICAgICAgWyd0YWJpbmRleCcsIHt2YWx1ZTogMCwgLi4uUFJPUF9OVU1CRVJ9XVxuICAgIF1cbik7XG5cblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyUHJvcHMgPSAoKSA9PiB7XG4gICAgcmVnaXN0ZXIoXG4gICAgICAgICd3bS1zd2l0Y2gnLFxuICAgICAgICBzd2l0Y2hQcm9wc1xuICAgICk7XG4gICAgcmVnaXN0ZXJGb3JtV2lkZ2V0KFxuICAgICAgICBGb3JtV2lkZ2V0VHlwZS5TV0lUQ0gsXG4gICAgICAgIG5ldyBNYXAoc3dpdGNoUHJvcHMpXG4gICAgKTtcbiAgICByZWdpc3RlckZvcm1XaWRnZXQoXG4gICAgICAgIEZvcm1XaWRnZXRUeXBlLlRPR0dMRSxcbiAgICAgICAgbmV3IE1hcChzd2l0Y2hQcm9wcylcbiAgICApO1xufTtcbiJdfQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLnByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2RlZmF1bHQvc3JjL3N3aXRjaC9zd2l0Y2gucHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNuSCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsQ0FDOUI7SUFDSSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUM7SUFDdEIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDO0lBQzFCLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQztJQUMxQixDQUFDLFNBQVMsRUFBRSxFQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLFFBQVEsRUFBQyxDQUFDO0lBQ25ELENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDO0lBQzdCLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQztJQUMxQixDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUM7SUFDMUIsQ0FBQyxtQkFBbUIsRUFBRSxXQUFXLENBQUM7SUFDbEMsQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDO0lBQzdCLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQztJQUNyQixDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUM7SUFDMUIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDO0lBQzFCLENBQUMsa0JBQWtCLEVBQUUsRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsV0FBVyxFQUFDLENBQUM7SUFDakQsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDO0lBQ3JCLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQztJQUN4QixDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUM7SUFDMUIsQ0FBQyxNQUFNLEVBQUUsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsWUFBWSxFQUFDLENBQUM7SUFDeEMsQ0FBQyxVQUFVLEVBQUUsRUFBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsV0FBVyxFQUFDLENBQUM7Q0FDM0MsQ0FDSixDQUFDO0FBR0YsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEdBQUcsRUFBRTtJQUM5QixRQUFRLENBQ0osV0FBVyxFQUNYLFdBQVcsQ0FDZCxDQUFDO0lBQ0Ysa0JBQWtCLENBQ2QsY0FBYyxDQUFDLE1BQU0sRUFDckIsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLENBQ3ZCLENBQUM7SUFDRixrQkFBa0IsQ0FDZCxjQUFjLENBQUMsTUFBTSxFQUNyQixJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FDdkIsQ0FBQztBQUNOLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UFJPUF9BTlksIFBST1BfQk9PTEVBTiwgUFJPUF9OVU1CRVIsIFBST1BfU1RSSU5HLCByZWdpc3RlciwgcmVnaXN0ZXJGb3JtV2lkZ2V0fSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7Rm9ybVdpZGdldFR5cGV9IGZyb20gJ0B3bS9jb3JlJztcblxuZXhwb3J0IGNvbnN0IHN3aXRjaFByb3BzID0gbmV3IE1hcChcbiAgICBbXG4gICAgICAgIFsnY2xhc3MnLCBQUk9QX1NUUklOR10sXG4gICAgICAgIFsnY29tcGFyZWJ5JywgUFJPUF9TVFJJTkddLFxuICAgICAgICBbJ2RhdGFmaWVsZCcsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgWydkYXRhc2V0Jywge3ZhbHVlOiAneWVzLCBubywgbWF5YmUnLCAuLi5QUk9QX0FOWX1dLFxuICAgICAgICBbJ2RhdGF2YWx1ZXNvdXJjZScsIFBST1BfQU5ZXSxcbiAgICAgICAgWydkYXRhdmFsdWUnLCBQUk9QX1NUUklOR10sXG4gICAgICAgIFsnZGlzYWJsZWQnLCBQUk9QX0JPT0xFQU5dLFxuICAgICAgICBbJ2Rpc3BsYXlleHByZXNzaW9uJywgUFJPUF9TVFJJTkddLFxuICAgICAgICBbJ2Rpc3BsYXlmaWVsZCcsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgWydoaW50JywgUFJPUF9TVFJJTkddLFxuICAgICAgICBbJ2FyaWFsYWJlbCcsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgWydpY29uY2xhc3MnLCBQUk9QX1NUUklOR10sXG4gICAgICAgIFsnY2hlY2tlZGljb25jbGFzcycsIHt2YWx1ZTogJycsIC4uLlBST1BfU1RSSU5HfV0sXG4gICAgICAgIFsnbmFtZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgWydvcmRlcmJ5JywgUFJPUF9TVFJJTkddLFxuICAgICAgICBbJ3JlcXVpcmVkJywgUFJPUF9CT09MRUFOXSxcbiAgICAgICAgWydzaG93Jywge3ZhbHVlOiB0cnVlLCAuLi5QUk9QX0JPT0xFQU59XSxcbiAgICAgICAgWyd0YWJpbmRleCcsIHt2YWx1ZTogMCwgLi4uUFJPUF9OVU1CRVJ9XVxuICAgIF1cbik7XG5cblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyUHJvcHMgPSAoKSA9PiB7XG4gICAgcmVnaXN0ZXIoXG4gICAgICAgICd3bS1zd2l0Y2gnLFxuICAgICAgICBzd2l0Y2hQcm9wc1xuICAgICk7XG4gICAgcmVnaXN0ZXJGb3JtV2lkZ2V0KFxuICAgICAgICBGb3JtV2lkZ2V0VHlwZS5TV0lUQ0gsXG4gICAgICAgIG5ldyBNYXAoc3dpdGNoUHJvcHMpXG4gICAgKTtcbiAgICByZWdpc3RlckZvcm1XaWRnZXQoXG4gICAgICAgIEZvcm1XaWRnZXRUeXBlLlRPR0dMRSxcbiAgICAgICAgbmV3IE1hcChzd2l0Y2hQcm9wcylcbiAgICApO1xufTtcbiJdfQ==
@@ -739,7 +739,7 @@ class DatasetAwareFormComponent extends BaseFormCustomComponent {
739
739
  }
740
740
  });
741
741
  this.displayValue = this.multiple ? displayValues : displayValues[0] || '';
742
- if (this.viewParent.containerWidget)
742
+ if (this.viewParent.containerWidget && this.viewParent.containerWidget._isCustom)
743
743
  this.viewParent.containerWidget.displayValue = this.displayValue.length ? this.displayValue : '';
744
744
  }
745
745
  // This function parses the dataset and extracts the displayOptions from parsed dataset.
@@ -1059,7 +1059,7 @@ class CheckboxsetComponent extends DatasetAwareFormComponent {
1059
1059
  }
1060
1060
  triggerInvokeOnChange(keys, $event) {
1061
1061
  this.modelByKey = keys;
1062
- if (this.viewParent.containerWidget)
1062
+ if (this.viewParent.containerWidget && this.viewParent.containerWidget.updateDataValue)
1063
1063
  this.viewParent.containerWidget.updateDataValue(this.datavalue);
1064
1064
  this.invokeOnTouched();
1065
1065
  // invoke on datavalue change.
@@ -2129,7 +2129,7 @@ class RadiosetComponent extends DatasetAwareFormComponent {
2129
2129
  }
2130
2130
  triggerInvokeOnChange(key, $event) {
2131
2131
  this.modelByKey = key;
2132
- if (this.viewParent.containerWidget)
2132
+ if (this.viewParent.containerWidget && this.viewParent.containerWidget.updateDataValue)
2133
2133
  this.viewParent.containerWidget.updateDataValue(this.datavalue);
2134
2134
  this.invokeOnTouched();
2135
2135
  // invoke on datavalue change.
@@ -2473,7 +2473,7 @@ const switchProps = new Map([
2473
2473
  ['hint', PROP_STRING],
2474
2474
  ['arialabel', PROP_STRING],
2475
2475
  ['iconclass', PROP_STRING],
2476
- ['checkediconclass', { value: 'wm-sl-l sl-check', ...PROP_STRING }],
2476
+ ['checkediconclass', { value: '', ...PROP_STRING }],
2477
2477
  ['name', PROP_STRING],
2478
2478
  ['orderby', PROP_STRING],
2479
2479
  ['required', PROP_BOOLEAN],
@@ -2519,7 +2519,7 @@ function SwitchComponent_a_1_Template(rf, ctx) { if (rf & 1) {
2519
2519
  i0.ɵɵadvance();
2520
2520
  i0.ɵɵproperty("ngIf", opt_r3.dataObject && opt_r3.dataObject[ctx_r4.iconclass] && !opt_r3.selected);
2521
2521
  i0.ɵɵadvance();
2522
- i0.ɵɵproperty("ngIf", opt_r3.selected);
2522
+ i0.ɵɵproperty("ngIf", opt_r3.selected && ctx_r4.checkediconclass);
2523
2523
  i0.ɵɵadvance();
2524
2524
  i0.ɵɵproperty("textContent", opt_r3[ctx_r4.displayfield] || opt_r3.label);
2525
2525
  } }
@@ -2545,7 +2545,7 @@ class SwitchComponent extends DatasetAwareFormComponent {
2545
2545
  super(inj, WIDGET_CONFIG$6, explicitContext);
2546
2546
  this.options = [];
2547
2547
  this.multiple = this.getAttr("multiple") === "true";
2548
- this.checkediconclass = this.getAttr("checkediconclass") || 'wm-sl-l sl-check';
2548
+ this.checkediconclass = this.getAttr("checkediconclass");
2549
2549
  this._debounceSetSelectedValue = debounce$1((val) => {
2550
2550
  this.setSelectedValue();
2551
2551
  this.updateHighlighter(val);
@@ -2684,7 +2684,7 @@ class SwitchComponent extends DatasetAwareFormComponent {
2684
2684
  args: [{ selector: '[wmSwitch]', providers: [
2685
2685
  provideAs(SwitchComponent, NG_VALUE_ACCESSOR, true),
2686
2686
  provideAsWidgetRef(SwitchComponent)
2687
- ], exportAs: 'wmSwitch', template: "<div role=\"group\" class=\"btn-group btn-group-justified\" [ngClass]=\"{'multi-select': multiple}\">\n <a *ngFor=\"let opt of datasetItems; let $index = index;\"\n focus-target\n href=\"javascript:void(0);\"\n class=\"btn btn-default\"\n [name]=\"'wm-switch-' + opt.key\"\n role=\"button\"\n [ngClass]=\"{'selected': opt.selected, 'disabled': disabled}\"\n [attr.aria-pressed]=\"opt.selected ? true : false\"\n (click)=\"selectOpt($event, $index, opt)\"\n >\n <i *ngIf=\"opt.dataObject && opt.dataObject[iconclass] && !opt.selected\" aria-hidden=\"true\" [ngClass]=\"['app-icon', opt.dataObject[iconclass] || opt['icon']]\"></i>\n <i *ngIf=\"opt.selected\" aria-hidden=\"true\" [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\" [textContent]=\"opt[displayfield] || opt.label\"></span>\n </a>\n</div>\n<span [title]=\"selectedItem ? selectedItem.label : modelByKey\" aria-hidden=\"true\"\n class=\"btn btn-primary app-switch-overlay switch-handle\" *ngIf=\"!multiple\">\n <i [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\">{{selectedItem ? selectedItem.label : modelByKey}}</span>\n</span>\n<input [name]=\"name\" class=\"model-holder ng-hide\" [disabled]=\"disabled\" [value]=\"modelByKey\" [required]=\"required\" aria-hidden=\"true\">\n" }]
2687
+ ], exportAs: 'wmSwitch', template: "<div role=\"group\" class=\"btn-group btn-group-justified\" [ngClass]=\"{'multi-select': multiple}\">\n <a *ngFor=\"let opt of datasetItems; let $index = index;\"\n focus-target\n href=\"javascript:void(0);\"\n class=\"btn btn-default\"\n [name]=\"'wm-switch-' + opt.key\"\n role=\"button\"\n [ngClass]=\"{'selected': opt.selected, 'disabled': disabled}\"\n [attr.aria-pressed]=\"opt.selected ? true : false\"\n (click)=\"selectOpt($event, $index, opt)\"\n >\n <i *ngIf=\"opt.dataObject && opt.dataObject[iconclass] && !opt.selected\" aria-hidden=\"true\" [ngClass]=\"['app-icon', opt.dataObject[iconclass] || opt['icon']]\"></i>\n <i *ngIf=\"opt.selected && checkediconclass\" aria-hidden=\"true\" [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\" [textContent]=\"opt[displayfield] || opt.label\"></span>\n </a>\n</div>\n<span [title]=\"selectedItem ? selectedItem.label : modelByKey\" aria-hidden=\"true\"\n class=\"btn btn-primary app-switch-overlay switch-handle\" *ngIf=\"!multiple\">\n <i [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\">{{selectedItem ? selectedItem.label : modelByKey}}</span>\n</span>\n<input [name]=\"name\" class=\"model-holder ng-hide\" [disabled]=\"disabled\" [value]=\"modelByKey\" [required]=\"required\" aria-hidden=\"true\">\n" }]
2688
2688
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
2689
2689
  type: Inject,
2690
2690
  args: ['EXPLICIT_CONTEXT']