@reusa/ngx-reusa-app-lib 0.0.1374 → 0.0.1375

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 (545) hide show
  1. package/esm2022/lib/components/add-employer/add-employer.component.mjs +2392 -1322
  2. package/esm2022/lib/components/add-participant/add-participant.component.mjs +159 -105
  3. package/esm2022/lib/components/add-payment/add-payment.component.mjs +59 -53
  4. package/esm2022/lib/components/add-wage/add-wage.component.mjs +161 -0
  5. package/esm2022/lib/components/address/address.component.mjs +287 -152
  6. package/esm2022/lib/components/address-popup/address-popup.component.mjs +97 -0
  7. package/esm2022/lib/components/address-suggestion/address-suggestion.component.mjs +289 -0
  8. package/esm2022/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.mjs +245 -0
  9. package/esm2022/lib/components/associate-ssn/associate-ssn.component.mjs +203 -0
  10. package/esm2022/lib/components/bank-details/bank-details.component.mjs +79 -219
  11. package/esm2022/lib/components/claim-info/claim-info.component.mjs +408 -0
  12. package/esm2022/lib/components/contact-us/contact-us.component.mjs +17 -43
  13. package/esm2022/lib/components/correspondence-download/correspondence-download.component.mjs +3 -9
  14. package/esm2022/lib/components/dashboard-card/dashboard-card.component.mjs +32 -4
  15. package/esm2022/lib/components/dependent-grid/dependent-grid.component.mjs +30 -15
  16. package/esm2022/lib/components/disclosure/disclosure.component.mjs +1 -1
  17. package/esm2022/lib/components/dropdown/dropdown.component.mjs +4 -4
  18. package/esm2022/lib/components/dropdown/dropdown.interface.mjs +1 -1
  19. package/esm2022/lib/components/dua-request-page/dua-request-page.component.mjs +596 -0
  20. package/esm2022/lib/components/dua-request-popup/dua-request-popup.component.mjs +356 -0
  21. package/esm2022/lib/components/email-update/email-update.component.mjs +63 -140
  22. package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +422 -574
  23. package/esm2022/lib/components/employer-info/employer-info.component.mjs +319 -0
  24. package/esm2022/lib/components/employer-pay/employer-pay.component.mjs +238 -0
  25. package/esm2022/lib/components/employer-pay-grid/employer-pay-grid.component.mjs +302 -0
  26. package/esm2022/lib/components/error/error.component.mjs +22 -5
  27. package/esm2022/lib/components/farm-usage/farm-usage.component.mjs +172 -0
  28. package/esm2022/lib/components/fav-menu/fav-menu.component.mjs +1 -1
  29. package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +178 -49
  30. package/esm2022/lib/components/footer/footer.component.mjs +112 -101
  31. package/esm2022/lib/components/gross-earnings/gross-earnings.component.mjs +201 -0
  32. package/esm2022/lib/components/header/header.component.mjs +440 -174
  33. package/esm2022/lib/components/history-page/history-page.component.mjs +571 -0
  34. package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +25 -36
  35. package/esm2022/lib/components/idme/idme.component.mjs +84 -0
  36. package/esm2022/lib/components/info/info.component.mjs +4 -12
  37. package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +16 -22
  38. package/esm2022/lib/components/job-title/job-title.component.mjs +92 -97
  39. package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +143 -513
  40. package/esm2022/lib/components/link/link.component.mjs +1 -1
  41. package/esm2022/lib/components/menu/menu.component.mjs +68 -100
  42. package/esm2022/lib/components/mfa/mfa.component.mjs +158 -288
  43. package/esm2022/lib/components/mfa-popup/mfa-popup.component.mjs +11 -18
  44. package/esm2022/lib/components/money-expect/money-expect.component.mjs +158 -54
  45. package/esm2022/lib/components/offline-add-employer/offline-add-employer.component.mjs +3661 -0
  46. package/esm2022/lib/components/offline-bank-details/offline-bank-details.component.mjs +258 -0
  47. package/esm2022/lib/components/offline-employer-grid/offline-employer-grid.component.mjs +853 -0
  48. package/esm2022/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.mjs +251 -0
  49. package/esm2022/lib/components/profile/profile.component.mjs +749 -353
  50. package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +108 -38
  51. package/esm2022/lib/components/proof-of-anything/proof-of-anything.component.mjs +261 -0
  52. package/esm2022/lib/components/proof-of-document-upload/proof-of-document-upload.component.mjs +560 -0
  53. package/esm2022/lib/components/questionnaire/AppValidators.mjs +296 -47
  54. package/esm2022/lib/components/questionnaire/account-success/account-success.page.mjs +110 -65
  55. package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +377 -173
  56. package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +76 -95
  57. package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +877 -1153
  58. package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +208 -699
  59. package/esm2022/lib/components/questionnaire/form-builder/form-builder.page.mjs +28 -22
  60. package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +128 -41
  61. package/esm2022/lib/components/questionnaire/question-control.service.mjs +2 -1
  62. package/esm2022/lib/components/questionnaire/question.service.mjs +5 -7
  63. package/esm2022/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +15 -29
  64. package/esm2022/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +497 -237
  65. package/esm2022/lib/components/scrollable-text/scrollable-text.component.mjs +25 -0
  66. package/esm2022/lib/components/search-employer/search-employer.component.mjs +155 -30
  67. package/esm2022/lib/components/select/select.component.mjs +5 -10
  68. package/esm2022/lib/components/sign-ssn/sign-ssn.component.mjs +3 -3
  69. package/esm2022/lib/components/sms/sms.component.mjs +336 -0
  70. package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +52 -72
  71. package/esm2022/lib/components/user-login/user-login.component.mjs +139 -360
  72. package/esm2022/lib/components/wage-calculator/wage-calculator.component.mjs +527 -0
  73. package/esm2022/lib/components/wage-grid/wage-grid.component.mjs +274 -0
  74. package/esm2022/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.mjs +147 -0
  75. package/esm2022/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.mjs +167 -0
  76. package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +655 -387
  77. package/esm2022/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +125 -61
  78. package/esm2022/lib/components/weekly-certification/weekly-certification.component.mjs +828 -0
  79. package/esm2022/lib/components/weekly-confirmation/confirmation.component.mjs +129 -0
  80. package/esm2022/lib/components/weekly-interim-confirmation/interim-confirmation.component.mjs +136 -0
  81. package/esm2022/lib/components/weekly-summary-v2/summary.component-v2.mjs +72 -0
  82. package/esm2022/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.mjs +50 -0
  83. package/esm2022/lib/components/weekly-work-search-counter/work-search-counter.component.mjs +92 -0
  84. package/esm2022/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.mjs +1190 -0
  85. package/esm2022/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.mjs +690 -0
  86. package/esm2022/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.mjs +524 -0
  87. package/esm2022/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.mjs +394 -0
  88. package/esm2022/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.mjs +640 -0
  89. package/esm2022/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.mjs +33 -0
  90. package/esm2022/lib/enums/AddressValidationResponseEnum.mjs +9 -0
  91. package/esm2022/lib/enums/AddressValidationSourceFunctionEnum.mjs +5 -0
  92. package/esm2022/lib/guards/auth.guard.mjs +50 -2
  93. package/esm2022/lib/guards/no-login/no-login.guard.mjs +1 -1
  94. package/esm2022/lib/interceptors/error-interceptor/http-error-interceptor.mjs +51 -3
  95. package/esm2022/lib/interceptors/header-interceptor/http-header.interceptor.mjs +1 -1
  96. package/esm2022/lib/models/ActiveClaimModel.mjs +3 -0
  97. package/esm2022/lib/models/CountyModel.mjs +3 -0
  98. package/esm2022/lib/models/DuaAppDataModel.mjs +3 -0
  99. package/esm2022/lib/models/DuaRequestModel.mjs +3 -0
  100. package/esm2022/lib/models/DuaRetroWeeksComponentModel.mjs +6 -0
  101. package/esm2022/lib/models/EmployerDetailSearchResult.mjs +1 -1
  102. package/esm2022/lib/models/EmployerInfoComponentModel.mjs +4 -0
  103. package/esm2022/lib/models/EmployerPayInfoModel.mjs +6 -0
  104. package/esm2022/lib/models/FarmUsageComponentModel.mjs +2 -0
  105. package/esm2022/lib/models/GrossEarningsModel.mjs +3 -0
  106. package/esm2022/lib/models/HelpConstants.mjs +5 -0
  107. package/esm2022/lib/models/LexisNexisOtpDetailsResponseModel.mjs +3 -0
  108. package/esm2022/lib/models/LibConstants.mjs +45 -6
  109. package/esm2022/lib/models/OtpAuthModel.mjs +1 -1
  110. package/esm2022/lib/models/PaymentComponentModel.mjs +1 -1
  111. package/esm2022/lib/models/ReasonSeparationRequestModel.mjs +3 -0
  112. package/esm2022/lib/models/RetroWeeksModel.mjs +3 -0
  113. package/esm2022/lib/models/SecurityQuestionAnswerModel.mjs +3 -0
  114. package/esm2022/lib/models/SendOtpRequestModel.mjs +3 -0
  115. package/esm2022/lib/models/UserModel.mjs +1 -1
  116. package/esm2022/lib/models/VerifyOtpRequestModel.mjs +3 -0
  117. package/esm2022/lib/models/WageCalculatorModel.mjs +3 -0
  118. package/esm2022/lib/models/WageInfoModel.mjs +4 -0
  119. package/esm2022/lib/models/addressValidation/AddressRecommendationModel.mjs +3 -0
  120. package/esm2022/lib/models/addressValidation/AddressValidationRequestComponentModel.mjs +3 -0
  121. package/esm2022/lib/models/addressValidation/AddressValidationResponseComponentModel.mjs +3 -0
  122. package/esm2022/lib/models/addressValidation/AddressValidationReturnComponentModel.mjs +3 -0
  123. package/esm2022/lib/models/combo-model.mjs +343 -0
  124. package/esm2022/lib/models/dashboard-model.mjs +1 -1
  125. package/esm2022/lib/models/dependent.model.mjs +1 -1
  126. package/esm2022/lib/models/fileupload/DocUploadModel.mjs +7 -0
  127. package/esm2022/lib/models/fileupload/EmployerDataModel.mjs +3 -0
  128. package/esm2022/lib/models/fileupload/FileObject.mjs +3 -0
  129. package/esm2022/lib/models/fileupload/FileObjectArray.mjs +7 -0
  130. package/esm2022/lib/models/questionnaire/AppealParticipantModel.mjs +8 -0
  131. package/esm2022/lib/models/questionnaire/ClaimAppEmpResponseModel.mjs +1 -1
  132. package/esm2022/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +2 -1
  133. package/esm2022/lib/models/questionnaire/ClaimOnlyEmployerDataModel.mjs +1 -1
  134. package/esm2022/lib/models/questionnaire/ComboModel.mjs +96 -653
  135. package/esm2022/lib/models/questionnaire/ElementsModel.mjs +1 -1
  136. package/esm2022/lib/models/questionnaire/LegalDiscaimarModel.mjs +1 -1
  137. package/esm2022/lib/models/questionnaire/QuestionnaireSaveModel.mjs +1 -1
  138. package/esm2022/lib/models/questionnaire/ScrollableTextModel.mjs +3 -0
  139. package/esm2022/lib/models/questionnaire/StatusModel.mjs +1 -1
  140. package/esm2022/lib/models/questionnaire/WbaHelperTextModel.mjs +3 -0
  141. package/esm2022/lib/models/weekly-cert/WorkSearchWaiverModel.mjs +3 -0
  142. package/esm2022/lib/models/weekly-cert/address-detail-model.mjs +2 -0
  143. package/esm2022/lib/models/weekly-cert/admin-leave-details-model.mjs +7 -0
  144. package/esm2022/lib/models/weekly-cert/employer-info-v2-model.mjs +7 -0
  145. package/esm2022/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.mjs +6 -0
  146. package/esm2022/lib/models/weekly-cert/weekly-certification-v2-model.mjs +34 -0
  147. package/esm2022/lib/models/weekly-cert/work-search-record-v2-model.mjs +15 -0
  148. package/esm2022/lib/models/weekly-cert/work-search-v2-model.mjs +11 -0
  149. package/esm2022/lib/ngx-reusa-app-lib.module.mjs +135 -23
  150. package/esm2022/lib/pages/BasePage.mjs +4 -23
  151. package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +22 -18
  152. package/esm2022/lib/pages/common/change-password/change-password.page.mjs +142 -124
  153. package/esm2022/lib/pages/common/landing/landing.component.mjs +7 -8
  154. package/esm2022/lib/pages/common/landing2/landing2.component.mjs +4 -4
  155. package/esm2022/lib/pages/common/login/login.component.mjs +7 -13
  156. package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +14 -14
  157. package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +5 -5
  158. package/esm2022/lib/pages/popovers/language/language.page.mjs +1 -2
  159. package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +4 -4
  160. package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +7 -2
  161. package/esm2022/lib/pipes/format-worksearch/format-worksearch.pipe.mjs +101 -0
  162. package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +2 -2
  163. package/esm2022/lib/services/address-validation-service/address-validation.service.mjs +151 -0
  164. package/esm2022/lib/services/appeal/appeal.service.mjs +37 -0
  165. package/esm2022/lib/services/base-service.mjs +4 -1
  166. package/esm2022/lib/services/birt-service/birt.service.mjs +57 -0
  167. package/esm2022/lib/services/chatbot/chatbot.service.mjs +1 -2
  168. package/esm2022/lib/services/claimant-service/claimant.service.mjs +7 -13
  169. package/esm2022/lib/services/claims/claims.service.mjs +105 -14
  170. package/esm2022/lib/services/employer/employer-service.mjs +35 -0
  171. package/esm2022/lib/services/event-service/event-service.mjs +44 -0
  172. package/esm2022/lib/services/help/help.service.mjs +1 -1
  173. package/esm2022/lib/services/logger/logger.service.mjs +1 -1
  174. package/esm2022/lib/services/login/login.service.mjs +29 -14
  175. package/esm2022/lib/services/offline-claims/offline-claims.service.mjs +327 -0
  176. package/esm2022/lib/services/questionnaire/questionnaire.service.mjs +4 -1
  177. package/esm2022/lib/services/questionnaire/validation.service.mjs +4 -1
  178. package/esm2022/lib/services/security-service/security.service.mjs +23 -6
  179. package/esm2022/lib/services/util/util.service.mjs +61 -5
  180. package/esm2022/lib/services/weekly-cert/review.service.mjs +101 -0
  181. package/esm2022/lib/services/weekly-cert/weekly-cert-v2.service.mjs +186 -14
  182. package/esm2022/lib/services/weekly-cert/weekly-cert.service.mjs +37 -0
  183. package/esm2022/lib/services/weekly-cert/work-search.service.mjs +58 -0
  184. package/esm2022/lib/validations/AppRegex.mjs +1 -3
  185. package/esm2022/lib/validations/AppValidators.mjs +78 -62
  186. package/esm2022/public-api.mjs +47 -5
  187. package/fesm2022/reusa-ngx-reusa-app-lib.mjs +41277 -23401
  188. package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
  189. package/lib/components/add-employer/add-employer.component.d.ts +137 -53
  190. package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
  191. package/lib/components/add-participant/add-participant.component.d.ts +11 -5
  192. package/lib/components/add-participant/add-participant.component.d.ts.map +1 -1
  193. package/lib/components/add-payment/add-payment.component.d.ts +9 -3
  194. package/lib/components/add-payment/add-payment.component.d.ts.map +1 -1
  195. package/lib/components/add-wage/add-wage.component.d.ts +30 -0
  196. package/lib/components/add-wage/add-wage.component.d.ts.map +1 -0
  197. package/lib/components/address/address.component.d.ts +42 -15
  198. package/lib/components/address/address.component.d.ts.map +1 -1
  199. package/lib/components/address-popup/address-popup.component.d.ts +16 -0
  200. package/lib/components/address-popup/address-popup.component.d.ts.map +1 -0
  201. package/lib/components/address-suggestion/address-suggestion.component.d.ts +43 -0
  202. package/lib/components/address-suggestion/address-suggestion.component.d.ts.map +1 -0
  203. package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts +37 -0
  204. package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts.map +1 -0
  205. package/lib/components/associate-ssn/associate-ssn.component.d.ts +33 -0
  206. package/lib/components/associate-ssn/associate-ssn.component.d.ts.map +1 -0
  207. package/lib/components/bank-details/bank-details.component.d.ts +1 -23
  208. package/lib/components/bank-details/bank-details.component.d.ts.map +1 -1
  209. package/lib/components/claim-info/claim-info.component.d.ts +49 -0
  210. package/lib/components/claim-info/claim-info.component.d.ts.map +1 -0
  211. package/lib/components/contact-us/contact-us.component.d.ts +1 -4
  212. package/lib/components/contact-us/contact-us.component.d.ts.map +1 -1
  213. package/lib/components/correspondence-download/correspondence-download.component.d.ts.map +1 -1
  214. package/lib/components/dashboard-card/dashboard-card.component.d.ts.map +1 -1
  215. package/lib/components/dua-request-page/dua-request-page.component.d.ts +74 -0
  216. package/lib/components/dua-request-page/dua-request-page.component.d.ts.map +1 -0
  217. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts +61 -0
  218. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts.map +1 -0
  219. package/lib/components/email-update/email-update.component.d.ts +1 -12
  220. package/lib/components/email-update/email-update.component.d.ts.map +1 -1
  221. package/lib/components/employer-grid/employer-grid.component.d.ts +25 -15
  222. package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
  223. package/lib/components/employer-info/employer-info.component.d.ts +50 -0
  224. package/lib/components/employer-info/employer-info.component.d.ts.map +1 -0
  225. package/lib/components/employer-pay/employer-pay.component.d.ts +51 -0
  226. package/lib/components/employer-pay/employer-pay.component.d.ts.map +1 -0
  227. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts +43 -0
  228. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts.map +1 -0
  229. package/lib/components/error/error.component.d.ts +3 -2
  230. package/lib/components/error/error.component.d.ts.map +1 -1
  231. package/lib/components/farm-usage/farm-usage.component.d.ts +33 -0
  232. package/lib/components/farm-usage/farm-usage.component.d.ts.map +1 -0
  233. package/lib/components/file-uploader/file-uploader.component.d.ts +5 -1
  234. package/lib/components/file-uploader/file-uploader.component.d.ts.map +1 -1
  235. package/lib/components/footer/footer.component.d.ts.map +1 -1
  236. package/lib/components/gross-earnings/gross-earnings.component.d.ts +42 -0
  237. package/lib/components/gross-earnings/gross-earnings.component.d.ts.map +1 -0
  238. package/lib/components/header/header.component.d.ts +17 -5
  239. package/lib/components/header/header.component.d.ts.map +1 -1
  240. package/lib/components/history-page/history-page.component.d.ts +80 -0
  241. package/lib/components/history-page/history-page.component.d.ts.map +1 -0
  242. package/lib/components/idme/idme.component.d.ts +19 -0
  243. package/lib/components/idme/idme.component.d.ts.map +1 -0
  244. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +1 -3
  245. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts.map +1 -1
  246. package/lib/components/job-title/job-title.component.d.ts +22 -23
  247. package/lib/components/job-title/job-title.component.d.ts.map +1 -1
  248. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +5 -6
  249. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -1
  250. package/lib/components/menu/menu.component.d.ts +3 -12
  251. package/lib/components/menu/menu.component.d.ts.map +1 -1
  252. package/lib/components/mfa/mfa.component.d.ts +7 -19
  253. package/lib/components/mfa/mfa.component.d.ts.map +1 -1
  254. package/lib/components/mfa-popup/mfa-popup.component.d.ts +6 -8
  255. package/lib/components/mfa-popup/mfa-popup.component.d.ts.map +1 -1
  256. package/lib/components/money-expect/money-expect.component.d.ts +15 -4
  257. package/lib/components/money-expect/money-expect.component.d.ts.map +1 -1
  258. package/lib/components/offline-add-employer/offline-add-employer.component.d.ts +311 -0
  259. package/lib/components/offline-add-employer/offline-add-employer.component.d.ts.map +1 -0
  260. package/lib/components/offline-bank-details/offline-bank-details.component.d.ts +33 -0
  261. package/lib/components/offline-bank-details/offline-bank-details.component.d.ts.map +1 -0
  262. package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts +97 -0
  263. package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts.map +1 -0
  264. package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts +33 -0
  265. package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts.map +1 -0
  266. package/lib/components/profile/profile.component.d.ts +82 -49
  267. package/lib/components/profile/profile.component.d.ts.map +1 -1
  268. package/lib/components/profile-redirect/profile-redirect.component.d.ts +9 -2
  269. package/lib/components/profile-redirect/profile-redirect.component.d.ts.map +1 -1
  270. package/lib/components/proof-of-anything/proof-of-anything.component.d.ts +54 -0
  271. package/lib/components/proof-of-anything/proof-of-anything.component.d.ts.map +1 -0
  272. package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts +74 -0
  273. package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts.map +1 -0
  274. package/lib/components/questionnaire/AppValidators.d.ts +1 -0
  275. package/lib/components/questionnaire/AppValidators.d.ts.map +1 -1
  276. package/lib/components/questionnaire/account-success/account-success.page.d.ts +13 -10
  277. package/lib/components/questionnaire/account-success/account-success.page.d.ts.map +1 -1
  278. package/lib/components/questionnaire/common-success/common-success.page.d.ts +7 -1
  279. package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
  280. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts +3 -1
  281. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts.map +1 -1
  282. package/lib/components/questionnaire/dynamic-form-question.component.d.ts +33 -35
  283. package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
  284. package/lib/components/questionnaire/dynamic-form.component.d.ts +10 -34
  285. package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
  286. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts +0 -7
  287. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts.map +1 -1
  288. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts +7 -1
  289. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts.map +1 -1
  290. package/lib/components/questionnaire/question-control.service.d.ts.map +1 -1
  291. package/lib/components/questionnaire/question.service.d.ts +0 -1
  292. package/lib/components/questionnaire/question.service.d.ts.map +1 -1
  293. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts +1 -7
  294. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts.map +1 -1
  295. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts +11 -3
  296. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts.map +1 -1
  297. package/lib/components/scrollable-text/scrollable-text.component.d.ts +11 -0
  298. package/lib/components/scrollable-text/scrollable-text.component.d.ts.map +1 -0
  299. package/lib/components/search-employer/search-employer.component.d.ts +5 -4
  300. package/lib/components/search-employer/search-employer.component.d.ts.map +1 -1
  301. package/lib/components/sms/sms.component.d.ts +63 -0
  302. package/lib/components/sms/sms.component.d.ts.map +1 -0
  303. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +1 -5
  304. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts.map +1 -1
  305. package/lib/components/user-login/user-login.component.d.ts +5 -38
  306. package/lib/components/user-login/user-login.component.d.ts.map +1 -1
  307. package/lib/components/wage-calculator/wage-calculator.component.d.ts +44 -0
  308. package/lib/components/wage-calculator/wage-calculator.component.d.ts.map +1 -0
  309. package/lib/components/wage-grid/wage-grid.component.d.ts +43 -0
  310. package/lib/components/wage-grid/wage-grid.component.d.ts.map +1 -0
  311. package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts +28 -0
  312. package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts.map +1 -0
  313. package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts +28 -0
  314. package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts.map +1 -0
  315. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +27 -10
  316. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -1
  317. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts +9 -3
  318. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts.map +1 -1
  319. package/lib/components/weekly-certification/weekly-certification.component.d.ts +101 -0
  320. package/lib/components/weekly-certification/weekly-certification.component.d.ts.map +1 -0
  321. package/lib/components/weekly-confirmation/confirmation.component.d.ts +21 -0
  322. package/lib/components/weekly-confirmation/confirmation.component.d.ts.map +1 -0
  323. package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts +34 -0
  324. package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts.map +1 -0
  325. package/lib/components/weekly-summary-v2/summary.component-v2.d.ts +17 -0
  326. package/lib/components/weekly-summary-v2/summary.component-v2.d.ts.map +1 -0
  327. package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts +10 -0
  328. package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts.map +1 -0
  329. package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts +17 -0
  330. package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts.map +1 -0
  331. package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts +105 -0
  332. package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts.map +1 -0
  333. package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts +71 -0
  334. package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts.map +1 -0
  335. package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts +59 -0
  336. package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts.map +1 -0
  337. package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts +47 -0
  338. package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts.map +1 -0
  339. package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts +78 -0
  340. package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts.map +1 -0
  341. package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts +8 -0
  342. package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts.map +1 -0
  343. package/lib/enums/AddressValidationResponseEnum.d.ts +8 -0
  344. package/lib/enums/AddressValidationResponseEnum.d.ts.map +1 -0
  345. package/lib/enums/AddressValidationSourceFunctionEnum.d.ts +4 -0
  346. package/lib/enums/AddressValidationSourceFunctionEnum.d.ts.map +1 -0
  347. package/lib/guards/auth.guard.d.ts.map +1 -1
  348. package/lib/interceptors/error-interceptor/http-error-interceptor.d.ts.map +1 -1
  349. package/lib/models/ActiveClaimModel.d.ts +8 -0
  350. package/lib/models/ActiveClaimModel.d.ts.map +1 -0
  351. package/lib/models/CountyModel.d.ts +8 -0
  352. package/lib/models/CountyModel.d.ts.map +1 -0
  353. package/lib/models/DuaAppDataModel.d.ts +5 -0
  354. package/lib/models/DuaAppDataModel.d.ts.map +1 -0
  355. package/lib/models/DuaRequestModel.d.ts +10 -0
  356. package/lib/models/DuaRequestModel.d.ts.map +1 -0
  357. package/lib/models/DuaRetroWeeksComponentModel.d.ts +5 -0
  358. package/lib/models/DuaRetroWeeksComponentModel.d.ts.map +1 -0
  359. package/lib/models/EmployerDetailSearchResult.d.ts +4 -1
  360. package/lib/models/EmployerDetailSearchResult.d.ts.map +1 -1
  361. package/lib/models/EmployerInfoComponentModel.d.ts +9 -0
  362. package/lib/models/EmployerInfoComponentModel.d.ts.map +1 -0
  363. package/lib/models/EmployerPayInfoModel.d.ts +20 -0
  364. package/lib/models/EmployerPayInfoModel.d.ts.map +1 -0
  365. package/lib/models/FarmUsageComponentModel.d.ts +10 -0
  366. package/lib/models/FarmUsageComponentModel.d.ts.map +1 -0
  367. package/lib/models/GrossEarningsModel.d.ts +6 -0
  368. package/lib/models/GrossEarningsModel.d.ts.map +1 -0
  369. package/lib/models/HelpConstants.d.ts +5 -0
  370. package/lib/models/HelpConstants.d.ts.map +1 -0
  371. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts +7 -0
  372. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts.map +1 -0
  373. package/lib/models/LibConstants.d.ts +40 -1
  374. package/lib/models/LibConstants.d.ts.map +1 -1
  375. package/lib/models/OtpAuthModel.d.ts +0 -1
  376. package/lib/models/OtpAuthModel.d.ts.map +1 -1
  377. package/lib/models/PaymentComponentModel.d.ts +1 -1
  378. package/lib/models/PaymentComponentModel.d.ts.map +1 -1
  379. package/lib/models/ReasonSeparationRequestModel.d.ts +7 -0
  380. package/lib/models/ReasonSeparationRequestModel.d.ts.map +1 -0
  381. package/lib/models/RetroWeeksModel.d.ts +11 -0
  382. package/lib/models/RetroWeeksModel.d.ts.map +1 -0
  383. package/lib/models/SecurityQuestionAnswerModel.d.ts +7 -0
  384. package/lib/models/SecurityQuestionAnswerModel.d.ts.map +1 -0
  385. package/lib/models/SendOtpRequestModel.d.ts +12 -0
  386. package/lib/models/SendOtpRequestModel.d.ts.map +1 -0
  387. package/lib/models/UserModel.d.ts +0 -1
  388. package/lib/models/UserModel.d.ts.map +1 -1
  389. package/lib/models/VerifyOtpRequestModel.d.ts +8 -0
  390. package/lib/models/VerifyOtpRequestModel.d.ts.map +1 -0
  391. package/lib/models/WageCalculatorModel.d.ts +15 -0
  392. package/lib/models/WageCalculatorModel.d.ts.map +1 -0
  393. package/lib/models/WageInfoModel.d.ts +9 -0
  394. package/lib/models/WageInfoModel.d.ts.map +1 -0
  395. package/lib/models/addressValidation/AddressRecommendationModel.d.ts +12 -0
  396. package/lib/models/addressValidation/AddressRecommendationModel.d.ts.map +1 -0
  397. package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts +11 -0
  398. package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts.map +1 -0
  399. package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts +6 -0
  400. package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts.map +1 -0
  401. package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts +16 -0
  402. package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts.map +1 -0
  403. package/lib/models/combo-model.d.ts +42 -0
  404. package/lib/models/combo-model.d.ts.map +1 -0
  405. package/lib/models/dashboard-model.d.ts +22 -0
  406. package/lib/models/dashboard-model.d.ts.map +1 -1
  407. package/lib/models/fileupload/DocUploadModel.d.ts +22 -0
  408. package/lib/models/fileupload/DocUploadModel.d.ts.map +1 -0
  409. package/lib/models/fileupload/EmployerDataModel.d.ts +6 -0
  410. package/lib/models/fileupload/EmployerDataModel.d.ts.map +1 -0
  411. package/lib/models/fileupload/FileObject.d.ts +8 -0
  412. package/lib/models/fileupload/FileObject.d.ts.map +1 -0
  413. package/lib/models/fileupload/FileObjectArray.d.ts +8 -0
  414. package/lib/models/fileupload/FileObjectArray.d.ts.map +1 -0
  415. package/lib/models/questionnaire/AppealParticipantModel.d.ts +17 -0
  416. package/lib/models/questionnaire/AppealParticipantModel.d.ts.map +1 -0
  417. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts +3 -0
  418. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts.map +1 -1
  419. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +15 -4
  420. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts.map +1 -1
  421. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts +4 -1
  422. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts.map +1 -1
  423. package/lib/models/questionnaire/ComboModel.d.ts +14 -82
  424. package/lib/models/questionnaire/ComboModel.d.ts.map +1 -1
  425. package/lib/models/questionnaire/ElementsModel.d.ts +0 -1
  426. package/lib/models/questionnaire/ElementsModel.d.ts.map +1 -1
  427. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts +2 -0
  428. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts.map +1 -1
  429. package/lib/models/questionnaire/QuestionnaireSaveModel.d.ts +0 -1
  430. package/lib/models/questionnaire/QuestionnaireSaveModel.d.ts.map +1 -1
  431. package/lib/models/questionnaire/ScrollableTextModel.d.ts +4 -0
  432. package/lib/models/questionnaire/ScrollableTextModel.d.ts.map +1 -0
  433. package/lib/models/questionnaire/StatusModel.d.ts +1 -0
  434. package/lib/models/questionnaire/StatusModel.d.ts.map +1 -1
  435. package/lib/models/questionnaire/WbaHelperTextModel.d.ts +4 -0
  436. package/lib/models/questionnaire/WbaHelperTextModel.d.ts.map +1 -0
  437. package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts +9 -0
  438. package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts.map +1 -0
  439. package/lib/models/weekly-cert/address-detail-model.d.ts +14 -0
  440. package/lib/models/weekly-cert/address-detail-model.d.ts.map +1 -0
  441. package/lib/models/weekly-cert/admin-leave-details-model.d.ts +15 -0
  442. package/lib/models/weekly-cert/admin-leave-details-model.d.ts.map +1 -0
  443. package/lib/models/weekly-cert/employer-info-v2-model.d.ts +27 -0
  444. package/lib/models/weekly-cert/employer-info-v2-model.d.ts.map +1 -0
  445. package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts +57 -0
  446. package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts.map +1 -0
  447. package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts +59 -0
  448. package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts.map +1 -0
  449. package/lib/models/weekly-cert/work-search-record-v2-model.d.ts +66 -0
  450. package/lib/models/weekly-cert/work-search-record-v2-model.d.ts.map +1 -0
  451. package/lib/models/weekly-cert/work-search-v2-model.d.ts +18 -0
  452. package/lib/models/weekly-cert/work-search-v2-model.d.ts.map +1 -0
  453. package/lib/ngx-reusa-app-lib.module.d.ts +124 -86
  454. package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -1
  455. package/lib/pages/BasePage.d.ts +3 -6
  456. package/lib/pages/BasePage.d.ts.map +1 -1
  457. package/lib/pages/common/change-password/change-password.page.d.ts +3 -0
  458. package/lib/pages/common/change-password/change-password.page.d.ts.map +1 -1
  459. package/lib/pages/common/login/login.component.d.ts.map +1 -1
  460. package/lib/pages/popovers/language/language.page.d.ts.map +1 -1
  461. package/lib/pages/popovers/my-profile/my-profile.page.d.ts.map +1 -1
  462. package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts +14 -0
  463. package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts.map +1 -0
  464. package/lib/services/address-validation-service/address-validation.service.d.ts +44 -0
  465. package/lib/services/address-validation-service/address-validation.service.d.ts.map +1 -0
  466. package/lib/services/appeal/appeal.service.d.ts +16 -0
  467. package/lib/services/appeal/appeal.service.d.ts.map +1 -0
  468. package/lib/services/base-service.d.ts +12 -0
  469. package/lib/services/base-service.d.ts.map +1 -1
  470. package/lib/services/birt-service/birt.service.d.ts +17 -0
  471. package/lib/services/birt-service/birt.service.d.ts.map +1 -0
  472. package/lib/services/claimant-service/claimant.service.d.ts +5 -6
  473. package/lib/services/claimant-service/claimant.service.d.ts.map +1 -1
  474. package/lib/services/claims/claims.service.d.ts +39 -5
  475. package/lib/services/claims/claims.service.d.ts.map +1 -1
  476. package/lib/services/employer/employer-service.d.ts +16 -0
  477. package/lib/services/employer/employer-service.d.ts.map +1 -0
  478. package/lib/services/event-service/event-service.d.ts +20 -0
  479. package/lib/services/event-service/event-service.d.ts.map +1 -0
  480. package/lib/services/login/login.service.d.ts +5 -3
  481. package/lib/services/login/login.service.d.ts.map +1 -1
  482. package/lib/services/offline-claims/offline-claims.service.d.ts +64 -0
  483. package/lib/services/offline-claims/offline-claims.service.d.ts.map +1 -0
  484. package/lib/services/questionnaire/questionnaire.service.d.ts +1 -0
  485. package/lib/services/questionnaire/questionnaire.service.d.ts.map +1 -1
  486. package/lib/services/questionnaire/validation.service.d.ts +3 -0
  487. package/lib/services/questionnaire/validation.service.d.ts.map +1 -1
  488. package/lib/services/security-service/security.service.d.ts +12 -4
  489. package/lib/services/security-service/security.service.d.ts.map +1 -1
  490. package/lib/services/util/util.service.d.ts +6 -0
  491. package/lib/services/util/util.service.d.ts.map +1 -1
  492. package/lib/services/weekly-cert/review.service.d.ts +23 -0
  493. package/lib/services/weekly-cert/review.service.d.ts.map +1 -0
  494. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts +47 -5
  495. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts.map +1 -1
  496. package/lib/services/weekly-cert/weekly-cert.service.d.ts +17 -0
  497. package/lib/services/weekly-cert/weekly-cert.service.d.ts.map +1 -0
  498. package/lib/services/weekly-cert/work-search.service.d.ts +26 -0
  499. package/lib/services/weekly-cert/work-search.service.d.ts.map +1 -0
  500. package/lib/validations/AppRegex.d.ts +0 -2
  501. package/lib/validations/AppRegex.d.ts.map +1 -1
  502. package/lib/validations/AppValidators.d.ts +20 -24
  503. package/lib/validations/AppValidators.d.ts.map +1 -1
  504. package/package.json +2 -2
  505. package/public-api.d.ts +46 -4
  506. package/public-api.d.ts.map +1 -1
  507. package/esm2022/lib/components/lexis-nexis/lexis-nexis.component.mjs +0 -402
  508. package/esm2022/lib/components/mfa2/mfa2.component.mjs +0 -285
  509. package/esm2022/lib/components/security-question/security-question.component.mjs +0 -199
  510. package/esm2022/lib/models/LexisNexisAccountCreationModel.mjs +0 -2
  511. package/esm2022/lib/models/LexisNexisAuthSelectionRequestModel.mjs +0 -2
  512. package/esm2022/lib/models/LexisNexisAuthSelectionResponseModel.mjs +0 -2
  513. package/esm2022/lib/models/LexisNexisEnabledResponseModel.mjs +0 -2
  514. package/esm2022/lib/models/LexisNexisResponseModel.mjs +0 -3
  515. package/esm2022/lib/models/PartialEmploymentModel.mjs +0 -3
  516. package/esm2022/lib/models/SecurityQuestionModel.mjs +0 -3
  517. package/esm2022/lib/services/claimant-service/claimant-usps-redirect.service.mjs +0 -36
  518. package/esm2022/lib/services/lexis-nexis/lexis.nexis.service.mjs +0 -60
  519. package/esm2022/lib/services/ovp/ovp.service.mjs +0 -43
  520. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts +0 -59
  521. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +0 -1
  522. package/lib/components/mfa2/mfa2.component.d.ts +0 -48
  523. package/lib/components/mfa2/mfa2.component.d.ts.map +0 -1
  524. package/lib/components/security-question/security-question.component.d.ts +0 -37
  525. package/lib/components/security-question/security-question.component.d.ts.map +0 -1
  526. package/lib/models/LexisNexisAccountCreationModel.d.ts +0 -15
  527. package/lib/models/LexisNexisAccountCreationModel.d.ts.map +0 -1
  528. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts +0 -16
  529. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts.map +0 -1
  530. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts +0 -39
  531. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts.map +0 -1
  532. package/lib/models/LexisNexisEnabledResponseModel.d.ts +0 -5
  533. package/lib/models/LexisNexisEnabledResponseModel.d.ts.map +0 -1
  534. package/lib/models/LexisNexisResponseModel.d.ts +0 -7
  535. package/lib/models/LexisNexisResponseModel.d.ts.map +0 -1
  536. package/lib/models/PartialEmploymentModel.d.ts +0 -6
  537. package/lib/models/PartialEmploymentModel.d.ts.map +0 -1
  538. package/lib/models/SecurityQuestionModel.d.ts +0 -7
  539. package/lib/models/SecurityQuestionModel.d.ts.map +0 -1
  540. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts +0 -16
  541. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts.map +0 -1
  542. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts +0 -26
  543. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts.map +0 -1
  544. package/lib/services/ovp/ovp.service.d.ts +0 -17
  545. package/lib/services/ovp/ovp.service.d.ts.map +0 -1
