@taiga-ui/kit 2.27.0 → 2.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. package/README.md +4 -5
  2. package/abstract/slider/slider.d.ts +1 -1
  3. package/abstract/taiga-ui-kit-abstract.metadata.json +1 -1
  4. package/bundles/taiga-ui-kit-abstract.umd.js +1 -1
  5. package/bundles/taiga-ui-kit-abstract.umd.js.map +1 -1
  6. package/bundles/taiga-ui-kit-abstract.umd.min.js +1 -1
  7. package/bundles/taiga-ui-kit-abstract.umd.min.js.map +1 -1
  8. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js.map +1 -1
  9. package/bundles/taiga-ui-kit-components-checkbox-block.umd.min.js.map +1 -1
  10. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js.map +1 -1
  11. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.min.js.map +1 -1
  12. package/bundles/taiga-ui-kit-components-field-error.umd.js +20 -8
  13. package/bundles/taiga-ui-kit-components-field-error.umd.js.map +1 -1
  14. package/bundles/taiga-ui-kit-components-field-error.umd.min.js +2 -2
  15. package/bundles/taiga-ui-kit-components-field-error.umd.min.js.map +1 -1
  16. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  17. package/bundles/taiga-ui-kit-components-input-count.umd.min.js.map +1 -1
  18. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +14 -7
  19. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  20. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js +2 -2
  21. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js.map +1 -1
  22. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +27 -10
  23. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  24. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js +2 -2
  25. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js.map +1 -1
  26. package/bundles/taiga-ui-kit-components-input-date.umd.js +13 -6
  27. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  28. package/bundles/taiga-ui-kit-components-input-date.umd.min.js +2 -2
  29. package/bundles/taiga-ui-kit-components-input-date.umd.min.js.map +1 -1
  30. package/bundles/taiga-ui-kit-components-input-inline.umd.js +2 -2
  31. package/bundles/taiga-ui-kit-components-input-inline.umd.js.map +1 -1
  32. package/bundles/taiga-ui-kit-components-input-inline.umd.min.js +1 -1
  33. package/bundles/taiga-ui-kit-components-input-inline.umd.min.js.map +1 -1
  34. package/bundles/taiga-ui-kit-components-input-number.umd.js +4 -6
  35. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  36. package/bundles/taiga-ui-kit-components-input-number.umd.min.js +1 -1
  37. package/bundles/taiga-ui-kit-components-input-number.umd.min.js.map +1 -1
  38. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  39. package/bundles/taiga-ui-kit-components-input-password.umd.min.js.map +1 -1
  40. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +9 -7
  41. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  42. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js +1 -1
  43. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js.map +1 -1
  44. package/bundles/taiga-ui-kit-components-input-phone.umd.js +2 -2
  45. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  46. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js +1 -1
  47. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js.map +1 -1
  48. package/bundles/taiga-ui-kit-components-input-tag.umd.js +1 -1
  49. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  50. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +1 -1
  51. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  52. package/bundles/taiga-ui-kit-components-multi-select.umd.js +1 -1
  53. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  54. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js +1 -1
  55. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
  56. package/bundles/taiga-ui-kit-components-progress.umd.js.map +1 -1
  57. package/bundles/taiga-ui-kit-components-progress.umd.min.js.map +1 -1
  58. package/bundles/taiga-ui-kit-components-select.umd.js +2 -2
  59. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  60. package/bundles/taiga-ui-kit-components-select.umd.min.js +1 -1
  61. package/bundles/taiga-ui-kit-components-select.umd.min.js.map +1 -1
  62. package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
  63. package/bundles/taiga-ui-kit-components-tag.umd.min.js.map +1 -1
  64. package/bundles/taiga-ui-kit-components-toggle.umd.js.map +1 -1
  65. package/bundles/taiga-ui-kit-components-toggle.umd.min.js.map +1 -1
  66. package/bundles/taiga-ui-kit-components-tree.umd.js +23 -13
  67. package/bundles/taiga-ui-kit-components-tree.umd.js.map +1 -1
  68. package/bundles/taiga-ui-kit-components-tree.umd.min.js +2 -2
  69. package/bundles/taiga-ui-kit-components-tree.umd.min.js.map +1 -1
  70. package/bundles/taiga-ui-kit-constants.umd.js +8 -0
  71. package/bundles/taiga-ui-kit-constants.umd.js.map +1 -1
  72. package/bundles/taiga-ui-kit-constants.umd.min.js.map +1 -1
  73. package/bundles/taiga-ui-kit-directives-lazy-loading.umd.js.map +1 -1
  74. package/bundles/taiga-ui-kit-directives-lazy-loading.umd.min.js.map +1 -1
  75. package/bundles/taiga-ui-kit-pipes-stringify.umd.js.map +1 -1
  76. package/bundles/taiga-ui-kit-pipes-stringify.umd.min.js.map +1 -1
  77. package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
  78. package/bundles/taiga-ui-kit-tokens.umd.min.js.map +1 -1
  79. package/bundles/taiga-ui-kit-utils-mask.umd.js +44 -13
  80. package/bundles/taiga-ui-kit-utils-mask.umd.js.map +1 -1
  81. package/bundles/taiga-ui-kit-utils-mask.umd.min.js +2 -2
  82. package/bundles/taiga-ui-kit-utils-mask.umd.min.js.map +1 -1
  83. package/components/checkbox-block/checkbox-block.component.d.ts +1 -1
  84. package/components/checkbox-labeled/checkbox-labeled.component.d.ts +1 -1
  85. package/components/field-error/field-error.component.d.ts +3 -2
  86. package/components/field-error/taiga-ui-kit-components-field-error.metadata.json +1 -1
  87. package/components/input-date/input-date.component.d.ts +2 -1
  88. package/components/input-date/taiga-ui-kit-components-input-date.metadata.json +1 -1
  89. package/components/input-date-range/input-date-range.component.d.ts +2 -1
  90. package/components/input-date-range/taiga-ui-kit-components-input-date-range.metadata.json +1 -1
  91. package/components/input-date-time/input-date-time.component.d.ts +2 -1
  92. package/components/input-date-time/taiga-ui-kit-components-input-date-time.metadata.json +1 -1
  93. package/components/input-inline/taiga-ui-kit-components-input-inline.metadata.json +1 -1
  94. package/components/input-number/taiga-ui-kit-components-input-number.metadata.json +1 -1
  95. package/components/input-phone-international/country-iso-code.d.ts +1 -1
  96. package/components/input-phone-international/taiga-ui-kit-components-input-phone-international.metadata.json +1 -1
  97. package/components/input-tag/input-tag.component.d.ts +1 -1
  98. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  99. package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
  100. package/components/select/taiga-ui-kit-components-select.metadata.json +1 -1
  101. package/components/tree/components/tree/tree.component.d.ts +3 -1
  102. package/components/tree/taiga-ui-kit-components-tree.metadata.json +1 -1
  103. package/constants/masks.d.ts +8 -0
  104. package/constants/taiga-ui-kit-constants.metadata.json +1 -1
  105. package/directives/lazy-loading/lazy-loading.service.d.ts +1 -1
  106. package/esm2015/abstract/input-slider.js +2 -2
  107. package/esm2015/abstract/slider/slider.js +1 -1
  108. package/esm2015/components/checkbox-block/checkbox-block.component.js +1 -1
  109. package/esm2015/components/checkbox-labeled/checkbox-labeled.component.js +1 -1
  110. package/esm2015/components/field-error/field-error.component.js +15 -6
  111. package/esm2015/components/input-count/input-count.component.js +1 -1
  112. package/esm2015/components/input-date/input-date.component.js +16 -11
  113. package/esm2015/components/input-date-range/input-date-range.component.js +17 -12
  114. package/esm2015/components/input-date-time/input-date-time.component.js +31 -14
  115. package/esm2015/components/input-inline/input-inline.component.js +3 -3
  116. package/esm2015/components/input-number/input-number.component.js +7 -9
  117. package/esm2015/components/input-password/input-password.component.js +1 -1
  118. package/esm2015/components/input-phone/input-phone.component.js +3 -3
  119. package/esm2015/components/input-phone-international/const/countries.js +8 -6
  120. package/esm2015/components/input-phone-international/country-iso-code.js +2 -2
  121. package/esm2015/components/input-phone-international/input-phone-international.component.js +2 -2
  122. package/esm2015/components/input-tag/input-tag.component.js +2 -2
  123. package/esm2015/components/multi-select/multi-select.component.js +2 -2
  124. package/esm2015/components/progress/pipes/abstract-color-segments.js +1 -1
  125. package/esm2015/components/select/select.component.js +3 -3
  126. package/esm2015/components/tag/tag.component.js +2 -2
  127. package/esm2015/components/toggle/toggle.component.js +1 -1
  128. package/esm2015/components/tree/components/tree/tree.component.js +11 -6
  129. package/esm2015/components/tree/tree.module.js +9 -2
  130. package/esm2015/constants/masks.js +9 -1
  131. package/esm2015/directives/lazy-loading/lazy-loading.service.js +1 -1
  132. package/esm2015/pipes/stringify/stringify.pipe.js +1 -1
  133. package/esm2015/tokens/validation-errors.js +1 -1
  134. package/esm2015/utils/mask/create-auto-corrected-date-pipe.js +6 -4
  135. package/esm2015/utils/mask/create-auto-corrected-date-range-pipe.js +9 -6
  136. package/esm2015/utils/mask/create-auto-corrected-date-time-pipe.js +6 -6
  137. package/esm2015/utils/mask/create-auto-corrected-time-pipe.js +2 -2
  138. package/esm2015/utils/mask/create-date-mask.js +16 -0
  139. package/esm2015/utils/mask/create-date-range-mask.js +14 -0
  140. package/esm2015/utils/mask/index.js +3 -1
  141. package/esm5/abstract/input-slider.js +2 -2
  142. package/esm5/abstract/slider/slider.js +1 -1
  143. package/esm5/components/checkbox-block/checkbox-block.component.js +1 -1
  144. package/esm5/components/checkbox-labeled/checkbox-labeled.component.js +1 -1
  145. package/esm5/components/field-error/field-error.component.js +19 -6
  146. package/esm5/components/input-count/input-count.component.js +1 -1
  147. package/esm5/components/input-date/input-date.component.js +18 -11
  148. package/esm5/components/input-date-range/input-date-range.component.js +19 -12
  149. package/esm5/components/input-date-time/input-date-time.component.js +31 -14
  150. package/esm5/components/input-inline/input-inline.component.js +3 -3
  151. package/esm5/components/input-number/input-number.component.js +6 -8
  152. package/esm5/components/input-password/input-password.component.js +1 -1
  153. package/esm5/components/input-phone/input-phone.component.js +3 -3
  154. package/esm5/components/input-phone-international/const/countries.js +8 -6
  155. package/esm5/components/input-phone-international/country-iso-code.js +2 -2
  156. package/esm5/components/input-phone-international/input-phone-international.component.js +2 -2
  157. package/esm5/components/input-tag/input-tag.component.js +2 -2
  158. package/esm5/components/multi-select/multi-select.component.js +2 -2
  159. package/esm5/components/progress/pipes/abstract-color-segments.js +1 -1
  160. package/esm5/components/select/select.component.js +3 -3
  161. package/esm5/components/tag/tag.component.js +1 -1
  162. package/esm5/components/toggle/toggle.component.js +1 -1
  163. package/esm5/components/tree/components/tree/tree.component.js +15 -9
  164. package/esm5/components/tree/tree.module.js +9 -2
  165. package/esm5/constants/masks.js +9 -1
  166. package/esm5/directives/lazy-loading/lazy-loading.service.js +1 -1
  167. package/esm5/pipes/stringify/stringify.pipe.js +1 -1
  168. package/esm5/tokens/validation-errors.js +1 -1
  169. package/esm5/utils/mask/create-auto-corrected-date-pipe.js +6 -4
  170. package/esm5/utils/mask/create-auto-corrected-date-range-pipe.js +9 -6
  171. package/esm5/utils/mask/create-auto-corrected-date-time-pipe.js +6 -6
  172. package/esm5/utils/mask/create-auto-corrected-time-pipe.js +2 -2
  173. package/esm5/utils/mask/create-date-mask.js +17 -0
  174. package/esm5/utils/mask/create-date-range-mask.js +13 -0
  175. package/esm5/utils/mask/index.js +3 -1
  176. package/fesm2015/taiga-ui-kit-abstract.js +1 -1
  177. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  178. package/fesm2015/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  179. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  180. package/fesm2015/taiga-ui-kit-components-field-error.js +14 -5
  181. package/fesm2015/taiga-ui-kit-components-field-error.js.map +1 -1
  182. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  183. package/fesm2015/taiga-ui-kit-components-input-date-range.js +16 -11
  184. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  185. package/fesm2015/taiga-ui-kit-components-input-date-time.js +31 -14
  186. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  187. package/fesm2015/taiga-ui-kit-components-input-date.js +15 -10
  188. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  189. package/fesm2015/taiga-ui-kit-components-input-inline.js +2 -2
  190. package/fesm2015/taiga-ui-kit-components-input-inline.js.map +1 -1
  191. package/fesm2015/taiga-ui-kit-components-input-number.js +6 -8
  192. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  193. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  194. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +9 -7
  195. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  196. package/fesm2015/taiga-ui-kit-components-input-phone.js +2 -2
  197. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  198. package/fesm2015/taiga-ui-kit-components-input-tag.js +1 -1
  199. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  200. package/fesm2015/taiga-ui-kit-components-multi-select.js +1 -1
  201. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  202. package/fesm2015/taiga-ui-kit-components-progress.js.map +1 -1
  203. package/fesm2015/taiga-ui-kit-components-select.js +2 -2
  204. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  205. package/fesm2015/taiga-ui-kit-components-tag.js +1 -1
  206. package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
  207. package/fesm2015/taiga-ui-kit-components-toggle.js.map +1 -1
  208. package/fesm2015/taiga-ui-kit-components-tree.js +17 -8
  209. package/fesm2015/taiga-ui-kit-components-tree.js.map +1 -1
  210. package/fesm2015/taiga-ui-kit-constants.js +8 -0
  211. package/fesm2015/taiga-ui-kit-constants.js.map +1 -1
  212. package/fesm2015/taiga-ui-kit-directives-lazy-loading.js.map +1 -1
  213. package/fesm2015/taiga-ui-kit-pipes-stringify.js.map +1 -1
  214. package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
  215. package/fesm2015/taiga-ui-kit-utils-mask.js +46 -15
  216. package/fesm2015/taiga-ui-kit-utils-mask.js.map +1 -1
  217. package/fesm5/taiga-ui-kit-abstract.js +1 -1
  218. package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
  219. package/fesm5/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  220. package/fesm5/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  221. package/fesm5/taiga-ui-kit-components-field-error.js +18 -5
  222. package/fesm5/taiga-ui-kit-components-field-error.js.map +1 -1
  223. package/fesm5/taiga-ui-kit-components-input-count.js.map +1 -1
  224. package/fesm5/taiga-ui-kit-components-input-date-range.js +18 -11
  225. package/fesm5/taiga-ui-kit-components-input-date-range.js.map +1 -1
  226. package/fesm5/taiga-ui-kit-components-input-date-time.js +31 -14
  227. package/fesm5/taiga-ui-kit-components-input-date-time.js.map +1 -1
  228. package/fesm5/taiga-ui-kit-components-input-date.js +17 -10
  229. package/fesm5/taiga-ui-kit-components-input-date.js.map +1 -1
  230. package/fesm5/taiga-ui-kit-components-input-inline.js +2 -2
  231. package/fesm5/taiga-ui-kit-components-input-inline.js.map +1 -1
  232. package/fesm5/taiga-ui-kit-components-input-number.js +5 -7
  233. package/fesm5/taiga-ui-kit-components-input-number.js.map +1 -1
  234. package/fesm5/taiga-ui-kit-components-input-password.js.map +1 -1
  235. package/fesm5/taiga-ui-kit-components-input-phone-international.js +9 -7
  236. package/fesm5/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  237. package/fesm5/taiga-ui-kit-components-input-phone.js +2 -2
  238. package/fesm5/taiga-ui-kit-components-input-phone.js.map +1 -1
  239. package/fesm5/taiga-ui-kit-components-input-tag.js +1 -1
  240. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  241. package/fesm5/taiga-ui-kit-components-multi-select.js +1 -1
  242. package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
  243. package/fesm5/taiga-ui-kit-components-progress.js.map +1 -1
  244. package/fesm5/taiga-ui-kit-components-select.js +2 -2
  245. package/fesm5/taiga-ui-kit-components-select.js.map +1 -1
  246. package/fesm5/taiga-ui-kit-components-tag.js.map +1 -1
  247. package/fesm5/taiga-ui-kit-components-toggle.js.map +1 -1
  248. package/fesm5/taiga-ui-kit-components-tree.js +21 -11
  249. package/fesm5/taiga-ui-kit-components-tree.js.map +1 -1
  250. package/fesm5/taiga-ui-kit-constants.js +8 -0
  251. package/fesm5/taiga-ui-kit-constants.js.map +1 -1
  252. package/fesm5/taiga-ui-kit-directives-lazy-loading.js.map +1 -1
  253. package/fesm5/taiga-ui-kit-pipes-stringify.js.map +1 -1
  254. package/fesm5/taiga-ui-kit-tokens.js.map +1 -1
  255. package/fesm5/taiga-ui-kit-utils-mask.js +44 -15
  256. package/fesm5/taiga-ui-kit-utils-mask.js.map +1 -1
  257. package/package.json +6 -6
  258. package/tokens/taiga-ui-kit-tokens.metadata.json +1 -1
  259. package/tokens/validation-errors.d.ts +2 -1
  260. package/utils/mask/create-auto-corrected-date-pipe.d.ts +7 -3
  261. package/utils/mask/create-auto-corrected-date-range-pipe.d.ts +7 -2
  262. package/utils/mask/create-auto-corrected-date-time-pipe.d.ts +8 -3
  263. package/utils/mask/create-auto-corrected-time-pipe.d.ts +1 -1
  264. package/utils/mask/create-date-mask.d.ts +3 -0
  265. package/utils/mask/create-date-range-mask.d.ts +3 -0
  266. package/utils/mask/index.d.ts +2 -0
  267. package/utils/mask/taiga-ui-kit-utils-mask.metadata.json +1 -1
