trm-tmpl 3.2.2 → 3.3.1

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 (384) hide show
  1. package/README.md +24 -24
  2. package/assets/svg/arrow_down.svg +3 -3
  3. package/assets/svg/currencies/brl.svg +5 -5
  4. package/assets/svg/currencies/btc.svg +4 -4
  5. package/assets/svg/currencies/cny.svg +4 -4
  6. package/assets/svg/currencies/eth.svg +9 -9
  7. package/assets/svg/currencies/eur.svg +4 -4
  8. package/assets/svg/currencies/gbp.svg +4 -4
  9. package/assets/svg/currencies/kzt.svg +4 -4
  10. package/assets/svg/currencies/mxn.svg +5 -5
  11. package/assets/svg/currencies/rub.svg +4 -4
  12. package/assets/svg/currencies/trx.svg +11 -11
  13. package/assets/svg/currencies/uah.svg +4 -4
  14. package/assets/svg/currencies/usd.svg +4 -4
  15. package/assets/svg/currencies/usdt.svg +4 -4
  16. package/assets/svg/datepicker.svg +9 -9
  17. package/assets/svg/es.svg +573 -573
  18. package/assets/svg/flags/ab.svg +23 -23
  19. package/assets/svg/flags/os.svg +12 -12
  20. package/assets/svg/flags/other.svg +19 -19
  21. package/assets/svg/pay/advcash.svg +6 -6
  22. package/assets/svg/pay/alfabank.svg +5 -5
  23. package/assets/svg/pay/alipay.svg +5 -5
  24. package/assets/svg/pay/alipay_plus.svg +6 -6
  25. package/assets/svg/pay/applepay.svg +4 -4
  26. package/assets/svg/pay/argentina_bank.svg +74 -74
  27. package/assets/svg/pay/atf24.svg +14 -14
  28. package/assets/svg/pay/baloto.svg +8 -8
  29. package/assets/svg/pay/bancontact.svg +16 -16
  30. package/assets/svg/pay/beeline.svg +19 -19
  31. package/assets/svg/pay/bitcoin.svg +4 -4
  32. package/assets/svg/pay/blik.svg +12 -12
  33. package/assets/svg/pay/boleto.svg +39 -39
  34. package/assets/svg/pay/brazil_bank.svg +27 -27
  35. package/assets/svg/pay/card.svg +4 -4
  36. package/assets/svg/pay/carga_virtual.svg +30 -30
  37. package/assets/svg/pay/cash.svg +6 -6
  38. package/assets/svg/pay/cashtocode.svg +6 -6
  39. package/assets/svg/pay/codi.svg +10 -10
  40. package/assets/svg/pay/comepay.svg +41 -41
  41. package/assets/svg/pay/cup.svg +6 -6
  42. package/assets/svg/pay/cup_bank.svg +10 -10
  43. package/assets/svg/pay/cup_p2p.svg +9 -9
  44. package/assets/svg/pay/deposit_express.svg +8 -8
  45. package/assets/svg/pay/direct_banking_europe.svg +8 -8
  46. package/assets/svg/pay/dotpay.svg +6 -6
  47. package/assets/svg/pay/ecopayz.svg +7 -7
  48. package/assets/svg/pay/eps.svg +6 -6
  49. package/assets/svg/pay/ethereum.svg +9 -9
  50. package/assets/svg/pay/g2a.svg +7 -7
  51. package/assets/svg/pay/giropay.svg +5 -5
  52. package/assets/svg/pay/gmmoney.svg +4 -4
  53. package/assets/svg/pay/googlepay.svg +7 -7
  54. package/assets/svg/pay/ideal.svg +7 -7
  55. package/assets/svg/pay/indonesia_bank.svg +4 -4
  56. package/assets/svg/pay/jeton.svg +4 -4
  57. package/assets/svg/pay/kassa24.svg +10 -10
  58. package/assets/svg/pay/link.svg +14 -14
  59. package/assets/svg/pay/local_card_mexico.svg +16 -16
  60. package/assets/svg/pay/loterica.svg +7 -7
  61. package/assets/svg/pay/malaysia_bank.svg +16 -16
  62. package/assets/svg/pay/mbway.svg +6 -6
  63. package/assets/svg/pay/megafon.svg +5 -5
  64. package/assets/svg/pay/mercado_pago.svg +9 -9
  65. package/assets/svg/pay/mexico_bank.svg +14 -14
  66. package/assets/svg/pay/mirpay.svg +4 -4
  67. package/assets/svg/pay/momopay.svg +4 -4
  68. package/assets/svg/pay/moneta.svg +5 -5
  69. package/assets/svg/pay/mts.svg +4 -4
  70. package/assets/svg/pay/multibanco.svg +6 -6
  71. package/assets/svg/pay/neosurf.svg +4 -4
  72. package/assets/svg/pay/neteller.svg +4 -4
  73. package/assets/svg/pay/nupay.svg +4 -4
  74. package/assets/svg/pay/onecard.svg +6 -6
  75. package/assets/svg/pay/oxxo.svg +8 -8
  76. package/assets/svg/pay/pagoefectivo.svg +4 -4
  77. package/assets/svg/pay/pagoexpress.svg +5 -5
  78. package/assets/svg/pay/pagofacil.svg +5 -5
  79. package/assets/svg/pay/paypal.svg +7 -7
  80. package/assets/svg/pay/paysafecard.svg +5 -5
  81. package/assets/svg/pay/philippines_bank.svg +12 -12
  82. package/assets/svg/pay/picpay.svg +4 -4
  83. package/assets/svg/pay/pix.svg +6 -6
  84. package/assets/svg/pay/polish_bank.svg +4 -4
  85. package/assets/svg/pay/promptpay.svg +4 -4
  86. package/assets/svg/pay/promsviaz.svg +5 -5
  87. package/assets/svg/pay/przelewy24.svg +6 -6
  88. package/assets/svg/pay/qiwi.svg +6 -6
  89. package/assets/svg/pay/rapid.svg +5 -5
  90. package/assets/svg/pay/rapipago.svg +5 -5
  91. package/assets/svg/pay/redcompra.svg +4 -4
  92. package/assets/svg/pay/redpagos.svg +5 -5
  93. package/assets/svg/pay/sberbank.svg +23 -23
  94. package/assets/svg/pay/sbp.svg +11 -11
  95. package/assets/svg/pay/sepa.svg +7 -7
  96. package/assets/svg/pay/servipag.svg +7 -7
  97. package/assets/svg/pay/skinify.svg +5 -5
  98. package/assets/svg/pay/skinpay.svg +4 -4
  99. package/assets/svg/pay/skinsback.svg +4 -4
  100. package/assets/svg/pay/skrill.svg +4 -4
  101. package/assets/svg/pay/sofort.svg +4 -4
  102. package/assets/svg/pay/spei.svg +8 -8
  103. package/assets/svg/pay/steam.svg +15 -15
  104. package/assets/svg/pay/store_mexico.svg +8 -8
  105. package/assets/svg/pay/tele2.svg +4 -4
  106. package/assets/svg/pay/tether.svg +4 -4
  107. package/assets/svg/pay/thailand_bank.svg +10 -10
  108. package/assets/svg/pay/tinkoff.svg +38 -38
  109. package/assets/svg/pay/tron.svg +11 -11
  110. package/assets/svg/pay/trustly.svg +4 -4
  111. package/assets/svg/pay/vietnam_bank.svg +4 -4
  112. package/assets/svg/pay/wallester.svg +35 -35
  113. package/assets/svg/pay/webmoney.svg +4 -4
  114. package/assets/svg/pay/webpay.svg +5 -5
  115. package/assets/svg/pay/wechat.svg +5 -5
  116. package/assets/svg/pay/yandex.svg +5 -5
  117. package/assets/svg/pay/zen_wallet.svg +5 -5
  118. package/assets/svg/pci-dss.svg +19 -19
  119. package/assets/svg/pt.svg +144 -144
  120. package/assets/svg/ru.svg +16 -16
  121. package/assets/svg/status-error.svg +5 -5
  122. package/assets/svg/status-success.svg +4 -4
  123. package/assets/svg/status-wait-rotate.svg +18 -18
  124. package/assets/svg/status-wait.svg +11 -11
  125. package/assets/svg/tr.svg +13 -13
  126. package/assets/svg/us.svg +13 -13
  127. package/assets/svg/wait.svg +11 -11
  128. package/esm2022/lib/app/checkin/checkin.module.mjs +1 -1
  129. package/esm2022/lib/app/checkin/components/checkin-page/checkin-page.component.mjs +3 -3
  130. package/esm2022/lib/app/checkin/components/index.mjs +1 -1
  131. package/esm2022/lib/app/checkin/index.mjs +1 -1
  132. package/esm2022/lib/app/checkin/services/checkin.datasource.mjs +1 -1
  133. package/esm2022/lib/app/checkin/services/index.mjs +1 -1
  134. package/esm2022/lib/app/helpers/hide-init-loader.mjs +1 -1
  135. package/esm2022/lib/app/helpers/i18n-countries.mjs +1 -1
  136. package/esm2022/lib/app/helpers/index.mjs +1 -1
  137. package/esm2022/lib/app/helpers/insertRemoveTrigger.mjs +1 -1
  138. package/esm2022/lib/app/helpers/is-object-the-same.mjs +1 -1
  139. package/esm2022/lib/app/helpers/key-down-handler.mjs +1 -1
  140. package/esm2022/lib/app/helpers/mask-resolver.mjs +1 -1
  141. package/esm2022/lib/app/helpers/phone-codes.mjs +1 -1
  142. package/esm2022/lib/app/helpers/warning-console-message.mjs +1 -1
  143. package/esm2022/lib/app/i18n/i18n-key.enum.mjs +1 -1
  144. package/esm2022/lib/app/i18n/index.mjs +1 -1
  145. package/esm2022/lib/app/i18n/keys.mjs +1 -1
  146. package/esm2022/lib/app/intex.mjs +1 -1
  147. package/esm2022/lib/app/models/cde-terminal-sdk.mjs +1 -1
  148. package/esm2022/lib/app/models/constants.mjs +1 -1
  149. package/esm2022/lib/app/models/http-bad-request-response.mjs +1 -1
  150. package/esm2022/lib/app/models/index.mjs +1 -1
  151. package/esm2022/lib/app/models/mode.mjs +1 -1
  152. package/esm2022/lib/app/models/version-service-base-class.mjs +1 -1
  153. package/esm2022/lib/app/models/version-service-interface.mjs +1 -1
  154. package/esm2022/lib/app/models/version.interface.mjs +1 -1
  155. package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-date/constructor-field-date.component.mjs +3 -3
  156. package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-iframe/card-sdk.service.mjs +1 -1
  157. package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-iframe/constructor-field-iframe.component.mjs +5 -7
  158. package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-iframe/iframe-validator-directive.directive.mjs +1 -1
  159. package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-select/constructor-field-select.component.mjs +3 -3
  160. package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-text/constructor-field-text.component.mjs +3 -3
  161. package/esm2022/lib/app/pages/components/constructor-form/components/constructor-preparation/constructor-preparation.component.mjs +3 -3
  162. package/esm2022/lib/app/pages/components/constructor-form/components/index.mjs +1 -1
  163. package/esm2022/lib/app/pages/components/constructor-form/components/method-amount-hint/method-amount-hint.component.mjs +11 -7
  164. package/esm2022/lib/app/pages/components/constructor-form/components/ps-select/ps-select.component.mjs +3 -3
  165. package/esm2022/lib/app/pages/components/constructor-form/constructor-form.component.mjs +7 -4
  166. package/esm2022/lib/app/pages/components/constructor-form/index.mjs +1 -1
  167. package/esm2022/lib/app/pages/components/constructor-form/models/collection-type.enum.mjs +1 -1
  168. package/esm2022/lib/app/pages/components/constructor-form/models/config/advcash.mjs +1 -1
  169. package/esm2022/lib/app/pages/components/constructor-form/models/config/alfabank.mjs +1 -1
  170. package/esm2022/lib/app/pages/components/constructor-form/models/config/alipay.mjs +1 -1
  171. package/esm2022/lib/app/pages/components/constructor-form/models/config/alipay_plus.mjs +1 -1
  172. package/esm2022/lib/app/pages/components/constructor-form/models/config/all.mjs +1 -1
  173. package/esm2022/lib/app/pages/components/constructor-form/models/config/applepay.mjs +1 -1
  174. package/esm2022/lib/app/pages/components/constructor-form/models/config/argentina_bank.mjs +1 -1
  175. package/esm2022/lib/app/pages/components/constructor-form/models/config/atf24.mjs +1 -1
  176. package/esm2022/lib/app/pages/components/constructor-form/models/config/baloto.mjs +1 -1
  177. package/esm2022/lib/app/pages/components/constructor-form/models/config/beeline.mjs +1 -1
  178. package/esm2022/lib/app/pages/components/constructor-form/models/config/bitcoin.mjs +1 -1
  179. package/esm2022/lib/app/pages/components/constructor-form/models/config/blik.mjs +1 -1
  180. package/esm2022/lib/app/pages/components/constructor-form/models/config/boleto.mjs +1 -1
  181. package/esm2022/lib/app/pages/components/constructor-form/models/config/brazil_bank.mjs +1 -1
  182. package/esm2022/lib/app/pages/components/constructor-form/models/config/card.mjs +1 -1
  183. package/esm2022/lib/app/pages/components/constructor-form/models/config/carga_virtual.mjs +1 -1
  184. package/esm2022/lib/app/pages/components/constructor-form/models/config/cash.mjs +1 -1
  185. package/esm2022/lib/app/pages/components/constructor-form/models/config/cashtocode.mjs +1 -1
  186. package/esm2022/lib/app/pages/components/constructor-form/models/config/codi.mjs +1 -1
  187. package/esm2022/lib/app/pages/components/constructor-form/models/config/comepay.mjs +1 -1
  188. package/esm2022/lib/app/pages/components/constructor-form/models/config/cup.mjs +1 -1
  189. package/esm2022/lib/app/pages/components/constructor-form/models/config/cup_bank.mjs +1 -1
  190. package/esm2022/lib/app/pages/components/constructor-form/models/config/cup_p2p.mjs +1 -1
  191. package/esm2022/lib/app/pages/components/constructor-form/models/config/deposit_express.mjs +1 -1
  192. package/esm2022/lib/app/pages/components/constructor-form/models/config/direct_banking_europe.mjs +1 -1
  193. package/esm2022/lib/app/pages/components/constructor-form/models/config/dotpay.mjs +1 -1
  194. package/esm2022/lib/app/pages/components/constructor-form/models/config/ecopayz.mjs +1 -1
  195. package/esm2022/lib/app/pages/components/constructor-form/models/config/eps.mjs +1 -1
  196. package/esm2022/lib/app/pages/components/constructor-form/models/config/ethereum.mjs +1 -1
  197. package/esm2022/lib/app/pages/components/constructor-form/models/config/giropay.mjs +1 -1
  198. package/esm2022/lib/app/pages/components/constructor-form/models/config/gmmoney.mjs +1 -1
  199. package/esm2022/lib/app/pages/components/constructor-form/models/config/googlepay.mjs +1 -1
  200. package/esm2022/lib/app/pages/components/constructor-form/models/config/ideal.mjs +1 -1
  201. package/esm2022/lib/app/pages/components/constructor-form/models/config/indonesia_bank.mjs +1 -1
  202. package/esm2022/lib/app/pages/components/constructor-form/models/config/indonesia_bank_transfer.mjs +1 -1
  203. package/esm2022/lib/app/pages/components/constructor-form/models/config/internal_gamemoney.mjs +1 -1
  204. package/esm2022/lib/app/pages/components/constructor-form/models/config/jeton.mjs +1 -1
  205. package/esm2022/lib/app/pages/components/constructor-form/models/config/jeton_voucher.mjs +1 -1
  206. package/esm2022/lib/app/pages/components/constructor-form/models/config/kassa24.mjs +1 -1
  207. package/esm2022/lib/app/pages/components/constructor-form/models/config/link.mjs +1 -1
  208. package/esm2022/lib/app/pages/components/constructor-form/models/config/local_card_brazil.mjs +1 -1
  209. package/esm2022/lib/app/pages/components/constructor-form/models/config/local_card_mexico.mjs +1 -1
  210. package/esm2022/lib/app/pages/components/constructor-form/models/config/loterica.mjs +1 -1
  211. package/esm2022/lib/app/pages/components/constructor-form/models/config/malaysia_bank.mjs +1 -1
  212. package/esm2022/lib/app/pages/components/constructor-form/models/config/mbway.mjs +1 -1
  213. package/esm2022/lib/app/pages/components/constructor-form/models/config/megafon.mjs +1 -1
  214. package/esm2022/lib/app/pages/components/constructor-form/models/config/mercado_pago.mjs +1 -1
  215. package/esm2022/lib/app/pages/components/constructor-form/models/config/mexico_bank.mjs +1 -1
  216. package/esm2022/lib/app/pages/components/constructor-form/models/config/mirpay.mjs +1 -1
  217. package/esm2022/lib/app/pages/components/constructor-form/models/config/momopay.mjs +1 -1
  218. package/esm2022/lib/app/pages/components/constructor-form/models/config/moneta.mjs +1 -1
  219. package/esm2022/lib/app/pages/components/constructor-form/models/config/mts.mjs +1 -1
  220. package/esm2022/lib/app/pages/components/constructor-form/models/config/multibanco.mjs +1 -1
  221. package/esm2022/lib/app/pages/components/constructor-form/models/config/neosurf.mjs +1 -1
  222. package/esm2022/lib/app/pages/components/constructor-form/models/config/neteller.mjs +1 -1
  223. package/esm2022/lib/app/pages/components/constructor-form/models/config/nupay.mjs +1 -1
  224. package/esm2022/lib/app/pages/components/constructor-form/models/config/onecard.mjs +1 -1
  225. package/esm2022/lib/app/pages/components/constructor-form/models/config/oxxo.mjs +1 -1
  226. package/esm2022/lib/app/pages/components/constructor-form/models/config/pagoefectivo.mjs +1 -1
  227. package/esm2022/lib/app/pages/components/constructor-form/models/config/pagoexpress.mjs +1 -1
  228. package/esm2022/lib/app/pages/components/constructor-form/models/config/pagofacil.mjs +1 -1
  229. package/esm2022/lib/app/pages/components/constructor-form/models/config/paypal.mjs +1 -1
  230. package/esm2022/lib/app/pages/components/constructor-form/models/config/paysafecard.mjs +1 -1
  231. package/esm2022/lib/app/pages/components/constructor-form/models/config/philippines_bank.mjs +1 -1
  232. package/esm2022/lib/app/pages/components/constructor-form/models/config/picpay.mjs +1 -1
  233. package/esm2022/lib/app/pages/components/constructor-form/models/config/pix.mjs +1 -1
  234. package/esm2022/lib/app/pages/components/constructor-form/models/config/promptpay.mjs +1 -1
  235. package/esm2022/lib/app/pages/components/constructor-form/models/config/promsviaz.mjs +1 -1
  236. package/esm2022/lib/app/pages/components/constructor-form/models/config/przelewy24.mjs +1 -1
  237. package/esm2022/lib/app/pages/components/constructor-form/models/config/qiwi.mjs +1 -1
  238. package/esm2022/lib/app/pages/components/constructor-form/models/config/rapid.mjs +1 -1
  239. package/esm2022/lib/app/pages/components/constructor-form/models/config/rapipago.mjs +1 -1
  240. package/esm2022/lib/app/pages/components/constructor-form/models/config/redpagos.mjs +1 -1
  241. package/esm2022/lib/app/pages/components/constructor-form/models/config/sberbank.mjs +1 -1
  242. package/esm2022/lib/app/pages/components/constructor-form/models/config/sbp.mjs +1 -1
  243. package/esm2022/lib/app/pages/components/constructor-form/models/config/sepa.mjs +1 -1
  244. package/esm2022/lib/app/pages/components/constructor-form/models/config/servipag.mjs +1 -1
  245. package/esm2022/lib/app/pages/components/constructor-form/models/config/skinify.mjs +1 -1
  246. package/esm2022/lib/app/pages/components/constructor-form/models/config/skinpay.mjs +1 -1
  247. package/esm2022/lib/app/pages/components/constructor-form/models/config/skinsback.mjs +1 -1
  248. package/esm2022/lib/app/pages/components/constructor-form/models/config/skrill.mjs +1 -1
  249. package/esm2022/lib/app/pages/components/constructor-form/models/config/sofort.mjs +1 -1
  250. package/esm2022/lib/app/pages/components/constructor-form/models/config/spei.mjs +1 -1
  251. package/esm2022/lib/app/pages/components/constructor-form/models/config/store_mexico.mjs +1 -1
  252. package/esm2022/lib/app/pages/components/constructor-form/models/config/tele2.mjs +1 -1
  253. package/esm2022/lib/app/pages/components/constructor-form/models/config/tether.mjs +1 -1
  254. package/esm2022/lib/app/pages/components/constructor-form/models/config/tether_trc20.mjs +1 -1
  255. package/esm2022/lib/app/pages/components/constructor-form/models/config/thailand_bank.mjs +1 -1
  256. package/esm2022/lib/app/pages/components/constructor-form/models/config/thailand_bank_transfer.mjs +1 -1
  257. package/esm2022/lib/app/pages/components/constructor-form/models/config/tinkoff.mjs +1 -1
  258. package/esm2022/lib/app/pages/components/constructor-form/models/config/tron.mjs +1 -1
  259. package/esm2022/lib/app/pages/components/constructor-form/models/config/trustly.mjs +1 -1
  260. package/esm2022/lib/app/pages/components/constructor-form/models/config/vietnam_bank.mjs +1 -1
  261. package/esm2022/lib/app/pages/components/constructor-form/models/config/vietnam_bank_qr.mjs +1 -1
  262. package/esm2022/lib/app/pages/components/constructor-form/models/config/vietnam_bank_transfer.mjs +1 -1
  263. package/esm2022/lib/app/pages/components/constructor-form/models/config/wallester.mjs +1 -1
  264. package/esm2022/lib/app/pages/components/constructor-form/models/config/webpay.mjs +1 -1
  265. package/esm2022/lib/app/pages/components/constructor-form/models/config/wechat.mjs +1 -1
  266. package/esm2022/lib/app/pages/components/constructor-form/models/config/wme.mjs +1 -1
  267. package/esm2022/lib/app/pages/components/constructor-form/models/config/wmr.mjs +1 -1
  268. package/esm2022/lib/app/pages/components/constructor-form/models/config/wmu.mjs +1 -1
  269. package/esm2022/lib/app/pages/components/constructor-form/models/config/wmz.mjs +1 -1
  270. package/esm2022/lib/app/pages/components/constructor-form/models/config/yandex.mjs +1 -1
  271. package/esm2022/lib/app/pages/components/constructor-form/models/config/zen_wallet.mjs +1 -1
  272. package/esm2022/lib/app/pages/components/constructor-form/models/field-template.mjs +1 -1
  273. package/esm2022/lib/app/pages/components/constructor-form/models/index.mjs +1 -1
  274. package/esm2022/lib/app/pages/components/constructor-form/models/payment-field-options.mjs +1 -1
  275. package/esm2022/lib/app/pages/components/constructor-form/models/payment-field-type.enum.mjs +1 -1
  276. package/esm2022/lib/app/pages/components/constructor-form/models/payment-field.mjs +1 -1
  277. package/esm2022/lib/app/pages/components/constructor-form/models/payment-fields.mjs +1 -1
  278. package/esm2022/lib/app/pages/components/constructor-form/models/terminal-step.enum.mjs +1 -1
  279. package/esm2022/lib/app/pages/components/constructor-form/services/constructor-form.service.mjs +2 -8
  280. package/esm2022/lib/app/pages/components/constructor-form/services/index.mjs +1 -1
  281. package/esm2022/lib/app/pages/components/error/error.component.mjs +3 -3
  282. package/esm2022/lib/app/pages/components/index.mjs +1 -1
  283. package/esm2022/lib/app/pages/components/terminal-layout/terminal-layout.component.mjs +17 -4
  284. package/esm2022/lib/app/pages/directives/fee-template.directive.mjs +14 -0
  285. package/esm2022/lib/app/pages/directives/index.mjs +2 -1
  286. package/esm2022/lib/app/pages/directives/input-mask-corrector.directive.mjs +1 -1
  287. package/esm2022/lib/app/pages/directives/tab-index-focus.directive.mjs +1 -1
  288. package/esm2022/lib/app/pages/index.mjs +1 -1
  289. package/esm2022/lib/app/pages/pages.module.mjs +1 -1
  290. package/esm2022/lib/app/pages/services/index.mjs +1 -1
  291. package/esm2022/lib/app/pages/services/mask.service.mjs +1 -1
  292. package/esm2022/lib/app/pipes/countries-sort.pipe.mjs +1 -1
  293. package/esm2022/lib/app/pipes/country-translate.pipe.mjs +1 -1
  294. package/esm2022/lib/app/pipes/currency.pipe.mjs +1 -1
  295. package/esm2022/lib/app/pipes/html-sanitizer.pipe.mjs +1 -1
  296. package/esm2022/lib/app/pipes/index.mjs +1 -1
  297. package/esm2022/lib/app/pipes/method-title.pipe.mjs +1 -1
  298. package/esm2022/lib/app/services/api-errors.service.mjs +1 -1
  299. package/esm2022/lib/app/services/csrf.resolver.mjs +1 -1
  300. package/esm2022/lib/app/services/error.interceptior.mjs +1 -1
  301. package/esm2022/lib/app/services/index.mjs +1 -1
  302. package/esm2022/lib/app/services/local-storage.mjs +1 -1
  303. package/esm2022/lib/app/services/script-loader.mjs +1 -1
  304. package/esm2022/lib/app/services/session.data-source.mjs +6 -18
  305. package/esm2022/lib/app/services/translation/translate-lang-storage.service.mjs +1 -1
  306. package/esm2022/lib/app/shared/components/constructor-status/constructor-status.component.mjs +3 -3
  307. package/esm2022/lib/app/shared/components/index.mjs +1 -1
  308. package/esm2022/lib/app/shared/components/terminal-lang-switcher/terminal-lang-switcher.component.mjs +3 -3
  309. package/esm2022/lib/app/shared/components/terminal-layout-tpl/terminal-layout-tpl.component.mjs +3 -3
  310. package/esm2022/lib/app/shared/components/trm-select/scrollbar-select-height.directive.mjs +1 -1
  311. package/esm2022/lib/app/shared/components/trm-select/trm-select-label-template.directive.mjs +1 -1
  312. package/esm2022/lib/app/shared/components/trm-select/trm-select.component.mjs +3 -3
  313. package/esm2022/lib/app/shared/directives/index.mjs +1 -1
  314. package/esm2022/lib/app/shared/directives/ng-var.directive.mjs +1 -1
  315. package/esm2022/lib/app/shared/index.mjs +1 -1
  316. package/esm2022/lib/app/shared/pipes/index.mjs +1 -1
  317. package/esm2022/lib/app/shared/pipes/sanitizer.pipe.mjs +1 -1
  318. package/esm2022/lib/app/shared/pipes/translate-by-key.pipe.mjs +1 -1
  319. package/esm2022/lib/app/shared/shared.module.mjs +1 -1
  320. package/esm2022/lib/app/terminal-tpl.component.mjs +10 -6
  321. package/esm2022/lib/app/terminal.module.mjs +43 -75
  322. package/esm2022/lib/codegen/api/api.mjs +1 -1
  323. package/esm2022/lib/codegen/api/checkin.service.mjs +1 -1
  324. package/esm2022/lib/codegen/api/configuration.mjs +1 -1
  325. package/esm2022/lib/codegen/api/terminal.service.mjs +1 -1
  326. package/esm2022/lib/codegen/index.mjs +1 -1
  327. package/esm2022/lib/codegen/model/apiErrors.mjs +1 -1
  328. package/esm2022/lib/codegen/model/badRequestResponse.mjs +1 -1
  329. package/esm2022/lib/codegen/model/bank.mjs +1 -1
  330. package/esm2022/lib/codegen/model/documentType.mjs +1 -1
  331. package/esm2022/lib/codegen/model/getCheckinSessionInfo200Response.mjs +1 -1
  332. package/esm2022/lib/codegen/model/getTerminalMethodBanks200Response.mjs +1 -1
  333. package/esm2022/lib/codegen/model/getTerminalMethodDocumentTypes200Response.mjs +1 -1
  334. package/esm2022/lib/codegen/model/invoiceStatus.mjs +1 -1
  335. package/esm2022/lib/codegen/model/methodInfo.mjs +1 -1
  336. package/esm2022/lib/codegen/model/methodInfoLimits.mjs +1 -1
  337. package/esm2022/lib/codegen/model/methodType.mjs +1 -1
  338. package/esm2022/lib/codegen/model/methodTypeType.mjs +1 -1
  339. package/esm2022/lib/codegen/model/models.mjs +1 -1
  340. package/esm2022/lib/codegen/model/postTerminalClose200Response.mjs +1 -1
  341. package/esm2022/lib/codegen/model/postTerminalOpen200Response.mjs +1 -1
  342. package/esm2022/lib/codegen/model/postTerminalOpenRequest.mjs +1 -1
  343. package/esm2022/lib/codegen/model/postTerminalPaymentConfirm200Response.mjs +1 -1
  344. package/esm2022/lib/codegen/model/postTerminalPaymentConfirmRequest.mjs +1 -1
  345. package/esm2022/lib/codegen/model/postTerminalPaymentPrepare200Response.mjs +1 -1
  346. package/esm2022/lib/codegen/model/postTerminalPaymentPrepareRequest.mjs +1 -1
  347. package/esm2022/lib/codegen/model/sessionInfo.mjs +1 -1
  348. package/esm2022/lib/codegen/model/sessionInfoAntiFraudPixel.mjs +1 -1
  349. package/esm2022/lib/const.mjs +1 -1
  350. package/esm2022/lib/helpers/index.mjs +1 -1
  351. package/esm2022/lib/helpers/moment-import.mjs +1 -1
  352. package/esm2022/lib/helpers/remove-empty-props.mjs +1 -1
  353. package/esm2022/lib/index.mjs +1 -1
  354. package/esm2022/public-api.mjs +1 -1
  355. package/fesm2022/trm-tmpl.mjs +275 -292
  356. package/fesm2022/trm-tmpl.mjs.map +1 -1
  357. package/lib/app/pages/components/constructor-form/components/constructor-field-iframe/constructor-field-iframe.component.d.ts +0 -1
  358. package/lib/app/pages/components/constructor-form/components/method-amount-hint/method-amount-hint.component.d.ts +3 -0
  359. package/lib/app/pages/components/constructor-form/constructor-form.component.d.ts +1 -1
  360. package/lib/app/pages/components/constructor-form/models/payment-field-options.d.ts +1 -1
  361. package/lib/app/pages/components/constructor-form/services/constructor-form.service.d.ts +0 -2
  362. package/lib/app/pages/components/terminal-layout/terminal-layout.component.d.ts +1 -0
  363. package/lib/app/pages/directives/fee-template.directive.d.ts +5 -0
  364. package/lib/app/pages/directives/index.d.ts +1 -0
  365. package/lib/app/services/session.data-source.d.ts +0 -1
  366. package/lib/app/terminal-tpl.component.d.ts +2 -1
  367. package/lib/app/terminal.module.d.ts +26 -4
  368. package/package.json +1 -1
  369. package/scss/base.scss +12 -12
  370. package/scss/btn.scss +50 -50
  371. package/scss/currency.scss +31 -31
  372. package/scss/datepicker.scss +19 -19
  373. package/scss/fonts.scss +18 -18
  374. package/scss/icons.scss +9 -9
  375. package/scss/images.scss +43 -43
  376. package/scss/index.scss +12 -12
  377. package/scss/input.scss +60 -60
  378. package/scss/mixins.scss +193 -193
  379. package/scss/skeleton.scss +68 -68
  380. package/scss/spinner.scss +65 -65
  381. package/scss/theme.scss +33 -33
  382. package/scss/utils.scss +14 -14
  383. package/scss/validation.scss +7 -7
  384. package/scss/variables.scss +1 -1