@@ -7,99 +7,62 @@ import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/forms";
8
8
  import * as i2 from "../../services/util/util.service";
9
9
  import * as i3 from "../../services/dms-service/dms.service";
10
- import * as i4 from "@ngx-translate/core";
11
- import * as i5 from "@ionic/angular";
12
- import * as i6 from "primeng/password";
13
- import * as i7 from "primeng/inputtext";
14
- import * as i8 from "primeng/selectbutton";
15
- import * as i9 from "../error/error.component";
16
- import * as i10 from "../overlay-info/overlay-info.component";
10
+ import * as i4 from "@ionic/angular";
11
+ import * as i5 from "primeng/password";
12
+ import * as i6 from "primeng/inputtext";
13
+ import * as i7 from "primeng/selectbutton";
14
+ import * as i8 from "../error/error.component";
15
+ import * as i9 from "../overlay-info/overlay-info.component";
16
+ import * as i10 from "@ngx-translate/core";
17
17
  import * as i11 from "../../pipes/proper-case/proper-case.pipe";
18
18
  const _c0 = ["bankDetailsFormDirective"];
19
- const _c1 = (a0, a1) => ({ required: a0, pattern: a1 });
20
- const _c2 = a0 => ({ required: a0 });
21
- const _c3 = (a0, a1, a2, a3) => ({ required: a0, invalidLengthRouting: a1, hasRouting: a2, isRoutingNumberNotValid: a3 });
22
- const _c4 = (a0, a1, a2, a3, a4) => ({ required: a0, pattern: a1, hasNumber: a2, maxlength: a3, minlength: a4 });
23
- const _c5 = (a0, a1, a2, a3, a4) => ({ required: a0, pattern: a1, accountNumbeComparision: a2, maxlength: a3, minlength: a4 });
19
+ const _c1 = () => ({ required: "required.", pattern: "please enter only letters" });
20
+ const _c2 = () => ({ required: "required." });
21
+ const _c3 = () => ({ required: "required.", hasRouting: "Must be at least 9 digits.", isRoutingNumberNotValid: "Invalid routing number." });
22
+ const _c4 = () => ({ required: "required.", pattern: "enter only numbers.", hasNumber: "valid number", maxlength: "cannot exceed 17 characters" });
23
+ const _c5 = "Account Number and Re-enter Account Number should match";
24
+ const _c6 = () => ({ required: "required.", pattern: "enter only numbers.", accountNumbeComparision: _c5, maxlength: "cannot exceed 17 characters" });
24
25
  export class BankDetailsComponent {
25
- constructor(formBuilder, util, dms, translateService) {
26
+ constructor(formBuilder, util, dms) {
26
27
  this.formBuilder = formBuilder;
27
28
  this.util = util;
28
29
  this.dms = dms;
29
- this.translateService = translateService;
30
30
  this.bankDetailsModel = new BankDetailsModel();
31
31
  this.routingNumberValidators = [
32
32
  Validators.minLength(9),
33
33
  Validators.maxLength(9),
34
- Validators.required,
35
- AppValidators.isValidLengthRoutingNumber
34
+ Validators.required
36
35
  ];
37
36
  this.onTouched = () => { };
38
37
  this.onChangeSubs = [];
39
- this.translateService.use(localStorage.getItem("language"));
40
- if (localStorage.getItem("language") === "es") {
41
- this.accountTypeOptions = [
42
- { text: 'corriente', value: 'CHEC' },
43
- { text: 'ahorros', value: 'SAVE' },
44
- ];
45
- }
46
- else {
47
- this.accountTypeOptions = [
48
- { text: 'checking', value: 'CHEC' },
49
- { text: 'savings', value: 'SAVE' },
50
- ];
51
- }
38
+ this.accountTypeOptions = [
39
+ { text: 'checking', value: 'CHEC' },
40
+ { text: 'savings', value: 'SAVE' },
41
+ ];
52
42
  }
53
43
  ngOnInit() {
54
- console.log("inside onInit bankdetailscomponent");
55
44
  this.bankDetailsForm = this.formBuilder.group({
56
45
  'nameOnAccount': [null, Validators.compose([Validators.required, Validators.pattern(AppRegex.NAME_REGEX)])],
57
46
  'accountType': [null, Validators.required],
58
- 'routingNumber': [null, Validators.compose([Validators.required])],
47
+ 'routingNumber': [null, Validators.compose([Validators.required, Validators.pattern(AppRegex.ACCOUNT_NUMBER_REGEX)])],
59
48
  'bankName': [null],
60
- 'accountNumber': [null, Validators.compose([Validators.required, Validators.pattern(AppRegex.ACCOUNT_NUMBER_REGEX), Validators.maxLength(17), Validators.min(8)])],
61
- 'reEnterAccountNumber': [null, Validators.compose([Validators.required, Validators.pattern(AppRegex.ACCOUNT_NUMBER_REGEX), Validators.maxLength(17), Validators.min(8)])]
49
+ 'accountNumber': [null, Validators.compose([Validators.required, Validators.pattern(AppRegex.ACCOUNT_NUMBER_REGEX), Validators.maxLength(17)])],
50
+ 'reEnterAccountNumber': [null, Validators.compose([Validators.required, Validators.pattern(AppRegex.ACCOUNT_NUMBER_REGEX), Validators.maxLength(17)])]
62
51
  });
63
52
  this.setAccountNumberValidator();
64
53
  }
65
54
  submit() {
66
- //console.log("this.bankDetailsFormDirective : "+this.bankDetailsFormDirective);
67
55
  if (this.bankDetailsFormDirective) {
68
56
  this.bankDetailsFormDirective.onSubmit(undefined);
69
57
  }
70
58
  }
71
- // Method to remove non-digit characters dynamically
72
- // PGLP-1750 in correct Routing NUmber
73
- sanitizeInput(event) {
74
- let value = event.target.value || '';
75
- let fieldName = event.target.id; // Get input field ID
76
- if (fieldName === 'bankAccountNumber') {
77
- this.accountNumber.setValue(value.replace(/\D+/g, ''));
78
- event.target.value = value.substring(0, 17); // Trim excess characters
79
- if (value.length < 8) {
80
- this.bankDetailsForm.controls['accountNumber'].setErrors({ minlength: true });
81
- return { minlength: true };
82
- }
83
- }
84
- if (fieldName === 'reEnterAccountNumber') {
85
- this.reEnterAccountNumber.setValue(value.replace(/\D+/g, ''));
86
- event.target.value = value.substring(0, 17); // Trim excess characters
87
- if (value.length < 8) {
88
- this.bankDetailsForm.controls['reEnterAccountNumber'].setErrors({ minlength: true });
89
- return { minlength: true };
90
- }
91
- }
92
- }
93
59
  setAccountNumberValidator() {
94
60
  let validators1 = [];
95
61
  let isRoutingNumberNotValid;
96
62
  this.routingNumberValidators.forEach(v => validators1.push(v));
97
- this.util.setValidation(this.routingNumber, this.routingNumberValidators);
98
- console.log("Validators : " + this.routingNumberValidators);
99
63
  const ROUTING_NUMBER = /^[0-4]{1}[0-9]{8}$/;
100
64
  this.util.setValidation(this.routingNumber, validators1);
101
65
  this.util.setValidation(this.routingNumber, AppValidators.isValidRoutingNumber);
102
- this.util.setValidation(this.routingNumber, AppValidators.isValidLengthRoutingNumber);
103
66
  this.reEnterAccountNumber.valueChanges.subscribe(val => {
104
67
  if (this.accountNumber && (this.accountNumber.value != this.reEnterAccountNumber.value)) {
105
68
  this.bankDetailsForm.controls['reEnterAccountNumber'].setErrors({ accountNumbeComparision: true });
@@ -109,17 +72,8 @@ export class BankDetailsComponent {
109
72
  this.routingNumber.valueChanges.subscribe(val => {
110
73
  const valid1 = ROUTING_NUMBER.test(this.routingNumber.value);
111
74
  if (!valid1) {
112
- if (AppValidators.isValidLengthRoutingNumber) {
113
- this.bankDetailsForm.controls['routingNumber'].setErrors({ invalidLengthRouting: true });
114
- this.bankDetailsForm.invalid;
115
- return { invalidLengthRouting: true };
116
- }
117
- else {
118
- this.bankDetailsForm.controls['routingNumber'].setErrors({ hasRouting: true });
119
- this.bankDetailsForm.invalid;
120
- //this.bankDetailsForm.controls['address'].setErrors({ bankDetailsValidationFlag: true });
121
- return { hasRouting: true };
122
- }
75
+ this.bankDetailsForm.controls['routingNumber'].setErrors({ hasRouting: true });
76
+ return { hasRouting: true };
123
77
  }
124
78
  });
125
79
  }
@@ -167,7 +121,6 @@ export class BankDetailsComponent {
167
121
  }
168
122
  }
169
123
  validate(control) {
170
- console.log("bankDetailsForm : " + this.bankDetailsForm.getError);
171
124
  if (this.bankDetailsForm.valid) {
172
125
  return null;
173
126
  }
@@ -181,82 +134,12 @@ export class BankDetailsComponent {
181
134
  this.bankName = res.bankName;
182
135
  this.bankNameControl.setValue(res.bankName);
183
136
  }, err => {
184
- this.bankName = "no data found.";
137
+ this.bankName = "No Matching Routing Numbers.";
185
138
  this.bankNameControl.setValue(null);
186
139
  });
187
140
  }
188
141
  }
189
- // PGLP-1750 in correct Routing NUmber
190
- // Clears the reEnterAccountNumber value when account number and reEnterAccountNumber is not same.
191
- accountNumberComparision(event) {
192
- if (this.accountNumber && (this.accountNumber.value != this.reEnterAccountNumber.value)) {
193
- this.reEnterAccountNumber.setValue(null);
194
- }
195
- }
196
- // PGLP-1750 in correct Routing NUmber
197
- // Clears the reEnterAccountNumber value when account number and reEnterAccountNumber is not same.
198
- accountNumberminlenghtvalidation(event) {
199
- if (this.accountNumber.value.length < 8) {
200
- this.accountNumber.setValue(null);
201
- }
202
- }
203
- // PGLP-1750 in correct Routing NUmber
204
- // if Entered RoutingNumber value is not validated with given RegExp then ,RoutingNumber value is set as a null
205
- routingNumberValidation(event) {
206
- const ROUTING_NUMBER = /^[0-4]{1}[0-9]{8}$/;
207
- const valid1 = ROUTING_NUMBER.test(this.routingNumber.value);
208
- if (!valid1) {
209
- this.routingNumber.setValue(null);
210
- }
211
- if (valid1) {
212
- if (AppValidators.isValidRoutingNumber(this.routingNumber)) {
213
- this.routingNumber.setValue(null);
214
- }
215
- }
216
- }
217
- get required() {
218
- return this.translateService.instant('common.required');
219
- }
220
- get onlyNumbers() {
221
- return this.translateService.instant('common.only.numbers');
222
- }
223
- get onlyLetters() {
224
- return this.translateService.instant('common.only.letters');
225
- }
226
- get accountMatch() {
227
- return this.translateService.instant('bank.account.match');
228
- }
229
- get accountMax() {
230
- return this.translateService.instant('bank.account.max');
231
- }
232
- get validNumber() {
233
- return this.translateService.instant('bank.valid.number');
234
- }
235
- get routingNumberInvalid() {
236
- return this.translateService.instant('bank.routing.number.invalid');
237
- }
238
- get validRoutingNumber() {
239
- return this.translateService.instant('bank.validation.routing.number');
240
- }
241
- get invalidRoutingNumber() {
242
- return this.translateService.instant('bank.validation.routing.number.invalid');
243
- }
244
- get acPattern() {
245
- return this.translateService.instant('bank.validation.ac.pattern');
246
- }
247
- get acValidNumber() {
248
- return this.translateService.instant('bank.validation.ac.valid.number');
249
- }
250
- get acMaxlength() {
251
- return this.translateService.instant('bank.validation.ac.maxlength');
252
- }
253
- get acMinLength() {
254
- return this.translateService.instant('bank.validation.ac.minlength');
255
- }
256
- get accountNumberComparisionValidation() {
257
- return this.translateService.instant('bank.validation.ac.number.comparision');
258
- }
259
- static { this.ɵfac = function BankDetailsComponent_Factory(t) { return new (t || BankDetailsComponent)(i0.ɵɵdirectiveInject(i1.UntypedFormBuilder), i0.ɵɵdirectiveInject(i2.UtilService), i0.ɵɵdirectiveInject(i3.DmsService), i0.ɵɵdirectiveInject(i4.TranslateService)); }; }
142
+ static { this.ɵfac = function BankDetailsComponent_Factory(t) { return new (t || BankDetailsComponent)(i0.ɵɵdirectiveInject(i1.UntypedFormBuilder), i0.ɵɵdirectiveInject(i2.UtilService), i0.ɵɵdirectiveInject(i3.DmsService)); }; }
260
143
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BankDetailsComponent, selectors: [["app-bank-details"]], viewQuery: function BankDetailsComponent_Query(rf, ctx) { if (rf & 1) {
261
144
  i0.ɵɵviewQuery(_c0, 5);
262
145
  } if (rf & 2) {
@@ -271,130 +154,107 @@ export class BankDetailsComponent {
271
154
  provide: NG_VALIDATORS,
272
155
  multi: true,
273
156
  useExisting: BankDetailsComponent
274
- }])], decls: 75, vars: 93, consts: [[2, "margin-bottom", "0px", "margin-left", "0px", "margin-top", "6px", 3, "formGroup"], ["bankDetailsFormDirective", "ngForm"], [2, "padding", "0px"], [1, "p-formgrid"], [1, "field"], ["for", "nameOnAccount"], ["id", "nameOnAccount", "type", "text", "pInputText", "", "maxlength", "30", 3, "formControl"], [3, "field", "form", "errDef"], ["for", ""], [2, "display", "inline-flex"], ["optionLabel", "text", "optionValue", "value", 3, "options", "formControl", "multiple"], [2, "padding-left", "8px"], [1, "heading"], [1, "overlay-subheading", "ion-padding-top"], [1, "overlay-desc", "ion-padding-top"], ["alt", "check image", "src", "assets/icon/check.png", 1, "ion-padding-top"], [1, "col"], ["for", "routingNumberInput"], ["id", "routingNumberInput", "type", "input", "pInputText", "", "minlength", "9", "maxlength", "9", "inputmode", "numeric", "oninput", "this.value = this.value.replace(/\\D+/g, '')", "size", "9", 3, "formControl", "focusout"], [1, "form-lbl"], ["for", "routingNumber"], [1, "ion-padding-top", "ion-padding-bottom"], [1, "field", "account"], ["for", "bankAccountNumber"], ["inputId", "bankAccountNumber", 3, "formControl", "maxlength", "feedback", "toggleMask", "input", "focusout"], ["for", "reEnterAccountNumber"], ["inputId", "reEnterAccountNumber", "maxlength", "17", "size", "17", 3, "formControl", "feedback", "toggleMask", "input", "focusout"]], template: function BankDetailsComponent_Template(rf, ctx) { if (rf & 1) {
157
+ }])], decls: 70, vars: 62, consts: [[2, "margin-bottom", "0px", "margin-left", "0px", "margin-top", "6px", 3, "formGroup"], ["bankDetailsFormDirective", "ngForm"], [2, "padding", "0px"], [1, "p-formgrid"], [1, "field"], ["for", ""], ["id", "nameOnAccount", "type", "text", "pInputText", "", "maxlength", "30", 3, "formControl"], [3, "field", "form", "errDef"], [2, "display", "inline-flex"], ["optionLabel", "text", "optionValue", "value", 3, "options", "formControl", "multiple"], [2, "padding-left", "8px"], [1, "heading"], [1, "overlay-subheading", "ion-padding-top"], [1, "overlay-desc", "ion-padding-top"], ["alt", "check image", "src", "assets/icon/check1.png", 1, "ion-padding-top"], [1, "col"], ["for", "routingNumber"], ["id", "routingNumber", "type", "input", "pInputText", "", "maxlength", "9", 3, "formControl", "blur"], [1, "form-lbl"], [1, "ion-padding-top", "ion-padding-bottom"], ["for", "accountNumber"], ["id", "accountNumber", 3, "formControl", "maxlength", "feedback", "toggleMask"], ["for", "reEnterAccountNumber"], ["id", "reEnterAccountNumber", 3, "formControl", "maxlength", "feedback", "toggleMask"]], template: function BankDetailsComponent_Template(rf, ctx) { if (rf & 1) {
275
158
  i0.ɵɵelementStart(0, "form", 0, 1)(2, "ion-grid", 2)(3, "div", 3)(4, "div", 4)(5, "label", 5);
276
159
  i0.ɵɵtext(6);
277
160
  i0.ɵɵpipe(7, "translate");
278
161
  i0.ɵɵelementEnd();
279
162
  i0.ɵɵelement(8, "br")(9, "input", 6)(10, "br")(11, "app-error", 7);
280
163
  i0.ɵɵelementEnd();
281
- i0.ɵɵelementStart(12, "div", 4)(13, "label", 8);
164
+ i0.ɵɵelementStart(12, "div", 4)(13, "label", 5);
282
165
  i0.ɵɵtext(14);
283
166
  i0.ɵɵpipe(15, "translate");
284
167
  i0.ɵɵelementEnd();
285
168
  i0.ɵɵelement(16, "br");
286
- i0.ɵɵelementStart(17, "div", 9)(18, "div");
287
- i0.ɵɵelement(19, "p-selectButton", 10)(20, "app-error", 7);
169
+ i0.ɵɵelementStart(17, "div", 8)(18, "div");
170
+ i0.ɵɵelement(19, "p-selectButton", 9)(20, "app-error", 7);
288
171
  i0.ɵɵelementEnd();
289
- i0.ɵɵelementStart(21, "div", 11)(22, "app-overlay-info")(23, "div", 12);
290
- i0.ɵɵtext(24);
291
- i0.ɵɵpipe(25, "translate");
172
+ i0.ɵɵelementStart(21, "div", 10)(22, "app-overlay-info")(23, "div", 11);
173
+ i0.ɵɵtext(24, "Banking numbers");
292
174
  i0.ɵɵelementEnd();
293
- i0.ɵɵelementStart(26, "div", 13);
294
- i0.ɵɵtext(27);
295
- i0.ɵɵpipe(28, "translate");
175
+ i0.ɵɵelementStart(25, "div", 12);
176
+ i0.ɵɵtext(26, "Checking Account");
296
177
  i0.ɵɵelementEnd();
297
- i0.ɵɵelementStart(29, "div", 14);
298
- i0.ɵɵtext(30);
299
- i0.ɵɵpipe(31, "translate");
178
+ i0.ɵɵelementStart(27, "div", 13);
179
+ i0.ɵɵtext(28, " Find your bank's routing number and your account number on the bottom of your personal checks. ");
300
180
  i0.ɵɵelementEnd();
301
- i0.ɵɵelement(32, "img", 15);
302
- i0.ɵɵelementStart(33, "div", 13);
303
- i0.ɵɵtext(34);
304
- i0.ɵɵpipe(35, "translate");
181
+ i0.ɵɵelement(29, "img", 14);
182
+ i0.ɵɵelementStart(30, "div", 12);
183
+ i0.ɵɵtext(31, "Savings Account");
305
184
  i0.ɵɵelementEnd();
306
- i0.ɵɵelementStart(36, "div", 14);
307
- i0.ɵɵtext(37);
308
- i0.ɵɵpipe(38, "translate");
185
+ i0.ɵɵelementStart(32, "div", 13);
186
+ i0.ɵɵtext(33, " If you prefer direct deposit into a saving account and don't have a checking account with the same bank, call your bank to get the routing number. If you have a checking account at the same bank, the routing number is the same, but the account number is different. ");
309
187
  i0.ɵɵelementEnd()()()()();
310
- i0.ɵɵelementStart(39, "ion-row")(40, "ion-col", 16)(41, "div", 4)(42, "label", 17);
311
- i0.ɵɵtext(43);
312
- i0.ɵɵpipe(44, "translate");
188
+ i0.ɵɵelementStart(34, "ion-row")(35, "ion-col", 15)(36, "div", 4)(37, "label", 16);
189
+ i0.ɵɵtext(38);
190
+ i0.ɵɵpipe(39, "translate");
313
191
  i0.ɵɵelementEnd();
314
- i0.ɵɵelement(45, "br");
315
- i0.ɵɵelementStart(46, "input", 18);
316
- i0.ɵɵlistener("focusout", function BankDetailsComponent_Template_input_focusout_46_listener($event) { return ctx.routingNumberValidation($event); });
192
+ i0.ɵɵelement(40, "br");
193
+ i0.ɵɵelementStart(41, "input", 17);
194
+ i0.ɵɵlistener("blur", function BankDetailsComponent_Template_input_blur_41_listener($event) { return ctx.fetchBankName($event); });
317
195
  i0.ɵɵelementEnd();
318
- i0.ɵɵelement(47, "br")(48, "app-error", 7);
196
+ i0.ɵɵelement(42, "br")(43, "app-error", 7);
319
197
  i0.ɵɵelementEnd()();
320
- i0.ɵɵelementStart(49, "ion-col")(50, "div", 19)(51, "label", 20);
321
- i0.ɵɵtext(52, "\u00A0");
198
+ i0.ɵɵelementStart(44, "ion-col")(45, "div", 18)(46, "label", 16);
199
+ i0.ɵɵtext(47, "\u00A0");
322
200
  i0.ɵɵelementEnd()();
323
- i0.ɵɵelementStart(53, "div", 21);
324
- i0.ɵɵtext(54);
325
- i0.ɵɵpipe(55, "properCase");
201
+ i0.ɵɵelementStart(48, "div", 19);
202
+ i0.ɵɵtext(49);
203
+ i0.ɵɵpipe(50, "properCase");
326
204
  i0.ɵɵelementEnd()()();
327
- i0.ɵɵelementStart(56, "ion-row")(57, "ion-col", 16)(58, "div", 22)(59, "label", 23);
328
- i0.ɵɵtext(60);
329
- i0.ɵɵpipe(61, "translate");
330
- i0.ɵɵelementEnd();
331
- i0.ɵɵelement(62, "br");
332
- i0.ɵɵelementStart(63, "p-password", 24);
333
- i0.ɵɵlistener("input", function BankDetailsComponent_Template_p_password_input_63_listener($event) { return ctx.sanitizeInput($event); })("focusout", function BankDetailsComponent_Template_p_password_focusout_63_listener($event) { return ctx.accountNumberminlenghtvalidation($event); });
205
+ i0.ɵɵelementStart(51, "ion-row")(52, "ion-col", 15)(53, "div", 4)(54, "label", 20);
206
+ i0.ɵɵtext(55);
207
+ i0.ɵɵpipe(56, "translate");
334
208
  i0.ɵɵelementEnd();
335
- i0.ɵɵelement(64, "br")(65, "app-error", 7);
209
+ i0.ɵɵelement(57, "br")(58, "p-password", 21)(59, "br")(60, "app-error", 7);
336
210
  i0.ɵɵelementEnd()();
337
- i0.ɵɵelementStart(66, "ion-col", 16)(67, "div", 22)(68, "label", 25);
338
- i0.ɵɵtext(69);
339
- i0.ɵɵpipe(70, "translate");
211
+ i0.ɵɵelementStart(61, "ion-col", 15)(62, "div", 4)(63, "label", 22);
212
+ i0.ɵɵtext(64);
213
+ i0.ɵɵpipe(65, "translate");
340
214
  i0.ɵɵelementEnd();
341
- i0.ɵɵelement(71, "br");
342
- i0.ɵɵelementStart(72, "p-password", 26);
343
- i0.ɵɵlistener("input", function BankDetailsComponent_Template_p_password_input_72_listener($event) { return ctx.sanitizeInput($event); })("focusout", function BankDetailsComponent_Template_p_password_focusout_72_listener($event) { return ctx.accountNumberComparision($event); });
344
- i0.ɵɵelementEnd();
345
- i0.ɵɵelement(73, "br")(74, "app-error", 7);
215
+ i0.ɵɵelement(66, "br")(67, "p-password", 23)(68, "br")(69, "app-error", 7);
346
216
  i0.ɵɵelementEnd()()()()()();
347
217
  } if (rf & 2) {
348
218
  const _r0 = i0.ɵɵreference(1);
349
219
  i0.ɵɵproperty("formGroup", ctx.bankDetailsForm);
350
220
  i0.ɵɵadvance(6);
351
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(7, 49, "bank.account.name"));
221
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(7, 45, "Name on Account"));
352
222
  i0.ɵɵadvance(3);