@@ -300,4 +300,4 @@ var AbstractTuiSlider = /** @class */ (function (_super) {
300
300
  return AbstractTuiSlider;
301
301
  }(AbstractTuiControl));
302
302
  export { AbstractTuiSlider };
303
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9hYnN0cmFjdC8iLCJzb3VyY2VzIjpbInNsaWRlci9zbGlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsS0FBSyxFQUNMLDBCQUEwQixFQUMxQixRQUFRLEVBQ1IsS0FBSyxFQUNMLGdCQUFnQixFQUNoQixjQUFjLEVBR2QsY0FBYyxHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUgsaUJBQWlCLEdBR3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFdkQsT0FBTyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE1BQU0sQ0FBQyxJQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQztBQUN6QyxNQUFNLENBQUMsSUFBTSxTQUFTLEdBQTRCO0lBQzlDLENBQUMsRUFBRSxDQUFDO0lBQ0osQ0FBQyxFQUFFLEVBQUU7Q0FDUixDQUFDO0FBRUY7Ozs7R0FJRztBQUVIO0lBQ1kscUNBQXFCO0lBMEQ3QiwyQkFDSSxTQUEyQixFQUMzQixpQkFBb0MsRUFDbkIsV0FBcUIsRUFFN0IsWUFBMEM7UUFMdkQsWUFPSSxrQkFBTSxTQUFTLEVBQUUsaUJBQWlCLENBQUMsU0FDdEM7UUFMb0IsaUJBQVcsR0FBWCxXQUFXLENBQVU7UUFFN0Isa0JBQVksR0FBWixZQUFZLENBQThCO1FBNUR2RCxxRUFBcUU7UUFDN0Qsa0JBQVksR0FBRyxJQUFJLE9BQU8sRUFFL0IsQ0FBQztRQVVKLFNBQUcsR0FBRyxDQUFDLENBQUM7UUFJUixTQUFHLEdBQUcsUUFBUSxDQUFDO1FBSWYsY0FBUSxHQUFHLENBQUMsQ0FBQztRQUliLFdBQUssR0FBRyxDQUFDLENBQUM7UUFJVixhQUFPLEdBQUcsQ0FBQyxDQUFDO1FBY1osVUFBSSxHQUFhLEdBQUcsQ0FBQztRQUlyQixjQUFRLEdBQXVCLElBQUksQ0FBQztRQUVwQyxzQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFekIsdUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBRTFCLGtCQUFZLEdBQWtDLElBQUksQ0FBQzs7SUFVbkQsQ0FBQztJQTdCRCxzQkFBSSx3Q0FBUztRQUhiLCtCQUErQjthQUcvQixVQUFjLFNBQXVEO1lBQ2pFLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7Z0JBQ3hDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUM7Z0JBQzlCLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDcEIsQ0FBQzs7O09BQUE7SUE0QkQsc0JBQUksd0NBQVM7YUFBYjtZQUNJLE9BQU8sSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDN0IsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSx1Q0FBUTthQUFaO1lBQ0ksT0FBTyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUMxQixDQUFDOzs7T0FBQTtJQUVELHNCQUFJLHFDQUFNO2FBQVY7WUFDSSxPQUFPLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUMvQixDQUFDOzs7T0FBQTtJQUVELHNCQUFJLDJDQUFZO2FBQWhCO1lBQ0ksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7YUFDekI7WUFFRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUM7UUFDNUUsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSw4Q0FBZTthQUFuQjtZQUNJLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUM7UUFDbEUsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSwrQ0FBZ0I7YUFBcEI7WUFDSSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDO1FBQ2pFLENBQUM7OztPQUFBO0lBT0Qsb0NBQVEsR0FBUjtRQUFBLGlCQXdFQztRQXZFRyxpQkFBTSxRQUFRLFdBQUUsQ0FBQztRQUVqQixJQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNsRSxJQUFNLFNBQVMsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM5RCxJQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNsRSxJQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNoRSxJQUFJLGtCQUEyQixDQUFDO1FBRWhDLElBQUksQ0FBQyxZQUFZO2FBQ1osSUFBSSxDQUNELEdBQUcsQ0FBQyxVQUFDLEtBQThCO1lBQy9CLElBQU0sSUFBSSxHQUNOLEtBQUssQ0FBQyxhQUNULENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMxQixJQUFNLE9BQU8sR0FDVCxLQUFLLFlBQVksVUFBVTtnQkFDdkIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPO2dCQUNmLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUNuQyxJQUFNLFFBQVEsR0FBRyxLQUFLLENBQ2xCLEtBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQ3pDLENBQUMsRUFDRCxDQUFDLENBQ0osQ0FBQztZQUNGLElBQU0sU0FBUyxHQUFHLFFBQVEsR0FBRyxHQUFHLEdBQUcsS0FBSSxDQUFDLElBQUksQ0FBQztZQUM3QyxJQUFNLFVBQVUsR0FBRyxRQUFRLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxLQUFJLENBQUMsS0FBSyxDQUFDO1lBRXJELGtCQUFrQjtnQkFDZCxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO29CQUMxQyxVQUFVLEdBQUcsQ0FBQztvQkFDZCxDQUFDLEtBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUksQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUM7WUFFNUMsSUFBTSxrQkFBa0IsR0FBRyxLQUFLLENBQzVCLEtBQUksQ0FBQywrQkFBK0IsQ0FDaEMsSUFBSSxFQUNKLE9BQU8sRUFDUCxrQkFBa0IsQ0FDckIsRUFDRCxDQUFDLEVBQ0QsQ0FBQyxDQUNKLENBQUM7WUFDRixJQUFNLEtBQUssR0FBRyxLQUFJLENBQUMsb0JBQW9CLENBQ25DLEtBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FDekMsQ0FBQztZQUVGLEtBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLGtCQUFrQixDQUFDLENBQUM7WUFDN0MsS0FBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBRXRDLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxVQUFBLElBQUk7WUFDVixPQUFBLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDakMsR0FBRyxDQUFDLFVBQUMsS0FBVTtnQkFDWCxPQUFBLEtBQUksQ0FBQywrQkFBK0IsQ0FDaEMsSUFBSSxFQUNKLEtBQUssWUFBWSxVQUFVO29CQUN2QixDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU87b0JBQ2YsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUM5QixrQkFBa0IsQ0FDckI7WUFORCxDQU1DLENBQ0osRUFDRCxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FDM0M7UUFYRCxDQVdDLENBQ0osRUFDRCxHQUFHLENBQUMsVUFBQSxRQUFRLElBQUksT0FBQSxLQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUE1QixDQUE0QixDQUFDLENBQ2hEO2FBQ0EsU0FBUyxDQUFDLFVBQUEsUUFBUTtZQUNmLEtBQUksQ0FBQyxZQUFZLENBQ2IsS0FBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxFQUNuQyxrQkFBa0IsQ0FDckIsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELHVDQUFXLEdBQVg7UUFDSSxpQkFBTSxXQUFXLFdBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCx1Q0FBVyxHQUFYLFVBQVksS0FBNEM7UUFDcEQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsT0FBTztTQUNWO1FBRUQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCx3Q0FBWSxHQUFaLFVBQWEsS0FBNEM7UUFDckQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsT0FBTztTQUNWO1FBRUQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxxQ0FBUyxHQUFULFVBQVUsS0FBYztRQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQscUNBQVMsR0FBVCxVQUFVLEtBQWM7UUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELDJDQUFlLEdBQWYsVUFBZ0IsT0FBZTtRQUMzQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsNENBQWdCLEdBQWhCLFVBQWlCLE9BQWUsRUFBRSxLQUF1QjtRQUNyRCxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssQ0FBQyxFQUFFO1lBQ3JCLE9BQU8sRUFBRSxDQUFDO1NBQ2I7UUFFRCxJQUFJLE9BQU8sS0FBSyxDQUFDLEVBQUU7WUFDZixPQUFVLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBRyxDQUFDO1NBQ3pCO1FBRUQsT0FBVSxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQUcsQ0FBQztJQUMxQixDQUFDO0lBRUQsd0NBQVksR0FBWixVQUFhLE1BQWU7UUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsOENBQWtCLEdBQWxCLFVBQW1CLFlBQXFCO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxZQUFZLENBQUM7SUFDekMsQ0FBQztJQUVELCtDQUFtQixHQUFuQixVQUFvQixZQUFxQjtRQUNyQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsWUFBWSxDQUFDO0lBQzFDLENBQUM7SUFFUyxnREFBb0IsR0FBOUIsVUFBK0IsS0FBYTtRQUN4QyxJQUFNLFFBQVEsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUVsRCxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSTtZQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7WUFDbEQsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVTLGdEQUFvQixHQUE5QixVQUErQixRQUFnQjtRQUMzQyxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSTtZQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUM7WUFDcEQsQ0FBQyxDQUFDLEtBQUssQ0FDRCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFDckQsc0JBQXNCLENBQ3pCLENBQUM7SUFDWixDQUFDO0lBRVMsMkRBQStCLEdBQXpDLFVBQ0ksSUFBZ0IsRUFDaEIsT0FBZSxFQUNmLENBQVU7UUFFVixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVTLHNDQUFVLEdBQXBCLFVBQXFCLEtBQWE7UUFDOUIsT0FBTyxJQUFJLENBQUMsT0FBTztZQUNmLENBQUMsQ0FBQyxLQUFLLENBQ0QsS0FBSyxDQUNELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUMvQyxzQkFBc0IsQ0FDekIsRUFDRCxJQUFJLENBQUMsR0FBRyxFQUNSLElBQUksQ0FBQyxHQUFHLENBQ1g7WUFDSCxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU8sd0NBQVksR0FBcEIsVUFBcUIsS0FBYztRQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3BELE9BQU87U0FDVjtRQUVELElBQUksS0FBSyxFQUFFO1lBQ1AsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNqRDthQUFNO1lBQ0gsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNoRDtJQUNMLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyx5REFBNkIsR0FBckMsVUFBc0MsS0FBYSxFQUFFLFVBQW1CO1FBQ3BFLElBQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUF1QixFQUFFO1lBQy9ELENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUM7U0FDbEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLElBQUksWUFBWSxHQUFHLEdBQUcsQ0FBQztRQUN2QixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ3pCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFFekIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbkMsSUFDSSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQztnQkFDekMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEVBQ3RDO2dCQUNFLFlBQVksR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEMsWUFBWSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0IsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVCLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLE1BQU07YUFDVDtTQUNKO1FBRUQsSUFBTSxhQUFhLEdBQUcsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNsRCxJQUFNLFVBQVUsR0FBRyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBRXpDLE9BQU8sVUFBVTtZQUNiLENBQUMsQ0FBQyxLQUFLLENBQ0QsQ0FBQyxDQUFDLEtBQUssR0FBRyxHQUFHLEdBQUcsWUFBWSxDQUFDLEdBQUcsYUFBYSxDQUFDLEdBQUcsVUFBVSxHQUFHLFNBQVMsRUFDdkUsc0JBQXNCLENBQ3pCO1lBQ0gsQ0FBQyxDQUFDLEtBQUssQ0FDRCxDQUFDLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxHQUFHLGFBQWEsR0FBRyxZQUFZLEVBQ2pFLENBQUMsRUFDRCxHQUFHLENBQ04sR0FBRyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVPLHlDQUFhLEdBQXJCLFVBQXNCLFFBQWdCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLFFBQVE7WUFDaEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNqRCxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVPLGlEQUFxQixHQUE3QixVQUE4QixJQUFnQixFQUFFLE9BQWU7UUFDM0QsSUFBTSxLQUFLLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0QsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWhELE9BQU8sS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztJQUN4RCxDQUFDOztnQkExUmMsU0FBUztnQkFDRCxpQkFBaUI7Z0JBQ04sUUFBUTtnQkFFZixVQUFVLHVCQURoQyxNQUFNLFNBQUMsaUJBQWlCOztJQXJEN0I7UUFEQyxTQUFTLENBQUMsU0FBUyxDQUFDO3NEQUNxQztJQUcxRDtRQURDLFNBQVMsQ0FBQyxVQUFVLENBQUM7dURBQ3FDO0lBSTNEO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFO2tEQUNUO0lBSVI7UUFGQyxLQUFLLEVBQUU7UUFDUCxjQUFjLEVBQUU7a0RBQ0Y7SUFJZjtRQUZDLEtBQUssRUFBRTtRQUNQLGNBQWMsRUFBRTt1REFDSjtJQUliO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFO29EQUNQO0lBSVY7UUFGQyxLQUFLLEVBQUU7UUFDUCxjQUFjLENBQUMsMEJBQTBCLEVBQUUsdUNBQXVDLENBQUM7c0RBQ3hFO0lBS1o7UUFGQyxLQUFLLEVBQUU7UUFDUCxjQUFjLEVBQUU7c0RBS2hCO0lBS0Q7UUFIQyxLQUFLLEVBQUU7UUFDUCxXQUFXLENBQUMseUJBQXlCLENBQUM7UUFDdEMsY0FBYyxFQUFFO21EQUNJO0lBSXJCO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFO3VEQUNtQjtJQW1CcEM7UUFEQyxXQUFXLENBQUMsa0JBQWtCLENBQUM7c0RBRy9CO0lBeEVpQixpQkFBaUI7UUFEdEMsU0FBUyxFQUFFO1FBZ0VILFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7T0EvRFosaUJBQWlCLENBdVZ0QztJQUFELHdCQUFDO0NBQUEsQUF2VkQsQ0FDWSxrQkFBa0IsR0FzVjdCO1NBdlZxQixpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlDb250cm9sLFxuICAgIGNsYW1wLFxuICAgIG5vbk5lZ2F0aXZlRmluaXRlQXNzZXJ0aW9uLFxuICAgIHF1YW50aXplLFxuICAgIHJvdW5kLFxuICAgIHNldE5hdGl2ZUZvY3VzZWQsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRXZlbnRXaXRoLFxuICAgIFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQsXG4gICAgdHlwZWRGcm9tRXZlbnQsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBUdWlQbHVyYWxpemUsXG4gICAgdHVpUGx1cmFsaXplVG9JQ1UsXG4gICAgVHVpU2l6ZVMsXG4gICAgVHVpV2l0aE9wdGlvbmFsTWluTWF4LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1RVSV9GTE9BVElOR19QUkVDSVNJT059IGZyb20gJ0B0YWlnYS11aS9raXQvY29uc3RhbnRzJztcbmltcG9ydCB7VFVJX0ZST01fVE9fVEVYVFN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7VHVpS2V5U3RlcHN9IGZyb20gJ0B0YWlnYS11aS9raXQvdHlwZXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCByYWNlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgY29uc3QgU0xJREVSX0tFWUJPQVJEX1NURVAgPSAwLjA1O1xuZXhwb3J0IGNvbnN0IERPVF9XSURUSDoge1trZXk6IHN0cmluZ106IG51bWJlcn0gPSB7XG4gICAgczogOCxcbiAgICBtOiAxNixcbn07XG5cbi8qKlxuICogQGF3ZnVsIFRPRE86IHJlZmFjdG9yXG4gKiBAaW50ZXJuYWxcbiAqIEBkeW5hbWljXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VHVpU2xpZGVyPFQ+XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUNvbnRyb2w8VD5cbiAgICBpbXBsZW1lbnRzIFR1aVdpdGhPcHRpb25hbE1pbk1heDxudW1iZXI+XG57XG4gICAgLy8gQGJhZCBUT0RPOiBoYW5kbGUgcG9pbnRlciBldmVudHMgaW5zdGVhZCBvZiBtb3VzZSBhbmQgdG91Y2ggZXZlbnRzXG4gICAgcHJpdmF0ZSBwb2ludGVyRG93biQgPSBuZXcgU3ViamVjdDxcbiAgICAgICAgVHVpRXZlbnRXaXRoPE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LCBIVE1MRWxlbWVudD5cbiAgICA+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdkb3RMZWZ0JylcbiAgICBwcm90ZWN0ZWQgZG90TGVmdD86IEVsZW1lbnRSZWY8VHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCdkb3RSaWdodCcpXG4gICAgcHJvdGVjdGVkIGRvdFJpZ2h0PzogRWxlbWVudFJlZjxUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50PjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtaW4gPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heCA9IEluZmluaXR5O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNlZ21lbnRzID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzdGVwcyA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcChub25OZWdhdGl2ZUZpbml0ZUFzc2VydGlvbiwgJ1F1YW50dW0gbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXInKVxuICAgIHF1YW50dW0gPSAwO1xuXG4gICAgLy8gVE9ETzogcmVtb3ZlIHNldHRlciBpbiB2My4wOlxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzZXQgcGx1cmFsaXplKHBsdXJhbGl6ZTogVHVpUGx1cmFsaXplIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5wbHVyYWxpemVNYXAgPSBBcnJheS5pc0FycmF5KHBsdXJhbGl6ZSlcbiAgICAgICAgICAgID8gdHVpUGx1cmFsaXplVG9JQ1UocGx1cmFsaXplKVxuICAgICAgICAgICAgOiBwbHVyYWxpemU7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10dWktaG9zdC1zaXplJylcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNpemU6IFR1aVNpemVTID0gJ20nO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGtleVN0ZXBzOiBUdWlLZXlTdGVwcyB8IG51bGwgPSBudWxsO1xuXG4gICAgZm9jdXNWaXNpYmxlTGVmdCA9IGZhbHNlO1xuXG4gICAgZm9jdXNWaXNpYmxlUmlnaHQgPSBmYWxzZTtcblxuICAgIHBsdXJhbGl6ZU1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgICAgICBuZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudFJlZjogRG9jdW1lbnQsXG4gICAgICAgIEBJbmplY3QoVFVJX0ZST01fVE9fVEVYVFMpXG4gICAgICAgIHJlYWRvbmx5IGZyb21Ub1RleHRzJDogT2JzZXJ2YWJsZTxbc3RyaW5nLCBzdHJpbmddPixcbiAgICApIHtcbiAgICAgICAgc3VwZXIobmdDb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fc2VnbWVudGVkJylcbiAgICBnZXQgc2VnbWVudGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWdtZW50cyA+IDA7XG4gICAgfVxuXG4gICAgZ2V0IGRpc2NyZXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGVwcyA+IDA7XG4gICAgfVxuXG4gICAgZ2V0IGxlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXggLSB0aGlzLm1pbjtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRTdGVwKCk6IG51bWJlciB7XG4gICAgICAgIGlmICh0aGlzLnN0ZXBzKSB7XG4gICAgICAgICAgICByZXR1cm4gMSAvIHRoaXMuc3RlcHM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5xdWFudHVtID8gdGhpcy5xdWFudHVtIC8gdGhpcy5sZW5ndGggOiBTTElERVJfS0VZQk9BUkRfU1RFUDtcbiAgICB9XG5cbiAgICBnZXQgaXNMZWZ0Rm9jdXNhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5mb2N1c2FibGUgJiYgdGhpcy5yaWdodCAhPT0gMTAwO1xuICAgIH1cblxuICAgIGdldCBpc1JpZ2h0Rm9jdXNhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5mb2N1c2FibGUgJiYgdGhpcy5sZWZ0ICE9PSAxMDA7XG4gICAgfVxuXG4gICAgYWJzdHJhY3QgZ2V0IGxlZnQoKTogbnVtYmVyO1xuICAgIGFic3RyYWN0IGdldCByaWdodCgpOiBudW1iZXI7XG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IHByb2Nlc3NWYWx1ZSh2YWx1ZTogbnVtYmVyLCByaWdodD86IGJvb2xlYW4pOiB2b2lkO1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBwcm9jZXNzU3RlcChpbmNyZW1lbnQ6IGJvb2xlYW4sIHJpZ2h0PzogYm9vbGVhbik6IHZvaWQ7XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICBjb25zdCBtb3VzZU1vdmVzJCA9IHR5cGVkRnJvbUV2ZW50KHRoaXMuZG9jdW1lbnRSZWYsICdtb3VzZW1vdmUnKTtcbiAgICAgICAgY29uc3QgbW91c2VVcHMkID0gdHlwZWRGcm9tRXZlbnQodGhpcy5kb2N1bWVudFJlZiwgJ21vdXNldXAnKTtcbiAgICAgICAgY29uc3QgdG91Y2hNb3ZlcyQgPSB0eXBlZEZyb21FdmVudCh0aGlzLmRvY3VtZW50UmVmLCAndG91Y2htb3ZlJyk7XG4gICAgICAgIGNvbnN0IHRvdWNoRW5kcyQgPSB0eXBlZEZyb21FdmVudCh0aGlzLmRvY3VtZW50UmVmLCAndG91Y2hlbmQnKTtcbiAgICAgICAgbGV0IGlzUG9pbnRlckRvd25SaWdodDogYm9vbGVhbjtcblxuICAgICAgICB0aGlzLnBvaW50ZXJEb3duJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVjdCA9IChcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xpZW50WCA9XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudCBpbnN0YW5jZW9mIE1vdXNlRXZlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGV2ZW50LmNsaWVudFhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZnJhY3Rpb24gPSBjbGFtcChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0RnJhY3Rpb25Gcm9tRXZlbnRzKHJlY3QsIGNsaWVudFgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlbHRhTGVmdCA9IGZyYWN0aW9uICogMTAwIC0gdGhpcy5sZWZ0O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZWx0YVJpZ2h0ID0gZnJhY3Rpb24gKiAxMDAgLSAxMDAgKyB0aGlzLnJpZ2h0O1xuXG4gICAgICAgICAgICAgICAgICAgIGlzUG9pbnRlckRvd25SaWdodCA9XG4gICAgICAgICAgICAgICAgICAgICAgICBNYXRoLmFicyhkZWx0YUxlZnQpID4gTWF0aC5hYnMoZGVsdGFSaWdodCkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbHRhUmlnaHQgPiAwIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5sZWZ0ID09PSAwICYmIHRoaXMucmlnaHQgPT09IDEwMCk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FsaWJyYXRlZEZyYWN0aW9uID0gY2xhbXAoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldENhbGlicmF0ZWRGcmFjdGlvbkZyb21FdmVudHMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRYLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUG9pbnRlckRvd25SaWdodCxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlRnJvbUZyYWN0aW9uKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmFjdGlvbkd1YXJkKGNhbGlicmF0ZWRGcmFjdGlvbiksXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzVmFsdWUodmFsdWUsIGlzUG9pbnRlckRvd25SaWdodCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0ZvY3VzKGlzUG9pbnRlckRvd25SaWdodCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlY3Q7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHJlY3QgPT5cbiAgICAgICAgICAgICAgICAgICAgcmFjZShbdG91Y2hNb3ZlcyQsIG1vdXNlTW92ZXMkXSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcCgoZXZlbnQ6IGFueSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldENhbGlicmF0ZWRGcmFjdGlvbkZyb21FdmVudHMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50IGluc3RhbmNlb2YgTW91c2VFdmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBldmVudC5jbGllbnRYXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQb2ludGVyRG93blJpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHJhY2UoW21vdXNlVXBzJCwgdG91Y2hFbmRzJF0pKSxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIG1hcChmcmFjdGlvbiA9PiB0aGlzLmZyYWN0aW9uR3VhcmQoZnJhY3Rpb24pKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoZnJhY3Rpb24gPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc1ZhbHVlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFZhbHVlRnJvbUZyYWN0aW9uKGZyYWN0aW9uKSxcbiAgICAgICAgICAgICAgICAgICAgaXNQb2ludGVyRG93blJpZ2h0LFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5wb2ludGVyRG93biQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBvbk1vdXNlRG93bihldmVudDogVHVpRXZlbnRXaXRoPE1vdXNlRXZlbnQsIEhUTUxFbGVtZW50Pikge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5wb2ludGVyRG93biQubmV4dChldmVudCk7XG4gICAgfVxuXG4gICAgb25Ub3VjaFN0YXJ0KGV2ZW50OiBUdWlFdmVudFdpdGg8VG91Y2hFdmVudCwgSFRNTEVsZW1lbnQ+KSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnBvaW50ZXJEb3duJC5uZXh0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBkZWNyZW1lbnQocmlnaHQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzU3RlcChmYWxzZSwgcmlnaHQpO1xuICAgIH1cblxuICAgIGluY3JlbWVudChyaWdodDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnByb2Nlc3NTdGVwKHRydWUsIHJpZ2h0KTtcbiAgICB9XG5cbiAgICBnZXRTZWdtZW50TGFiZWwoc2VnbWVudDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHJvdW5kKHRoaXMuZ2V0VmFsdWVGcm9tRnJhY3Rpb24oc2VnbWVudCAvIHRoaXMuc2VnbWVudHMpLCAyKTtcbiAgICB9XG5cbiAgICBnZXRTZWdtZW50UHJlZml4KHNlZ21lbnQ6IG51bWJlciwgdGV4dHM6IFtzdHJpbmcsIHN0cmluZ10pOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5zZWdtZW50cyAhPT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNlZ21lbnQgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBgJHt0ZXh0c1swXX0gYDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgJHt0ZXh0c1sxXX0gYDtcbiAgICB9XG5cbiAgICBvbkFjdGl2ZVpvbmUoYWN0aXZlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChhY3RpdmUpO1xuICAgIH1cblxuICAgIG9uTGVmdEZvY3VzVmlzaWJsZShmb2N1c1Zpc2libGU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5mb2N1c1Zpc2libGVMZWZ0ID0gZm9jdXNWaXNpYmxlO1xuICAgIH1cblxuICAgIG9uUmlnaHRGb2N1c1Zpc2libGUoZm9jdXNWaXNpYmxlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZm9jdXNWaXNpYmxlUmlnaHQgPSBmb2N1c1Zpc2libGU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZyYWN0aW9uRnJvbVZhbHVlKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBmcmFjdGlvbiA9ICh2YWx1ZSAtIHRoaXMubWluKSAvIHRoaXMubGVuZ3RoO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmtleVN0ZXBzICE9PSBudWxsXG4gICAgICAgICAgICA/IHRoaXMuZnJhY3Rpb25WYWx1ZUtleVN0ZXBDb252ZXJ0ZXIodmFsdWUsIGZhbHNlKVxuICAgICAgICAgICAgOiBjbGFtcChOdW1iZXIuaXNGaW5pdGUoZnJhY3Rpb24pID8gZnJhY3Rpb24gOiAxLCAwLCAxKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0VmFsdWVGcm9tRnJhY3Rpb24oZnJhY3Rpb246IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmtleVN0ZXBzICE9PSBudWxsXG4gICAgICAgICAgICA/IHRoaXMuZnJhY3Rpb25WYWx1ZUtleVN0ZXBDb252ZXJ0ZXIoZnJhY3Rpb24sIHRydWUpXG4gICAgICAgICAgICA6IHJvdW5kKFxuICAgICAgICAgICAgICAgICAgdGhpcy5mcmFjdGlvbkd1YXJkKGZyYWN0aW9uKSAqIHRoaXMubGVuZ3RoICsgdGhpcy5taW4sXG4gICAgICAgICAgICAgICAgICBUVUlfRkxPQVRJTkdfUFJFQ0lTSU9OLFxuICAgICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRDYWxpYnJhdGVkRnJhY3Rpb25Gcm9tRXZlbnRzKFxuICAgICAgICByZWN0OiBDbGllbnRSZWN0LFxuICAgICAgICBjbGllbnRYOiBudW1iZXIsXG4gICAgICAgIF86IGJvb2xlYW4sXG4gICAgKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RnJhY3Rpb25Gcm9tRXZlbnRzKHJlY3QsIGNsaWVudFgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB2YWx1ZUd1YXJkKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5xdWFudHVtXG4gICAgICAgICAgICA/IGNsYW1wKFxuICAgICAgICAgICAgICAgICAgcm91bmQoXG4gICAgICAgICAgICAgICAgICAgICAgTWF0aC5yb3VuZCh2YWx1ZSAvIHRoaXMucXVhbnR1bSkgKiB0aGlzLnF1YW50dW0sXG4gICAgICAgICAgICAgICAgICAgICAgVFVJX0ZMT0FUSU5HX1BSRUNJU0lPTixcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICB0aGlzLm1pbixcbiAgICAgICAgICAgICAgICAgIHRoaXMubWF4LFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IGNsYW1wKHZhbHVlLCB0aGlzLm1pbiwgdGhpcy5tYXgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc0ZvY3VzKHJpZ2h0OiBib29sZWFuKSB7XG4gICAgICAgIGlmICghdGhpcy5mb2N1c2FibGUgfHwgIXRoaXMuZG90UmlnaHQgfHwgIXRoaXMuZG90TGVmdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJpZ2h0KSB7XG4gICAgICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMuZG90UmlnaHQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMuZG90TGVmdC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIGZvciBjb252ZXJ0aW5nIHRoZSBmdWxsbmVzcyBvZiB0aGUgc2xpZGVyIHRvIGEgdmFsdWUgYW5kIHZpY2UgdmVyc2FcbiAgICAgKiB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBzdGVwcyBvZiBsaW5lYXIgZGVwZW5kZW5jZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSBwYXNzZWQgdmFsdWVcbiAgICAgKiBAcGFyYW0gaXNGcmFjdGlvbiB0cmFuc2xhdGlvbiBpcyBjYXJyaWVkIG91dCBmcm9tIGZ1bGxuZXNzIHRvIHZhbHVlXG4gICAgICovXG4gICAgcHJpdmF0ZSBmcmFjdGlvblZhbHVlS2V5U3RlcENvbnZlcnRlcih2YWx1ZTogbnVtYmVyLCBpc0ZyYWN0aW9uOiBib29sZWFuKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3Qgc3RlcHMgPSBbWzAsIHRoaXMubWluXV0uY29uY2F0KHRoaXMua2V5U3RlcHMgYXMgVHVpS2V5U3RlcHMsIFtcbiAgICAgICAgICAgIFsxMDAsIHRoaXMubWF4XSxcbiAgICAgICAgXSk7XG5cbiAgICAgICAgbGV0IHByZXZGcmFjdGlvbiA9IDA7XG4gICAgICAgIGxldCBuZXh0RnJhY3Rpb24gPSAxMDA7XG4gICAgICAgIGxldCBwcmV2VmFsdWUgPSB0aGlzLm1pbjtcbiAgICAgICAgbGV0IG5leHRWYWx1ZSA9IHRoaXMubWF4O1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgc3RlcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAoaXNGcmFjdGlvbiAmJiBzdGVwc1tpXVswXSAvIDEwMCA+IHZhbHVlKSB8fFxuICAgICAgICAgICAgICAgICghaXNGcmFjdGlvbiAmJiBzdGVwc1tpXVsxXSA+IHZhbHVlKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcHJldkZyYWN0aW9uID0gc3RlcHNbaSAtIDFdWzBdIHx8IDA7XG4gICAgICAgICAgICAgICAgbmV4dEZyYWN0aW9uID0gc3RlcHNbaV1bMF07XG4gICAgICAgICAgICAgICAgcHJldlZhbHVlID0gc3RlcHNbaSAtIDFdWzFdO1xuICAgICAgICAgICAgICAgIG5leHRWYWx1ZSA9IHN0ZXBzW2ldWzFdO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVsdGFGcmFjdGlvbiA9IG5leHRGcmFjdGlvbiAtIHByZXZGcmFjdGlvbjtcbiAgICAgICAgY29uc3QgZGVsdGFWYWx1ZSA9IG5leHRWYWx1ZSAtIHByZXZWYWx1ZTtcblxuICAgICAgICByZXR1cm4gaXNGcmFjdGlvblxuICAgICAgICAgICAgPyByb3VuZChcbiAgICAgICAgICAgICAgICAgICgodmFsdWUgKiAxMDAgLSBwcmV2RnJhY3Rpb24pIC8gZGVsdGFGcmFjdGlvbikgKiBkZWx0YVZhbHVlICsgcHJldlZhbHVlLFxuICAgICAgICAgICAgICAgICAgVFVJX0ZMT0FUSU5HX1BSRUNJU0lPTixcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBjbGFtcChcbiAgICAgICAgICAgICAgICAgICgodmFsdWUgLSBwcmV2VmFsdWUpIC8gZGVsdGFWYWx1ZSkgKiBkZWx0YUZyYWN0aW9uICsgcHJldkZyYWN0aW9uLFxuICAgICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAgIDEwMCxcbiAgICAgICAgICAgICAgKSAvIDEwMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZyYWN0aW9uR3VhcmQoZnJhY3Rpb246IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2NyZXRlXG4gICAgICAgICAgICA/IGNsYW1wKHF1YW50aXplKGZyYWN0aW9uLCAxIC8gdGhpcy5zdGVwcyksIDAsIDEpXG4gICAgICAgICAgICA6IGNsYW1wKGZyYWN0aW9uLCAwLCAxKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZyYWN0aW9uRnJvbUV2ZW50cyhyZWN0OiBDbGllbnRSZWN0LCBjbGllbnRYOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGNsaWVudFggLSByZWN0LmxlZnQgLSBET1RfV0lEVEhbdGhpcy5zaXplXSAvIDI7XG4gICAgICAgIGNvbnN0IHRvdGFsID0gcmVjdC53aWR0aCAtIERPVF9XSURUSFt0aGlzLnNpemVdO1xuXG4gICAgICAgIHJldHVybiByb3VuZCh2YWx1ZSAvIHRvdGFsLCBUVUlfRkxPQVRJTkdfUFJFQ0lTSU9OKTtcbiAgICB9XG59XG4iXX0=
303
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9hYnN0cmFjdC8iLCJzb3VyY2VzIjpbInNsaWRlci9zbGlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsS0FBSyxFQUNMLDBCQUEwQixFQUMxQixRQUFRLEVBQ1IsS0FBSyxFQUNMLGdCQUFnQixFQUNoQixjQUFjLEVBR2QsY0FBYyxHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUgsaUJBQWlCLEdBR3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFdkQsT0FBTyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE1BQU0sQ0FBQyxJQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQztBQUN6QyxNQUFNLENBQUMsSUFBTSxTQUFTLEdBQTRCO0lBQzlDLENBQUMsRUFBRSxDQUFDO0lBQ0osQ0FBQyxFQUFFLEVBQUU7Q0FDUixDQUFDO0FBRUY7Ozs7R0FJRztBQUVIO0lBQ1kscUNBQXFCO0lBMEQ3QiwyQkFDSSxTQUEyQixFQUMzQixpQkFBb0MsRUFDbkIsV0FBcUIsRUFFN0IsWUFBMEM7UUFMdkQsWUFPSSxrQkFBTSxTQUFTLEVBQUUsaUJB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dEMsU0FBUyxFQUFFO1FBZ0VILFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7T0EvRFosaUJBQWlCLENBdVZ0QztJQUFELHdCQUFDO0NBQUEsQUF2VkQsQ0FDWSxrQkFBa0IsR0FzVjdCO1NBdlZxQixpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlDb250cm9sLFxuICAgIGNsYW1wLFxuICAgIG5vbk5lZ2F0aXZlRmluaXRlQXNzZXJ0aW9uLFxuICAgIHF1YW50aXplLFxuICAgIHJvdW5kLFxuICAgIHNldE5hdGl2ZUZvY3VzZWQsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRXZlbnRXaXRoLFxuICAgIFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQsXG4gICAgdHlwZWRGcm9tRXZlbnQsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBUdWlQbHVyYWxpemUsXG4gICAgdHVpUGx1cmFsaXplVG9JQ1UsXG4gICAgVHVpU2l6ZVMsXG4gICAgVHVpV2l0aE9wdGlvbmFsTWluTWF4LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1RVSV9GTE9BVElOR19QUkVDSVNJT059IGZyb20gJ0B0YWlnYS11aS9raXQvY29uc3RhbnRzJztcbmltcG9ydCB7VFVJX0ZST01fVE9fVEVYVFN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7VHVpS2V5U3RlcHN9IGZyb20gJ0B0YWlnYS11aS9raXQvdHlwZXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCByYWNlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgY29uc3QgU0xJREVSX0tFWUJPQVJEX1NURVAgPSAwLjA1O1xuZXhwb3J0IGNvbnN0IERPVF9XSURUSDoge1trZXk6IHN0cmluZ106IG51bWJlcn0gPSB7XG4gICAgczogOCxcbiAgICBtOiAxNixcbn07XG5cbi8qKlxuICogQGF3ZnVsIFRPRE86IHJlZmFjdG9yXG4gKiBAaW50ZXJuYWxcbiAqIEBkeW5hbWljXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VHVpU2xpZGVyPFQ+XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUNvbnRyb2w8VD5cbiAgICBpbXBsZW1lbnRzIFR1aVdpdGhPcHRpb25hbE1pbk1heDxudW1iZXI+XG57XG4gICAgLy8gQGJhZCBUT0RPOiBoYW5kbGUgcG9pbnRlciBldmVudHMgaW5zdGVhZCBvZiBtb3VzZSBhbmQgdG91Y2ggZXZlbnRzXG4gICAgcHJpdmF0ZSByZWFkb25seSBwb2ludGVyRG93biQgPSBuZXcgU3ViamVjdDxcbiAgICAgICAgVHVpRXZlbnRXaXRoPE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LCBIVE1MRWxlbWVudD5cbiAgICA+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdkb3RMZWZ0JylcbiAgICBwcm90ZWN0ZWQgZG90TGVmdD86IEVsZW1lbnRSZWY8VHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCdkb3RSaWdodCcpXG4gICAgcHJvdGVjdGVkIGRvdFJpZ2h0PzogRWxlbWVudFJlZjxUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50PjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtaW4gPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heCA9IEluZmluaXR5O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNlZ21lbnRzID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzdGVwcyA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcChub25OZWdhdGl2ZUZpbml0ZUFzc2VydGlvbiwgJ1F1YW50dW0gbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXInKVxuICAgIHF1YW50dW0gPSAwO1xuXG4gICAgLy8gVE9ETzogcmVtb3ZlIHNldHRlciBpbiB2My4wOlxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzZXQgcGx1cmFsaXplKHBsdXJhbGl6ZTogVHVpUGx1cmFsaXplIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5wbHVyYWxpemVNYXAgPSBBcnJheS5pc0FycmF5KHBsdXJhbGl6ZSlcbiAgICAgICAgICAgID8gdHVpUGx1cmFsaXplVG9JQ1UocGx1cmFsaXplKVxuICAgICAgICAgICAgOiBwbHVyYWxpemU7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10dWktaG9zdC1zaXplJylcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNpemU6IFR1aVNpemVTID0gJ20nO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGtleVN0ZXBzOiBUdWlLZXlTdGVwcyB8IG51bGwgPSBudWxsO1xuXG4gICAgZm9jdXNWaXNpYmxlTGVmdCA9IGZhbHNlO1xuXG4gICAgZm9jdXNWaXNpYmxlUmlnaHQgPSBmYWxzZTtcblxuICAgIHBsdXJhbGl6ZU1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgICAgICBuZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudFJlZjogRG9jdW1lbnQsXG4gICAgICAgIEBJbmplY3QoVFVJX0ZST01fVE9fVEVYVFMpXG4gICAgICAgIHJlYWRvbmx5IGZyb21Ub1RleHRzJDogT2JzZXJ2YWJsZTxbc3RyaW5nLCBzdHJpbmddPixcbiAgICApIHtcbiAgICAgICAgc3VwZXIobmdDb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fc2VnbWVudGVkJylcbiAgICBnZXQgc2VnbWVudGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWdtZW50cyA+IDA7XG4gICAgfVxuXG4gICAgZ2V0IGRpc2NyZXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGVwcyA+IDA7XG4gICAgfVxuXG4gICAgZ2V0IGxlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXggLSB0aGlzLm1pbjtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRTdGVwKCk6IG51bWJlciB7XG4gICAgICAgIGlmICh0aGlzLnN0ZXBzKSB7XG4gICAgICAgICAgICByZXR1cm4gMSAvIHRoaXMuc3RlcHM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5xdWFudHVtID8gdGhpcy5xdWFudHVtIC8gdGhpcy5sZW5ndGggOiBTTElERVJfS0VZQk9BUkRfU1RFUDtcbiAgICB9XG5cbiAgICBnZXQgaXNMZWZ0Rm9jdXNhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5mb2N1c2FibGUgJiYgdGhpcy5yaWdodCAhPT0gMTAwO1xuICAgIH1cblxuICAgIGdldCBpc1JpZ2h0Rm9jdXNhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5mb2N1c2FibGUgJiYgdGhpcy5sZWZ0ICE9PSAxMDA7XG4gICAgfVxuXG4gICAgYWJzdHJhY3QgZ2V0IGxlZnQoKTogbnVtYmVyO1xuICAgIGFic3RyYWN0IGdldCByaWdodCgpOiBudW1iZXI7XG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IHByb2Nlc3NWYWx1ZSh2YWx1ZTogbnVtYmVyLCByaWdodD86IGJvb2xlYW4pOiB2b2lkO1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBwcm9jZXNzU3RlcChpbmNyZW1lbnQ6IGJvb2xlYW4sIHJpZ2h0PzogYm9vbGVhbik6IHZvaWQ7XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICBjb25zdCBtb3VzZU1vdmVzJCA9IHR5cGVkRnJvbUV2ZW50KHRoaXMuZG9jdW1lbnRSZWYsICdtb3VzZW1vdmUnKTtcbiAgICAgICAgY29uc3QgbW91c2VVcHMkID0gdHlwZWRGcm9tRXZlbnQodGhpcy5kb2N1bWVudFJlZiwgJ21vdXNldXAnKTtcbiAgICAgICAgY29uc3QgdG91Y2hNb3ZlcyQgPSB0eXBlZEZyb21FdmVudCh0aGlzLmRvY3VtZW50UmVmLCAndG91Y2htb3ZlJyk7XG4gICAgICAgIGNvbnN0IHRvdWNoRW5kcyQgPSB0eXBlZEZyb21FdmVudCh0aGlzLmRvY3VtZW50UmVmLCAndG91Y2hlbmQnKTtcbiAgICAgICAgbGV0IGlzUG9pbnRlckRvd25SaWdodDogYm9vbGVhbjtcblxuICAgICAgICB0aGlzLnBvaW50ZXJEb3duJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVjdCA9IChcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xpZW50WCA9XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudCBpbnN0YW5jZW9mIE1vdXNlRXZlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGV2ZW50LmNsaWVudFhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZnJhY3Rpb24gPSBjbGFtcChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0RnJhY3Rpb25Gcm9tRXZlbnRzKHJlY3QsIGNsaWVudFgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlbHRhTGVmdCA9IGZyYWN0aW9uICogMTAwIC0gdGhpcy5sZWZ0O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZWx0YVJpZ2h0ID0gZnJhY3Rpb24gKiAxMDAgLSAxMDAgKyB0aGlzLnJpZ2h0O1xuXG4gICAgICAgICAgICAgICAgICAgIGlzUG9pbnRlckRvd25SaWdodCA9XG4gICAgICAgICAgICAgICAgICAgICAgICBNYXRoLmFicyhkZWx0YUxlZnQpID4gTWF0aC5hYnMoZGVsdGFSaWdodCkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbHRhUmlnaHQgPiAwIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5sZWZ0ID09PSAwICYmIHRoaXMucmlnaHQgPT09IDEwMCk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FsaWJyYXRlZEZyYWN0aW9uID0gY2xhbXAoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldENhbGlicmF0ZWRGcmFjdGlvbkZyb21FdmVudHMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRYLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUG9pbnRlckRvd25SaWdodCxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlRnJvbUZyYWN0aW9uKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmFjdGlvbkd1YXJkKGNhbGlicmF0ZWRGcmFjdGlvbiksXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzVmFsdWUodmFsdWUsIGlzUG9pbnRlckRvd25SaWdodCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0ZvY3VzKGlzUG9pbnRlckRvd25SaWdodCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlY3Q7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHJlY3QgPT5cbiAgICAgICAgICAgICAgICAgICAgcmFjZShbdG91Y2hNb3ZlcyQsIG1vdXNlTW92ZXMkXSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcCgoZXZlbnQ6IGFueSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldENhbGlicmF0ZWRGcmFjdGlvbkZyb21FdmVudHMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50IGluc3RhbmNlb2YgTW91c2VFdmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBldmVudC5jbGllbnRYXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQb2ludGVyRG93blJpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHJhY2UoW21vdXNlVXBzJCwgdG91Y2hFbmRzJF0pKSxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIG1hcChmcmFjdGlvbiA9PiB0aGlzLmZyYWN0aW9uR3VhcmQoZnJhY3Rpb24pKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoZnJhY3Rpb24gPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc1ZhbHVlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFZhbHVlRnJvbUZyYWN0aW9uKGZyYWN0aW9uKSxcbiAgICAgICAgICAgICAgICAgICAgaXNQb2ludGVyRG93blJpZ2h0LFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5wb2ludGVyRG93biQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBvbk1vdXNlRG93bihldmVudDogVHVpRXZlbnRXaXRoPE1vdXNlRXZlbnQsIEhUTUxFbGVtZW50Pikge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5wb2ludGVyRG93biQubmV4dChldmVudCk7XG4gICAgfVxuXG4gICAgb25Ub3VjaFN0YXJ0KGV2ZW50OiBUdWlFdmVudFdpdGg8VG91Y2hFdmVudCwgSFRNTEVsZW1lbnQ+KSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnBvaW50ZXJEb3duJC5uZXh0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBkZWNyZW1lbnQocmlnaHQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzU3RlcChmYWxzZSwgcmlnaHQpO1xuICAgIH1cblxuICAgIGluY3JlbWVudChyaWdodDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnByb2Nlc3NTdGVwKHRydWUsIHJpZ2h0KTtcbiAgICB9XG5cbiAgICBnZXRTZWdtZW50TGFiZWwoc2VnbWVudDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHJvdW5kKHRoaXMuZ2V0VmFsdWVGcm9tRnJhY3Rpb24oc2VnbWVudCAvIHRoaXMuc2VnbWVudHMpLCAyKTtcbiAgICB9XG5cbiAgICBnZXRTZWdtZW50UHJlZml4KHNlZ21lbnQ6IG51bWJlciwgdGV4dHM6IFtzdHJpbmcsIHN0cmluZ10pOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5zZWdtZW50cyAhPT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNlZ21lbnQgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBgJHt0ZXh0c1swXX0gYDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgJHt0ZXh0c1sxXX0gYDtcbiAgICB9XG5cbiAgICBvbkFjdGl2ZVpvbmUoYWN0aXZlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChhY3RpdmUpO1xuICAgIH1cblxuICAgIG9uTGVmdEZvY3VzVmlzaWJsZShmb2N1c1Zpc2libGU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5mb2N1c1Zpc2libGVMZWZ0ID0gZm9jdXNWaXNpYmxlO1xuICAgIH1cblxuICAgIG9uUmlnaHRGb2N1c1Zpc2libGUoZm9jdXNWaXNpYmxlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZm9jdXNWaXNpYmxlUmlnaHQgPSBmb2N1c1Zpc2libGU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZyYWN0aW9uRnJvbVZhbHVlKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBmcmFjdGlvbiA9ICh2YWx1ZSAtIHRoaXMubWluKSAvIHRoaXMubGVuZ3RoO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmtleVN0ZXBzICE9PSBudWxsXG4gICAgICAgICAgICA/IHRoaXMuZnJhY3Rpb25WYWx1ZUtleVN0ZXBDb252ZXJ0ZXIodmFsdWUsIGZhbHNlKVxuICAgICAgICAgICAgOiBjbGFtcChOdW1iZXIuaXNGaW5pdGUoZnJhY3Rpb24pID8gZnJhY3Rpb24gOiAxLCAwLCAxKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0VmFsdWVGcm9tRnJhY3Rpb24oZnJhY3Rpb246IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmtleVN0ZXBzICE9PSBudWxsXG4gICAgICAgICAgICA/IHRoaXMuZnJhY3Rpb25WYWx1ZUtleVN0ZXBDb252ZXJ0ZXIoZnJhY3Rpb24sIHRydWUpXG4gICAgICAgICAgICA6IHJvdW5kKFxuICAgICAgICAgICAgICAgICAgdGhpcy5mcmFjdGlvbkd1YXJkKGZyYWN0aW9uKSAqIHRoaXMubGVuZ3RoICsgdGhpcy5taW4sXG4gICAgICAgICAgICAgICAgICBUVUlfRkxPQVRJTkdfUFJFQ0lTSU9OLFxuICAgICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRDYWxpYnJhdGVkRnJhY3Rpb25Gcm9tRXZlbnRzKFxuICAgICAgICByZWN0OiBDbGllbnRSZWN0LFxuICAgICAgICBjbGllbnRYOiBudW1iZXIsXG4gICAgICAgIF86IGJvb2xlYW4sXG4gICAgKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RnJhY3Rpb25Gcm9tRXZlbnRzKHJlY3QsIGNsaWVudFgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB2YWx1ZUd1YXJkKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5xdWFudHVtXG4gICAgICAgICAgICA/IGNsYW1wKFxuICAgICAgICAgICAgICAgICAgcm91bmQoXG4gICAgICAgICAgICAgICAgICAgICAgTWF0aC5yb3VuZCh2YWx1ZSAvIHRoaXMucXVhbnR1bSkgKiB0aGlzLnF1YW50dW0sXG4gICAgICAgICAgICAgICAgICAgICAgVFVJX0ZMT0FUSU5HX1BSRUNJU0lPTixcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICB0aGlzLm1pbixcbiAgICAgICAgICAgICAgICAgIHRoaXMubWF4LFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IGNsYW1wKHZhbHVlLCB0aGlzLm1pbiwgdGhpcy5tYXgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc0ZvY3VzKHJpZ2h0OiBib29sZWFuKSB7XG4gICAgICAgIGlmICghdGhpcy5mb2N1c2FibGUgfHwgIXRoaXMuZG90UmlnaHQgfHwgIXRoaXMuZG90TGVmdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJpZ2h0KSB7XG4gICAgICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMuZG90UmlnaHQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMuZG90TGVmdC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIGZvciBjb252ZXJ0aW5nIHRoZSBmdWxsbmVzcyBvZiB0aGUgc2xpZGVyIHRvIGEgdmFsdWUgYW5kIHZpY2UgdmVyc2FcbiAgICAgKiB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBzdGVwcyBvZiBsaW5lYXIgZGVwZW5kZW5jZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSBwYXNzZWQgdmFsdWVcbiAgICAgKiBAcGFyYW0gaXNGcmFjdGlvbiB0cmFuc2xhdGlvbiBpcyBjYXJyaWVkIG91dCBmcm9tIGZ1bGxuZXNzIHRvIHZhbHVlXG4gICAgICovXG4gICAgcHJpdmF0ZSBmcmFjdGlvblZhbHVlS2V5U3RlcENvbnZlcnRlcih2YWx1ZTogbnVtYmVyLCBpc0ZyYWN0aW9uOiBib29sZWFuKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3Qgc3RlcHMgPSBbWzAsIHRoaXMubWluXV0uY29uY2F0KHRoaXMua2V5U3RlcHMgYXMgVHVpS2V5U3RlcHMsIFtcbiAgICAgICAgICAgIFsxMDAsIHRoaXMubWF4XSxcbiAgICAgICAgXSk7XG5cbiAgICAgICAgbGV0IHByZXZGcmFjdGlvbiA9IDA7XG4gICAgICAgIGxldCBuZXh0RnJhY3Rpb24gPSAxMDA7XG4gICAgICAgIGxldCBwcmV2VmFsdWUgPSB0aGlzLm1pbjtcbiAgICAgICAgbGV0IG5leHRWYWx1ZSA9IHRoaXMubWF4O1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgc3RlcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAoaXNGcmFjdGlvbiAmJiBzdGVwc1tpXVswXSAvIDEwMCA+IHZhbHVlKSB8fFxuICAgICAgICAgICAgICAgICghaXNGcmFjdGlvbiAmJiBzdGVwc1tpXVsxXSA+IHZhbHVlKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcHJldkZyYWN0aW9uID0gc3RlcHNbaSAtIDFdWzBdIHx8IDA7XG4gICAgICAgICAgICAgICAgbmV4dEZyYWN0aW9uID0gc3RlcHNbaV1bMF07XG4gICAgICAgICAgICAgICAgcHJldlZhbHVlID0gc3RlcHNbaSAtIDFdWzFdO1xuICAgICAgICAgICAgICAgIG5leHRWYWx1ZSA9IHN0ZXBzW2ldWzFdO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVsdGFGcmFjdGlvbiA9IG5leHRGcmFjdGlvbiAtIHByZXZGcmFjdGlvbjtcbiAgICAgICAgY29uc3QgZGVsdGFWYWx1ZSA9IG5leHRWYWx1ZSAtIHByZXZWYWx1ZTtcblxuICAgICAgICByZXR1cm4gaXNGcmFjdGlvblxuICAgICAgICAgICAgPyByb3VuZChcbiAgICAgICAgICAgICAgICAgICgodmFsdWUgKiAxMDAgLSBwcmV2RnJhY3Rpb24pIC8gZGVsdGFGcmFjdGlvbikgKiBkZWx0YVZhbHVlICsgcHJldlZhbHVlLFxuICAgICAgICAgICAgICAgICAgVFVJX0ZMT0FUSU5HX1BSRUNJU0lPTixcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBjbGFtcChcbiAgICAgICAgICAgICAgICAgICgodmFsdWUgLSBwcmV2VmFsdWUpIC8gZGVsdGFWYWx1ZSkgKiBkZWx0YUZyYWN0aW9uICsgcHJldkZyYWN0aW9uLFxuICAgICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAgIDEwMCxcbiAgICAgICAgICAgICAgKSAvIDEwMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZyYWN0aW9uR3VhcmQoZnJhY3Rpb246IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2NyZXRlXG4gICAgICAgICAgICA/IGNsYW1wKHF1YW50aXplKGZyYWN0aW9uLCAxIC8gdGhpcy5zdGVwcyksIDAsIDEpXG4gICAgICAgICAgICA6IGNsYW1wKGZyYWN0aW9uLCAwLCAxKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZyYWN0aW9uRnJvbUV2ZW50cyhyZWN0OiBDbGllbnRSZWN0LCBjbGllbnRYOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGNsaWVudFggLSByZWN0LmxlZnQgLSBET1RfV0lEVEhbdGhpcy5zaXplXSAvIDI7XG4gICAgICAgIGNvbnN0IHRvdGFsID0gcmVjdC53aWR0aCAtIERPVF9XSURUSFt0aGlzLnNpemVdO1xuXG4gICAgICAgIHJldHVybiByb3VuZCh2YWx1ZSAvIHRvdGFsLCBUVUlfRkxPQVRJTkdfUFJFQ0lTSU9OKTtcbiAgICB9XG59XG4iXX0=
@@ -120,4 +120,4 @@ var TuiCheckboxBlockComponent = /** @class */ (function (_super) {
120
120
  return TuiCheckboxBlockComponent;
121
121
  }(AbstractTuiNullableControl));