@@ -41,7 +41,7 @@ export class ConstructorFormComponent {
41
41
  this.preparationStepFilled = false;
42
42
  this.TERMINAL_STEP = TerminalStep;
43
43
  this.CONSTRUCTOR_FIELD_TYPES = PaymentFieldTypeEnum;
44
- this.loading = false;
44
+ this.loading = null;
45
45
  this.types = [];
46
46
  this.canReturnToProject = true;
47
47
  this.amountChanged = new EventEmitter();
@@ -248,6 +248,9 @@ export class ConstructorFormComponent {
248
248
  return typeof this.form.config?.description === 'function' ? this.form.config?.description(this.form.getRawValue()) : this.form.config?.description;
249
249
  }
250
250
  submit() {
251
+ if (this.feeLoading) {
252
+ return;
253
+ }
251
254
  if (this.step === TerminalStep.Confirmation) {
252
255
  this.confirm.emit();
253
256
  return;
@@ -318,14 +321,14 @@ export class ConstructorFormComponent {
318
321
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: ConstructorFormComponent, isStandalone: true, selector: "app-constructor-form", inputs: { step: "step", error: "error", response: "response", feeLoading: "feeLoading", feeOptions: "feeOptions", currency: "currency", userCurrency: "userCurrency", loading: "loading", types: "types", canReturnToProject: "canReturnToProject", tabIndex: "tabIndex" }, outputs: { amountChanged: "amountChanged", back: "back", prepare: "prepare", confirm: "confirm", onPaymentChanged: "onPaymentChanged" }, providers: [
319
322
  ConstructorFormService,
320
323
  CountryTranslatePipe, CountriesSortPipe
321
- ], viewQueries: [{ propertyName: "requisites", first: true, predicate: ["paymentRequisites"], descendants: true }, { propertyName: "hintMethod", first: true, predicate: ["hintMethod"], descendants: true }, { propertyName: "sdkList", predicate: CardSdkService, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<form class=\"constructor\"\r\n [formGroup]=\"form\"\r\n (ngSubmit)=\"submit()\"\r\n >\r\n @if (!loading) {\r\n @if (step === TERMINAL_STEP.Prepare) {\r\n <div class=\"constructor__fields\">\r\n @if (countrySearchString || countriesList.length > 1) {\r\n <div class=\"constructor__field\">\r\n <app-trm-select [data]=\"countriesList\"\r\n @insertRemove\r\n name=\"country\"\r\n [label]=\"I18N_KEY.CONSTRUCTOR_LABEL_COUNTRY | trans\"\r\n formControlName=\"country\"\r\n class=\"c-field-select trm-form-field\"\r\n (search)=\"searchCountry($event)\"\r\n [tabIndex]=\"tabIndex\"\r\n >\r\n <ng-template trmSelectLabelTemplate let-item=\"item\">\r\n <span class=\"fi\"\r\n [ngClass]=\"'fi-' + item.toLowerCase()\"></span>\r\n <span class=\"method__name\">{{item | country_translate: lang}}</span>\r\n </ng-template>\r\n </app-trm-select>\r\n </div>\r\n }\r\n @if (form.country.value) {\r\n <app-ps-select [methods]=\"methodsList\"\r\n @insertRemove\r\n formControlName=\"method\"\r\n [tabIndex]=\"tabIndex\"\r\n >\r\n @if (form.config?.description) {\r\n <div class=\"constructor__hint text--warn\"\r\n app-ps-select-hint\r\n #hintMethod\r\n @insertRemove\r\n >\r\n {{description | trans }}\r\n </div>\r\n }\r\n </app-ps-select>\r\n\r\n @if (\r\n form.method?.hasError('required') &&\r\n form.method.touched &&\r\n form.method.dirty\r\n ) {\r\n <div class=\"gm-error\" @insertRemove>\r\n {{ I18N_KEY.VALIDATION_REQUIRED | trans }}\r\n </div>\r\n }\r\n }\r\n\r\n @if (form.ready) {\r\n <div formGroupName=\"payment\"\r\n @insertRemove\r\n #paymentRequisites\r\n class=\"constructor__fields constructor__fields--reverse\">\r\n @if (form.method.value && form.amountDynamic) {\r\n <ng-container *ngTemplateOutlet=\"currencyTpl; context: {label: I18N_KEY.CONSTRUCTOR_LABEL_CURRENCY | trans, tabIndex: 0}\"></ng-container>\r\n }\r\n @for (field of form.fields; track field.name; let i = $index) {\r\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Iframe) {\r\n @if (form.payment.get(field.name)?.hasError('cde_error')) {\r\n <div class=\"constructor__hint cde-error\" @insertRemove>\r\n {{\r\n form.payment.get(field.name).getError('cde_error')\r\n | trans\r\n }}\r\n </div>\r\n }\r\n <app-constructor-field-iframe\r\n [formControlName]=\"field.name\"\r\n @insertRemove\r\n [hidden]=\"\r\n form.payment.get(field.name)?.hasError('cde_error')\r\n \"\r\n [tabIndex]=\"form.fields.length - i + tabIndex\"\r\n >\r\n </app-constructor-field-iframe>\r\n }\r\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Select) {\r\n <app-constructor-field-select\r\n @insertRemove\r\n [config]=\"field\"\r\n [items]=\"field?.options?.items\"\r\n [formControlName]=\"field.name\"\r\n [tabIndex]=\"form.fields.length - i + tabIndex\"\r\n ></app-constructor-field-select>\r\n }\r\n @if ([CONSTRUCTOR_FIELD_TYPES.Text, CONSTRUCTOR_FIELD_TYPES.Number, CONSTRUCTOR_FIELD_TYPES.Email].includes(field.type)) {\r\n <app-constructor-field-text\r\n @insertRemove\r\n [config]=\"field\"\r\n [formControlName]=\"field.name\"\r\n (maskedValueChange)=\"changeTextFieldValue($event, field)\"\r\n [tabIndex]=\"form.fields.length - i + tabIndex\"></app-constructor-field-text>\r\n }\r\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Amount) {\r\n <app-constructor-field-text\r\n @insertRemove\r\n [config]=\"field\"\r\n [formControlName]=\"field.name\"\r\n [tabIndex]=\"form.fields.length - i + tabIndex\">\r\n <app-method-amount-hint app-c-text-hint\r\n class=\"constructor__hint\"\r\n [loading]=\"feeLoading\"\r\n [options]=\"feeOptions || field.options\"\r\n ></app-method-amount-hint>\r\n <div app-c-text-suffix\r\n class=\"constructor__currency\"\r\n [class.constructor__currency--transparent]=\"form.isAmountEditable\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"currencyTpl; context: {tabIndex: form.fields.length - i + tabIndex}\"></ng-container>\r\n </div>\r\n </app-constructor-field-text>\r\n @if (hasCurrencyMethodSelector) {\r\n <app-trm-select\r\n @insertRemove\r\n class=\"constructor-field\"\r\n [label]=\"I18N_KEY.CONSTRUCTOR_LABEL_CURRENCY | trans\"\r\n [formControl]=\"form.currency\"\r\n [searchable]=\"false\"\r\n [data]=\"currenciesList\"\r\n [tabIndex]=\"form.fields.length - i + tabIndex\"\r\n >\r\n <ng-template trmSelectLabelTemplate let-item=\"item\">\r\n <span class=\"trm-icon\" [ngClass]=\"'trm-curr-' + item.toLowerCase()\"\r\n [title]=\"item\"></span>\r\n {{item}}\r\n </ng-template>\r\n </app-trm-select>\r\n }\r\n }\r\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Date) {\r\n <app-constructor-field-date\r\n @insertRemove\r\n [config]=\"field\"\r\n [formControlName]=\"field.name\"\r\n [tabIndex]=\"form.fields.length - i + tabIndex\"></app-constructor-field-date>\r\n }\r\n }\r\n <ng-template #currencyTpl let-label=\"label\" let-tabIndex=\"tabIndex\">\r\n <app-trm-select\r\n @insertRemove\r\n [label]=\"label\"\r\n [formControl]=\"form.userCurrency\"\r\n [searchable]=\"false\"\r\n [data]=\"userCurrenciesList\"\r\n [tabIndex]=\"tabIndex\"\r\n >\r\n <ng-template trmSelectLabelTemplate let-item=\"item\">\r\n <span class=\"trm-icon\"\r\n [ngClass]=\"'trm-curr-' + item.toLowerCase()\"\r\n [title]=\"item\"></span>\r\n {{item}}\r\n </ng-template>\r\n </app-trm-select>\r\n </ng-template>\r\n </div>\r\n } @else {\r\n <div class=\"trm-skeleton-fields\">\r\n @for (i of skeletonLength; track $index) {\r\n <div class=\"trm-skeleton-field\">\r\n <gm-skeleton [count]=\"1\" [shape]=\"'rect-md'\" [size]=\"18\"></gm-skeleton>\r\n <gm-skeleton [count]=\"1\" [size]=\"50\"></gm-skeleton>\r\n </div>\r\n }\r\n </div>\r\n }\r\n @if (error && !form.methodInfoLoading) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ error | trans }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n @if (step === TERMINAL_STEP.Confirmation) {\r\n <app-constructor-preparation\r\n @insertRemove\r\n [currency]=\"response?.currency\"\r\n [methodName]=\"form.getTypeNameById(response.typeId)\"\r\n [wallet]=\"response.wallet\"\r\n [maskedWallet]=\"maskedWallet\"\r\n [amount]=\"response.amount\"\r\n [total]=\"response.total\"\r\n [confirmationText]=\"form.config?.confirmation\"\r\n >\r\n @if (error && !form.payment.pending) {\r\n <div class=\"trm-error\"\r\n app-constructor-preparation-error\r\n @insertRemove\r\n >\r\n {{ error | trans }}\r\n </div>\r\n }\r\n </app-constructor-preparation>\r\n }\r\n <div class=\"constructor__actions\"\r\n @insertRemove>\r\n <button class=\"trm-button trm-button--primary constructor__actions-continue\"\r\n type=\"submit\"\r\n [tabindex]=\"form.fields.length + tabIndex\">\r\n {{I18N_KEY.CONSTRUCTOR_LABEL_CONTINUE | trans}}\r\n @if (loading) {\r\n <span class=\"trm-spinner trm-spinner-white\"></span>\r\n }\r\n </button>\r\n <button class=\"trm-button trm-button--secondary constructor__actions-back\"\r\n type=\"button\"\r\n [tabindex]=\"form.fields.length + tabIndex\"\r\n (click)=\"back.emit()\"> {{ backBtnLabel | trans}}</button>\r\n </div>\r\n } @else {\r\n <div class=\"trm-skeleton-group\">\r\n <gm-skeleton [count]=\"4\" [gap]=\"20\" [size]=\"80\"></gm-skeleton>\r\n <gm-skeleton [count]=\"2\" [gap]=\"10\" [size]=\"48\"></gm-skeleton>\r\n </div>\r\n }\r\n</form>\r\n", styles: [":host{display:block}.constructor{display:flex;flex-direction:column;gap:32px;justify-content:flex-start;align-items:stretch}.constructor__fields{display:flex;flex-direction:column;gap:20px;justify-content:flex-start;align-items:stretch}.constructor__fields--reverse{flex-direction:column-reverse}.constructor__fields .fi{border-radius:2px;overflow:hidden;border:1px solid rgba(0,0,0,.08);box-sizing:border-box;background-origin:border-box;flex-shrink:0;height:15px}.constructor__fields .fi-other{border-color:transparent}.constructor__currency{--trm-select-border-radius: 0 10px 10px 0;display:flex;align-items:center;position:absolute;bottom:0;right:0;flex-shrink:0;min-height:46px}@media (min-width: 768px){.constructor__currency{min-height:50px}}.constructor__currency .trm-divider{margin:5px 0;align-self:stretch}.constructor__currency--transparent{--trm-select-bg-color: transparent;--trm-select-bg-color--disabled: transparent;--trm-select-border-color: transparent;--trm-select-border-color--hover: transparent;--trm-select-border-color--focus: transparent}.constructor__actions{display:flex;flex-direction:column;gap:10px;justify-content:flex-start;align-items:flex-start}.constructor__hint{font-weight:400;font-size:14px;line-height:22px;color:var(--color-base-350);margin-top:8px}.constructor__hint.cde-error{font-weight:500;font-size:14px;line-height:20px;color:var(--color-red-500)}.constructor .constructor__actions-continue{position:relative}.constructor .constructor__actions-continue .trm-spinner{position:absolute;right:15px}\n"], dependencies: [{ kind: "pipe", type: CountryTranslatePipe, name: "country_translate" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: TrmSelectComponent, selector: "app-trm-select", inputs: ["label", "hasBorder", "data", "tabIndex", "name", "placeholder", "searchable", "hasScrollbar", "nameId", "nameLabel"], outputs: ["open", "search"] }, { kind: "directive", type: TrmSelectLabelTemplateDirective, selector: "[trmSelectLabelTemplate]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PsSelectComponent, selector: "app-ps-select", inputs: ["methods", "tabIndex"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ConstructorFieldIframeComponent, selector: "app-constructor-field-iframe", inputs: ["tabIndex"] }, { kind: "component", type: ConstructorFieldSelectComponent, selector: "app-constructor-field-select", inputs: ["config", "items", "tabIndex"] }, { kind: "component", type: ConstructorFieldTextComponent, selector: "app-constructor-field-text", inputs: ["config", "matDatepicker", "tabIndex"], outputs: ["maskedValueChange"] }, { kind: "component", type: MethodAmountHintComponent, selector: "app-method-amount-hint", inputs: ["loading", "options"] }, { kind: "component", type: ConstructorFieldDateComponent, selector: "app-constructor-field-date", inputs: ["config", "tabIndex"] }, { kind: "component", type: ConstructorPreparationComponent, selector: "app-constructor-preparation", inputs: ["maskedWallet", "wallet", "confirmationText", "methodName", "currency", "amount", "total"] }, { kind: "directive", type: TabIndexFocusDirective, selector: "[tabindex]" }, { kind: "pipe", type: TranslateByKeyPipe, name: "trans" }, { kind: "component", type: GmSkeletonComponent, selector: "gm-skeleton", inputs: ["shape", "orientation", "count", "size", "gap"] }], animations: [insertRemoveTrigger], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
324
+ ], viewQueries: [{ propertyName: "requisites", first: true, predicate: ["paymentRequisites"], descendants: true }, { propertyName: "hintMethod", first: true, predicate: ["hintMethod"], descendants: true }, { propertyName: "sdkList", predicate: CardSdkService, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<form class=\"constructor\"\n [formGroup]=\"form\"\n (ngSubmit)=\"submit()\"\n >\n @if (loading !== null) {\n @if (step === TERMINAL_STEP.Prepare) {\n <div class=\"constructor__fields\">\n @if (countrySearchString || countriesList.length > 1) {\n <div class=\"constructor__field\">\n <app-trm-select [data]=\"countriesList\"\n @insertRemove\n name=\"country\"\n [label]=\"I18N_KEY.CONSTRUCTOR_LABEL_COUNTRY | trans\"\n formControlName=\"country\"\n class=\"c-field-select trm-form-field\"\n (search)=\"searchCountry($event)\"\n [tabIndex]=\"tabIndex\"\n >\n <ng-template trmSelectLabelTemplate let-item=\"item\">\n <span class=\"fi\"\n [ngClass]=\"'fi-' + item.toLowerCase()\"></span>\n <span class=\"method__name\">{{item | country_translate: lang}}</span>\n </ng-template>\n </app-trm-select>\n </div>\n }\n @if (form.country.value) {\n <app-ps-select [methods]=\"methodsList\"\n @insertRemove\n formControlName=\"method\"\n [tabIndex]=\"tabIndex\"\n >\n @if (form.config?.description) {\n <div class=\"constructor__hint text--warn\"\n app-ps-select-hint\n #hintMethod\n @insertRemove\n >\n {{description | trans }}\n </div>\n }\n </app-ps-select>\n\n @if (\n form.method?.hasError('required') &&\n form.method.touched &&\n form.method.dirty\n ) {\n <div class=\"gm-error\" @insertRemove>\n {{ I18N_KEY.VALIDATION_REQUIRED | trans }}\n </div>\n }\n }\n\n @if (form.ready) {\n <div formGroupName=\"payment\"\n @insertRemove\n #paymentRequisites\n class=\"constructor__fields constructor__fields--reverse\">\n @if (form.method.value && form.amountDynamic) {\n <ng-container *ngTemplateOutlet=\"currencyTpl; context: {label: I18N_KEY.CONSTRUCTOR_LABEL_CURRENCY | trans, tabIndex: 0}\"></ng-container>\n }\n @for (field of form.fields; track field.name; let i = $index) {\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Iframe) {\n @if (form.payment.get(field.name)?.hasError('cde_error')) {\n <div class=\"constructor__hint cde-error\" @insertRemove>\n {{\n form.payment.get(field.name).getError('cde_error')\n | trans\n }}\n </div>\n }\n <app-constructor-field-iframe\n [formControlName]=\"field.name\"\n @insertRemove\n [tabIndex]=\"form.fields.length - i + tabIndex\"\n >\n </app-constructor-field-iframe>\n }\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Select) {\n <app-constructor-field-select\n @insertRemove\n [config]=\"field\"\n [items]=\"field?.options?.items\"\n [formControlName]=\"field.name\"\n [tabIndex]=\"form.fields.length - i + tabIndex\"\n ></app-constructor-field-select>\n }\n @if ([CONSTRUCTOR_FIELD_TYPES.Text, CONSTRUCTOR_FIELD_TYPES.Number, CONSTRUCTOR_FIELD_TYPES.Email].includes(field.type)) {\n <app-constructor-field-text\n @insertRemove\n [config]=\"field\"\n [formControlName]=\"field.name\"\n (maskedValueChange)=\"changeTextFieldValue($event, field)\"\n [tabIndex]=\"form.fields.length - i + tabIndex\"></app-constructor-field-text>\n }\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Amount) {\n <app-constructor-field-text\n @insertRemove\n [config]=\"field\"\n [formControlName]=\"field.name\"\n [tabIndex]=\"form.fields.length - i + tabIndex\">\n <app-method-amount-hint app-c-text-hint\n class=\"constructor__hint\"\n [loading]=\"feeLoading\"\n [options]=\"feeOptions || field.options\"\n ></app-method-amount-hint>\n <div app-c-text-suffix\n class=\"constructor__currency\"\n [class.constructor__currency--transparent]=\"form.isAmountEditable\"\n >\n <ng-container *ngTemplateOutlet=\"currencyTpl; context: {tabIndex: form.fields.length - i + tabIndex}\"></ng-container>\n </div>\n </app-constructor-field-text>\n @if (hasCurrencyMethodSelector) {\n <app-trm-select\n @insertRemove\n class=\"constructor-field\"\n [label]=\"I18N_KEY.CONSTRUCTOR_LABEL_CURRENCY | trans\"\n [formControl]=\"form.currency\"\n [searchable]=\"false\"\n [data]=\"currenciesList\"\n [tabIndex]=\"form.fields.length - i + tabIndex\"\n >\n <ng-template trmSelectLabelTemplate let-item=\"item\">\n <span class=\"trm-icon\" [ngClass]=\"'trm-curr-' + item.toLowerCase()\"\n [title]=\"item\"></span>\n {{item}}\n </ng-template>\n </app-trm-select>\n }\n }\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Date) {\n <app-constructor-field-date\n @insertRemove\n [config]=\"field\"\n [formControlName]=\"field.name\"\n [tabIndex]=\"form.fields.length - i + tabIndex\"></app-constructor-field-date>\n }\n }\n <ng-template #currencyTpl let-label=\"label\" let-tabIndex=\"tabIndex\">\n <app-trm-select\n @insertRemove\n [label]=\"label\"\n [formControl]=\"form.userCurrency\"\n [searchable]=\"false\"\n [data]=\"userCurrenciesList\"\n [tabIndex]=\"tabIndex\"\n >\n <ng-template trmSelectLabelTemplate let-item=\"item\">\n <span class=\"trm-icon\"\n [ngClass]=\"'trm-curr-' + item.toLowerCase()\"\n [title]=\"item\"></span>\n {{item}}\n </ng-template>\n </app-trm-select>\n </ng-template>\n </div>\n } @else {\n <div class=\"trm-skeleton-fields\">\n @for (i of skeletonLength; track $index) {\n <div class=\"trm-skeleton-field\">\n <gm-skeleton [count]=\"1\" [shape]=\"'rect-md'\" [size]=\"18\"></gm-skeleton>\n <gm-skeleton [count]=\"1\" [size]=\"50\"></gm-skeleton>\n </div>\n }\n </div>\n }\n @if (error && !form.methodInfoLoading) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ error | trans }}\n </div>\n }\n </div>\n }\n @if (step === TERMINAL_STEP.Confirmation) {\n <app-constructor-preparation\n @insertRemove\n [currency]=\"response?.currency\"\n [methodName]=\"form.getTypeNameById(response.typeId)\"\n [wallet]=\"response.wallet\"\n [maskedWallet]=\"maskedWallet\"\n [amount]=\"response.amount\"\n [total]=\"response.total\"\n [confirmationText]=\"form.config?.confirmation\"\n >\n @if (error && !form.payment.pending) {\n <div class=\"trm-error\"\n app-constructor-preparation-error\n @insertRemove\n >\n {{ error | trans }}\n </div>\n }\n </app-constructor-preparation>\n }\n <div class=\"constructor__actions\"\n @insertRemove>\n <button class=\"trm-button trm-button--primary constructor__actions-continue\"\n type=\"submit\"\n [tabindex]=\"form.fields.length + tabIndex\">\n {{I18N_KEY.CONSTRUCTOR_LABEL_CONTINUE | trans}}\n @if (loading) {\n <span class=\"trm-spinner trm-spinner-white\"></span>\n }\n </button>\n <button class=\"trm-button trm-button--secondary constructor__actions-back\"\n type=\"button\"\n [tabindex]=\"form.fields.length + tabIndex\"\n (click)=\"back.emit()\"> {{ backBtnLabel | trans}}</button>\n </div>\n } @else {\n <div class=\"trm-skeleton-group\">\n <gm-skeleton [count]=\"4\" [gap]=\"20\" [size]=\"80\"></gm-skeleton>\n <gm-skeleton [count]=\"2\" [gap]=\"10\" [size]=\"48\"></gm-skeleton>\n </div>\n }\n</form>\n", styles: [":host{display:block}.constructor{display:flex;flex-direction:column;gap:32px;justify-content:flex-start;align-items:stretch}.constructor__fields{display:flex;flex-direction:column;gap:20px;justify-content:flex-start;align-items:stretch}.constructor__fields--reverse{flex-direction:column-reverse}.constructor__fields .fi{border-radius:2px;overflow:hidden;border:1px solid rgba(0,0,0,.08);box-sizing:border-box;background-origin:border-box;flex-shrink:0;height:15px}.constructor__fields .fi-other{border-color:transparent}.constructor__currency{--trm-select-border-radius: 0 10px 10px 0;display:flex;align-items:center;position:absolute;bottom:0;right:0;flex-shrink:0;min-height:46px}@media (min-width: 768px){.constructor__currency{min-height:50px}}.constructor__currency .trm-divider{margin:5px 0;align-self:stretch}.constructor__currency--transparent{--trm-select-bg-color: transparent;--trm-select-bg-color--disabled: transparent;--trm-select-border-color: transparent;--trm-select-border-color--hover: transparent;--trm-select-border-color--focus: transparent}.constructor__actions{display:flex;flex-direction:column;gap:10px;justify-content:flex-start;align-items:flex-start}.constructor__hint{font-weight:400;font-size:14px;line-height:22px;color:var(--color-base-350);margin-top:8px}.constructor__hint.cde-error{font-weight:500;font-size:14px;line-height:20px;color:var(--color-red-500)}.constructor .constructor__actions-continue{position:relative}.constructor .constructor__actions-continue .trm-spinner{position:absolute;right:15px}\n"], dependencies: [{ kind: "pipe", type: CountryTranslatePipe, name: "country_translate" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: TrmSelectComponent, selector: "app-trm-select", inputs: ["label", "hasBorder", "data", "tabIndex", "name", "placeholder", "searchable", "hasScrollbar", "nameId", "nameLabel"], outputs: ["open", "search"] }, { kind: "directive", type: TrmSelectLabelTemplateDirective, selector: "[trmSelectLabelTemplate]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PsSelectComponent, selector: "app-ps-select", inputs: ["methods", "tabIndex"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ConstructorFieldIframeComponent, selector: "app-constructor-field-iframe", inputs: ["tabIndex"] }, { kind: "component", type: ConstructorFieldSelectComponent, selector: "app-constructor-field-select", inputs: ["config", "items", "tabIndex"] }, { kind: "component", type: ConstructorFieldTextComponent, selector: "app-constructor-field-text", inputs: ["config", "matDatepicker", "tabIndex"], outputs: ["maskedValueChange"] }, { kind: "component", type: MethodAmountHintComponent, selector: "app-method-amount-hint", inputs: ["loading", "options"] }, { kind: "component", type: ConstructorFieldDateComponent, selector: "app-constructor-field-date", inputs: ["config", "tabIndex"] }, { kind: "component", type: ConstructorPreparationComponent, selector: "app-constructor-preparation", inputs: ["maskedWallet", "wallet", "confirmationText", "methodName", "currency", "amount", "total"] }, { kind: "directive", type: TabIndexFocusDirective, selector: "[tabindex]" }, { kind: "pipe", type: TranslateByKeyPipe, name: "trans" }, { kind: "component", type: GmSkeletonComponent, selector: "gm-skeleton", inputs: ["shape", "orientation", "count", "size", "gap"] }], animations: [insertRemoveTrigger], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
322
325
  }
323
326
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ConstructorFormComponent, decorators: [{
324
327
  type: Component,
325
328
  args: [{ selector: 'app-constructor-form', changeDetection: ChangeDetectionStrategy.OnPush, animations: [insertRemoveTrigger], providers: [
326
329
  ConstructorFormService,
327
330
  CountryTranslatePipe, CountriesSortPipe
328
- ], standalone: true, imports: [CountryTranslatePipe, CountriesSortPipe, FormsModule, ReactiveFormsModule, TrmSelectComponent, TrmSelectLabelTemplateDirective, NgClass, PsSelectComponent, NgTemplateOutlet, ConstructorFieldIframeComponent, ConstructorFieldSelectComponent, ConstructorFieldTextComponent, MethodAmountHintComponent, ConstructorFieldDateComponent, ConstructorPreparationComponent, TabIndexFocusDirective, CountryTranslatePipe, TranslateByKeyPipe, GmSkeletonComponent], template: "<form class=\"constructor\"\r\n [formGroup]=\"form\"\r\n (ngSubmit)=\"submit()\"\r\n >\r\n @if (!loading) {\r\n @if (step === TERMINAL_STEP.Prepare) {\r\n <div class=\"constructor__fields\">\r\n @if (countrySearchString || countriesList.length > 1) {\r\n <div class=\"constructor__field\">\r\n <app-trm-select [data]=\"countriesList\"\r\n @insertRemove\r\n name=\"country\"\r\n [label]=\"I18N_KEY.CONSTRUCTOR_LABEL_COUNTRY | trans\"\r\n formControlName=\"country\"\r\n class=\"c-field-select trm-form-field\"\r\n (search)=\"searchCountry($event)\"\r\n [tabIndex]=\"tabIndex\"\r\n >\r\n <ng-template trmSelectLabelTemplate let-item=\"item\">\r\n <span class=\"fi\"\r\n [ngClass]=\"'fi-' + item.toLowerCase()\"></span>\r\n <span class=\"method__name\">{{item | country_translate: lang}}</span>\r\n </ng-template>\r\n </app-trm-select>\r\n </div>\r\n }\r\n @if (form.country.value) {\r\n <app-ps-select [methods]=\"methodsList\"\r\n @insertRemove\r\n formControlName=\"method\"\r\n [tabIndex]=\"tabIndex\"\r\n >\r\n @if (form.config?.description) {\r\n <div class=\"constructor__hint text--warn\"\r\n app-ps-select-hint\r\n #hintMethod\r\n @insertRemove\r\n >\r\n {{description | trans }}\r\n </div>\r\n }\r\n </app-ps-select>\r\n\r\n @if (\r\n form.method?.hasError('required') &&\r\n form.method.touched &&\r\n form.method.dirty\r\n ) {\r\n <div class=\"gm-error\" @insertRemove>\r\n {{ I18N_KEY.VALIDATION_REQUIRED | trans }}\r\n </div>\r\n }\r\n }\r\n\r\n @if (form.ready) {\r\n <div formGroupName=\"payment\"\r\n @insertRemove\r\n #paymentRequisites\r\n class=\"constructor__fields constructor__fields--reverse\">\r\n @if (form.method.value && form.amountDynamic) {\r\n <ng-container *ngTemplateOutlet=\"currencyTpl; context: {label: I18N_KEY.CONSTRUCTOR_LABEL_CURRENCY | trans, tabIndex: 0}\"></ng-container>\r\n }\r\n @for (field of form.fields; track field.name; let i = $index) {\r\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Iframe) {\r\n @if (form.payment.get(field.name)?.hasError('cde_error')) {\r\n <div class=\"constructor__hint cde-error\" @insertRemove>\r\n {{\r\n form.payment.get(field.name).getError('cde_error')\r\n | trans\r\n }}\r\n </div>\r\n }\r\n <app-constructor-field-iframe\r\n [formControlName]=\"field.name\"\r\n @insertRemove\r\n [hidden]=\"\r\n form.payment.get(field.name)?.hasError('cde_error')\r\n \"\r\n [tabIndex]=\"form.fields.length - i + tabIndex\"\r\n >\r\n </app-constructor-field-iframe>\r\n }\r\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Select) {\r\n <app-constructor-field-select\r\n @insertRemove\r\n [config]=\"field\"\r\n [items]=\"field?.options?.items\"\r\n [formControlName]=\"field.name\"\r\n [tabIndex]=\"form.fields.length - i + tabIndex\"\r\n ></app-constructor-field-select>\r\n }\r\n @if ([CONSTRUCTOR_FIELD_TYPES.Text, CONSTRUCTOR_FIELD_TYPES.Number, CONSTRUCTOR_FIELD_TYPES.Email].includes(field.type)) {\r\n <app-constructor-field-text\r\n @insertRemove\r\n [config]=\"field\"\r\n [formControlName]=\"field.name\"\r\n (maskedValueChange)=\"changeTextFieldValue($event, field)\"\r\n [tabIndex]=\"form.fields.length - i + tabIndex\"></app-constructor-field-text>\r\n }\r\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Amount) {\r\n <app-constructor-field-text\r\n @insertRemove\r\n [config]=\"field\"\r\n [formControlName]=\"field.name\"\r\n [tabIndex]=\"form.fields.length - i + tabIndex\">\r\n <app-method-amount-hint app-c-text-hint\r\n class=\"constructor__hint\"\r\n [loading]=\"feeLoading\"\r\n [options]=\"feeOptions || field.options\"\r\n ></app-method-amount-hint>\r\n <div app-c-text-suffix\r\n class=\"constructor__currency\"\r\n [class.constructor__currency--transparent]=\"form.isAmountEditable\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"currencyTpl; context: {tabIndex: form.fields.length - i + tabIndex}\"></ng-container>\r\n </div>\r\n </app-constructor-field-text>\r\n @if (hasCurrencyMethodSelector) {\r\n <app-trm-select\r\n @insertRemove\r\n class=\"constructor-field\"\r\n [label]=\"I18N_KEY.CONSTRUCTOR_LABEL_CURRENCY | trans\"\r\n [formControl]=\"form.currency\"\r\n [searchable]=\"false\"\r\n [data]=\"currenciesList\"\r\n [tabIndex]=\"form.fields.length - i + tabIndex\"\r\n >\r\n <ng-template trmSelectLabelTemplate let-item=\"item\">\r\n <span class=\"trm-icon\" [ngClass]=\"'trm-curr-' + item.toLowerCase()\"\r\n [title]=\"item\"></span>\r\n {{item}}\r\n </ng-template>\r\n </app-trm-select>\r\n }\r\n }\r\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Date) {\r\n <app-constructor-field-date\r\n @insertRemove\r\n [config]=\"field\"\r\n [formControlName]=\"field.name\"\r\n [tabIndex]=\"form.fields.length - i + tabIndex\"></app-constructor-field-date>\r\n }\r\n }\r\n <ng-template #currencyTpl let-label=\"label\" let-tabIndex=\"tabIndex\">\r\n <app-trm-select\r\n @insertRemove\r\n [label]=\"label\"\r\n [formControl]=\"form.userCurrency\"\r\n [searchable]=\"false\"\r\n [data]=\"userCurrenciesList\"\r\n [tabIndex]=\"tabIndex\"\r\n >\r\n <ng-template trmSelectLabelTemplate let-item=\"item\">\r\n <span class=\"trm-icon\"\r\n [ngClass]=\"'trm-curr-' + item.toLowerCase()\"\r\n [title]=\"item\"></span>\r\n {{item}}\r\n </ng-template>\r\n </app-trm-select>\r\n </ng-template>\r\n </div>\r\n } @else {\r\n <div class=\"trm-skeleton-fields\">\r\n @for (i of skeletonLength; track $index) {\r\n <div class=\"trm-skeleton-field\">\r\n <gm-skeleton [count]=\"1\" [shape]=\"'rect-md'\" [size]=\"18\"></gm-skeleton>\r\n <gm-skeleton [count]=\"1\" [size]=\"50\"></gm-skeleton>\r\n </div>\r\n }\r\n </div>\r\n }\r\n @if (error && !form.methodInfoLoading) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ error | trans }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n @if (step === TERMINAL_STEP.Confirmation) {\r\n <app-constructor-preparation\r\n @insertRemove\r\n [currency]=\"response?.currency\"\r\n [methodName]=\"form.getTypeNameById(response.typeId)\"\r\n [wallet]=\"response.wallet\"\r\n [maskedWallet]=\"maskedWallet\"\r\n [amount]=\"response.amount\"\r\n [total]=\"response.total\"\r\n [confirmationText]=\"form.config?.confirmation\"\r\n >\r\n @if (error && !form.payment.pending) {\r\n <div class=\"trm-error\"\r\n app-constructor-preparation-error\r\n @insertRemove\r\n >\r\n {{ error | trans }}\r\n </div>\r\n }\r\n </app-constructor-preparation>\r\n }\r\n <div class=\"constructor__actions\"\r\n @insertRemove>\r\n <button class=\"trm-button trm-button--primary constructor__actions-continue\"\r\n type=\"submit\"\r\n [tabindex]=\"form.fields.length + tabIndex\">\r\n {{I18N_KEY.CONSTRUCTOR_LABEL_CONTINUE | trans}}\r\n @if (loading) {\r\n <span class=\"trm-spinner trm-spinner-white\"></span>\r\n }\r\n </button>\r\n <button class=\"trm-button trm-button--secondary constructor__actions-back\"\r\n type=\"button\"\r\n [tabindex]=\"form.fields.length + tabIndex\"\r\n (click)=\"back.emit()\"> {{ backBtnLabel | trans}}</button>\r\n </div>\r\n } @else {\r\n <div class=\"trm-skeleton-group\">\r\n <gm-skeleton [count]=\"4\" [gap]=\"20\" [size]=\"80\"></gm-skeleton>\r\n <gm-skeleton [count]=\"2\" [gap]=\"10\" [size]=\"48\"></gm-skeleton>\r\n </div>\r\n }\r\n</form>\r\n", styles: [":host{display:block}.constructor{display:flex;flex-direction:column;gap:32px;justify-content:flex-start;align-items:stretch}.constructor__fields{display:flex;flex-direction:column;gap:20px;justify-content:flex-start;align-items:stretch}.constructor__fields--reverse{flex-direction:column-reverse}.constructor__fields .fi{border-radius:2px;overflow:hidden;border:1px solid rgba(0,0,0,.08);box-sizing:border-box;background-origin:border-box;flex-shrink:0;height:15px}.constructor__fields .fi-other{border-color:transparent}.constructor__currency{--trm-select-border-radius: 0 10px 10px 0;display:flex;align-items:center;position:absolute;bottom:0;right:0;flex-shrink:0;min-height:46px}@media (min-width: 768px){.constructor__currency{min-height:50px}}.constructor__currency .trm-divider{margin:5px 0;align-self:stretch}.constructor__currency--transparent{--trm-select-bg-color: transparent;--trm-select-bg-color--disabled: transparent;--trm-select-border-color: transparent;--trm-select-border-color--hover: transparent;--trm-select-border-color--focus: transparent}.constructor__actions{display:flex;flex-direction:column;gap:10px;justify-content:flex-start;align-items:flex-start}.constructor__hint{font-weight:400;font-size:14px;line-height:22px;color:var(--color-base-350);margin-top:8px}.constructor__hint.cde-error{font-weight:500;font-size:14px;line-height:20px;color:var(--color-red-500)}.constructor .constructor__actions-continue{position:relative}.constructor .constructor__actions-continue .trm-spinner{position:absolute;right:15px}\n"] }]
331
+ ], standalone: true, imports: [CountryTranslatePipe, CountriesSortPipe, FormsModule, ReactiveFormsModule, TrmSelectComponent, TrmSelectLabelTemplateDirective, NgClass, PsSelectComponent, NgTemplateOutlet, ConstructorFieldIframeComponent, ConstructorFieldSelectComponent, ConstructorFieldTextComponent, MethodAmountHintComponent, ConstructorFieldDateComponent, ConstructorPreparationComponent, TabIndexFocusDirective, CountryTranslatePipe, TranslateByKeyPipe, GmSkeletonComponent], template: "<form class=\"constructor\"\n [formGroup]=\"form\"\n (ngSubmit)=\"submit()\"\n >\n @if (loading !== null) {\n @if (step === TERMINAL_STEP.Prepare) {\n <div class=\"constructor__fields\">\n @if (countrySearchString || countriesList.length > 1) {\n <div class=\"constructor__field\">\n <app-trm-select [data]=\"countriesList\"\n @insertRemove\n name=\"country\"\n [label]=\"I18N_KEY.CONSTRUCTOR_LABEL_COUNTRY | trans\"\n formControlName=\"country\"\n class=\"c-field-select trm-form-field\"\n (search)=\"searchCountry($event)\"\n [tabIndex]=\"tabIndex\"\n >\n <ng-template trmSelectLabelTemplate let-item=\"item\">\n <span class=\"fi\"\n [ngClass]=\"'fi-' + item.toLowerCase()\"></span>\n <span class=\"method__name\">{{item | country_translate: lang}}</span>\n </ng-template>\n </app-trm-select>\n </div>\n }\n @if (form.country.value) {\n <app-ps-select [methods]=\"methodsList\"\n @insertRemove\n formControlName=\"method\"\n [tabIndex]=\"tabIndex\"\n >\n @if (form.config?.description) {\n <div class=\"constructor__hint text--warn\"\n app-ps-select-hint\n #hintMethod\n @insertRemove\n >\n {{description | trans }}\n </div>\n }\n </app-ps-select>\n\n @if (\n form.method?.hasError('required') &&\n form.method.touched &&\n form.method.dirty\n ) {\n <div class=\"gm-error\" @insertRemove>\n {{ I18N_KEY.VALIDATION_REQUIRED | trans }}\n </div>\n }\n }\n\n @if (form.ready) {\n <div formGroupName=\"payment\"\n @insertRemove\n #paymentRequisites\n class=\"constructor__fields constructor__fields--reverse\">\n @if (form.method.value && form.amountDynamic) {\n <ng-container *ngTemplateOutlet=\"currencyTpl; context: {label: I18N_KEY.CONSTRUCTOR_LABEL_CURRENCY | trans, tabIndex: 0}\"></ng-container>\n }\n @for (field of form.fields; track field.name; let i = $index) {\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Iframe) {\n @if (form.payment.get(field.name)?.hasError('cde_error')) {\n <div class=\"constructor__hint cde-error\" @insertRemove>\n {{\n form.payment.get(field.name).getError('cde_error')\n | trans\n }}\n </div>\n }\n <app-constructor-field-iframe\n [formControlName]=\"field.name\"\n @insertRemove\n [tabIndex]=\"form.fields.length - i + tabIndex\"\n >\n </app-constructor-field-iframe>\n }\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Select) {\n <app-constructor-field-select\n @insertRemove\n [config]=\"field\"\n [items]=\"field?.options?.items\"\n [formControlName]=\"field.name\"\n [tabIndex]=\"form.fields.length - i + tabIndex\"\n ></app-constructor-field-select>\n }\n @if ([CONSTRUCTOR_FIELD_TYPES.Text, CONSTRUCTOR_FIELD_TYPES.Number, CONSTRUCTOR_FIELD_TYPES.Email].includes(field.type)) {\n <app-constructor-field-text\n @insertRemove\n [config]=\"field\"\n [formControlName]=\"field.name\"\n (maskedValueChange)=\"changeTextFieldValue($event, field)\"\n [tabIndex]=\"form.fields.length - i + tabIndex\"></app-constructor-field-text>\n }\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Amount) {\n <app-constructor-field-text\n @insertRemove\n [config]=\"field\"\n [formControlName]=\"field.name\"\n [tabIndex]=\"form.fields.length - i + tabIndex\">\n <app-method-amount-hint app-c-text-hint\n class=\"constructor__hint\"\n [loading]=\"feeLoading\"\n [options]=\"feeOptions || field.options\"\n ></app-method-amount-hint>\n <div app-c-text-suffix\n class=\"constructor__currency\"\n [class.constructor__currency--transparent]=\"form.isAmountEditable\"\n >\n <ng-container *ngTemplateOutlet=\"currencyTpl; context: {tabIndex: form.fields.length - i + tabIndex}\"></ng-container>\n </div>\n </app-constructor-field-text>\n @if (hasCurrencyMethodSelector) {\n <app-trm-select\n @insertRemove\n class=\"constructor-field\"\n [label]=\"I18N_KEY.CONSTRUCTOR_LABEL_CURRENCY | trans\"\n [formControl]=\"form.currency\"\n [searchable]=\"false\"\n [data]=\"currenciesList\"\n [tabIndex]=\"form.fields.length - i + tabIndex\"\n >\n <ng-template trmSelectLabelTemplate let-item=\"item\">\n <span class=\"trm-icon\" [ngClass]=\"'trm-curr-' + item.toLowerCase()\"\n [title]=\"item\"></span>\n {{item}}\n </ng-template>\n </app-trm-select>\n }\n }\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Date) {\n <app-constructor-field-date\n @insertRemove\n [config]=\"field\"\n [formControlName]=\"field.name\"\n [tabIndex]=\"form.fields.length - i + tabIndex\"></app-constructor-field-date>\n }\n }\n <ng-template #currencyTpl let-label=\"label\" let-tabIndex=\"tabIndex\">\n <app-trm-select\n @insertRemove\n [label]=\"label\"\n [formControl]=\"form.userCurrency\"\n [searchable]=\"false\"\n [data]=\"userCurrenciesList\"\n [tabIndex]=\"tabIndex\"\n >\n <ng-template trmSelectLabelTemplate let-item=\"item\">\n <span class=\"trm-icon\"\n [ngClass]=\"'trm-curr-' + item.toLowerCase()\"\n [title]=\"item\"></span>\n {{item}}\n </ng-template>\n </app-trm-select>\n </ng-template>\n </div>\n } @else {\n <div class=\"trm-skeleton-fields\">\n @for (i of skeletonLength; track $index) {\n <div class=\"trm-skeleton-field\">\n <gm-skeleton [count]=\"1\" [shape]=\"'rect-md'\" [size]=\"18\"></gm-skeleton>\n <gm-skeleton [count]=\"1\" [size]=\"50\"></gm-skeleton>\n </div>\n }\n </div>\n }\n @if (error && !form.methodInfoLoading) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ error | trans }}\n </div>\n }\n </div>\n }\n @if (step === TERMINAL_STEP.Confirmation) {\n <app-constructor-preparation\n @insertRemove\n [currency]=\"response?.currency\"\n [methodName]=\"form.getTypeNameById(response.typeId)\"\n [wallet]=\"response.wallet\"\n [maskedWallet]=\"maskedWallet\"\n [amount]=\"response.amount\"\n [total]=\"response.total\"\n [confirmationText]=\"form.config?.confirmation\"\n >\n @if (error && !form.payment.pending) {\n <div class=\"trm-error\"\n app-constructor-preparation-error\n @insertRemove\n >\n {{ error | trans }}\n </div>\n }\n </app-constructor-preparation>\n }\n <div class=\"constructor__actions\"\n @insertRemove>\n <button class=\"trm-button trm-button--primary constructor__actions-continue\"\n type=\"submit\"\n [tabindex]=\"form.fields.length + tabIndex\">\n {{I18N_KEY.CONSTRUCTOR_LABEL_CONTINUE | trans}}\n @if (loading) {\n <span class=\"trm-spinner trm-spinner-white\"></span>\n }\n </button>\n <button class=\"trm-button trm-button--secondary constructor__actions-back\"\n type=\"button\"\n [tabindex]=\"form.fields.length + tabIndex\"\n (click)=\"back.emit()\"> {{ backBtnLabel | trans}}</button>\n </div>\n } @else {\n <div class=\"trm-skeleton-group\">\n <gm-skeleton [count]=\"4\" [gap]=\"20\" [size]=\"80\"></gm-skeleton>\n <gm-skeleton [count]=\"2\" [gap]=\"10\" [size]=\"48\"></gm-skeleton>\n </div>\n }\n</form>\n", styles: [":host{display:block}.constructor{display:flex;flex-direction:column;gap:32px;justify-content:flex-start;align-items:stretch}.constructor__fields{display:flex;flex-direction:column;gap:20px;justify-content:flex-start;align-items:stretch}.constructor__fields--reverse{flex-direction:column-reverse}.constructor__fields .fi{border-radius:2px;overflow:hidden;border:1px solid rgba(0,0,0,.08);box-sizing:border-box;background-origin:border-box;flex-shrink:0;height:15px}.constructor__fields .fi-other{border-color:transparent}.constructor__currency{--trm-select-border-radius: 0 10px 10px 0;display:flex;align-items:center;position:absolute;bottom:0;right:0;flex-shrink:0;min-height:46px}@media (min-width: 768px){.constructor__currency{min-height:50px}}.constructor__currency .trm-divider{margin:5px 0;align-self:stretch}.constructor__currency--transparent{--trm-select-bg-color: transparent;--trm-select-bg-color--disabled: transparent;--trm-select-border-color: transparent;--trm-select-border-color--hover: transparent;--trm-select-border-color--focus: transparent}.constructor__actions{display:flex;flex-direction:column;gap:10px;justify-content:flex-start;align-items:flex-start}.constructor__hint{font-weight:400;font-size:14px;line-height:22px;color:var(--color-base-350);margin-top:8px}.constructor__hint.cde-error{font-weight:500;font-size:14px;line-height:20px;color:var(--color-red-500)}.constructor .constructor__actions-continue{position:relative}.constructor .constructor__actions-continue .trm-spinner{position:absolute;right:15px}\n"] }]
329
332
  }], propDecorators: { step: [{
330
333
  type: Input
331
334
  }], error: [{
@@ -368,4 +371,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
368
371
  type: ViewChildren,
369
372
  args: [CardSdkService]
370
373
  }] } });
371
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0b3ItZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vY29uc3RydWN0b3ItZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vY29uc3RydWN0b3ItZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUdOLFNBQVMsRUFDVCxZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFxQyxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFRN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFDTCwrQkFBK0IsRUFDaEMsTUFBTSwwRUFBMEUsQ0FBQztBQUNsRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ2hHLE9BQU8sRUFDTCwrQkFBK0IsRUFDaEMsTUFBTSwyRUFBMkUsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMvRSxPQUFPLEVBQ0wsK0JBQStCLEVBQ2hDLE1BQU0sMEVBQTBFLENBQUM7QUFDbEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDckgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDekcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDckgsT0FBTyxFQUNMLCtCQUErQixFQUNoQyxNQUFNLHdFQUF3RSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3REFBd0QsQ0FBQzs7O0FBZXhGLE1BQU0sT0FBTyx3QkFBd0I7SUFickM7UUFjVSxPQUFFLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdkMsU0FBSSxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzlCLGlCQUFZLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEMsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDOUMseUJBQW9CLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDcEQsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEMsZUFBVSxHQUFHLE1BQU0sQ0FBMEIsOEJBQThCLENBQUMsQ0FBQztRQUU3RSxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDbkMsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQ3RDLGtCQUFhLEdBQUcsWUFBWSxDQUFDO1FBTTdCLDRCQUF1QixHQUFHLG9CQUFvQixDQUFDO1FBS3RDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsVUFBSyxHQUFpQixFQUFFLENBQUM7UUFDekIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLGtCQUFhLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDakUsU0FBSSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3BELFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNyRCxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDckQscUJBQWdCLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFReEUsYUFBUSxHQUFHLFFBQVEsQ0FBQztLQXFUckI7SUFuVEMsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsaUJBQWlCO2FBQzFCLFNBQVMsQ0FDUixJQUFJLENBQUMsS0FBSzthQUNQLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7YUFDaEMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQ2pFO2FBQ0EsTUFBTSxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUM5QixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLEtBQUssR0FBVyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM3RCxPQUFPLEtBQUssQ0FBQyxXQUFXLEVBQUU7cUJBQ3ZCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQ2QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDbEYsQ0FBQztZQUNOLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLO2FBQ2QsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDaEUsV0FBVzthQUNWLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLENBQUM7WUFDeEYseUJBQXlCO2FBQ3hCLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMxRixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLO2FBQ2QsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO2FBQzFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUMvQixDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUUxQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZO2FBQ3JCLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQTtJQUNqRSxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBRWhELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDckMsSUFBSSxRQUFRLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLElBQUksZUFBZSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDckUsUUFBUSxHQUFHLGVBQWUsQ0FBQztRQUM3QixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3hFLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzNCLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdEMsVUFBVSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztRQUNyQyxRQUFRLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLElBQUksZUFBZSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUN6RSxRQUFRLEdBQUcsZUFBZSxDQUFDO1FBQzdCLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM1RSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMzQixDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO1FBQzlELElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSx5QkFBeUI7UUFDM0IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLHlCQUF5QixLQUFLLElBQUksQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM3RSwyQkFBMkI7WUFDM0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUNyQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUNoRCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztvQkFDM0MsT0FBTyxHQUFHLGtCQUFrQixDQUFDO2dCQUMvQixDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sR0FBRyxjQUFjLENBQUM7WUFDM0IsQ0FBQztZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2IsT0FBTztZQUNULENBQUM7WUFDRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN0RCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM5QixDQUFDO1lBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUNqQyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDdEQsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssaUJBQWlCLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDMUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFM0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN4QixJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM3QixDQUFDO1lBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBRXhCLElBQUksQ0FBQyxJQUFJO2lCQUNOLG9CQUFvQixFQUFFO2lCQUN0QixJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FDN0I7aUJBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsWUFBWSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN0RSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsQ0FBQztRQUVELElBQUksT0FBTyxDQUFDLFVBQVUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDMUQsOENBQThDO1lBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLHNCQUFzQixFQUFFLENBQUM7UUFDN0MsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsSUFBSTthQUNOLE9BQU87YUFDUCxZQUFZO2FBQ1osSUFBSSxDQUNILG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUN2QyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUM3QjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztZQUV0RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ2pDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUN0RCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztZQUM5RSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBRXhCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7WUFFeEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxDQUFDLElBQUk7YUFDTixNQUFNO2FBQ04sWUFBWTthQUNaLElBQUksQ0FDSCxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDdkMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FDN0I7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFBO1FBQ0osSUFBSSxDQUFDLElBQUk7YUFDTixRQUFRO2FBQ1IsWUFBWTthQUNaLElBQUksQ0FDSCxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDdkMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FDN0I7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxTQUFTO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUN2QixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDM0IsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDN0MsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSTthQUNOLElBQUksRUFBRTthQUNOLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO2dCQUM5RCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ1osT0FBTztZQUNULENBQUM7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQzlCLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFO2dCQUNqRyxRQUFRLEVBQUUsR0FBRztnQkFDYixHQUFHLEVBQUUsQ0FBQyxFQUFFO2FBQ1QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDO0lBQ3RKLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDcEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNwRCxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3RCLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FBQztZQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQzVELE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDdEIsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN4QixPQUFPLENBQUMsc0JBQXNCLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN2RCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDeEIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhO2lCQUNwQixJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDM0MsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3BCLElBQUksTUFBTSxLQUFLLE9BQU8sRUFBRSxDQUFDO29CQUN2QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2QsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ2xDLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFtQixFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVPLElBQUk7UUFDVixNQUFNLElBQUksR0FBa0MsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4RSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBSztRQUNqQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdkMsT0FBTyxRQUFRLENBQUMsK0JBQStCLENBQUM7UUFDbEQsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDLHdCQUF3QixDQUFDO0lBQzNDLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsS0FBbUI7UUFDbkQsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDOzhHQXpWVSx3QkFBd0I7a0dBQXhCLHdCQUF3Qix3ZEFQeEI7WUFDVCxzQkFBc0I7WUFDdEIsb0JBQW9CLEVBQUUsaUJBQWlCO1NBQ3hDLG1QQXNDYSxjQUFjLHFFQzVHOUIsMHhUQStOQSw2akREdkpZLG9CQUFvQix5REFBcUIsV0FBVywyWUFBRSxtQkFBbUIsMG1CQUFFLGtCQUFrQix3TkFBRSwrQkFBK0IscUVBQUUsT0FBTyxvRkFBRSxpQkFBaUIsMkZBQUUsZ0JBQWdCLG9KQUFFLCtCQUErQiwrRkFBRSwrQkFBK0Isa0hBQUUsNkJBQTZCLHdKQUFFLHlCQUF5QixtR0FBRSw2QkFBNkIsdUdBQUUsK0JBQStCLDZLQUFFLHNCQUFzQixrREFBd0Isa0JBQWtCLDhDQUFFLG1CQUFtQixvR0FON2IsQ0FBQyxtQkFBbUIsQ0FBQzs7MkZBUXRCLHdCQUF3QjtrQkFicEMsU0FBUzsrQkFDRSxzQkFBc0IsbUJBR2YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxDQUFDLG1CQUFtQixDQUFDLGFBQ3RCO3dCQUNULHNCQUFzQjt3QkFDdEIsb0JBQW9CLEVBQUUsaUJBQWlCO3FCQUN4QyxjQUNXLElBQUksV0FDUCxDQUFDLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSwrQkFBK0IsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsK0JBQStCLEVBQUUsK0JBQStCLEVBQUUsNkJBQTZCLEVBQUUseUJBQXlCLEVBQUUsNkJBQTZCLEVBQUUsK0JBQStCLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLENBQUM7OEJBY2pjLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csSUFBSTtzQkFBYixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0UsUUFBUTtzQkFBaEIsS0FBSztnQkFFMkMsVUFBVTtzQkFBMUQsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBQ0wsVUFBVTtzQkFBbkQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUNWLE9BQU87c0JBQXBDLFlBQVk7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgaW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q2hpbGRyZW5cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGF5bWVudEZpZWxkLCBQYXltZW50RmllbGRPcHRpb25zLCBQYXltZW50RmllbGRUeXBlRW51bSwgVGVybWluYWxTdGVwIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBDb25zdHJ1Y3RvckZvcm1TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9jb25zdHJ1Y3Rvci1mb3JtLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIE1ldGhvZFR5cGUsXHJcbiAgTWV0aG9kVHlwZVR5cGUsXHJcbiAgVGVybWluYWxQYXltZW50Q29uZmlybVJlc3BvbnNlLFxyXG4gIFRlcm1pbmFsUGF5bWVudFByZXBhcmVSZXF1ZXN0LFxyXG4gIFRlcm1pbmFsUGF5bWVudFByZXBhcmVSZXNwb25zZVxyXG59IGZyb20gJy4uLy4uLy4uLy4uL2NvZGVnZW4vbW9kZWwvbW9kZWxzJztcclxuaW1wb3J0IHsgaW5zZXJ0UmVtb3ZlVHJpZ2dlciB9IGZyb20gJy4vLi4vLi4vLi4vaGVscGVycy9pbnNlcnRSZW1vdmVUcmlnZ2VyJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlyc3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBDb3VudHJpZXNTb3J0UGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL2NvdW50cmllcy1zb3J0LnBpcGUnO1xyXG5pbXBvcnQgeyBOZ1Njcm9sbGJhciB9IGZyb20gJ25neC1zY3JvbGxiYXInO1xyXG5pbXBvcnQgeyBJMThOX0tFWSB9IGZyb20gJy4vLi4vLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7XHJcbiAgQ29uc3RydWN0b3JGaWVsZElmcmFtZUNvbXBvbmVudFxyXG59IGZyb20gXCIuL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZmllbGQtaWZyYW1lL2NvbnN0cnVjdG9yLWZpZWxkLWlmcmFtZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ291bnRyeVRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlcy9jb3VudHJ5LXRyYW5zbGF0ZS5waXBlJztcclxuaW1wb3J0IHsgVEVSTUlOQUxfVkVSU0lPTl9TRVJWSUNFX1RPS0VOIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29uc3QnO1xyXG5pbXBvcnQgeyBWZXJzaW9uU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVHJtU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvdHJtLXNlbGVjdC90cm0tc2VsZWN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgVHJtU2VsZWN0TGFiZWxUZW1wbGF0ZURpcmVjdGl2ZVxyXG59IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL3RybS1zZWxlY3QvdHJtLXNlbGVjdC1sYWJlbC10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBQc1NlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcy1zZWxlY3QvcHMtc2VsZWN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgQ29uc3RydWN0b3JGaWVsZFNlbGVjdENvbXBvbmVudFxyXG59IGZyb20gJy4vY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1maWVsZC1zZWxlY3QvY29uc3RydWN0b3ItZmllbGQtc2VsZWN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbnN0cnVjdG9yRmllbGRUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZpZWxkLXRleHQvY29uc3RydWN0b3ItZmllbGQtdGV4dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNZXRob2RBbW91bnRIaW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21ldGhvZC1hbW91bnQtaGludC9tZXRob2QtYW1vdW50LWhpbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29uc3RydWN0b3JGaWVsZERhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZmllbGQtZGF0ZS9jb25zdHJ1Y3Rvci1maWVsZC1kYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgQ29uc3RydWN0b3JQcmVwYXJhdGlvbkNvbXBvbmVudFxyXG59IGZyb20gJy4vY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1wcmVwYXJhdGlvbi9jb25zdHJ1Y3Rvci1wcmVwYXJhdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJJbmRleEZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy90YWItaW5kZXgtZm9jdXMuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlQnlLZXlQaXBlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3BpcGVzL3RyYW5zbGF0ZS1ieS1rZXkucGlwZSc7XHJcbmltcG9ydCB7IEdtU2tlbGV0b25Db21wb25lbnQgfSBmcm9tICdAZ21tb25leS9nbS11aS1raXQnO1xyXG5pbXBvcnQgeyBPVEhFUl9DT1VOVFJZX0NPREUgfSBmcm9tIFwiLi4vLi4vLi4vaGVscGVyc1wiO1xyXG5pbXBvcnQgeyBDYXJkU2RrU2VydmljZSB9IGZyb20gXCIuL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZmllbGQtaWZyYW1lL2NhcmQtc2RrLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNvbnN0cnVjdG9yLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25zdHJ1Y3Rvci1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb25zdHJ1Y3Rvci1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgYW5pbWF0aW9uczogW2luc2VydFJlbW92ZVRyaWdnZXJdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgQ29uc3RydWN0b3JGb3JtU2VydmljZSxcclxuICAgIENvdW50cnlUcmFuc2xhdGVQaXBlLCBDb3VudHJpZXNTb3J0UGlwZVxyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ291bnRyeVRyYW5zbGF0ZVBpcGUsIENvdW50cmllc1NvcnRQaXBlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVHJtU2VsZWN0Q29tcG9uZW50LCBUcm1TZWxlY3RMYWJlbFRlbXBsYXRlRGlyZWN0aXZlLCBOZ0NsYXNzLCBQc1NlbGVjdENvbXBvbmVudCwgTmdUZW1wbGF0ZU91dGxldCwgQ29uc3RydWN0b3JGaWVsZElmcmFtZUNvbXBvbmVudCwgQ29uc3RydWN0b3JGaWVsZFNlbGVjdENvbXBvbmVudCwgQ29uc3RydWN0b3JGaWVsZFRleHRDb21wb25lbnQsIE1ldGhvZEFtb3VudEhpbnRDb21wb25lbnQsIENvbnN0cnVjdG9yRmllbGREYXRlQ29tcG9uZW50LCBDb25zdHJ1Y3RvclByZXBhcmF0aW9uQ29tcG9uZW50LCBUYWJJbmRleEZvY3VzRGlyZWN0aXZlLCBDb3VudHJ5VHJhbnNsYXRlUGlwZSwgVHJhbnNsYXRlQnlLZXlQaXBlLCBHbVNrZWxldG9uQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29uc3RydWN0b3JGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgY2QgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIGZvcm0gPSBpbmplY3QoQ29uc3RydWN0b3JGb3JtU2VydmljZSk7XHJcbiAgcHJpdmF0ZSB0cmFuc2xhdGVTcnYgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBjb3VudHJpZXNTb3J0UGlwZSA9IGluamVjdChDb3VudHJpZXNTb3J0UGlwZSk7XHJcbiAgcHJpdmF0ZSBjb3VudHJ5VHJhbnNsYXRlUGlwZSA9IGluamVjdChDb3VudHJ5VHJhbnNsYXRlUGlwZSk7XHJcbiAgcHJpdmF0ZSBuZ1Njcm9sbEJhciA9IGluamVjdChOZ1Njcm9sbGJhcik7XHJcbiAgcHJpdmF0ZSB2ZXJzaW9uU3J2ID0gaW5qZWN0PFZlcnNpb25TZXJ2aWNlSW50ZXJmYWNlPihURVJNSU5BTF9WRVJTSU9OX1NFUlZJQ0VfVE9LRU4pO1xyXG5cclxuICBwcml2YXRlIHVuU3Vic2NyaWJlciA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBwcmVwYXJhdGlvblN0ZXBGaWxsZWQgPSBmYWxzZTtcclxuICBURVJNSU5BTF9TVEVQID0gVGVybWluYWxTdGVwO1xyXG4gIEBJbnB1dCgpIHN0ZXA6IFRlcm1pbmFsU3RlcDtcclxuICBASW5wdXQoKSBlcnJvcj86IHN0cmluZztcclxuICBASW5wdXQoKSByZXNwb25zZTogVGVybWluYWxQYXltZW50UHJlcGFyZVJlc3BvbnNlICYgVGVybWluYWxQYXltZW50Q29uZmlybVJlc3BvbnNlICYge1xyXG4gICAgdHlwZUlkPzogbnVtYmVyO1xyXG4gIH07XHJcbiAgQ09OU1RSVUNUT1JfRklFTERfVFlQRVMgPSBQYXltZW50RmllbGRUeXBlRW51bTtcclxuICBASW5wdXQoKSBmZWVMb2FkaW5nOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGZlZU9wdGlvbnM6IFBheW1lbnRGaWVsZE9wdGlvbnM7XHJcbiAgQElucHV0KCkgY3VycmVuY3k6IHN0cmluZztcclxuICBASW5wdXQoKSB1c2VyQ3VycmVuY3k6IHN0cmluZ1tdO1xyXG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcclxuICBASW5wdXQoKSB0eXBlczogTWV0aG9kVHlwZVtdID0gW107XHJcbiAgQElucHV0KCkgY2FuUmV0dXJuVG9Qcm9qZWN0ID0gdHJ1ZTtcclxuICBAT3V0cHV0KCkgYW1vdW50Q2hhbmdlZDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICBAT3V0cHV0KCkgYmFjazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBwcmVwYXJlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBjb25maXJtOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBvblBheW1lbnRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBJbnB1dCgpIHRhYkluZGV4OiBudW1iZXI7XHJcbiAgY291bnRyeVNlYXJjaFN0cmluZzogc3RyaW5nO1xyXG4gIEBWaWV3Q2hpbGQoJ3BheW1lbnRSZXF1aXNpdGVzJywge3N0YXRpYzogZmFsc2V9KSByZXF1aXNpdGVzOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2hpbnRNZXRob2QnLCB7c3RhdGljOiBmYWxzZX0pIGhpbnRNZXRob2Q6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZHJlbihDYXJkU2RrU2VydmljZSkgc2RrTGlzdDogUXVlcnlMaXN0PENhcmRTZGtTZXJ2aWNlPjtcclxuICBtYXNrZWRXYWxsZXQ6IHN0cmluZztcclxuXHJcbiAgSTE4Tl9LRVkgPSBJMThOX0tFWTtcclxuXHJcbiAgZ2V0IGNvdW50cmllc0xpc3QoKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuY291bnRyaWVzU29ydFBpcGVcclxuICAgICAgLnRyYW5zZm9ybShcclxuICAgICAgICB0aGlzLnR5cGVzXHJcbiAgICAgICAgICAubWFwKHR5cGUgPT4gdHlwZS5jb3VudHJ5SVNPQ29kZSlcclxuICAgICAgICAgIC5maWx0ZXIoKHZhbHVlLCBpbmRleCwgc2VsZikgPT4gc2VsZi5pbmRleE9mKHZhbHVlKSA9PT0gaW5kZXgpXHJcbiAgICAgIClcclxuICAgICAgLmZpbHRlcigobTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNvdW50cnlTZWFyY2hTdHJpbmcpIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCB0aXRsZTogc3RyaW5nID0gdGhpcy5jb3VudHJ5VHJhbnNsYXRlUGlwZS50cmFuc2Zvcm0obSk7XHJcbiAgICAgICAgICByZXR1cm4gdGl0bGUudG9Mb3dlckNhc2UoKVxyXG4gICAgICAgICAgICAuc3BsaXQoJyAnKS5zb21lKFxyXG4gICAgICAgICAgICAgIHRzID0+IHRoaXMuY291bnRyeVNlYXJjaFN0cmluZy50b0xvd2VyQ2FzZSgpLnNwbGl0KCcgJykuc29tZShzID0+IHRzLmluY2x1ZGVzKHMpKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXQgbWV0aG9kc0xpc3QoKTogTWV0aG9kVHlwZVR5cGVbXSB7XHJcbiAgICByZXR1cm4gdGhpcy50eXBlc1xyXG4gICAgICAuZmlsdGVyKHR5cGUgPT4gdHlwZS5jb3VudHJ5SVNPQ29kZSA9PT0gdGhpcy5mb3JtLmNvdW50cnkudmFsdWUpXHJcbiAgICAgIC8vIGRpc3RpbmN0XHJcbiAgICAgIC5maWx0ZXIoKHR5cGUsIGluZGV4LCBzZWxmKSA9PiBzZWxmLm1hcChtID0+IG0udHlwZS5pZCkuaW5kZXhPZih0eXBlLnR5cGUuaWQpID09PSBpbmRleClcclxuICAgICAgLy9zb3J0aW5nIGJ5IHRoZSBwcmlvcml0eVxyXG4gICAgICAuc29ydCgobTEsIG0yKSA9PiBtMS5wcmlvcml0eSA+IG0yLnByaW9yaXR5ID8gMSA6ICgobTEucHJpb3JpdHkgPT09IG0yLnByaW9yaXR5KSA/IDAgOiAtMSkpXHJcbiAgICAgIC5tYXAodHlwZSA9PiB0eXBlLnR5cGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGN1cnJlbmNpZXNMaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMudHlwZXNcclxuICAgICAgLmZpbHRlcih0eXBlID0+IHR5cGUuY291bnRyeUlTT0NvZGUgPT09IHRoaXMuZm9ybS5jb3VudHJ5LnZhbHVlICYmIHR5cGUudHlwZS5pZCA9PT0gdGhpcy5mb3JtLm1ldGhvZC52YWx1ZSlcclxuICAgICAgLm1hcCh0eXBlID0+IHR5cGUuY3VycmVuY3kpXHJcbiAgfVxyXG5cclxuICBnZXQgdXNlckN1cnJlbmNpZXNMaXN0KCkge1xyXG4gICAgY29uc3QgZmlsdGVyZWRUeXBlcyA9IHRoaXMuY3VycmVuY2llc0xpc3Q7XHJcblxyXG4gICAgaWYgKCF0aGlzLnVzZXJDdXJyZW5jeSkge1xyXG4gICAgICByZXR1cm4gZmlsdGVyZWRUeXBlcztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy51c2VyQ3VycmVuY3lcclxuICAgICAgLmZpbHRlcih1c2VyQ3VycmVuY3kgPT4gZmlsdGVyZWRUeXBlcy5pbmNsdWRlcyh1c2VyQ3VycmVuY3kpKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRDdXJyZW5jeVZhbHVlKCkge1xyXG4gICAgbGV0IGRlZmF1bHRDdXJyZW5jeSA9IHRoaXMuZm9ybS5kZWZhdWx0Q3VycmVuY3k7XHJcblxyXG4gICAgbGV0IGN1cnJlbmNpZXMgPSB0aGlzLmN1cnJlbmNpZXNMaXN0O1xyXG4gICAgbGV0IGN1cnJlbmN5ID0gY3VycmVuY2llc1swXTtcclxuICAgIGlmIChkZWZhdWx0Q3VycmVuY3kgJiYgdGhpcy5jdXJyZW5jaWVzTGlzdC5pbmNsdWRlcyhkZWZhdWx0Q3VycmVuY3kpKSB7XHJcbiAgICAgIGN1cnJlbmN5ID0gZGVmYXVsdEN1cnJlbmN5O1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbmN5ICYmIHRoaXMuY3VycmVuY2llc0xpc3QuaW5jbHVkZXModGhpcy5jdXJyZW5jeSkpIHtcclxuICAgICAgY3VycmVuY3kgPSB0aGlzLmN1cnJlbmN5O1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtLmN1cnJlbmN5LnNldFZhbHVlKGN1cnJlbmN5KTtcclxuXHJcbiAgICBjdXJyZW5jaWVzID0gdGhpcy51c2VyQ3VycmVuY2llc0xpc3Q7XHJcbiAgICBjdXJyZW5jeSA9IGN1cnJlbmNpZXNbMF07XHJcbiAgICBpZiAoZGVmYXVsdEN1cnJlbmN5ICYmIHRoaXMudXNlckN1cnJlbmNpZXNMaXN0LmluY2x1ZGVzKGRlZmF1bHRDdXJyZW5jeSkpIHtcclxuICAgICAgY3VycmVuY3kgPSBkZWZhdWx0Q3VycmVuY3k7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3VycmVuY3kgJiYgdGhpcy51c2VyQ3VycmVuY2llc0xpc3QuaW5jbHVkZXModGhpcy5jdXJyZW5jeSkpIHtcclxuICAgICAgY3VycmVuY3kgPSB0aGlzLmN1cnJlbmN5O1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtLnVzZXJDdXJyZW5jeS5zZXRWYWx1ZShjdXJyZW5jeSwge2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgIGlmIChjdXJyZW5jaWVzLmxlbmd0aCA9PT0gMSAmJiBjdXJyZW5jeSAmJiB0aGlzLmZvcm0ubWV0aG9kLmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuZm9ybS51c2VyQ3VycmVuY3kuZGlzYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc0N1cnJlbmN5TWV0aG9kU2VsZWN0b3IoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy52ZXJzaW9uU3J2Lmhhc0N1cnJlbmN5TWV0aG9kU2VsZWN0b3IgPT09IHRydWU7XHJcbiAgfVxyXG5cclxuICBnZXQgbGFuZygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU3J2LmN1cnJlbnRMYW5nO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNrZWxldG9uTGVuZ3RoKCkge1xyXG4gICAgcmV0dXJuIG5ldyBBcnJheSh0aGlzLmZvcm0uZmllbGRzPy5sZW5ndGggfHwgMykuZmlsbCgwKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzLnR5cGVzICYmIHRoaXMudHlwZXM/Lmxlbmd0aCB8fCBjaGFuZ2VzLmN1cnJlbmN5ICYmIHRoaXMuY3VycmVuY3kpIHtcclxuICAgICAgLy8gR2V0IGNvbmZpZ3VyYXRpb24gZmllbGRzXHJcbiAgICAgIGNvbnN0IGNvdW50cmllcyA9IHRoaXMuY291bnRyaWVzTGlzdDtcclxuICAgICAgY29uc3QgZGVmYXVsdENvdW50cnkgPSB0aGlzLmZvcm0uZGVmYXVsdENvdW50cnk7XHJcbiAgICAgIGxldCBjb3VudHJ5ID0gbnVsbDtcclxuICAgICAgaWYgKCFjb3VudHJpZXMuaW5jbHVkZXMoZGVmYXVsdENvdW50cnkpKSB7XHJcbiAgICAgICAgaWYgKGNvdW50cmllcy5pbmNsdWRlcyhPVEhFUl9DT1VOVFJZX0NPREUpKSB7XHJcbiAgICAgICAgICBjb3VudHJ5ID0gT1RIRVJfQ09VTlRSWV9DT0RFO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb3VudHJ5ID0gZGVmYXVsdENvdW50cnk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5mb3JtLmNvdW50cnkuc2V0VmFsdWUoY291bnRyeSk7XHJcbiAgICAgIGlmICghY291bnRyeSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoY291bnRyaWVzLmxlbmd0aCA9PT0gMSAmJiB0aGlzLmZvcm0uY291bnRyeS52YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuZm9ybS5jb3VudHJ5LmRpc2FibGUoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgbWV0aG9kcyA9IHRoaXMubWV0aG9kc0xpc3Q7XHJcbiAgICAgIGNvbnN0IGRlZmF1bHRNZXRob2ROYW1lID0gdGhpcy5mb3JtLmRlZmF1bHRNZXRob2ROYW1lO1xyXG4gICAgICBjb25zdCBkZWZhdWx0TWV0aG9kID0gbWV0aG9kcy5maW5kKG0gPT4gbS5uYW1lID09PSBkZWZhdWx0TWV0aG9kTmFtZSk/LmlkO1xyXG4gICAgICB0aGlzLmZvcm0ubWV0aG9kLnNldFZhbHVlKGRlZmF1bHRNZXRob2QgfHwgbWV0aG9kc1swXT8uaWQpO1xyXG5cclxuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIGlmIChtZXRob2RzLmxlbmd0aCA9PT0gMSAmJiB0aGlzLmZvcm0uY291bnRyeS5kaXNhYmxlZCkge1xyXG4gICAgICAgIHRoaXMuZm9ybS5tZXRob2QuZGlzYWJsZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB0aGlzLnNldEN1cnJlbmN5VmFsdWUoKTtcclxuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgICB0aGlzLmZvcm1cclxuICAgICAgICAuZGlzdGluY3RWYWx1ZUNoYW5nZXMoKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMudW5TdWJzY3JpYmVyKVxyXG4gICAgICAgIClcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMub25QYXltZW50Q2hhbmdlZC5lbWl0KHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpKSk7XHJcbiAgICAgIHRoaXMuZmV0Y2hGb3JtKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNoYW5nZXMuc3RlcD8uY3VycmVudFZhbHVlICYmICFjaGFuZ2VzLnR5cGVzICYmICFjaGFuZ2VzLmN1cnJlbmN5KSB7XHJcbiAgICAgIHRoaXMuZmV0Y2hGb3JtKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNoYW5nZXMuZmVlT3B0aW9ucyAmJiAhY2hhbmdlcy5mZWVPcHRpb25zLmZpcnN0Q2hhbmdlKSB7XHJcbiAgICAgIC8vIG5lZWQgZm9yIHRyaWdnZXJpbmcgb2YgdGhlIGN1c3RvbSB2YWxpZGF0b3JcclxuICAgICAgdGhpcy5mb3JtLmFtb3VudD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnN0ZXAgPT09IFRlcm1pbmFsU3RlcC5Db25maXJtYXRpb24pIHtcclxuICAgICAgdGhpcy5wcmVwYXJhdGlvblN0ZXBGaWxsZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5mb3JtXHJcbiAgICAgIC5jb3VudHJ5XHJcbiAgICAgIC52YWx1ZUNoYW5nZXNcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGEgPT09IGIpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuU3Vic2NyaWJlcilcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB0aGlzLmZvcm0uc2F2ZURlZmF1bHRDb3VudHJ5KCk7XHJcbiAgICAgICAgdGhpcy5mb3JtLm1ldGhvZC5zZXRWYWx1ZSh0aGlzLm1ldGhvZHNMaXN0WzBdLmlkLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xyXG5cclxuICAgICAgICBjb25zdCBtZXRob2RzID0gdGhpcy5tZXRob2RzTGlzdDtcclxuICAgICAgICBjb25zdCBkZWZhdWx0TWV0aG9kTmFtZSA9IHRoaXMuZm9ybS5kZWZhdWx0TWV0aG9kTmFtZTtcclxuICAgICAgICBjb25zdCBkZWZhdWx0TWV0aG9kID0gbWV0aG9kcy5maW5kKG0gPT4gbS5uYW1lID09PSBkZWZhdWx0TWV0aG9kTmFtZSk/LmlkO1xyXG4gICAgICAgIHRoaXMuZm9ybS5tZXRob2Quc2V0VmFsdWUoZGVmYXVsdE1ldGhvZCB8fCBtZXRob2RzWzBdLmlkLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgICAgICB0aGlzLnNldEN1cnJlbmN5VmFsdWUoKTtcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgICAgdGhpcy5mZXRjaEZvcm0oKTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmZvcm1cclxuICAgICAgLm1ldGhvZFxyXG4gICAgICAudmFsdWVDaGFuZ2VzXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBhID09PSBiKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy51blN1YnNjcmliZXIpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5mb3JtLm1ldGhvZC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgICAgICB0aGlzLmZvcm0uc2F2ZURlZmF1bHRNZXRob2ROYW1lKCk7XHJcbiAgICAgICAgdGhpcy5zZXRDdXJyZW5jeVZhbHVlKCk7XHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgdGhpcy5mZXRjaEZvcm0oKTtcclxuICAgICAgfSlcclxuICAgIHRoaXMuZm9ybVxyXG4gICAgICAuY3VycmVuY3lcclxuICAgICAgLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAucGlwZShcclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gYSA9PT0gYiksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5TdWJzY3JpYmVyKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZmV0Y2hGb3JtKCk7XHJcbiAgICAgICAgdGhpcy5mb3JtLnNhdmVEZWZhdWx0Q3VycmVuY3koKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZldGNoRm9ybSgpIHtcclxuICAgIGlmICghdGhpcy5mb3JtLm1ldGhvZC52YWx1ZSkge1xyXG4gICAgICB0aGlzLmZvcm0ucmVhZHkgPSB0cnVlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm0uY2FuY2VsUmVxdWVzdHMoKTtcclxuICAgIGlmICh0aGlzLnN0ZXAgIT09IHRoaXMuVEVSTUlOQUxfU1RFUC5QcmVwYXJlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybS5yZW1vdmVQYXltZW50Rm9ybUNvbnRyb2xzKCk7XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHRoaXMuZm9ybVxyXG4gICAgICAuaW5pdCgpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5wcmVwYXJhdGlvblN0ZXBGaWxsZWQgJiYgIXRoaXMuZm9ybS5oYXNXaGF0VG9GaWxsKCkpIHtcclxuICAgICAgICAgIHRoaXMuc2VuZCgpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmZvcm0ucGF5bWVudC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxUb1JlcXVpc2l0cygpO1xyXG4gICAgICAgIHRoaXMuZm9ybS5tYXNrZWRXYWxsZXQgPSAnJztcclxuICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMuZm9ybS5wYXltZW50LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2Nyb2xsVG9SZXF1aXNpdHMoKSB7XHJcbiAgICBpZiAodGhpcy5yZXF1aXNpdGVzIHx8IHRoaXMuaGludE1ldGhvZCkge1xyXG4gICAgICB0aGlzLm5nU2Nyb2xsQmFyPy5zY3JvbGxUb0VsZW1lbnQodGhpcy5oaW50TWV0aG9kPy5uYXRpdmVFbGVtZW50IHx8IHRoaXMucmVxdWlzaXRlcy5uYXRpdmVFbGVtZW50LCB7XHJcbiAgICAgICAgZHVyYXRpb246IDUwMCxcclxuICAgICAgICB0b3A6IC03NVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBkZXNjcmlwdGlvbigpIHtcclxuICAgIHJldHVybiB0eXBlb2YgdGhpcy5mb3JtLmNvbmZpZz8uZGVzY3JpcHRpb24gPT09ICdmdW5jdGlvbicgPyB0aGlzLmZvcm0uY29uZmlnPy5kZXNjcmlwdGlvbih0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSkgOiB0aGlzLmZvcm0uY29uZmlnPy5kZXNjcmlwdGlvbjtcclxuICB9XHJcblxyXG4gIHN1Ym1pdCgpIHtcclxuICAgIGlmICh0aGlzLnN0ZXAgPT09IFRlcm1pbmFsU3RlcC5Db25maXJtYXRpb24pIHtcclxuICAgICAgdGhpcy5jb25maXJtLmVtaXQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmZvcm0uY29uZmlnID09PSBudWxsIHx8ICF0aGlzLmZvcm0ucmVhZHkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy50cmlnZ2VySWZyYW1lU3VibWl0KCk7XHJcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQgfHwgdGhpcy5lcnJvcikge1xyXG4gICAgICBPYmplY3QudmFsdWVzKHRoaXMuZm9ybS5jb250cm9scykuZm9yRWFjaCgoY29udHJvbCkgPT4ge1xyXG4gICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoKTtcclxuICAgICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgfSk7XHJcbiAgICAgIE9iamVjdC52YWx1ZXModGhpcy5mb3JtLnBheW1lbnQuY29udHJvbHMpLmZvckVhY2goKGNvbnRyb2wpID0+IHtcclxuICAgICAgICBjb250cm9sLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZm9ybS5wZW5kaW5nKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5zdGF0dXNDaGFuZ2VzXHJcbiAgICAgICAgLnBpcGUoZmlyc3QoKSwgdGFrZVVudGlsKHRoaXMudW5TdWJzY3JpYmVyKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcclxuICAgICAgICAgIGlmIChzdGF0dXMgPT09ICdWQUxJRCcpIHtcclxuICAgICAgICAgICAgdGhpcy5zZW5kKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbmQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdHJpZ2dlcklmcmFtZVN1Ym1pdCgpIHtcclxuICAgIGlmICghdGhpcy5mb3JtLnJlYWR5SWZyYW1lc1N1Ym1pdCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNka0xpc3Q/LmZvckVhY2goKHNkazogQ2FyZFNka1NlcnZpY2UpID0+IHNkay5zdWJtaXQoKSk7XHJcbiAgICB0aGlzLmZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eUlmcmFtZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2VuZCgpIHtcclxuICAgIGNvbnN0IGRhdGE6IFRlcm1pbmFsUGF5bWVudFByZXBhcmVSZXF1ZXN0ID0gdGhpcy5mb3JtLmdldFBheW1lbnRWYWx1ZSgpO1xyXG4gICAgdGhpcy5tYXNrZWRXYWxsZXQgPSB0aGlzLmZvcm0ubWFza2VkV2FsbGV0O1xyXG4gICAgdGhpcy5wcmVwYXJlLmVtaXQoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBzZWFyY2hDb3VudHJ5KHZhbHVlKSB7XHJcbiAgICB0aGlzLmNvdW50cnlTZWFyY2hTdHJpbmcgPSB2YWx1ZTtcclxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgYmFja0J0bkxhYmVsKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5zdGVwID09PSBUZXJtaW5hbFN0ZXAuUHJlcGFyZSkge1xyXG4gICAgICByZXR1cm4gSTE4Tl9LRVkuQ09OU1RSVUNUT1JfTEFCRUxfQ0FOQ0VMX1JFVFVSTjtcclxuICAgIH1cclxuICAgIHJldHVybiBJMThOX0tFWS5DT05TVFJVQ1RPUl9MQUJFTF9SRVRVUk47XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VUZXh0RmllbGRWYWx1ZShtYXNrZWRWYWx1ZSwgZmllbGQ6IFBheW1lbnRGaWVsZCkge1xyXG4gICAgaWYgKGZpZWxkLndhbGxldCkge1xyXG4gICAgICB0aGlzLmZvcm0ubWFza2VkV2FsbGV0ID0gbWFza2VkVmFsdWU7XHJcbiAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnVuU3Vic2NyaWJlci5uZXh0KCk7XHJcbiAgICB0aGlzLnVuU3Vic2NyaWJlci51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBjbGFzcz1cImNvbnN0cnVjdG9yXCJcclxuICBbZm9ybUdyb3VwXT1cImZvcm1cIlxyXG4gIChuZ1N1Ym1pdCk9XCJzdWJtaXQoKVwiXHJcbiAgPlxyXG4gIEBpZiAoIWxvYWRpbmcpIHtcclxuICAgIEBpZiAoc3RlcCA9PT0gVEVSTUlOQUxfU1RFUC5QcmVwYXJlKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb25zdHJ1Y3Rvcl9fZmllbGRzXCI+XHJcbiAgICAgICAgQGlmIChjb3VudHJ5U2VhcmNoU3RyaW5nIHx8IGNvdW50cmllc0xpc3QubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnN0cnVjdG9yX19maWVsZFwiPlxyXG4gICAgICAgICAgICA8YXBwLXRybS1zZWxlY3QgW2RhdGFdPVwiY291bnRyaWVzTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5zZXJ0UmVtb3ZlXHJcbiAgICAgICAgICAgICAgbmFtZT1cImNvdW50cnlcIlxyXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJJMThOX0tFWS5DT05TVFJVQ1RPUl9MQUJFTF9DT1VOVFJZIHwgdHJhbnNcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvdW50cnlcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYy1maWVsZC1zZWxlY3QgdHJtLWZvcm0tZmllbGRcIlxyXG4gICAgICAgICAgICAgIChzZWFyY2gpPVwic2VhcmNoQ291bnRyeSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwidGFiSW5kZXhcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgdHJtU2VsZWN0TGFiZWxUZW1wbGF0ZSBsZXQtaXRlbT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiJ2ZpLScgKyBpdGVtLnRvTG93ZXJDYXNlKClcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGhvZF9fbmFtZVwiPnt7aXRlbSB8IGNvdW50cnlfdHJhbnNsYXRlOiBsYW5nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9hcHAtdHJtLXNlbGVjdD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgICBAaWYgKGZvcm0uY291bnRyeS52YWx1ZSkge1xyXG4gICAgICAgICAgPGFwcC1wcy1zZWxlY3QgW21ldGhvZHNdPVwibWV0aG9kc0xpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgQGluc2VydFJlbW92ZVxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJtZXRob2RcIlxyXG4gICAgICAgICAgICBbdGFiSW5kZXhdPVwidGFiSW5kZXhcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIEBpZiAoZm9ybS5jb25maWc/LmRlc2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnN0cnVjdG9yX19oaW50IHRleHQtLXdhcm5cIlxyXG4gICAgICAgICAgICAgICAgYXBwLXBzLXNlbGVjdC1oaW50XHJcbiAgICAgICAgICAgICAgICAjaGludE1ldGhvZFxyXG4gICAgICAgICAgICAgICAgQGluc2VydFJlbW92ZVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3tkZXNjcmlwdGlvbiB8IHRyYW5zIH19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvYXBwLXBzLXNlbGVjdD5cclxuXHJcbiAgICAgICAgICBAaWYgKFxyXG4gICAgICAgICAgICBmb3JtLm1ldGhvZD8uaGFzRXJyb3IoJ3JlcXVpcmVkJykgJiZcclxuICAgICAgICAgICAgZm9ybS5tZXRob2QudG91Y2hlZCAmJlxyXG4gICAgICAgICAgICBmb3JtLm1ldGhvZC5kaXJ0eVxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdtLWVycm9yXCIgQGluc2VydFJlbW92ZT5cclxuICAgICAgICAgICAgICB7eyBJMThOX0tFWS5WQUxJREFUSU9OX1JFUVVJUkVEIHwgdHJhbnMgfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaWYgKGZvcm0ucmVhZHkpIHtcclxuICAgICAgICAgICAgPGRpdiBmb3JtR3JvdXBOYW1lPVwicGF5bWVudFwiXHJcbiAgICAgICAgICAgICAgICAgQGluc2VydFJlbW92ZVxyXG4gICAgICAgICAgICAgICNwYXltZW50UmVxdWlzaXRlc1xyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY29uc3RydWN0b3JfX2ZpZWxkcyBjb25zdHJ1Y3Rvcl9fZmllbGRzLS1yZXZlcnNlXCI+XHJcbiAgICAgICAgICAgICAgQGlmIChmb3JtLm1ldGhvZC52YWx1ZSAmJiBmb3JtLmFtb3VudER5bmFtaWMpIHtcclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXJyZW5jeVRwbDsgY29udGV4dDoge2xhYmVsOiBJMThOX0tFWS5DT05TVFJVQ1RPUl9MQUJFTF9DVVJSRU5DWSB8IHRyYW5zLCB0YWJJbmRleDogMH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgQGZvciAoZmllbGQgb2YgZm9ybS5maWVsZHM7IHRyYWNrIGZpZWxkLm5hbWU7IGxldCBpID0gJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICBAaWYgKGZpZWxkLnR5cGUgPT09IENPTlNUUlVDVE9SX0ZJRUxEX1RZUEVTLklmcmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICBAaWYgKGZvcm0ucGF5bWVudC5nZXQoZmllbGQubmFtZSk/Lmhhc0Vycm9yKCdjZGVfZXJyb3InKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25zdHJ1Y3Rvcl9faGludCBjZGUtZXJyb3JcIiBAaW5zZXJ0UmVtb3ZlPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybS5wYXltZW50LmdldChmaWVsZC5uYW1lKS5nZXRFcnJvcignY2RlX2Vycm9yJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRyYW5zXHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtY29uc3RydWN0b3ItZmllbGQtaWZyYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBAaW5zZXJ0UmVtb3ZlXHJcbiAgICAgICAgICAgICAgICAgICAgW2hpZGRlbl09XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybS5wYXltZW50LmdldChmaWVsZC5uYW1lKT8uaGFzRXJyb3IoJ2NkZV9lcnJvcicpXHJcbiAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0YWJJbmRleF09XCJmb3JtLmZpZWxkcy5sZW5ndGggLSBpICsgdGFiSW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDwvYXBwLWNvbnN0cnVjdG9yLWZpZWxkLWlmcmFtZT5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIEBpZiAoZmllbGQudHlwZSA9PT0gQ09OU1RSVUNUT1JfRklFTERfVFlQRVMuU2VsZWN0KSB7XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtY29uc3RydWN0b3ItZmllbGQtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgICAgQGluc2VydFJlbW92ZVxyXG4gICAgICAgICAgICAgICAgICAgIFtjb25maWddPVwiZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJmaWVsZD8ub3B0aW9ucz8uaXRlbXNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RhYkluZGV4XT1cImZvcm0uZmllbGRzLmxlbmd0aCAtIGkgKyB0YWJJbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgID48L2FwcC1jb25zdHJ1Y3Rvci1maWVsZC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBAaWYgKFtDT05TVFJVQ1RPUl9GSUVMRF9UWVBFUy5UZXh0LCBDT05TVFJVQ1RPUl9GSUVMRF9UWVBFUy5OdW1iZXIsIENPTlNUUlVDVE9SX0ZJRUxEX1RZUEVTLkVtYWlsXS5pbmNsdWRlcyhmaWVsZC50eXBlKSkge1xyXG4gICAgICAgICAgICAgICAgICA8YXBwLWNvbnN0cnVjdG9yLWZpZWxkLXRleHRcclxuICAgICAgICAgICAgICAgICAgICBAaW5zZXJ0UmVtb3ZlXHJcbiAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAobWFza2VkVmFsdWVDaGFuZ2UpPVwiY2hhbmdlVGV4dEZpZWxkVmFsdWUoJGV2ZW50LCBmaWVsZClcIlxyXG4gICAgICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwiZm9ybS5maWVsZHMubGVuZ3RoIC0gaSArIHRhYkluZGV4XCI+PC9hcHAtY29uc3RydWN0b3ItZmllbGQtdGV4dD5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIEBpZiAoZmllbGQudHlwZSA9PT0gQ09OU1RSVUNUT1JfRklFTERfVFlQRVMuQW1vdW50KSB7XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtY29uc3RydWN0b3ItZmllbGQtdGV4dFxyXG4gICAgICAgICAgICAgICAgICAgIEBpbnNlcnRSZW1vdmVcclxuICAgICAgICAgICAgICAgICAgICBbY29uZmlnXT1cImZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0YWJJbmRleF09XCJmb3JtLmZpZWxkcy5sZW5ndGggLSBpICsgdGFiSW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLW1ldGhvZC1hbW91bnQtaGludCBhcHAtYy10ZXh0LWhpbnRcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29uc3RydWN0b3JfX2hpbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2xvYWRpbmddPVwiZmVlTG9hZGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJmZWVPcHRpb25zIHx8IGZpZWxkLm9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2FwcC1tZXRob2QtYW1vdW50LWhpbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBhcHAtYy10ZXh0LXN1ZmZpeFxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb25zdHJ1Y3Rvcl9fY3VycmVuY3lcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmNvbnN0cnVjdG9yX19jdXJyZW5jeS0tdHJhbnNwYXJlbnRdPVwiZm9ybS5pc0Ftb3VudEVkaXRhYmxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXJyZW5jeVRwbDsgY29udGV4dDoge3RhYkluZGV4OiBmb3JtLmZpZWxkcy5sZW5ndGggLSBpICsgdGFiSW5kZXh9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvYXBwLWNvbnN0cnVjdG9yLWZpZWxkLXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgIEBpZiAoaGFzQ3VycmVuY3lNZXRob2RTZWxlY3Rvcikge1xyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtdHJtLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgQGluc2VydFJlbW92ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb25zdHJ1Y3Rvci1maWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiSTE4Tl9LRVkuQ09OU1RSVUNUT1JfTEFCRUxfQ1VSUkVOQ1kgfCB0cmFuc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybS5jdXJyZW5jeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc2VhcmNoYWJsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJjdXJyZW5jaWVzTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwiZm9ybS5maWVsZHMubGVuZ3RoIC0gaSArIHRhYkluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSB0cm1TZWxlY3RMYWJlbFRlbXBsYXRlIGxldC1pdGVtPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRybS1pY29uXCIgW25nQ2xhc3NdPVwiJ3RybS1jdXJyLScgKyBpdGVtLnRvTG93ZXJDYXNlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiaXRlbVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtfX1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hcHAtdHJtLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGlmIChmaWVsZC50eXBlID09PSBDT05TVFJVQ1RPUl9GSUVMRF9UWVBFUy5EYXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtY29uc3RydWN0b3ItZmllbGQtZGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgIEBpbnNlcnRSZW1vdmVcclxuICAgICAgICAgICAgICAgICAgICBbY29uZmlnXT1cImZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwiZm9ybS5maWVsZHMubGVuZ3RoIC0gaSArIHRhYkluZGV4XCI+PC9hcHAtY29uc3RydWN0b3ItZmllbGQtZGF0ZT5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjdXJyZW5jeVRwbCBsZXQtbGFiZWw9XCJsYWJlbFwiIGxldC10YWJJbmRleD1cInRhYkluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLXRybS1zZWxlY3RcclxuICAgICAgICAgICAgICAgICAgQGluc2VydFJlbW92ZVxyXG4gICAgICAgICAgICAgICAgICBbbGFiZWxdPVwibGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybS51c2VyQ3VycmVuY3lcIlxyXG4gICAgICAgICAgICAgICAgICBbc2VhcmNoYWJsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtkYXRhXT1cInVzZXJDdXJyZW5jaWVzTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgIFt0YWJJbmRleF09XCJ0YWJJbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHRybVNlbGVjdExhYmVsVGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cm0taWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCIndHJtLWN1cnItJyArIGl0ZW0udG9Mb3dlckNhc2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIml0ZW1cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAge3tpdGVtfX1cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvYXBwLXRybS1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJtLXNrZWxldG9uLWZpZWxkc1wiPlxyXG4gICAgICAgICAgICBAZm9yIChpIG9mIHNrZWxldG9uTGVuZ3RoOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJtLXNrZWxldG9uLWZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8Z20tc2tlbGV0b24gW2NvdW50XT1cIjFcIiBbc2hhcGVdPVwiJ3JlY3QtbWQnXCIgW3NpemVdPVwiMThcIj48L2dtLXNrZWxldG9uPlxyXG4gICAgICAgICAgICAgICAgPGdtLXNrZWxldG9uIFtjb3VudF09XCIxXCIgW3NpemVdPVwiNTBcIj48L2dtLXNrZWxldG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgICAgQGlmIChlcnJvciAmJiAhZm9ybS5tZXRob2RJbmZvTG9hZGluZykge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRybS1lcnJvclwiXHJcbiAgICAgICAgICAgIEBpbnNlcnRSZW1vdmVcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBlcnJvciB8IHRyYW5zIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gICAgQGlmIChzdGVwID09PSBURVJNSU5BTF9TVEVQLkNvbmZpcm1hdGlvbikge1xyXG4gICAgICA8YXBwLWNvbnN0cnVjdG9yLXByZXBhcmF0aW9uXHJcbiAgICAgICAgQGluc2VydFJlbW92ZVxyXG4gICAgICAgIFtjdXJyZW5jeV09XCJyZXNwb25zZT8uY3VycmVuY3lcIlxyXG4gICAgICAgIFttZXRob2ROYW1lXT1cImZvcm0uZ2V0VHlwZU5hbWVCeUlkKHJlc3BvbnNlLnR5cGVJZClcIlxyXG4gICAgICAgIFt3YWxsZXRdPVwicmVzcG9uc2Uud2FsbGV0XCJcclxuICAgICAgICBbbWFza2VkV2FsbGV0XT1cIm1hc2tlZFdhbGxldFwiXHJcbiAgICAgICAgW2Ftb3VudF09XCJyZXNwb25zZS5hbW91bnRcIlxyXG4gICAgICAgIFt0b3RhbF09XCJyZXNwb25zZS50b3RhbFwiXHJcbiAgICAgICAgW2NvbmZpcm1hdGlvblRleHRdPVwiZm9ybS5jb25maWc/LmNvbmZpcm1hdGlvblwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIEBpZiAoZXJyb3IgJiYgIWZvcm0ucGF5bWVudC5wZW5kaW5nKSB7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJtLWVycm9yXCJcclxuICAgICAgICAgICAgYXBwLWNvbnN0cnVjdG9yLXByZXBhcmF0aW9uLWVycm9yXHJcbiAgICAgICAgICAgIEBpbnNlcnRSZW1vdmVcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBlcnJvciB8IHRyYW5zIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvYXBwLWNvbnN0cnVjdG9yLXByZXBhcmF0aW9uPlxyXG4gICAgfVxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnN0cnVjdG9yX19hY3Rpb25zXCJcclxuICAgICAgICAgQGluc2VydFJlbW92ZT5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInRybS1idXR0b24gdHJtLWJ1dHRvbi0tcHJpbWFyeSBjb25zdHJ1Y3Rvcl9fYWN0aW9ucy1jb250aW51ZVwiXHJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgW3RhYmluZGV4XT1cImZvcm0uZmllbGRzLmxlbmd0aCArIHRhYkluZGV4XCI+XHJcbiAgICAgICAge3tJMThOX0tFWS5DT05TVFJVQ1RPUl9MQUJFTF9DT05USU5VRSB8IHRyYW5zfX1cclxuICAgICAgICBAaWYgKGxvYWRpbmcpIHtcclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJtLXNwaW5uZXIgdHJtLXNwaW5uZXItd2hpdGVcIj48L3NwYW4+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInRybS1idXR0b24gdHJtLWJ1dHRvbi0tc2Vjb25kYXJ5IGNvbnN0cnVjdG9yX19hY3Rpb25zLWJhY2tcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIFt0YWJpbmRleF09XCJmb3JtLmZpZWxkcy5sZW5ndGggKyB0YWJJbmRleFwiXHJcbiAgICAgIChjbGljayk9XCJiYWNrLmVtaXQoKVwiPiB7eyBiYWNrQnRuTGFiZWwgfCB0cmFuc319PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICB9IEBlbHNlIHtcclxuICAgIDxkaXYgY2xhc3M9XCJ0cm0tc2tlbGV0b24tZ3JvdXBcIj5cclxuICAgICAgPGdtLXNrZWxldG9uIFtjb3VudF09XCI0XCIgW2dhcF09XCIyMFwiIFtzaXplXT1cIjgwXCI+PC9nbS1za2VsZXRvbj5cclxuICAgICAgPGdtLXNrZWxldG9uIFtjb3VudF09XCIyXCIgW2dhcF09XCIxMFwiIFtzaXplXT1cIjQ4XCI+PC9nbS1za2VsZXRvbj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuPC9mb3JtPlxyXG4iXX0=
374
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0b3ItZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vY29uc3RydWN0b3ItZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vY29uc3RydWN0b3ItZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUdOLFNBQVMsRUFDVCxZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFxQyxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFRN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFN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QUFFLCtCQUErQixFQUFFLDZCQUE2QixFQUFFLHlCQUF5QixFQUFFLDZCQUE2QixFQUFFLCtCQUErQixFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixDQUFDOzhCQWNqYyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRTJDLFVBQVU7c0JBQTFELFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUNMLFVBQVU7c0JBQW5ELFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFDVixPQUFPO3NCQUFwQyxZQUFZO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGF5bWVudEZpZWxkLCBQYXltZW50RmllbGRPcHRpb25zLCBQYXltZW50RmllbGRUeXBlRW51bSwgVGVybWluYWxTdGVwIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0b3JGb3JtU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvY29uc3RydWN0b3ItZm9ybS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIE1ldGhvZFR5cGUsXG4gIE1ldGhvZFR5cGVUeXBlLFxuICBUZXJtaW5hbFBheW1lbnRDb25maXJtUmVzcG9uc2UsXG4gIFRlcm1pbmFsUGF5bWVudFByZXBhcmVSZXF1ZXN0LFxuICBUZXJtaW5hbFBheW1lbnRQcmVwYXJlUmVzcG9uc2Vcbn0gZnJvbSAnLi4vLi4vLi4vLi4vY29kZWdlbi9tb2RlbC9tb2RlbHMnO1xuaW1wb3J0IHsgaW5zZXJ0UmVtb3ZlVHJpZ2dlciB9IGZyb20gJy4vLi4vLi4vLi4vaGVscGVycy9pbnNlcnRSZW1vdmVUcmlnZ2VyJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQ291bnRyaWVzU29ydFBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlcy9jb3VudHJpZXMtc29ydC5waXBlJztcbmltcG9ydCB7IE5nU2Nyb2xsYmFyIH0gZnJvbSAnbmd4LXNjcm9sbGJhcic7XG5pbXBvcnQgeyBJMThOX0tFWSB9IGZyb20gJy4vLi4vLi4vLi4vaTE4bic7XG5pbXBvcnQge1xuICBDb25zdHJ1Y3RvckZpZWxkSWZyYW1lQ29tcG9uZW50XG59IGZyb20gXCIuL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZmllbGQtaWZyYW1lL2NvbnN0cnVjdG9yLWZpZWxkLWlmcmFtZS5jb21wb25lbnRcIjtcbmltcG9ydCB7IENvdW50cnlUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvY291bnRyeS10cmFuc2xhdGUucGlwZSc7XG5pbXBvcnQgeyBURVJNSU5BTF9WRVJTSU9OX1NFUlZJQ0VfVE9LRU4gfSBmcm9tICcuLi8uLi8uLi8uLi9jb25zdCc7XG5pbXBvcnQgeyBWZXJzaW9uU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJtU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvdHJtLXNlbGVjdC90cm0tc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBUcm1TZWxlY3RMYWJlbFRlbXBsYXRlRGlyZWN0aXZlXG59IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL3RybS1zZWxlY3QvdHJtLXNlbGVjdC1sYWJlbC10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUHNTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHMtc2VsZWN0L3BzLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQ29uc3RydWN0b3JGaWVsZFNlbGVjdENvbXBvbmVudFxufSBmcm9tICcuL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZmllbGQtc2VsZWN0L2NvbnN0cnVjdG9yLWZpZWxkLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29uc3RydWN0b3JGaWVsZFRleHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZmllbGQtdGV4dC9jb25zdHJ1Y3Rvci1maWVsZC10ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZXRob2RBbW91bnRIaW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21ldGhvZC1hbW91bnQtaGludC9tZXRob2QtYW1vdW50LWhpbnQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbnN0cnVjdG9yRmllbGREYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZpZWxkLWRhdGUvY29uc3RydWN0b3ItZmllbGQtZGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQ29uc3RydWN0b3JQcmVwYXJhdGlvbkNvbXBvbmVudFxufSBmcm9tICcuL2NvbXBvbmVudHMvY29uc3RydWN0b3ItcHJlcGFyYXRpb24vY29uc3RydWN0b3ItcHJlcGFyYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFRhYkluZGV4Rm9jdXNEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3RhYi1pbmRleC1mb2N1cy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlQnlLZXlQaXBlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3BpcGVzL3RyYW5zbGF0ZS1ieS1rZXkucGlwZSc7XG5pbXBvcnQgeyBHbVNrZWxldG9uQ29tcG9uZW50IH0gZnJvbSAnQGdtbW9uZXkvZ20tdWkta2l0JztcbmltcG9ydCB7IE9USEVSX0NPVU5UUllfQ09ERSB9IGZyb20gXCIuLi8uLi8uLi9oZWxwZXJzXCI7XG5pbXBvcnQgeyBDYXJkU2RrU2VydmljZSB9IGZyb20gXCIuL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZmllbGQtaWZyYW1lL2NhcmQtc2RrLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvbnN0cnVjdG9yLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29uc3RydWN0b3ItZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbnN0cnVjdG9yLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGFuaW1hdGlvbnM6IFtpbnNlcnRSZW1vdmVUcmlnZ2VyXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQ29uc3RydWN0b3JGb3JtU2VydmljZSxcbiAgICBDb3VudHJ5VHJhbnNsYXRlUGlwZSwgQ291bnRyaWVzU29ydFBpcGVcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvdW50cnlUcmFuc2xhdGVQaXBlLCBDb3VudHJpZXNTb3J0UGlwZSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFRybVNlbGVjdENvbXBvbmVudCwgVHJtU2VsZWN0TGFiZWxUZW1wbGF0ZURpcmVjdGl2ZSwgTmdDbGFzcywgUHNTZWxlY3RDb21wb25lbnQsIE5nVGVtcGxhdGVPdXRsZXQsIENvbnN0cnVjdG9yRmllbGRJZnJhbWVDb21wb25lbnQsIENvbnN0cnVjdG9yRmllbGRTZWxlY3RDb21wb25lbnQsIENvbnN0cnVjdG9yRmllbGRUZXh0Q29tcG9uZW50LCBNZXRob2RBbW91bnRIaW50Q29tcG9uZW50LCBDb25zdHJ1Y3RvckZpZWxkRGF0ZUNvbXBvbmVudCwgQ29uc3RydWN0b3JQcmVwYXJhdGlvbkNvbXBvbmVudCwgVGFiSW5kZXhGb2N1c0RpcmVjdGl2ZSwgQ291bnRyeVRyYW5zbGF0ZVBpcGUsIFRyYW5zbGF0ZUJ5S2V5UGlwZSwgR21Ta2VsZXRvbkNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgQ29uc3RydWN0b3JGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGNkID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgZm9ybSA9IGluamVjdChDb25zdHJ1Y3RvckZvcm1TZXJ2aWNlKTtcbiAgcHJpdmF0ZSB0cmFuc2xhdGVTcnYgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG4gIHByaXZhdGUgY291bnRyaWVzU29ydFBpcGUgPSBpbmplY3QoQ291bnRyaWVzU29ydFBpcGUpO1xuICBwcml2YXRlIGNvdW50cnlUcmFuc2xhdGVQaXBlID0gaW5qZWN0KENvdW50cnlUcmFuc2xhdGVQaXBlKTtcbiAgcHJpdmF0ZSBuZ1Njcm9sbEJhciA9IGluamVjdChOZ1Njcm9sbGJhcik7XG4gIHByaXZhdGUgdmVyc2lvblNydiA9IGluamVjdDxWZXJzaW9uU2VydmljZUludGVyZmFjZT4oVEVSTUlOQUxfVkVSU0lPTl9TRVJWSUNFX1RPS0VOKTtcblxuICBwcml2YXRlIHVuU3Vic2NyaWJlciA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcHJlcGFyYXRpb25TdGVwRmlsbGVkID0gZmFsc2U7XG4gIFRFUk1JTkFMX1NURVAgPSBUZXJtaW5hbFN0ZXA7XG4gIEBJbnB1dCgpIHN0ZXA6IFRlcm1pbmFsU3RlcDtcbiAgQElucHV0KCkgZXJyb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlc3BvbnNlOiBUZXJtaW5hbFBheW1lbnRQcmVwYXJlUmVzcG9uc2UgJiBUZXJtaW5hbFBheW1lbnRDb25maXJtUmVzcG9uc2UgJiB7XG4gICAgdHlwZUlkPzogbnVtYmVyO1xuICB9O1xuICBDT05TVFJVQ1RPUl9GSUVMRF9UWVBFUyA9IFBheW1lbnRGaWVsZFR5cGVFbnVtO1xuICBASW5wdXQoKSBmZWVMb2FkaW5nOiBib29sZWFuO1xuICBASW5wdXQoKSBmZWVPcHRpb25zOiBQYXltZW50RmllbGRPcHRpb25zO1xuICBASW5wdXQoKSBjdXJyZW5jeTogc3RyaW5nO1xuICBASW5wdXQoKSB1c2VyQ3VycmVuY3k6IHN0cmluZ1tdO1xuICBASW5wdXQoKSBsb2FkaW5nID0gbnVsbDtcbiAgQElucHV0KCkgdHlwZXM6IE1ldGhvZFR5cGVbXSA9IFtdO1xuICBASW5wdXQoKSBjYW5SZXR1cm5Ub1Byb2plY3QgPSB0cnVlO1xuICBAT3V0cHV0KCkgYW1vdW50Q2hhbmdlZDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQE91dHB1dCgpIGJhY2s6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHByZXBhcmU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBjb25maXJtOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgb25QYXltZW50Q2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgdGFiSW5kZXg6IG51bWJlcjtcbiAgY291bnRyeVNlYXJjaFN0cmluZzogc3RyaW5nO1xuICBAVmlld0NoaWxkKCdwYXltZW50UmVxdWlzaXRlcycsIHtzdGF0aWM6IGZhbHNlfSkgcmVxdWlzaXRlczogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnaGludE1ldGhvZCcsIHtzdGF0aWM6IGZhbHNlfSkgaGludE1ldGhvZDogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZHJlbihDYXJkU2RrU2VydmljZSkgc2RrTGlzdDogUXVlcnlMaXN0PENhcmRTZGtTZXJ2aWNlPjtcbiAgbWFza2VkV2FsbGV0OiBzdHJpbmc7XG5cbiAgSTE4Tl9LRVkgPSBJMThOX0tFWTtcblxuICBnZXQgY291bnRyaWVzTGlzdCgpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuY291bnRyaWVzU29ydFBpcGVcbiAgICAgIC50cmFuc2Zvcm0oXG4gICAgICAgIHRoaXMudHlwZXNcbiAgICAgICAgICAubWFwKHR5cGUgPT4gdHlwZS5jb3VudHJ5SVNPQ29kZSlcbiAgICAgICAgICAuZmlsdGVyKCh2YWx1ZSwgaW5kZXgsIHNlbGYpID0+IHNlbGYuaW5kZXhPZih2YWx1ZSkgPT09IGluZGV4KVxuICAgICAgKVxuICAgICAgLmZpbHRlcigobTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5jb3VudHJ5U2VhcmNoU3RyaW5nKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgdGl0bGU6IHN0cmluZyA9IHRoaXMuY291bnRyeVRyYW5zbGF0ZVBpcGUudHJhbnNmb3JtKG0pO1xuICAgICAgICAgIHJldHVybiB0aXRsZS50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAuc3BsaXQoJyAnKS5zb21lKFxuICAgICAgICAgICAgICB0cyA9PiB0aGlzLmNvdW50cnlTZWFyY2hTdHJpbmcudG9Mb3dlckNhc2UoKS5zcGxpdCgnICcpLnNvbWUocyA9PiB0cy5pbmNsdWRlcyhzKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0IG1ldGhvZHNMaXN0KCk6IE1ldGhvZFR5cGVUeXBlW10ge1xuICAgIHJldHVybiB0aGlzLnR5cGVzXG4gICAgICAuZmlsdGVyKHR5cGUgPT4gdHlwZS5jb3VudHJ5SVNPQ29kZSA9PT0gdGhpcy5mb3JtLmNvdW50cnkudmFsdWUpXG4gICAgICAvLyBkaXN0aW5jdFxuICAgICAgLmZpbHRlcigodHlwZSwgaW5kZXgsIHNlbGYpID0+IHNlbGYubWFwKG0gPT4gbS50eXBlLmlkKS5pbmRleE9mKHR5cGUudHlwZS5pZCkgPT09IGluZGV4KVxuICAgICAgLy9zb3J0aW5nIGJ5IHRoZSBwcmlvcml0eVxuICAgICAgLnNvcnQoKG0xLCBtMikgPT4gbTEucHJpb3JpdHkgPiBtMi5wcmlvcml0eSA/IDEgOiAoKG0xLnByaW9yaXR5ID09PSBtMi5wcmlvcml0eSkgPyAwIDogLTEpKVxuICAgICAgLm1hcCh0eXBlID0+IHR5cGUudHlwZSk7XG4gIH1cblxuICBnZXQgY3VycmVuY2llc0xpc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZXNcbiAgICAgIC5maWx0ZXIodHlwZSA9PiB0eXBlLmNvdW50cnlJU09Db2RlID09PSB0aGlzLmZvcm0uY291bnRyeS52YWx1ZSAmJiB0eXBlLnR5cGUuaWQgPT09IHRoaXMuZm9ybS5tZXRob2QudmFsdWUpXG4gICAgICAubWFwKHR5cGUgPT4gdHlwZS5jdXJyZW5jeSlcbiAgfVxuXG4gIGdldCB1c2VyQ3VycmVuY2llc0xpc3QoKSB7XG4gICAgY29uc3QgZmlsdGVyZWRUeXBlcyA9IHRoaXMuY3VycmVuY2llc0xpc3Q7XG5cbiAgICBpZiAoIXRoaXMudXNlckN1cnJlbmN5KSB7XG4gICAgICByZXR1cm4gZmlsdGVyZWRUeXBlcztcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy51c2VyQ3VycmVuY3lcbiAgICAgIC5maWx0ZXIodXNlckN1cnJlbmN5ID0+IGZpbHRlcmVkVHlwZXMuaW5jbHVkZXModXNlckN1cnJlbmN5KSlcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q3VycmVuY3lWYWx1ZSgpIHtcbiAgICBsZXQgZGVmYXVsdEN1cnJlbmN5ID0gdGhpcy5mb3JtLmRlZmF1bHRDdXJyZW5jeTtcblxuICAgIGxldCBjdXJyZW5jaWVzID0gdGhpcy5jdXJyZW5jaWVzTGlzdDtcbiAgICBsZXQgY3VycmVuY3kgPSBjdXJyZW5jaWVzWzBdO1xuICAgIGlmIChkZWZhdWx0Q3VycmVuY3kgJiYgdGhpcy5jdXJyZW5jaWVzTGlzdC5pbmNsdWRlcyhkZWZhdWx0Q3VycmVuY3kpKSB7XG4gICAgICBjdXJyZW5jeSA9IGRlZmF1bHRDdXJyZW5jeTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3VycmVuY3kgJiYgdGhpcy5jdXJyZW5jaWVzTGlzdC5pbmNsdWRlcyh0aGlzLmN1cnJlbmN5KSkge1xuICAgICAgY3VycmVuY3kgPSB0aGlzLmN1cnJlbmN5O1xuICAgIH1cbiAgICB0aGlzLmZvcm0uY3VycmVuY3kuc2V0VmFsdWUoY3VycmVuY3kpO1xuXG4gICAgY3VycmVuY2llcyA9IHRoaXMudXNlckN1cnJlbmNpZXNMaXN0O1xuICAgIGN1cnJlbmN5ID0gY3VycmVuY2llc1swXTtcbiAgICBpZiAoZGVmYXVsdEN1cnJlbmN5ICYmIHRoaXMudXNlckN1cnJlbmNpZXNMaXN0LmluY2x1ZGVzKGRlZmF1bHRDdXJyZW5jeSkpIHtcbiAgICAgIGN1cnJlbmN5ID0gZGVmYXVsdEN1cnJlbmN5O1xuICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW5jeSAmJiB0aGlzLnVzZXJDdXJyZW5jaWVzTGlzdC5pbmNsdWRlcyh0aGlzLmN1cnJlbmN5KSkge1xuICAgICAgY3VycmVuY3kgPSB0aGlzLmN1cnJlbmN5O1xuICAgIH1cbiAgICB0aGlzLmZvcm0udXNlckN1cnJlbmN5LnNldFZhbHVlKGN1cnJlbmN5LCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgIGlmIChjdXJyZW5jaWVzLmxlbmd0aCA9PT0gMSAmJiBjdXJyZW5jeSAmJiB0aGlzLmZvcm0ubWV0aG9kLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmZvcm0udXNlckN1cnJlbmN5LmRpc2FibGUoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgaGFzQ3VycmVuY3lNZXRob2RTZWxlY3RvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52ZXJzaW9uU3J2Lmhhc0N1cnJlbmN5TWV0aG9kU2VsZWN0b3IgPT09IHRydWU7XG4gIH1cblxuICBnZXQgbGFuZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNydi5jdXJyZW50TGFuZztcbiAgfVxuXG4gIGdldCBza2VsZXRvbkxlbmd0aCgpIHtcbiAgICByZXR1cm4gbmV3IEFycmF5KHRoaXMuZm9ybS5maWVsZHM/Lmxlbmd0aCB8fCAzKS5maWxsKDApO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLnR5cGVzICYmIHRoaXMudHlwZXM/Lmxlbmd0aCB8fCBjaGFuZ2VzLmN1cnJlbmN5ICYmIHRoaXMuY3VycmVuY3kpIHtcbiAgICAgIC8vIEdldCBjb25maWd1cmF0aW9uIGZpZWxkc1xuICAgICAgY29uc3QgY291bnRyaWVzID0gdGhpcy5jb3VudHJpZXNMaXN0O1xuICAgICAgY29uc3QgZGVmYXVsdENvdW50cnkgPSB0aGlzLmZvcm0uZGVmYXVsdENvdW50cnk7XG4gICAgICBsZXQgY291bnRyeSA9IG51bGw7XG4gICAgICBpZiAoIWNvdW50cmllcy5pbmNsdWRlcyhkZWZhdWx0Q291bnRyeSkpIHtcbiAgICAgICAgaWYgKGNvdW50cmllcy5pbmNsdWRlcyhPVEhFUl9DT1VOVFJZX0NPREUpKSB7XG4gICAgICAgICAgY291bnRyeSA9IE9USEVSX0NPVU5UUllfQ09ERTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY291bnRyeSA9IGRlZmF1bHRDb3VudHJ5O1xuICAgICAgfVxuICAgICAgdGhpcy5mb3JtLmNvdW50cnkuc2V0VmFsdWUoY291bnRyeSk7XG4gICAgICBpZiAoIWNvdW50cnkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGNvdW50cmllcy5sZW5ndGggPT09IDEgJiYgdGhpcy5mb3JtLmNvdW50cnkudmFsdWUpIHtcbiAgICAgICAgdGhpcy5mb3JtLmNvdW50cnkuZGlzYWJsZSgpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBtZXRob2RzID0gdGhpcy5tZXRob2RzTGlzdDtcbiAgICAgIGNvbnN0IGRlZmF1bHRNZXRob2ROYW1lID0gdGhpcy5mb3JtLmRlZmF1bHRNZXRob2ROYW1lO1xuICAgICAgY29uc3QgZGVmYXVsdE1ldGhvZCA9IG1ldGhvZHMuZmluZChtID0+IG0ubmFtZSA9PT0gZGVmYXVsdE1ldGhvZE5hbWUpPy5pZDtcbiAgICAgIHRoaXMuZm9ybS5tZXRob2Quc2V0VmFsdWUoZGVmYXVsdE1ldGhvZCB8fCBtZXRob2RzWzBdPy5pZCk7XG5cbiAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgaWYgKG1ldGhvZHMubGVuZ3RoID09PSAxICYmIHRoaXMuZm9ybS5jb3VudHJ5LmRpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuZm9ybS5tZXRob2QuZGlzYWJsZSgpO1xuICAgICAgfVxuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB0aGlzLnNldEN1cnJlbmN5VmFsdWUoKTtcbiAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICB0aGlzLmZvcm1cbiAgICAgICAgLmRpc3RpbmN0VmFsdWVDaGFuZ2VzKClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMudW5TdWJzY3JpYmVyKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vblBheW1lbnRDaGFuZ2VkLmVtaXQodGhpcy5mb3JtLmdldFJhd1ZhbHVlKCkpKTtcbiAgICAgIHRoaXMuZmV0Y2hGb3JtKCk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuc3RlcD8uY3VycmVudFZhbHVlICYmICFjaGFuZ2VzLnR5cGVzICYmICFjaGFuZ2VzLmN1cnJlbmN5KSB7XG4gICAgICB0aGlzLmZldGNoRm9ybSgpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLmZlZU9wdGlvbnMgJiYgIWNoYW5nZXMuZmVlT3B0aW9ucy5maXJzdENoYW5nZSkge1xuICAgICAgLy8gbmVlZCBmb3IgdHJpZ2dlcmluZyBvZiB0aGUgY3VzdG9tIHZhbGlkYXRvclxuICAgICAgdGhpcy5mb3JtLmFtb3VudD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnN0ZXAgPT09IFRlcm1pbmFsU3RlcC5Db25maXJtYXRpb24pIHtcbiAgICAgIHRoaXMucHJlcGFyYXRpb25TdGVwRmlsbGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5mb3JtXG4gICAgICAuY291bnRyeVxuICAgICAgLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBhID09PSBiKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5TdWJzY3JpYmVyKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLmZvcm0uc2F2ZURlZmF1bHRDb3VudHJ5KCk7XG4gICAgICAgIHRoaXMuZm9ybS5tZXRob2Quc2V0VmFsdWUodGhpcy5tZXRob2RzTGlzdFswXS5pZCwge2VtaXRFdmVudDogZmFsc2V9KTtcblxuICAgICAgICBjb25zdCBtZXRob2RzID0gdGhpcy5tZXRob2RzTGlzdDtcbiAgICAgICAgY29uc3QgZGVmYXVsdE1ldGhvZE5hbWUgPSB0aGlzLmZvcm0uZGVmYXVsdE1ldGhvZE5hbWU7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRNZXRob2QgPSBtZXRob2RzLmZpbmQobSA9PiBtLm5hbWUgPT09IGRlZmF1bHRNZXRob2ROYW1lKT8uaWQ7XG4gICAgICAgIHRoaXMuZm9ybS5tZXRob2Quc2V0VmFsdWUoZGVmYXVsdE1ldGhvZCB8fCBtZXRob2RzWzBdLmlkLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICB0aGlzLnNldEN1cnJlbmN5VmFsdWUoKTtcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgdGhpcy5mZXRjaEZvcm0oKTtcbiAgICAgIH0pO1xuICAgIHRoaXMuZm9ybVxuICAgICAgLm1ldGhvZFxuICAgICAgLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBhID09PSBiKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5TdWJzY3JpYmVyKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZm9ybS5tZXRob2QuY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgICAgIHRoaXMuZm9ybS5zYXZlRGVmYXVsdE1ldGhvZE5hbWUoKTtcbiAgICAgICAgdGhpcy5zZXRDdXJyZW5jeVZhbHVlKCk7XG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLmZldGNoRm9ybSgpO1xuICAgICAgfSlcbiAgICB0aGlzLmZvcm1cbiAgICAgIC5jdXJyZW5jeVxuICAgICAgLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBhID09PSBiKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5TdWJzY3JpYmVyKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZmV0Y2hGb3JtKCk7XG4gICAgICAgIHRoaXMuZm9ybS5zYXZlRGVmYXVsdEN1cnJlbmN5KCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hGb3JtKCkge1xuICAgIGlmICghdGhpcy5mb3JtLm1ldGhvZC52YWx1ZSkge1xuICAgICAgdGhpcy5mb3JtLnJlYWR5ID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5mb3JtLmNhbmNlbFJlcXVlc3RzKCk7XG4gICAgaWYgKHRoaXMuc3RlcCAhPT0gdGhpcy5URVJNSU5BTF9TVEVQLlByZXBhcmUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5mb3JtLnJlbW92ZVBheW1lbnRGb3JtQ29udHJvbHMoKTtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLmZvcm1cbiAgICAgIC5pbml0KClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMucHJlcGFyYXRpb25TdGVwRmlsbGVkICYmICF0aGlzLmZvcm0uaGFzV2hhdFRvRmlsbCgpKSB7XG4gICAgICAgICAgdGhpcy5zZW5kKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9ybS5wYXltZW50LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9SZXF1aXNpdHMoKTtcbiAgICAgICAgdGhpcy5mb3JtLm1hc2tlZFdhbGxldCA9ICcnO1xuICAgICAgfSwgKGVycikgPT4ge1xuICAgICAgICB0aGlzLmZvcm0ucGF5bWVudC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgb25seVNlbGY6IHRydWUgfSk7XG4gICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsVG9SZXF1aXNpdHMoKSB7XG4gICAgaWYgKHRoaXMucmVxdWlzaXRlcyB8fCB0aGlzLmhpbnRNZXRob2QpIHtcbiAgICAgIHRoaXMubmdTY3JvbGxCYXI/LnNjcm9sbFRvRWxlbWVudCh0aGlzLmhpbnRNZXRob2Q/Lm5hdGl2ZUVsZW1lbnQgfHwgdGhpcy5yZXF1aXNpdGVzLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgICAgZHVyYXRpb246IDUwMCxcbiAgICAgICAgdG9wOiAtNzVcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGdldCBkZXNjcmlwdGlvbigpIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMuZm9ybS5jb25maWc/LmRlc2NyaXB0aW9uID09PSAnZnVuY3Rpb24nID8gdGhpcy5mb3JtLmNvbmZpZz8uZGVzY3JpcHRpb24odGhpcy5mb3JtLmdldFJhd1ZhbHVlKCkpIDogdGhpcy5mb3JtLmNvbmZpZz8uZGVzY3JpcHRpb247XG4gIH1cblxuICBzdWJtaXQoKSB7XG4gICAgaWYgKHRoaXMuZmVlTG9hZGluZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdGVwID09PSBUZXJtaW5hbFN0ZXAuQ29uZmlybWF0aW9uKSB7XG4gICAgICB0aGlzLmNvbmZpcm0uZW1pdCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvcm0uY29uZmlnID09PSBudWxsIHx8ICF0aGlzLmZvcm0ucmVhZHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy50cmlnZ2VySWZyYW1lU3VibWl0KCk7XG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkIHx8IHRoaXMuZXJyb3IpIHtcbiAgICAgIE9iamVjdC52YWx1ZXModGhpcy5mb3JtLmNvbnRyb2xzKS5mb3JFYWNoKChjb250cm9sKSA9PiB7XG4gICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB9KTtcbiAgICAgIE9iamVjdC52YWx1ZXModGhpcy5mb3JtLnBheW1lbnQuY29udHJvbHMpLmZvckVhY2goKGNvbnRyb2wpID0+IHtcbiAgICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZm9ybS5wZW5kaW5nKSB7XG4gICAgICB0aGlzLmZvcm0uc3RhdHVzQ2hhbmdlc1xuICAgICAgICAucGlwZShmaXJzdCgpLCB0YWtlVW50aWwodGhpcy51blN1YnNjcmliZXIpKVxuICAgICAgICAuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcbiAgICAgICAgICBpZiAoc3RhdHVzID09PSAnVkFMSUQnKSB7XG4gICAgICAgICAgICB0aGlzLnNlbmQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbmQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRyaWdnZXJJZnJhbWVTdWJtaXQoKSB7XG4gICAgaWYgKCF0aGlzLmZvcm0ucmVhZHlJZnJhbWVzU3VibWl0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2RrTGlzdD8uZm9yRWFjaCgoc2RrOiBDYXJkU2RrU2VydmljZSkgPT4gc2RrLnN1Ym1pdCgpKTtcbiAgICB0aGlzLmZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eUlmcmFtZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2VuZCgpIHtcbiAgICBjb25zdCBkYXRhOiBUZXJtaW5hbFBheW1lbnRQcmVwYXJlUmVxdWVzdCA9IHRoaXMuZm9ybS5nZXRQYXltZW50VmFsdWUoKTtcbiAgICB0aGlzLm1hc2tlZFdhbGxldCA9IHRoaXMuZm9ybS5tYXNrZWRXYWxsZXQ7XG4gICAgdGhpcy5wcmVwYXJlLmVtaXQoZGF0YSk7XG4gIH1cblxuICBzZWFyY2hDb3VudHJ5KHZhbHVlKSB7XG4gICAgdGhpcy5jb3VudHJ5U2VhcmNoU3RyaW5nID0gdmFsdWU7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGdldCBiYWNrQnRuTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zdGVwID09PSBUZXJtaW5hbFN0ZXAuUHJlcGFyZSkge1xuICAgICAgcmV0dXJuIEkxOE5fS0VZLkNPTlNUUlVDVE9SX0xBQkVMX0NBTkNFTF9SRVRVUk47XG4gICAgfVxuICAgIHJldHVybiBJMThOX0tFWS5DT05TVFJVQ1RPUl9MQUJFTF9SRVRVUk47XG4gIH1cblxuICBjaGFuZ2VUZXh0RmllbGRWYWx1ZShtYXNrZWRWYWx1ZSwgZmllbGQ6IFBheW1lbnRGaWVsZCkge1xuICAgIGlmIChmaWVsZC53YWxsZXQpIHtcbiAgICAgIHRoaXMuZm9ybS5tYXNrZWRXYWxsZXQgPSBtYXNrZWRWYWx1ZTtcbiAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudW5TdWJzY3JpYmVyLm5leHQoKTtcbiAgICB0aGlzLnVuU3Vic2NyaWJlci51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8Zm9ybSBjbGFzcz1cImNvbnN0cnVjdG9yXCJcbiAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgKG5nU3VibWl0KT1cInN1Ym1pdCgpXCJcbiAgPlxuICBAaWYgKGxvYWRpbmcgIT09IG51bGwpIHtcbiAgICBAaWYgKHN0ZXAgPT09IFRFUk1JTkFMX1NURVAuUHJlcGFyZSkge1xuICAgICAgPGRpdiBjbGFzcz1cImNvbnN0cnVjdG9yX19maWVsZHNcIj5cbiAgICAgICAgQGlmIChjb3VudHJ5U2VhcmNoU3RyaW5nIHx8IGNvdW50cmllc0xpc3QubGVuZ3RoID4gMSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25zdHJ1Y3Rvcl9fZmllbGRcIj5cbiAgICAgICAgICAgIDxhcHAtdHJtLXNlbGVjdCBbZGF0YV09XCJjb3VudHJpZXNMaXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5zZXJ0UmVtb3ZlXG4gICAgICAgICAgICAgIG5hbWU9XCJjb3VudHJ5XCJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIkkxOE5fS0VZLkNPTlNUUlVDVE9SX0xBQkVMX0NPVU5UUlkgfCB0cmFuc1wiXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvdW50cnlcIlxuICAgICAgICAgICAgICBjbGFzcz1cImMtZmllbGQtc2VsZWN0IHRybS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgICAgKHNlYXJjaCk9XCJzZWFyY2hDb3VudHJ5KCRldmVudClcIlxuICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwidGFiSW5kZXhcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSB0cm1TZWxlY3RMYWJlbFRlbXBsYXRlIGxldC1pdGVtPVwiaXRlbVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIidmaS0nICsgaXRlbS50b0xvd2VyQ2FzZSgpXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWV0aG9kX19uYW1lXCI+e3tpdGVtIHwgY291bnRyeV90cmFuc2xhdGU6IGxhbmd9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvYXBwLXRybS1zZWxlY3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChmb3JtLmNvdW50cnkudmFsdWUpIHtcbiAgICAgICAgICA8YXBwLXBzLXNlbGVjdCBbbWV0aG9kc109XCJtZXRob2RzTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgQGluc2VydFJlbW92ZVxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWV0aG9kXCJcbiAgICAgICAgICAgIFt0YWJJbmRleF09XCJ0YWJJbmRleFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKGZvcm0uY29uZmlnPy5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uc3RydWN0b3JfX2hpbnQgdGV4dC0td2FyblwiXG4gICAgICAgICAgICAgICAgYXBwLXBzLXNlbGVjdC1oaW50XG4gICAgICAgICAgICAgICAgI2hpbnRNZXRob2RcbiAgICAgICAgICAgICAgICBAaW5zZXJ0UmVtb3ZlXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7ZGVzY3JpcHRpb24gfCB0cmFucyB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2FwcC1wcy1zZWxlY3Q+XG5cbiAgICAgICAgICBAaWYgKFxuICAgICAgICAgICAgZm9ybS5tZXRob2Q/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpICYmXG4gICAgICAgICAgICBmb3JtLm1ldGhvZC50b3VjaGVkICYmXG4gICAgICAgICAgICBmb3JtLm1ldGhvZC5kaXJ0eVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ20tZXJyb3JcIiBAaW5zZXJ0UmVtb3ZlPlxuICAgICAgICAgICAgICB7eyBJMThOX0tFWS5WQUxJREFUSU9OX1JFUVVJUkVEIHwgdHJhbnMgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoZm9ybS5yZWFkeSkge1xuICAgICAgICAgICAgPGRpdiBmb3JtR3JvdXBOYW1lPVwicGF5bWVudFwiXG4gICAgICAgICAgICAgICAgIEBpbnNlcnRSZW1vdmVcbiAgICAgICAgICAgICAgI3BheW1lbnRSZXF1aXNpdGVzXG4gICAgICAgICAgICAgIGNsYXNzPVwiY29uc3RydWN0b3JfX2ZpZWxkcyBjb25zdHJ1Y3Rvcl9fZmllbGRzLS1yZXZlcnNlXCI+XG4gICAgICAgICAgICAgIEBpZiAoZm9ybS5tZXRob2QudmFsdWUgJiYgZm9ybS5hbW91bnREeW5hbWljKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1cnJlbmN5VHBsOyBjb250ZXh0OiB7bGFiZWw6IEkxOE5fS0VZLkNPTlNUUlVDVE9SX0xBQkVMX0NVUlJFTkNZIHwgdHJhbnMsIHRhYkluZGV4OiAwfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBmb3IgKGZpZWxkIG9mIGZvcm0uZmllbGRzOyB0cmFjayBmaWVsZC5uYW1lOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgIEBpZiAoZmllbGQudHlwZSA9PT0gQ09OU1RSVUNUT1JfRklFTERfVFlQRVMuSWZyYW1lKSB7XG4gICAgICAgICAgICAgICAgICBAaWYgKGZvcm0ucGF5bWVudC5nZXQoZmllbGQubmFtZSk/Lmhhc0Vycm9yKCdjZGVfZXJyb3InKSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uc3RydWN0b3JfX2hpbnQgY2RlLWVycm9yXCIgQGluc2VydFJlbW92ZT5cbiAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybS5wYXltZW50LmdldChmaWVsZC5uYW1lKS5nZXRFcnJvcignY2RlX2Vycm9yJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0cmFuc1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPGFwcC1jb25zdHJ1Y3Rvci1maWVsZC1pZnJhbWVcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgQGluc2VydFJlbW92ZVxuICAgICAgICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwiZm9ybS5maWVsZHMubGVuZ3RoIC0gaSArIHRhYkluZGV4XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDwvYXBwLWNvbnN0cnVjdG9yLWZpZWxkLWlmcmFtZT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChmaWVsZC50eXBlID09PSBDT05TVFJVQ1RPUl9GSUVMRF9UWVBFUy5TZWxlY3QpIHtcbiAgICAgICAgICAgICAgICAgIDxhcHAtY29uc3RydWN0b3ItZmllbGQtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIEBpbnNlcnRSZW1vdmVcbiAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJmaWVsZFwiXG4gICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJmaWVsZD8ub3B0aW9ucz8uaXRlbXNcIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwiZm9ybS5maWVsZHMubGVuZ3RoIC0gaSArIHRhYkluZGV4XCJcbiAgICAgICAgICAgICAgICAgID48L2FwcC1jb25zdHJ1Y3Rvci1maWVsZC1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoW0NPTlNUUlVDVE9SX0ZJRUxEX1RZUEVTLlRleHQsIENPTlNUUlVDVE9SX0ZJRUxEX1RZUEVTLk51bWJlciwgQ09OU1RSVUNUT1JfRklFTERfVFlQRVMuRW1haWxdLmluY2x1ZGVzKGZpZWxkLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICA8YXBwLWNvbnN0cnVjdG9yLWZpZWxkLXRleHRcbiAgICAgICAgICAgICAgICAgICAgQGluc2VydFJlbW92ZVxuICAgICAgICAgICAgICAgICAgICBbY29uZmlnXT1cImZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgKG1hc2tlZFZhbHVlQ2hhbmdlKT1cImNoYW5nZVRleHRGaWVsZFZhbHVlKCRldmVudCwgZmllbGQpXCJcbiAgICAgICAgICAgICAgICAgIFt0YWJJbmRleF09XCJmb3JtLmZpZWxkcy5sZW5ndGggLSBpICsgdGFiSW5kZXhcIj48L2FwcC1jb25zdHJ1Y3Rvci1maWVsZC10ZXh0PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGZpZWxkLnR5cGUgPT09IENPTlNUUlVDVE9SX0ZJRUxEX1RZUEVTLkFtb3VudCkge1xuICAgICAgICAgICAgICAgICAgPGFwcC1jb25zdHJ1Y3Rvci1maWVsZC10ZXh0XG4gICAgICAgICAgICAgICAgICAgIEBpbnNlcnRSZW1vdmVcbiAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJmaWVsZFwiXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIFt0YWJJbmRleF09XCJmb3JtLmZpZWxkcy5sZW5ndGggLSBpICsgdGFiSW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFwcC1tZXRob2QtYW1vdW50LWhpbnQgYXBwLWMtdGV4dC1oaW50XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb25zdHJ1Y3Rvcl9faGludFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2xvYWRpbmddPVwiZmVlTG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwiZmVlT3B0aW9ucyB8fCBmaWVsZC5vcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYXBwLW1ldGhvZC1hbW91bnQtaGludD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBhcHAtYy10ZXh0LXN1ZmZpeFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29uc3RydWN0b3JfX2N1cnJlbmN5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuY29uc3RydWN0b3JfX2N1cnJlbmN5LS10cmFuc3BhcmVudF09XCJmb3JtLmlzQW1vdW50RWRpdGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VycmVuY3lUcGw7IGNvbnRleHQ6IHt0YWJJbmRleDogZm9ybS5maWVsZHMubGVuZ3RoIC0gaSArIHRhYkluZGV4fVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvYXBwLWNvbnN0cnVjdG9yLWZpZWxkLXRleHQ+XG4gICAgICAgICAgICAgICAgICBAaWYgKGhhc0N1cnJlbmN5TWV0aG9kU2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgPGFwcC10cm0tc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgQGluc2VydFJlbW92ZVxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29uc3RydWN0b3ItZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJJMThOX0tFWS5DT05TVFJVQ1RPUl9MQUJFTF9DVVJSRU5DWSB8IHRyYW5zXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybS5jdXJyZW5jeVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3NlYXJjaGFibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImN1cnJlbmNpZXNMaXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwiZm9ybS5maWVsZHMubGVuZ3RoIC0gaSArIHRhYkluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHRybVNlbGVjdExhYmVsVGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRybS1pY29uXCIgW25nQ2xhc3NdPVwiJ3RybS1jdXJyLScgKyBpdGVtLnRvTG93ZXJDYXNlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIml0ZW1cIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW19fVxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvYXBwLXRybS1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoZmllbGQudHlwZSA9PT0gQ09OU1RSVUNUT1JfRklFTERfVFlQRVMuRGF0ZSkge1xuICAgICAgICAgICAgICAgICAgPGFwcC1jb25zdHJ1Y3Rvci1maWVsZC1kYXRlXG4gICAgICAgICAgICAgICAgICAgIEBpbnNlcnRSZW1vdmVcbiAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJmaWVsZFwiXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQubmFtZVwiXG4gICAgICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwiZm9ybS5maWVsZHMubGVuZ3RoIC0gaSArIHRhYkluZGV4XCI+PC9hcHAtY29uc3RydWN0b3ItZmllbGQtZGF0ZT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjdXJyZW5jeVRwbCBsZXQtbGFiZWw9XCJsYWJlbFwiIGxldC10YWJJbmRleD1cInRhYkluZGV4XCI+XG4gICAgICAgICAgICAgICAgPGFwcC10cm0tc2VsZWN0XG4gICAgICAgICAgICAgICAgICBAaW5zZXJ0UmVtb3ZlXG4gICAgICAgICAgICAgICAgICBbbGFiZWxdPVwibGFiZWxcIlxuICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm0udXNlckN1cnJlbmN5XCJcbiAgICAgICAgICAgICAgICAgIFtzZWFyY2hhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgIFtkYXRhXT1cInVzZXJDdXJyZW5jaWVzTGlzdFwiXG4gICAgICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwidGFiSW5kZXhcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHRybVNlbGVjdExhYmVsVGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJtLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIid0cm0tY3Vyci0nICsgaXRlbS50b0xvd2VyQ2FzZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIml0ZW1cIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIHt7aXRlbX19XG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvYXBwLXRybS1zZWxlY3Q+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRybS1za2VsZXRvbi1maWVsZHNcIj5cbiAgICAgICAgICAgIEBmb3IgKGkgb2Ygc2tlbGV0b25MZW5ndGg7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJtLXNrZWxldG9uLWZpZWxkXCI+XG4gICAgICAgICAgICAgICAgPGdtLXNrZWxldG9uIFtjb3VudF09XCIxXCIgW3NoYXBlXT1cIidyZWN0LW1kJ1wiIFtzaXplXT1cIjE4XCI+PC9nbS1za2VsZXRvbj5cbiAgICAgICAgICAgICAgICA8Z20tc2tlbGV0b24gW2NvdW50XT1cIjFcIiBbc2l6ZV09XCI1MFwiPjwvZ20tc2tlbGV0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoZXJyb3IgJiYgIWZvcm0ubWV0aG9kSW5mb0xvYWRpbmcpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJtLWVycm9yXCJcbiAgICAgICAgICAgIEBpbnNlcnRSZW1vdmVcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGVycm9yIHwgdHJhbnMgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgfVxuICAgIEBpZiAoc3RlcCA9PT0gVEVSTUlOQUxfU1RFUC5Db25maXJtYXRpb24pIHtcbiAgICAgIDxhcHAtY29uc3RydWN0b3ItcHJlcGFyYXRpb25cbiAgICAgICAgQGluc2VydFJlbW92ZVxuICAgICAgICBbY3VycmVuY3ldPVwicmVzcG9uc2U/LmN1cnJlbmN5XCJcbiAgICAgICAgW21ldGhvZE5hbWVdPVwiZm9ybS5nZXRUeXBlTmFtZUJ5SWQocmVzcG9uc2UudHlwZUlkKVwiXG4gICAgICAgIFt3YWxsZXRdPVwicmVzcG9uc2Uud2FsbGV0XCJcbiAgICAgICAgW21hc2tlZFdhbGxldF09XCJtYXNrZWRXYWxsZXRcIlxuICAgICAgICBbYW1vdW50XT1cInJlc3BvbnNlLmFtb3VudFwiXG4gICAgICAgIFt0b3RhbF09XCJyZXNwb25zZS50b3RhbFwiXG4gICAgICAgIFtjb25maXJtYXRpb25UZXh0XT1cImZvcm0uY29uZmlnPy5jb25maXJtYXRpb25cIlxuICAgICAgICA+XG4gICAgICAgIEBpZiAoZXJyb3IgJiYgIWZvcm0ucGF5bWVudC5wZW5kaW5nKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRybS1lcnJvclwiXG4gICAgICAgICAgICBhcHAtY29uc3RydWN0b3ItcHJlcGFyYXRpb24tZXJyb3JcbiAgICAgICAgICAgIEBpbnNlcnRSZW1vdmVcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGVycm9yIHwgdHJhbnMgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9hcHAtY29uc3RydWN0b3ItcHJlcGFyYXRpb24+XG4gICAgfVxuICAgIDxkaXYgY2xhc3M9XCJjb25zdHJ1Y3Rvcl9fYWN0aW9uc1wiXG4gICAgICAgICBAaW5zZXJ0UmVtb3ZlPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInRybS1idXR0b24gdHJtLWJ1dHRvbi0tcHJpbWFyeSBjb25zdHJ1Y3Rvcl9fYWN0aW9ucy1jb250aW51ZVwiXG4gICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICBbdGFiaW5kZXhdPVwiZm9ybS5maWVsZHMubGVuZ3RoICsgdGFiSW5kZXhcIj5cbiAgICAgICAge3tJMThOX0tFWS5DT05TVFJVQ1RPUl9MQUJFTF9DT05USU5VRSB8IHRyYW5zfX1cbiAgICAgICAgQGlmIChsb2FkaW5nKSB7XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cm0tc3Bpbm5lciB0cm0tc3Bpbm5lci13aGl0ZVwiPjwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwidHJtLWJ1dHRvbiB0cm0tYnV0dG9uLS1zZWNvbmRhcnkgY29uc3RydWN0b3JfX2FjdGlvbnMtYmFja1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBbdGFiaW5kZXhdPVwiZm9ybS5maWVsZHMubGVuZ3RoICsgdGFiSW5kZXhcIlxuICAgICAgKGNsaWNrKT1cImJhY2suZW1pdCgpXCI+IHt7IGJhY2tCdG5MYWJlbCB8IHRyYW5zfX08L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgfSBAZWxzZSB7XG4gICAgPGRpdiBjbGFzcz1cInRybS1za2VsZXRvbi1ncm91cFwiPlxuICAgICAgPGdtLXNrZWxldG9uIFtjb3VudF09XCI0XCIgW2dhcF09XCIyMFwiIFtzaXplXT1cIjgwXCI+PC9nbS1za2VsZXRvbj5cbiAgICAgIDxnbS1za2VsZXRvbiBbY291bnRdPVwiMlwiIFtnYXBdPVwiMTBcIiBbc2l6ZV09XCI0OFwiPjwvZ20tc2tlbGV0b24+XG4gICAgPC9kaXY+XG4gIH1cbjwvZm9ybT5cbiJdfQ==
@@ -2,4 +2,4 @@ export * from './constructor-form.component';
2
2
  export * from './components';
3
3
  export * from './services';
4
4
  export * from './models';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29uc3RydWN0b3ItZm9ybS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMnO1xyXG4iXX0=
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29uc3RydWN0b3ItZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMnO1xuIl19
@@ -3,4 +3,4 @@ export var CollectionType;
3
3
  CollectionType[CollectionType["Banks"] = 1] = "Banks";
4
4
  CollectionType[CollectionType["Documents"] = 2] = "Documents";
5
5
  })(CollectionType || (CollectionType = {}));
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi10eXBlLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vbW9kZWxzL2NvbGxlY3Rpb24tdHlwZS5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGNBR1g7QUFIRCxXQUFZLGNBQWM7SUFDdEIscURBQVMsQ0FBQTtJQUNULDZEQUFhLENBQUE7QUFDakIsQ0FBQyxFQUhXLGNBQWMsS0FBZCxjQUFjLFFBR3pCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gQ29sbGVjdGlvblR5cGUge1xyXG4gICAgQmFua3MgPSAxLFxyXG4gICAgRG9jdW1lbnRzID0gMlxyXG59XHJcbiJdfQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi10eXBlLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vbW9kZWxzL2NvbGxlY3Rpb24tdHlwZS5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGNBR1g7QUFIRCxXQUFZLGNBQWM7SUFDdEIscURBQVMsQ0FBQTtJQUNULDZEQUFhLENBQUE7QUFDakIsQ0FBQyxFQUhXLGNBQWMsS0FBZCxjQUFjLFFBR3pCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gQ29sbGVjdGlvblR5cGUge1xuICAgIEJhbmtzID0gMSxcbiAgICBEb2N1bWVudHMgPSAyXG59XG4iXX0=
@@ -6,4 +6,4 @@ export const advcash = {
6
6
  FIELD_TEMPLATE.AMOUNT
7
7
  ]
8
8
  };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2Y2FzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rlcm1pbmFsLXRlbXBsYXRlL3NyYy9saWIvYXBwL3BhZ2VzL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZm9ybS9tb2RlbHMvY29uZmlnL2FkdmNhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5ELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBa0I7SUFDbEMsWUFBWSxFQUFFLEVBQUU7SUFDaEIsS0FBSyxFQUFFLFNBQVM7SUFDaEIsTUFBTSxFQUFFO1FBQ0osY0FBYyxDQUFDLE1BQU07S0FDeEI7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGF5bWVudEZpZWxkcyB9IGZyb20gJy4uL3BheW1lbnQtZmllbGRzJztcclxuaW1wb3J0IHsgRklFTERfVEVNUExBVEUgfSBmcm9tICcuLi9maWVsZC10ZW1wbGF0ZSc7XHJcblxyXG5leHBvcnQgY29uc3QgYWR2Y2FzaDogUGF5bWVudEZpZWxkcyA9IHtcclxuICAgIGNvbmZpcm1hdGlvbjogJycsXHJcbiAgICB0aXRsZTogJ0FkdmNhc2gnLFxyXG4gICAgZmllbGRzOiBbXHJcbiAgICAgICAgRklFTERfVEVNUExBVEUuQU1PVU5UXHJcbiAgICBdXHJcbn07XHJcbiJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2Y2FzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rlcm1pbmFsLXRlbXBsYXRlL3NyYy9saWIvYXBwL3BhZ2VzL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZm9ybS9tb2RlbHMvY29uZmlnL2FkdmNhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5ELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBa0I7SUFDbEMsWUFBWSxFQUFFLEVBQUU7SUFDaEIsS0FBSyxFQUFFLFNBQVM7SUFDaEIsTUFBTSxFQUFFO1FBQ0osY0FBYyxDQUFDLE1BQU07S0FDeEI7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGF5bWVudEZpZWxkcyB9IGZyb20gJy4uL3BheW1lbnQtZmllbGRzJztcbmltcG9ydCB7IEZJRUxEX1RFTVBMQVRFIH0gZnJvbSAnLi4vZmllbGQtdGVtcGxhdGUnO1xuXG5leHBvcnQgY29uc3QgYWR2Y2FzaDogUGF5bWVudEZpZWxkcyA9IHtcbiAgICBjb25maXJtYXRpb246ICcnLFxuICAgIHRpdGxlOiAnQWR2Y2FzaCcsXG4gICAgZmllbGRzOiBbXG4gICAgICAgIEZJRUxEX1RFTVBMQVRFLkFNT1VOVFxuICAgIF1cbn07XG4iXX0=
@@ -6,4 +6,4 @@ export const alfabank = {
6
6
  FIELD_TEMPLATE.AMOUNT
7
7
  ]
8
8
  };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxmYWJhbmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vbW9kZWxzL2NvbmZpZy9hbGZhYmFuay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFpQixNQUFNLFVBQVUsQ0FBQztBQUV6RCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQWtCO0lBQ25DLFlBQVksRUFBRSxFQUFFO0lBQ2hCLEtBQUssRUFBRSxXQUFXO0lBQ2xCLE1BQU0sRUFBRTtRQUNKLGNBQWMsQ0FBQyxNQUFNO0tBQ3hCO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZJRUxEX1RFTVBMQVRFLCBQYXltZW50RmllbGRzIH0gZnJvbSAnLi4vaW5kZXgnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGFsZmFiYW5rOiBQYXltZW50RmllbGRzID0ge1xyXG4gICAgY29uZmlybWF0aW9uOiAnJyxcclxuICAgIHRpdGxlOiAnQWxmYUNsaWNrJyxcclxuICAgIGZpZWxkczogW1xyXG4gICAgICAgIEZJRUxEX1RFTVBMQVRFLkFNT1VOVFxyXG4gICAgXVxyXG59O1xyXG4iXX0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxmYWJhbmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vbW9kZWxzL2NvbmZpZy9hbGZhYmFuay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFpQixNQUFNLFVBQVUsQ0FBQztBQUV6RCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQWtCO0lBQ25DLFlBQVksRUFBRSxFQUFFO0lBQ2hCLEtBQUssRUFBRSxXQUFXO0lBQ2xCLE1BQU0sRUFBRTtRQUNKLGNBQWMsQ0FBQyxNQUFNO0tBQ3hCO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZJRUxEX1RFTVBMQVRFLCBQYXltZW50RmllbGRzIH0gZnJvbSAnLi4vaW5kZXgnO1xuXG5leHBvcnQgY29uc3QgYWxmYWJhbms6IFBheW1lbnRGaWVsZHMgPSB7XG4gICAgY29uZmlybWF0aW9uOiAnJyxcbiAgICB0aXRsZTogJ0FsZmFDbGljaycsXG4gICAgZmllbGRzOiBbXG4gICAgICAgIEZJRUxEX1RFTVBMQVRFLkFNT1VOVFxuICAgIF1cbn07XG4iXX0=
@@ -6,4 +6,4 @@ export const alipay = {
6
6
  FIELD_TEMPLATE.AMOUNT
7
7
  ]
8
8
  };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpcGF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvcGFnZXMvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1mb3JtL21vZGVscy9jb25maWcvYWxpcGF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQWtCO0lBQ2pDLFlBQVksRUFBRSxFQUFFO0lBQ2hCLEtBQUssRUFBRSxRQUFRO0lBQ2YsTUFBTSxFQUFFO1FBQ0osY0FBYyxDQUFDLE1BQU07S0FDeEI7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGF5bWVudEZpZWxkcyB9IGZyb20gJy4uL3BheW1lbnQtZmllbGRzJztcclxuaW1wb3J0IHsgRklFTERfVEVNUExBVEUgfSBmcm9tICcuLi9maWVsZC10ZW1wbGF0ZSc7XHJcblxyXG5leHBvcnQgY29uc3QgYWxpcGF5OiBQYXltZW50RmllbGRzID0ge1xyXG4gICAgY29uZmlybWF0aW9uOiAnJyxcclxuICAgIHRpdGxlOiAnQWxpcGF5JyxcclxuICAgIGZpZWxkczogW1xyXG4gICAgICAgIEZJRUxEX1RFTVBMQVRFLkFNT1VOVFxyXG4gICAgXVxyXG59O1xyXG4iXX0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpcGF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvcGFnZXMvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1mb3JtL21vZGVscy9jb25maWcvYWxpcGF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQWtCO0lBQ2pDLFlBQVksRUFBRSxFQUFFO0lBQ2hCLEtBQUssRUFBRSxRQUFRO0lBQ2YsTUFBTSxFQUFFO1FBQ0osY0FBYyxDQUFDLE1BQU07S0FDeEI7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGF5bWVudEZpZWxkcyB9IGZyb20gJy4uL3BheW1lbnQtZmllbGRzJztcbmltcG9ydCB7IEZJRUxEX1RFTVBMQVRFIH0gZnJvbSAnLi4vZmllbGQtdGVtcGxhdGUnO1xuXG5leHBvcnQgY29uc3QgYWxpcGF5OiBQYXltZW50RmllbGRzID0ge1xuICAgIGNvbmZpcm1hdGlvbjogJycsXG4gICAgdGl0bGU6ICdBbGlwYXknLFxuICAgIGZpZWxkczogW1xuICAgICAgICBGSUVMRF9URU1QTEFURS5BTU9VTlRcbiAgICBdXG59O1xuIl19