353
223
  i0.ɵɵproperty("formControl", ctx.nameOnAccount);
354
224
  i0.ɵɵadvance(2);
355
225
  i0.ɵɵclassMap("app-grid");
356
- i0.ɵɵproperty("field", ctx.nameOnAccount)("form", _r0)("errDef", i0.ɵɵpureFunction2(71, _c1, ctx.required, ctx.onlyLetters));
226
+ i0.ɵɵproperty("field", ctx.nameOnAccount)("form", _r0)("errDef", i0.ɵɵpureFunction0(57, _c1));
357
227
  i0.ɵɵadvance(3);
358
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(15, 51, "bank.account.type"));
228
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(15, 47, "Account Type"));
359
229
  i0.ɵɵadvance(5);
360
230
  i0.ɵɵproperty("options", ctx.accountTypeOptions)("formControl", ctx.accountType)("multiple", false);
361
231
  i0.ɵɵadvance(1);
362
232
  i0.ɵɵclassMap("app-grid");
363
- i0.ɵɵproperty("field", ctx.accountType)("form", _r0)("errDef", i0.ɵɵpureFunction1(74, _c2, ctx.required));
364
- i0.ɵɵadvance(4);
365
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(25, 53, "bank.numbers"));
366
- i0.ɵɵadvance(3);
367
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(28, 55, "bank.checking.account"));
368
- i0.ɵɵadvance(3);
369
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(31, 57, "bank.find.routing.number"), " ");
370
- i0.ɵɵadvance(4);
371
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(35, 59, "bank.saving.account"));
372
- i0.ɵɵadvance(3);
373
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(38, 61, "bank.direct.deposit"), " ");
374
- i0.ɵɵadvance(6);
375
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(44, 63, "bank.routing.number"));
233
+ i0.ɵɵproperty("field", ctx.accountType)("form", _r0)("errDef", i0.ɵɵpureFunction0(58, _c2));
234
+ i0.ɵɵadvance(18);
235
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(39, 49, "Routing Number"));
376
236
  i0.ɵɵadvance(3);