122
122
  export { TuiCheckboxBlockComponent };
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtYmxvY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2NoZWNrYm94LWJsb2NrLyIsInNvdXJjZXMiOlsiY2hlY2tib3gtYmxvY2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLGVBQWUsRUFDZiwyQkFBMkIsRUFDM0IsY0FBYyxHQUdqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsYUFBYSxFQUNiLHNCQUFzQixFQUN0QixnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLFFBQVEsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBY3ZFO0lBQ1ksNkNBQW1DO0lBcUIzQyxtQ0FJSSxPQUF5QixFQUNFLGlCQUFvQyxFQUc5QyxhQUFzQztRQVIzRCxZQVVJLGtCQUFNLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxTQUNwQztRQUhvQixtQkFBYSxHQUFiLGFBQWEsQ0FBeUI7UUFwQjNELGtCQUFZLEdBQTJCLE9BQU8sQ0FBQztRQUsvQyxrQkFBWSxHQUFHLEtBQUssQ0FBQztRQUtyQixVQUFJLEdBQXdCLEdBQUcsQ0FBQzs7SUFhaEMsQ0FBQztrQ0FqQ1EseUJBQXlCO0lBbUNsQyxzQkFBSSw2REFBc0I7YUFBMUI7WUFDSSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsc0JB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LFdBQUEsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7T0E3QnBCLHlCQUF5QixDQWlGckM7SUFBRCxnQ0FBQztDQUFBLEFBakZELENBQ1ksMEJBQTBCLEdBZ0ZyQztTQWpGWSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbCxcbiAgICBpc05hdGl2ZUZvY3VzZWQsXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICBUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50LFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVHVpQXBwZWFyYW5jZSxcbiAgICBUdWlIb3Jpem9udGFsRGlyZWN0aW9uLFxuICAgIFR1aU1vZGVEaXJlY3RpdmUsXG4gICAgVHVpU2l6ZUwsXG4gICAgVHVpU2l6ZVMsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VHVpQ2hlY2tib3hDb21wb25lbnR9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9jaGVja2JveCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWNoZWNrYm94LWJsb2NrJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3gtYmxvY2sudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3gtYmxvY2suc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlDaGVja2JveEJsb2NrQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlDaGVja2JveEJsb2NrQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbDxib29sZWFuPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZChUdWlDaGVja2JveENvbXBvbmVudClcbiAgICBwcml2YXRlIGNoZWNrYm94PzogVHVpQ2hlY2tib3hDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXR1aS1ob3N0LWFsaWduJylcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGNvbnRlbnRBbGlnbjogVHVpSG9yaXpvbnRhbERpcmVjdGlvbiA9ICdyaWdodCc7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2hpZGRlbl9jaGVja2JveCcpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBoaWRlQ2hlY2tib3ggPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtdHVpLWhvc3Qtc2l6ZScpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzaXplOiBUdWlTaXplUyB8IFR1aVNpemVMID0gJ2wnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUdWlNb2RlRGlyZWN0aXZlKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGVEaXJlY3RpdmU6IFR1aU1vZGVEaXJlY3RpdmUgfCBudWxsLFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGVja2JveCA/IHRoaXMuY2hlY2tib3gubmF0aXZlRm9jdXNhYmxlRWxlbWVudCA6IG51bGw7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fYWN0aXZlJylcbiAgICBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUgIT09IGZhbHNlICYmIHRoaXMuaGlkZUNoZWNrYm94O1xuICAgIH1cblxuICAgIGdldCBjaGVja2JveFNpemUoKTogVHVpU2l6ZUwge1xuICAgICAgICByZXR1cm4gdGhpcy5zaXplID09PSAnbCcgPyAnbCcgOiAnbSc7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc05hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBnZXQgYXBwZWFyYW5jZSgpOiBUdWlBcHBlYXJhbmNlIHtcbiAgICAgICAgaWYgKCF0aGlzLm1vZGVEaXJlY3RpdmUgfHwgIXRoaXMubW9kZURpcmVjdGl2ZS5tb2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jaGVja2VkXG4gICAgICAgICAgICAgICAgPyBUdWlBcHBlYXJhbmNlLldoaXRlYmxvY2tBY3RpdmVcbiAgICAgICAgICAgICAgICA6IFR1aUFwcGVhcmFuY2UuV2hpdGVibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrZWQgPyBUdWlBcHBlYXJhbmNlLlByaW1hcnkgOiBUdWlBcHBlYXJhbmNlLlNlY29uZGFyeTtcbiAgICB9XG5cbiAgICBvbkZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoZm9jdXNlZCk7XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIG9uUHJlc3NlZChwcmVzc2VkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlUHJlc3NlZChwcmVzc2VkKTtcbiAgICB9XG5cbiAgICBvbkZvY3VzVmlzaWJsZShmb2N1c1Zpc2libGU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c1Zpc2libGUoZm9jdXNWaXNpYmxlKTtcbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xuICAgIH1cbn1cbiJdfQ==
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtYmxvY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2NoZWNrYm94LWJsb2NrLyIsInNvdXJjZXMiOlsiY2hlY2tib3gtYmxvY2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLGVBQWUsRUFDZiwyQkFBMkIsRUFDM0IsY0FBYyxHQUdqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsYUFBYSxFQUNiLHNCQUFzQixFQUN0QixnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLFFBQVEsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBY3ZFO0lBQ1ksNkNBQW1DO0lBcUIzQyxtQ0FJSSxPQUF5QixFQUNFLGlCQUFvQyxFQUc5QyxhQUFzQztRQVIzRCxZQVVJLGtCQUFNLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxTQUNwQztRQUhvQixtQkFBYSxHQUFiLGFBQWEsQ0FBeUI7UUFwQjNELGtCQUFZLEdBQTJCLE9BQU8sQ0FBQztRQUsvQyxrQkFBWSxHQUFHLEtBQUssQ0FBQztRQUtyQixVQUFJLEdBQXdCLEdBQUcsQ0FBQzs7SUFhaEMsQ0FBQztrQ0FqQ1EseUJBQXlCO0lBbUNsQyxzQkFBSSw2REFBc0I7YUFBMUI7WUFDSSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsc0JB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VixXQUFBLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO09BN0JwQix5QkFBeUIsQ0FpRnJDO0lBQUQsZ0NBQUM7Q0FBQSxBQWpGRCxDQUNZLDBCQUEwQixHQWdGckM7U0FqRlkseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2wsXG4gICAgaXNOYXRpdmVGb2N1c2VkLFxuICAgIFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFR1aUFwcGVhcmFuY2UsXG4gICAgVHVpSG9yaXpvbnRhbERpcmVjdGlvbixcbiAgICBUdWlNb2RlRGlyZWN0aXZlLFxuICAgIFR1aVNpemVMLFxuICAgIFR1aVNpemVTLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aUNoZWNrYm94Q29tcG9uZW50fSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvY2hlY2tib3gnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1jaGVja2JveC1ibG9jaycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LWJsb2NrLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NoZWNrYm94LWJsb2NrLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpQ2hlY2tib3hCbG9ja0NvbXBvbmVudCksXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpQ2hlY2tib3hCbG9ja0NvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8Ym9vbGVhbj5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoVHVpQ2hlY2tib3hDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGVja2JveD86IFR1aUNoZWNrYm94Q29tcG9uZW50O1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10dWktaG9zdC1hbGlnbicpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBjb250ZW50QWxpZ246IFR1aUhvcml6b250YWxEaXJlY3Rpb24gPSAncmlnaHQnO1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9oaWRkZW5fY2hlY2tib3gnKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaGlkZUNoZWNrYm94ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXR1aS1ob3N0LXNpemUnKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2l6ZTogVHVpU2l6ZVMgfCBUdWlTaXplTCA9ICdsJztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVHVpTW9kZURpcmVjdGl2ZSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtb2RlRGlyZWN0aXZlOiBUdWlNb2RlRGlyZWN0aXZlIHwgbnVsbCxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tib3ggPyB0aGlzLmNoZWNrYm94Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgOiBudWxsO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2FjdGl2ZScpXG4gICAgZ2V0IGNoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlICE9PSBmYWxzZSAmJiB0aGlzLmhpZGVDaGVja2JveDtcbiAgICB9XG5cbiAgICBnZXQgY2hlY2tib3hTaXplKCk6IFR1aVNpemVMIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2l6ZSA9PT0gJ2wnID8gJ2wnIDogJ20nO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaXNOYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgZ2V0IGFwcGVhcmFuY2UoKTogVHVpQXBwZWFyYW5jZSB7XG4gICAgICAgIGlmICghdGhpcy5tb2RlRGlyZWN0aXZlIHx8ICF0aGlzLm1vZGVEaXJlY3RpdmUubW9kZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tlZFxuICAgICAgICAgICAgICAgID8gVHVpQXBwZWFyYW5jZS5XaGl0ZWJsb2NrQWN0aXZlXG4gICAgICAgICAgICAgICAgOiBUdWlBcHBlYXJhbmNlLldoaXRlYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5jaGVja2VkID8gVHVpQXBwZWFyYW5jZS5QcmltYXJ5IDogVHVpQXBwZWFyYW5jZS5TZWNvbmRhcnk7XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBvblByZXNzZWQocHJlc3NlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZVByZXNzZWQocHJlc3NlZCk7XG4gICAgfVxuXG4gICAgb25Gb2N1c1Zpc2libGUoZm9jdXNWaXNpYmxlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNWaXNpYmxlKGZvY3VzVmlzaWJsZSk7XG4gICAgfVxuXG4gICAgb25Nb2RlbENoYW5nZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICB9XG59XG4iXX0=
@@ -86,4 +86,4 @@ var TuiCheckboxLabeledComponent = /** @class */ (function (_super) {
86
86
  return TuiCheckboxLabeledComponent;
87
87
  }(AbstractTuiNullableControl));