@@ -9,4 +9,4 @@ export const alipay_plus = {
9
9
  FIELD_TEMPLATE.SECOND_NAME
10
10
  ]
11
11
  };
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpcGF5X3BsdXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vbW9kZWxzL2NvbmZpZy9hbGlwYXlfcGx1cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFrQjtJQUN0QyxZQUFZLEVBQUUsRUFBRTtJQUNoQixLQUFLLEVBQUUsYUFBYTtJQUNwQixNQUFNLEVBQUU7UUFDSixjQUFjLENBQUMsTUFBTTtRQUNyQixjQUFjLENBQUMsS0FBSztRQUNwQixjQUFjLENBQUMsVUFBVTtRQUN6QixjQUFjLENBQUMsV0FBVztLQUM3QjtDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXltZW50RmllbGRzIH0gZnJvbSAnLi4vcGF5bWVudC1maWVsZHMnO1xyXG5pbXBvcnQgeyBGSUVMRF9URU1QTEFURSB9IGZyb20gJy4uL2ZpZWxkLXRlbXBsYXRlJztcclxuXHJcbmV4cG9ydCBjb25zdCBhbGlwYXlfcGx1czogUGF5bWVudEZpZWxkcyA9IHtcclxuICAgIGNvbmZpcm1hdGlvbjogJycsXHJcbiAgICB0aXRsZTogJ0FsaXBheSBQbHVzJyxcclxuICAgIGZpZWxkczogW1xyXG4gICAgICAgIEZJRUxEX1RFTVBMQVRFLkFNT1VOVCxcclxuICAgICAgICBGSUVMRF9URU1QTEFURS5FTUFJTCxcclxuICAgICAgICBGSUVMRF9URU1QTEFURS5GSVJTVF9OQU1FLFxyXG4gICAgICAgIEZJRUxEX1RFTVBMQVRFLlNFQ09ORF9OQU1FXHJcbiAgICBdXHJcbn07XHJcbiJdfQ==
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpcGF5X3BsdXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vbW9kZWxzL2NvbmZpZy9hbGlwYXlfcGx1cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFrQjtJQUN0QyxZQUFZLEVBQUUsRUFBRTtJQUNoQixLQUFLLEVBQUUsYUFBYTtJQUNwQixNQUFNLEVBQUU7UUFDSixjQUFjLENBQUMsTUFBTTtRQUNyQixjQUFjLENBQUMsS0FBSztRQUNwQixjQUFjLENBQUMsVUFBVTtRQUN6QixjQUFjLENBQUMsV0FBVztLQUM3QjtDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXltZW50RmllbGRzIH0gZnJvbSAnLi4vcGF5bWVudC1maWVsZHMnO1xuaW1wb3J0IHsgRklFTERfVEVNUExBVEUgfSBmcm9tICcuLi9maWVsZC10ZW1wbGF0ZSc7XG5cbmV4cG9ydCBjb25zdCBhbGlwYXlfcGx1czogUGF5bWVudEZpZWxkcyA9IHtcbiAgICBjb25maXJtYXRpb246ICcnLFxuICAgIHRpdGxlOiAnQWxpcGF5IFBsdXMnLFxuICAgIGZpZWxkczogW1xuICAgICAgICBGSUVMRF9URU1QTEFURS5BTU9VTlQsXG4gICAgICAgIEZJRUxEX1RFTVBMQVRFLkVNQUlMLFxuICAgICAgICBGSUVMRF9URU1QTEFURS5GSVJTVF9OQU1FLFxuICAgICAgICBGSUVMRF9URU1QTEFURS5TRUNPTkRfTkFNRVxuICAgIF1cbn07XG4iXX0=
@@ -206,4 +206,4 @@ export const CONFIG = {
206
206
  mirpay,
207
207
  mbway
208
208
  };
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvcGFnZXMvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1mb3JtL21vZGVscy9jb25maWcvYWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNoQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFR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QjtJQUNyQixNQUFNO0lBQ04sTUFBTTtJQUNOLEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxVQUFVO0lBQ1YsTUFBTTtJQUNOLFNBQVM7SUFDVCxPQUFPO0lBQ1AsSUFBSTtJQUNKLFFBQVE7SUFDUixNQUFNO0lBQ04sWUFBWTtJQUNaLFlBQVk7SUFDWixNQUFNO0lBQ04sS0FBSztDQUNSLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZHZjYXNoIH0gZnJvbSAnLi9hZHZjYXNoJztcclxuaW1wb3J0IHsgYWxmYWJhbmsgfSBmcm9tICcuL2FsZmFiYW5rJztcclxuaW1wb3J0IHsgYWxpcGF5IH0gZnJvbSAnLi9hbGlwYXknO1xyXG5pbXBvcnQgeyBhbGlwYXlfcGx1cyB9IGZyb20gJy4vYWxpcGF5X3BsdXMnO1xyXG5pbXBvcnQgeyBhcHBsZXBheSB9IGZyb20gJy4vYXBwbGVwYXknO1xyXG5pbXBvcnQgeyBhcmdlbnRpbmFfYmFuayB9IGZyb20gJy4vYXJnZW50aW5hX2JhbmsnO1xyXG5pbXBvcnQgeyBhdGYyNCB9IGZyb20gJy4vYXRmMjQnO1xyXG5pbXBvcnQgeyBiYWxvdG8gfSBmcm9tICcuL2JhbG90byc7XHJcbmltcG9ydCB7IGJlZWxpbmUgfSBmcm9tICcuL2JlZWxpbmUnO1xyXG5pbXBvcnQgeyBibGlrIH0gZnJvbSAnLi9ibGlrJztcclxuaW1wb3J0IHsgYm9sZXRvIH0gZnJvbSAnLi9ib2xldG8nO1xyXG5pbXBvcnQgeyBicmF6aWxfYmFuayB9IGZyb20gJy4vYnJhemlsX2JhbmsnO1xyXG5pbXBvcnQgeyBjYXJkIH0gZnJvbSAnLi9jYXJkJztcclxuaW1wb3J0IHsgY2FyZ2FfdmlydHVhbCB9IGZyb20gJy4vY2FyZ2FfdmlydHVhbCc7XHJcbmltcG9ydCB7IGNhc2ggfSBmcm9tICcuL2Nhc2gnO1xyXG5pbXBvcnQgeyBjYXNodG9jb2RlIH0gZnJvbSAnLi9jYXNodG9jb2RlJztcclxuaW1wb3J0IHsgY29kaSB9IGZyb20gJy4vY29kaSc7XHJcbmltcG9ydCB7IGNvbWVwYXkgfSBmcm9tICcuL2NvbWVwYXknO1xyXG5pbXBvcnQgeyBjdXAgfSBmcm9tICcuL2N1cCc7XHJcbmltcG9ydCB7IGN1cF9iYW5rIH0gZnJvbSAnLi9jdXBfYmFuayc7XHJcbmltcG9ydCB7IGN1cF9wMnAgfSBmcm9tICcuL2N1cF9wMnAnO1xyXG5pbXBvcnQgeyBkZXBvc2l0X2V4cHJlc3MgfSBmcm9tICcuL2RlcG9zaXRfZXhwcmVzcyc7XHJcbmltcG9ydCB7IGRpcmVjdF9iYW5raW5nX2V1cm9wZSB9IGZyb20gJy4vZGlyZWN0X2JhbmtpbmdfZXVyb3BlJztcclxuaW1wb3J0IHsgZG90cGF5IH0gZnJvbSAnLi9kb3RwYXknO1xyXG5pbXBvcnQgeyBlY29wYXl6IH0gZnJvbSAnLi9lY29wYXl6JztcclxuaW1wb3J0IHsgZXBzIH0gZnJvbSAnLi9lcHMnO1xyXG5pbXBvcnQgeyBnaXJvcGF5IH0gZnJvbSAnLi9naXJvcGF5JztcclxuaW1wb3J0IHsgZ21tb25leSB9IGZyb20gJy4vZ21tb25leSc7XHJcbmltcG9ydCB7IGludGVybmFsX2dhbWVtb25leSB9IGZyb20gJy4vaW50ZXJuYWxfZ2FtZW1vbmV5JztcclxuaW1wb3J0IHsgZ29vZ2xlcGF5IH0gZnJvbSAnLi9nb29nbGVwYXknO1xyXG5pbXBvcnQgeyBpZGVhbCB9IGZyb20gJy4vaWRlYWwnO1xyXG5pbXBvcnQgeyBpbmRvbmVzaWFfYmFuayB9IGZyb20gJy4vaW5kb25lc2lhX2JhbmsnO1xyXG5pbXBvcnQgeyBpbmRvbmVzaWFfYmFua190cmFuc2ZlciB9IGZyb20gJy4vaW5kb25lc2lhX2JhbmtfdHJhbnNmZXInO1xyXG5pbXBvcnQgeyBqZXRvbiB9IGZyb20gJy4vamV0b24nO1xyXG5pbXBvcnQgeyBqZXRvbl92b3VjaGVyIH0gZnJvbSAnLi9qZXRvbl92b3VjaGVyJztcclxuaW1wb3J0IHsga2Fzc2EyNCB9IGZyb20gJy4va2Fzc2EyNCc7XHJcbmltcG9ydCB7IGxpbmsgfSBmcm9tICcuL2xpbmsnO1xyXG5pbXBvcnQgeyBsb2NhbF9jYXJkX2JyYXppbCB9IGZyb20gJy4vbG9jYWxfY2FyZF9icmF6aWwnO1xyXG5pbXBvcnQgeyBsb2NhbF9jYXJkX21leGljbyB9IGZyb20gJy4vbG9jYWxfY2FyZF9tZXhpY28nO1xyXG5pbXBvcnQgeyBsb3RlcmljYSB9IGZyb20gJy4vbG90ZXJpY2EnO1xyXG5pbXBvcnQgeyBtYWxheXNpYV9iYW5rIH0gZnJvbSAnLi9tYWxheXNpYV9iYW5rJztcclxuaW1wb3J0IHsgbWVnYWZvbiB9IGZyb20gJy4vbWVnYWZvbic7XHJcbmltcG9ydCB7IG1leGljb19iYW5rIH0gZnJvbSAnLi9tZXhpY29fYmFuayc7XHJcbmltcG9ydCB7IG1vbW9wYXkgfSBmcm9tICcuL21vbW9wYXknO1xyXG5pbXBvcnQgeyBtb25ldGEgfSBmcm9tICcuL21vbmV0YSc7XHJcbmltcG9ydCB7IG10cyB9IGZyb20gJy4vbXRzJztcclxuaW1wb3J0IHsgbXVsdGliYW5jbyB9IGZyb20gJy4vbXVsdGliYW5jbyc7XHJcbmltcG9ydCB7IG5lb3N1cmYgfSBmcm9tICcuL25lb3N1cmYnO1xyXG5pbXBvcnQgeyBuZXRlbGxlciB9IGZyb20gJy4vbmV0ZWxsZXInO1xyXG5pbXBvcnQgeyBudXBheSB9IGZyb20gJy4vbnVwYXknO1xyXG5pbXBvcnQgeyBvbmVjYXJkIH0gZnJvbSAnLi9vbmVjYXJkJztcclxuaW1wb3J0IHsgb3h4byB9IGZyb20gJy4vb3h4byc7XHJcbmltcG9ydCB7IHBhZ29lZmVjdGl2byB9IGZyb20gJy4vcGFnb2VmZWN0aXZvJztcclxuaW1wb3J0IHsgcGFnb2V4cHJlc3MgfSBmcm9tICcuL3BhZ29leHByZXNzJztcclxuaW1wb3J0IHsgcGFnb2ZhY2lsIH0gZnJvbSAnLi9wYWdvZmFjaWwnO1xyXG5pbXBvcnQgeyBwYXlwYWwgfSBmcm9tICcuL3BheXBhbCc7XHJcbmltcG9ydCB7IHBheXNhZmVjYXJkIH0gZnJvbSAnLi9wYXlzYWZlY2FyZCc7XHJcbmltcG9ydCB7IHBpY3BheSB9IGZyb20gJy4vcGljcGF5JztcclxuaW1wb3J0IHsgcGl4IH0gZnJvbSAnLi9waXgnO1xyXG5pbXBvcnQgeyBwaGlsaXBwaW5lc19iYW5rIH0gZnJvbSAnLi9waGlsaXBwaW5lc19iYW5rJztcclxuaW1wb3J0IHsgcHJvbXB0cGF5IH0gZnJvbSAnLi9wcm9tcHRwYXknO1xyXG5pbXBvcnQgeyBwcm9tc3ZpYXogfSBmcm9tICcuL3Byb21zdmlheic7XHJcbmltcG9ydCB7IHByemVsZXd5MjQgfSBmcm9tICcuL3ByemVsZXd5MjQnO1xyXG5pbXBvcnQgeyBxaXdpIH0gZnJvbSAnLi9xaXdpJztcclxuaW1wb3J0IHsgcmFwaWQgfSBmcm9tICcuL3JhcGlkJztcclxuaW1wb3J0IHsgcmFwaXBhZ28gfSBmcm9tICcuL3JhcGlwYWdvJztcclxuaW1wb3J0IHsgcmVkcGFnb3MgfSBmcm9tICcuL3JlZHBhZ29zJztcclxuaW1wb3J0IHsgc2JlcmJhbmsgfSBmcm9tICcuL3NiZXJiYW5rJztcclxuaW1wb3J0IHsgc2JwIH0gZnJvbSAnLi9zYnAnO1xyXG5pbXBvcnQgeyBzZXBhIH0gZnJvbSAnLi9zZXBhJztcclxuaW1wb3J0IHsgc2VydmlwYWcgfSBmcm9tICcuL3NlcnZpcGFnJztcclxuaW1wb3J0IHsgc2tpbmlmeSB9IGZyb20gJy4vc2tpbmlmeSc7XHJcbmltcG9ydCB7IHNraW5wYXkgfSBmcm9tICcuL3NraW5wYXknO1xyXG5pbXBvcnQgeyBza2luc2JhY2sgfSBmcm9tICcuL3NraW5zYmFjayc7XHJcbmltcG9ydCB7IHNrcmlsbCB9IGZyb20gJy4vc2tyaWxsJztcclxuaW1wb3J0IHsgc29mb3J0IH0gZnJvbSAnLi9zb2ZvcnQnO1xyXG5pbXBvcnQgeyBzcGVpIH0gZnJvbSAnLi9zcGVpJztcclxuaW1wb3J0IHsgc3RvcmVfbWV4aWNvIH0gZnJvbSAnLi9zdG9yZV9tZXhpY28nO1xyXG5pbXBvcnQgeyB0ZWxlMiB9IGZyb20gJy4vdGVsZTInO1xyXG5pbXBvcnQgeyB0aGFpbGFuZF9iYW5rIH0gZnJvbSAnLi90aGFpbGFuZF9iYW5rJztcclxuaW1wb3J0IHsgdGhhaWxhbmRfYmFua190cmFuc2ZlciB9IGZyb20gJy4vdGhhaWxhbmRfYmFua190cmFuc2Zlcic7XHJcbmltcG9ydCB7IHRpbmtvZmYgfSBmcm9tICcuL3RpbmtvZmYnO1xyXG5pbXBvcnQgeyB0cnVzdGx5IH0gZnJvbSAnLi90cnVzdGx5JztcclxuaW1wb3J0IHsgdmlldG5hbV9iYW5rIH0gZnJvbSAnLi92aWV0bmFtX2JhbmsnO1xyXG5pbXBvcnQgeyB2aWV0bmFtX2JhbmtfcXIgfSBmcm9tICcuL3ZpZXRuYW1fYmFua19xcic7XHJcbmltcG9ydCB7IHZpZXRuYW1fYmFua190cmFuc2ZlciB9IGZyb20gJy4vdmlldG5hbV9iYW5rX3RyYW5zZmVyJztcclxuaW1wb3J0IHsgd2VicGF5IH0gZnJvbSAnLi93ZWJwYXknO1xyXG5pbXBvcnQgeyB3ZWNoYXQgfSBmcm9tICcuL3dlY2hhdCc7XHJcbmltcG9ydCB7IHdtZSB9IGZyb20gJy4vd21lJztcclxuaW1wb3J0IHsgd21yIH0gZnJvbSAnLi93bXInO1xyXG5pbXBvcnQgeyB3bXUgfSBmcm9tICcuL3dtdSc7XHJcbmltcG9ydCB7IHdteiB9IGZyb20gJy4vd216JztcclxuaW1wb3J0IHsgemVuX3dhbGxldCB9IGZyb20gJy4vemVuX3dhbGxldCc7XHJcbmltcG9ydCB7IHlhbmRleCB9IGZyb20gJy4veWFuZGV4JztcclxuaW1wb3J0IHsgd2FsbGVzdGVyIH0gZnJvbSAnLi93YWxsZXN0ZXInO1xyXG5pbXBvcnQgeyBiaXRjb2luIH0gZnJvbSAnLi9iaXRjb2luJztcclxuaW1wb3J0IHsgdHJvbiB9IGZyb20gJy4vdHJvbic7XHJcbmltcG9ydCB7IGV0aGVyZXVtIH0gZnJvbSAnLi9ldGhlcmV1bSc7XHJcbmltcG9ydCB7IHRldGhlciB9IGZyb20gJy4vdGV0aGVyJztcclxuaW1wb3J0IHsgdGV0aGVyX3RyYzIwIH0gZnJvbSAnLi90ZXRoZXJfdHJjMjAnO1xyXG5pbXBvcnQgeyBtZXJjYWRvX3BhZ28gfSBmcm9tICcuL21lcmNhZG9fcGFnbyc7XHJcbmltcG9ydCB7IG1pcnBheSB9IGZyb20gJy4vbWlycGF5JztcclxuaW1wb3J0IHsgbWJ3YXkgfSBmcm9tICcuL21id2F5JztcclxuaW1wb3J0IHsgUGF5bWVudEZpZWxkcyB9IGZyb20gJy4uL3BheW1lbnQtZmllbGRzJztcclxuXHJcbmV4cG9ydCBjb25zdCBDT05GSUc6IHtba2V5OiBzdHJpbmddOiBQYXltZW50RmllbGRzfSA9IHtcclxuICAgIGFkdmNhc2gsXHJcbiAgICBhbGZhYmFuayxcclxuICAgIGFsaXBheSxcclxuICAgIGFsaXBheV9wbHVzLFxyXG4gICAgYXBwbGVwYXksXHJcbiAgICBhcmdlbnRpbmFfYmFuayxcclxuICAgIGF0ZjI0LFxyXG4gICAgYmFsb3RvLFxyXG4gICAgYmVlbGluZSxcclxuICAgIGJsaWssXHJcbiAgICBib2xldG8sXHJcbiAgICBicmF6aWxfYmFuayxcclxuICAgIGNhcmQsXHJcbiAgICBjYXJnYV92aXJ0dWFsLFxyXG4gICAgY2FzaCxcclxuICAgIGNhc2h0b2NvZGUsXHJcbiAgICBjb2RpLFxyXG4gICAgY29tZXBheSxcclxuICAgIGN1cCxcclxuICAgIGN1cF9iYW5rLFxyXG4gICAgY3VwX3AycCxcclxuICAgIGRlcG9zaXRfZXhwcmVzcyxcclxuICAgIGRpcmVjdF9iYW5raW5nX2V1cm9wZSxcclxuICAgIGRvdHBheSxcclxuICAgIGVjb3BheXosXHJcbiAgICBlcHMsXHJcbiAgICBnaXJvcGF5LFxyXG4gICAgZ21tb25leSxcclxuICAgIGludGVybmFsX2dhbWVtb25leSxcclxuICAgIGdvb2dsZXBheSxcclxuICAgIGlkZWFsLFxyXG4gICAgaW5kb25lc2lhX2JhbmssXHJcbiAgICBpbmRvbmVzaWFfYmFua190cmFuc2ZlcixcclxuICAgIGpldG9uLFxyXG4gICAgamV0b25fdm91Y2hlcixcclxuICAgIGthc3NhMjQsXHJcbiAgICBsaW5rLFxyXG4gICAgbG9jYWxfY2FyZF9icmF6aWwsXHJcbiAgICBsb2NhbF9jYXJkX21leGljbyxcclxuICAgIGxvdGVyaWNhLFxyXG4gICAgbWFsYXlzaWFfYmFuayxcclxuICAgIG1lZ2Fmb24sXHJcbiAgICBtZXhpY29fYmFuayxcclxuICAgIG1vbW9wYXksXHJcbiAgICBtb25ldGEsXHJcbiAgICBtdHMsXHJcbiAgICBtdWx0aWJhbmNvLFxyXG4gICAgbmVvc3VyZixcclxuICAgIG5ldGVsbGVyLFxyXG4gICAgbnVwYXksXHJcbiAgICBvbmVjYXJkLFxyXG4gICAgb3h4byxcclxuICAgIHBhZ29lZmVjdGl2byxcclxuICAgIHBhZ29leHByZXNzLFxyXG4gICAgcGFnb2ZhY2lsLFxyXG4gICAgcGF5cGFsLFxyXG4gICAgcGF5c2FmZWNhcmQsXHJcbiAgICBwaWNwYXksXHJcbiAgICBwaXgsXHJcbiAgICBwaGlsaXBwaW5lc19iYW5rLFxyXG4gICAgcHJvbXB0cGF5LFxyXG4gICAgcHJvbXN2aWF6LFxyXG4gICAgcHJ6ZWxld3kyNCxcclxuICAgIHFpd2ksXHJcbiAgICByYXBpZCxcclxuICAgIHJhcGlwYWdvLFxyXG4gICAgcmVkcGFnb3MsXHJcbiAgICBzYmVyYmFuayxcclxuICAgIHNicCxcclxuICAgIHNlcGEsXHJcbiAgICBzZXJ2aXBhZyxcclxuICAgIHNraW5pZnksXHJcbiAgICBza2lucGF5LFxyXG4gICAgc2tpbnNiYWNrLFxyXG4gICAgc2tyaWxsLFxyXG4gICAgc29mb3J0LFxyXG4gICAgc3BlaSxcclxuICAgIHN0b3JlX21leGljbyxcclxuICAgIHRlbGUyLFxyXG4gICAgdGhhaWxhbmRfYmFuayxcclxuICAgIHRoYWlsYW5kX2JhbmtfdHJhbnNmZXIsXHJcbiAgICB0aW5rb2ZmLFxyXG4gICAgdHJ1c3RseSxcclxuICAgIHZpZXRuYW1fYmFuayxcclxuICAgIHZpZXRuYW1fYmFua19xcixcclxuICAgIHZpZXRuYW1fYmFua190cmFuc2ZlcixcclxuICAgIHdlYnBheSxcclxuICAgIHdlY2hhdCxcclxuICAgIHdtZSxcclxuICAgIHdtcixcclxuICAgIHdtdSxcclxuICAgIHdteixcclxuICAgIHplbl93YWxsZXQsXHJcbiAgICB5YW5kZXgsXHJcbiAgICB3YWxsZXN0ZXIsXHJcbiAgICBiaXRjb2luLFxyXG4gICAgdHJvbixcclxuICAgIGV0aGVyZXVtLFxyXG4gICAgdGV0aGVyLFxyXG4gICAgdGV0aGVyX3RyYzIwLFxyXG4gICAgbWVyY2Fkb19wYWdvLFxyXG4gICAgbWlycGF5LFxyXG4gICAgbWJ3YXlcclxufTtcclxuIl19
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvcGFnZXMvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1mb3JtL21vZGVscy9jb25maWcvYWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNoQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFR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QjtJQUNyQixNQUFNO0lBQ04sTUFBTTtJQUNOLEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxVQUFVO0lBQ1YsTUFBTTtJQUNOLFNBQVM7SUFDVCxPQUFPO0lBQ1AsSUFBSTtJQUNKLFFBQVE7SUFDUixNQUFNO0lBQ04sWUFBWTtJQUNaLFlBQVk7SUFDWixNQUFNO0lBQ04sS0FBSztDQUNSLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZHZjYXNoIH0gZnJvbSAnLi9hZHZjYXNoJztcbmltcG9ydCB7IGFsZmFiYW5rIH0gZnJvbSAnLi9hbGZhYmFuayc7XG5pbXBvcnQgeyBhbGlwYXkgfSBmcm9tICcuL2FsaXBheSc7XG5pbXBvcnQgeyBhbGlwYXlfcGx1cyB9IGZyb20gJy4vYWxpcGF5X3BsdXMnO1xuaW1wb3J0IHsgYXBwbGVwYXkgfSBmcm9tICcuL2FwcGxlcGF5JztcbmltcG9ydCB7IGFyZ2VudGluYV9iYW5rIH0gZnJvbSAnLi9hcmdlbnRpbmFfYmFuayc7XG5pbXBvcnQgeyBhdGYyNCB9IGZyb20gJy4vYXRmMjQnO1xuaW1wb3J0IHsgYmFsb3RvIH0gZnJvbSAnLi9iYWxvdG8nO1xuaW1wb3J0IHsgYmVlbGluZSB9IGZyb20gJy4vYmVlbGluZSc7XG5pbXBvcnQgeyBibGlrIH0gZnJvbSAnLi9ibGlrJztcbmltcG9ydCB7IGJvbGV0byB9IGZyb20gJy4vYm9sZXRvJztcbmltcG9ydCB7IGJyYXppbF9iYW5rIH0gZnJvbSAnLi9icmF6aWxfYmFuayc7XG5pbXBvcnQgeyBjYXJkIH0gZnJvbSAnLi9jYXJkJztcbmltcG9ydCB7IGNhcmdhX3ZpcnR1YWwgfSBmcm9tICcuL2NhcmdhX3ZpcnR1YWwnO1xuaW1wb3J0IHsgY2FzaCB9IGZyb20gJy4vY2FzaCc7XG5pbXBvcnQgeyBjYXNodG9jb2RlIH0gZnJvbSAnLi9jYXNodG9jb2RlJztcbmltcG9ydCB7IGNvZGkgfSBmcm9tICcuL2NvZGknO1xuaW1wb3J0IHsgY29tZXBheSB9IGZyb20gJy4vY29tZXBheSc7XG5pbXBvcnQgeyBjdXAgfSBmcm9tICcuL2N1cCc7XG5pbXBvcnQgeyBjdXBfYmFuayB9IGZyb20gJy4vY3VwX2JhbmsnO1xuaW1wb3J0IHsgY3VwX3AycCB9IGZyb20gJy4vY3VwX3AycCc7XG5pbXBvcnQgeyBkZXBvc2l0X2V4cHJlc3MgfSBmcm9tICcuL2RlcG9zaXRfZXhwcmVzcyc7XG5pbXBvcnQgeyBkaXJlY3RfYmFua2luZ19ldXJvcGUgfSBmcm9tICcuL2RpcmVjdF9iYW5raW5nX2V1cm9wZSc7XG5pbXBvcnQgeyBkb3RwYXkgfSBmcm9tICcuL2RvdHBheSc7XG5pbXBvcnQgeyBlY29wYXl6IH0gZnJvbSAnLi9lY29wYXl6JztcbmltcG9ydCB7IGVwcyB9IGZyb20gJy4vZXBzJztcbmltcG9ydCB7IGdpcm9wYXkgfSBmcm9tICcuL2dpcm9wYXknO1xuaW1wb3J0IHsgZ21tb25leSB9IGZyb20gJy4vZ21tb25leSc7XG5pbXBvcnQgeyBpbnRlcm5hbF9nYW1lbW9uZXkgfSBmcm9tICcuL2ludGVybmFsX2dhbWVtb25leSc7XG5pbXBvcnQgeyBnb29nbGVwYXkgfSBmcm9tICcuL2dvb2dsZXBheSc7XG5pbXBvcnQgeyBpZGVhbCB9IGZyb20gJy4vaWRlYWwnO1xuaW1wb3J0IHsgaW5kb25lc2lhX2JhbmsgfSBmcm9tICcuL2luZG9uZXNpYV9iYW5rJztcbmltcG9ydCB7IGluZG9uZXNpYV9iYW5rX3RyYW5zZmVyIH0gZnJvbSAnLi9pbmRvbmVzaWFfYmFua190cmFuc2Zlcic7XG5pbXBvcnQgeyBqZXRvbiB9IGZyb20gJy4vamV0b24nO1xuaW1wb3J0IHsgamV0b25fdm91Y2hlciB9IGZyb20gJy4vamV0b25fdm91Y2hlcic7XG5pbXBvcnQgeyBrYXNzYTI0IH0gZnJvbSAnLi9rYXNzYTI0JztcbmltcG9ydCB7IGxpbmsgfSBmcm9tICcuL2xpbmsnO1xuaW1wb3J0IHsgbG9jYWxfY2FyZF9icmF6aWwgfSBmcm9tICcuL2xvY2FsX2NhcmRfYnJhemlsJztcbmltcG9ydCB7IGxvY2FsX2NhcmRfbWV4aWNvIH0gZnJvbSAnLi9sb2NhbF9jYXJkX21leGljbyc7XG5pbXBvcnQgeyBsb3RlcmljYSB9IGZyb20gJy4vbG90ZXJpY2EnO1xuaW1wb3J0IHsgbWFsYXlzaWFfYmFuayB9IGZyb20gJy4vbWFsYXlzaWFfYmFuayc7XG5pbXBvcnQgeyBtZWdhZm9uIH0gZnJvbSAnLi9tZWdhZm9uJztcbmltcG9ydCB7IG1leGljb19iYW5rIH0gZnJvbSAnLi9tZXhpY29fYmFuayc7XG5pbXBvcnQgeyBtb21vcGF5IH0gZnJvbSAnLi9tb21vcGF5JztcbmltcG9ydCB7IG1vbmV0YSB9IGZyb20gJy4vbW9uZXRhJztcbmltcG9ydCB7IG10cyB9IGZyb20gJy4vbXRzJztcbmltcG9ydCB7IG11bHRpYmFuY28gfSBmcm9tICcuL211bHRpYmFuY28nO1xuaW1wb3J0IHsgbmVvc3VyZiB9IGZyb20gJy4vbmVvc3VyZic7XG5pbXBvcnQgeyBuZXRlbGxlciB9IGZyb20gJy4vbmV0ZWxsZXInO1xuaW1wb3J0IHsgbnVwYXkgfSBmcm9tICcuL251cGF5JztcbmltcG9ydCB7IG9uZWNhcmQgfSBmcm9tICcuL29uZWNhcmQnO1xuaW1wb3J0IHsgb3h4byB9IGZyb20gJy4vb3h4byc7XG5pbXBvcnQgeyBwYWdvZWZlY3Rpdm8gfSBmcm9tICcuL3BhZ29lZmVjdGl2byc7XG5pbXBvcnQgeyBwYWdvZXhwcmVzcyB9IGZyb20gJy4vcGFnb2V4cHJlc3MnO1xuaW1wb3J0IHsgcGFnb2ZhY2lsIH0gZnJvbSAnLi9wYWdvZmFjaWwnO1xuaW1wb3J0IHsgcGF5cGFsIH0gZnJvbSAnLi9wYXlwYWwnO1xuaW1wb3J0IHsgcGF5c2FmZWNhcmQgfSBmcm9tICcuL3BheXNhZmVjYXJkJztcbmltcG9ydCB7IHBpY3BheSB9IGZyb20gJy4vcGljcGF5JztcbmltcG9ydCB7IHBpeCB9IGZyb20gJy4vcGl4JztcbmltcG9ydCB7IHBoaWxpcHBpbmVzX2JhbmsgfSBmcm9tICcuL3BoaWxpcHBpbmVzX2JhbmsnO1xuaW1wb3J0IHsgcHJvbXB0cGF5IH0gZnJvbSAnLi9wcm9tcHRwYXknO1xuaW1wb3J0IHsgcHJvbXN2aWF6IH0gZnJvbSAnLi9wcm9tc3ZpYXonO1xuaW1wb3J0IHsgcHJ6ZWxld3kyNCB9IGZyb20gJy4vcHJ6ZWxld3kyNCc7XG5pbXBvcnQgeyBxaXdpIH0gZnJvbSAnLi9xaXdpJztcbmltcG9ydCB7IHJhcGlkIH0gZnJvbSAnLi9yYXBpZCc7XG5pbXBvcnQgeyByYXBpcGFnbyB9IGZyb20gJy4vcmFwaXBhZ28nO1xuaW1wb3J0IHsgcmVkcGFnb3MgfSBmcm9tICcuL3JlZHBhZ29zJztcbmltcG9ydCB7IHNiZXJiYW5rIH0gZnJvbSAnLi9zYmVyYmFuayc7XG5pbXBvcnQgeyBzYnAgfSBmcm9tICcuL3NicCc7XG5pbXBvcnQgeyBzZXBhIH0gZnJvbSAnLi9zZXBhJztcbmltcG9ydCB7IHNlcnZpcGFnIH0gZnJvbSAnLi9zZXJ2aXBhZyc7XG5pbXBvcnQgeyBza2luaWZ5IH0gZnJvbSAnLi9za2luaWZ5JztcbmltcG9ydCB7IHNraW5wYXkgfSBmcm9tICcuL3NraW5wYXknO1xuaW1wb3J0IHsgc2tpbnNiYWNrIH0gZnJvbSAnLi9za2luc2JhY2snO1xuaW1wb3J0IHsgc2tyaWxsIH0gZnJvbSAnLi9za3JpbGwnO1xuaW1wb3J0IHsgc29mb3J0IH0gZnJvbSAnLi9zb2ZvcnQnO1xuaW1wb3J0IHsgc3BlaSB9IGZyb20gJy4vc3BlaSc7XG5pbXBvcnQgeyBzdG9yZV9tZXhpY28gfSBmcm9tICcuL3N0b3JlX21leGljbyc7XG5pbXBvcnQgeyB0ZWxlMiB9IGZyb20gJy4vdGVsZTInO1xuaW1wb3J0IHsgdGhhaWxhbmRfYmFuayB9IGZyb20gJy4vdGhhaWxhbmRfYmFuayc7XG5pbXBvcnQgeyB0aGFpbGFuZF9iYW5rX3RyYW5zZmVyIH0gZnJvbSAnLi90aGFpbGFuZF9iYW5rX3RyYW5zZmVyJztcbmltcG9ydCB7IHRpbmtvZmYgfSBmcm9tICcuL3RpbmtvZmYnO1xuaW1wb3J0IHsgdHJ1c3RseSB9IGZyb20gJy4vdHJ1c3RseSc7XG5pbXBvcnQgeyB2aWV0bmFtX2JhbmsgfSBmcm9tICcuL3ZpZXRuYW1fYmFuayc7XG5pbXBvcnQgeyB2aWV0bmFtX2JhbmtfcXIgfSBmcm9tICcuL3ZpZXRuYW1fYmFua19xcic7XG5pbXBvcnQgeyB2aWV0bmFtX2JhbmtfdHJhbnNmZXIgfSBmcm9tICcuL3ZpZXRuYW1fYmFua190cmFuc2Zlcic7XG5pbXBvcnQgeyB3ZWJwYXkgfSBmcm9tICcuL3dlYnBheSc7XG5pbXBvcnQgeyB3ZWNoYXQgfSBmcm9tICcuL3dlY2hhdCc7XG5pbXBvcnQgeyB3bWUgfSBmcm9tICcuL3dtZSc7XG5pbXBvcnQgeyB3bXIgfSBmcm9tICcuL3dtcic7XG5pbXBvcnQgeyB3bXUgfSBmcm9tICcuL3dtdSc7XG5pbXBvcnQgeyB3bXogfSBmcm9tICcuL3dteic7XG5pbXBvcnQgeyB6ZW5fd2FsbGV0IH0gZnJvbSAnLi96ZW5fd2FsbGV0JztcbmltcG9ydCB7IHlhbmRleCB9IGZyb20gJy4veWFuZGV4JztcbmltcG9ydCB7IHdhbGxlc3RlciB9IGZyb20gJy4vd2FsbGVzdGVyJztcbmltcG9ydCB7IGJpdGNvaW4gfSBmcm9tICcuL2JpdGNvaW4nO1xuaW1wb3J0IHsgdHJvbiB9IGZyb20gJy4vdHJvbic7XG5pbXBvcnQgeyBldGhlcmV1bSB9IGZyb20gJy4vZXRoZXJldW0nO1xuaW1wb3J0IHsgdGV0aGVyIH0gZnJvbSAnLi90ZXRoZXInO1xuaW1wb3J0IHsgdGV0aGVyX3RyYzIwIH0gZnJvbSAnLi90ZXRoZXJfdHJjMjAnO1xuaW1wb3J0IHsgbWVyY2Fkb19wYWdvIH0gZnJvbSAnLi9tZXJjYWRvX3BhZ28nO1xuaW1wb3J0IHsgbWlycGF5IH0gZnJvbSAnLi9taXJwYXknO1xuaW1wb3J0IHsgbWJ3YXkgfSBmcm9tICcuL21id2F5JztcbmltcG9ydCB7IFBheW1lbnRGaWVsZHMgfSBmcm9tICcuLi9wYXltZW50LWZpZWxkcyc7XG5cbmV4cG9ydCBjb25zdCBDT05GSUc6IHtba2V5OiBzdHJpbmddOiBQYXltZW50RmllbGRzfSA9IHtcbiAgICBhZHZjYXNoLFxuICAgIGFsZmFiYW5rLFxuICAgIGFsaXBheSxcbiAgICBhbGlwYXlfcGx1cyxcbiAgICBhcHBsZXBheSxcbiAgICBhcmdlbnRpbmFfYmFuayxcbiAgICBhdGYyNCxcbiAgICBiYWxvdG8sXG4gICAgYmVlbGluZSxcbiAgICBibGlrLFxuICAgIGJvbGV0byxcbiAgICBicmF6aWxfYmFuayxcbiAgICBjYXJkLFxuICAgIGNhcmdhX3ZpcnR1YWwsXG4gICAgY2FzaCxcbiAgICBjYXNodG9jb2RlLFxuICAgIGNvZGksXG4gICAgY29tZXBheSxcbiAgICBjdXAsXG4gICAgY3VwX2JhbmssXG4gICAgY3VwX3AycCxcbiAgICBkZXBvc2l0X2V4cHJlc3MsXG4gICAgZGlyZWN0X2JhbmtpbmdfZXVyb3BlLFxuICAgIGRvdHBheSxcbiAgICBlY29wYXl6LFxuICAgIGVwcyxcbiAgICBnaXJvcGF5LFxuICAgIGdtbW9uZXksXG4gICAgaW50ZXJuYWxfZ2FtZW1vbmV5LFxuICAgIGdvb2dsZXBheSxcbiAgICBpZGVhbCxcbiAgICBpbmRvbmVzaWFfYmFuayxcbiAgICBpbmRvbmVzaWFfYmFua190cmFuc2ZlcixcbiAgICBqZXRvbixcbiAgICBqZXRvbl92b3VjaGVyLFxuICAgIGthc3NhMjQsXG4gICAgbGluayxcbiAgICBsb2NhbF9jYXJkX2JyYXppbCxcbiAgICBsb2NhbF9jYXJkX21leGljbyxcbiAgICBsb3RlcmljYSxcbiAgICBtYWxheXNpYV9iYW5rLFxuICAgIG1lZ2Fmb24sXG4gICAgbWV4aWNvX2JhbmssXG4gICAgbW9tb3BheSxcbiAgICBtb25ldGEsXG4gICAgbXRzLFxuICAgIG11bHRpYmFuY28sXG4gICAgbmVvc3VyZixcbiAgICBuZXRlbGxlcixcbiAgICBudXBheSxcbiAgICBvbmVjYXJkLFxuICAgIG94eG8sXG4gICAgcGFnb2VmZWN0aXZvLFxuICAgIHBhZ29leHByZXNzLFxuICAgIHBhZ29mYWNpbCxcbiAgICBwYXlwYWwsXG4gICAgcGF5c2FmZWNhcmQsXG4gICAgcGljcGF5LFxuICAgIHBpeCxcbiAgICBwaGlsaXBwaW5lc19iYW5rLFxuICAgIHByb21wdHBheSxcbiAgICBwcm9tc3ZpYXosXG4gICAgcHJ6ZWxld3kyNCxcbiAgICBxaXdpLFxuICAgIHJhcGlkLFxuICAgIHJhcGlwYWdvLFxuICAgIHJlZHBhZ29zLFxuICAgIHNiZXJiYW5rLFxuICAgIHNicCxcbiAgICBzZXBhLFxuICAgIHNlcnZpcGFnLFxuICAgIHNraW5pZnksXG4gICAgc2tpbnBheSxcbiAgICBza2luc2JhY2ssXG4gICAgc2tyaWxsLFxuICAgIHNvZm9ydCxcbiAgICBzcGVpLFxuICAgIHN0b3JlX21leGljbyxcbiAgICB0ZWxlMixcbiAgICB0aGFpbGFuZF9iYW5rLFxuICAgIHRoYWlsYW5kX2JhbmtfdHJhbnNmZXIsXG4gICAgdGlua29mZixcbiAgICB0cnVzdGx5LFxuICAgIHZpZXRuYW1fYmFuayxcbiAgICB2aWV0bmFtX2JhbmtfcXIsXG4gICAgdmlldG5hbV9iYW5rX3RyYW5zZmVyLFxuICAgIHdlYnBheSxcbiAgICB3ZWNoYXQsXG4gICAgd21lLFxuICAgIHdtcixcbiAgICB3bXUsXG4gICAgd216LFxuICAgIHplbl93YWxsZXQsXG4gICAgeWFuZGV4LFxuICAgIHdhbGxlc3RlcixcbiAgICBiaXRjb2luLFxuICAgIHRyb24sXG4gICAgZXRoZXJldW0sXG4gICAgdGV0aGVyLFxuICAgIHRldGhlcl90cmMyMCxcbiAgICBtZXJjYWRvX3BhZ28sXG4gICAgbWlycGF5LFxuICAgIG1id2F5XG59O1xuIl19
@@ -7,4 +7,4 @@ export const applepay = {
7
7
  FIELD_TEMPLATE.AMOUNT
8
8
  ]