377
237
  i0.ɵɵproperty("formControl", ctx.routingNumber);
378
238
  i0.ɵɵadvance(2);
379
239
  i0.ɵɵclassMap("app-grid");
380
- i0.ɵɵproperty("field", ctx.routingNumber)("form", _r0)("errDef", i0.ɵɵpureFunction4(76, _c3, ctx.required, ctx.validRoutingNumber, ctx.onlyNumbers, ctx.invalidRoutingNumber));
240
+ i0.ɵɵproperty("field", ctx.routingNumber)("form", _r0)("errDef", i0.ɵɵpureFunction0(59, _c3));
381
241
  i0.ɵɵadvance(6);
382
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(55, 65, ctx.bankName), " ");
242
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(50, 51, ctx.bankName), " ");
383
243
  i0.ɵɵadvance(6);
384
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(61, 67, "bank.account.number"));
244
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(56, 53, "Account Number"));
385
245
  i0.ɵɵadvance(3);
386
246
  i0.ɵɵproperty("formControl", ctx.accountNumber)("maxlength", 17)("feedback", false)("toggleMask", true);
387
247
  i0.ɵɵadvance(2);
388
248
  i0.ɵɵclassMap("app-grid");
389
- i0.ɵɵproperty("field", ctx.accountNumber)("form", _r0)("errDef", i0.ɵɵpureFunction5(81, _c4, ctx.required, ctx.acPattern, ctx.acValidNumber, ctx.acMaxlength, ctx.acMinLength));
249
+ i0.ɵɵproperty("field", ctx.accountNumber)("form", _r0)("errDef", i0.ɵɵpureFunction0(60, _c4));
390
250
  i0.ɵɵadvance(4);