88
88
  export { TuiCheckboxLabeledComponent };
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtbGFiZWxlZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvY2hlY2tib3gtbGFiZWxlZC8iLCJzb3VyY2VzIjpbImNoZWNrYm94LWxhYmVsZWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLGVBQWUsRUFDZiwyQkFBMkIsRUFDM0IsY0FBYyxHQUdqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsYUFBYSxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBY3ZFO0lBQ1ksK0NBQW1DO0lBVzNDLHFDQUlJLE9BQXlCLEVBQ0UsaUJBQW9DLEVBRzlDLGFBQXNDO1FBUjNELFlBVUksa0JBQU0sT0FBTyxFQUFFLGlCQUFpQixDQUFDLFNBQ3BDO1FBSG9CLG1CQUFhLEdBQWIsYUFBYSxDQUF5QjtRQVYzRCxVQUFJLEdBQWEsR0FBRyxDQUFDOztJQWFyQixDQUFDO29DQXZCUSwyQkFBMkI7SUF5QnBDLHNCQUFJLGdEQUFPO2FBQVg7WUFDSSxPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUN4RCxDQUFDOzs7T0FBQTtJQUVELHNCQUFJLCtEQUFzQjthQUExQjtZQUNJLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3ZFLENBQUM7OztPQUFBO0lBR0Qsc0JBQUksaURBQVE7YUFBWjtZQUNJLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMvRCxDQUFDOzs7T0FBQTtJQUVELCtDQUFTLEdBQVQsVUFBVSxPQUFnQjtRQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCwrQ0FBUyxHQUFULFVBQVUsT0FBZ0I7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsK0NBQVMsR0FBVCxVQUFVLE9BQWdCO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELG1EQUFhLEdBQWIsVUFBYyxLQUFjO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7O2dCQXBDWSxTQUFTLHVCQUhqQixRQUFRLFlBQ1IsSUFBSSxZQUNKLE1BQU0sU0FBQyxTQUFTO2dCQUU2QixpQkFBaUIsdUJBQTlELE1BQU0sU0FBQyxpQkFBaUI7Z0JBR08sZ0JBQWdCLHVCQUYvQyxRQUFRLFlBQ1IsTUFBTSxTQUFDLGdCQUFnQjs7SUFkNUI7UUFEQyxTQUFTLENBQUMsb0JBQW9CLENBQUM7aUVBQ1E7SUFLeEM7UUFIQyxLQUFLLEVBQUU7UUFDUCxXQUFXLENBQUMseUJBQXlCLENBQUM7UUFDdEMsY0FBYyxFQUFFOzZEQUNJO0lBd0JyQjtRQURDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQzsrREFHN0I7SUFwQ1EsMkJBQTJCO1FBWnZDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxzQkFBc0I7WUFDaEMsK3dCQUErQztZQUUvQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtZQUMvQyxTQUFTLEVBQUU7Z0JBQ1A7b0JBQ0ksT0FBTyxFQUFFLDJCQUEyQjtvQkFDcEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxjQUFNLE9BQUEsNkJBQTJCLEVBQTNCLENBQTJCLENBQUM7aUJBQzdEO2FBQ0o7O1NBQ0osQ0FBQztRQWNPLFdBQUEsUUFBUSxFQUFFLENBQUE7UUFDVixXQUFBLElBQUksRUFBRSxDQUFBO1FBQ04sV0FBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7UUFFakIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUN6QixXQUFBLFFBQVEsRUFBRSxDQUFBO1FBQ1YsV0FBQSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtPQW5CcEIsMkJBQTJCLENBcUR2QztJQUFELGtDQUFDO0NBQUEsQUFyREQsQ0FDWSwwQkFBMEIsR0FvRHJDO1NBckRZLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sLFxuICAgIGlzTmF0aXZlRm9jdXNlZCxcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlCcmlnaHRuZXNzLCBUdWlNb2RlRGlyZWN0aXZlLCBUdWlTaXplTH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlDaGVja2JveENvbXBvbmVudH0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2NoZWNrYm94JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktY2hlY2tib3gtbGFiZWxlZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LWxhYmVsZWQudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3gtbGFiZWxlZC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aUNoZWNrYm94TGFiZWxlZENvbXBvbmVudCksXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpQ2hlY2tib3hMYWJlbGVkQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbDxib29sZWFuPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZChUdWlDaGVja2JveENvbXBvbmVudClcbiAgICBwcml2YXRlIGNoZWNrYm94PzogVHVpQ2hlY2tib3hDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXR1aS1ob3N0LXNpemUnKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2l6ZTogVHVpU2l6ZUwgPSAnbSc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFR1aU1vZGVEaXJlY3RpdmUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbW9kZURpcmVjdGl2ZTogVHVpTW9kZURpcmVjdGl2ZSB8IG51bGwsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzTmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tib3ggPyB0aGlzLmNoZWNrYm94Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgOiBudWxsO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLW1vZGUnKVxuICAgIGdldCBob3N0TW9kZSgpOiBUdWlCcmlnaHRuZXNzIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVEaXJlY3RpdmUgPyB0aGlzLm1vZGVEaXJlY3RpdmUubW9kZSA6IG51bGw7XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBvblByZXNzZWQocHJlc3NlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZVByZXNzZWQocHJlc3NlZCk7XG4gICAgfVxuXG4gICAgb25Nb2RlbENoYW5nZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICB9XG59XG4iXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtbGFiZWxlZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvY2hlY2tib3gtbGFiZWxlZC8iLCJzb3VyY2VzIjpbImNoZWNrYm94LWxhYmVsZWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLGVBQWUsRUFDZiwyQkFBMkIsRUFDM0IsY0FBYyxHQUdqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsYUFBYSxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBY3ZFO0lBQ1ksK0NBQW1DO0lBVzNDLHFDQUlJLE9BQXlCLEVBQ0UsaUJBQW9DLEVBRzlDLGFBQXNDO1FBUjNELFlBVUksa0JBQU0sT0FBTyxFQUFFLGlCQUFpQixDQUFDLFNBQ3BDO1FBSG9CLG1CQUFhLEdBQWIsYUFBYSxDQUF5QjtRQVYzRCxVQUFJLEdBQWEsR0FBRyxDQUFDOztJQWFyQixDQUFDO29DQXZCUSwyQkFBMkI7SUF5QnBDLHNCQUFJLGdEQUFPO2FBQVg7WUFDSSxPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUN4RCxDQUFDOzs7T0FBQTtJQUVELHNCQUFJLCtEQUFzQjthQUExQjtZQUNJLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3ZFLENBQUM7OztPQUFBO0lBR0Qsc0JBQUksaURBQVE7YUFBWjtZQUNJLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMvRCxDQUFDOzs7T0FBQTtJQUVELCtDQUFTLEdBQVQsVUFBVSxPQUFnQjtRQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCwrQ0FBUyxHQUFULFVBQVUsT0FBZ0I7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsK0NBQVMsR0FBVCxVQUFVLE9BQWdCO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELG1EQUFhLEdBQWIsVUFBYyxLQUFjO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7O2dCQXBDWSxTQUFTLHVCQUhqQixRQUFRLFlBQ1IsSUFBSSxZQUNKLE1BQU0sU0FBQyxTQUFTO2dCQUU2QixpQkFBaUIsdUJBQTlELE1BQU0sU0FBQyxpQkFBaUI7Z0JBR08sZ0JBQWdCLHVCQUYvQyxRQUFRLFlBQ1IsTUFBTSxTQUFDLGdCQUFnQjs7SUFkNUI7UUFEQyxTQUFTLENBQUMsb0JBQW9CLENBQUM7aUVBQ2lCO0lBS2pEO1FBSEMsS0FBSyxFQUFFO1FBQ1AsV0FBVyxDQUFDLHlCQUF5QixDQUFDO1FBQ3RDLGNBQWMsRUFBRTs2REFDSTtJQXdCckI7UUFEQyxXQUFXLENBQUMsZ0JBQWdCLENBQUM7K0RBRzdCO0lBcENRLDJCQUEyQjtRQVp2QyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsc0JBQXNCO1lBQ2hDLCt3QkFBK0M7WUFFL0MsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07WUFDL0MsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSwyQkFBMkI7b0JBQ3BDLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLDZCQUEyQixFQUEzQixDQUEyQixDQUFDO2lCQUM3RDthQUNKOztTQUNKLENBQUM7UUFjTyxXQUFBLFFBQVEsRUFBRSxDQUFBO1FBQ1YsV0FBQSxJQUFJLEVBQUUsQ0FBQTtRQUNOLFdBQUEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBRWpCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDekIsV0FBQSxRQUFRLEVBQUUsQ0FBQTtRQUNWLFdBQUEsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7T0FuQnBCLDJCQUEyQixDQXFEdkM7SUFBRCxrQ0FBQztDQUFBLEFBckRELENBQ1ksMEJBQTBCLEdBb0RyQztTQXJEWSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbCxcbiAgICBpc05hdGl2ZUZvY3VzZWQsXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICBUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50LFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpQnJpZ2h0bmVzcywgVHVpTW9kZURpcmVjdGl2ZSwgVHVpU2l6ZUx9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VHVpQ2hlY2tib3hDb21wb25lbnR9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9jaGVja2JveCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWNoZWNrYm94LWxhYmVsZWQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC1sYWJlbGVkLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NoZWNrYm94LWxhYmVsZWQuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlDaGVja2JveExhYmVsZWRDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUNoZWNrYm94TGFiZWxlZENvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8Ym9vbGVhbj5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoVHVpQ2hlY2tib3hDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGVja2JveD86IFR1aUNoZWNrYm94Q29tcG9uZW50O1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10dWktaG9zdC1zaXplJylcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNpemU6IFR1aVNpemVMID0gJ20nO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUdWlNb2RlRGlyZWN0aXZlKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGVEaXJlY3RpdmU6IFR1aU1vZGVEaXJlY3RpdmUgfCBudWxsLFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc05hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrYm94ID8gdGhpcy5jaGVja2JveC5uYXRpdmVGb2N1c2FibGVFbGVtZW50IDogbnVsbDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1tb2RlJylcbiAgICBnZXQgaG9zdE1vZGUoKTogVHVpQnJpZ2h0bmVzcyB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlRGlyZWN0aXZlID8gdGhpcy5tb2RlRGlyZWN0aXZlLm1vZGUgOiBudWxsO1xuICAgIH1cblxuICAgIG9uRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcbiAgICB9XG5cbiAgICBvbkhvdmVyZWQoaG92ZXJlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUhvdmVyZWQoaG92ZXJlZCk7XG4gICAgfVxuXG4gICAgb25QcmVzc2VkKHByZXNzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVQcmVzc2VkKHByZXNzZWQpO1xuICAgIH1cblxuICAgIG9uTW9kZWxDaGFuZ2UodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgfVxufVxuIl19
@@ -3,7 +3,8 @@ import { ChangeDetectionStrategy, Component, Inject, Input, Optional, Self, } fr
3
3
  import { AbstractControl, FormArrayName, FormGroupDirective, FormGroupName, NgControl, } from '@angular/forms';