9
9
  };
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGVwYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vbW9kZWxzL2NvbmZpZy9hcHBsZXBheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWpELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBa0I7SUFDbkMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxnQ0FBZ0M7SUFDdEQsS0FBSyxFQUFFLFVBQVU7SUFDakIsTUFBTSxFQUFFO1FBQ0osY0FBYyxDQUFDLE1BQU07S0FDeEI7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGF5bWVudEZpZWxkcyB9IGZyb20gJy4uL3BheW1lbnQtZmllbGRzJztcclxuaW1wb3J0IHsgRklFTERfVEVNUExBVEUgfSBmcm9tICcuLi9maWVsZC10ZW1wbGF0ZSc7XHJcbmltcG9ydCB7IEkxOE5fS0VZIH0gZnJvbSAnLi8uLi8uLi8uLi8uLi8uLi9pMThuJztcclxuXHJcbmV4cG9ydCBjb25zdCBhcHBsZXBheTogUGF5bWVudEZpZWxkcyA9IHtcclxuICAgIGRlc2NyaXB0aW9uOiBJMThOX0tFWS5DT05TVFJVQ1RPUl9ERVNDUklQVElPTl9BUFBMRVBBWSxcclxuICAgIHRpdGxlOiAnQXBwbGVQYXknLFxyXG4gICAgZmllbGRzOiBbXHJcbiAgICAgICAgRklFTERfVEVNUExBVEUuQU1PVU5UXHJcbiAgICBdXHJcbn07XHJcbiJdfQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGVwYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vbW9kZWxzL2NvbmZpZy9hcHBsZXBheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWpELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBa0I7SUFDbkMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxnQ0FBZ0M7SUFDdEQsS0FBSyxFQUFFLFVBQVU7SUFDakIsTUFBTSxFQUFFO1FBQ0osY0FBYyxDQUFDLE1BQU07S0FDeEI7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGF5bWVudEZpZWxkcyB9IGZyb20gJy4uL3BheW1lbnQtZmllbGRzJztcbmltcG9ydCB7IEZJRUxEX1RFTVBMQVRFIH0gZnJvbSAnLi4vZmllbGQtdGVtcGxhdGUnO1xuaW1wb3J0IHsgSTE4Tl9LRVkgfSBmcm9tICcuLy4uLy4uLy4uLy4uLy4uL2kxOG4nO1xuXG5leHBvcnQgY29uc3QgYXBwbGVwYXk6IFBheW1lbnRGaWVsZHMgPSB7XG4gICAgZGVzY3JpcHRpb246IEkxOE5fS0VZLkNPTlNUUlVDVE9SX0RFU0NSSVBUSU9OX0FQUExFUEFZLFxuICAgIHRpdGxlOiAnQXBwbGVQYXknLFxuICAgIGZpZWxkczogW1xuICAgICAgICBGSUVMRF9URU1QTEFURS5BTU9VTlRcbiAgICBdXG59O1xuIl19
@@ -6,4 +6,4 @@ export const argentina_bank = {
6
6
  FIELD_TEMPLATE.AMOUNT
7
7
  ]