391
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(70, 69, "bank.reenter.account"));
251
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(65, 55, "Re-enter Account"));
392
252
  i0.ɵɵadvance(3);
393
- i0.ɵɵproperty("formControl", ctx.reEnterAccountNumber)("feedback", false)("toggleMask", true);
253
+ i0.ɵɵproperty("formControl", ctx.reEnterAccountNumber)("maxlength", 17)("feedback", false)("toggleMask", true);
394
254
  i0.ɵɵadvance(2);
395
255
  i0.ɵɵclassMap("app-grid");
396
- i0.ɵɵproperty("field", ctx.reEnterAccountNumber)("form", _r0)("errDef", i0.ɵɵpureFunction5(87, _c5, ctx.required, ctx.acPattern, ctx.accountNumberComparisionValidation, ctx.acMaxlength, ctx.acMinLength));
397
- } }, dependencies: [i5.IonCol, i5.IonGrid, i5.IonRow, i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.MinLengthValidator, i1.MaxLengthValidator, i1.FormControlDirective, i1.FormGroupDirective, i6.Password, i7.InputText, i8.SelectButton, i9.ErrorComponent, i10.OverlayInfoComponent, i4.TranslatePipe, i11.ProperCasePipe], styles: [".col[_ngcontent-%COMP%]{padding-left:0;padding-top:0;padding-bottom:0;max-width:-moz-fit-content;max-width:fit-content}.form-lbl[_ngcontent-%COMP%]{padding-bottom:6px}.inline-flex[_ngcontent-%COMP%]{display:inline-flex}.account[_ngcontent-%COMP%]{min-width:150px}"] }); }
256
+ i0.ɵɵproperty("field", ctx.reEnterAccountNumber)("form", _r0)("errDef", i0.ɵɵpureFunction0(61, _c6));
257
+ } }, dependencies: [i4.IonCol, i4.IonGrid, i4.IonRow, i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.MaxLengthValidator, i1.FormControlDirective, i1.FormGroupDirective, i5.Password, i6.InputText, i7.SelectButton, i8.ErrorComponent, i9.OverlayInfoComponent, i10.TranslatePipe, i11.ProperCasePipe], styles: [".col[_ngcontent-%COMP%]{padding-left:0;padding-top:0;padding-bottom:0;max-width:-moz-fit-content;max-width:fit-content}.form-lbl[_ngcontent-%COMP%]{padding-bottom:6px}.inline-flex[_ngcontent-%COMP%]{display:inline-flex}"] }); }
398
258
  }
399
259
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BankDetailsComponent, [{
400
260
  type: Component,
@@ -407,10 +267,10 @@ export class BankDetailsComponent {
407
267
  provide: NG_VALIDATORS,
408
268
  multi: true,
409
269
  useExisting: BankDetailsComponent
410
- }], template: "<form [formGroup]=\"bankDetailsForm\" #bankDetailsFormDirective=\"ngForm\" style=\"margin-bottom: 0px; margin-left: 0px; margin-top: 6px;\">\r\n <ion-grid style=\"padding: 0px;\">\r\n <div class=\"p-formgrid\">\r\n <div class=\"field\">\r\n <label for=\"nameOnAccount\">{{'bank.account.name' | translate}}</label><br/>\r\n <input id=\"nameOnAccount\" type=\"text\" pInputText [formControl]=\"nameOnAccount\" maxlength=\"30\"/> \r\n <br/>\r\n <app-error [class]=\"'app-grid'\" [field]='nameOnAccount' [form]=\"bankDetailsFormDirective\"\r\n [errDef]=\"{ \r\n required: required,\r\n pattern: onlyLetters\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\">\r\n <label for=\"\">{{'bank.account.type' | translate}}</label><br/>\r\n <div style=\"display: inline-flex;\">\r\n <div>\r\n <p-selectButton [options]=\"accountTypeOptions\" [formControl]=\"accountType\" [multiple]=false\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='accountType' [form]=\"bankDetailsFormDirective\"\r\n [errDef]=\"{required: required}\"></app-error>\r\n </div>\r\n <div style=\"flex-grow: 1;\" style=\"padding-left: 8px\">\r\n <app-overlay-info>\r\n <div class=\"heading\">{{'bank.numbers' | translate}}</div>\r\n <div class=\"overlay-subheading ion-padding-top\">{{'bank.checking.account' | translate}}</div>\r\n <div class=\"overlay-desc ion-padding-top\">\r\n {{'bank.find.routing.number' | translate}}\r\n </div>\r\n <img alt=\"check image\" src=\"assets/icon/check.png\" class=\"ion-padding-top\"/>\r\n <div class=\"overlay-subheading ion-padding-top\">{{'bank.saving.account' | translate}}</div>\r\n <div class=\"overlay-desc ion-padding-top\">\r\n {{'bank.direct.deposit' | translate}}\r\n </div>\r\n </app-overlay-info>\r\n </div>\r\n </div>\r\n </div>\r\n <ion-row>\r\n <ion-col class=\"col\">\r\n <div class=\"field\">\r\n <label for=\"routingNumberInput\">{{'bank.routing.number' | translate}}</label><br/>\r\n <input id=\"routingNumberInput\" type=\"input\" pInputText [formControl]=\"routingNumber\" minlength=\"9\" maxlength=\"9\" inputmode=\"numeric\" \r\n oninput=\"this.value = this.value.replace(/\\D+/g, '')\" size=\"9\" \r\n (focusout)=\"routingNumberValidation($event)\"\r\n /> \r\n <br/>\r\n <!-- TCSUX-254 commented the check for valid bank account for routing number as KDOL doesnt need it-->\r\n <!-- <input id=\"routingNumber\" type=\"input\" pInputText [formControl]=\"routingNumber\" maxlength=\"9\"\r\n (blur)=\"fetchBankName($event)\" /><br/> -->\r\n <app-error [class]=\"'app-grid'\" [field]='routingNumber' [form]=\"bankDetailsFormDirective\"\r\n [errDef]=\"{ \r\n required: required,\r\n invalidLengthRouting: validRoutingNumber,\r\n hasRouting: onlyNumbers,\r\n isRoutingNumberNotValid: invalidRoutingNumber,\r\n \r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col>\r\n <div class=\"form-lbl\">\r\n <label for=\"routingNumber\">&nbsp;</label>\r\n </div>\r\n <div class=\"ion-padding-top ion-padding-bottom\">\r\n {{bankName | properCase}}\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"col\">\r\n <div class=\"field account\">\r\n <label for=\"bankAccountNumber\">{{'bank.account.number' | translate}}</label><br/>\r\n <p-password inputId=\"bankAccountNumber\" [formControl]=\"accountNumber\" \r\n [maxlength]=\"17\"\r\n (input)=\"sanitizeInput($event)\" \r\n (focusout)= \"accountNumberminlenghtvalidation($event)\" \r\n [feedback]=\"false\" [toggleMask]=\"true\" >\r\n </p-password> <br/>\r\n <app-error [class]=\"'app-grid'\" [field]='accountNumber' [form]=\"bankDetailsFormDirective\"\r\n [errDef]=\"{ \r\n required: required,\r\n pattern: acPattern,\r\n hasNumber: acValidNumber,\r\n maxlength: acMaxlength,\r\n minlength: acMinLength\r\n \r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col class=\"col\">\r\n <div class=\"field account\">\r\n <label for=\"reEnterAccountNumber\">{{'bank.reenter.account' | translate}}</label><br/>\r\n <p-password inputId=\"reEnterAccountNumber\" [formControl]=\"reEnterAccountNumber\" \r\n maxlength=\"17\"\r\n (input)=\"sanitizeInput($event)\"\r\n (focusout)=\"accountNumberComparision($event)\"\r\n [feedback]=\"false\" [toggleMask]=\"true\" size=\"17\"></p-password><br/>\r\n <app-error [class]=\"'app-grid'\" [field]='reEnterAccountNumber' [form]=\"bankDetailsFormDirective\"\r\n [errDef]=\"{ \r\n required: required,\r\n pattern: acPattern,\r\n accountNumbeComparision: accountNumberComparisionValidation,\r\n maxlength: acMaxlength,\r\n minlength: acMinLength\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n </div>\r\n </ion-grid>\r\n</form>", styles: [".col{padding-left:0;padding-top:0;padding-bottom:0;max-width:-moz-fit-content;max-width:fit-content}.form-lbl{padding-bottom:6px}.inline-flex{display:inline-flex}.account{min-width:150px}\n"] }]
411
- }], () => [{ type: i1.UntypedFormBuilder }, { type: i2.UtilService }, { type: i3.DmsService }, { type: i4.TranslateService }], { bankDetailsFormDirective: [{
270
+ }], template: "<form [formGroup]=\"bankDetailsForm\" #bankDetailsFormDirective=\"ngForm\" style=\"margin-bottom: 0px; margin-left: 0px; margin-top: 6px;\">\r\n <ion-grid style=\"padding: 0px;\">\r\n <div class=\"p-formgrid\">\r\n <div class=\"field\">\r\n <label for=\"\">{{'Name on Account' | translate}}</label><br/>\r\n <input id=\"nameOnAccount\" type=\"text\" pInputText [formControl]=\"nameOnAccount\" maxlength=\"30\"/> \r\n <br/>\r\n <app-error [class]=\"'app-grid'\" [field]='nameOnAccount' [form]=\"bankDetailsFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required.',\r\n pattern: 'please enter only letters'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\">\r\n <label for=\"\">{{'Account Type' | translate}}</label><br/>\r\n <div style=\"display: inline-flex;\">\r\n <div>\r\n <p-selectButton [options]=\"accountTypeOptions\" [formControl]=\"accountType\" [multiple]=false\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='accountType' [form]=\"bankDetailsFormDirective\"\r\n [errDef]=\"{required: 'required.'}\"></app-error>\r\n </div>\r\n <div style=\"flex-grow: 1;\" style=\"padding-left: 8px\">\r\n <app-overlay-info>\r\n <div class=\"heading\">Banking numbers</div>\r\n <div class=\"overlay-subheading ion-padding-top\">Checking Account</div>\r\n <div class=\"overlay-desc ion-padding-top\">\r\n Find your bank's routing number and your account number on the bottom of your personal checks.\r\n </div>\r\n <img alt=\"check image\" src=\"assets/icon/check1.png\" class=\"ion-padding-top\"/>\r\n <div class=\"overlay-subheading ion-padding-top\">Savings Account</div>\r\n <div class=\"overlay-desc ion-padding-top\">\r\n If you prefer direct deposit into a saving account and don't have a checking account with the same bank, call your bank to get the routing number. If you have a checking account at the same bank, the routing number is the same, but the account number is different.\r\n </div>\r\n </app-overlay-info>\r\n </div>\r\n </div>\r\n </div>\r\n <ion-row>\r\n <ion-col class=\"col\">\r\n <div class=\"field\">\r\n <label for=\"routingNumber\">{{'Routing Number' | translate}}</label><br/>\r\n <input id=\"routingNumber\" type=\"input\" pInputText [formControl]=\"routingNumber\" maxlength=\"9\"\r\n (blur)=\"fetchBankName($event)\" /><br/>\r\n <app-error [class]=\"'app-grid'\" [field]='routingNumber' [form]=\"bankDetailsFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required.',\r\n hasRouting:'Must be at least 9 digits.',\r\n isRoutingNumberNotValid: 'Invalid routing number.'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col>\r\n <div class=\"form-lbl\">\r\n <label for=\"routingNumber\">&nbsp;</label>\r\n </div>\r\n <div class=\"ion-padding-top ion-padding-bottom\">\r\n {{bankName | properCase}}\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"col\">\r\n <div class=\"field\">\r\n <label for=\"accountNumber\">{{'Account Number' | translate}}</label><br/>\r\n <p-password id=\"accountNumber\" [formControl]=\"accountNumber\" [maxlength]=\"17\"\r\n [feedback]=\"false\" [toggleMask]=\"true\"></p-password><br/>\r\n <app-error [class]=\"'app-grid'\" [field]='accountNumber' [form]=\"bankDetailsFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required.',\r\n pattern: 'enter only numbers.',\r\n hasNumber: 'valid number',\r\n maxlength: 'cannot exceed 17 characters'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col class=\"col\">\r\n <div class=\"field\">\r\n <label for=\"reEnterAccountNumber\">{{'Re-enter Account' | translate}}</label><br/>\r\n <p-password id=\"reEnterAccountNumber\" [formControl]=\"reEnterAccountNumber\" [maxlength]=\"17\"\r\n [feedback]=\"false\" [toggleMask]=\"true\"></p-password><br/>\r\n <app-error [class]=\"'app-grid'\" [field]='reEnterAccountNumber' [form]=\"bankDetailsFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required.',\r\n pattern: 'enter only numbers.',\r\n accountNumbeComparision:'Account Number and Re-enter Account Number should match',\r\n maxlength: 'cannot exceed 17 characters'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n </div>\r\n </ion-grid>\r\n</form>", styles: [".col{padding-left:0;padding-top:0;padding-bottom:0;max-width:-moz-fit-content;max-width:fit-content}.form-lbl{padding-bottom:6px}.inline-flex{display:inline-flex}\n"] }]
271
+ }], () => [{ type: i1.UntypedFormBuilder }, { type: i2.UtilService }, { type: i3.DmsService }], { bankDetailsFormDirective: [{
412
272
  type: ViewChild,
413
273
  args: ['bankDetailsFormDirective', { static: false }]
414
274
  }] }); })();