4
4
  import { tuiDefaultProp, tuiPure, TuiValidationError } from '@taiga-ui/cdk';
5
5
  import { TUI_VALIDATION_ERRORS } from '@taiga-ui/kit/tokens';
6
- import { EMPTY, merge } from 'rxjs';
6
+ import { EMPTY, isObservable, merge } from 'rxjs';
7
+ import { map } from 'rxjs/operators';
7
8
  var EMPTY_RECORD = {};
8
9
  // @dynamic
9
10
  var TuiFieldErrorComponent = /** @class */ (function () {
@@ -33,6 +34,14 @@ var TuiFieldErrorComponent = /** @class */ (function () {
33
34
  enumerable: true,
34
35
  configurable: true
35
36
  });
37
+ Object.defineProperty(TuiFieldErrorComponent.prototype, "isObservable", {
38
+ get: function () {
39
+ var errorId = this.errorId;
40
+ return isObservable(this.validationErrors[errorId]);
41
+ },
42
+ enumerable: true,
43
+ configurable: true
44
+ });
36
45
  TuiFieldErrorComponent.prototype.registerOnChange = function () { };
37
46
  TuiFieldErrorComponent.prototype.registerOnTouched = function () { };
38
47
  TuiFieldErrorComponent.prototype.setDisabledState = function () { };
@@ -106,9 +115,13 @@ var TuiFieldErrorComponent = /** @class */ (function () {
106
115
  if (firstError instanceof TuiValidationError) {
107
116
  return firstError;
108
117
  }
109
- return errorContent === undefined && typeof firstError === 'string'
110
- ? new TuiValidationError(firstError)
111
- : new TuiValidationError(errorContent || '', firstError);
118
+ if (errorContent === undefined && typeof firstError === 'string') {
119
+ return new TuiValidationError(firstError);
120
+ }
121
+ if (isObservable(errorContent)) {
122
+ return errorContent.pipe(map(function (error) { return new TuiValidationError(error || '', firstError); }));
123
+ }
124
+ return new TuiValidationError(errorContent || '', firstError);
112
125
  };
113
126
  TuiFieldErrorComponent.ctorParameters = function () { return [
114
127
  { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
@@ -136,7 +149,7 @@ var TuiFieldErrorComponent = /** @class */ (function () {
136
149
  // @bad TODO: find a way to get 'touched' state change
137
150
  // https://github.com/angular/angular/issues/10887
138
151
  changeDetection: ChangeDetectionStrategy.Default,
139
- template: "<ng-container *ngIf=\"change$ | async\"></ng-container>\n<tui-error [error]=\"computedError\"></tui-error>\n",
152
+ template: "<ng-container *ngIf=\"change$ | async\"></ng-container>\n<tui-error\n *ngIf=\"isObservable; else string\"\n [error]=\"$any(computedError) | async\"\n></tui-error>\n<ng-template #string>\n <tui-error [error]=\"computedError\"></tui-error>\n</ng-template>\n",
140
153
  styles: [":host{display:block}"]
141
154
  }),
142
155
  __param(0, Optional()),
@@ -156,4 +169,4 @@ var TuiFieldErrorComponent = /** @class */ (function () {
156
169
  return TuiFieldErrorComponent;
157
170
  }());
158
171
  export { TuiFieldErrorComponent };
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2ZpZWxkLWVycm9yLyIsInNvdXJjZXMiOlsiZmllbGQtZXJyb3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILGVBQWUsRUFDZixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixTQUFTLEdBQ1osTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsY0FBYyxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRCxPQUFPLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUU5QyxJQUFNLFlBQVksR0FBRyxFQUFFLENBQUM7QUFFeEIsV0FBVztBQVNYO0lBS0ksZ0NBSXFCLFNBQTJCLEVBSTNCLGFBQW1DLEVBSW5DLGFBQW1DLEVBSW5DLFNBQW9DLEVBRXBDLGdCQUFxRDtRQWRyRCxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUkzQixrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFJbkMsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBSW5DLGNBQVMsR0FBVCxTQUFTLENBQTJCO1FBRXBDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBcUM7UUFwQjFFLFVBQUssR0FBc0IsRUFBRSxDQUFDO1FBc0IxQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1NBQ3ZDO0lBQ0wsQ0FBQztJQUdELHNCQUFJLDJDQUFP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Q0FBQyxDQUFBO1FBRXJCLFdBQUEsUUFBUSxFQUFFLENBQUE7UUFDVixXQUFBLElBQUksRUFBRSxDQUFBO1FBQ04sV0FBQSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7UUFFckIsV0FBQSxRQUFRLEVBQUUsQ0FBQTtRQUNWLFdBQUEsSUFBSSxFQUFFLENBQUE7UUFDTixXQUFBLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBRTFCLFdBQUEsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUE7T0F0QnpCLHNCQUFzQixDQTJIbEM7SUFBRCw2QkFBQztDQUFBLEFBM0hELElBMkhDO1NBM0hZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RDb250cm9sLFxuICAgIEZvcm1BcnJheU5hbWUsXG4gICAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIEZvcm1Hcm91cE5hbWUsXG4gICAgTmdDb250cm9sLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge3R1aURlZmF1bHRQcm9wLCB0dWlQdXJlLCBUdWlWYWxpZGF0aW9uRXJyb3J9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUVUlfVkFMSURBVElPTl9FUlJPUlN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7RU1QVFksIG1lcmdlLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuY29uc3QgRU1QVFlfUkVDT1JEID0ge307XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1maWVsZC1lcnJvcicsXG4gICAgLy8gQGJhZCBUT0RPOiBmaW5kIGEgd2F5IHRvIGdldCAndG91Y2hlZCcgc3RhdGUgY2hhbmdlXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTA4ODdcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpZWxkLWVycm9yLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZpZWxkLWVycm9yLnN0eWxlLmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRmllbGRFcnJvckNvbXBvbmVudCB7XG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG9yZGVyOiByZWFkb25seSBzdHJpbmdbXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoRm9ybUFycmF5TmFtZSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmb3JtQXJyYXlOYW1lOiBGb3JtQXJyYXlOYW1lIHwgbnVsbCxcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KEZvcm1Hcm91cE5hbWUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUdyb3VwTmFtZTogRm9ybUdyb3VwTmFtZSB8IG51bGwsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChGb3JtR3JvdXBEaXJlY3RpdmUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmUgfCBudWxsLFxuICAgICAgICBASW5qZWN0KFRVSV9WQUxJREFUSU9OX0VSUk9SUylcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB2YWxpZGF0aW9uRXJyb3JzOiBSZWNvcmQ8c3RyaW5nLCBQb2x5bW9ycGhldXNDb250ZW50PixcbiAgICApIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgZ2V0IGNoYW5nZSQoKTogT2JzZXJ2YWJsZTx1bmtub3duPiB7XG4gICAgICAgIHJldHVybiBtZXJnZShcbiAgICAgICAgICAgIHRoaXMuY29udHJvbD8udmFsdWVDaGFuZ2VzIHx8IEVNUFRZLFxuICAgICAgICAgICAgdGhpcy5jb250cm9sPy5zdGF0dXNDaGFuZ2VzIHx8IEVNUFRZLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZEVycm9yKCk6IFR1aVZhbGlkYXRpb25FcnJvciB8IG51bGwge1xuICAgICAgICByZXR1cm4gKHRoaXMuaW52YWxpZCAmJiB0aGlzLnRvdWNoZWQgJiYgdGhpcy5lcnJvcikgfHwgbnVsbDtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKCkge31cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKCkge31cblxuICAgIHNldERpc2FibGVkU3RhdGUoKSB7fVxuXG4gICAgd3JpdGVWYWx1ZSgpIHt9XG5cbiAgICBwcml2YXRlIGdldCBlcnJvcigpOiBUdWlWYWxpZGF0aW9uRXJyb3IgfCBudWxsIHtcbiAgICAgICAgY29uc3Qge2Vycm9ySWR9ID0gdGhpcztcblxuICAgICAgICBpZiAoIWVycm9ySWQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlyc3RFcnJvciA9IHRoaXMuY29udHJvbEVycm9yc1tlcnJvcklkXTtcbiAgICAgICAgY29uc3QgZXJyb3JDb250ZW50ID0gdGhpcy52YWxpZGF0aW9uRXJyb3JzW2Vycm9ySWRdO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmdldEVycm9yKGZpcnN0RXJyb3IsIGVycm9yQ29udGVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5jb250cm9sICYmIHRoaXMuY29udHJvbC5pbnZhbGlkO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHRvdWNoZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuY29udHJvbCAmJiB0aGlzLmNvbnRyb2wudG91Y2hlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBjb250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB8IG51bGwge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbC5jb250cm9sO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybUFycmF5TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUFycmF5TmFtZS5jb250cm9sO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwTmFtZS5jb250cm9sO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAuY29udHJvbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGVycm9ySWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RXJyb3JJZCh0aGlzLm9yZGVyLCB0aGlzLmNvbnRyb2xFcnJvcnMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGNvbnRyb2xFcnJvcnMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgICAgIHJldHVybiAodGhpcy5jb250cm9sICYmIHRoaXMuY29udHJvbC5lcnJvcnMpIHx8IEVNUFRZX1JFQ09SRDtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZ2V0RXJyb3JJZChcbiAgICAgICAgb3JkZXI6IHJlYWRvbmx5IHN0cmluZ1tdLFxuICAgICAgICBjb250cm9sRXJyb3JzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgICk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGlkID0gb3JkZXIgJiYgb3JkZXIuZmluZChlcnJvcklkID0+IGNvbnRyb2xFcnJvcnNbZXJyb3JJZF0pO1xuICAgICAgICBjb25zdCBmYWxsYmFjayA9IE9iamVjdC5rZXlzKGNvbnRyb2xFcnJvcnMpWzBdO1xuXG4gICAgICAgIHJldHVybiBpZCB8fCBmYWxsYmFjayB8fCAnJztcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZ2V0RXJyb3IoXG4gICAgICAgIGZpcnN0RXJyb3I6IGFueSxcbiAgICAgICAgZXJyb3JDb250ZW50PzogUG9seW1vcnBoZXVzQ29udGVudCxcbiAgICApOiBUdWlWYWxpZGF0aW9uRXJyb3IgfCBudWxsIHtcbiAgICAgICAgaWYgKGZpcnN0RXJyb3IgaW5zdGFuY2VvZiBUdWlWYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBmaXJzdEVycm9yO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVycm9yQ29udGVudCA9PT0gdW5kZWZpbmVkICYmIHR5cGVvZiBmaXJzdEVycm9yID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgPyBuZXcgVHVpVmFsaWRhdGlvbkVycm9yKGZpcnN0RXJyb3IpXG4gICAgICAgICAgICA6IG5ldyBUdWlWYWxpZGF0aW9uRXJyb3IoZXJyb3JDb250ZW50IHx8ICcnLCBmaXJzdEVycm9yKTtcbiAgICB9XG59XG4iXX0=
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2ZpZWxkLWVycm9yLyIsInNvdXJjZXMiOlsiZmllbGQtZXJyb3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILGVBQWUsRUFDZixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixTQUFTLEdBQ1osTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsY0FBYyxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRCxPQUFPLEVBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLElBQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQztBQUV4QixXQUFXO0FBU1g7SUFLSSxnQ0FJcUIsU0FBMkIsRUFJM0IsYUFBbUMsRUFJbkMsYUFBbUMsRUFJbkMsU0FBb0MsRUFFcEMsZ0JBR2hCO1FBakJnQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUkzQixrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFJbkMsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBSW5DLGNBQVMsR0FBVCxTQUFTLENBQTJCO1FBRXBDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FHaEM7UUF2QkwsVUFBSyxHQUFzQixFQUFFLENBQUM7UUF5QjFCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixJQUFJLENBQUMsU0FBUyxDQUFD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K0I5QjtRQURDLE9BQU87eURBTVA7SUFzRUQ7UUFEQyxPQUFPOzREQVNQO0lBR0Q7UUFEQyxPQUFPOzBEQW9CUDtJQTNJUSxzQkFBc0I7UUFSbEMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixzREFBc0Q7WUFDdEQsa0RBQWtEO1lBQ2xELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxPQUFPO1lBQ2hELG9SQUEwQzs7U0FFN0MsQ0FBQztRQU9PLFdBQUEsUUFBUSxFQUFFLENBQUE7UUFDVixXQUFBLElBQUksRUFBRSxDQUFBO1FBQ04sV0FBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7UUFFakIsV0FBQSxRQUFRLEVBQUUsQ0FBQTtRQUNWLFdBQUEsSUFBSSxFQUFFLENBQUE7UUFDTixXQUFBLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUVyQixXQUFBLFFBQVEsRUFBRSxDQUFBO1FBQ1YsV0FBQSxJQUFJLEVBQUUsQ0FBQTtRQUNOLFdBQUEsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBRXJCLFdBQUEsUUFBUSxFQUFFLENBQUE7UUFDVixXQUFBLElBQUksRUFBRSxDQUFBO1FBQ04sV0FBQSxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUUxQixXQUFBLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO09BdEJ6QixzQkFBc0IsQ0E0SWxDO0lBQUQsNkJBQUM7Q0FBQSxBQTVJRCxJQTRJQztTQTVJWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBGb3JtQXJyYXlOYW1lLFxuICAgIEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICBGb3JtR3JvdXBOYW1lLFxuICAgIE5nQ29udHJvbCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHt0dWlEZWZhdWx0UHJvcCwgdHVpUHVyZSwgVHVpVmFsaWRhdGlvbkVycm9yfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VFVJX1ZBTElEQVRJT05fRVJST1JTfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge0VNUFRZLCBpc09ic2VydmFibGUsIG1lcmdlLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IEVNUFRZX1JFQ09SRCA9IHt9O1xuXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktZmllbGQtZXJyb3InLFxuICAgIC8vIEBiYWQgVE9ETzogZmluZCBhIHdheSB0byBnZXQgJ3RvdWNoZWQnIHN0YXRlIGNoYW5nZVxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzEwODg3XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWVsZC1lcnJvci50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9maWVsZC1lcnJvci5zdHlsZS5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUZpZWxkRXJyb3JDb21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBvcmRlcjogcmVhZG9ubHkgc3RyaW5nW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG5nQ29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KEZvcm1BcnJheU5hbWUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUFycmF5TmFtZTogRm9ybUFycmF5TmFtZSB8IG51bGwsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChGb3JtR3JvdXBOYW1lKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1Hcm91cE5hbWU6IEZvcm1Hcm91cE5hbWUgfCBudWxsLFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoRm9ybUdyb3VwRGlyZWN0aXZlKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1Hcm91cDogRm9ybUdyb3VwRGlyZWN0aXZlIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChUVUlfVkFMSURBVElPTl9FUlJPUlMpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdmFsaWRhdGlvbkVycm9yczogUmVjb3JkPFxuICAgICAgICAgICAgc3RyaW5nLFxuICAgICAgICAgICAgUG9seW1vcnBoZXVzQ29udGVudCB8IE9ic2VydmFibGU8UG9seW1vcnBoZXVzQ29udGVudD5cbiAgICAgICAgPixcbiAgICApIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgZ2V0IGNoYW5nZSQoKTogT2JzZXJ2YWJsZTx1bmtub3duPiB7XG4gICAgICAgIHJldHVybiBtZXJnZShcbiAgICAgICAgICAgIHRoaXMuY29udHJvbD8udmFsdWVDaGFuZ2VzIHx8IEVNUFRZLFxuICAgICAgICAgICAgdGhpcy5jb250cm9sPy5zdGF0dXNDaGFuZ2VzIHx8IEVNUFRZLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZEVycm9yKCk6IFR1aVZhbGlkYXRpb25FcnJvciB8IE9ic2VydmFibGU8VHVpVmFsaWRhdGlvbkVycm9yPiB8IG51bGwge1xuICAgICAgICByZXR1cm4gKHRoaXMuaW52YWxpZCAmJiB0aGlzLnRvdWNoZWQgJiYgdGhpcy5lcnJvcikgfHwgbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgaXNPYnNlcnZhYmxlKCkge1xuICAgICAgICBjb25zdCB7ZXJyb3JJZH0gPSB0aGlzO1xuXG4gICAgICAgIHJldHVybiBpc09ic2VydmFibGUodGhpcy52YWxpZGF0aW9uRXJyb3JzW2Vycm9ySWRdKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKCkge31cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKCkge31cblxuICAgIHNldERpc2FibGVkU3RhdGUoKSB7fVxuXG4gICAgd3JpdGVWYWx1ZSgpIHt9XG5cbiAgICBwcml2YXRlIGdldCBlcnJvcigpOiBUdWlWYWxpZGF0aW9uRXJyb3IgfCBPYnNlcnZhYmxlPFR1aVZhbGlkYXRpb25FcnJvcj4gfCBudWxsIHtcbiAgICAgICAgY29uc3Qge2Vycm9ySWR9ID0gdGhpcztcblxuICAgICAgICBpZiAoIWVycm9ySWQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlyc3RFcnJvciA9IHRoaXMuY29udHJvbEVycm9yc1tlcnJvcklkXTtcbiAgICAgICAgY29uc3QgZXJyb3JDb250ZW50ID0gdGhpcy52YWxpZGF0aW9uRXJyb3JzW2Vycm9ySWRdO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmdldEVycm9yKGZpcnN0RXJyb3IsIGVycm9yQ29udGVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5jb250cm9sICYmIHRoaXMuY29udHJvbC5pbnZhbGlkO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHRvdWNoZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuY29udHJvbCAmJiB0aGlzLmNvbnRyb2wudG91Y2hlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBjb250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB8IG51bGwge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbC5jb250cm9sO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybUFycmF5TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUFycmF5TmFtZS5jb250cm9sO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwTmFtZS5jb250cm9sO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAuY29udHJvbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGVycm9ySWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RXJyb3JJZCh0aGlzLm9yZGVyLCB0aGlzLmNvbnRyb2xFcnJvcnMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGNvbnRyb2xFcnJvcnMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgICAgIHJldHVybiAodGhpcy5jb250cm9sICYmIHRoaXMuY29udHJvbC5lcnJvcnMpIHx8IEVNUFRZX1JFQ09SRDtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZ2V0RXJyb3JJZChcbiAgICAgICAgb3JkZXI6IHJlYWRvbmx5IHN0cmluZ1tdLFxuICAgICAgICBjb250cm9sRXJyb3JzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgICk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGlkID0gb3JkZXIgJiYgb3JkZXIuZmluZChlcnJvcklkID0+IGNvbnRyb2xFcnJvcnNbZXJyb3JJZF0pO1xuICAgICAgICBjb25zdCBmYWxsYmFjayA9IE9iamVjdC5rZXlzKGNvbnRyb2xFcnJvcnMpWzBdO1xuXG4gICAgICAgIHJldHVybiBpZCB8fCBmYWxsYmFjayB8fCAnJztcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZ2V0RXJyb3IoXG4gICAgICAgIGZpcnN0RXJyb3I6IGFueSxcbiAgICAgICAgZXJyb3JDb250ZW50PzogUG9seW1vcnBoZXVzQ29udGVudCB8IE9ic2VydmFibGU8UG9seW1vcnBoZXVzQ29udGVudD4sXG4gICAgKTogVHVpVmFsaWRhdGlvbkVycm9yIHwgT2JzZXJ2YWJsZTxUdWlWYWxpZGF0aW9uRXJyb3I+IHwgbnVsbCB7XG4gICAgICAgIGlmIChmaXJzdEVycm9yIGluc3RhbmNlb2YgVHVpVmFsaWRhdGlvbkVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZmlyc3RFcnJvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlcnJvckNvbnRlbnQgPT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgZmlyc3RFcnJvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgVHVpVmFsaWRhdGlvbkVycm9yKGZpcnN0RXJyb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzT2JzZXJ2YWJsZShlcnJvckNvbnRlbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gZXJyb3JDb250ZW50LnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKGVycm9yID0+IG5ldyBUdWlWYWxpZGF0aW9uRXJyb3IoZXJyb3IgfHwgJycsIGZpcnN0RXJyb3IpKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV3IFR1aVZhbGlkYXRpb25FcnJvcihlcnJvckNvbnRlbnQgfHwgJycsIGZpcnN0RXJyb3IpO1xuICAgIH1cbn1cbiJdfQ==
@@ -292,4 +292,4 @@ var TuiInputCountComponent = /** @class */ (function (_super) {
292
292
  return TuiInputCountComponent;
293
293
  }(AbstractTuiControl));
294
294
  export { TuiInputCountComponent };
295
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY291bnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LWNvdW50LyIsInNvdXJjZXMiOlsiaW5wdXQtY291bnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLEtBQUssRUFDTCxlQUFlLEVBQ2YsU0FBUyxFQUNULGdCQUFnQixFQUNoQiwyQkFBMkIsRUFDM0IsYUFBYSxFQUNiLGNBQWMsRUFFZCxPQUFPLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILFlBQVksRUFDWixvQkFBb0IsRUFDcEIsaUJBQWlCLEVBQ2pCLHdCQUF3QixFQUN4QixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLDhCQUE4QixFQUM5QixRQUFRLEVBQ1IsUUFBUSxFQUNSLHlCQUF5QixFQUN6QixrQkFBa0IsRUFDbEIscUJBQXFCLEdBQ3hCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFMUQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVoQyxPQUFPLEVBQW9CLHVCQUF1QixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFakYsV0FBVztBQWFYO0lBQ1ksMENBQTBCO0lBOEJsQyxnQ0FJSSxPQUF5QixFQUNFLGlCQUFvQyxFQUU5QyxVQUFrQixFQUVsQixhQUF3QyxFQUVoRCxXQUF5QyxFQUNWLFFBQWlCLEVBRXpD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LEtBQUssRUFBRTtRQUNQLGNBQWMsRUFBRTswREFDTDtJQUlaO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFOzJEQUNjO0lBd0IvQjtRQURDLE9BQU87eURBVVA7SUFJRDtRQURDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQzsrREFHbEM7SUFpQkQ7UUFEQyxXQUFXLENBQUMseUJBQXlCLENBQUM7c0RBR3RDO0lBdkZRLHNCQUFzQjtRQVpsQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLGdoRUFBMEM7WUFFMUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07WUFDL0MsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSwyQkFBMkI7b0JBQ3BDLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLHdCQUFzQixFQUF0QixDQUFzQixDQUFDO2lCQUN4RDthQUNKOztTQUNKLENBQUM7UUFpQ08sV0FBQSxRQUFRLEVBQUUsQ0FBQTtRQUNWLFdBQUEsSUFBSSxFQUFFLENBQUE7UUFDTixXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUVqQixXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQ3pCLFdBQUEsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUE7UUFFaEMsV0FBQSxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUUxQixXQUFBLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1FBRTVCLFdBQUEsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ3JCLFdBQUEsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUE7UUFFL0IsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtPQTlDckIsc0JBQXNCLENBMlBsQztJQUFELDZCQUFDO0NBQUEsQUEzUEQsQ0FDWSxrQkFBa0IsR0EwUDdCO1NBM1BZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpQ29udHJvbCxcbiAgICBjbGFtcCxcbiAgICBpc05hdGl2ZUZvY3VzZWQsXG4gICAgaXNQcmVzZW50LFxuICAgIHNldE5hdGl2ZUZvY3VzZWQsXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIFRVSV9JU19NT0JJTEUsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIHR1aVB1cmUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBmb3JtYXROdW1iZXIsXG4gICAgTnVtYmVyRm9ybWF0U2V0dGluZ3MsXG4gICAgVFVJX05VTUJFUl9GT1JNQVQsXG4gICAgVFVJX1RFWFRGSUVMRF9BUFBFQVJBTkNFLFxuICAgIFRVSV9URVhURklFTERfU0laRSxcbiAgICB0dWlDcmVhdGVOdW1iZXJNYXNrLFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlTaXplTCxcbiAgICBUdWlTaXplUyxcbiAgICBUdWlUZXh0ZmllbGRTaXplRGlyZWN0aXZlLFxuICAgIFR1aVRleHRNYXNrT3B0aW9ucyxcbiAgICBUdWlXaXRoT3B0aW9uYWxNaW5NYXgsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VFVJX1BMVVNfTUlOVVNfVEVYVFN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7SW5wdXRDb3VudE9wdGlvbnMsIFRVSV9JTlBVVF9DT1VOVF9PUFRJT05TfSBmcm9tICcuL2lucHV0LWNvdW50LW9wdGlvbnMnO1xuXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtY291bnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1jb3VudC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1jb3VudC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aUlucHV0Q291bnRDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0Q291bnRDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpQ29udHJvbDxudW1iZXI+XG4gICAgaW1wbGVtZW50cyBUdWlXaXRoT3B0aW9uYWxNaW5NYXg8bnVtYmVyPiwgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmltaXRpdmVUZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc3RlcCA9IHRoaXMub3B0aW9ucy5zdGVwO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1pbiA9IHRoaXMub3B0aW9ucy5taW47XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWF4ID0gdGhpcy5vcHRpb25zLm1heDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBoaWRlQnV0dG9ucyA9IHRoaXMub3B0aW9ucy5oaWRlQnV0dG9ucztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwcmVmaXggPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwb3N0Zml4ID0gdGhpcy5vcHRpb25zLnBvc3RmaXg7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfQVBQRUFSQU5DRSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhcHBlYXJhbmNlOiBzdHJpbmcsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9TSVpFKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZFNpemU6IFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX1BMVVNfTUlOVVNfVEVYVFMpXG4gICAgICAgIHJlYWRvbmx5IG1pbnVzVGV4dHMkOiBPYnNlcnZhYmxlPFtzdHJpbmcsIHN0cmluZ10+LFxuICAgICAgICBASW5qZWN0KFRVSV9JU19NT0JJTEUpIHByaXZhdGUgcmVhZG9ubHkgaXNNb2JpbGU6IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoVFVJX0lOUFVUX0NPVU5UX09QVElPTlMpXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBvcHRpb25zOiBJbnB1dENvdW50T3B0aW9ucyxcbiAgICAgICAgQEluamVjdChUVUlfTlVNQkVSX0ZPUk1BVClcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBudW1iZXJGb3JtYXQ6IE51bWJlckZvcm1hdFNldHRpbmdzLFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBnZXRNYXNrKGFsbG93TmVnYXRpdmU6IGJvb2xlYW4pOiBUdWlUZXh0TWFza09wdGlvbnMge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWFzazogdHVpQ3JlYXRlTnVtYmVyTWFzayh7XG4gICAgICAgICAgICAgICAgYWxsb3dOZWdhdGl2ZSxcbiAgICAgICAgICAgICAgICBkZWNpbWFsU3ltYm9sOiB0aGlzLm51bWJlckZvcm1hdC5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgICAgIHRob3VzYW5kU3ltYm9sOiB0aGlzLm51bWJlckZvcm1hdC50aG91c2FuZFNlcGFyYXRvcixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgZ3VpZGU6IGZhbHNlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8vIFRPRE86IFJlbW92ZSBpbiB2LjNcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9oaWRlLWJ1dHRvbnMnKVxuICAgIGdldCBidXR0b25zSGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oaWRlQnV0dG9ucyB8fCB0aGlzLmFwcGVhcmFuY2UgPT09ICd0YWJsZSc7XG4gICAgfVxuXG4gICAgZ2V0IGljb25VcCgpOiBQb2x5bW9ycGhldXNDb250ZW50PHt9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuaWNvbnMudXA7XG4gICAgfVxuXG4gICAgZ2V0IGljb25Eb3duKCk6IFBvbHltb3JwaGV1c0NvbnRlbnQ8e30+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5pY29ucy5kb3duO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnByaW1pdGl2ZVRleHRmaWVsZCB8fCB0aGlzLmNvbXB1dGVkRGlzYWJsZWRcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiB0aGlzLnByaW1pdGl2ZVRleHRmaWVsZC5uYXRpdmVGb2N1c2FibGVFbGVtZW50O1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXR1aS1ob3N0LXNpemUnKVxuICAgIGdldCBzaXplKCk6IFR1aVNpemVMIHwgVHVpU2l6ZVMge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGRTaXplLnNpemU7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc05hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBnZXQgZXhhbXBsZVRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFN0cmluZyh0aGlzLm1pbik7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0TnVtYmVyKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBtaW51c0J1dHRvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCB8fFxuICAgICAgICAgICAgdGhpcy5yZWFkT25seSB8fFxuICAgICAgICAgICAgKGlzUHJlc2VudCh0aGlzLnZhbHVlKSAmJiB0aGlzLnZhbHVlIDw9IHRoaXMubWluKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBwbHVzQnV0dG9uRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkIHx8XG4gICAgICAgICAgICB0aGlzLnJlYWRPbmx5IHx8XG4gICAgICAgICAgICAoaXNQcmVzZW50KHRoaXMudmFsdWUpICYmIHRoaXMudmFsdWUgPj0gdGhpcy5tYXgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25CdXR0b25Nb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQsIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKGRpc2FibGVkIHx8ICF0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfHwgdGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgc2V0TmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIG9uRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKSB7XG4gICAgICAgIGlmICghZm9jdXNlZCkge1xuICAgICAgICAgICAgdGhpcy5vbkJsdXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcbiAgICB9XG5cbiAgICBvbkhvdmVyZWQoaG92ZXJlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUhvdmVyZWQoaG92ZXJlZCk7XG4gICAgfVxuXG4gICAgb25QcmVzc2VkKHByZXNzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVQcmVzc2VkKHByZXNzZWQpO1xuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UoKSB7XG4gICAgICAgIGNvbnN0IGNhcHBlZCA9IHRoaXMuY2FwVmFsdWUodGhpcy5uYXRpdmVOdW1iZXJWYWx1ZSk7XG5cbiAgICAgICAgaWYgKGNhcHBlZCA9PT0gbnVsbCB8fCBpc05hTihjYXBwZWQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuZm9ybWF0TnVtYmVyKGNhcHBlZCk7XG5cbiAgICAgICAgaWYgKHRoaXMubmF0aXZlVmFsdWUgIT09IG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gbmV3VmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKGNhcHBlZCk7XG4gICAgfVxuXG4gICAgZGVjcmVhc2VWYWx1ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gKHRoaXMudmFsdWUgfHwgMCkgLSB0aGlzLnN0ZXA7XG5cbiAgICAgICAgdGhpcy5zYWZlVXBkYXRlVmFsdWUobmV3VmFsdWUpO1xuICAgIH1cblxuICAgIGluY3JlYXNlVmFsdWUoKSB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9ICh0aGlzLnZhbHVlIHx8IDApICsgdGhpcy5zdGVwO1xuXG4gICAgICAgIHRoaXMuc2FmZVVwZGF0ZVZhbHVlKG5ld1ZhbHVlKTtcbiAgICB9XG5cbiAgICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICAgICAgY2FzZSAnVXAnOlxuICAgICAgICAgICAgICAgIHRoaXMuaW5jcmVhc2VWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICAgICAgY2FzZSAnRG93bic6XG4gICAgICAgICAgICAgICAgdGhpcy5kZWNyZWFzZVZhbHVlKCk7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmFsbGJhY2tWYWx1ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBuYXRpdmVOdW1iZXJWYWx1ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gcGFyc2VJbnQoXG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlLnNwbGl0KHRoaXMubnVtYmVyRm9ybWF0LnRob3VzYW5kU2VwYXJhdG9yKS5qb2luKCcnKSxcbiAgICAgICAgICAgIDEwLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IG5hdGl2ZVZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgOiAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldCBuYXRpdmVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNhZmVVcGRhdGVWYWx1ZShuZXdWYWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gY2xhbXAobmV3VmFsdWUsIHRoaXMubWluLCB0aGlzLm1heCk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSB0aGlzLmZvcm1hdE51bWJlcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYXBWYWx1ZSh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGNhcHBlZCA9IE1hdGgubWluKHZhbHVlLCB0aGlzLm1heCk7XG5cbiAgICAgICAgcmV0dXJuIGlzTmFOKGNhcHBlZCkgfHwgY2FwcGVkIDwgdGhpcy5taW4gPyBudWxsIDogY2FwcGVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25CbHVyKCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IE1hdGgubWF4KHRoaXMubmF0aXZlTnVtYmVyVmFsdWUgfHwgMCwgdGhpcy5taW4pO1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IHRoaXMuZm9ybWF0TnVtYmVyKHZhbHVlKTtcblxuICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gZm9ybWF0dGVkVmFsdWU7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xuXG4gICAgICAgIGlmICh0aGlzLnByaW1pdGl2ZVRleHRmaWVsZCkge1xuICAgICAgICAgICAgdGhpcy5wcmltaXRpdmVUZXh0ZmllbGQudmFsdWUgPSBmb3JtYXR0ZWRWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZm9ybWF0TnVtYmVyKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyKFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQuZGVjaW1hbFNlcGFyYXRvcixcbiAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0LnRob3VzYW5kU2VwYXJhdG9yLFxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
295
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY291bnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LWNvdW50LyIsInNvdXJjZXMiOlsiaW5wdXQtY291bnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLEtBQUssRUFDTCxlQUFlLEVBQ2YsU0FBUyxFQUNULGdCQUFnQixFQUNoQiwyQkFBMkIsRUFDM0IsYUFBYSxFQUNiLGNBQWMsRUFFZCxPQUFPLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILFlBQVksRUFDWixvQkFBb0IsRUFDcEIsaUJBQWlCLEVBQ2pCLHdCQUF3QixFQUN4QixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLDhCQUE4QixFQUM5QixRQUFRLEVBQ1IsUUFBUSxFQUNSLHlCQUF5QixFQUN6QixrQkFBa0IsRUFDbEIscUJBQXFCLEdBQ3hCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFMUQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVoQyxPQUFPLEVBQW9CLHVCQUF1QixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFakYsV0FBVztBQWFYO0lBQ1ksMENBQTBCO0lBOEJsQyxnQ0FJSSxPQUF5QixFQUNFLGlCQUFvQyxFQUU5QyxVQUFrQixFQUVsQixhQUF3QyxFQUVoRCxXQUF5QyxFQUNWLFFBQWlCLEVBRWhE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LEtBQUssRUFBRTtRQUNQLGNBQWMsRUFBRTswREFDTDtJQUlaO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFOzJEQUNjO0lBd0IvQjtRQURDLE9BQU87eURBVVA7SUFJRDtRQURDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQzsrREFHbEM7SUFpQkQ7UUFEQyxXQUFXLENBQUMseUJBQXlCLENBQUM7c0RBR3RDO0lBdkZRLHNCQUFzQjtRQVpsQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLGdoRUFBMEM7WUFFMUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07WUFDL0MsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSwyQkFBMkI7b0JBQ3BDLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLHdCQUFzQixFQUF0QixDQUFzQixDQUFDO2lCQUN4RDthQUNKOztTQUNKLENBQUM7UUFpQ08sV0FBQSxRQUFRLEVBQUUsQ0FBQTtRQUNWLFdBQUEsSUFBSSxFQUFFLENBQUE7UUFDTixXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUVqQixXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQ3pCLFdBQUEsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUE7UUFFaEMsV0FBQSxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUUxQixXQUFBLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1FBRTVCLFdBQUEsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ3JCLFdBQUEsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUE7UUFFL0IsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtPQTlDckIsc0JBQXNCLENBMlBsQztJQUFELDZCQUFDO0NBQUEsQUEzUEQsQ0FDWSxrQkFBa0IsR0EwUDdCO1NBM1BZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpQ29udHJvbCxcbiAgICBjbGFtcCxcbiAgICBpc05hdGl2ZUZvY3VzZWQsXG4gICAgaXNQcmVzZW50LFxuICAgIHNldE5hdGl2ZUZvY3VzZWQsXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIFRVSV9JU19NT0JJTEUsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIHR1aVB1cmUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBmb3JtYXROdW1iZXIsXG4gICAgTnVtYmVyRm9ybWF0U2V0dGluZ3MsXG4gICAgVFVJX05VTUJFUl9GT1JNQVQsXG4gICAgVFVJX1RFWFRGSUVMRF9BUFBFQVJBTkNFLFxuICAgIFRVSV9URVhURklFTERfU0laRSxcbiAgICB0dWlDcmVhdGVOdW1iZXJNYXNrLFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlTaXplTCxcbiAgICBUdWlTaXplUyxcbiAgICBUdWlUZXh0ZmllbGRTaXplRGlyZWN0aXZlLFxuICAgIFR1aVRleHRNYXNrT3B0aW9ucyxcbiAgICBUdWlXaXRoT3B0aW9uYWxNaW5NYXgsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VFVJX1BMVVNfTUlOVVNfVEVYVFN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7SW5wdXRDb3VudE9wdGlvbnMsIFRVSV9JTlBVVF9DT1VOVF9PUFRJT05TfSBmcm9tICcuL2lucHV0LWNvdW50LW9wdGlvbnMnO1xuXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtY291bnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1jb3VudC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1jb3VudC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aUlucHV0Q291bnRDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0Q291bnRDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpQ29udHJvbDxudW1iZXI+XG4gICAgaW1wbGVtZW50cyBUdWlXaXRoT3B0aW9uYWxNaW5NYXg8bnVtYmVyPiwgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmltaXRpdmVUZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc3RlcCA9IHRoaXMub3B0aW9ucy5zdGVwO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1pbiA9IHRoaXMub3B0aW9ucy5taW47XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWF4ID0gdGhpcy5vcHRpb25zLm1heDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBoaWRlQnV0dG9ucyA9IHRoaXMub3B0aW9ucy5oaWRlQnV0dG9ucztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwcmVmaXggPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwb3N0Zml4ID0gdGhpcy5vcHRpb25zLnBvc3RmaXg7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfQVBQRUFSQU5DRSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhcHBlYXJhbmNlOiBzdHJpbmcsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9TSVpFKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZFNpemU6IFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX1BMVVNfTUlOVVNfVEVYVFMpXG4gICAgICAgIHJlYWRvbmx5IG1pbnVzVGV4dHMkOiBPYnNlcnZhYmxlPFtzdHJpbmcsIHN0cmluZ10+LFxuICAgICAgICBASW5qZWN0KFRVSV9JU19NT0JJTEUpIHByaXZhdGUgcmVhZG9ubHkgaXNNb2JpbGU6IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoVFVJX0lOUFVUX0NPVU5UX09QVElPTlMpXG4gICAgICAgIHJlYWRvbmx5IG9wdGlvbnM6IElucHV0Q291bnRPcHRpb25zLFxuICAgICAgICBASW5qZWN0KFRVSV9OVU1CRVJfRk9STUFUKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG51bWJlckZvcm1hdDogTnVtYmVyRm9ybWF0U2V0dGluZ3MsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIGdldE1hc2soYWxsb3dOZWdhdGl2ZTogYm9vbGVhbik6IFR1aVRleHRNYXNrT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtYXNrOiB0dWlDcmVhdGVOdW1iZXJNYXNrKHtcbiAgICAgICAgICAgICAgICBhbGxvd05lZ2F0aXZlLFxuICAgICAgICAgICAgICAgIGRlY2ltYWxTeW1ib2w6IHRoaXMubnVtYmVyRm9ybWF0LmRlY2ltYWxTZXBhcmF0b3IsXG4gICAgICAgICAgICAgICAgdGhvdXNhbmRTeW1ib2w6IHRoaXMubnVtYmVyRm9ybWF0LnRob3VzYW5kU2VwYXJhdG9yLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBndWlkZTogZmFsc2UsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gVE9ETzogUmVtb3ZlIGluIHYuM1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2hpZGUtYnV0dG9ucycpXG4gICAgZ2V0IGJ1dHRvbnNIaWRkZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhpZGVCdXR0b25zIHx8IHRoaXMuYXBwZWFyYW5jZSA9PT0gJ3RhYmxlJztcbiAgICB9XG5cbiAgICBnZXQgaWNvblVwKCk6IFBvbHltb3JwaGV1c0NvbnRlbnQ8e30+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5pY29ucy51cDtcbiAgICB9XG5cbiAgICBnZXQgaWNvbkRvd24oKTogUG9seW1vcnBoZXVzQ29udGVudDx7fT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmljb25zLmRvd247XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gIXRoaXMucHJpbWl0aXZlVGV4dGZpZWxkIHx8IHRoaXMuY29tcHV0ZWREaXNhYmxlZFxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IHRoaXMucHJpbWl0aXZlVGV4dGZpZWxkLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtdHVpLWhvc3Qtc2l6ZScpXG4gICAgZ2V0IHNpemUoKTogVHVpU2l6ZUwgfCBUdWlTaXplUyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZFNpemUuc2l6ZTtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzTmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIGdldCBleGFtcGxlVGV4dCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gU3RyaW5nKHRoaXMubWluKTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXROdW1iZXIodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IG1pbnVzQnV0dG9uRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkIHx8XG4gICAgICAgICAgICB0aGlzLnJlYWRPbmx5IHx8XG4gICAgICAgICAgICAoaXNQcmVzZW50KHRoaXMudmFsdWUpICYmIHRoaXMudmFsdWUgPD0gdGhpcy5taW4pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IHBsdXNCdXR0b25EaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHxcbiAgICAgICAgICAgIHRoaXMucmVhZE9ubHkgfHxcbiAgICAgICAgICAgIChpc1ByZXNlbnQodGhpcy52YWx1ZSkgJiYgdGhpcy52YWx1ZSA+PSB0aGlzLm1heClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvbkJ1dHRvbk1vdXNlRG93bihldmVudDogTW91c2VFdmVudCwgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICBpZiAoZGlzYWJsZWQgfHwgIXRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8fCB0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKCFmb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLm9uQmx1cigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBvblByZXNzZWQocHJlc3NlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZVByZXNzZWQocHJlc3NlZCk7XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSgpIHtcbiAgICAgICAgY29uc3QgY2FwcGVkID0gdGhpcy5jYXBWYWx1ZSh0aGlzLm5hdGl2ZU51bWJlclZhbHVlKTtcblxuICAgICAgICBpZiAoY2FwcGVkID09PSBudWxsIHx8IGlzTmFOKGNhcHBlZCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5mb3JtYXROdW1iZXIoY2FwcGVkKTtcblxuICAgICAgICBpZiAodGhpcy5uYXRpdmVWYWx1ZSAhPT0gbmV3VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoY2FwcGVkKTtcbiAgICB9XG5cbiAgICBkZWNyZWFzZVZhbHVlKCkge1xuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSAodGhpcy52YWx1ZSB8fCAwKSAtIHRoaXMuc3RlcDtcblxuICAgICAgICB0aGlzLnNhZmVVcGRhdGVWYWx1ZShuZXdWYWx1ZSk7XG4gICAgfVxuXG4gICAgaW5jcmVhc2VWYWx1ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gKHRoaXMudmFsdWUgfHwgMCkgKyB0aGlzLnN0ZXA7XG5cbiAgICAgICAgdGhpcy5zYWZlVXBkYXRlVmFsdWUobmV3VmFsdWUpO1xuICAgIH1cblxuICAgIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgICAgICBjYXNlICdVcCc6XG4gICAgICAgICAgICAgICAgdGhpcy5pbmNyZWFzZVZhbHVlKCk7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgICAgICBjYXNlICdEb3duJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRlY3JlYXNlVmFsdWUoKTtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGYWxsYmFja1ZhbHVlKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IG5hdGl2ZU51bWJlclZhbHVlKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBwYXJzZUludChcbiAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUuc3BsaXQodGhpcy5udW1iZXJGb3JtYXQudGhvdXNhbmRTZXBhcmF0b3IpLmpvaW4oJycpLFxuICAgICAgICAgICAgMTAsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgbmF0aXZlVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCA/IHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA6ICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0IG5hdGl2ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2FmZVVwZGF0ZVZhbHVlKG5ld1ZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBjbGFtcChuZXdWYWx1ZSwgdGhpcy5taW4sIHRoaXMubWF4KTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IHRoaXMuZm9ybWF0TnVtYmVyKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhcFZhbHVlKHZhbHVlOiBudW1iZXIpOiBudW1iZXIgfCBudWxsIHtcbiAgICAgICAgY29uc3QgY2FwcGVkID0gTWF0aC5taW4odmFsdWUsIHRoaXMubWF4KTtcblxuICAgICAgICByZXR1cm4gaXNOYU4oY2FwcGVkKSB8fCBjYXBwZWQgPCB0aGlzLm1pbiA/IG51bGwgOiBjYXBwZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkJsdXIoKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gTWF0aC5tYXgodGhpcy5uYXRpdmVOdW1iZXJWYWx1ZSB8fCAwLCB0aGlzLm1pbik7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gdGhpcy5mb3JtYXROdW1iZXIodmFsdWUpO1xuXG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSBmb3JtYXR0ZWRWYWx1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMucHJpbWl0aXZlVGV4dGZpZWxkKSB7XG4gICAgICAgICAgICB0aGlzLnByaW1pdGl2ZVRleHRmaWVsZC52YWx1ZSA9IGZvcm1hdHRlZFZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb3JtYXROdW1iZXIodmFsdWU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBmb3JtYXROdW1iZXIoXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdC5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQudGhvdXNhbmRTZXBhcmF0b3IsXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19