8
8
  };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJnZW50aW5hX2JhbmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vbW9kZWxzL2NvbmZpZy9hcmdlbnRpbmFfYmFuay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFrQjtJQUN6QyxZQUFZLEVBQUUsRUFBRTtJQUNoQixLQUFLLEVBQUUsb0JBQW9CO0lBQzNCLE1BQU0sRUFBRTtRQUNKLGNBQWMsQ0FBQyxNQUFNO0tBQ3hCO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBheW1lbnRGaWVsZHMgfSBmcm9tICcuLi9wYXltZW50LWZpZWxkcyc7XHJcbmltcG9ydCB7IEZJRUxEX1RFTVBMQVRFIH0gZnJvbSAnLi4vZmllbGQtdGVtcGxhdGUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGFyZ2VudGluYV9iYW5rOiBQYXltZW50RmllbGRzID0ge1xyXG4gICAgY29uZmlybWF0aW9uOiAnJyxcclxuICAgIHRpdGxlOiAnQmFua3Mgb2YgQXJnZW50aW5hJyxcclxuICAgIGZpZWxkczogW1xyXG4gICAgICAgIEZJRUxEX1RFTVBMQVRFLkFNT1VOVFxyXG4gICAgXVxyXG59O1xyXG4iXX0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJnZW50aW5hX2JhbmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vbW9kZWxzL2NvbmZpZy9hcmdlbnRpbmFfYmFuay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFrQjtJQUN6QyxZQUFZLEVBQUUsRUFBRTtJQUNoQixLQUFLLEVBQUUsb0JBQW9CO0lBQzNCLE1BQU0sRUFBRTtRQUNKLGNBQWMsQ0FBQyxNQUFNO0tBQ3hCO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBheW1lbnRGaWVsZHMgfSBmcm9tICcuLi9wYXltZW50LWZpZWxkcyc7XG5pbXBvcnQgeyBGSUVMRF9URU1QTEFURSB9IGZyb20gJy4uL2ZpZWxkLXRlbXBsYXRlJztcblxuZXhwb3J0IGNvbnN0IGFyZ2VudGluYV9iYW5rOiBQYXltZW50RmllbGRzID0ge1xuICAgIGNvbmZpcm1hdGlvbjogJycsXG4gICAgdGl0bGU6ICdCYW5rcyBvZiBBcmdlbnRpbmEnLFxuICAgIGZpZWxkczogW1xuICAgICAgICBGSUVMRF9URU1QTEFURS5BTU9VTlRcbiAgICBdXG59O1xuIl19