415
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BankDetailsComponent, { className: "BankDetailsComponent", filePath: "lib\\components\\bank-details\\bank-details.component.ts", lineNumber: 26 }); })();
416
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9iYW5rLWRldGFpbHMvYmFuay1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9iYW5rLWRldGFpbHMvYmFuay1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQXVGLGFBQWEsRUFBRSxpQkFBaUIsRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0wsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtCdEQsTUFBTSxPQUFPLG9CQUFvQjtJQW1CL0IsWUFBbUIsV0FBK0IsRUFBUSxJQUFrQixFQUNuRSxHQUFlLEVBQVMsZ0JBQW1DO1FBRGpELGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUFRLFNBQUksR0FBSixJQUFJLENBQWM7UUFDbkUsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUFTLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBbUI7UUFaN0QscUJBQWdCLEdBQW9CLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUlsRSw0QkFBdUIsR0FBbUI7WUFDeEMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFD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RUFBRSxJQUFJO3dCQUNYLFdBQVcsc0JBQXNCO3FCQUNsQyxDQUFDO3FJQUtLLHdCQUF3QjtrQkFEOUIsU0FBUzttQkFBQywwQkFBMEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7O2tGQUY3QyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBOZ0Zvcm0sIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0b3IsIFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQmFua0RldGFpbHNNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9CYW5rRGV0YWlsc01vZGVsJztcclxuaW1wb3J0IHsgRG1zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Rtcy1zZXJ2aWNlL2Rtcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcFZhbGlkYXRvcnMgfSBmcm9tICcuLi8uLi92YWxpZGF0aW9ucy9BcHBWYWxpZGF0b3JzJztcclxuaW1wb3J0IHsgQXBwUmVnZXggfSBmcm9tICcuLi8uLi92YWxpZGF0aW9ucy9BcHBSZWdleCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWJhbmstZGV0YWlscycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JhbmstZGV0YWlscy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYmFuay1kZXRhaWxzLmNvbXBvbmVudC5jc3MnXSxcclxuICBwcm92aWRlcnM6IFt7XHJcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgIHVzZUV4aXN0aW5nOiBCYW5rRGV0YWlsc0NvbXBvbmVudCxcclxuICAgIG11bHRpOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgbXVsdGk6IHRydWUsXHJcbiAgICB1c2VFeGlzdGluZzogQmFua0RldGFpbHNDb21wb25lbnRcclxuICB9XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhbmtEZXRhaWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95LCBWYWxpZGF0b3Ige1xyXG5cclxuICBAVmlld0NoaWxkKCdiYW5rRGV0YWlsc0Zvcm1EaXJlY3RpdmUnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBwdWJsaWMgYmFua0RldGFpbHNGb3JtRGlyZWN0aXZlOiBOZ0Zvcm07XHJcblxyXG4gIHB1YmxpYyBiYW5rRGV0YWlsc0Zvcm06IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgYWNjb3VudFR5cGVPcHRpb25zOiBhbnlbXTtcclxuXHJcbiAgcHVibGljIGJhbmtEZXRhaWxzTW9kZWw6IEJhbmtEZXRhaWxzTW9kZWw9IG5ldyBCYW5rRGV0YWlsc01vZGVsKCk7XHJcbiAgcHVibGljIGJhbmtOYW1lOiBzdHJpbmc7XHJcbiAgXHJcbiAgXHJcbiAgcm91dGluZ051bWJlclZhbGlkYXRvcnMgOiBWYWxpZGF0b3JGbltdID0gW1xyXG4gICAgVmFsaWRhdG9ycy5taW5MZW5ndGgoOSksIFxyXG4gICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoOSksIFxyXG4gICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcclxuICAgIEFwcFZhbGlkYXRvcnMuaXNWYWxpZExlbmd0aFJvdXRpbmdOdW1iZXJcclxuICBdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixwdWJsaWMgdXRpbCA6IFV0aWxTZXJ2aWNlLFxyXG4gICAgcHVibGljIGRtczogRG1zU2VydmljZSwgcHVibGljIHRyYW5zbGF0ZVNlcnZpY2UgOiBUcmFuc2xhdGVTZXJ2aWNlKSB7IFxyXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudXNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibGFuZ3VhZ2VcIikpO1xyXG4gICAgaWYobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsYW5ndWFnZVwiKSA9PT0gXCJlc1wiKXtcclxuICAgICAgdGhpcy5hY2NvdW50VHlwZU9wdGlvbnMgPSBbXHJcbiAgICAgICAgeyB0ZXh0OiAnY29ycmllbnRlJywgdmFsdWU6ICdDSEVDJyB9LFxyXG4gICAgICAgIHsgdGV4dDogJ2Fob3Jyb3MnLCB2YWx1ZTogJ1NBVkUnIH0sXHJcbiAgICAgIF07XHJcbiAgICB9ZWxzZSB7XHJcbiAgICAgIHRoaXMuYWNjb3VudFR5cGVPcHRpb25zID0gW1xyXG4gICAgICAgIHsgdGV4dDogJ2NoZWNraW5nJywgdmFsdWU6ICdDSEVDJyB9LFxyXG4gICAgICAgIHsgdGV4dDogJ3NhdmluZ3MnLCB2YWx1ZTogJ1NBVkUnIH0sXHJcbiAgICAgIF07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgXHJcbiAgICBjb25zb2xlLmxvZyhcImluc2lkZSBvbkluaXQgYmFua2RldGFpbHNjb21wb25lbnRcIik7XHJcbiAgICB0aGlzLmJhbmtEZXRhaWxzRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICAnbmFtZU9uQWNjb3VudCc6IFtudWxsLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybihBcHBSZWdleC5OQU1FX1JFR0VYKV0pXSxcclxuICAgICAgJ2FjY291bnRUeXBlJzogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAncm91dGluZ051bWJlcic6IFtudWxsLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKV0sXHJcbiAgICAgICdiYW5rTmFtZSc6IFtudWxsXSxcclxuICAgICAgJ2FjY291bnROdW1iZXInOiBbbnVsbCwgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oQXBwUmVnZXguQUNDT1VOVF9OVU1CRVJfUkVHRVgpLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxNyksIFZhbGlkYXRvcnMubWluKDgpXSldLFxyXG4gICAgICAncmVFbnRlckFjY291bnROdW1iZXInOiBbbnVsbCwgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oQXBwUmVnZXguQUNDT1VOVF9OVU1CRVJfUkVHRVgpLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxNyksIFZhbGlkYXRvcnMubWluKDgpXSldXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnNldEFjY291bnROdW1iZXJWYWxpZGF0b3IoKTtcclxuICB9XHJcblxyXG4gIHN1Ym1pdCgpe1xyXG5cclxuICAgIC8vY29uc29sZS5sb2coXCJ0aGlzLmJhbmtEZXRhaWxzRm9ybURpcmVjdGl2ZSA6IFwiK3RoaXMuYmFua0RldGFpbHNGb3JtRGlyZWN0aXZlKTtcclxuICAgIGlmKHRoaXMuYmFua0RldGFpbHNGb3JtRGlyZWN0aXZlKXtcclxuICAgICAgdGhpcy5iYW5rRGV0YWlsc0Zvcm1EaXJlY3RpdmUub25TdWJtaXQodW5kZWZpbmVkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICAvLyBNZXRob2QgdG8gcmVtb3ZlIG5vbi1kaWdpdCBjaGFyYWN0ZXJzIGR5bmFtaWNhbGx5XHJcbiAgICAvLyBQR0xQLTE3NTAgIGluIGNvcnJlY3QgUm91dGluZyBOVW1iZXIgIFxyXG4gICBzYW5pdGl6ZUlucHV0KGV2ZW50OmFueSkge1xyXG4gICAgbGV0IHZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlIHx8ICcnO1xyXG4gICAgbGV0IGZpZWxkTmFtZSA9IGV2ZW50LnRhcmdldC5pZDsgLy8gR2V0IGlucHV0IGZpZWxkIElEXHJcbiAgICBpZihmaWVsZE5hbWU9PT0nYmFua0FjY291bnROdW1iZXInKXtcclxuICAgICAgdGhpcy5hY2NvdW50TnVtYmVyLnNldFZhbHVlKHZhbHVlLnJlcGxhY2UoL1xcRCsvZywgJycpKTtcclxuICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKDAsIDE3KTsgLy8gVHJpbSBleGNlc3MgY2hhcmFjdGVyc1xyXG4gICAgICBpZih2YWx1ZS5sZW5ndGg8OCl7XHJcbiAgICAgICAgdGhpcy5iYW5rRGV0YWlsc0Zvcm0uY29udHJvbHNbJ2FjY291bnROdW1iZXInXS5zZXRFcnJvcnMoeyBtaW5sZW5ndGg6IHRydWUgfSk7ICAgICAgXHJcbiAgICAgICAgcmV0dXJuIHsgbWlubGVuZ3RoOiB0cnVlIH07ICAgXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmKGZpZWxkTmFtZT09PSdyZUVudGVyQWNjb3VudE51bWJlcicpe1xyXG4gICAgICB0aGlzLnJlRW50ZXJBY2NvdW50TnVtYmVyLnNldFZhbHVlKHZhbHVlLnJlcGxhY2UoL1xcRCsvZywgJycpKTtcclxuICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKDAsIDE3KTsgLy8gVHJpbSBleGNlc3MgY2hhcmFjdGVyc1xyXG4gICAgICBpZih2YWx1ZS5sZW5ndGg8OCl7XHJcbiAgICAgICAgdGhpcy5iYW5rRGV0YWlsc0Zvcm0uY29udHJvbHNbJ3JlRW50ZXJBY2NvdW50TnVtYmVyJ10uc2V0RXJyb3JzKHsgbWlubGVuZ3RoOiB0cnVlIH0pOyAgICAgIFxyXG4gICAgICAgIHJldHVybiB7IG1pbmxlbmd0aDogdHJ1ZSB9OyAgIFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAgXHJcbiAgICBcclxuXHJcbiAgfVxyXG5cclxuICBzZXRBY2NvdW50TnVtYmVyVmFsaWRhdG9yKCkge1xyXG4gICAgbGV0IHZhbGlkYXRvcnMxOiBWYWxpZGF0b3JGbltdID0gW107XHJcbiAgICBsZXQgaXNSb3V0aW5nTnVtYmVyTm90VmFsaWQ6IGJvb2xlYW47XHJcbiAgICB0aGlzLnJvdXRpbmdOdW1iZXJWYWxpZGF0b3JzLmZvckVhY2godiA9PiB2YWxpZGF0b3JzMS5wdXNoKHYpKTtcclxuICAgIHRoaXMudXRpbC5zZXRWYWxpZGF0aW9uKHRoaXMucm91dGluZ051bWJlciwgdGhpcy5yb3V0aW5nTnVtYmVyVmFsaWRhdG9ycyk7XHJcbiAgICBjb25zb2xlLmxvZyhcIlZhbGlkYXRvcnMgOiBcIit0aGlzLnJvdXRpbmdOdW1iZXJWYWxpZGF0b3JzKTtcclxuICAgIGNvbnN0IFJPVVRJTkdfTlVNQkVSOlJlZ0V4cCA9IC9eWzAtNF17MX1bMC05XXs4fSQvO1xyXG4gICAgdGhpcy51dGlsLnNldFZhbGlkYXRpb24odGhpcy5yb3V0aW5nTnVtYmVyLCB2YWxpZGF0b3JzMSk7XHJcbiAgICBcclxuICAgIHRoaXMudXRpbC5zZXRWYWxpZGF0aW9uKHRoaXMucm91dGluZ051bWJlciwgQXBwVmFsaWRhdG9ycy5pc1ZhbGlkUm91dGluZ051bWJlcik7XHJcbiAgICB0aGlzLnV0aWwuc2V0VmFsaWRhdGlvbih0aGlzLnJvdXRpbmdOdW1iZXIsIEFwcFZhbGlkYXRvcnMuaXNWYWxpZExlbmd0aFJvdXRpbmdOdW1iZXIpO1xyXG5cclxuICAgIHRoaXMucmVFbnRlckFjY291bnROdW1iZXIudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xyXG4gICAgICBpZiAodGhpcy5hY2NvdW50TnVtYmVyICYmICh0aGlzLmFjY291bnROdW1iZXIudmFsdWUgIT0gdGhpcy5yZUVudGVyQWNjb3VudE51bWJlci52YWx1ZSkpIHtcclxuICAgICAgICB0aGlzLmJhbmtEZXRhaWxzRm9ybS5jb250cm9sc1sncmVFbnRlckFjY291bnROdW1iZXInXS5zZXRFcnJvcnMoeyBhY2NvdW50TnVtYmVDb21wYXJpc2lvbjogdHJ1ZSB9KTtcclxuICAgICAgICByZXR1cm4geyBhY2NvdW50TnVtYmVDb21wYXJpc2lvbjogdHJ1ZSB9O1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnJvdXRpbmdOdW1iZXIudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xyXG4gICAgY29uc3QgdmFsaWQxID0gUk9VVElOR19OVU1CRVIudGVzdCh0aGlzLnJvdXRpbmdOdW1iZXIudmFsdWUpO1xyXG4gICAgICBpZiAoIXZhbGlkMSkge1xyXG4gICAgICAgIGlmKEFwcFZhbGlkYXRvcnMuaXNWYWxpZExlbmd0aFJvdXRpbmdOdW1iZXIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdGhpcy5iYW5rRGV0YWlsc0Zvcm0uY29udHJvbHNbJ3JvdXRpbmdOdW1iZXInXS5zZXRFcnJvcnMoe2ludmFsaWRMZW5ndGhSb3V0aW5nOiB0cnVlIH0pO1xyXG4gICAgICAgICAgdGhpcy5iYW5rRGV0YWlsc0Zvcm0uaW52YWxpZDtcclxuICAgICAgICAgIHJldHVybiB7IGludmFsaWRMZW5ndGhSb3V0aW5nOiB0cnVlIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgdGhpcy5iYW5rRGV0YWlsc0Zvcm0uY29udHJvbHNbJ3JvdXRpbmdOdW1iZXInXS5zZXRFcnJvcnMoeyBoYXNSb3V0aW5nOiB0cnVlIH0pO1xyXG4gICAgICAgIHRoaXMuYmFua0RldGFpbHNGb3JtLmludmFsaWQ7XHJcbiAgICAgICAgLy90aGlzLmJhbmtEZXRhaWxzRm9ybS5jb250cm9sc1snYWRkcmVzcyddLnNldEVycm9ycyh7IGJhbmtEZXRhaWxzVmFsaWRhdGlvbkZsYWc6IHRydWUgfSk7XHJcbiAgICAgICAgcmV0dXJuIHsgaGFzUm91dGluZzogdHJ1ZSB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXQgbmFtZU9uQWNjb3VudCgpIHtcclxuICAgIHJldHVybiB0aGlzLmJhbmtEZXRhaWxzRm9ybS5jb250cm9sc1snbmFtZU9uQWNjb3VudCddO1xyXG4gIH1cclxuICBnZXQgYWNjb3VudFR5cGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5iYW5rRGV0YWlsc0Zvcm0uY29udHJvbHNbJ2FjY291bnRUeXBlJ107XHJcbiAgfVxyXG4gIGdldCByb3V0aW5nTnVtYmVyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFua0RldGFpbHNGb3JtLmNvbnRyb2xzWydyb3V0aW5nTnVtYmVyJ107XHJcbiAgfVxyXG4gIGdldCBhY2NvdW50TnVtYmVyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFua0RldGFpbHNGb3JtLmNvbnRyb2xzWydhY2NvdW50TnVtYmVyJ107XHJcbiAgfVxyXG4gIGdldCBiYW5rTmFtZUNvbnRyb2woKSB7XHJcbiAgICByZXR1cm4gdGhpcy5iYW5rRGV0YWlsc0Zvcm0uY29udHJvbHNbJ2JhbmtOYW1lJ107XHJcbiAgfVxyXG4gIGdldCByZUVudGVyQWNjb3VudE51bWJlcigpIHtcclxuICAgIHJldHVybiB0aGlzLmJhbmtEZXRhaWxzRm9ybS5jb250cm9sc1sncmVFbnRlckFjY291bnROdW1iZXInXTtcclxuICB9XHJcblxyXG4gIG9uVG91Y2hlZDogRnVuY3Rpb24gPSAoKSA9PiB7IH07XHJcblxyXG4gIG9uQ2hhbmdlU3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBmb3IgKGxldCBzdWIgb2YgdGhpcy5vbkNoYW5nZVN1YnMpIHtcclxuICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiBhbnkpIHtcclxuICAgIGNvbnN0IHN1YiA9IHRoaXMuYmFua0RldGFpbHNGb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUob25DaGFuZ2UpO1xyXG4gICAgdGhpcy5vbkNoYW5nZVN1YnMucHVzaChzdWIpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiBGdW5jdGlvbikge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBvblRvdWNoZWQ7XHJcbiAgfSBcclxuICBcclxuICBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKSB7XHJcbiAgICBpZiAoZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5iYW5rRGV0YWlsc0Zvcm0uZGlzYWJsZSgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuYmFua0RldGFpbHNGb3JtLmVuYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5iYW5rRGV0YWlsc0Zvcm0uc2V0VmFsdWUodmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiYmFua0RldGFpbHNGb3JtIDogXCIrIHRoaXMuYmFua0RldGFpbHNGb3JtLmdldEVycm9yKTtcclxuICAgIGlmICh0aGlzLmJhbmtEZXRhaWxzRm9ybS52YWxpZCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZldGNoQmFua05hbWUoZXZlbnQpe1xyXG4gICAgaWYodGhpcy5yb3V0aW5nTnVtYmVyICYmIHRoaXMucm91dGluZ051bWJlci52YWx1ZSl7ICAgXHJcbiAgICAgIHRoaXMuZG1zXHJcbiAgICAgICAgLmdldEJhbmtOYW1lKHRoaXMucm91dGluZ051bWJlci52YWx1ZSlcclxuICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgcmVzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5iYW5rRGV0YWlsc01vZGVsID0gcmVzO1xyXG4gICAgICAgICAgICB0aGlzLmJhbmtOYW1lID0gcmVzLmJhbmtOYW1lO1xyXG4gICAgICAgICAgICB0aGlzLmJhbmtOYW1lQ29udHJvbC5zZXRWYWx1ZShyZXMuYmFua05hbWUpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuYmFua05hbWUgPSBcIm5vIGRhdGEgZm91bmQuXCI7XHJcbiAgICAgICAgICAgIHRoaXMuYmFua05hbWVDb250cm9sLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuIC8vIFBHTFAtMTc1MCAgaW4gY29ycmVjdCBSb3V0aW5nIE5VbWJlciAgXHJcbiAgLy8gQ2xlYXJzIHRoZSByZUVudGVyQWNjb3VudE51bWJlciB2YWx1ZSB3aGVuIGFjY291bnQgbnVtYmVyIGFuZCByZUVudGVyQWNjb3VudE51bWJlciBpcyBub3Qgc2FtZS5cclxuICBhY2NvdW50TnVtYmVyQ29tcGFyaXNpb24oZXZlbnQgOmFueSkge1xyXG4gICAgaWYgKHRoaXMuYWNjb3VudE51bWJlciAmJiAodGhpcy5hY2NvdW50TnVtYmVyLnZhbHVlICE9IHRoaXMucmVFbnRlckFjY291bnROdW1iZXIudmFsdWUpKSB7XHJcbiAgICAgIHRoaXMucmVFbnRlckFjY291bnROdW1iZXIuc2V0VmFsdWUobnVsbCk7ICAgICAgIFxyXG4gIH1cclxufVxyXG4gLy8gUEdMUC0xNzUwICBpbiBjb3JyZWN0IFJvdXRpbmcgTlVtYmVyICBcclxuICAvLyBDbGVhcnMgdGhlIHJlRW50ZXJBY2NvdW50TnVtYmVyIHZhbHVlIHdoZW4gYWNjb3VudCBudW1iZXIgYW5kIHJlRW50ZXJBY2NvdW50TnVtYmVyIGlzIG5vdCBzYW1lLlxyXG4gIGFjY291bnROdW1iZXJtaW5sZW5naHR2YWxpZGF0aW9uKGV2ZW50IDphbnkpIHtcclxuICAgIGlmICh0aGlzLmFjY291bnROdW1iZXIudmFsdWUubGVuZ3RoPDgpIHsgIFxyXG4gICAgICB0aGlzLmFjY291bnROdW1iZXIuc2V0VmFsdWUobnVsbCk7IFxyXG5cclxuICB9XHJcbn1cclxuXHJcblxyXG4gLy8gUEdMUC0xNzUwICBpbiBjb3JyZWN0IFJvdXRpbmcgTlVtYmVyICBcclxuICAvLyAgaWYgRW50ZXJlZCBSb3V0aW5nTnVtYmVyIHZhbHVlIGlzIG5vdCB2YWxpZGF0ZWQgd2l0aCBnaXZlbiBSZWdFeHAgdGhlbiAsUm91dGluZ051bWJlciB2YWx1ZSBpcyBzZXQgYXMgYSBudWxsXHJcbiAgcm91dGluZ051bWJlclZhbGlkYXRpb24oZXZlbnQgOmFueSkge1xyXG4gICAgY29uc3QgUk9VVElOR19OVU1CRVI6UmVnRXhwID0gL15bMC00XXsxfVswLTldezh9JC87ICAgXHJcbiAgICAgIGNvbnN0IHZhbGlkMSA9IFJPVVRJTkdfTlVNQkVSLnRlc3QodGhpcy5yb3V0aW5nTnVtYmVyLnZhbHVlKTsgICAgIFxyXG4gICAgICAgIGlmICghdmFsaWQxKSB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRpbmdOdW1iZXIuc2V0VmFsdWUobnVsbCk7ICBcclxuICAgICAgICB9XHJcbiAgICAgICBpZih2YWxpZDEpe1xyXG4gICAgICAgICAgaWYoQXBwVmFsaWRhdG9ycy5pc1ZhbGlkUm91dGluZ051bWJlcih0aGlzLnJvdXRpbmdOdW1iZXIpKXtcclxuICAgICAgICAgICAgdGhpcy5yb3V0aW5nTnVtYmVyLnNldFZhbHVlKG51bGwpOyAgXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG59XHJcblxyXG5cclxuICBnZXQgcmVxdWlyZWQoKXtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnY29tbW9uLnJlcXVpcmVkJyk7XHJcbiAgfVxyXG5cclxuICBnZXQgb25seU51bWJlcnMoKXsgXHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2NvbW1vbi5vbmx5Lm51bWJlcnMnKTtcclxuICB9XHJcbiAgZ2V0IG9ubHlMZXR0ZXJzKCl7IFxyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdjb21tb24ub25seS5sZXR0ZXJzJyk7XHJcbiAgfVxyXG5cclxuICBnZXQgYWNjb3VudE1hdGNoKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2JhbmsuYWNjb3VudC5tYXRjaCcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFjY291bnRNYXgoKXtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnYmFuay5hY2NvdW50Lm1heCcpO1xyXG4gIH1cclxuICBnZXQgdmFsaWROdW1iZXIoKXtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnYmFuay52YWxpZC5udW1iZXInKTtcclxuICB9XHJcblxyXG4gIGdldCByb3V0aW5nTnVtYmVySW52YWxpZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdiYW5rLnJvdXRpbmcubnVtYmVyLmludmFsaWQnKTtcclxuICB9XHJcblxyXG4gIGdldCB2YWxpZFJvdXRpbmdOdW1iZXIoKXtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnYmFuay52YWxpZGF0aW9uLnJvdXRpbmcubnVtYmVyJyk7XHJcbiAgfVxyXG5cclxuICBnZXQgaW52YWxpZFJvdXRpbmdOdW1iZXIoKXtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnYmFuay52YWxpZGF0aW9uLnJvdXRpbmcubnVtYmVyLmludmFsaWQnKTtcclxuICB9XHJcblxyXG4gIGdldCBhY1BhdHRlcm4oKXtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnYmFuay52YWxpZGF0aW9uLmFjLnBhdHRlcm4nKTtcclxuICB9XHJcblxyXG4gIGdldCBhY1ZhbGlkTnVtYmVyKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2JhbmsudmFsaWRhdGlvbi5hYy52YWxpZC5udW1iZXInKTtcclxuICB9XHJcblxyXG4gIGdldCBhY01heGxlbmd0aCgpe1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdiYW5rLnZhbGlkYXRpb24uYWMubWF4bGVuZ3RoJyk7XHJcbiAgfVxyXG5cclxuICBnZXQgYWNNaW5MZW5ndGgoKXtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnYmFuay52YWxpZGF0aW9uLmFjLm1pbmxlbmd0aCcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFjY291bnROdW1iZXJDb21wYXJpc2lvblZhbGlkYXRpb24oKXtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnYmFuay52YWxpZGF0aW9uLmFjLm51bWJlci5jb21wYXJpc2lvbicpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImJhbmtEZXRhaWxzRm9ybVwiICNiYW5rRGV0YWlsc0Zvcm1EaXJlY3RpdmU9XCJuZ0Zvcm1cIiBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgbWFyZ2luLXRvcDogNnB4O1wiPlxyXG4gICAgPGlvbi1ncmlkIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLWZvcm1ncmlkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIm5hbWVPbkFjY291bnRcIj57eydiYW5rLmFjY291bnQubmFtZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+PGJyLz5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cIm5hbWVPbkFjY291bnRcIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cIm5hbWVPbkFjY291bnRcIiBtYXhsZW5ndGg9XCIzMFwiLz4gIFxyXG4gICAgICAgICAgICAgICAgPGJyLz5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSduYW1lT25BY2NvdW50JyBbZm9ybV09XCJiYW5rRGV0YWlsc0Zvcm1EaXJlY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybjogb25seUxldHRlcnNcclxuICAgICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIj57eydiYW5rLmFjY291bnQudHlwZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+PGJyLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBpbmxpbmUtZmxleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gW29wdGlvbnNdPVwiYWNjb3VudFR5cGVPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImFjY291bnRUeXBlXCIgW211bHRpcGxlXT1mYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdhY2NvdW50VHlwZScgW2Zvcm1dPVwiYmFua0RldGFpbHNGb3JtRGlyZWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJEZWZdPVwie3JlcXVpcmVkOiAgcmVxdWlyZWR9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmdcIj57eydiYW5rLm51bWJlcnMnIHwgdHJhbnNsYXRlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5LXN1YmhlYWRpbmcgaW9uLXBhZGRpbmctdG9wXCI+e3snYmFuay5jaGVja2luZy5hY2NvdW50JyB8IHRyYW5zbGF0ZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheS1kZXNjIGlvbi1wYWRkaW5nLXRvcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7J2JhbmsuZmluZC5yb3V0aW5nLm51bWJlcicgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGFsdD1cImNoZWNrIGltYWdlXCIgc3JjPVwiYXNzZXRzL2ljb24vY2hlY2sucG5nXCIgY2xhc3M9XCJpb24tcGFkZGluZy10b3BcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheS1zdWJoZWFkaW5nIGlvbi1wYWRkaW5nLXRvcFwiPnt7J2Jhbmsuc2F2aW5nLmFjY291bnQnIHwgdHJhbnNsYXRlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5LWRlc2MgaW9uLXBhZGRpbmctdG9wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3snYmFuay5kaXJlY3QuZGVwb3NpdCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicm91dGluZ051bWJlcklucHV0XCI+e3snYmFuay5yb3V0aW5nLm51bWJlcicgfCB0cmFuc2xhdGV9fTwvbGFiZWw+PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwicm91dGluZ051bWJlcklucHV0XCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwicm91dGluZ051bWJlclwiIG1pbmxlbmd0aD1cIjlcIiBtYXhsZW5ndGg9XCI5XCIgIGlucHV0bW9kZT1cIm51bWVyaWNcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgb25pbnB1dD1cInRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLnJlcGxhY2UoL1xcRCsvZywgJycpXCIgc2l6ZT1cIjlcIiBcclxuICAgICAgICAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJyb3V0aW5nTnVtYmVyVmFsaWRhdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgPGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBUQ1NVWC0yNTQgY29tbWVudGVkIHRoZSBjaGVjayBmb3IgdmFsaWQgYmFuayBhY2NvdW50IGZvciByb3V0aW5nIG51bWJlciBhcyBLRE9MIGRvZXNudCBuZWVkIGl0LS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8aW5wdXQgaWQ9XCJyb3V0aW5nTnVtYmVyXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwicm91dGluZ051bWJlclwiIG1heGxlbmd0aD1cIjlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChibHVyKT1cImZldGNoQmFua05hbWUoJGV2ZW50KVwiIC8+PGJyLz4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3JvdXRpbmdOdW1iZXInIFtmb3JtXT1cImJhbmtEZXRhaWxzRm9ybURpcmVjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW52YWxpZExlbmd0aFJvdXRpbmc6IHZhbGlkUm91dGluZ051bWJlcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNSb3V0aW5nOiBvbmx5TnVtYmVycyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1JvdXRpbmdOdW1iZXJOb3RWYWxpZDogaW52YWxpZFJvdXRpbmdOdW1iZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWxibFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicm91dGluZ051bWJlclwiPiZuYnNwOzwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nLXRvcCBpb24tcGFkZGluZy1ib3R0b21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tiYW5rTmFtZSB8IHByb3BlckNhc2V9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgYWNjb3VudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiYmFua0FjY291bnROdW1iZXJcIj57eydiYW5rLmFjY291bnQubnVtYmVyJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cC1wYXNzd29yZCBpbnB1dElkPVwiYmFua0FjY291bnROdW1iZXJcIiBbZm9ybUNvbnRyb2xdPVwiYWNjb3VudE51bWJlclwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW21heGxlbmd0aF09XCIxN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJzYW5pdGl6ZUlucHV0KCRldmVudClcIiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGZvY3Vzb3V0KT0gXCJhY2NvdW50TnVtYmVybWlubGVuZ2h0dmFsaWRhdGlvbigkZXZlbnQpXCIgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmZWVkYmFja109XCJmYWxzZVwiIFt0b2dnbGVNYXNrXT1cInRydWVcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wLXBhc3N3b3JkPiA8YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nYWNjb3VudE51bWJlcicgW2Zvcm1dPVwiYmFua0RldGFpbHNGb3JtRGlyZWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuOiBhY1BhdHRlcm4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc051bWJlcjogYWNWYWxpZE51bWJlcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoOiBhY01heGxlbmd0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlubGVuZ3RoOiBhY01pbkxlbmd0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBhY2NvdW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJyZUVudGVyQWNjb3VudE51bWJlclwiPnt7J2JhbmsucmVlbnRlci5hY2NvdW50JyB8IHRyYW5zbGF0ZX19PC9sYWJlbD48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cC1wYXNzd29yZCBpbnB1dElkPVwicmVFbnRlckFjY291bnROdW1iZXJcIiBbZm9ybUNvbnRyb2xdPVwicmVFbnRlckFjY291bnROdW1iZXJcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwic2FuaXRpemVJbnB1dCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGZvY3Vzb3V0KT1cImFjY291bnROdW1iZXJDb21wYXJpc2lvbigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZWVkYmFja109XCJmYWxzZVwiIFt0b2dnbGVNYXNrXT1cInRydWVcIiBzaXplPVwiMTdcIj48L3AtcGFzc3dvcmQ+PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3JlRW50ZXJBY2NvdW50TnVtYmVyJyBbZm9ybV09XCJiYW5rRGV0YWlsc0Zvcm1EaXJlY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybjogYWNQYXR0ZXJuLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudE51bWJlQ29tcGFyaXNpb246IGFjY291bnROdW1iZXJDb21wYXJpc2lvblZhbGlkYXRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGg6IGFjTWF4bGVuZ3RoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlubGVuZ3RoOiBhY01pbkxlbmd0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9pb24tZ3JpZD5cclxuPC9mb3JtPiJdfQ==
275
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BankDetailsComponent, { className: "BankDetailsComponent", filePath: "lib\\components\\bank-details\\bank-details.component.ts", lineNumber: 25 }); })();
276
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9iYW5rLWRldGFpbHMvYmFuay1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9iYW5rLWRldGFpbHMvYmFuay1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQXVGLGFBQWEsRUFBRSxpQkFBaUIsRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0wsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpQnRELE1BQU0sT0FBTyxvQkFBb0I7SUFpQi9CLFlBQW1CLFdBQStCLEVBQVEsSUFBa0IsRUFDbkUsR0FBZTtRQURMLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUFRLFNBQUksR0FBSixJQUFJLENBQWM7UUFDbkUsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQVZqQixxQkFBZ0IsR0FBb0IsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1FBR2xFLDRCQUF1QixHQUFtQjtZQUN4QyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN2QixVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN2QixVQUFVLENBQUMsUUFBUTtTQUNwQixDQUFDO1FBeUVGLGNBQVMsR0FB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QWtDO1lBQzlCLGVBQW9DO1lBQXBDLHNEQUFvQyxpQkFBQSxtQkFBQSxvQkFBQTtZQUUvRCxlQUFvQjtZQUFwQix5QkFBb0I7WUFBQyxnREFBOEIsYUFBQSx1Q0FBQTs7O2lGRHpEekUsb0JBQW9CO2NBZmhDLFNBQVM7MkJBQ0Usa0JBQWtCLGFBR2pCLENBQUM7d0JBQ1YsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyxzQkFBc0I7d0JBQ2pDLEtBQUssRUFBRSxJQUFJO3FCQUNaO29CQUNEO3dCQUNFLE9BQU8sRUFBRSxhQUFhO3dCQUN0QixLQUFLLEVBQUUsSUFBSTt3QkFDWCxXQUFXLHNCQUFzQjtxQkFDbEMsQ0FBQztzR0FLSyx3QkFBd0I7a0JBRDlCLFNBQVM7bUJBQUMsMEJBQTBCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOztrRkFGN0Msb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIE5nRm9ybSwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRvciwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhbmtEZXRhaWxzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvQmFua0RldGFpbHNNb2RlbCc7XG5pbXBvcnQgeyBEbXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZG1zLXNlcnZpY2UvZG1zLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBWYWxpZGF0b3JzIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbnMvQXBwVmFsaWRhdG9ycyc7XG5pbXBvcnQgeyBBcHBSZWdleCB9IGZyb20gJy4uLy4uL3ZhbGlkYXRpb25zL0FwcFJlZ2V4JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWJhbmstZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9iYW5rLWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iYW5rLWRldGFpbHMuY29tcG9uZW50LmNzcyddLFxuICBwcm92aWRlcnM6IFt7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IEJhbmtEZXRhaWxzQ29tcG9uZW50LFxuICAgIG11bHRpOiB0cnVlXG4gIH0sXG4gIHtcbiAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgIG11bHRpOiB0cnVlLFxuICAgIHVzZUV4aXN0aW5nOiBCYW5rRGV0YWlsc0NvbXBvbmVudFxuICB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQmFua0RldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3ksIFZhbGlkYXRvciB7XG5cbiAgQFZpZXdDaGlsZCgnYmFua0RldGFpbHNGb3JtRGlyZWN0aXZlJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyBiYW5rRGV0YWlsc0Zvcm1EaXJlY3RpdmU6IE5nRm9ybTtcblxuICBwdWJsaWMgYmFua0RldGFpbHNGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBhY2NvdW50VHlwZU9wdGlvbnM6IGFueVtdO1xuXG4gIHB1YmxpYyBiYW5rRGV0YWlsc01vZGVsOiBCYW5rRGV0YWlsc01vZGVsPSBuZXcgQmFua0RldGFpbHNNb2RlbCgpO1xuICBwdWJsaWMgYmFua05hbWU6IHN0cmluZztcbiAgXG4gIHJvdXRpbmdOdW1iZXJWYWxpZGF0b3JzIDogVmFsaWRhdG9yRm5bXSA9IFtcbiAgICBWYWxpZGF0b3JzLm1pbkxlbmd0aCg5KSwgXG4gICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoOSksIFxuICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgXTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixwdWJsaWMgdXRpbCA6IFV0aWxTZXJ2aWNlLFxuICAgIHB1YmxpYyBkbXM6IERtc1NlcnZpY2UpIHsgXG4gICAgdGhpcy5hY2NvdW50VHlwZU9wdGlvbnMgPSBbXG4gICAgICB7IHRleHQ6ICdjaGVja2luZycsIHZhbHVlOiAnQ0hFQycgfSxcbiAgICAgIHsgdGV4dDogJ3NhdmluZ3MnLCB2YWx1ZTogJ1NBVkUnIH0sXG4gICAgXTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYmFua0RldGFpbHNGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAnbmFtZU9uQWNjb3VudCc6IFtudWxsLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybihBcHBSZWdleC5OQU1FX1JFR0VYKV0pXSxcbiAgICAgICdhY2NvdW50VHlwZSc6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICdyb3V0aW5nTnVtYmVyJzogW251bGwsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKEFwcFJlZ2V4LkFDQ09VTlRfTlVNQkVSX1JFR0VYKV0pXSxcbiAgICAgICdiYW5rTmFtZSc6IFtudWxsXSxcbiAgICAgICdhY2NvdW50TnVtYmVyJzogW251bGwsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKEFwcFJlZ2V4LkFDQ09VTlRfTlVNQkVSX1JFR0VYKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTcpXSldLFxuICAgICAgJ3JlRW50ZXJBY2NvdW50TnVtYmVyJzogW251bGwsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKEFwcFJlZ2V4LkFDQ09VTlRfTlVNQkVSX1JFR0VYKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTcpXSldXG4gICAgfSk7XG5cbiAgICB0aGlzLnNldEFjY291bnROdW1iZXJWYWxpZGF0b3IoKTtcbiAgfVxuXG4gIHN1Ym1pdCgpe1xuICAgIGlmKHRoaXMuYmFua0RldGFpbHNGb3JtRGlyZWN0aXZlKXtcbiAgICAgIHRoaXMuYmFua0RldGFpbHNGb3JtRGlyZWN0aXZlLm9uU3VibWl0KHVuZGVmaW5lZCk7XG4gICAgfVxuICB9XG5cbiAgc2V0QWNjb3VudE51bWJlclZhbGlkYXRvcigpIHtcbiAgICBsZXQgdmFsaWRhdG9yczE6IFZhbGlkYXRvckZuW10gPSBbXTtcbiAgICBsZXQgaXNSb3V0aW5nTnVtYmVyTm90VmFsaWQ6IGJvb2xlYW47XG4gICAgdGhpcy5yb3V0aW5nTnVtYmVyVmFsaWRhdG9ycy5mb3JFYWNoKHYgPT4gdmFsaWRhdG9yczEucHVzaCh2KSk7XG4gICAgY29uc3QgUk9VVElOR19OVU1CRVI6UmVnRXhwID0gL15bMC00XXsxfVswLTldezh9JC87XG4gICAgdGhpcy51dGlsLnNldFZhbGlkYXRpb24odGhpcy5yb3V0aW5nTnVtYmVyLCB2YWxpZGF0b3JzMSk7XG4gICAgXG4gICAgdGhpcy51dGlsLnNldFZhbGlkYXRpb24odGhpcy5yb3V0aW5nTnVtYmVyLCBBcHBWYWxpZGF0b3JzLmlzVmFsaWRSb3V0aW5nTnVtYmVyKTtcblxuICAgIHRoaXMucmVFbnRlckFjY291bnROdW1iZXIudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xuICAgICAgaWYgKHRoaXMuYWNjb3VudE51bWJlciAmJiAodGhpcy5hY2NvdW50TnVtYmVyLnZhbHVlICE9IHRoaXMucmVFbnRlckFjY291bnROdW1iZXIudmFsdWUpKSB7XG4gICAgICAgIHRoaXMuYmFua0RldGFpbHNGb3JtLmNvbnRyb2xzWydyZUVudGVyQWNjb3VudE51bWJlciddLnNldEVycm9ycyh7IGFjY291bnROdW1iZUNvbXBhcmlzaW9uOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4geyBhY2NvdW50TnVtYmVDb21wYXJpc2lvbjogdHJ1ZSB9O1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5yb3V0aW5nTnVtYmVyLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcbiAgICBjb25zdCB2YWxpZDEgPSBST1VUSU5HX05VTUJFUi50ZXN0KHRoaXMucm91dGluZ051bWJlci52YWx1ZSk7XG4gICAgICBpZiAoIXZhbGlkMSkge1xuICAgICAgICB0aGlzLmJhbmtEZXRhaWxzRm9ybS5jb250cm9sc1sncm91dGluZ051bWJlciddLnNldEVycm9ycyh7IGhhc1JvdXRpbmc6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiB7IGhhc1JvdXRpbmc6IHRydWUgfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldCBuYW1lT25BY2NvdW50KCkge1xuICAgIHJldHVybiB0aGlzLmJhbmtEZXRhaWxzRm9ybS5jb250cm9sc1snbmFtZU9uQWNjb3VudCddO1xuICB9XG4gIGdldCBhY2NvdW50VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5iYW5rRGV0YWlsc0Zvcm0uY29udHJvbHNbJ2FjY291bnRUeXBlJ107XG4gIH1cbiAgZ2V0IHJvdXRpbmdOdW1iZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFua0RldGFpbHNGb3JtLmNvbnRyb2xzWydyb3V0aW5nTnVtYmVyJ107XG4gIH1cbiAgZ2V0IGFjY291bnROdW1iZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFua0RldGFpbHNGb3JtLmNvbnRyb2xzWydhY2NvdW50TnVtYmVyJ107XG4gIH1cbiAgZ2V0IGJhbmtOYW1lQ29udHJvbCgpIHtcbiAgICByZXR1cm4gdGhpcy5iYW5rRGV0YWlsc0Zvcm0uY29udHJvbHNbJ2JhbmtOYW1lJ107XG4gIH1cbiAgZ2V0IHJlRW50ZXJBY2NvdW50TnVtYmVyKCkge1xuICAgIHJldHVybiB0aGlzLmJhbmtEZXRhaWxzRm9ybS5jb250cm9sc1sncmVFbnRlckFjY291bnROdW1iZXInXTtcbiAgfVxuXG4gIG9uVG91Y2hlZDogRnVuY3Rpb24gPSAoKSA9PiB7IH07XG5cbiAgb25DaGFuZ2VTdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGZvciAobGV0IHN1YiBvZiB0aGlzLm9uQ2hhbmdlU3Vicykge1xuICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogYW55KSB7XG4gICAgY29uc3Qgc3ViID0gdGhpcy5iYW5rRGV0YWlsc0Zvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZShvbkNoYW5nZSk7XG4gICAgdGhpcy5vbkNoYW5nZVN1YnMucHVzaChzdWIpO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiBGdW5jdGlvbikge1xuICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xuICB9IFxuICBcbiAgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbikge1xuICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgdGhpcy5iYW5rRGV0YWlsc0Zvcm0uZGlzYWJsZSgpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuYmFua0RldGFpbHNGb3JtLmVuYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5iYW5rRGV0YWlsc0Zvcm0uc2V0VmFsdWUodmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9XG4gIH1cblxuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkge1xuICAgIFxuICAgIGlmICh0aGlzLmJhbmtEZXRhaWxzRm9ybS52YWxpZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgZmV0Y2hCYW5rTmFtZShldmVudCl7XG4gICAgaWYodGhpcy5yb3V0aW5nTnVtYmVyICYmIHRoaXMucm91dGluZ051bWJlci52YWx1ZSl7ICAgXG4gICAgICB0aGlzLmRtc1xuICAgICAgICAuZ2V0QmFua05hbWUodGhpcy5yb3V0aW5nTnVtYmVyLnZhbHVlKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLmJhbmtEZXRhaWxzTW9kZWwgPSByZXM7XG4gICAgICAgICAgICB0aGlzLmJhbmtOYW1lID0gcmVzLmJhbmtOYW1lO1xuICAgICAgICAgICAgdGhpcy5iYW5rTmFtZUNvbnRyb2wuc2V0VmFsdWUocmVzLmJhbmtOYW1lKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgICB0aGlzLmJhbmtOYW1lID0gXCJObyBNYXRjaGluZyBSb3V0aW5nIE51bWJlcnMuXCI7XG4gICAgICAgICAgICB0aGlzLmJhbmtOYW1lQ29udHJvbC5zZXRWYWx1ZShudWxsKTtcbiAgICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG5cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiYmFua0RldGFpbHNGb3JtXCIgI2JhbmtEZXRhaWxzRm9ybURpcmVjdGl2ZT1cIm5nRm9ybVwiIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyBtYXJnaW4tdG9wOiA2cHg7XCI+XHJcbiAgICA8aW9uLWdyaWQgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInAtZm9ybWdyaWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiXCI+e3snTmFtZSBvbiBBY2NvdW50JyB8IHRyYW5zbGF0ZX19PC9sYWJlbD48YnIvPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGlkPVwibmFtZU9uQWNjb3VudFwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwibmFtZU9uQWNjb3VudFwiIG1heGxlbmd0aD1cIjMwXCIvPiAgXHJcbiAgICAgICAgICAgICAgICA8YnIvPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J25hbWVPbkFjY291bnQnIFtmb3JtXT1cImJhbmtEZXRhaWxzRm9ybURpcmVjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm46ICdwbGVhc2UgZW50ZXIgb25seSBsZXR0ZXJzJ1xyXG4gICAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiPnt7J0FjY291bnQgVHlwZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+PGJyLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBpbmxpbmUtZmxleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gW29wdGlvbnNdPVwiYWNjb3VudFR5cGVPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImFjY291bnRUeXBlXCIgW211bHRpcGxlXT1mYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdhY2NvdW50VHlwZScgW2Zvcm1dPVwiYmFua0RldGFpbHNGb3JtRGlyZWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJEZWZdPVwie3JlcXVpcmVkOiAncmVxdWlyZWQuJ31cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZ1wiPkJhbmtpbmcgbnVtYmVyczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJsYXktc3ViaGVhZGluZyBpb24tcGFkZGluZy10b3BcIj5DaGVja2luZyBBY2NvdW50PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheS1kZXNjIGlvbi1wYWRkaW5nLXRvcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbmQgeW91ciBiYW5rJ3Mgcm91dGluZyBudW1iZXIgYW5kIHlvdXIgYWNjb3VudCBudW1iZXIgb24gdGhlIGJvdHRvbSBvZiB5b3VyIHBlcnNvbmFsIGNoZWNrcy5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBhbHQ9XCJjaGVjayBpbWFnZVwiIHNyYz1cImFzc2V0cy9pY29uL2NoZWNrMS5wbmdcIiBjbGFzcz1cImlvbi1wYWRkaW5nLXRvcFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5LXN1YmhlYWRpbmcgaW9uLXBhZGRpbmctdG9wXCI+U2F2aW5ncyBBY2NvdW50PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheS1kZXNjIGlvbi1wYWRkaW5nLXRvcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHlvdSBwcmVmZXIgZGlyZWN0IGRlcG9zaXQgaW50byBhIHNhdmluZyBhY2NvdW50IGFuZCBkb24ndCBoYXZlIGEgY2hlY2tpbmcgYWNjb3VudCB3aXRoIHRoZSBzYW1lIGJhbmssIGNhbGwgeW91ciBiYW5rIHRvIGdldCB0aGUgcm91dGluZyBudW1iZXIuICBJZiB5b3UgaGF2ZSBhIGNoZWNraW5nIGFjY291bnQgYXQgdGhlIHNhbWUgYmFuaywgdGhlIHJvdXRpbmcgbnVtYmVyIGlzIHRoZSBzYW1lLCBidXQgdGhlIGFjY291bnQgbnVtYmVyIGlzIGRpZmZlcmVudC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJvdXRpbmdOdW1iZXJcIj57eydSb3V0aW5nIE51bWJlcicgfCB0cmFuc2xhdGV9fTwvbGFiZWw+PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwicm91dGluZ051bWJlclwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cInJvdXRpbmdOdW1iZXJcIiBtYXhsZW5ndGg9XCI5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJmZXRjaEJhbmtOYW1lKCRldmVudClcIiAvPjxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3JvdXRpbmdOdW1iZXInIFtmb3JtXT1cImJhbmtEZXRhaWxzRm9ybURpcmVjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzUm91dGluZzonTXVzdCBiZSBhdCBsZWFzdCA5IGRpZ2l0cy4nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUm91dGluZ051bWJlck5vdFZhbGlkOiAnSW52YWxpZCByb3V0aW5nIG51bWJlci4nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1sYmxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJvdXRpbmdOdW1iZXJcIj4mbmJzcDs8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZy10b3AgaW9uLXBhZGRpbmctYm90dG9tXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7YmFua05hbWUgfCBwcm9wZXJDYXNlfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJhY2NvdW50TnVtYmVyXCI+e3snQWNjb3VudCBOdW1iZXInIHwgdHJhbnNsYXRlfX08L2xhYmVsPjxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLXBhc3N3b3JkIGlkPVwiYWNjb3VudE51bWJlclwiIFtmb3JtQ29udHJvbF09XCJhY2NvdW50TnVtYmVyXCIgW21heGxlbmd0aF09XCIxN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZWVkYmFja109XCJmYWxzZVwiIFt0b2dnbGVNYXNrXT1cInRydWVcIj48L3AtcGFzc3dvcmQ+PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2FjY291bnROdW1iZXInIFtmb3JtXT1cImJhbmtEZXRhaWxzRm9ybURpcmVjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQuJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybjogJ2VudGVyIG9ubHkgbnVtYmVycy4nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNOdW1iZXI6ICd2YWxpZCBudW1iZXInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGg6ICdjYW5ub3QgZXhjZWVkIDE3IGNoYXJhY3RlcnMnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJlRW50ZXJBY2NvdW50TnVtYmVyXCI+e3snUmUtZW50ZXIgQWNjb3VudCcgfCB0cmFuc2xhdGV9fTwvbGFiZWw+PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtcGFzc3dvcmQgaWQ9XCJyZUVudGVyQWNjb3VudE51bWJlclwiIFtmb3JtQ29udHJvbF09XCJyZUVudGVyQWNjb3VudE51bWJlclwiIFttYXhsZW5ndGhdPVwiMTdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZlZWRiYWNrXT1cImZhbHNlXCIgW3RvZ2dsZU1hc2tdPVwidHJ1ZVwiPjwvcC1wYXNzd29yZD48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncmVFbnRlckFjY291bnROdW1iZXInIFtmb3JtXT1cImJhbmtEZXRhaWxzRm9ybURpcmVjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuOiAnZW50ZXIgb25seSBudW1iZXJzLicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50TnVtYmVDb21wYXJpc2lvbjonQWNjb3VudCBOdW1iZXIgYW5kIFJlLWVudGVyIEFjY291bnQgTnVtYmVyIHNob3VsZCBtYXRjaCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGg6ICdjYW5ub3QgZXhjZWVkIDE3IGNoYXJhY3RlcnMnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2lvbi1ncmlkPlxyXG48L2Zvcm0+Il19