@ksremp/ngx-ksremp-app-lib 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (592) hide show
  1. package/README.md +46 -0
  2. package/esm2022/ksremp-ngx-ksremp-app-lib.mjs +5 -0
  3. package/esm2022/lib/annimations/app-animations.mjs +37 -0
  4. package/esm2022/lib/components/add-employer/add-employer.component.mjs +2655 -0
  5. package/esm2022/lib/components/add-participant/add-participant.component.mjs +399 -0
  6. package/esm2022/lib/components/add-payment/add-payment.component.mjs +201 -0
  7. package/esm2022/lib/components/address/address.component.mjs +565 -0
  8. package/esm2022/lib/components/bank-details/bank-details.component.mjs +416 -0
  9. package/esm2022/lib/components/captcha/captcha.component.mjs +181 -0
  10. package/esm2022/lib/components/card/card.component.mjs +55 -0
  11. package/esm2022/lib/components/contact-us/contact-us.component.mjs +984 -0
  12. package/esm2022/lib/components/content/content.component.mjs +61 -0
  13. package/esm2022/lib/components/correspondence-download/correspondence-download.component.mjs +89 -0
  14. package/esm2022/lib/components/dashboard-card/dashboard-card.component.mjs +223 -0
  15. package/esm2022/lib/components/dependent-grid/dependent-grid.component.mjs +301 -0
  16. package/esm2022/lib/components/disclosure/disclosure.component.mjs +60 -0
  17. package/esm2022/lib/components/dropdown/dropdown.component.mjs +1974 -0
  18. package/esm2022/lib/components/dropdown/dropdown.interface.mjs +2 -0
  19. package/esm2022/lib/components/email-update/email-update.component.mjs +376 -0
  20. package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +1102 -0
  21. package/esm2022/lib/components/error/error.component.mjs +86 -0
  22. package/esm2022/lib/components/fav-menu/fav-menu.component.mjs +163 -0
  23. package/esm2022/lib/components/file-download/file-download.component.mjs +104 -0
  24. package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +315 -0
  25. package/esm2022/lib/components/footer/footer.component.mjs +350 -0
  26. package/esm2022/lib/components/header/header.component.mjs +535 -0
  27. package/esm2022/lib/components/help/help.component.mjs +49 -0
  28. package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +76 -0
  29. package/esm2022/lib/components/info/info.component.mjs +187 -0
  30. package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +212 -0
  31. package/esm2022/lib/components/job-title/job-title.component.mjs +162 -0
  32. package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +617 -0
  33. package/esm2022/lib/components/lexis-nexis/lexis-nexis.component.mjs +402 -0
  34. package/esm2022/lib/components/link/link.component.mjs +131 -0
  35. package/esm2022/lib/components/maintenance-detector/maintenance-detector.component.mjs +43 -0
  36. package/esm2022/lib/components/mask/mask.component.mjs +48 -0
  37. package/esm2022/lib/components/menu/menu.component.mjs +452 -0
  38. package/esm2022/lib/components/mfa/mfa.component.mjs +574 -0
  39. package/esm2022/lib/components/mfa-popup/mfa-popup.component.mjs +57 -0
  40. package/esm2022/lib/components/mfa2/mfa2.component.mjs +285 -0
  41. package/esm2022/lib/components/money-expect/money-expect.component.mjs +98 -0
  42. package/esm2022/lib/components/msg/msg.component.mjs +48 -0
  43. package/esm2022/lib/components/news/news.component.mjs +90 -0
  44. package/esm2022/lib/components/overlay-info/overlay-info.component.mjs +213 -0
  45. package/esm2022/lib/components/page/page.component.mjs +136 -0
  46. package/esm2022/lib/components/profile/profile.component.mjs +505 -0
  47. package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +70 -0
  48. package/esm2022/lib/components/questionnaire/AppValidators.mjs +541 -0
  49. package/esm2022/lib/components/questionnaire/FbConstants.mjs +8 -0
  50. package/esm2022/lib/components/questionnaire/SelectItem.mjs +2 -0
  51. package/esm2022/lib/components/questionnaire/account-success/account-success.page.mjs +310 -0
  52. package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +528 -0
  53. package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +1115 -0
  54. package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +2521 -0
  55. package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +1788 -0
  56. package/esm2022/lib/components/questionnaire/form-builder/form-builder.page.mjs +256 -0
  57. package/esm2022/lib/components/questionnaire/input-focus.directive.mjs +44 -0
  58. package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +255 -0
  59. package/esm2022/lib/components/questionnaire/question-base.mjs +3 -0
  60. package/esm2022/lib/components/questionnaire/question-control.service.mjs +408 -0
  61. package/esm2022/lib/components/questionnaire/question.service.mjs +33 -0
  62. package/esm2022/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +282 -0
  63. package/esm2022/lib/components/read-more/read-more.component.mjs +72 -0
  64. package/esm2022/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +690 -0
  65. package/esm2022/lib/components/search-employer/search-employer.component.mjs +132 -0
  66. package/esm2022/lib/components/security-question/security-question.component.mjs +199 -0
  67. package/esm2022/lib/components/select/select.component.mjs +159 -0
  68. package/esm2022/lib/components/sign-ssn/sign-ssn.component.mjs +141 -0
  69. package/esm2022/lib/components/ssn/ssn.component.mjs +44 -0
  70. package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +171 -0
  71. package/esm2022/lib/components/test/test.component.mjs +19 -0
  72. package/esm2022/lib/components/user-login/user-login.component.mjs +619 -0
  73. package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +772 -0
  74. package/esm2022/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +356 -0
  75. package/esm2022/lib/directives/auto-focus/auto-focus.directive.mjs +31 -0
  76. package/esm2022/lib/directives/caps-lock.directive.mjs +38 -0
  77. package/esm2022/lib/directives/required-roles/required-roles.directive.mjs +30 -0
  78. package/esm2022/lib/enums/EmailStatusEnum.mjs +9 -0
  79. package/esm2022/lib/guards/auth.guard.mjs +138 -0
  80. package/esm2022/lib/guards/no-login/no-login.guard.mjs +21 -0
  81. package/esm2022/lib/interceptors/error-interceptor/http-error-interceptor.mjs +107 -0
  82. package/esm2022/lib/interceptors/header-interceptor/http-header.interceptor.mjs +99 -0
  83. package/esm2022/lib/models/AddressComponentModel.mjs +3 -0
  84. package/esm2022/lib/models/BankDetailsComponentModel.mjs +3 -0
  85. package/esm2022/lib/models/BankDetailsModel.mjs +3 -0
  86. package/esm2022/lib/models/CinRequalificationCriteriaModel.mjs +3 -0
  87. package/esm2022/lib/models/EmployerDetailSearchResult.mjs +6 -0
  88. package/esm2022/lib/models/ErrorModel.mjs +6 -0
  89. package/esm2022/lib/models/FileModel.mjs +2 -0
  90. package/esm2022/lib/models/LexisNexisAccountCreationModel.mjs +2 -0
  91. package/esm2022/lib/models/LexisNexisAuthSelectionRequestModel.mjs +2 -0
  92. package/esm2022/lib/models/LexisNexisAuthSelectionResponseModel.mjs +2 -0
  93. package/esm2022/lib/models/LexisNexisEnabledResponseModel.mjs +2 -0
  94. package/esm2022/lib/models/LexisNexisResponseModel.mjs +3 -0
  95. package/esm2022/lib/models/LibConstants.mjs +132 -0
  96. package/esm2022/lib/models/NewsAndAnnouncementModel.mjs +3 -0
  97. package/esm2022/lib/models/NotificationModel.mjs +6 -0
  98. package/esm2022/lib/models/OtpAuthModel.mjs +3 -0
  99. package/esm2022/lib/models/PartialEmploymentModel.mjs +3 -0
  100. package/esm2022/lib/models/PaymentComponentModel.mjs +2 -0
  101. package/esm2022/lib/models/RequalifyLiftPageModel.mjs +11 -0
  102. package/esm2022/lib/models/SecurityQuestionModel.mjs +3 -0
  103. package/esm2022/lib/models/SsaVerificationModel.mjs +3 -0
  104. package/esm2022/lib/models/TrendModel.mjs +3 -0
  105. package/esm2022/lib/models/UserDetailsModel.mjs +3 -0
  106. package/esm2022/lib/models/UserModel.mjs +6 -0
  107. package/esm2022/lib/models/case/CaseAttachmentModel.mjs +3 -0
  108. package/esm2022/lib/models/claimant/ClaimantModel.mjs +3 -0
  109. package/esm2022/lib/models/claimant/JobResultsData.mjs +3 -0
  110. package/esm2022/lib/models/claimant/MatchingJobs.mjs +3 -0
  111. package/esm2022/lib/models/claimant/ResetPasswordModel.mjs +3 -0
  112. package/esm2022/lib/models/cmp/CaseCoreModel.mjs +3 -0
  113. package/esm2022/lib/models/cmp/ComplaintCategoryModel.mjs +3 -0
  114. package/esm2022/lib/models/cmp/ComplaintCategoryOutputModel.mjs +5 -0
  115. package/esm2022/lib/models/cmp/ContactUsModel.mjs +3 -0
  116. package/esm2022/lib/models/cmp/EmailTemplateModel.mjs +3 -0
  117. package/esm2022/lib/models/cmp/contactUsInqueryModel.mjs +7 -0
  118. package/esm2022/lib/models/cmp/messageRourceModel.mjs +3 -0
  119. package/esm2022/lib/models/dashboard-model.mjs +3 -0
  120. package/esm2022/lib/models/dependent.model.mjs +8 -0
  121. package/esm2022/lib/models/questionnaire/AutocoderModel.mjs +3 -0
  122. package/esm2022/lib/models/questionnaire/ClaimAppEmpRequestModel.mjs +3 -0
  123. package/esm2022/lib/models/questionnaire/ClaimAppEmpResponseModel.mjs +8 -0
  124. package/esm2022/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +6 -0
  125. package/esm2022/lib/models/questionnaire/ClaimOnlyEmployerDataModel.mjs +3 -0
  126. package/esm2022/lib/models/questionnaire/ComboModel.mjs +1010 -0
  127. package/esm2022/lib/models/questionnaire/ElementsModel.mjs +8 -0
  128. package/esm2022/lib/models/questionnaire/EmployerDetailSearchResult.mjs +3 -0
  129. package/esm2022/lib/models/questionnaire/EmployerWagesModel.mjs +3 -0
  130. package/esm2022/lib/models/questionnaire/FBConfigModel.mjs +6 -0
  131. package/esm2022/lib/models/questionnaire/KeyValueModel.mjs +3 -0
  132. package/esm2022/lib/models/questionnaire/LegalDiscaimarModel.mjs +3 -0
  133. package/esm2022/lib/models/questionnaire/LoaderModel.mjs +3 -0
  134. package/esm2022/lib/models/questionnaire/PollingStatusModel.mjs +3 -0
  135. package/esm2022/lib/models/questionnaire/QtrYearEmployerWageModel.mjs +3 -0
  136. package/esm2022/lib/models/questionnaire/QuestionnaireQueryModel.mjs +8 -0
  137. package/esm2022/lib/models/questionnaire/QuestionnaireReturnModel.mjs +11 -0
  138. package/esm2022/lib/models/questionnaire/QuestionnaireSaveModel.mjs +3 -0
  139. package/esm2022/lib/models/questionnaire/RequalifyLiftIssuesModel.mjs +3 -0
  140. package/esm2022/lib/models/questionnaire/ServiceActionResponseModel.mjs +3 -0
  141. package/esm2022/lib/models/questionnaire/StatusModel.mjs +6 -0
  142. package/esm2022/lib/models/questionnaire/SuccessPageElement.mjs +3 -0
  143. package/esm2022/lib/models/questionnaire/UI512AResponseModel.mjs +3 -0
  144. package/esm2022/lib/models/questionnaire/ValidationModel.mjs +3 -0
  145. package/esm2022/lib/ngx-reusa-app-lib.component.mjs +23 -0
  146. package/esm2022/lib/ngx-reusa-app-lib.module.mjs +410 -0
  147. package/esm2022/lib/ngx-reusa-app-lib.service.mjs +14 -0
  148. package/esm2022/lib/pages/BasePage.mjs +98 -0
  149. package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +77 -0
  150. package/esm2022/lib/pages/common/change-password/change-password.page.mjs +471 -0
  151. package/esm2022/lib/pages/common/landing/landing.component.mjs +209 -0
  152. package/esm2022/lib/pages/common/landing2/landing2.component.mjs +244 -0
  153. package/esm2022/lib/pages/common/login/login.component.mjs +533 -0
  154. package/esm2022/lib/pages/common/not-found/not-found.page.mjs +24 -0
  155. package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +306 -0
  156. package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +61 -0
  157. package/esm2022/lib/pages/common/unauthorized/unauthorized.page.mjs +24 -0
  158. package/esm2022/lib/pages/popovers/language/language.page.mjs +62 -0
  159. package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +204 -0
  160. package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +129 -0
  161. package/esm2022/lib/pages/popovers/user-search/user-search.component.mjs +251 -0
  162. package/esm2022/lib/pipes/filter.pipe.mjs +30 -0
  163. package/esm2022/lib/pipes/mask/mask.email.pipe.mjs +23 -0
  164. package/esm2022/lib/pipes/proper-case/proper-case.pipe.mjs +27 -0
  165. package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +44 -0
  166. package/esm2022/lib/pipes/trust-html/trust-html.pipe.mjs +20 -0
  167. package/esm2022/lib/services/base-service.mjs +50 -0
  168. package/esm2022/lib/services/captcha/captcha.service.mjs +46 -0
  169. package/esm2022/lib/services/case-service/case.service.mjs +47 -0
  170. package/esm2022/lib/services/chatbot/chatbot.service.mjs +258 -0
  171. package/esm2022/lib/services/chatbot/script.const.mjs +42 -0
  172. package/esm2022/lib/services/claimant/claimant.service.mjs +31 -0
  173. package/esm2022/lib/services/claimant-context/claimant-context.service.mjs +48 -0
  174. package/esm2022/lib/services/claimant-service/claimant-usps-redirect.service.mjs +36 -0
  175. package/esm2022/lib/services/claimant-service/claimant.service.mjs +62 -0
  176. package/esm2022/lib/services/claims/claims.service.mjs +102 -0
  177. package/esm2022/lib/services/cmp-service/cmp.service.mjs +84 -0
  178. package/esm2022/lib/services/dms-service/dms.service.mjs +60 -0
  179. package/esm2022/lib/services/fpjs/fingerprint.service.mjs +70 -0
  180. package/esm2022/lib/services/google-analytics/google-analytics.service.mjs +29 -0
  181. package/esm2022/lib/services/help/help.service.mjs +63 -0
  182. package/esm2022/lib/services/idle/idle.service.mjs +159 -0
  183. package/esm2022/lib/services/lexis-nexis/lexis.nexis.service.mjs +60 -0
  184. package/esm2022/lib/services/logger/logger.service.mjs +67 -0
  185. package/esm2022/lib/services/login/login.service.mjs +343 -0
  186. package/esm2022/lib/services/maintenance/maintenance.service.mjs +21 -0
  187. package/esm2022/lib/services/notification/notification.service.mjs +113 -0
  188. package/esm2022/lib/services/ovp/ovp.service.mjs +43 -0
  189. package/esm2022/lib/services/questionnaire/questionnaire.service.mjs +69 -0
  190. package/esm2022/lib/services/questionnaire/validation.service.mjs +59 -0
  191. package/esm2022/lib/services/security-service/security.service.mjs +42 -0
  192. package/esm2022/lib/services/tour/tour.service.mjs +60 -0
  193. package/esm2022/lib/services/util/util.service.mjs +450 -0
  194. package/esm2022/lib/services/weekly-cert/weekly-cert-v2.service.mjs +42 -0
  195. package/esm2022/lib/validations/AppRegex.mjs +51 -0
  196. package/esm2022/lib/validations/AppValidators.mjs +253 -0
  197. package/esm2022/public-api.mjs +138 -0
  198. package/fesm2022/ksremp-ngx-ksremp-app-lib.mjs +33786 -0
  199. package/fesm2022/ksremp-ngx-ksremp-app-lib.mjs.map +1 -0
  200. package/index.d.ts +6 -0
  201. package/ksremp-ngx-ksremp-app-lib.d.ts.map +1 -0
  202. package/lib/annimations/app-animations.d.ts +4 -0
  203. package/lib/annimations/app-animations.d.ts.map +1 -0
  204. package/lib/components/add-employer/add-employer.component.d.ts +234 -0
  205. package/lib/components/add-employer/add-employer.component.d.ts.map +1 -0
  206. package/lib/components/add-participant/add-participant.component.d.ts +49 -0
  207. package/lib/components/add-participant/add-participant.component.d.ts.map +1 -0
  208. package/lib/components/add-payment/add-payment.component.d.ts +33 -0
  209. package/lib/components/add-payment/add-payment.component.d.ts.map +1 -0
  210. package/lib/components/address/address.component.d.ts +81 -0
  211. package/lib/components/address/address.component.d.ts.map +1 -0
  212. package/lib/components/bank-details/bank-details.component.d.ts +62 -0
  213. package/lib/components/bank-details/bank-details.component.d.ts.map +1 -0
  214. package/lib/components/captcha/captcha.component.d.ts +45 -0
  215. package/lib/components/captcha/captcha.component.d.ts.map +1 -0
  216. package/lib/components/card/card.component.d.ts +12 -0
  217. package/lib/components/card/card.component.d.ts.map +1 -0
  218. package/lib/components/contact-us/contact-us.component.d.ts +109 -0
  219. package/lib/components/contact-us/contact-us.component.d.ts.map +1 -0
  220. package/lib/components/content/content.component.d.ts +14 -0
  221. package/lib/components/content/content.component.d.ts.map +1 -0
  222. package/lib/components/correspondence-download/correspondence-download.component.d.ts +22 -0
  223. package/lib/components/correspondence-download/correspondence-download.component.d.ts.map +1 -0
  224. package/lib/components/dashboard-card/dashboard-card.component.d.ts +26 -0
  225. package/lib/components/dashboard-card/dashboard-card.component.d.ts.map +1 -0
  226. package/lib/components/dependent-grid/dependent-grid.component.d.ts +36 -0
  227. package/lib/components/dependent-grid/dependent-grid.component.d.ts.map +1 -0
  228. package/lib/components/disclosure/disclosure.component.d.ts +13 -0
  229. package/lib/components/disclosure/disclosure.component.d.ts.map +1 -0
  230. package/lib/components/dropdown/dropdown.component.d.ts +582 -0
  231. package/lib/components/dropdown/dropdown.component.d.ts.map +1 -0
  232. package/lib/components/dropdown/dropdown.interface.d.ts +155 -0
  233. package/lib/components/dropdown/dropdown.interface.d.ts.map +1 -0
  234. package/lib/components/email-update/email-update.component.d.ts +43 -0
  235. package/lib/components/email-update/email-update.component.d.ts.map +1 -0
  236. package/lib/components/employer-grid/employer-grid.component.d.ts +90 -0
  237. package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -0
  238. package/lib/components/error/error.component.d.ts +18 -0
  239. package/lib/components/error/error.component.d.ts.map +1 -0
  240. package/lib/components/fav-menu/fav-menu.component.d.ts +22 -0
  241. package/lib/components/fav-menu/fav-menu.component.d.ts.map +1 -0
  242. package/lib/components/file-download/file-download.component.d.ts +23 -0
  243. package/lib/components/file-download/file-download.component.d.ts.map +1 -0
  244. package/lib/components/file-uploader/file-uploader.component.d.ts +48 -0
  245. package/lib/components/file-uploader/file-uploader.component.d.ts.map +1 -0
  246. package/lib/components/footer/footer.component.d.ts +37 -0
  247. package/lib/components/footer/footer.component.d.ts.map +1 -0
  248. package/lib/components/header/header.component.d.ts +64 -0
  249. package/lib/components/header/header.component.d.ts.map +1 -0
  250. package/lib/components/help/help.component.d.ts +11 -0
  251. package/lib/components/help/help.component.d.ts.map +1 -0
  252. package/lib/components/idle-detector/idle-detector.component.d.ts +16 -0
  253. package/lib/components/idle-detector/idle-detector.component.d.ts.map +1 -0
  254. package/lib/components/info/info.component.d.ts +23 -0
  255. package/lib/components/info/info.component.d.ts.map +1 -0
  256. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +24 -0
  257. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts.map +1 -0
  258. package/lib/components/job-title/job-title.component.d.ts +38 -0
  259. package/lib/components/job-title/job-title.component.d.ts.map +1 -0
  260. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +39 -0
  261. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -0
  262. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts +59 -0
  263. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +1 -0
  264. package/lib/components/link/link.component.d.ts +35 -0
  265. package/lib/components/link/link.component.d.ts.map +1 -0
  266. package/lib/components/maintenance-detector/maintenance-detector.component.d.ts +16 -0
  267. package/lib/components/maintenance-detector/maintenance-detector.component.d.ts.map +1 -0
  268. package/lib/components/mask/mask.component.d.ts +12 -0
  269. package/lib/components/mask/mask.component.d.ts.map +1 -0
  270. package/lib/components/menu/menu.component.d.ts +54 -0
  271. package/lib/components/menu/menu.component.d.ts.map +1 -0
  272. package/lib/components/mfa/mfa.component.d.ts +72 -0
  273. package/lib/components/mfa/mfa.component.d.ts.map +1 -0
  274. package/lib/components/mfa-popup/mfa-popup.component.d.ts +19 -0
  275. package/lib/components/mfa-popup/mfa-popup.component.d.ts.map +1 -0
  276. package/lib/components/mfa2/mfa2.component.d.ts +48 -0
  277. package/lib/components/mfa2/mfa2.component.d.ts.map +1 -0
  278. package/lib/components/money-expect/money-expect.component.d.ts +19 -0
  279. package/lib/components/money-expect/money-expect.component.d.ts.map +1 -0
  280. package/lib/components/msg/msg.component.d.ts +11 -0
  281. package/lib/components/msg/msg.component.d.ts.map +1 -0
  282. package/lib/components/news/news.component.d.ts +15 -0
  283. package/lib/components/news/news.component.d.ts.map +1 -0
  284. package/lib/components/overlay-info/overlay-info.component.d.ts +35 -0
  285. package/lib/components/overlay-info/overlay-info.component.d.ts.map +1 -0
  286. package/lib/components/page/page.component.d.ts +24 -0
  287. package/lib/components/page/page.component.d.ts.map +1 -0
  288. package/lib/components/profile/profile.component.d.ts +74 -0
  289. package/lib/components/profile/profile.component.d.ts.map +1 -0
  290. package/lib/components/profile-redirect/profile-redirect.component.d.ts +14 -0
  291. package/lib/components/profile-redirect/profile-redirect.component.d.ts.map +1 -0
  292. package/lib/components/questionnaire/AppValidators.d.ts +16 -0
  293. package/lib/components/questionnaire/AppValidators.d.ts.map +1 -0
  294. package/lib/components/questionnaire/FbConstants.d.ts +8 -0
  295. package/lib/components/questionnaire/FbConstants.d.ts.map +1 -0
  296. package/lib/components/questionnaire/SelectItem.d.ts +5 -0
  297. package/lib/components/questionnaire/SelectItem.d.ts.map +1 -0
  298. package/lib/components/questionnaire/account-success/account-success.page.d.ts +61 -0
  299. package/lib/components/questionnaire/account-success/account-success.page.d.ts.map +1 -0
  300. package/lib/components/questionnaire/common-success/common-success.page.d.ts +77 -0
  301. package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -0
  302. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts +47 -0
  303. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts.map +1 -0
  304. package/lib/components/questionnaire/dynamic-form-question.component.d.ts +128 -0
  305. package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -0
  306. package/lib/components/questionnaire/dynamic-form.component.d.ts +161 -0
  307. package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -0
  308. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts +74 -0
  309. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts.map +1 -0
  310. package/lib/components/questionnaire/input-focus.directive.d.ts +12 -0
  311. package/lib/components/questionnaire/input-focus.directive.d.ts.map +1 -0
  312. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts +39 -0
  313. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts.map +1 -0
  314. package/lib/components/questionnaire/question-base.d.ts +17 -0
  315. package/lib/components/questionnaire/question-base.d.ts.map +1 -0
  316. package/lib/components/questionnaire/question-control.service.d.ts +21 -0
  317. package/lib/components/questionnaire/question-control.service.d.ts.map +1 -0
  318. package/lib/components/questionnaire/question.service.d.ts +19 -0
  319. package/lib/components/questionnaire/question.service.d.ts.map +1 -0
  320. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts +83 -0
  321. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts.map +1 -0
  322. package/lib/components/read-more/read-more.component.d.ts +15 -0
  323. package/lib/components/read-more/read-more.component.d.ts.map +1 -0
  324. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts +68 -0
  325. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts.map +1 -0
  326. package/lib/components/search-employer/search-employer.component.d.ts +40 -0
  327. package/lib/components/search-employer/search-employer.component.d.ts.map +1 -0
  328. package/lib/components/security-question/security-question.component.d.ts +37 -0
  329. package/lib/components/security-question/security-question.component.d.ts.map +1 -0
  330. package/lib/components/select/select.component.d.ts +56 -0
  331. package/lib/components/select/select.component.d.ts.map +1 -0
  332. package/lib/components/sign-ssn/sign-ssn.component.d.ts +34 -0
  333. package/lib/components/sign-ssn/sign-ssn.component.d.ts.map +1 -0
  334. package/lib/components/ssn/ssn.component.d.ts +12 -0
  335. package/lib/components/ssn/ssn.component.d.ts.map +1 -0
  336. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +27 -0
  337. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts.map +1 -0
  338. package/lib/components/test/test.component.d.ts +9 -0
  339. package/lib/components/test/test.component.d.ts.map +1 -0
  340. package/lib/components/user-login/user-login.component.d.ts +82 -0
  341. package/lib/components/user-login/user-login.component.d.ts.map +1 -0
  342. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +67 -0
  343. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -0
  344. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts +47 -0
  345. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts.map +1 -0
  346. package/lib/directives/auto-focus/auto-focus.directive.d.ts +13 -0
  347. package/lib/directives/auto-focus/auto-focus.directive.d.ts.map +1 -0
  348. package/lib/directives/caps-lock.directive.d.ts +12 -0
  349. package/lib/directives/caps-lock.directive.d.ts.map +1 -0
  350. package/lib/directives/required-roles/required-roles.directive.d.ts +15 -0
  351. package/lib/directives/required-roles/required-roles.directive.d.ts.map +1 -0
  352. package/lib/enums/EmailStatusEnum.d.ts +8 -0
  353. package/lib/enums/EmailStatusEnum.d.ts.map +1 -0
  354. package/lib/guards/auth.guard.d.ts +29 -0
  355. package/lib/guards/auth.guard.d.ts.map +1 -0
  356. package/lib/guards/no-login/no-login.guard.d.ts +12 -0
  357. package/lib/guards/no-login/no-login.guard.d.ts.map +1 -0
  358. package/lib/interceptors/error-interceptor/http-error-interceptor.d.ts +23 -0
  359. package/lib/interceptors/error-interceptor/http-error-interceptor.d.ts.map +1 -0
  360. package/lib/interceptors/header-interceptor/http-header.interceptor.d.ts +22 -0
  361. package/lib/interceptors/header-interceptor/http-header.interceptor.d.ts.map +1 -0
  362. package/lib/models/AddressComponentModel.d.ts +14 -0
  363. package/lib/models/AddressComponentModel.d.ts.map +1 -0
  364. package/lib/models/BankDetailsComponentModel.d.ts +12 -0
  365. package/lib/models/BankDetailsComponentModel.d.ts.map +1 -0
  366. package/lib/models/BankDetailsModel.d.ts +5 -0
  367. package/lib/models/BankDetailsModel.d.ts.map +1 -0
  368. package/lib/models/CinRequalificationCriteriaModel.d.ts +11 -0
  369. package/lib/models/CinRequalificationCriteriaModel.d.ts.map +1 -0
  370. package/lib/models/EmployerDetailSearchResult.d.ts +51 -0
  371. package/lib/models/EmployerDetailSearchResult.d.ts.map +1 -0
  372. package/lib/models/ErrorModel.d.ts +7 -0
  373. package/lib/models/ErrorModel.d.ts.map +1 -0
  374. package/lib/models/FileModel.d.ts +5 -0
  375. package/lib/models/FileModel.d.ts.map +1 -0
  376. package/lib/models/LexisNexisAccountCreationModel.d.ts +15 -0
  377. package/lib/models/LexisNexisAccountCreationModel.d.ts.map +1 -0
  378. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts +16 -0
  379. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts.map +1 -0
  380. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts +39 -0
  381. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts.map +1 -0
  382. package/lib/models/LexisNexisEnabledResponseModel.d.ts +5 -0
  383. package/lib/models/LexisNexisEnabledResponseModel.d.ts.map +1 -0
  384. package/lib/models/LexisNexisResponseModel.d.ts +7 -0
  385. package/lib/models/LexisNexisResponseModel.d.ts.map +1 -0
  386. package/lib/models/LibConstants.d.ts +125 -0
  387. package/lib/models/LibConstants.d.ts.map +1 -0
  388. package/lib/models/NewsAndAnnouncementModel.d.ts +6 -0
  389. package/lib/models/NewsAndAnnouncementModel.d.ts.map +1 -0
  390. package/lib/models/NotificationModel.d.ts +11 -0
  391. package/lib/models/NotificationModel.d.ts.map +1 -0
  392. package/lib/models/OtpAuthModel.d.ts +8 -0
  393. package/lib/models/OtpAuthModel.d.ts.map +1 -0
  394. package/lib/models/PartialEmploymentModel.d.ts +6 -0
  395. package/lib/models/PartialEmploymentModel.d.ts.map +1 -0
  396. package/lib/models/PaymentComponentModel.d.ts +8 -0
  397. package/lib/models/PaymentComponentModel.d.ts.map +1 -0
  398. package/lib/models/RequalifyLiftPageModel.d.ts +12 -0
  399. package/lib/models/RequalifyLiftPageModel.d.ts.map +1 -0
  400. package/lib/models/SecurityQuestionModel.d.ts +7 -0
  401. package/lib/models/SecurityQuestionModel.d.ts.map +1 -0
  402. package/lib/models/SsaVerificationModel.d.ts +9 -0
  403. package/lib/models/SsaVerificationModel.d.ts.map +1 -0
  404. package/lib/models/TrendModel.d.ts +14 -0
  405. package/lib/models/TrendModel.d.ts.map +1 -0
  406. package/lib/models/UserDetailsModel.d.ts +10 -0
  407. package/lib/models/UserDetailsModel.d.ts.map +1 -0
  408. package/lib/models/UserModel.d.ts +48 -0
  409. package/lib/models/UserModel.d.ts.map +1 -0
  410. package/lib/models/case/CaseAttachmentModel.d.ts +6 -0
  411. package/lib/models/case/CaseAttachmentModel.d.ts.map +1 -0
  412. package/lib/models/claimant/ClaimantModel.d.ts +23 -0
  413. package/lib/models/claimant/ClaimantModel.d.ts.map +1 -0
  414. package/lib/models/claimant/JobResultsData.d.ts +8 -0
  415. package/lib/models/claimant/JobResultsData.d.ts.map +1 -0
  416. package/lib/models/claimant/MatchingJobs.d.ts +13 -0
  417. package/lib/models/claimant/MatchingJobs.d.ts.map +1 -0
  418. package/lib/models/claimant/ResetPasswordModel.d.ts +9 -0
  419. package/lib/models/claimant/ResetPasswordModel.d.ts.map +1 -0
  420. package/lib/models/cmp/CaseCoreModel.d.ts +21 -0
  421. package/lib/models/cmp/CaseCoreModel.d.ts.map +1 -0
  422. package/lib/models/cmp/ComplaintCategoryModel.d.ts +9 -0
  423. package/lib/models/cmp/ComplaintCategoryModel.d.ts.map +1 -0
  424. package/lib/models/cmp/ComplaintCategoryOutputModel.d.ts +6 -0
  425. package/lib/models/cmp/ComplaintCategoryOutputModel.d.ts.map +1 -0
  426. package/lib/models/cmp/ContactUsModel.d.ts +23 -0
  427. package/lib/models/cmp/ContactUsModel.d.ts.map +1 -0
  428. package/lib/models/cmp/EmailTemplateModel.d.ts +7 -0
  429. package/lib/models/cmp/EmailTemplateModel.d.ts.map +1 -0
  430. package/lib/models/cmp/contactUsInqueryModel.d.ts +47 -0
  431. package/lib/models/cmp/contactUsInqueryModel.d.ts.map +1 -0
  432. package/lib/models/cmp/messageRourceModel.d.ts +6 -0
  433. package/lib/models/cmp/messageRourceModel.d.ts.map +1 -0
  434. package/lib/models/dashboard-model.d.ts +44 -0
  435. package/lib/models/dashboard-model.d.ts.map +1 -0
  436. package/lib/models/dependent.model.d.ts +20 -0
  437. package/lib/models/dependent.model.d.ts.map +1 -0
  438. package/lib/models/questionnaire/AutocoderModel.d.ts +9 -0
  439. package/lib/models/questionnaire/AutocoderModel.d.ts.map +1 -0
  440. package/lib/models/questionnaire/ClaimAppEmpRequestModel.d.ts +9 -0
  441. package/lib/models/questionnaire/ClaimAppEmpRequestModel.d.ts.map +1 -0
  442. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts +18 -0
  443. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts.map +1 -0
  444. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +156 -0
  445. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts.map +1 -0
  446. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts +18 -0
  447. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts.map +1 -0
  448. package/lib/models/questionnaire/ComboModel.d.ts +178 -0
  449. package/lib/models/questionnaire/ComboModel.d.ts.map +1 -0
  450. package/lib/models/questionnaire/ElementsModel.d.ts +71 -0
  451. package/lib/models/questionnaire/ElementsModel.d.ts.map +1 -0
  452. package/lib/models/questionnaire/EmployerDetailSearchResult.d.ts +18 -0
  453. package/lib/models/questionnaire/EmployerDetailSearchResult.d.ts.map +1 -0
  454. package/lib/models/questionnaire/EmployerWagesModel.d.ts +5 -0
  455. package/lib/models/questionnaire/EmployerWagesModel.d.ts.map +1 -0
  456. package/lib/models/questionnaire/FBConfigModel.d.ts +12 -0
  457. package/lib/models/questionnaire/FBConfigModel.d.ts.map +1 -0
  458. package/lib/models/questionnaire/KeyValueModel.d.ts +11 -0
  459. package/lib/models/questionnaire/KeyValueModel.d.ts.map +1 -0
  460. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts +11 -0
  461. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts.map +1 -0
  462. package/lib/models/questionnaire/LoaderModel.d.ts +5 -0
  463. package/lib/models/questionnaire/LoaderModel.d.ts.map +1 -0
  464. package/lib/models/questionnaire/PollingStatusModel.d.ts +7 -0
  465. package/lib/models/questionnaire/PollingStatusModel.d.ts.map +1 -0
  466. package/lib/models/questionnaire/QtrYearEmployerWageModel.d.ts +9 -0
  467. package/lib/models/questionnaire/QtrYearEmployerWageModel.d.ts.map +1 -0
  468. package/lib/models/questionnaire/QuestionnaireQueryModel.d.ts +24 -0
  469. package/lib/models/questionnaire/QuestionnaireQueryModel.d.ts.map +1 -0
  470. package/lib/models/questionnaire/QuestionnaireReturnModel.d.ts +21 -0
  471. package/lib/models/questionnaire/QuestionnaireReturnModel.d.ts.map +1 -0
  472. package/lib/models/questionnaire/QuestionnaireSaveModel.d.ts +26 -0
  473. package/lib/models/questionnaire/QuestionnaireSaveModel.d.ts.map +1 -0
  474. package/lib/models/questionnaire/RequalifyLiftIssuesModel.d.ts +14 -0
  475. package/lib/models/questionnaire/RequalifyLiftIssuesModel.d.ts.map +1 -0
  476. package/lib/models/questionnaire/ServiceActionResponseModel.d.ts +7 -0
  477. package/lib/models/questionnaire/ServiceActionResponseModel.d.ts.map +1 -0
  478. package/lib/models/questionnaire/StatusModel.d.ts +16 -0
  479. package/lib/models/questionnaire/StatusModel.d.ts.map +1 -0
  480. package/lib/models/questionnaire/SuccessPageElement.d.ts +9 -0
  481. package/lib/models/questionnaire/SuccessPageElement.d.ts.map +1 -0
  482. package/lib/models/questionnaire/UI512AResponseModel.d.ts +13 -0
  483. package/lib/models/questionnaire/UI512AResponseModel.d.ts.map +1 -0
  484. package/lib/models/questionnaire/ValidationModel.d.ts +18 -0
  485. package/lib/models/questionnaire/ValidationModel.d.ts.map +1 -0
  486. package/lib/ngx-reusa-app-lib.component.d.ts +9 -0
  487. package/lib/ngx-reusa-app-lib.component.d.ts.map +1 -0
  488. package/lib/ngx-reusa-app-lib.module.d.ts +155 -0
  489. package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -0
  490. package/lib/ngx-reusa-app-lib.service.d.ts +7 -0
  491. package/lib/ngx-reusa-app-lib.service.d.ts.map +1 -0
  492. package/lib/pages/BasePage.d.ts +32 -0
  493. package/lib/pages/BasePage.d.ts.map +1 -0
  494. package/lib/pages/common/accessibility-policy/accessibility-policy.page.d.ts +12 -0
  495. package/lib/pages/common/accessibility-policy/accessibility-policy.page.d.ts.map +1 -0
  496. package/lib/pages/common/change-password/change-password.page.d.ts +41 -0
  497. package/lib/pages/common/change-password/change-password.page.d.ts.map +1 -0
  498. package/lib/pages/common/landing/landing.component.d.ts +25 -0
  499. package/lib/pages/common/landing/landing.component.d.ts.map +1 -0
  500. package/lib/pages/common/landing2/landing2.component.d.ts +31 -0
  501. package/lib/pages/common/landing2/landing2.component.d.ts.map +1 -0
  502. package/lib/pages/common/login/login.component.d.ts +65 -0
  503. package/lib/pages/common/login/login.component.d.ts.map +1 -0
  504. package/lib/pages/common/not-found/not-found.page.d.ts +9 -0
  505. package/lib/pages/common/not-found/not-found.page.d.ts.map +1 -0
  506. package/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.d.ts +12 -0
  507. package/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.d.ts.map +1 -0
  508. package/lib/pages/common/security-policy/security-policy.page.d.ts +12 -0
  509. package/lib/pages/common/security-policy/security-policy.page.d.ts.map +1 -0
  510. package/lib/pages/common/unauthorized/unauthorized.page.d.ts +9 -0
  511. package/lib/pages/common/unauthorized/unauthorized.page.d.ts.map +1 -0
  512. package/lib/pages/popovers/language/language.page.d.ts +17 -0
  513. package/lib/pages/popovers/language/language.page.d.ts.map +1 -0
  514. package/lib/pages/popovers/my-notifications/my-notifications.page.d.ts +22 -0
  515. package/lib/pages/popovers/my-notifications/my-notifications.page.d.ts.map +1 -0
  516. package/lib/pages/popovers/my-profile/my-profile.page.d.ts +21 -0
  517. package/lib/pages/popovers/my-profile/my-profile.page.d.ts.map +1 -0
  518. package/lib/pages/popovers/user-search/user-search.component.d.ts +32 -0
  519. package/lib/pages/popovers/user-search/user-search.component.d.ts.map +1 -0
  520. package/lib/pipes/filter.pipe.d.ts +8 -0
  521. package/lib/pipes/filter.pipe.d.ts.map +1 -0
  522. package/lib/pipes/mask/mask.email.pipe.d.ts +11 -0
  523. package/lib/pipes/mask/mask.email.pipe.d.ts.map +1 -0
  524. package/lib/pipes/proper-case/proper-case.pipe.d.ts +9 -0
  525. package/lib/pipes/proper-case/proper-case.pipe.d.ts.map +1 -0
  526. package/lib/pipes/translate/dynamic-translate.pipe.d.ts +11 -0
  527. package/lib/pipes/translate/dynamic-translate.pipe.d.ts.map +1 -0
  528. package/lib/pipes/trust-html/trust-html.pipe.d.ts +11 -0
  529. package/lib/pipes/trust-html/trust-html.pipe.d.ts.map +1 -0
  530. package/lib/services/base-service.d.ts +93 -0
  531. package/lib/services/base-service.d.ts.map +1 -0
  532. package/lib/services/captcha/captcha.service.d.ts +16 -0
  533. package/lib/services/captcha/captcha.service.d.ts.map +1 -0
  534. package/lib/services/case-service/case.service.d.ts +20 -0
  535. package/lib/services/case-service/case.service.d.ts.map +1 -0
  536. package/lib/services/chatbot/chatbot.service.d.ts +61 -0
  537. package/lib/services/chatbot/chatbot.service.d.ts.map +1 -0
  538. package/lib/services/chatbot/script.const.d.ts +16 -0
  539. package/lib/services/chatbot/script.const.d.ts.map +1 -0
  540. package/lib/services/claimant/claimant.service.d.ts +18 -0
  541. package/lib/services/claimant/claimant.service.d.ts.map +1 -0
  542. package/lib/services/claimant-context/claimant-context.service.d.ts +19 -0
  543. package/lib/services/claimant-context/claimant-context.service.d.ts.map +1 -0
  544. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts +16 -0
  545. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts.map +1 -0
  546. package/lib/services/claimant-service/claimant.service.d.ts +26 -0
  547. package/lib/services/claimant-service/claimant.service.d.ts.map +1 -0
  548. package/lib/services/claims/claims.service.d.ts +42 -0
  549. package/lib/services/claims/claims.service.d.ts.map +1 -0
  550. package/lib/services/cmp-service/cmp.service.d.ts +34 -0
  551. package/lib/services/cmp-service/cmp.service.d.ts.map +1 -0
  552. package/lib/services/dms-service/dms.service.d.ts +24 -0
  553. package/lib/services/dms-service/dms.service.d.ts.map +1 -0
  554. package/lib/services/fpjs/fingerprint.service.d.ts +19 -0
  555. package/lib/services/fpjs/fingerprint.service.d.ts.map +1 -0
  556. package/lib/services/google-analytics/google-analytics.service.d.ts +9 -0
  557. package/lib/services/google-analytics/google-analytics.service.d.ts.map +1 -0
  558. package/lib/services/help/help.service.d.ts +26 -0
  559. package/lib/services/help/help.service.d.ts.map +1 -0
  560. package/lib/services/idle/idle.service.d.ts +44 -0
  561. package/lib/services/idle/idle.service.d.ts.map +1 -0
  562. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts +26 -0
  563. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts.map +1 -0
  564. package/lib/services/logger/logger.service.d.ts +32 -0
  565. package/lib/services/logger/logger.service.d.ts.map +1 -0
  566. package/lib/services/login/login.service.d.ts +79 -0
  567. package/lib/services/login/login.service.d.ts.map +1 -0
  568. package/lib/services/maintenance/maintenance.service.d.ts +16 -0
  569. package/lib/services/maintenance/maintenance.service.d.ts.map +1 -0
  570. package/lib/services/notification/notification.service.d.ts +39 -0
  571. package/lib/services/notification/notification.service.d.ts.map +1 -0
  572. package/lib/services/ovp/ovp.service.d.ts +17 -0
  573. package/lib/services/ovp/ovp.service.d.ts.map +1 -0
  574. package/lib/services/questionnaire/questionnaire.service.d.ts +36 -0
  575. package/lib/services/questionnaire/questionnaire.service.d.ts.map +1 -0
  576. package/lib/services/questionnaire/validation.service.d.ts +82 -0
  577. package/lib/services/questionnaire/validation.service.d.ts.map +1 -0
  578. package/lib/services/security-service/security.service.d.ts +18 -0
  579. package/lib/services/security-service/security.service.d.ts.map +1 -0
  580. package/lib/services/tour/tour.service.d.ts +25 -0
  581. package/lib/services/tour/tour.service.d.ts.map +1 -0
  582. package/lib/services/util/util.service.d.ts +194 -0
  583. package/lib/services/util/util.service.d.ts.map +1 -0
  584. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts +17 -0
  585. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts.map +1 -0
  586. package/lib/validations/AppRegex.d.ts +50 -0
  587. package/lib/validations/AppRegex.d.ts.map +1 -0
  588. package/lib/validations/AppValidators.d.ts +82 -0
  589. package/lib/validations/AppValidators.d.ts.map +1 -0
  590. package/package.json +28 -0
  591. package/public-api.d.ts +128 -0
  592. package/public-api.d.ts.map +1 -0
@@ -0,0 +1,2521 @@
1
+ import { HttpParams } from '@angular/common/http';
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, ViewChildren } from '@angular/core';
3
+ import { ValidationModel } from '../../models/questionnaire/ValidationModel';
4
+ import { rowExpansionTrigger } from '../../annimations/app-animations';
5
+ import { PartialEmploymentModel } from '../../models/PartialEmploymentModel';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "./question-control.service";
8
+ import * as i2 from "./question.service";
9
+ import * as i3 from "@ngx-translate/core";
10
+ import * as i4 from "../../services/questionnaire/validation.service";
11
+ import * as i5 from "../../services/util/util.service";
12
+ import * as i6 from "@ionic/angular";
13
+ import * as i7 from "../../services/logger/logger.service";
14
+ import * as i8 from "../../services/claimant-service/claimant.service";
15
+ import * as i9 from "../../services/weekly-cert/weekly-cert-v2.service";
16
+ import * as i10 from "../../services/login/login.service";
17
+ import * as i11 from "@angular/common";
18
+ import * as i12 from "primeng/api";
19
+ import * as i13 from "@angular/forms";
20
+ import * as i14 from "primeng/autocomplete";
21
+ import * as i15 from "primeng/dialog";
22
+ import * as i16 from "primeng/password";
23
+ import * as i17 from "primeng/inputtext";
24
+ import * as i18 from "primeng/inputmask";
25
+ import * as i19 from "primeng/divider";
26
+ import * as i20 from "primeng/calendar";
27
+ import * as i21 from "primeng/checkbox";
28
+ import * as i22 from "primeng/selectbutton";
29
+ import * as i23 from "primeng/inputnumber";
30
+ import * as i24 from "../captcha/captcha.component";
31
+ import * as i25 from "../file-uploader/file-uploader.component";
32
+ import * as i26 from "../overlay-info/overlay-info.component";
33
+ import * as i27 from "../employer-grid/employer-grid.component";
34
+ import * as i28 from "../legal-disclaimar/legal-disclaimar.component";
35
+ import * as i29 from "../money-expect/money-expect.component";
36
+ import * as i30 from "../search-employer/search-employer.component";
37
+ import * as i31 from "../address/address.component";
38
+ import * as i32 from "../bank-details/bank-details.component";
39
+ import * as i33 from "../mfa2/mfa2.component";
40
+ import * as i34 from "../dependent-grid/dependent-grid.component";
41
+ import * as i35 from "../weekly-cert-employer-grid/weekly-cert-employer-grid.component";
42
+ import * as i36 from "../add-participant/add-participant.component";
43
+ import * as i37 from "../dropdown/dropdown.component";
44
+ import * as i38 from "../requalify-lift-previous-issues/requalify-lift-previous-issues.component";
45
+ import * as i39 from "../add-payment/add-payment.component";
46
+ import * as i40 from "../link/link.component";
47
+ import * as i41 from "../sign-ssn/sign-ssn.component";
48
+ import * as i42 from "../job-title/job-title.component";
49
+ import * as i43 from "../../pipes/translate/dynamic-translate.pipe";
50
+ import * as i44 from "../../pipes/trust-html/trust-html.pipe";
51
+ const _c0 = ["bankdtls"];
52
+ const _c1 = ["wcEmployerGrid"];
53
+ const _c2 = ["pCalendar"];
54
+ const _c3 = ["address"];
55
+ function DynamicFormQuestionComponent_p_dialog_1_ng_template_5_ion_button_0_Template(rf, ctx) { if (rf & 1) {
56
+ const _r30 = i0.ɵɵgetCurrentView();
57
+ i0.ɵɵelementStart(0, "ion-button", 14);
58
+ i0.ɵɵlistener("click", function DynamicFormQuestionComponent_p_dialog_1_ng_template_5_ion_button_0_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r30); const ctx_r29 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r29.reject()); });
59
+ i0.ɵɵtext(1);
60
+ i0.ɵɵelementEnd();
61
+ } if (rf & 2) {
62
+ const ctx_r27 = i0.ɵɵnextContext(3);
63
+ i0.ɵɵadvance(1);
64
+ i0.ɵɵtextInterpolate1(" ", ctx_r27.popUpNoActionLabel, " ");
65
+ } }
66
+ function DynamicFormQuestionComponent_p_dialog_1_ng_template_5_ion_button_1_Template(rf, ctx) { if (rf & 1) {
67
+ const _r32 = i0.ɵɵgetCurrentView();
68
+ i0.ɵɵelementStart(0, "ion-button", 15);
69
+ i0.ɵɵlistener("click", function DynamicFormQuestionComponent_p_dialog_1_ng_template_5_ion_button_1_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r32); const ctx_r31 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r31.accept()); });
70
+ i0.ɵɵtext(1);
71
+ i0.ɵɵelementEnd();
72
+ } if (rf & 2) {
73
+ const ctx_r28 = i0.ɵɵnextContext(3);
74
+ i0.ɵɵadvance(1);
75
+ i0.ɵɵtextInterpolate1(" ", ctx_r28.popUpYesActionLabel, " ");
76
+ } }
77
+ function DynamicFormQuestionComponent_p_dialog_1_ng_template_5_Template(rf, ctx) { if (rf & 1) {
78
+ i0.ɵɵtemplate(0, DynamicFormQuestionComponent_p_dialog_1_ng_template_5_ion_button_0_Template, 2, 1, "ion-button", 12)(1, DynamicFormQuestionComponent_p_dialog_1_ng_template_5_ion_button_1_Template, 2, 1, "ion-button", 13);
79
+ } if (rf & 2) {
80
+ const ctx_r26 = i0.ɵɵnextContext(2);
81
+ i0.ɵɵproperty("ngIf", ctx_r26.popUpNoActionLabel);
82
+ i0.ɵɵadvance(1);
83
+ i0.ɵɵproperty("ngIf", ctx_r26.popUpYesActionLabel);
84
+ } }
85
+ const _c4 = () => ({ width: "45vw" });
86
+ const _c5 = () => ({ "1200px": "660px", "992px": "660px", "768px": "660px", "576px": "100vw" });
87
+ function DynamicFormQuestionComponent_p_dialog_1_Template(rf, ctx) { if (rf & 1) {
88
+ const _r34 = i0.ɵɵgetCurrentView();
89
+ i0.ɵɵelementStart(0, "p-dialog", 9);
90
+ i0.ɵɵlistener("visibleChange", function DynamicFormQuestionComponent_p_dialog_1_Template_p_dialog_visibleChange_0_listener($event) { i0.ɵɵrestoreView(_r34); const ctx_r33 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r33.displayPosition = $event); });
91
+ i0.ɵɵelementStart(1, "h4", 10);
92
+ i0.ɵɵtext(2);
93
+ i0.ɵɵelementEnd();
94
+ i0.ɵɵelementStart(3, "p");
95
+ i0.ɵɵtext(4);
96
+ i0.ɵɵelementEnd();
97
+ i0.ɵɵtemplate(5, DynamicFormQuestionComponent_p_dialog_1_ng_template_5_Template, 2, 2, "ng-template", 11);
98
+ i0.ɵɵelementEnd();
99
+ } if (rf & 2) {
100
+ const ctx_r0 = i0.ɵɵnextContext();
101
+ i0.ɵɵstyleMap(i0.ɵɵpureFunction0(12, _c4));
102
+ i0.ɵɵproperty("visible", ctx_r0.displayPosition)("position", ctx_r0.position)("modal", true)("breakpoints", i0.ɵɵpureFunction0(13, _c5))("baseZIndex", 5000)("draggable", false)("resizable", false);
103
+ i0.ɵɵattribute("aria-label", ctx_r0.question.title);
104
+ i0.ɵɵadvance(2);
105
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.popUpHeader, " ");
106
+ i0.ɵɵadvance(2);
107
+ i0.ɵɵtextInterpolate1("", ctx_r0.popUpText, " ");
108
+ } }
109
+ function DynamicFormQuestionComponent_div_2_label_1_Template(rf, ctx) { if (rf & 1) {
110
+ i0.ɵɵelementStart(0, "label");
111
+ i0.ɵɵelement(1, "span", 17);
112
+ i0.ɵɵpipe(2, "trustHtml");
113
+ i0.ɵɵpipe(3, "dynamicTranslate");
114
+ i0.ɵɵelementEnd();
115
+ } if (rf & 2) {
116
+ const ctx_r35 = i0.ɵɵnextContext(2);
117
+ i0.ɵɵattribute("for", ctx_r35.question.name);
118
+ i0.ɵɵadvance(1);
119
+ i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(2, 2, i0.ɵɵpipeBind2(3, 4, ctx_r35.question.title, ctx_r35.dynamicParam)), i0.ɵɵsanitizeHtml);
120
+ } }
121
+ function DynamicFormQuestionComponent_div_2_Template(rf, ctx) { if (rf & 1) {
122
+ i0.ɵɵelementStart(0, "div", 16);
123
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_div_2_label_1_Template, 4, 7, "label", 3);
124
+ i0.ɵɵelementEnd();
125
+ } if (rf & 2) {
126
+ const ctx_r1 = i0.ɵɵnextContext();
127
+ i0.ɵɵproperty("ngStyle", ctx_r1.setStyle(ctx_r1.question.indent));
128
+ i0.ɵɵadvance(1);
129
+ i0.ɵɵproperty("ngIf", ctx_r1.question.indent === 1 && ctx_r1.question.type != "html" && ctx_r1.question.type != "hidden" && ctx_r1.question.type != "label");
130
+ } }
131
+ function DynamicFormQuestionComponent_div_3_Template(rf, ctx) { if (rf & 1) {
132
+ i0.ɵɵelementStart(0, "div", 16)(1, "label");
133
+ i0.ɵɵelement(2, "span", 17);
134
+ i0.ɵɵpipe(3, "trustHtml");
135
+ i0.ɵɵpipe(4, "dynamicTranslate");
136
+ i0.ɵɵelementEnd()();
137
+ } if (rf & 2) {
138
+ const ctx_r2 = i0.ɵɵnextContext();
139
+ i0.ɵɵproperty("ngStyle", ctx_r2.setStyle(ctx_r2.question.indent));
140
+ i0.ɵɵadvance(1);
141
+ i0.ɵɵattribute("for", ctx_r2.question.name);
142
+ i0.ɵɵadvance(1);
143
+ i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(3, 3, i0.ɵɵpipeBind2(4, 5, ctx_r2.question.title, ctx_r2.dynamicParam)), i0.ɵɵsanitizeHtml);
144
+ } }
145
+ function DynamicFormQuestionComponent_div_4_Template(rf, ctx) { if (rf & 1) {
146
+ i0.ɵɵelementStart(0, "div", 16)(1, "label");
147
+ i0.ɵɵelement(2, "span", 17);
148
+ i0.ɵɵpipe(3, "trustHtml");
149
+ i0.ɵɵpipe(4, "dynamicTranslate");
150
+ i0.ɵɵelementEnd()();
151
+ } if (rf & 2) {
152
+ const ctx_r3 = i0.ɵɵnextContext();
153
+ i0.ɵɵproperty("ngStyle", ctx_r3.setStyle(ctx_r3.question.indent));
154
+ i0.ɵɵadvance(1);
155
+ i0.ɵɵattribute("for", ctx_r3.question.name);
156
+ i0.ɵɵadvance(1);
157
+ i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(3, 3, i0.ɵɵpipeBind2(4, 5, ctx_r3.question.title, ctx_r3.dynamicParam)), i0.ɵɵsanitizeHtml);
158
+ } }
159
+ function DynamicFormQuestionComponent_div_5_Template(rf, ctx) { if (rf & 1) {
160
+ i0.ɵɵelementStart(0, "div", 16)(1, "label");
161
+ i0.ɵɵelement(2, "span", 17);
162
+ i0.ɵɵpipe(3, "trustHtml");
163
+ i0.ɵɵpipe(4, "dynamicTranslate");
164
+ i0.ɵɵelementEnd()();
165
+ } if (rf & 2) {
166
+ const ctx_r4 = i0.ɵɵnextContext();
167
+ i0.ɵɵproperty("ngStyle", ctx_r4.setStyle(ctx_r4.question.indent));
168
+ i0.ɵɵadvance(1);
169
+ i0.ɵɵattribute("for", ctx_r4.question.name);
170
+ i0.ɵɵadvance(1);
171
+ i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(3, 3, i0.ɵɵpipeBind2(4, 5, ctx_r4.question.title, ctx_r4.dynamicParam)), i0.ɵɵsanitizeHtml);
172
+ } }
173
+ function DynamicFormQuestionComponent_div_6_app_employer_grid_1_Template(rf, ctx) { if (rf & 1) {
174
+ const _r53 = i0.ɵɵgetCurrentView();
175
+ i0.ɵɵelementStart(0, "app-employer-grid", 29);
176
+ i0.ɵɵlistener("modelDisplay", function DynamicFormQuestionComponent_div_6_app_employer_grid_1_Template_app_employer_grid_modelDisplay_0_listener($event) { i0.ɵɵrestoreView(_r53); const ctx_r52 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r52.onModelDisplay($event)); });
177
+ i0.ɵɵelementEnd();
178
+ } if (rf & 2) {
179
+ const ctx_r36 = i0.ɵɵnextContext(2);
180
+ i0.ɵɵproperty("formControlName", ctx_r36.question.name)("form", ctx_r36.form)("dynamicParam", ctx_r36.dynamicParam);
181
+ } }
182
+ function DynamicFormQuestionComponent_div_6_app_legal_disclaimar_2_Template(rf, ctx) { if (rf & 1) {
183
+ const _r55 = i0.ɵɵgetCurrentView();
184
+ i0.ɵɵelementStart(0, "app-legal-disclaimar", 30);
185
+ i0.ɵɵlistener("accepted", function DynamicFormQuestionComponent_div_6_app_legal_disclaimar_2_Template_app_legal_disclaimar_accepted_0_listener($event) { i0.ɵɵrestoreView(_r55); const ctx_r54 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r54.onAccepted($event)); });
186
+ i0.ɵɵelementEnd();
187
+ } if (rf & 2) {
188
+ const ctx_r37 = i0.ɵɵnextContext(2);
189
+ i0.ɵɵproperty("componentData", ctx_r37.question.componentData)("question", ctx_r37.question)("form", ctx_r37.form);
190
+ } }
191
+ function DynamicFormQuestionComponent_div_6_money_expect_3_Template(rf, ctx) { if (rf & 1) {
192
+ i0.ɵɵelement(0, "money-expect");
193
+ } }
194
+ function DynamicFormQuestionComponent_div_6_app_captcha_4_Template(rf, ctx) { if (rf & 1) {
195
+ i0.ɵɵelement(0, "app-captcha", 31);
196
+ } if (rf & 2) {
197
+ const ctx_r39 = i0.ɵɵnextContext(2);
198
+ i0.ɵɵproperty("formControlName", ctx_r39.question.name);
199
+ } }
200
+ function DynamicFormQuestionComponent_div_6_app_file_uploader_5_Template(rf, ctx) { if (rf & 1) {
201
+ i0.ɵɵelement(0, "app-file-uploader", 31);
202
+ } if (rf & 2) {
203
+ const ctx_r40 = i0.ɵɵnextContext(2);
204
+ i0.ɵɵproperty("formControlName", ctx_r40.question.name);
205
+ } }
206
+ function DynamicFormQuestionComponent_div_6_app_address_6_Template(rf, ctx) { if (rf & 1) {
207
+ i0.ɵɵelement(0, "app-address", 32, 33);
208
+ } if (rf & 2) {
209
+ const ctx_r41 = i0.ɵɵnextContext(2);
210
+ i0.ɵɵproperty("formControlName", ctx_r41.question.name)("fromPopup", false)("countyRequired", ctx_r41.question.countyRequired)("inputId", ctx_r41.question.name);
211
+ } }
212
+ function DynamicFormQuestionComponent_div_6_app_bank_details_7_Template(rf, ctx) { if (rf & 1) {
213
+ i0.ɵɵelement(0, "app-bank-details", 31, 34);
214
+ } if (rf & 2) {
215
+ const ctx_r42 = i0.ɵɵnextContext(2);
216
+ i0.ɵɵproperty("formControlName", ctx_r42.question.name);
217
+ } }
218
+ function DynamicFormQuestionComponent_div_6_app_requalify_lift_previous_issues_8_Template(rf, ctx) { if (rf & 1) {
219
+ i0.ɵɵelement(0, "app-requalify-lift-previous-issues", 35);
220
+ } if (rf & 2) {
221
+ const ctx_r43 = i0.ɵɵnextContext(2);
222
+ i0.ɵɵproperty("formControlName", ctx_r43.question.name)("componentData", ctx_r43.question.componentData)("form", ctx_r43.form);
223
+ } }
224
+ function DynamicFormQuestionComponent_div_6_app_dependent_grid_9_Template(rf, ctx) { if (rf & 1) {
225
+ i0.ɵɵelement(0, "app-dependent-grid", 31);
226
+ } if (rf & 2) {
227
+ const ctx_r44 = i0.ɵɵnextContext(2);
228
+ i0.ɵɵproperty("formControlName", ctx_r44.question.name);
229
+ } }
230
+ function DynamicFormQuestionComponent_div_6_app_weekly_cert_employer_grid_10_Template(rf, ctx) { if (rf & 1) {
231
+ i0.ɵɵelement(0, "app-weekly-cert-employer-grid", 36, 37);
232
+ } if (rf & 2) {
233
+ const ctx_r45 = i0.ɵɵnextContext(2);
234
+ i0.ɵɵproperty("dynamicParam", ctx_r45.dynamicParam)("formControlName", ctx_r45.question.name);
235
+ } }
236
+ function DynamicFormQuestionComponent_div_6_app_search_employer_11_Template(rf, ctx) { if (rf & 1) {
237
+ const _r60 = i0.ɵɵgetCurrentView();
238
+ i0.ɵɵelementStart(0, "app-search-employer", 38);
239
+ i0.ɵɵlistener("onFound", function DynamicFormQuestionComponent_div_6_app_search_employer_11_Template_app_search_employer_onFound_0_listener($event) { i0.ɵɵrestoreView(_r60); const ctx_r59 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r59.setEmployer($event)); })("onEmpty", function DynamicFormQuestionComponent_div_6_app_search_employer_11_Template_app_search_employer_onEmpty_0_listener() { i0.ɵɵrestoreView(_r60); const ctx_r61 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r61.resetEmployer()); });
240
+ i0.ɵɵelementEnd();
241
+ } if (rf & 2) {
242
+ const ctx_r46 = i0.ɵɵnextContext(2);
243
+ i0.ɵɵproperty("formControlName", ctx_r46.question.name);
244
+ } }
245
+ function DynamicFormQuestionComponent_div_6_app_add_participant_12_Template(rf, ctx) { if (rf & 1) {
246
+ i0.ɵɵelement(0, "app-add-participant", 31);
247
+ } if (rf & 2) {
248
+ const ctx_r47 = i0.ɵɵnextContext(2);
249
+ i0.ɵɵproperty("formControlName", ctx_r47.question.name);
250
+ } }
251
+ function DynamicFormQuestionComponent_div_6_app_add_payment_13_Template(rf, ctx) { if (rf & 1) {
252
+ i0.ɵɵelement(0, "app-add-payment", 39);
253
+ } if (rf & 2) {
254
+ const ctx_r48 = i0.ɵɵnextContext(2);
255
+ i0.ɵɵproperty("potentialIssueId", ctx_r48.potentialIssueId)("formControlName", ctx_r48.question.name);
256
+ } }
257
+ function DynamicFormQuestionComponent_div_6_app_link_14_Template(rf, ctx) { if (rf & 1) {
258
+ i0.ɵɵelement(0, "app-link", 40);
259
+ } if (rf & 2) {
260
+ const ctx_r49 = i0.ɵɵnextContext(2);
261
+ i0.ɵɵproperty("isRequired", ctx_r49.question.isRequired)("formControlName", ctx_r49.question.name)("text", ctx_r49.linkComponentData == null ? null : ctx_r49.linkComponentData.text)("uri", ctx_r49.linkComponentData == null ? null : ctx_r49.linkComponentData.uri)("externalUrl", ctx_r49.linkComponentData == null ? null : ctx_r49.linkComponentData.externalUrl);
262
+ } }
263
+ function DynamicFormQuestionComponent_div_6_app_sign_ssn_15_Template(rf, ctx) { if (rf & 1) {
264
+ i0.ɵɵelement(0, "app-sign-ssn", 41);
265
+ } if (rf & 2) {
266
+ const ctx_r50 = i0.ɵɵnextContext(2);
267
+ i0.ɵɵproperty("isRequired", ctx_r50.question.isRequired)("formControlName", ctx_r50.question.name)("inputId", ctx_r50.question.name);
268
+ } }
269
+ function DynamicFormQuestionComponent_div_6_app_job_title_16_Template(rf, ctx) { if (rf & 1) {
270
+ i0.ɵɵelement(0, "app-job-title", 42, 43);
271
+ } if (rf & 2) {
272
+ const ctx_r51 = i0.ɵɵnextContext(2);
273
+ i0.ɵɵproperty("control", ctx_r51.form.controls[ctx_r51.question.name]);
274
+ } }
275
+ function DynamicFormQuestionComponent_div_6_Template(rf, ctx) { if (rf & 1) {
276
+ i0.ɵɵelementStart(0, "div");
277
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_div_6_app_employer_grid_1_Template, 1, 3, "app-employer-grid", 18)(2, DynamicFormQuestionComponent_div_6_app_legal_disclaimar_2_Template, 1, 3, "app-legal-disclaimar", 19)(3, DynamicFormQuestionComponent_div_6_money_expect_3_Template, 1, 0, "money-expect", 3)(4, DynamicFormQuestionComponent_div_6_app_captcha_4_Template, 1, 1, "app-captcha", 20)(5, DynamicFormQuestionComponent_div_6_app_file_uploader_5_Template, 1, 1, "app-file-uploader", 20)(6, DynamicFormQuestionComponent_div_6_app_address_6_Template, 2, 4, "app-address", 21)(7, DynamicFormQuestionComponent_div_6_app_bank_details_7_Template, 2, 1, "app-bank-details", 20)(8, DynamicFormQuestionComponent_div_6_app_requalify_lift_previous_issues_8_Template, 1, 3, "app-requalify-lift-previous-issues", 22)(9, DynamicFormQuestionComponent_div_6_app_dependent_grid_9_Template, 1, 1, "app-dependent-grid", 20)(10, DynamicFormQuestionComponent_div_6_app_weekly_cert_employer_grid_10_Template, 2, 2, "app-weekly-cert-employer-grid", 23)(11, DynamicFormQuestionComponent_div_6_app_search_employer_11_Template, 1, 1, "app-search-employer", 24)(12, DynamicFormQuestionComponent_div_6_app_add_participant_12_Template, 1, 1, "app-add-participant", 20)(13, DynamicFormQuestionComponent_div_6_app_add_payment_13_Template, 1, 2, "app-add-payment", 25)(14, DynamicFormQuestionComponent_div_6_app_link_14_Template, 1, 5, "app-link", 26)(15, DynamicFormQuestionComponent_div_6_app_sign_ssn_15_Template, 1, 3, "app-sign-ssn", 27)(16, DynamicFormQuestionComponent_div_6_app_job_title_16_Template, 2, 1, "app-job-title", 28);
278
+ i0.ɵɵelementEnd();
279
+ } if (rf & 2) {
280
+ const ctx_r5 = i0.ɵɵnextContext();
281
+ i0.ɵɵadvance(1);
282
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-employer-grid");
283
+ i0.ɵɵadvance(1);
284
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-legal-disclaimar");
285
+ i0.ɵɵadvance(1);
286
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "money-expect");
287
+ i0.ɵɵadvance(1);
288
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-captcha");
289
+ i0.ɵɵadvance(1);
290
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-file-uploader");
291
+ i0.ɵɵadvance(1);
292
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-address");
293
+ i0.ɵɵadvance(1);
294
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-bank-details");
295
+ i0.ɵɵadvance(1);
296
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-requalify-lift-previous-issues");
297
+ i0.ɵɵadvance(1);
298
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-dependent-grid");
299
+ i0.ɵɵadvance(1);
300
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-weekly-cert-employer-grid");
301
+ i0.ɵɵadvance(1);
302
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-search-employer");
303
+ i0.ɵɵadvance(1);
304
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-add-participant");
305
+ i0.ɵɵadvance(1);
306
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-add-payment");
307
+ i0.ɵɵadvance(1);
308
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-link");
309
+ i0.ɵɵadvance(1);
310
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-sign-ssn");
311
+ i0.ɵɵadvance(1);
312
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-job-title");
313
+ } }
314
+ function DynamicFormQuestionComponent_div_7_Template(rf, ctx) { if (rf & 1) {
315
+ i0.ɵɵelementStart(0, "div", 16);
316
+ i0.ɵɵelement(1, "span", 17);
317
+ i0.ɵɵpipe(2, "trustHtml");
318
+ i0.ɵɵpipe(3, "dynamicTranslate");
319
+ i0.ɵɵelementEnd();
320
+ } if (rf & 2) {
321
+ const ctx_r6 = i0.ɵɵnextContext();
322
+ i0.ɵɵproperty("ngStyle", ctx_r6.setStyle(ctx_r6.question.indent));
323
+ i0.ɵɵadvance(1);
324
+ i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(2, 2, i0.ɵɵpipeBind2(3, 4, ctx_r6.question.title, ctx_r6.dynamicParam)), i0.ɵɵsanitizeHtml);
325
+ } }
326
+ function DynamicFormQuestionComponent_div_8_div_4_Template(rf, ctx) { if (rf & 1) {
327
+ i0.ɵɵelementStart(0, "div", 47);
328
+ i0.ɵɵelement(1, "app-overlay-info", 48);
329
+ i0.ɵɵpipe(2, "dynamicTranslate");
330
+ i0.ɵɵelementEnd();
331
+ } if (rf & 2) {
332
+ const ctx_r63 = i0.ɵɵnextContext(2);
333
+ i0.ɵɵadvance(1);
334
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r63.question.description, ctx_r63.dynamicParam));
335
+ } }
336
+ function DynamicFormQuestionComponent_div_8_Template(rf, ctx) { if (rf & 1) {
337
+ i0.ɵɵelementStart(0, "div", 44);
338
+ i0.ɵɵelement(1, "div", 45);
339
+ i0.ɵɵpipe(2, "trustHtml");
340
+ i0.ɵɵpipe(3, "dynamicTranslate");
341
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_div_8_div_4_Template, 3, 4, "div", 46);
342
+ i0.ɵɵelementEnd();
343
+ } if (rf & 2) {
344
+ const ctx_r7 = i0.ɵɵnextContext();
345
+ i0.ɵɵadvance(1);
346
+ i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind1(2, 2, i0.ɵɵpipeBind2(3, 4, ctx_r7.question.html, ctx_r7.dynamicParam)), i0.ɵɵsanitizeHtml);
347
+ i0.ɵɵadvance(3);
348
+ i0.ɵɵproperty("ngIf", ctx_r7.question.description);
349
+ } }
350
+ function DynamicFormQuestionComponent_ng_container_10_div_2_Template(rf, ctx) { if (rf & 1) {
351
+ const _r85 = i0.ɵɵgetCurrentView();
352
+ i0.ɵɵelementStart(0, "div")(1, "div", 51, 52)(3, "p-calendar", 53);
353
+ i0.ɵɵlistener("onBlur", function DynamicFormQuestionComponent_ng_container_10_div_2_Template_p_calendar_onBlur_3_listener() { i0.ɵɵrestoreView(_r85); const ctx_r84 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r84.validate(ctx_r84.question)); })("onSelect", function DynamicFormQuestionComponent_ng_container_10_div_2_Template_p_calendar_onSelect_3_listener() { i0.ɵɵrestoreView(_r85); const ctx_r86 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r86.validate(ctx_r86.question)); })("onInput", function DynamicFormQuestionComponent_ng_container_10_div_2_Template_p_calendar_onInput_3_listener($event) { i0.ɵɵrestoreView(_r85); const ctx_r87 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r87.dateInput($event)); });
354
+ i0.ɵɵelementEnd()()();
355
+ } if (rf & 2) {
356
+ const ctx_r64 = i0.ɵɵnextContext(2);
357
+ i0.ɵɵadvance(1);
358
+ i0.ɵɵproperty("ngStyle", ctx_r64.setStyle(ctx_r64.question.indent));
359
+ i0.ɵɵadvance(2);
360
+ i0.ɵɵproperty("formControlName", ctx_r64.question.name)("inputId", ctx_r64.question.name)("monthNavigator", true)("yearNavigator", true)("showIcon", true)("minDate", ctx_r64.showMinDate ? ctx_r64.minDate : null)("maxDate", ctx_r64.showMaxDate ? ctx_r64.maxDate : null)("showOnFocus", false)("iconAriaLabel", ctx_r64.question.title);
361
+ } }
362
+ function DynamicFormQuestionComponent_ng_container_10_div_3_Template(rf, ctx) { if (rf & 1) {
363
+ const _r90 = i0.ɵɵgetCurrentView();
364
+ i0.ɵɵelementStart(0, "div")(1, "div", 51, 52)(3, "p-calendar", 54);
365
+ i0.ɵɵlistener("onBlur", function DynamicFormQuestionComponent_ng_container_10_div_3_Template_p_calendar_onBlur_3_listener() { i0.ɵɵrestoreView(_r90); const ctx_r89 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r89.blurDOB(ctx_r89.question)); })("onSelect", function DynamicFormQuestionComponent_ng_container_10_div_3_Template_p_calendar_onSelect_3_listener() { i0.ɵɵrestoreView(_r90); const ctx_r91 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r91.validate(ctx_r91.question)); })("onInput", function DynamicFormQuestionComponent_ng_container_10_div_3_Template_p_calendar_onInput_3_listener($event) { i0.ɵɵrestoreView(_r90); const ctx_r92 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r92.dateInput($event)); });
366
+ i0.ɵɵelementEnd()()();
367
+ } if (rf & 2) {
368
+ const ctx_r65 = i0.ɵɵnextContext(2);
369
+ i0.ɵɵadvance(1);
370
+ i0.ɵɵproperty("ngStyle", ctx_r65.setStyle(ctx_r65.question.indent));
371
+ i0.ɵɵadvance(2);
372
+ i0.ɵɵproperty("formControlName", ctx_r65.question.name)("inputId", ctx_r65.question.name)("monthNavigator", true)("yearNavigator", true)("showIcon", true)("minDate", ctx_r65.minDateDOB)("maxDate", ctx_r65.maxDateDOB)("showOnFocus", false)("iconAriaLabel", ctx_r65.question.title);
373
+ } }
374
+ function DynamicFormQuestionComponent_ng_container_10_div_4_Template(rf, ctx) { if (rf & 1) {
375
+ const _r94 = i0.ɵɵgetCurrentView();
376
+ i0.ɵɵelementStart(0, "div", 51)(1, "p-inputMask", 55);
377
+ i0.ɵɵlistener("onComplete", function DynamicFormQuestionComponent_ng_container_10_div_4_Template_p_inputMask_onComplete_1_listener() { i0.ɵɵrestoreView(_r94); const ctx_r93 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r93.validate(ctx_r93.question)); })("onFocus", function DynamicFormQuestionComponent_ng_container_10_div_4_Template_p_inputMask_onFocus_1_listener($event) { i0.ɵɵrestoreView(_r94); const ctx_r95 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r95.unmask($event)); })("onBlur", function DynamicFormQuestionComponent_ng_container_10_div_4_Template_p_inputMask_onBlur_1_listener($event) { i0.ɵɵrestoreView(_r94); const ctx_r96 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r96.mask($event)); });
378
+ i0.ɵɵelementEnd()();
379
+ } if (rf & 2) {
380
+ const ctx_r66 = i0.ɵɵnextContext(2);
381
+ i0.ɵɵproperty("ngStyle", ctx_r66.setStyle(ctx_r66.question.indent));
382
+ i0.ɵɵadvance(1);
383
+ i0.ɵɵclassProp("hide-content", ctx_r66.maskClass);
384
+ i0.ɵɵproperty("inputId", ctx_r66.question.name)("formControlName", ctx_r66.question.name);
385
+ i0.ɵɵattribute("aria-label", ctx_r66.question.title);
386
+ } }
387
+ function DynamicFormQuestionComponent_ng_container_10_div_5_Template(rf, ctx) { if (rf & 1) {
388
+ const _r98 = i0.ɵɵgetCurrentView();
389
+ i0.ɵɵelementStart(0, "div", 51)(1, "p-inputMask", 56);
390
+ i0.ɵɵlistener("onComplete", function DynamicFormQuestionComponent_ng_container_10_div_5_Template_p_inputMask_onComplete_1_listener() { i0.ɵɵrestoreView(_r98); const ctx_r97 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r97.validate(ctx_r97.question)); });
391
+ i0.ɵɵelementEnd()();
392
+ } if (rf & 2) {
393
+ const ctx_r67 = i0.ɵɵnextContext(2);
394
+ i0.ɵɵproperty("ngStyle", ctx_r67.setStyle(ctx_r67.question.indent));
395
+ i0.ɵɵadvance(1);
396
+ i0.ɵɵproperty("inputId", ctx_r67.question.name)("formControlName", ctx_r67.question.name)("value", 81 - 586 - 0 - 1);
397
+ } }
398
+ function DynamicFormQuestionComponent_ng_container_10_div_6_Template(rf, ctx) { if (rf & 1) {
399
+ i0.ɵɵelementStart(0, "div", 51);
400
+ i0.ɵɵelement(1, "p-inputNumber", 57);
401
+ i0.ɵɵelementEnd();
402
+ } if (rf & 2) {
403
+ const ctx_r68 = i0.ɵɵnextContext(2);
404
+ i0.ɵɵproperty("ngStyle", ctx_r68.setStyle(ctx_r68.question.indent));
405
+ i0.ɵɵadvance(1);
406
+ i0.ɵɵproperty("inputId", ctx_r68.question.name)("formControlName", ctx_r68.question.name)("minFractionDigits", 2)("ariaLabel", ctx_r68.question.title);
407
+ } }
408
+ function DynamicFormQuestionComponent_ng_container_10_div_7_input_1_Template(rf, ctx) { if (rf & 1) {
409
+ i0.ɵɵelement(0, "input", 61);
410
+ i0.ɵɵpipe(1, "translate");
411
+ } if (rf & 2) {
412
+ const ctx_r99 = i0.ɵɵnextContext(3);
413
+ i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(1, 5, "common.optional"));
414
+ i0.ɵɵproperty("maxLength", ctx_r99.question.maxLength)("id", ctx_r99.question.name)("formControlName", ctx_r99.question.name);
415
+ i0.ɵɵattribute("aria-label", ctx_r99.question.title);
416
+ } }
417
+ function DynamicFormQuestionComponent_ng_container_10_div_7_input_2_Template(rf, ctx) { if (rf & 1) {
418
+ i0.ɵɵelement(0, "input", 62);
419
+ i0.ɵɵpipe(1, "translate");
420
+ } if (rf & 2) {
421
+ const ctx_r100 = i0.ɵɵnextContext(3);
422
+ i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(1, 4, "common.optional"));
423
+ i0.ɵɵproperty("id", ctx_r100.question.name)("formControlName", ctx_r100.question.name);
424
+ i0.ɵɵattribute("aria-label", ctx_r100.question.title);
425
+ } }
426
+ function DynamicFormQuestionComponent_ng_container_10_div_7_input_3_Template(rf, ctx) { if (rf & 1) {
427
+ i0.ɵɵelement(0, "input", 61);
428
+ i0.ɵɵpipe(1, "translate");
429
+ } if (rf & 2) {
430
+ const ctx_r101 = i0.ɵɵnextContext(3);
431
+ i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(1, 4, "common.optional"));
432
+ i0.ɵɵproperty("maxLength", ctx_r101.question.maxLength)("id", ctx_r101.question.name)("formControlName", ctx_r101.question.name);
433
+ } }
434
+ function DynamicFormQuestionComponent_ng_container_10_div_7_input_4_Template(rf, ctx) { if (rf & 1) {
435
+ i0.ɵɵelement(0, "input", 63);
436
+ i0.ɵɵpipe(1, "translate");
437
+ } if (rf & 2) {
438
+ const ctx_r102 = i0.ɵɵnextContext(3);
439
+ i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(1, 4, "common.optional"));
440
+ i0.ɵɵproperty("id", ctx_r102.question.name)("formControlName", ctx_r102.question.name);
441
+ i0.ɵɵattribute("aria-label", ctx_r102.question.title);
442
+ } }
443
+ function DynamicFormQuestionComponent_ng_container_10_div_7_Template(rf, ctx) { if (rf & 1) {
444
+ i0.ɵɵelementStart(0, "div", 51);
445
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_7_input_1_Template, 2, 7, "input", 58)(2, DynamicFormQuestionComponent_ng_container_10_div_7_input_2_Template, 2, 6, "input", 59)(3, DynamicFormQuestionComponent_ng_container_10_div_7_input_3_Template, 2, 6, "input", 58)(4, DynamicFormQuestionComponent_ng_container_10_div_7_input_4_Template, 2, 6, "input", 60);
446
+ i0.ɵɵelementEnd();
447
+ } if (rf & 2) {
448
+ const ctx_r69 = i0.ɵɵnextContext(2);
449
+ i0.ɵɵproperty("ngStyle", ctx_r69.setStyle(ctx_r69.question.indent));
450
+ i0.ɵɵadvance(1);
451
+ i0.ɵɵproperty("ngIf", ctx_r69.question.size && ctx_r69.question.maxLength);
452
+ i0.ɵɵadvance(1);
453
+ i0.ɵɵproperty("ngIf", ctx_r69.question.size && !ctx_r69.question.maxLength);
454
+ i0.ɵɵadvance(1);
455
+ i0.ɵɵproperty("ngIf", !ctx_r69.question.size && ctx_r69.question.maxLength);
456
+ i0.ɵɵadvance(1);
457
+ i0.ɵɵproperty("ngIf", !ctx_r69.question.size && !ctx_r69.question.maxLength);
458
+ } }
459
+ function DynamicFormQuestionComponent_ng_container_10_div_8_input_1_Template(rf, ctx) { if (rf & 1) {
460
+ i0.ɵɵelement(0, "input", 65);
461
+ } if (rf & 2) {
462
+ const ctx_r103 = i0.ɵɵnextContext(3);
463
+ i0.ɵɵproperty("maxLength", ctx_r103.question.maxLength)("id", ctx_r103.question.name)("formControlName", ctx_r103.question.name)("placeholder", ctx_r103.question.placeholder ? ctx_r103.question.placeholder : "");
464
+ i0.ɵɵattribute("aria-label", ctx_r103.question.title);
465
+ } }
466
+ function DynamicFormQuestionComponent_ng_container_10_div_8_input_2_Template(rf, ctx) { if (rf & 1) {
467
+ i0.ɵɵelement(0, "input", 63);
468
+ } if (rf & 2) {
469
+ const ctx_r104 = i0.ɵɵnextContext(3);
470
+ i0.ɵɵproperty("id", ctx_r104.question.name)("formControlName", ctx_r104.question.name)("placeholder", ctx_r104.question.placeholder ? ctx_r104.question.placeholder : "");
471
+ i0.ɵɵattribute("aria-label", ctx_r104.question.title);
472
+ } }
473
+ function DynamicFormQuestionComponent_ng_container_10_div_8_input_3_Template(rf, ctx) { if (rf & 1) {
474
+ i0.ɵɵelement(0, "input", 65);
475
+ } if (rf & 2) {
476
+ const ctx_r105 = i0.ɵɵnextContext(3);
477
+ i0.ɵɵproperty("maxLength", ctx_r105.question.maxLength)("id", ctx_r105.question.name)("formControlName", ctx_r105.question.name)("placeholder", ctx_r105.question.placeholder ? ctx_r105.question.placeholder : "");
478
+ i0.ɵɵattribute("aria-label", ctx_r105.question.title);
479
+ } }
480
+ function DynamicFormQuestionComponent_ng_container_10_div_8_input_4_Template(rf, ctx) { if (rf & 1) {
481
+ i0.ɵɵelement(0, "input", 63);
482
+ } if (rf & 2) {
483
+ const ctx_r106 = i0.ɵɵnextContext(3);
484
+ i0.ɵɵproperty("id", ctx_r106.question.name)("formControlName", ctx_r106.question.name)("placeholder", ctx_r106.question.placeholder ? ctx_r106.question.placeholder : "");
485
+ i0.ɵɵattribute("aria-label", ctx_r106.question.title);
486
+ } }
487
+ function DynamicFormQuestionComponent_ng_container_10_div_8_Template(rf, ctx) { if (rf & 1) {
488
+ i0.ɵɵelementStart(0, "div", 51);
489
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_8_input_1_Template, 1, 5, "input", 64)(2, DynamicFormQuestionComponent_ng_container_10_div_8_input_2_Template, 1, 4, "input", 60)(3, DynamicFormQuestionComponent_ng_container_10_div_8_input_3_Template, 1, 5, "input", 64)(4, DynamicFormQuestionComponent_ng_container_10_div_8_input_4_Template, 1, 4, "input", 60);
490
+ i0.ɵɵelementEnd();
491
+ } if (rf & 2) {
492
+ const ctx_r70 = i0.ɵɵnextContext(2);
493
+ i0.ɵɵproperty("ngStyle", ctx_r70.setStyle(ctx_r70.question.indent));
494
+ i0.ɵɵadvance(1);
495
+ i0.ɵɵproperty("ngIf", ctx_r70.question.size && ctx_r70.question.maxLength);
496
+ i0.ɵɵadvance(1);
497
+ i0.ɵɵproperty("ngIf", ctx_r70.question.size && !ctx_r70.question.maxLength);
498
+ i0.ɵɵadvance(1);
499
+ i0.ɵɵproperty("ngIf", !ctx_r70.question.size && ctx_r70.question.maxLength);
500
+ i0.ɵɵadvance(1);
501
+ i0.ɵɵproperty("ngIf", !ctx_r70.question.size && !ctx_r70.question.maxLength);
502
+ } }
503
+ function DynamicFormQuestionComponent_ng_container_10_div_9_input_1_Template(rf, ctx) { if (rf & 1) {
504
+ i0.ɵɵelement(0, "input", 69);
505
+ } if (rf & 2) {
506
+ const ctx_r107 = i0.ɵɵnextContext(3);
507
+ i0.ɵɵproperty("maxLength", ctx_r107.question.maxLength)("id", ctx_r107.question.name)("formControlName", ctx_r107.question.name)("disabled", !ctx_r107.phoneVerified)("autocomplete", (ctx_r107.question == null ? null : ctx_r107.question.name.includes("secAns")) ? "off" : "on");
508
+ i0.ɵɵattribute("aria-label", ctx_r107.question.title);
509
+ } }
510
+ function DynamicFormQuestionComponent_ng_container_10_div_9_input_2_Template(rf, ctx) { if (rf & 1) {
511
+ i0.ɵɵelement(0, "input", 70);
512
+ } if (rf & 2) {
513
+ const ctx_r108 = i0.ɵɵnextContext(3);
514
+ i0.ɵɵproperty("id", ctx_r108.question.name)("formControlName", ctx_r108.question.name)("disabled", !ctx_r108.phoneVerified);
515
+ i0.ɵɵattribute("aria-label", ctx_r108.question.title);
516
+ } }
517
+ function DynamicFormQuestionComponent_ng_container_10_div_9_input_3_Template(rf, ctx) { if (rf & 1) {
518
+ i0.ɵɵelement(0, "input", 71);
519
+ } if (rf & 2) {
520
+ const ctx_r109 = i0.ɵɵnextContext(3);
521
+ i0.ɵɵproperty("maxLength", ctx_r109.question.maxLength)("id", ctx_r109.question.name)("formControlName", ctx_r109.question.name)("disabled", !ctx_r109.phoneVerified);
522
+ i0.ɵɵattribute("aria-label", ctx_r109.question.title);
523
+ } }
524
+ function DynamicFormQuestionComponent_ng_container_10_div_9_input_4_Template(rf, ctx) { if (rf & 1) {
525
+ i0.ɵɵelement(0, "input", 70);
526
+ } if (rf & 2) {
527
+ const ctx_r110 = i0.ɵɵnextContext(3);
528
+ i0.ɵɵproperty("id", ctx_r110.question.name)("formControlName", ctx_r110.question.name)("disabled", !ctx_r110.phoneVerified);
529
+ i0.ɵɵattribute("aria-label", ctx_r110.question.title);
530
+ } }
531
+ function DynamicFormQuestionComponent_ng_container_10_div_9_Template(rf, ctx) { if (rf & 1) {
532
+ i0.ɵɵelementStart(0, "div", 51);
533
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_9_input_1_Template, 1, 6, "input", 66)(2, DynamicFormQuestionComponent_ng_container_10_div_9_input_2_Template, 1, 4, "input", 67)(3, DynamicFormQuestionComponent_ng_container_10_div_9_input_3_Template, 1, 5, "input", 68)(4, DynamicFormQuestionComponent_ng_container_10_div_9_input_4_Template, 1, 4, "input", 67);
534
+ i0.ɵɵelementEnd();
535
+ } if (rf & 2) {
536
+ const ctx_r71 = i0.ɵɵnextContext(2);
537
+ i0.ɵɵproperty("ngStyle", ctx_r71.setStyle(ctx_r71.question.indent));
538
+ i0.ɵɵadvance(1);
539
+ i0.ɵɵproperty("ngIf", ctx_r71.question.size && ctx_r71.question.maxLength);
540
+ i0.ɵɵadvance(1);
541
+ i0.ɵɵproperty("ngIf", ctx_r71.question.size && !ctx_r71.question.maxLength);
542
+ i0.ɵɵadvance(1);
543
+ i0.ɵɵproperty("ngIf", !ctx_r71.question.size && ctx_r71.question.maxLength);
544
+ i0.ɵɵadvance(1);
545
+ i0.ɵɵproperty("ngIf", !ctx_r71.question.size && !ctx_r71.question.maxLength);
546
+ } }
547
+ function DynamicFormQuestionComponent_ng_container_10_div_10_Template(rf, ctx) { if (rf & 1) {
548
+ i0.ɵɵelementStart(0, "div")(1, "div", 51);
549
+ i0.ɵɵelement(2, "input", 72);
550
+ i0.ɵɵelementEnd()();
551
+ } if (rf & 2) {
552
+ const ctx_r72 = i0.ɵɵnextContext(2);
553
+ i0.ɵɵadvance(1);
554
+ i0.ɵɵproperty("ngStyle", ctx_r72.setStyle(ctx_r72.question.indent));
555
+ i0.ɵɵadvance(1);
556
+ i0.ɵɵproperty("maxLength", ctx_r72.question.maxLength)("id", ctx_r72.question.name)("formControlName", ctx_r72.question.name);
557
+ i0.ɵɵattribute("aria-label", ctx_r72.question.title)("aria-label", ctx_r72.question.title);
558
+ } }
559
+ function DynamicFormQuestionComponent_ng_container_10_div_11_Template(rf, ctx) { if (rf & 1) {
560
+ i0.ɵɵelementStart(0, "div")(1, "div", 51);
561
+ i0.ɵɵelement(2, "input", 72);
562
+ i0.ɵɵelementEnd()();
563
+ } if (rf & 2) {
564
+ const ctx_r73 = i0.ɵɵnextContext(2);
565
+ i0.ɵɵadvance(1);
566
+ i0.ɵɵproperty("ngStyle", ctx_r73.setStyle(ctx_r73.question.indent));
567
+ i0.ɵɵadvance(1);
568
+ i0.ɵɵproperty("maxLength", ctx_r73.question.maxLength)("id", ctx_r73.question.name)("formControlName", ctx_r73.question.name);
569
+ i0.ɵɵattribute("aria-label", ctx_r73.question.title)("aria-label", ctx_r73.question.title);
570
+ } }
571
+ const _c6 = a0 => ({ "padding-left.px": a0 });
572
+ function DynamicFormQuestionComponent_ng_container_10_div_12_Template(rf, ctx) { if (rf & 1) {
573
+ i0.ɵɵelementStart(0, "div", 51);
574
+ i0.ɵɵelement(1, "input", 63);
575
+ i0.ɵɵelementEnd();
576
+ } if (rf & 2) {
577
+ const ctx_r74 = i0.ɵɵnextContext(2);
578
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(6, _c6, ctx_r74.question.indent * 10))("ngStyle", ctx_r74.setStyle(ctx_r74.question.indent));
579
+ i0.ɵɵadvance(1);
580
+ i0.ɵɵproperty("id", ctx_r74.question.name)("formControlName", ctx_r74.question.name)("placeholder", ctx_r74.question.placeholder ? ctx_r74.question.placeholder : "");
581
+ i0.ɵɵattribute("aria-label", ctx_r74.question.title);
582
+ } }
583
+ function DynamicFormQuestionComponent_ng_container_10_div_13_p_inputMask_1_Template(rf, ctx) { if (rf & 1) {
584
+ const _r113 = i0.ɵɵgetCurrentView();
585
+ i0.ɵɵelementStart(0, "p-inputMask", 74);
586
+ i0.ɵɵlistener("onBlur", function DynamicFormQuestionComponent_ng_container_10_div_13_p_inputMask_1_Template_p_inputMask_onBlur_0_listener($event) { i0.ɵɵrestoreView(_r113); const ctx_r112 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r112.checkForValueChange($event)); });
587
+ i0.ɵɵpipe(1, "translate");
588
+ i0.ɵɵelementEnd();
589
+ } if (rf & 2) {
590
+ const ctx_r111 = i0.ɵɵnextContext(3);
591
+ i0.ɵɵproperty("inputId", ctx_r111.question.name)("formControlName", ctx_r111.question.name)("placeholder", ctx_r111.question.isRequired ? "999-999-9999" : i0.ɵɵpipeBind1(1, 4, "common.optional"));
592
+ i0.ɵɵattribute("aria-label", ctx_r111.question.title);
593
+ } }
594
+ function DynamicFormQuestionComponent_ng_container_10_div_13_Template(rf, ctx) { if (rf & 1) {
595
+ i0.ɵɵelementStart(0, "div");
596
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_13_p_inputMask_1_Template, 2, 6, "p-inputMask", 73);
597
+ i0.ɵɵelementEnd();
598
+ } if (rf & 2) {
599
+ const ctx_r75 = i0.ɵɵnextContext(2);
600
+ i0.ɵɵadvance(1);
601
+ i0.ɵɵproperty("ngIf", ctx_r75.question.inputType && ctx_r75.question.inputType === "text");
602
+ } }
603
+ function DynamicFormQuestionComponent_ng_container_10_div_14_p_inputMask_1_Template(rf, ctx) { if (rf & 1) {
604
+ const _r116 = i0.ɵɵgetCurrentView();
605
+ i0.ɵɵelementStart(0, "p-inputMask", 76);
606
+ i0.ɵɵlistener("onBlur", function DynamicFormQuestionComponent_ng_container_10_div_14_p_inputMask_1_Template_p_inputMask_onBlur_0_listener($event) { i0.ɵɵrestoreView(_r116); const ctx_r115 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r115.checkForValueChange($event)); });
607
+ i0.ɵɵpipe(1, "translate");
608
+ i0.ɵɵelementEnd();
609
+ } if (rf & 2) {
610
+ const ctx_r114 = i0.ɵɵnextContext(3);
611
+ i0.ɵɵproperty("inputId", ctx_r114.question.name)("formControlName", ctx_r114.question.name)("placeholder", ctx_r114.question.isRequired ? "999 999-9999" : i0.ɵɵpipeBind1(1, 4, "common.optional"));
612
+ i0.ɵɵattribute("aria-label", ctx_r114.question.title);
613
+ } }
614
+ function DynamicFormQuestionComponent_ng_container_10_div_14_Template(rf, ctx) { if (rf & 1) {
615
+ i0.ɵɵelementStart(0, "div");
616
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_14_p_inputMask_1_Template, 2, 6, "p-inputMask", 75);
617
+ i0.ɵɵelementEnd();
618
+ } if (rf & 2) {
619
+ const ctx_r76 = i0.ɵɵnextContext(2);
620
+ i0.ɵɵadvance(1);
621
+ i0.ɵɵproperty("ngIf", ctx_r76.question.inputType && ctx_r76.question.inputType === "text");
622
+ } }
623
+ function DynamicFormQuestionComponent_ng_container_10_div_15_ng_template_6_Template(rf, ctx) { if (rf & 1) {
624
+ i0.ɵɵelement(0, "p-divider");
625
+ i0.ɵɵelementStart(1, "p", 78);
626
+ i0.ɵɵtext(2);
627
+ i0.ɵɵpipe(3, "translate");
628
+ i0.ɵɵelementEnd();
629
+ i0.ɵɵelementStart(4, "ul", 79)(5, "li", 80);
630
+ i0.ɵɵtext(6);
631
+ i0.ɵɵpipe(7, "translate");
632
+ i0.ɵɵelementEnd();
633
+ i0.ɵɵelementStart(8, "li", 80);
634
+ i0.ɵɵtext(9);
635
+ i0.ɵɵpipe(10, "translate");
636
+ i0.ɵɵelementEnd();
637
+ i0.ɵɵelementStart(11, "li", 80);
638
+ i0.ɵɵtext(12);
639
+ i0.ɵɵpipe(13, "translate");
640
+ i0.ɵɵelementEnd();
641
+ i0.ɵɵelementStart(14, "li", 80);
642
+ i0.ɵɵtext(15);
643
+ i0.ɵɵpipe(16, "translate");
644
+ i0.ɵɵelementStart(17, "b");
645
+ i0.ɵɵtext(18, "_ @ * $ ! # .");
646
+ i0.ɵɵelementEnd()();
647
+ i0.ɵɵelementStart(19, "li", 80);
648
+ i0.ɵɵtext(20);
649
+ i0.ɵɵpipe(21, "translate");
650
+ i0.ɵɵelementEnd()();
651
+ i0.ɵɵelement(22, "p-divider");
652
+ i0.ɵɵelementStart(23, "p", 78);
653
+ i0.ɵɵtext(24);
654
+ i0.ɵɵpipe(25, "translate");
655
+ i0.ɵɵelementEnd();
656
+ i0.ɵɵelementStart(26, "ul", 79)(27, "li", 80);
657
+ i0.ɵɵtext(28);
658
+ i0.ɵɵpipe(29, "translate");
659
+ i0.ɵɵelementEnd();
660
+ i0.ɵɵelementStart(30, "li", 80);
661
+ i0.ɵɵtext(31);
662
+ i0.ɵɵpipe(32, "translate");
663
+ i0.ɵɵelementEnd();
664
+ i0.ɵɵelementStart(33, "li", 80);
665
+ i0.ɵɵtext(34);
666
+ i0.ɵɵpipe(35, "translate");
667
+ i0.ɵɵelementEnd()();
668
+ } if (rf & 2) {
669
+ i0.ɵɵadvance(2);
670
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 10, "common.password.must.include"));
671
+ i0.ɵɵadvance(4);
672
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(7, 12, "common.password.one.uppercase"));
673
+ i0.ɵɵadvance(3);
674
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(10, 14, "common.password.one.lowercase"));
675
+ i0.ɵɵadvance(3);
676
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(13, 16, "common.password.one.number"));
677
+ i0.ɵɵadvance(3);
678
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(16, 18, "common.password.two.mentioned.char"), " ");
679
+ i0.ɵɵadvance(5);
680
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(21, 20, "common.password.forteen.chars"));
681
+ i0.ɵɵadvance(4);
682
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(25, 22, "common.password.suggestion.header"));
683
+ i0.ɵɵadvance(4);
684
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(29, 24, "common.password.suggestion.name.email.phone"));
685
+ i0.ɵɵadvance(3);
686
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(32, 26, "common.password.suggestion.kid.partner.pet"));
687
+ i0.ɵɵadvance(3);
688
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(35, 28, "common.password.suggestion.name.or.userid"));
689
+ } }
690
+ function DynamicFormQuestionComponent_ng_container_10_div_15_Template(rf, ctx) { if (rf & 1) {
691
+ i0.ɵɵelementStart(0, "div")(1, "p-password", 77);
692
+ i0.ɵɵpipe(2, "translate");
693
+ i0.ɵɵpipe(3, "translate");
694
+ i0.ɵɵpipe(4, "translate");
695
+ i0.ɵɵpipe(5, "translate");
696
+ i0.ɵɵtemplate(6, DynamicFormQuestionComponent_ng_container_10_div_15_ng_template_6_Template, 36, 30, "ng-template", 11);
697
+ i0.ɵɵelementEnd()();
698
+ } if (rf & 2) {
699
+ const ctx_r77 = i0.ɵɵnextContext(2);
700
+ i0.ɵɵadvance(1);
701
+ i0.ɵɵpropertyInterpolate("weakLabel", i0.ɵɵpipeBind1(2, 9, "common.password.weak"));
702
+ i0.ɵɵpropertyInterpolate("promptLabel", i0.ɵɵpipeBind1(3, 11, "common.enter.password"));
703
+ i0.ɵɵpropertyInterpolate("mediumLabel", i0.ɵɵpipeBind1(4, 13, "common.password.weak"));
704
+ i0.ɵɵpropertyInterpolate("strongLabel", i0.ɵɵpipeBind1(5, 15, "common.password.strong"));
705
+ i0.ɵɵproperty("inputId", ctx_r77.question.name)("formControlName", ctx_r77.question.name)("toggleMask", true)("maxLength", ctx_r77.question.maxLength)("ariaLabel", ctx_r77.question.title);
706
+ } }
707
+ function DynamicFormQuestionComponent_ng_container_10_div_16_Template(rf, ctx) { if (rf & 1) {
708
+ i0.ɵɵelementStart(0, "div");
709
+ i0.ɵɵelement(1, "app-file-uploader", 81);
710
+ i0.ɵɵelementEnd();
711
+ } if (rf & 2) {
712
+ const ctx_r78 = i0.ɵɵnextContext(2);
713
+ i0.ɵɵadvance(1);
714
+ i0.ɵɵproperty("allowedFileType", ctx_r78.question.allowedFileType)("formControlName", ctx_r78.question.name)("maxSizeInMB", ctx_r78.question.sizeInMB)("multiple", ctx_r78.question.multiple)("noOfFilesToUpload", ctx_r78.question.noOFFiles);
715
+ i0.ɵɵattribute("aria-label", ctx_r78.question.title);
716
+ } }
717
+ function DynamicFormQuestionComponent_ng_container_10_div_17_Template(rf, ctx) { if (rf & 1) {
718
+ const _r119 = i0.ɵɵgetCurrentView();
719
+ i0.ɵɵelementStart(0, "div")(1, "div", 51)(2, "input", 82);
720
+ i0.ɵɵlistener("blur", function DynamicFormQuestionComponent_ng_container_10_div_17_Template_input_blur_2_listener($event) { i0.ɵɵrestoreView(_r119); const ctx_r118 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r118.checkForValueChange($event)); });
721
+ i0.ɵɵelementEnd()()();
722
+ } if (rf & 2) {
723
+ const ctx_r79 = i0.ɵɵnextContext(2);
724
+ i0.ɵɵadvance(1);
725
+ i0.ɵɵproperty("ngStyle", ctx_r79.setStyle(ctx_r79.question.indent));
726
+ i0.ɵɵadvance(1);
727
+ i0.ɵɵproperty("id", ctx_r79.question.name)("formControlName", ctx_r79.question.name)("disabled", true)("placeholder", ctx_r79.question.placeholder ? ctx_r79.question.placeholder : "");
728
+ i0.ɵɵattribute("aria-label", ctx_r79.question.title)("aria-label", ctx_r79.question.title);
729
+ } }
730
+ function DynamicFormQuestionComponent_ng_container_10_div_19_Template(rf, ctx) { if (rf & 1) {
731
+ const _r121 = i0.ɵɵgetCurrentView();
732
+ i0.ɵɵelementStart(0, "div")(1, "div", 51)(2, "input", 83);
733
+ i0.ɵɵlistener("blur", function DynamicFormQuestionComponent_ng_container_10_div_19_Template_input_blur_2_listener($event) { i0.ɵɵrestoreView(_r121); const ctx_r120 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r120.checkForValueChange($event)); });
734
+ i0.ɵɵelementEnd()()();
735
+ } if (rf & 2) {
736
+ const ctx_r80 = i0.ɵɵnextContext(2);
737
+ i0.ɵɵadvance(1);
738
+ i0.ɵɵproperty("ngStyle", ctx_r80.setStyle(ctx_r80.question.indent));
739
+ i0.ɵɵadvance(1);
740
+ i0.ɵɵproperty("id", ctx_r80.question.name)("formControlName", ctx_r80.question.name);
741
+ i0.ɵɵattribute("aria-label", ctx_r80.question.title)("aria-label", ctx_r80.question.title);
742
+ } }
743
+ function DynamicFormQuestionComponent_ng_container_10_div_20_input_1_Template(rf, ctx) { if (rf & 1) {
744
+ i0.ɵɵelement(0, "input", 63);
745
+ } if (rf & 2) {
746
+ const ctx_r122 = i0.ɵɵnextContext(3);
747
+ i0.ɵɵproperty("id", ctx_r122.question.name)("formControlName", ctx_r122.question.name)("placeholder", ctx_r122.question.placeholder ? ctx_r122.question.placeholder : "");
748
+ i0.ɵɵattribute("aria-label", ctx_r122.question.title);
749
+ } }
750
+ function DynamicFormQuestionComponent_ng_container_10_div_20_input_2_Template(rf, ctx) { if (rf & 1) {
751
+ i0.ɵɵelement(0, "input", 63);
752
+ } if (rf & 2) {
753
+ const ctx_r123 = i0.ɵɵnextContext(3);
754
+ i0.ɵɵproperty("id", ctx_r123.question.name)("formControlName", ctx_r123.question.name)("placeholder", ctx_r123.question.placeholder ? ctx_r123.question.placeholder : "");
755
+ i0.ɵɵattribute("aria-label", ctx_r123.question.title);
756
+ } }
757
+ function DynamicFormQuestionComponent_ng_container_10_div_20_Template(rf, ctx) { if (rf & 1) {
758
+ i0.ɵɵelementStart(0, "div", 51);
759
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_20_input_1_Template, 1, 4, "input", 60)(2, DynamicFormQuestionComponent_ng_container_10_div_20_input_2_Template, 1, 4, "input", 60);
760
+ i0.ɵɵelementEnd();
761
+ } if (rf & 2) {
762
+ const ctx_r81 = i0.ɵɵnextContext(2);
763
+ i0.ɵɵproperty("ngStyle", ctx_r81.setStyle(ctx_r81.question.indent));
764
+ i0.ɵɵadvance(1);
765
+ i0.ɵɵproperty("ngIf", ctx_r81.question.size);
766
+ i0.ɵɵadvance(1);
767
+ i0.ɵɵproperty("ngIf", !ctx_r81.question.size);
768
+ } }
769
+ function DynamicFormQuestionComponent_ng_container_10_div_21_Template(rf, ctx) { if (rf & 1) {
770
+ i0.ɵɵelementStart(0, "div", 84);
771
+ i0.ɵɵelement(1, "app-overlay-info", 48);
772
+ i0.ɵɵpipe(2, "dynamicTranslate");
773
+ i0.ɵɵelementEnd();
774
+ } if (rf & 2) {
775
+ const ctx_r82 = i0.ɵɵnextContext(2);
776
+ i0.ɵɵadvance(1);
777
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r82.question.description, ctx_r82.dynamicParam));
778
+ } }
779
+ function DynamicFormQuestionComponent_ng_container_10_Template(rf, ctx) { if (rf & 1) {
780
+ i0.ɵɵelementContainerStart(0);
781
+ i0.ɵɵelementStart(1, "div", 49);
782
+ i0.ɵɵtemplate(2, DynamicFormQuestionComponent_ng_container_10_div_2_Template, 4, 10, "div", 3)(3, DynamicFormQuestionComponent_ng_container_10_div_3_Template, 4, 10, "div", 3)(4, DynamicFormQuestionComponent_ng_container_10_div_4_Template, 2, 6, "div", 8)(5, DynamicFormQuestionComponent_ng_container_10_div_5_Template, 2, 4, "div", 8)(6, DynamicFormQuestionComponent_ng_container_10_div_6_Template, 2, 5, "div", 8)(7, DynamicFormQuestionComponent_ng_container_10_div_7_Template, 5, 5, "div", 8)(8, DynamicFormQuestionComponent_ng_container_10_div_8_Template, 5, 5, "div", 8)(9, DynamicFormQuestionComponent_ng_container_10_div_9_Template, 5, 5, "div", 8)(10, DynamicFormQuestionComponent_ng_container_10_div_10_Template, 3, 6, "div", 3)(11, DynamicFormQuestionComponent_ng_container_10_div_11_Template, 3, 6, "div", 3)(12, DynamicFormQuestionComponent_ng_container_10_div_12_Template, 2, 8, "div", 8)(13, DynamicFormQuestionComponent_ng_container_10_div_13_Template, 2, 1, "div", 3)(14, DynamicFormQuestionComponent_ng_container_10_div_14_Template, 2, 1, "div", 3)(15, DynamicFormQuestionComponent_ng_container_10_div_15_Template, 7, 17, "div", 3)(16, DynamicFormQuestionComponent_ng_container_10_div_16_Template, 2, 6, "div", 3)(17, DynamicFormQuestionComponent_ng_container_10_div_17_Template, 3, 7, "div", 3);
783
+ i0.ɵɵelementStart(18, "div");
784
+ i0.ɵɵtemplate(19, DynamicFormQuestionComponent_ng_container_10_div_19_Template, 3, 5, "div", 3);
785
+ i0.ɵɵelementEnd();
786
+ i0.ɵɵtemplate(20, DynamicFormQuestionComponent_ng_container_10_div_20_Template, 3, 3, "div", 8)(21, DynamicFormQuestionComponent_ng_container_10_div_21_Template, 3, 4, "div", 50);
787
+ i0.ɵɵelementEnd();
788
+ i0.ɵɵelementContainerEnd();
789
+ } if (rf & 2) {
790
+ const ctx_r8 = i0.ɵɵnextContext();
791
+ i0.ɵɵadvance(2);
792
+ i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "date" && ctx_r8.question.name && ctx_r8.question.name != "dob");
793
+ i0.ɵɵadvance(1);
794
+ i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "date" && ctx_r8.question.name && ctx_r8.question.name === "dob");
795
+ i0.ɵɵadvance(1);
796
+ i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && ctx_r8.question.customTag === "ssn");
797
+ i0.ɵɵadvance(1);
798
+ i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && ctx_r8.question.customTag === "ean");
799
+ i0.ɵɵadvance(1);
800
+ i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && ctx_r8.question.customTag === "dueamt");
801
+ i0.ɵɵadvance(1);
802
+ i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && (!ctx_r8.question.customTag || ctx_r8.question.customTag === "Optional") && !ctx_r8.question.isRequired);
803
+ i0.ɵɵadvance(1);
804
+ i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && !ctx_r8.question.customTag && ctx_r8.question.isRequired && !ctx_r8.checkFlowKey());
805
+ i0.ɵɵadvance(1);
806
+ i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && !ctx_r8.question.customTag && ctx_r8.question.isRequired && ctx_r8.checkFlowKey());
807
+ i0.ɵɵadvance(1);
808
+ i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && ctx_r8.question.customTag.includes("firstName") && ctx_r8.checkFlowKey());
809
+ i0.ɵɵadvance(1);
810
+ i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && ctx_r8.question.customTag.includes("lastName") && ctx_r8.checkFlowKey());
811
+ i0.ɵɵadvance(1);
812
+ i0.ɵɵproperty("ngIf", !ctx_r8.question.inputType && ctx_r8.question.customTag && !ctx_r8.question.customTag.includes("phone"));
813
+ i0.ɵɵadvance(1);
814
+ i0.ɵɵproperty("ngIf", ctx_r8.question.customTag && ctx_r8.question.customTag.includes("phone") && !ctx_r8.checkFlowKey());
815
+ i0.ɵɵadvance(1);
816
+ i0.ɵɵproperty("ngIf", ctx_r8.question.customTag && ctx_r8.question.customTag.includes("phone") && ctx_r8.checkFlowKey());
817
+ i0.ɵɵadvance(1);
818
+ i0.ɵɵproperty("ngIf", ctx_r8.question.customTag && ctx_r8.question.customTag.includes("password"));
819
+ i0.ɵɵadvance(1);
820
+ i0.ɵɵproperty("ngIf", ctx_r8.question.customTag && ctx_r8.question.customTag.includes("fileupload"));
821
+ i0.ɵɵadvance(1);
822
+ i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && (ctx_r8.question.customTag != "ssn" && ctx_r8.question.customTag != "Optional" && ctx_r8.question.customTag != "fileupload" && ctx_r8.question.customTag != "phone" && ctx_r8.question.customTag != "firstName" && ctx_r8.question.customTag != "lastName" && ctx_r8.question.customTag != "ean" && ctx_r8.question.customTag != "dueamt" && ctx_r8.question.customTag != "password") && ctx_r8.checkFlowKey());
823
+ i0.ɵɵadvance(2);
824
+ i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && (ctx_r8.question.customTag != "ssn" && ctx_r8.question.customTag != "Optional" && ctx_r8.question.customTag != "fileupload" && ctx_r8.question.customTag != "phone" && ctx_r8.question.customTag != "ean" && ctx_r8.question.customTag != "dueamt" && ctx_r8.question.customTag != "password") && !ctx_r8.checkFlowKey());
825
+ i0.ɵɵadvance(1);
826
+ i0.ɵɵproperty("ngIf", !ctx_r8.question.inputType && !ctx_r8.question.customTag);
827
+ i0.ɵɵadvance(1);
828
+ i0.ɵɵproperty("ngIf", ctx_r8.question.description);
829
+ } }
830
+ function DynamicFormQuestionComponent_ng_container_11_div_1_small_3_Template(rf, ctx) { if (rf & 1) {
831
+ i0.ɵɵelementStart(0, "small", 87);
832
+ i0.ɵɵtext(1);
833
+ i0.ɵɵelementEnd();
834
+ } if (rf & 2) {
835
+ const ctx_r126 = i0.ɵɵnextContext(3);
836
+ i0.ɵɵadvance(1);
837
+ i0.ɵɵtextInterpolate(ctx_r126.question.description);
838
+ } }
839
+ function DynamicFormQuestionComponent_ng_container_11_div_1_Template(rf, ctx) { if (rf & 1) {
840
+ i0.ɵɵelementStart(0, "div", 51);
841
+ i0.ɵɵelement(1, "textarea", 85);
842
+ i0.ɵɵelementStart(2, "div");
843
+ i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_11_div_1_small_3_Template, 2, 1, "small", 86);
844
+ i0.ɵɵelementEnd()();
845
+ } if (rf & 2) {
846
+ const ctx_r124 = i0.ɵɵnextContext(2);
847
+ i0.ɵɵproperty("ngStyle", ctx_r124.setStyle(ctx_r124.question.indent));
848
+ i0.ɵɵadvance(1);
849
+ i0.ɵɵproperty("id", ctx_r124.question.name)("formControlName", ctx_r124.question.name)("maxLength", ctx_r124.question.maxLength)("rows", 3)("cols", 35)("placeholder", ctx_r124.question.placeholder ? ctx_r124.question.placeholder : "");
850
+ i0.ɵɵattribute("aria-label", ctx_r124.question.title);
851
+ i0.ɵɵadvance(2);
852
+ i0.ɵɵproperty("ngIf", ctx_r124.question.description);
853
+ } }
854
+ function DynamicFormQuestionComponent_ng_container_11_div_2_small_3_Template(rf, ctx) { if (rf & 1) {
855
+ i0.ɵɵelementStart(0, "small", 87);
856
+ i0.ɵɵtext(1);
857
+ i0.ɵɵelementEnd();
858
+ } if (rf & 2) {
859
+ const ctx_r127 = i0.ɵɵnextContext(3);
860
+ i0.ɵɵadvance(1);
861
+ i0.ɵɵtextInterpolate(ctx_r127.question.description);
862
+ } }
863
+ function DynamicFormQuestionComponent_ng_container_11_div_2_Template(rf, ctx) { if (rf & 1) {
864
+ i0.ɵɵelementStart(0, "div", 51);
865
+ i0.ɵɵelement(1, "textarea", 88);
866
+ i0.ɵɵelementStart(2, "div");
867
+ i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_11_div_2_small_3_Template, 2, 1, "small", 86);
868
+ i0.ɵɵelementEnd()();
869
+ } if (rf & 2) {
870
+ const ctx_r125 = i0.ɵɵnextContext(2);
871
+ i0.ɵɵproperty("ngStyle", ctx_r125.setStyle(ctx_r125.question.indent));
872
+ i0.ɵɵadvance(1);
873
+ i0.ɵɵproperty("id", ctx_r125.question.name)("formControlName", ctx_r125.question.name)("rows", 3)("cols", 35)("placeholder", ctx_r125.question.placeholder ? ctx_r125.question.placeholder : "");
874
+ i0.ɵɵattribute("aria-label", ctx_r125.question.title);
875
+ i0.ɵɵadvance(2);
876
+ i0.ɵɵproperty("ngIf", ctx_r125.question.description);
877
+ } }
878
+ function DynamicFormQuestionComponent_ng_container_11_Template(rf, ctx) { if (rf & 1) {
879
+ i0.ɵɵelementContainerStart(0);
880
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_11_div_1_Template, 4, 9, "div", 8)(2, DynamicFormQuestionComponent_ng_container_11_div_2_Template, 4, 8, "div", 8);
881
+ i0.ɵɵelementContainerEnd();
882
+ } if (rf & 2) {
883
+ const ctx_r9 = i0.ɵɵnextContext();
884
+ i0.ɵɵadvance(1);
885
+ i0.ɵɵproperty("ngIf", ctx_r9.question.maxLength);
886
+ i0.ɵɵadvance(1);
887
+ i0.ɵɵproperty("ngIf", !ctx_r9.question.maxLength);
888
+ } }
889
+ function DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_ng_template_1_Template(rf, ctx) { if (rf & 1) {
890
+ i0.ɵɵelementStart(0, "div")(1, "div");
891
+ i0.ɵɵtext(2);
892
+ i0.ɵɵelementEnd()();
893
+ } if (rf & 2) {
894
+ const value_r131 = ctx.$implicit;
895
+ i0.ɵɵadvance(2);
896
+ i0.ɵɵtextInterpolate(value_r131.text);
897
+ } }
898
+ function DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_Template(rf, ctx) { if (rf & 1) {
899
+ const _r133 = i0.ɵɵgetCurrentView();
900
+ i0.ɵɵelementStart(0, "p-autoComplete", 91);
901
+ i0.ɵɵlistener("completeMethod", function DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_Template_p_autoComplete_completeMethod_0_listener($event) { i0.ɵɵrestoreView(_r133); const ctx_r132 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r132.filterValue($event, ctx_r132.question)); })("onSelect", function DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_Template_p_autoComplete_onSelect_0_listener($event) { i0.ɵɵrestoreView(_r133); const ctx_r134 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r134.onSelect($event, ctx_r134.question.name)); });
902
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_ng_template_1_Template, 3, 1, "ng-template", 92);
903
+ i0.ɵɵelementEnd();
904
+ } if (rf & 2) {
905
+ const ctx_r128 = i0.ɵɵnextContext(2);
906
+ i0.ɵɵproperty("formControlName", ctx_r128.question.name)("suggestions", ctx_r128.filterResult)("dropdown", true)("forceSelection", true)("completeOnFocus", true);
907
+ } }
908
+ function DynamicFormQuestionComponent_ng_container_12_div_5_Template(rf, ctx) { if (rf & 1) {
909
+ i0.ɵɵelementStart(0, "div", 84);
910
+ i0.ɵɵelement(1, "app-overlay-info", 48);
911
+ i0.ɵɵpipe(2, "dynamicTranslate");
912
+ i0.ɵɵelementEnd();
913
+ } if (rf & 2) {
914
+ const ctx_r129 = i0.ɵɵnextContext(2);
915
+ i0.ɵɵadvance(1);
916
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r129.question.description, ctx_r129.dynamicParam));
917
+ } }
918
+ function DynamicFormQuestionComponent_ng_container_12_Template(rf, ctx) { if (rf & 1) {
919
+ const _r136 = i0.ɵɵgetCurrentView();
920
+ i0.ɵɵelementContainerStart(0);
921
+ i0.ɵɵelementStart(1, "div", 49)(2, "div", 51);
922
+ i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_Template, 2, 5, "p-autoComplete", 89);
923
+ i0.ɵɵelementStart(4, "app-dropdown", 90);
924
+ i0.ɵɵlistener("onChange", function DynamicFormQuestionComponent_ng_container_12_Template_app_dropdown_onChange_4_listener($event) { i0.ɵɵrestoreView(_r136); const ctx_r135 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r135.onSelect($event, ctx_r135.question.name)); })("onClick", function DynamicFormQuestionComponent_ng_container_12_Template_app_dropdown_onClick_4_listener($event) { i0.ɵɵrestoreView(_r136); const ctx_r137 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r137.filterValue($event, ctx_r137.question)); });
925
+ i0.ɵɵelementEnd()();
926
+ i0.ɵɵtemplate(5, DynamicFormQuestionComponent_ng_container_12_div_5_Template, 3, 4, "div", 50);
927
+ i0.ɵɵelementEnd();
928
+ i0.ɵɵelementContainerEnd();
929
+ } if (rf & 2) {
930
+ const ctx_r10 = i0.ɵɵnextContext();
931
+ i0.ɵɵadvance(2);
932
+ i0.ɵɵproperty("ngStyle", ctx_r10.setStyle(ctx_r10.question.indent));
933
+ i0.ɵɵadvance(1);
934
+ i0.ɵɵproperty("ngIf", false);
935
+ i0.ɵɵadvance(1);
936
+ i0.ɵɵproperty("options", ctx_r10.filterResult)("formControlName", ctx_r10.question.name)("autoDisplayFirst", false)("inputId", ctx_r10.question.name)("ariaLabel", ctx_r10.question.title);
937
+ i0.ɵɵadvance(1);
938
+ i0.ɵɵproperty("ngIf", ctx_r10.question.description);
939
+ } }
940
+ function DynamicFormQuestionComponent_ng_container_13_div_2_div_3_Template(rf, ctx) { if (rf & 1) {
941
+ i0.ɵɵelementStart(0, "div");
942
+ i0.ɵɵelement(1, "app-overlay-info", 48);
943
+ i0.ɵɵpipe(2, "dynamicTranslate");
944
+ i0.ɵɵelementEnd();
945
+ } if (rf & 2) {
946
+ const ctx_r140 = i0.ɵɵnextContext(3);
947
+ i0.ɵɵadvance(1);
948
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r140.question.description, ctx_r140.dynamicParam));
949
+ } }
950
+ function DynamicFormQuestionComponent_ng_container_13_div_2_Template(rf, ctx) { if (rf & 1) {
951
+ const _r142 = i0.ɵɵgetCurrentView();
952
+ i0.ɵɵelementStart(0, "div", 95)(1, "div", 51)(2, "p-selectButton", 96);
953
+ i0.ɵɵlistener("onOptionClick", function DynamicFormQuestionComponent_ng_container_13_div_2_Template_p_selectButton_onOptionClick_2_listener($event) { i0.ɵɵrestoreView(_r142); const ctx_r141 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r141.onRadioOptionClick($event, ctx_r141.question)); });
954
+ i0.ɵɵelementEnd()();
955
+ i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_13_div_2_div_3_Template, 3, 4, "div", 3);
956
+ i0.ɵɵelementEnd();
957
+ } if (rf & 2) {
958
+ const ctx_r138 = i0.ɵɵnextContext(2);
959
+ i0.ɵɵadvance(1);
960
+ i0.ɵɵproperty("ngStyle", ctx_r138.setStyle(ctx_r138.question.indent));
961
+ i0.ɵɵadvance(1);
962
+ i0.ɵɵproperty("options", ctx_r138.question.choices)("formControlName", ctx_r138.question.name);
963
+ i0.ɵɵadvance(1);
964
+ i0.ɵɵproperty("ngIf", ctx_r138.question.description);
965
+ } }
966
+ function DynamicFormQuestionComponent_ng_container_13_div_3_app_mfa2_3_Template(rf, ctx) { if (rf & 1) {
967
+ const _r146 = i0.ɵɵgetCurrentView();
968
+ i0.ɵɵelementStart(0, "app-mfa2", 99);
969
+ i0.ɵɵlistener("formChange", function DynamicFormQuestionComponent_ng_container_13_div_3_app_mfa2_3_Template_app_mfa2_formChange_0_listener($event) { i0.ɵɵrestoreView(_r146); const ctx_r145 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r145.form = $event); })("success", function DynamicFormQuestionComponent_ng_container_13_div_3_app_mfa2_3_Template_app_mfa2_success_0_listener() { i0.ɵɵrestoreView(_r146); const ctx_r147 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r147.enableFields()); });
970
+ i0.ɵɵelementEnd();
971
+ } if (rf & 2) {
972
+ const ctx_r143 = i0.ɵɵnextContext(3);
973
+ i0.ɵɵproperty("display", ctx_r143.isOtpModalEnabled)("returningUser", ctx_r143.isReturningUser)("form", ctx_r143.form);
974
+ } }
975
+ function DynamicFormQuestionComponent_ng_container_13_div_3_div_4_Template(rf, ctx) { if (rf & 1) {
976
+ i0.ɵɵelementStart(0, "div", 84);
977
+ i0.ɵɵelement(1, "app-overlay-info", 48);
978
+ i0.ɵɵpipe(2, "dynamicTranslate");
979
+ i0.ɵɵelementEnd();
980
+ } if (rf & 2) {
981
+ const ctx_r144 = i0.ɵɵnextContext(3);
982
+ i0.ɵɵadvance(1);
983
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r144.question.description, ctx_r144.dynamicParam));
984
+ } }
985
+ function DynamicFormQuestionComponent_ng_container_13_div_3_Template(rf, ctx) { if (rf & 1) {
986
+ const _r149 = i0.ɵɵgetCurrentView();
987
+ i0.ɵɵelementStart(0, "div")(1, "div", 51)(2, "p-selectButton", 97);
988
+ i0.ɵɵlistener("onOptionClick", function DynamicFormQuestionComponent_ng_container_13_div_3_Template_p_selectButton_onOptionClick_2_listener($event) { i0.ɵɵrestoreView(_r149); const ctx_r148 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r148.generateOtpForNewUserCreation($event, ctx_r148.form)); });
989
+ i0.ɵɵelementEnd()();
990
+ i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_13_div_3_app_mfa2_3_Template, 1, 3, "app-mfa2", 98)(4, DynamicFormQuestionComponent_ng_container_13_div_3_div_4_Template, 3, 4, "div", 50);
991
+ i0.ɵɵelementEnd();
992
+ } if (rf & 2) {
993
+ const ctx_r139 = i0.ɵɵnextContext(2);
994
+ i0.ɵɵadvance(1);
995
+ i0.ɵɵproperty("ngStyle", ctx_r139.setStyle(ctx_r139.question.indent));
996
+ i0.ɵɵadvance(1);
997
+ i0.ɵɵproperty("options", ctx_r139.question.choices)("formControlName", ctx_r139.question.name);
998
+ i0.ɵɵadvance(1);
999
+ i0.ɵɵproperty("ngIf", ctx_r139.isOtpModalEnabled);
1000
+ i0.ɵɵadvance(1);
1001
+ i0.ɵɵproperty("ngIf", ctx_r139.question.description);
1002
+ } }
1003
+ function DynamicFormQuestionComponent_ng_container_13_Template(rf, ctx) { if (rf & 1) {
1004
+ i0.ɵɵelementContainerStart(0);
1005
+ i0.ɵɵelementStart(1, "div", 93);
1006
+ i0.ɵɵtemplate(2, DynamicFormQuestionComponent_ng_container_13_div_2_Template, 4, 4, "div", 94)(3, DynamicFormQuestionComponent_ng_container_13_div_3_Template, 5, 5, "div", 3);
1007
+ i0.ɵɵelementEnd();
1008
+ i0.ɵɵelementContainerEnd();
1009
+ } if (rf & 2) {
1010
+ const ctx_r11 = i0.ɵɵnextContext();
1011
+ i0.ɵɵadvance(2);
1012
+ i0.ɵɵproperty("ngIf", ctx_r11.question.name && ctx_r11.question.name != "verification");
1013
+ i0.ɵɵadvance(1);
1014
+ i0.ɵɵproperty("ngIf", ctx_r11.question.name && ctx_r11.question.name === "verification");
1015
+ } }
1016
+ function DynamicFormQuestionComponent_ng_container_14_div_4_Template(rf, ctx) { if (rf & 1) {
1017
+ i0.ɵɵelementStart(0, "div", 84);
1018
+ i0.ɵɵelement(1, "app-overlay-info", 48);
1019
+ i0.ɵɵpipe(2, "dynamicTranslate");
1020
+ i0.ɵɵelementEnd();
1021
+ } if (rf & 2) {
1022
+ const ctx_r150 = i0.ɵɵnextContext(2);
1023
+ i0.ɵɵadvance(1);
1024
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r150.question.description, ctx_r150.dynamicParam));
1025
+ } }
1026
+ function DynamicFormQuestionComponent_ng_container_14_Template(rf, ctx) { if (rf & 1) {
1027
+ i0.ɵɵelementContainerStart(0);
1028
+ i0.ɵɵelementStart(1, "div", 49)(2, "div", 51);
1029
+ i0.ɵɵelement(3, "p-inputNumber", 100);
1030
+ i0.ɵɵelementEnd();
1031
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_14_div_4_Template, 3, 4, "div", 50);
1032
+ i0.ɵɵelementEnd();
1033
+ i0.ɵɵelementContainerEnd();
1034
+ } if (rf & 2) {
1035
+ const ctx_r12 = i0.ɵɵnextContext();
1036
+ i0.ɵɵadvance(2);
1037
+ i0.ɵɵproperty("ngStyle", ctx_r12.setStyle(ctx_r12.question.indent));
1038
+ i0.ɵɵadvance(1);
1039
+ i0.ɵɵpropertyInterpolate("formControlName", ctx_r12.question.name);
1040
+ i0.ɵɵproperty("inputId", ctx_r12.question.name)("useGrouping", false)("min", ctx_r12.minValue)("max", ctx_r12.maxValue)("size", ctx_r12.question.size ? ctx_r12.question.size : null)("maxlength", ctx_r12.question.maxLength ? ctx_r12.question.maxLength : null)("ariaLabel", ctx_r12.question.title)("placeholder", ctx_r12.question.placeholder ? ctx_r12.question.placeholder : "");
1041
+ i0.ɵɵadvance(1);
1042
+ i0.ɵɵproperty("ngIf", ctx_r12.question.description);
1043
+ } }
1044
+ function DynamicFormQuestionComponent_ng_container_15_div_4_Template(rf, ctx) { if (rf & 1) {
1045
+ i0.ɵɵelementStart(0, "div", 84);
1046
+ i0.ɵɵelement(1, "app-overlay-info", 48);
1047
+ i0.ɵɵpipe(2, "dynamicTranslate");
1048
+ i0.ɵɵelementEnd();
1049
+ } if (rf & 2) {
1050
+ const ctx_r151 = i0.ɵɵnextContext(2);
1051
+ i0.ɵɵadvance(1);
1052
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r151.question.description, ctx_r151.dynamicParam));
1053
+ } }
1054
+ function DynamicFormQuestionComponent_ng_container_15_Template(rf, ctx) { if (rf & 1) {
1055
+ i0.ɵɵelementContainerStart(0);
1056
+ i0.ɵɵelementStart(1, "div", 49)(2, "div", 51);
1057
+ i0.ɵɵelement(3, "p-inputNumber", 101);
1058
+ i0.ɵɵelementEnd();
1059
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_15_div_4_Template, 3, 4, "div", 50);
1060
+ i0.ɵɵelementEnd();
1061
+ i0.ɵɵelementContainerEnd();
1062
+ } if (rf & 2) {
1063
+ const ctx_r13 = i0.ɵɵnextContext();
1064
+ i0.ɵɵadvance(2);
1065
+ i0.ɵɵproperty("ngStyle", ctx_r13.setStyle(ctx_r13.question.indent));
1066
+ i0.ɵɵadvance(1);
1067
+ i0.ɵɵpropertyInterpolate("formControlName", ctx_r13.question.name);
1068
+ i0.ɵɵproperty("inputId", ctx_r13.question.name)("useGrouping", false)("minFractionDigits", 2)("maxFractionDigits", 2)("min", ctx_r13.minValue)("max", ctx_r13.maxValue)("size", ctx_r13.question.size ? ctx_r13.question.size : null)("maxlength", ctx_r13.question.maxLength ? ctx_r13.question.maxLength : null)("ariaLabel", ctx_r13.question.title)("placeholder", ctx_r13.question.placeholder ? ctx_r13.question.placeholder : "");
1069
+ i0.ɵɵadvance(1);
1070
+ i0.ɵɵproperty("ngIf", ctx_r13.question.description);
1071
+ } }
1072
+ function DynamicFormQuestionComponent_ng_container_16_div_4_Template(rf, ctx) { if (rf & 1) {
1073
+ i0.ɵɵelementStart(0, "div", 84);
1074
+ i0.ɵɵelement(1, "app-overlay-info", 48);
1075
+ i0.ɵɵpipe(2, "dynamicTranslate");
1076
+ i0.ɵɵelementEnd();
1077
+ } if (rf & 2) {
1078
+ const ctx_r152 = i0.ɵɵnextContext(2);
1079
+ i0.ɵɵadvance(1);
1080
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r152.question.description, ctx_r152.dynamicParam));
1081
+ } }
1082
+ function DynamicFormQuestionComponent_ng_container_16_Template(rf, ctx) { if (rf & 1) {
1083
+ i0.ɵɵelementContainerStart(0);
1084
+ i0.ɵɵelementStart(1, "div", 49)(2, "div", 51);
1085
+ i0.ɵɵelement(3, "p-inputNumber", 102);
1086
+ i0.ɵɵelementEnd();
1087
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_16_div_4_Template, 3, 4, "div", 50);
1088
+ i0.ɵɵelementEnd();
1089
+ i0.ɵɵelementContainerEnd();
1090
+ } if (rf & 2) {
1091
+ const ctx_r14 = i0.ɵɵnextContext();
1092
+ i0.ɵɵadvance(2);
1093
+ i0.ɵɵproperty("ngStyle", ctx_r14.setStyle(ctx_r14.question.indent));
1094
+ i0.ɵɵadvance(1);
1095
+ i0.ɵɵpropertyInterpolate("formControlName", ctx_r14.question.name);
1096
+ i0.ɵɵproperty("inputId", ctx_r14.question.name)("useGrouping", false)("minFractionDigits", 2)("maxFractionDigits", 2)("min", ctx_r14.minValue)("max", ctx_r14.maxValue)("size", ctx_r14.question.size ? ctx_r14.question.size : null)("maxlength", ctx_r14.question.maxLength ? ctx_r14.question.maxLength : null)("ariaLabel", ctx_r14.question.title)("placeholder", ctx_r14.question.placeholder ? ctx_r14.question.placeholder : "");
1097
+ i0.ɵɵadvance(1);
1098
+ i0.ɵɵproperty("ngIf", ctx_r14.question.description);
1099
+ } }
1100
+ function DynamicFormQuestionComponent_ng_container_17_p_checkbox_3_Template(rf, ctx) { if (rf & 1) {
1101
+ i0.ɵɵelement(0, "p-checkbox", 105);
1102
+ } if (rf & 2) {
1103
+ const choice_r155 = ctx.$implicit;
1104
+ const ctx_r153 = i0.ɵɵnextContext(2);
1105
+ i0.ɵɵproperty("name", ctx_r153.question.name + "-group")("value", choice_r155.value)("label", choice_r155.text)("formControl", ctx_r153.form.controls[ctx_r153.question.name])("inputId", ctx_r153.question.name + "-" + choice_r155.value);
1106
+ i0.ɵɵattribute("aria-label", ctx_r153.question.title);
1107
+ } }
1108
+ function DynamicFormQuestionComponent_ng_container_17_div_4_Template(rf, ctx) { if (rf & 1) {
1109
+ i0.ɵɵelementStart(0, "div", 84);
1110
+ i0.ɵɵelement(1, "app-overlay-info", 48);
1111
+ i0.ɵɵpipe(2, "dynamicTranslate");
1112
+ i0.ɵɵelementEnd();
1113
+ } if (rf & 2) {
1114
+ const ctx_r154 = i0.ɵɵnextContext(2);
1115
+ i0.ɵɵadvance(1);
1116
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r154.question.description, ctx_r154.dynamicParam));
1117
+ } }
1118
+ function DynamicFormQuestionComponent_ng_container_17_Template(rf, ctx) { if (rf & 1) {
1119
+ i0.ɵɵelementContainerStart(0);
1120
+ i0.ɵɵelementStart(1, "div", 49)(2, "div", 103);
1121
+ i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_17_p_checkbox_3_Template, 1, 6, "p-checkbox", 104);
1122
+ i0.ɵɵelementEnd();
1123
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_17_div_4_Template, 3, 4, "div", 50);
1124
+ i0.ɵɵelementEnd();
1125
+ i0.ɵɵelementContainerEnd();
1126
+ } if (rf & 2) {
1127
+ const ctx_r15 = i0.ɵɵnextContext();
1128
+ i0.ɵɵadvance(2);
1129
+ i0.ɵɵproperty("ngStyle", ctx_r15.setStyle(ctx_r15.question.indent));
1130
+ i0.ɵɵadvance(1);
1131
+ i0.ɵɵproperty("ngForOf", ctx_r15.question.choices);
1132
+ i0.ɵɵadvance(1);
1133
+ i0.ɵɵproperty("ngIf", ctx_r15.question.description);
1134
+ } }
1135
+ function DynamicFormQuestionComponent_ng_container_18_p_checkbox_3_Template(rf, ctx) { if (rf & 1) {
1136
+ i0.ɵɵelement(0, "p-checkbox", 105);
1137
+ } if (rf & 2) {
1138
+ const choice_r158 = ctx.$implicit;
1139
+ const ctx_r156 = i0.ɵɵnextContext(2);
1140
+ i0.ɵɵproperty("name", ctx_r156.question.name + "-group")("value", choice_r158.value)("label", choice_r158.text)("formControl", ctx_r156.form.controls[ctx_r156.question.name])("inputId", ctx_r156.question.name + "-" + choice_r158.value);
1141
+ i0.ɵɵattribute("aria-label", ctx_r156.question.title);
1142
+ } }
1143
+ function DynamicFormQuestionComponent_ng_container_18_div_4_Template(rf, ctx) { if (rf & 1) {
1144
+ i0.ɵɵelementStart(0, "div", 84);
1145
+ i0.ɵɵelement(1, "app-overlay-info", 48);
1146
+ i0.ɵɵpipe(2, "dynamicTranslate");
1147
+ i0.ɵɵelementEnd();
1148
+ } if (rf & 2) {
1149
+ const ctx_r157 = i0.ɵɵnextContext(2);
1150
+ i0.ɵɵadvance(1);
1151
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r157.question.description, ctx_r157.dynamicParam));
1152
+ } }
1153
+ function DynamicFormQuestionComponent_ng_container_18_Template(rf, ctx) { if (rf & 1) {
1154
+ i0.ɵɵelementContainerStart(0);
1155
+ i0.ɵɵelementStart(1, "div", 49)(2, "div", 51);
1156
+ i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_18_p_checkbox_3_Template, 1, 6, "p-checkbox", 104);
1157
+ i0.ɵɵelementEnd();
1158
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_18_div_4_Template, 3, 4, "div", 50);
1159
+ i0.ɵɵelementEnd();
1160
+ i0.ɵɵelementContainerEnd();
1161
+ } if (rf & 2) {
1162
+ const ctx_r16 = i0.ɵɵnextContext();
1163
+ i0.ɵɵadvance(2);
1164
+ i0.ɵɵproperty("ngStyle", ctx_r16.setStyle(ctx_r16.question.indent));
1165
+ i0.ɵɵadvance(1);
1166
+ i0.ɵɵproperty("ngForOf", ctx_r16.question.choices);
1167
+ i0.ɵɵadvance(1);
1168
+ i0.ɵɵproperty("ngIf", ctx_r16.question.description);
1169
+ } }
1170
+ function DynamicFormQuestionComponent_ng_container_19_div_4_Template(rf, ctx) { if (rf & 1) {
1171
+ i0.ɵɵelementStart(0, "div", 84);
1172
+ i0.ɵɵelement(1, "app-overlay-info", 48);
1173
+ i0.ɵɵpipe(2, "dynamicTranslate");
1174
+ i0.ɵɵelementEnd();
1175
+ } if (rf & 2) {
1176
+ const ctx_r159 = i0.ɵɵnextContext(2);
1177
+ i0.ɵɵadvance(1);
1178
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r159.question.description, ctx_r159.dynamicParam));
1179
+ } }
1180
+ function DynamicFormQuestionComponent_ng_container_19_Template(rf, ctx) { if (rf & 1) {
1181
+ i0.ɵɵelementContainerStart(0);
1182
+ i0.ɵɵelementStart(1, "div", 49)(2, "div", 51);
1183
+ i0.ɵɵelement(3, "p-selectButton", 106);
1184
+ i0.ɵɵelementEnd();
1185
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_19_div_4_Template, 3, 4, "div", 50);
1186
+ i0.ɵɵelementEnd();
1187
+ i0.ɵɵelementContainerEnd();
1188
+ } if (rf & 2) {
1189
+ const ctx_r17 = i0.ɵɵnextContext();
1190
+ i0.ɵɵadvance(2);
1191
+ i0.ɵɵproperty("ngStyle", ctx_r17.setStyle(ctx_r17.question.indent));
1192
+ i0.ɵɵadvance(1);
1193
+ i0.ɵɵproperty("options", ctx_r17.question.choices)("formControlName", ctx_r17.question.name)("multiple", false);
1194
+ i0.ɵɵattribute("aria-label", ctx_r17.question.title);
1195
+ i0.ɵɵadvance(1);
1196
+ i0.ɵɵproperty("ngIf", ctx_r17.question.description);
1197
+ } }
1198
+ function DynamicFormQuestionComponent_ng_container_20_div_6_Template(rf, ctx) { if (rf & 1) {
1199
+ i0.ɵɵelementStart(0, "div", 84);
1200
+ i0.ɵɵelement(1, "app-overlay-info", 48);
1201
+ i0.ɵɵpipe(2, "dynamicTranslate");
1202
+ i0.ɵɵelementEnd();
1203
+ } if (rf & 2) {
1204
+ const ctx_r160 = i0.ɵɵnextContext(2);
1205
+ i0.ɵɵadvance(1);
1206
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r160.question.description, ctx_r160.dynamicParam));
1207
+ } }
1208
+ function DynamicFormQuestionComponent_ng_container_20_Template(rf, ctx) { if (rf & 1) {
1209
+ i0.ɵɵelementContainerStart(0);
1210
+ i0.ɵɵelementStart(1, "div", 49)(2, "div", 107);
1211
+ i0.ɵɵelement(3, "p-checkbox", 108);
1212
+ i0.ɵɵelementStart(4, "label", 109);
1213
+ i0.ɵɵtext(5);
1214
+ i0.ɵɵelementEnd()();
1215
+ i0.ɵɵtemplate(6, DynamicFormQuestionComponent_ng_container_20_div_6_Template, 3, 4, "div", 110);
1216
+ i0.ɵɵelementEnd();
1217
+ i0.ɵɵelementContainerEnd();
1218
+ } if (rf & 2) {
1219
+ const ctx_r18 = i0.ɵɵnextContext();
1220
+ i0.ɵɵadvance(3);
1221
+ i0.ɵɵproperty("formControlName", ctx_r18.question.name);
1222
+ i0.ɵɵattribute("aria-label", ctx_r18.question.title);
1223
+ i0.ɵɵadvance(2);
1224
+ i0.ɵɵtextInterpolate(ctx_r18.question.title);
1225
+ i0.ɵɵadvance(1);
1226
+ i0.ɵɵproperty("ngIf", ctx_r18.question.description);
1227
+ } }
1228
+ function DynamicFormQuestionComponent_ng_container_21_div_5_Template(rf, ctx) { if (rf & 1) {
1229
+ i0.ɵɵelementStart(0, "div", 113);
1230
+ i0.ɵɵelement(1, "app-overlay-info", 48);
1231
+ i0.ɵɵpipe(2, "dynamicTranslate");
1232
+ i0.ɵɵelementEnd();
1233
+ } if (rf & 2) {
1234
+ const ctx_r161 = i0.ɵɵnextContext(2);
1235
+ i0.ɵɵadvance(1);
1236
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r161.question.description, ctx_r161.dynamicParam));
1237
+ } }
1238
+ function DynamicFormQuestionComponent_ng_container_21_Template(rf, ctx) { if (rf & 1) {
1239
+ i0.ɵɵelementContainerStart(0);
1240
+ i0.ɵɵelementStart(1, "div", 49)(2, "label");
1241
+ i0.ɵɵtext(3);
1242
+ i0.ɵɵelementEnd();
1243
+ i0.ɵɵelement(4, "input", 111);
1244
+ i0.ɵɵtemplate(5, DynamicFormQuestionComponent_ng_container_21_div_5_Template, 3, 4, "div", 112);
1245
+ i0.ɵɵelementEnd();
1246
+ i0.ɵɵelementContainerEnd();
1247
+ } if (rf & 2) {
1248
+ const ctx_r19 = i0.ɵɵnextContext();
1249
+ i0.ɵɵadvance(3);
1250
+ i0.ɵɵtextInterpolate(ctx_r19.getText(ctx_r19.form.controls[ctx_r19.question.name].value));
1251
+ i0.ɵɵadvance(1);
1252
+ i0.ɵɵproperty("formControlName", ctx_r19.question.name);
1253
+ i0.ɵɵattribute("aria-label", ctx_r19.question.title);
1254
+ i0.ɵɵadvance(1);
1255
+ i0.ɵɵproperty("ngIf", ctx_r19.question.description);
1256
+ } }
1257
+ function DynamicFormQuestionComponent_ng_container_22_div_4_Template(rf, ctx) { if (rf & 1) {
1258
+ i0.ɵɵelementStart(0, "div", 113);
1259
+ i0.ɵɵelement(1, "app-overlay-info", 48);
1260
+ i0.ɵɵpipe(2, "dynamicTranslate");
1261
+ i0.ɵɵelementEnd();
1262
+ } if (rf & 2) {
1263
+ const ctx_r162 = i0.ɵɵnextContext(2);
1264
+ i0.ɵɵadvance(1);
1265
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r162.question.description, ctx_r162.dynamicParam));
1266
+ } }
1267
+ function DynamicFormQuestionComponent_ng_container_22_Template(rf, ctx) { if (rf & 1) {
1268
+ i0.ɵɵelementContainerStart(0);
1269
+ i0.ɵɵelementStart(1, "div", 49)(2, "label");
1270
+ i0.ɵɵtext(3);
1271
+ i0.ɵɵelementEnd();
1272
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_22_div_4_Template, 3, 4, "div", 112);
1273
+ i0.ɵɵelementEnd();
1274
+ i0.ɵɵelementContainerEnd();
1275
+ } if (rf & 2) {
1276
+ const ctx_r20 = i0.ɵɵnextContext();
1277
+ i0.ɵɵadvance(3);
1278
+ i0.ɵɵtextInterpolate(ctx_r20.question.title);
1279
+ i0.ɵɵadvance(1);
1280
+ i0.ɵɵproperty("ngIf", ctx_r20.question.description);
1281
+ } }
1282
+ function DynamicFormQuestionComponent_ng_container_23_Template(rf, ctx) { if (rf & 1) {
1283
+ i0.ɵɵelementContainerStart(0);
1284
+ i0.ɵɵelementStart(1, "div", 49);
1285
+ i0.ɵɵelement(2, "app-overlay-info", 114);
1286
+ i0.ɵɵpipe(3, "dynamicTranslate");
1287
+ i0.ɵɵelementEnd();
1288
+ i0.ɵɵelementContainerEnd();
1289
+ } if (rf & 2) {
1290
+ const ctx_r21 = i0.ɵɵnextContext();
1291
+ i0.ɵɵadvance(2);
1292
+ i0.ɵɵproperty("displayText", ctx_r21.question.title)("overlayText", i0.ɵɵpipeBind2(3, 3, ctx_r21.question.description, ctx_r21.dynamicParam))("displayAsLabel", true);
1293
+ } }
1294
+ function DynamicFormQuestionComponent_ng_container_24_Template(rf, ctx) { if (rf & 1) {
1295
+ i0.ɵɵelementContainerStart(0);
1296
+ i0.ɵɵelementStart(1, "div", 49);
1297
+ i0.ɵɵelement(2, "app-overlay-info", 115);
1298
+ i0.ɵɵpipe(3, "dynamicTranslate");
1299
+ i0.ɵɵelementEnd();
1300
+ i0.ɵɵelementContainerEnd();
1301
+ } if (rf & 2) {
1302
+ const ctx_r22 = i0.ɵɵnextContext();
1303
+ i0.ɵɵadvance(2);
1304
+ i0.ɵɵproperty("displayText", ctx_r22.question.title)("formControlName", ctx_r22.question.name)("overlayText", i0.ɵɵpipeBind2(3, 4, ctx_r22.question.description, ctx_r22.dynamicParam))("labelWithLink", true);
1305
+ } }
1306
+ function DynamicFormQuestionComponent_ng_container_25_Template(rf, ctx) { if (rf & 1) {
1307
+ i0.ɵɵelementContainerStart(0);
1308
+ i0.ɵɵelementStart(1, "div", 49);
1309
+ i0.ɵɵelement(2, "app-overlay-info", 116);
1310
+ i0.ɵɵpipe(3, "dynamicTranslate");
1311
+ i0.ɵɵelementEnd();
1312
+ i0.ɵɵelementContainerEnd();
1313
+ } if (rf & 2) {
1314
+ const ctx_r23 = i0.ɵɵnextContext();
1315
+ i0.ɵɵadvance(2);
1316
+ i0.ɵɵproperty("displayText", ctx_r23.question.title)("formControlName", ctx_r23.question.name)("labelWithPopup", i0.ɵɵpipeBind2(3, 4, ctx_r23.question.description, ctx_r23.dynamicParam))("labelWithLink", true);
1317
+ } }
1318
+ function DynamicFormQuestionComponent_ng_container_26_ng_container_4_ion_col_1_Template(rf, ctx) { if (rf & 1) {
1319
+ i0.ɵɵelementStart(0, "ion-col", 120);
1320
+ i0.ɵɵelement(1, "app-question", 121);
1321
+ i0.ɵɵelementEnd();
1322
+ } if (rf & 2) {
1323
+ const element_r165 = i0.ɵɵnextContext().$implicit;
1324
+ const ctx_r166 = i0.ɵɵnextContext(2);
1325
+ i0.ɵɵproperty("sizeXl", element_r165.sizeXL)("sizeLg", element_r165.sizeLG)("sizeMd", element_r165.sizeMD)("offsetMd", element_r165.offSetMD);
1326
+ i0.ɵɵadvance(1);
1327
+ i0.ɵɵproperty("question", element_r165)("form", ctx_r166.form)("forScreenQuestionnaire", ctx_r166.forScreenQuestionnaire);
1328
+ } }
1329
+ function DynamicFormQuestionComponent_ng_container_26_ng_container_4_Template(rf, ctx) { if (rf & 1) {
1330
+ i0.ɵɵelementContainerStart(0);
1331
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_26_ng_container_4_ion_col_1_Template, 2, 7, "ion-col", 119);
1332
+ i0.ɵɵelementContainerEnd();
1333
+ } if (rf & 2) {
1334
+ const element_r165 = ctx.$implicit;
1335
+ const ctx_r163 = i0.ɵɵnextContext(2);
1336
+ i0.ɵɵadvance(1);
1337
+ i0.ɵɵproperty("ngIf", element_r165.colElement === "COL1" && ctx_r163.visibleIf(element_r165.visibleIf, element_r165.name));
1338
+ } }
1339
+ function DynamicFormQuestionComponent_ng_container_26_ng_container_7_ion_col_1_Template(rf, ctx) { if (rf & 1) {
1340
+ i0.ɵɵelementStart(0, "ion-col", 123);
1341
+ i0.ɵɵelement(1, "app-question", 121);
1342
+ i0.ɵɵelementEnd();
1343
+ } if (rf & 2) {
1344
+ const element_r168 = i0.ɵɵnextContext().$implicit;
1345
+ const ctx_r169 = i0.ɵɵnextContext(2);
1346
+ i0.ɵɵproperty("sizeXl", element_r168.sizeXL)("sizeLg", element_r168.sizeLG)("sizeMd", element_r168.sizeMD)("offsetMd", element_r168.offSetMD);
1347
+ i0.ɵɵadvance(1);
1348
+ i0.ɵɵproperty("question", element_r168)("form", ctx_r169.form)("forScreenQuestionnaire", ctx_r169.forScreenQuestionnaire);
1349
+ } }
1350
+ function DynamicFormQuestionComponent_ng_container_26_ng_container_7_Template(rf, ctx) { if (rf & 1) {
1351
+ i0.ɵɵelementContainerStart(0);
1352
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_26_ng_container_7_ion_col_1_Template, 2, 7, "ion-col", 122);
1353
+ i0.ɵɵelementContainerEnd();
1354
+ } if (rf & 2) {
1355
+ const element_r168 = ctx.$implicit;
1356
+ const ctx_r164 = i0.ɵɵnextContext(2);
1357
+ i0.ɵɵadvance(1);
1358
+ i0.ɵɵproperty("ngIf", element_r168.colElement === "COL2" && ctx_r164.visibleIf(element_r168.visibleIf, element_r168.name));
1359
+ } }
1360
+ function DynamicFormQuestionComponent_ng_container_26_Template(rf, ctx) { if (rf & 1) {
1361
+ i0.ɵɵelementContainerStart(0, 117);
1362
+ i0.ɵɵelementStart(1, "ion-row")(2, "ion-col")(3, "ion-row");
1363
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_26_ng_container_4_Template, 2, 1, "ng-container", 118);
1364
+ i0.ɵɵelementEnd()();
1365
+ i0.ɵɵelementStart(5, "ion-col")(6, "ion-row");
1366
+ i0.ɵɵtemplate(7, DynamicFormQuestionComponent_ng_container_26_ng_container_7_Template, 2, 1, "ng-container", 118);
1367
+ i0.ɵɵelementEnd()()();
1368
+ i0.ɵɵelementContainerEnd();
1369
+ } if (rf & 2) {
1370
+ const ctx_r24 = i0.ɵɵnextContext();
1371
+ i0.ɵɵadvance(4);
1372
+ i0.ɵɵproperty("ngForOf", ctx_r24.question.elements);
1373
+ i0.ɵɵadvance(3);
1374
+ i0.ɵɵproperty("ngForOf", ctx_r24.question.elements);
1375
+ } }
1376
+ function DynamicFormQuestionComponent_div_27_small_1_Template(rf, ctx) { if (rf & 1) {
1377
+ i0.ɵɵelementStart(0, "small", 125);
1378
+ i0.ɵɵtext(1);
1379
+ i0.ɵɵpipe(2, "dynamicTranslate");
1380
+ i0.ɵɵelementEnd();
1381
+ } if (rf & 2) {
1382
+ const ctx_r171 = i0.ɵɵnextContext(2);
1383
+ i0.ɵɵproperty("@rowExpansionTrigger", "active");
1384
+ i0.ɵɵadvance(1);
1385
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 2, ctx_r171.isValid, ctx_r171.dynamicParam));
1386
+ } }
1387
+ function DynamicFormQuestionComponent_div_27_Template(rf, ctx) { if (rf & 1) {
1388
+ i0.ɵɵelementStart(0, "div", 51);
1389
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_div_27_small_1_Template, 3, 5, "small", 124);
1390
+ i0.ɵɵelementEnd();
1391
+ } if (rf & 2) {
1392
+ const ctx_r25 = i0.ɵɵnextContext();
1393
+ i0.ɵɵproperty("ngStyle", ctx_r25.setStyle(ctx_r25.question.indent));
1394
+ i0.ɵɵadvance(1);
1395
+ i0.ɵɵproperty("ngIf", ctx_r25.isValid != "");
1396
+ } }
1397
+ export class DynamicFormQuestionComponent {
1398
+ constructor(qcs, service, translate, validationService, util, navController, logger, claimantService, weeklycertService, elementRef, renderer, ls) {
1399
+ this.qcs = qcs;
1400
+ this.service = service;
1401
+ this.translate = translate;
1402
+ this.validationService = validationService;
1403
+ this.util = util;
1404
+ this.navController = navController;
1405
+ this.logger = logger;
1406
+ this.claimantService = claimantService;
1407
+ this.weeklycertService = weeklycertService;
1408
+ this.elementRef = elementRef;
1409
+ this.renderer = renderer;
1410
+ this.ls = ls;
1411
+ this.onDynamicParamUpdate = new EventEmitter();
1412
+ this.legalAccepted = null;
1413
+ this.index = 1;
1414
+ this.returnModel = new ValidationModel();
1415
+ this.maskClass = true;
1416
+ this.showMinDate = false;
1417
+ this.showMaxDate = false;
1418
+ this.minValue = null;
1419
+ this.maxValue = null;
1420
+ this.toDayDate = new Date();
1421
+ this.registerClaimantFlag = false;
1422
+ this.phoneVerified = true;
1423
+ this.isFieldDisabled = true;
1424
+ this.partEmpModel = new PartialEmploymentModel();
1425
+ this.isOtpModalEnabled = false;
1426
+ this.isReturningUser = false;
1427
+ this.wcEmployerValidationMsg = 'The last day worked reported on your claim falls within this week, you must select "yes" for "Did you perform any work during the week?"';
1428
+ this.minDateDOB = new Date(this.toDayDate.getFullYear() - 100, this.toDayDate.getMonth(), this.toDayDate.getDate());
1429
+ this.maxDateDOB = new Date(this.toDayDate.getFullYear() - 10, this.toDayDate.getMonth(), this.toDayDate.getDate());
1430
+ }
1431
+ ngAfterViewInit() {
1432
+ if (this.pCalendar) {
1433
+ this.modifyCalendarAttributes();
1434
+ }
1435
+ }
1436
+ visibleIf(strExp, elementName) {
1437
+ if (!strExp) {
1438
+ return true;
1439
+ }
1440
+ let isVisible = false;
1441
+ if (strExp.includes('&&')) {
1442
+ let expr = strExp.split('&&');
1443
+ isVisible =
1444
+ this.calculateOperandValue(expr[0]) &&
1445
+ this.calculateOperandValue(expr[1]);
1446
+ if (expr.length >= 3) {
1447
+ isVisible = isVisible && this.calculateOperandValue(expr[2]);
1448
+ }
1449
+ if (expr.length >= 4) {
1450
+ isVisible = isVisible && this.calculateOperandValue(expr[3]);
1451
+ }
1452
+ if (expr.length == 5) {
1453
+ isVisible = isVisible && this.calculateOperandValue(expr[4]);
1454
+ }
1455
+ if (expr.length > 5) {
1456
+ throw "AppValidators : More than 5 '&&' expressions are not supported.";
1457
+ }
1458
+ }
1459
+ if (strExp.includes('||')) {
1460
+ let expr = strExp.split('||');
1461
+ isVisible =
1462
+ this.calculateOperandValue(expr[0]) ||
1463
+ this.calculateOperandValue(expr[1]);
1464
+ if (expr.length >= 3) {
1465
+ isVisible = isVisible || this.calculateOperandValue(expr[2]);
1466
+ }
1467
+ if (expr.length >= 4) {
1468
+ isVisible = isVisible || this.calculateOperandValue(expr[3]);
1469
+ }
1470
+ if (expr.length == 5) {
1471
+ isVisible = isVisible || this.calculateOperandValue(expr[4]);
1472
+ }
1473
+ if (expr.length > 5) {
1474
+ throw "AppValidators : More than 5 '||' expressions are not supported.";
1475
+ }
1476
+ }
1477
+ if (isVisible) {
1478
+ return isVisible;
1479
+ }
1480
+ this.setFormControlValue(elementName, null);
1481
+ return false;
1482
+ }
1483
+ calculateOperandValue(strExp) {
1484
+ var splitArray;
1485
+ let isDoesNotEqual;
1486
+ let index = strExp.indexOf('!=');
1487
+ if (index === -1) {
1488
+ splitArray = strExp.split('==');
1489
+ isDoesNotEqual = false;
1490
+ }
1491
+ else {
1492
+ splitArray = strExp.split('!=');
1493
+ isDoesNotEqual = true;
1494
+ }
1495
+ let operand1 = splitArray[0];
1496
+ let operand2 = splitArray[1];
1497
+ operand1 = operand1.replace('{', '').replace('}', '').trim(); //claimantPriorPay102 diffmailaddress315
1498
+ operand2 = operand2.replace('{', '').replace('}', '').trim(); //null
1499
+ if (this.form.controls[operand1]) {
1500
+ var valueOfCnrtrlToCheck;
1501
+ if (this.form.controls[operand1].value &&
1502
+ typeof this.form.controls[operand1].value === 'string') {
1503
+ valueOfCnrtrlToCheck = this.form.controls[operand1].value;
1504
+ }
1505
+ if (this.form.controls[operand1].value &&
1506
+ typeof this.form.controls[operand1].value != 'string') {
1507
+ valueOfCnrtrlToCheck = this.form.controls[operand1].value['value'];
1508
+ }
1509
+ if (operand2 === 'null' && isDoesNotEqual && valueOfCnrtrlToCheck) {
1510
+ return true;
1511
+ }
1512
+ if (operand2 === 'null' && !isDoesNotEqual && !valueOfCnrtrlToCheck) {
1513
+ return true;
1514
+ }
1515
+ operand2 = operand2.replace("'", '').replace("'", '').trim(); //null
1516
+ if (operand2 != 'null' &&
1517
+ !isDoesNotEqual &&
1518
+ valueOfCnrtrlToCheck === operand2) {
1519
+ return true;
1520
+ }
1521
+ if (operand2 != 'null' &&
1522
+ isDoesNotEqual &&
1523
+ valueOfCnrtrlToCheck != operand2) {
1524
+ return true;
1525
+ }
1526
+ return false;
1527
+ }
1528
+ }
1529
+ ngOnInit() {
1530
+ // this.logger.debug('is DynamicFormQuestionComponent ngOnInit called', this.question)
1531
+ this.getPartialEmploymentInfo();
1532
+ this.filterResult = this.question.choices;
1533
+ this.setMinMaxDate();
1534
+ this.setMinMaxValue();
1535
+ this.setDefaultValue();
1536
+ this.setLinkComponentData();
1537
+ let currentQes = this.service.searchBs.getValue();
1538
+ this.currentflowkey = currentQes.flowKey;
1539
+ if ((localStorage.getItem('disableFieldsOnSignup') === 'true') && localStorage.getItem("flowKey") == '345') {
1540
+ this.disableFields();
1541
+ }
1542
+ }
1543
+ checkFlowKey() {
1544
+ if (this.currentflowkey === 'register-claimant') {
1545
+ //console.info("currentflowkey ",this.currentflowkey)
1546
+ return (this.registerClaimantFlag = true);
1547
+ }
1548
+ else {
1549
+ return this.registerClaimantFlag;
1550
+ }
1551
+ }
1552
+ // phoneNumberVerified(): boolean{
1553
+ // return this.phoneVerified,
1554
+ // }
1555
+ disableFields() {
1556
+ if (this.checkFlowKey()) {
1557
+ this.form.get('phone').disable();
1558
+ this.form.get('email').disable();
1559
+ this.form.get('username').disable();
1560
+ this.form.get('password').disable();
1561
+ this.form.get('confirmPassword').disable();
1562
+ this.form.get('secQues1').disable();
1563
+ this.form.get('secAns1').disable();
1564
+ this.form.get('secQues2').disable();
1565
+ this.form.get('secAns2').disable();
1566
+ this.form.get('secQues3').disable();
1567
+ this.form.get('secAns3').disable();
1568
+ this.form.get('resAdress').disable();
1569
+ this.form.get('diffmailaddress').disable();
1570
+ //this.form.get('mailaddress').disable();
1571
+ }
1572
+ }
1573
+ enableFields() {
1574
+ this.form.get('email').enable();
1575
+ this.form.get('username').enable();
1576
+ this.form.get('password').enable();
1577
+ this.form.get('confirmPassword').enable();
1578
+ this.form.get('secQues1').enable();
1579
+ this.form.get('secAns1').enable();
1580
+ this.form.get('secQues2').enable();
1581
+ this.form.get('secAns2').enable();
1582
+ this.form.get('secQues3').enable();
1583
+ this.form.get('secAns3').enable();
1584
+ this.form.get('resAdress').enable();
1585
+ this.form.get('diffmailaddress').enable();
1586
+ //this.form.get('mailaddress').enable();
1587
+ }
1588
+ checkIfUserExist() {
1589
+ // console.info("dob ", this.form.get("dob").value);
1590
+ if (!this.form.get('ssn').value &&
1591
+ !this.form.get('dob').value &&
1592
+ !this.checkFlowKey()) {
1593
+ }
1594
+ else {
1595
+ let ssnfromuser = this.form.get('ssn').value;
1596
+ let dateOfbirth = this.form.get('dob').value;
1597
+ //console.info("test with ssnfromuser ", ssnfromuser);
1598
+ let formatedD = dateOfbirth.replace(/\//g, "-");
1599
+ if (dateOfbirth != null && ssnfromuser != null) {
1600
+ this.claimantService.checkIfUserAlreadyExist(ssnfromuser, formatedD).subscribe((x) => {
1601
+ if (x != null) {
1602
+ this.disableFields();
1603
+ this.form.get('phone').setValue(x.toString());
1604
+ if (window["env"]["environment"] === "ksprod") {
1605
+ this.form.get('phone').disable();
1606
+ }
1607
+ /**Delete the else block after the workshare testing is done */
1608
+ else {
1609
+ this.form.get('phone').disable();
1610
+ }
1611
+ }
1612
+ else {
1613
+ this.disableFields();
1614
+ this.form.get('phone').enable();
1615
+ }
1616
+ }, (err) => {
1617
+ if (err.errorCode === "404") {
1618
+ }
1619
+ else {
1620
+ this.util.hideLoader();
1621
+ this.util.errorHandler(err);
1622
+ }
1623
+ });
1624
+ }
1625
+ }
1626
+ }
1627
+ getPartialEmploymentInfo() {
1628
+ if (this.question.name === 'workPerformed') {
1629
+ this.weeklycertService
1630
+ .getPartialEmployment()
1631
+ .subscribe((res) => {
1632
+ if (res.partialEmploymentFlag === '1') {
1633
+ this.form.value[this.question.name] = 'Y';
1634
+ this.form.controls[this.question.name].addValidators((control) => {
1635
+ return control.value !== 'Y' ? { wcEmployerValidation: true } : null;
1636
+ });
1637
+ }
1638
+ });
1639
+ }
1640
+ }
1641
+ setLinkComponentData() {
1642
+ if (this.question.componentName == 'app-link') {
1643
+ this.linkComponentData = this.question.componentData
1644
+ ? JSON.parse(this.question.componentData)
1645
+ : null;
1646
+ }
1647
+ }
1648
+ showLabelForCustomComponent() {
1649
+ let parsedData = this.question.componentData
1650
+ ? JSON.parse(this.question.componentData)
1651
+ : null;
1652
+ return parsedData?.showLabel == 'Y';
1653
+ }
1654
+ setMinMaxValue() {
1655
+ if (this.question.type === 'number' ||
1656
+ this.question.type === 'decimal' ||
1657
+ this.question.type === 'currency') {
1658
+ let minMaxModel = this.question.componentData
1659
+ ? JSON.parse(this.question.componentData)
1660
+ : null;
1661
+ if (minMaxModel) {
1662
+ if (minMaxModel.minValue) {
1663
+ this.minValue = minMaxModel.minValue;
1664
+ }
1665
+ if (minMaxModel.maxValue) {
1666
+ this.maxValue = minMaxModel.maxValue;
1667
+ }
1668
+ }
1669
+ }
1670
+ }
1671
+ setMinMaxDate() {
1672
+ if (this.question.inputType === 'date') {
1673
+ let minMaxModel = this.question.componentData
1674
+ ? JSON.parse(this.question.componentData)
1675
+ : null;
1676
+ if (minMaxModel && (minMaxModel.maxDateKey || minMaxModel.minDateKey)) {
1677
+ if (this.dynamicParam[minMaxModel.minDateKey]) {
1678
+ this.parseDate(this.dynamicParam[minMaxModel.minDateKey], 'min');
1679
+ this.showMinDate = true;
1680
+ }
1681
+ if (this.dynamicParam[minMaxModel.maxDateKey]) {
1682
+ this.parseDate(this.dynamicParam[minMaxModel.maxDateKey], 'max');
1683
+ this.showMaxDate = true;
1684
+ }
1685
+ }
1686
+ else {
1687
+ if (this.question.min) {
1688
+ this.parseDate(this.question.min, 'min');
1689
+ this.showMinDate = true;
1690
+ }
1691
+ if (this.question.max) {
1692
+ this.parseDate(this.question.max, 'max');
1693
+ this.showMaxDate = true;
1694
+ }
1695
+ }
1696
+ }
1697
+ }
1698
+ parseDate(strDate, type) {
1699
+ if (strDate && type === 'max') {
1700
+ var splitArray = strDate.split('-');
1701
+ this.maxDate = new Date();
1702
+ this.maxDate.setMonth(Number(splitArray[0]) - 1);
1703
+ this.maxDate.setFullYear(Number(splitArray[2]));
1704
+ this.maxDate.setDate(Number(splitArray[1]));
1705
+ return this.maxDate;
1706
+ }
1707
+ if (strDate && type === 'min') {
1708
+ var splitArray = strDate.split('-');
1709
+ this.minDate = new Date();
1710
+ this.minDate.setMonth(Number(splitArray[0]) - 1);
1711
+ this.minDate.setFullYear(Number(splitArray[2]));
1712
+ this.minDate.setDate(Number(splitArray[1]));
1713
+ return this.minDate;
1714
+ }
1715
+ }
1716
+ setStyle(indent) {
1717
+ let padding = indent <= 1 ? '0 px' : indent * 10 + 'px';
1718
+ let styleObj = {
1719
+ 'padding-left': padding,
1720
+ };
1721
+ return Object.assign(styleObj);
1722
+ }
1723
+ setMargin(margin) {
1724
+ let mar = margin + 'px';
1725
+ let styleObj = {
1726
+ 'margin-right': mar,
1727
+ };
1728
+ return Object.assign(styleObj);
1729
+ }
1730
+ get isValid() {
1731
+ let message = '';
1732
+ let questionType = this.question.type;
1733
+ if ('html' === questionType ||
1734
+ 'label' === questionType ||
1735
+ 'simpleLabel' === questionType ||
1736
+ 'displaytextaslabel' === questionType ||
1737
+ ('button' === questionType &&
1738
+ !this.question.validators &&
1739
+ this.question.componentName != 'app-sign-ssn' &&
1740
+ this.question.componentName != 'app-link') ||
1741
+ 'label-with-overlay' === questionType) {
1742
+ return '';
1743
+ }
1744
+ if (this.question &&
1745
+ this.question.name &&
1746
+ this.form &&
1747
+ this.form.controls[this.question.name].errors?.required &&
1748
+ (this.form.controls[this.question.name].dirty ||
1749
+ this.form.controls[this.question.name].touched)) {
1750
+ this.form.controls[this.question.name].markAsDirty();
1751
+ return this.question.requiredErrorText;
1752
+ }
1753
+ if (this.question &&
1754
+ this.question.name &&
1755
+ this.form &&
1756
+ this.form.controls[this.question.name].errors?.maxlength &&
1757
+ (this.form.controls[this.question.name].dirty ||
1758
+ this.form.controls[this.question.name].touched)) {
1759
+ this.logger.debug('errors?.maxLength', this.question);
1760
+ this.form.controls[this.question.name].markAsDirty();
1761
+ if (this.question.description) {
1762
+ return this.question.description;
1763
+ }
1764
+ let validatorList = this.question.validators;
1765
+ var keepGoing = true;
1766
+ validatorList.forEach((validator) => {
1767
+ this.logger.debug('validator.type ', validator.type);
1768
+ if (keepGoing) {
1769
+ if (validator.type === 'text' && validator.maxLength) {
1770
+ this.logger.debug('validator.text ', validator.text);
1771
+ message = validator.text;
1772
+ keepGoing = false;
1773
+ }
1774
+ else {
1775
+ message = '';
1776
+ }
1777
+ }
1778
+ });
1779
+ return message;
1780
+ }
1781
+ if (this.question &&
1782
+ this.question.name &&
1783
+ this.form &&
1784
+ this.form.controls[this.question.name].errors?.pattern &&
1785
+ (this.form.controls[this.question.name].dirty ||
1786
+ this.form.controls[this.question.name].touched)) {
1787
+ // this.logger.debug('errors?.pattern',this.question)
1788
+ let validatorList = this.question.validators;
1789
+ var keepGoing = true;
1790
+ validatorList.forEach((validator) => {
1791
+ // this.logger.debug('validator.type ', validator.type)
1792
+ if (keepGoing) {
1793
+ if (validator.type === 'regex') {
1794
+ // this.logger.debug('validator.text ', validator.text)
1795
+ message = validator.text;
1796
+ this.form.controls[this.question.name].markAsDirty();
1797
+ keepGoing = false;
1798
+ }
1799
+ else {
1800
+ message = '';
1801
+ }
1802
+ }
1803
+ });
1804
+ return message;
1805
+ }
1806
+ if (this.question &&
1807
+ this.question.name &&
1808
+ this.form &&
1809
+ this.form.controls[this.question.name].errors?.dateComparision &&
1810
+ (this.form.controls[this.question.name].dirty ||
1811
+ this.form.controls[this.question.name].touched)) {
1812
+ let validatorList = this.question.validators;
1813
+ var keepGoing = true;
1814
+ let message = '';
1815
+ validatorList.forEach((validator) => {
1816
+ if (keepGoing) {
1817
+ // this.logger.debug('validator.type.minlength ', validator.type)
1818
+ if (validator.type === 'expression') {
1819
+ // this.logger.debug('validator.text ', validator.text)
1820
+ message = validator.text;
1821
+ keepGoing = false;
1822
+ this.form.controls[this.question.name].markAsDirty();
1823
+ }
1824
+ else {
1825
+ message = '';
1826
+ }
1827
+ }
1828
+ });
1829
+ return message;
1830
+ }
1831
+ if (this.question &&
1832
+ this.question.name &&
1833
+ this.form &&
1834
+ this.form.controls[this.question.name].errors?.minlength &&
1835
+ (this.form.controls[this.question.name].dirty ||
1836
+ this.form.controls[this.question.name].touched)) {
1837
+ let validatorList = this.question.validators;
1838
+ var keepGoing = true;
1839
+ let message = '';
1840
+ validatorList.forEach((validator) => {
1841
+ if (keepGoing) {
1842
+ //console.log('validator.type.minlength ', validator.type)
1843
+ if (validator.type === 'text') {
1844
+ //console.log('validator.text ', validator.text)
1845
+ message = validator.text;
1846
+ this.form.controls[this.question.name].markAsDirty();
1847
+ keepGoing = false;
1848
+ }
1849
+ else {
1850
+ message = '';
1851
+ }
1852
+ }
1853
+ });
1854
+ return message;
1855
+ }
1856
+ if (this.question &&
1857
+ this.question.name &&
1858
+ this.form &&
1859
+ this.form.controls[this.question.name].errors?.passwordComparision &&
1860
+ (this.form.controls[this.question.name].dirty ||
1861
+ this.form.controls[this.question.name].touched)) {
1862
+ let validatorList = this.question.validators;
1863
+ var keepGoing = true;
1864
+ let message = '';
1865
+ validatorList.forEach((validator) => {
1866
+ if (keepGoing) {
1867
+ // console.log('validator.type.minlength ', validator.type)
1868
+ if (validator.type === 'expression') {
1869
+ // console.log('validator.text ', validator.text)
1870
+ message = validator.text;
1871
+ this.form.controls[this.question.name].markAsDirty();
1872
+ keepGoing = false;
1873
+ }
1874
+ else {
1875
+ message = '';
1876
+ }
1877
+ }
1878
+ });
1879
+ return message;
1880
+ }
1881
+ if (this.question &&
1882
+ this.question.name &&
1883
+ this.form &&
1884
+ this.form.controls[this.question.name].errors?.requiredIf &&
1885
+ (this.form.controls[this.question.name].dirty ||
1886
+ this.form.controls[this.question.name].touched)) {
1887
+ this.form.controls[this.question.name].markAsDirty();
1888
+ return this.getRequiredValidationMessage();
1889
+ }
1890
+ if (this.question &&
1891
+ this.question.name &&
1892
+ this.form &&
1893
+ this.form.controls[this.question.name].errors?.bpEmplrFlag &&
1894
+ this.form.controls[this.question.name].dirty &&
1895
+ this.form.controls[this.question.name].touched) {
1896
+ var keepGoing = true;
1897
+ let message;
1898
+ if (localStorage.getItem("language") === "es") {
1899
+ message = 'Confirmar o eliminar cada empleador(es) para continuar';
1900
+ }
1901
+ else {
1902
+ message = 'Confirm or Delete each employer(s) to continue';
1903
+ }
1904
+ this.form.controls[this.question.name].markAsDirty();
1905
+ return message;
1906
+ }
1907
+ if (this.question &&
1908
+ this.question.name &&
1909
+ this.form &&
1910
+ this.form.controls[this.question.name].errors
1911
+ ?.simpleCheckBoxValidationFlag &&
1912
+ (this.form.controls[this.question.name].dirty ||
1913
+ this.form.controls[this.question.name].touched)) {
1914
+ var keepGoing = true;
1915
+ this.form.controls[this.question.name].markAsDirty();
1916
+ return this.getRequiredValidationMessage();
1917
+ }
1918
+ if (this.question &&
1919
+ this.question.name &&
1920
+ this.form &&
1921
+ this.form.controls[this.question.name].errors?.cpatchvalidationFlag &&
1922
+ (this.form.controls[this.question.name].dirty ||
1923
+ this.form.controls[this.question.name].touched)) {
1924
+ var keepGoing = true;
1925
+ this.form.controls[this.question.name].markAsDirty();
1926
+ return this.getRequiredValidationMessage();
1927
+ }
1928
+ if (this.question &&
1929
+ this.question.name &&
1930
+ this.form &&
1931
+ this.form.controls[this.question.name].errors?.uploadvalidationFlag &&
1932
+ (this.form.controls[this.question.name].dirty ||
1933
+ this.form.controls[this.question.name].touched)) {
1934
+ var keepGoing = true;
1935
+ this.form.controls[this.question.name].markAsDirty();
1936
+ return this.getRequiredValidationMessage();
1937
+ }
1938
+ if (this.question &&
1939
+ this.question.name &&
1940
+ this.form &&
1941
+ this.form.controls[this.question.name].errors?.bpEmplrLengthFlag &&
1942
+ (this.form.controls[this.question.name].dirty ||
1943
+ this.form.controls[this.question.name].touched)) {
1944
+ var keepGoing = true;
1945
+ let message = 'Add previous employment details';
1946
+ this.form.controls[this.question.name].markAsDirty();
1947
+ return message;
1948
+ }
1949
+ if (this.question &&
1950
+ this.question.name &&
1951
+ this.form &&
1952
+ this.form.controls[this.question.name].errors?.addressValidationFlag &&
1953
+ (this.form.controls[this.question.name].dirty ||
1954
+ this.form.controls[this.question.name].touched)) {
1955
+ var keepGoing = true;
1956
+ //let message: string = "Please provide valid address.";
1957
+ this.addresses.forEach((address) => address.submit());
1958
+ this.form.controls[this.question.name].markAsDirty();
1959
+ return message;
1960
+ }
1961
+ if (this.question &&
1962
+ this.question.name &&
1963
+ this.form &&
1964
+ this.form.controls[this.question.name].errors
1965
+ ?.bankDetailsValidationFlag &&
1966
+ (this.form.controls[this.question.name].dirty ||
1967
+ this.form.controls[this.question.name].touched)) {
1968
+ var keepGoing = true;
1969
+ //let message: string = "Please provide valid bank details.";
1970
+ this.bankdtls?.submit();
1971
+ this.form.controls[this.question.name].markAsDirty();
1972
+ return message;
1973
+ }
1974
+ if (this.question &&
1975
+ this.question.name &&
1976
+ this.form &&
1977
+ this.form.controls[this.question.name].errors?.wcEmployerValidation &&
1978
+ this.form.controls[this.question.name].dirty &&
1979
+ this.form.controls[this.question.name].touched) {
1980
+ var keepGoing = true;
1981
+ const control = this.form.controls[this.question.name];
1982
+ const error = control.errors;
1983
+ this.wcEmployerGrid?.submit();
1984
+ control.markAsDirty();
1985
+ if (error?.wcEmployerValidation) {
1986
+ message = this.wcEmployerValidationMsg;
1987
+ return message;
1988
+ }
1989
+ if (error?.required) {
1990
+ message = "required";
1991
+ return message;
1992
+ }
1993
+ }
1994
+ if (this.question &&
1995
+ this.question.name &&
1996
+ this.form &&
1997
+ this.form.controls[this.question.name].errors?.notEquals &&
1998
+ (this.form.controls[this.question.name].dirty ||
1999
+ this.form.controls[this.question.name].touched)) {
2000
+ let validatorList = this.question.validators;
2001
+ var keepGoing = true;
2002
+ let message = '';
2003
+ validatorList.forEach((validator) => {
2004
+ if (keepGoing) {
2005
+ if (validator.type === 'customvalidation') {
2006
+ message = validator.text;
2007
+ this.form.controls[this.question.name].markAsDirty();
2008
+ keepGoing = false;
2009
+ }
2010
+ else {
2011
+ message = '';
2012
+ }
2013
+ }
2014
+ });
2015
+ var keepGoing = true;
2016
+ this.form.controls[this.question.name].markAsDirty();
2017
+ return message;
2018
+ }
2019
+ // this.logger.debug('message from panel outer-- ',message);
2020
+ return message;
2021
+ }
2022
+ onAccepted(agreed) {
2023
+ //console.log('onAccepted called',agreed);
2024
+ this.legalAccepted = agreed;
2025
+ }
2026
+ onCompleteRequalify(requalifyData) {
2027
+ //console.log("onCompleteRequalify", requalifyData);
2028
+ }
2029
+ onModelDisplay(modelDisplay) {
2030
+ //console.log('modelDisplay called',modelDisplay);
2031
+ }
2032
+ generateOtpForNewUserCreation(event, form) {
2033
+ if (form.controls.phone.value == null || form.value.verification == null) {
2034
+ this.isOtpModalEnabled = false;
2035
+ console.log("Fields are null.");
2036
+ return;
2037
+ }
2038
+ // Remove non-numeric characters
2039
+ // let validPhone = form.value.phone.replace(/\D/g, '');
2040
+ let validPhone = form.controls.phone.value.replaceAll("-", "").replaceAll(" ", "");
2041
+ // Count digits
2042
+ let phoneLength = validPhone.length;
2043
+ console.log("Phone number length", phoneLength);
2044
+ if (phoneLength != 10) {
2045
+ console.log("Phone number must be of length 10");
2046
+ return;
2047
+ }
2048
+ this.ls
2049
+ .generateOtpForNewUserCreation(form.controls.phone.value, event.option.value)
2050
+ .subscribe({
2051
+ next: (res) => {
2052
+ console.log('Access code sent successfully.');
2053
+ this.isOtpModalEnabled = true;
2054
+ },
2055
+ error: (err) => {
2056
+ console.log('Could not generate the authentication OTP code.');
2057
+ console.error(err);
2058
+ },
2059
+ });
2060
+ }
2061
+ onRadioOptionClick(event, element) {
2062
+ if (element?.name === "diffmailaddress" && localStorage.getItem("flowKey") == '345') {
2063
+ localStorage.setItem('disableFieldsOnSignup', 'false');
2064
+ }
2065
+ let query = event.query;
2066
+ if (element.serviceType && element.serviceType === 'FETCH') {
2067
+ let serviceCallType = element.serviceCallType;
2068
+ let serviceName = element.serviceName;
2069
+ const options = event.option.value
2070
+ ? { params: new HttpParams().set('selection', event.option.value) }
2071
+ : {};
2072
+ if (serviceCallType === 'GET') {
2073
+ this.util.showLoader();
2074
+ this.validationService.get(`${serviceName}`, options).subscribe((res) => {
2075
+ let values = res;
2076
+ if (values.success == true) {
2077
+ //console.log(values.serviceCallValues.serviceType);
2078
+ //console.log(values.serviceCallValues);
2079
+ if (values.serviceCallValues &&
2080
+ values.serviceCallValues.serviceType &&
2081
+ values.serviceCallValues.serviceType === 'FETCH') {
2082
+ let serviceCallTypeInTrue = values.serviceCallValues.serviceCallType;
2083
+ let serviceNameInTrue = values.serviceCallValues.serviceName;
2084
+ if (serviceCallTypeInTrue === 'GET') {
2085
+ this.util.showLoader();
2086
+ this.validationService.get(`${serviceNameInTrue}`).subscribe((resp) => {
2087
+ let loaderModel = resp;
2088
+ // console.log(" value from loader = ", loaderModel);
2089
+ this.setFormValues(loaderModel.data);
2090
+ this.util.hideLoader();
2091
+ }, (errp) => {
2092
+ this.util.hideLoader();
2093
+ this.form.controls[element.name]?.reset();
2094
+ this.form.controls[element.name]?.updateValueAndValidity();
2095
+ this.util.errorHandler(errp);
2096
+ });
2097
+ }
2098
+ }
2099
+ this.util.hideLoader();
2100
+ }
2101
+ }, (err) => {
2102
+ this.util.hideLoader();
2103
+ this.form.controls[element.name]?.reset();
2104
+ this.form.controls[element.name]?.updateValueAndValidity();
2105
+ this.util.errorHandler(err);
2106
+ });
2107
+ }
2108
+ }
2109
+ }
2110
+ setFormValues(data) {
2111
+ Object.keys(data).forEach((key) => {
2112
+ let valueToSet = data[key];
2113
+ this.setValueInFormControl(key, valueToSet);
2114
+ });
2115
+ }
2116
+ setValueInFormControl(name, value) {
2117
+ let control = this.form.controls[name];
2118
+ if (control) {
2119
+ control.patchValue(value);
2120
+ }
2121
+ else {
2122
+ console.error('No form control present with name ', name);
2123
+ }
2124
+ }
2125
+ filterValue(event, element) {
2126
+ // this.logger.debug('choices--',choices);
2127
+ let choices = [];
2128
+ let filtered = [];
2129
+ let query = event.query;
2130
+ if (element.serviceType && element.serviceType === 'FETCH') {
2131
+ let serviceCallParam = element.serviceCallParam; //ssn320,lstname320
2132
+ let serviceCallType = element.serviceCallType; //"GET"
2133
+ let serviceName = element.serviceName; ///security-service/validateSSN/
2134
+ let serviceUpdateParam = element.serviceUpdateParam;
2135
+ if (serviceCallType === 'GET') {
2136
+ // this.logger.debug('Inside GET');
2137
+ this.validationService.get(`${serviceName}`).subscribe((res) => {
2138
+ this.logger.debug('res--', res, ' - res[0].length -', res);
2139
+ choices.push(res);
2140
+ let query = event.query;
2141
+ //let filtered: any[] = [];
2142
+ for (let i = 0; i < choices.length; i++) {
2143
+ let choice = choices[i];
2144
+ //this.logger.debug('choice - ', choice, 'choice.text--', choice.text, 'query.toLowerCase()', query?.toLowerCase());
2145
+ //if (choice.text.toLowerCase().indexOf(query.toLowerCase()) == 0) {
2146
+ filtered.push(choice[0]);
2147
+ //}
2148
+ }
2149
+ this.filterResult = filtered;
2150
+ this.logger.debug('this.filterResult123--', this.filterResult);
2151
+ }, (err) => {
2152
+ this.util.hideLoader();
2153
+ this.util.errorHandler(err);
2154
+ });
2155
+ }
2156
+ }
2157
+ else {
2158
+ choices = element.choices;
2159
+ for (let i = 0; i < choices.length; i++) {
2160
+ let country = choices[i];
2161
+ //if (country.text.toLowerCase().indexOf(query.toLowerCase()) == 0) {
2162
+ filtered.push(country);
2163
+ //}
2164
+ }
2165
+ this.filterResult = filtered;
2166
+ }
2167
+ }
2168
+ onSelect(event, cntrlName) { }
2169
+ //This shoud be similira to method present in panel
2170
+ validate(element) {
2171
+ if (!element.serviceName) {
2172
+ return;
2173
+ }
2174
+ let serviceType = element.serviceType;
2175
+ if (element.serviceType === 'FETCH') {
2176
+ return;
2177
+ }
2178
+ let serviceCallParam = element.serviceCallParam; //ssn320,lstname320
2179
+ let serviceCallType = element.serviceCallType; //"GET"
2180
+ let serviceName = element.serviceName; ///security-service/validateSSN/
2181
+ let serviceUpdateParam = element.serviceUpdateParam;
2182
+ let allValuePresent = true;
2183
+ // this.logger.debug('serviceCallParam',serviceCallParam);
2184
+ if (serviceCallParam) {
2185
+ var splitted = serviceCallParam.split(',');
2186
+ let valueArr = [];
2187
+ let paramArr = [];
2188
+ for (let i = 0; i < splitted.length; i++) {
2189
+ //use i instead of 0 dob320
2190
+ // this.logger.debug('dob320',this.form.controls['dob320'].value);
2191
+ if (this.form.controls[splitted[i]].value) {
2192
+ paramArr.push(splitted[i]);
2193
+ valueArr.push(this.form.controls[splitted[i]].value);
2194
+ }
2195
+ else {
2196
+ allValuePresent = false;
2197
+ }
2198
+ }
2199
+ // this.logger.debug('valueArr12', valueArr, 'paramArr11 ', paramArr, ' element', element);
2200
+ var model = {};
2201
+ model.paramName = paramArr;
2202
+ model.paramValue = valueArr;
2203
+ // return this.post(`questionnaire/screen-questionnaire`, questionnaireData);
2204
+ if (allValuePresent) {
2205
+ if (serviceCallType === 'POST') {
2206
+ // this.logger.debug('Inside GET');
2207
+ this.validationService.post(`${serviceName}`, model).subscribe((res) => {
2208
+ this.returnModel = res;
2209
+ if (this.returnModel.returnType &&
2210
+ this.returnModel.returnType === 'POPUP') {
2211
+ this.displayPosition = true;
2212
+ this.position = 'top';
2213
+ this.popUpHeader = this.returnModel.popUpHeader;
2214
+ this.popUpText = this.returnModel.popUpText;
2215
+ this.popUpYesActionLabel = this.returnModel.popUpYesButtonLabel;
2216
+ this.popUpNoActionLabel = this.returnModel.popUpNoButtonLabel;
2217
+ }
2218
+ this.logger.debug('this.returnModel ', this.returnModel);
2219
+ }, (err) => {
2220
+ this.util.hideLoader();
2221
+ this.util.errorHandler(err);
2222
+ });
2223
+ }
2224
+ }
2225
+ }
2226
+ }
2227
+ blurDOB(element) {
2228
+ this.validate(element);
2229
+ this.checkIfUserExist();
2230
+ }
2231
+ accept() {
2232
+ console.log('accept called123', this.returnModel.identifier);
2233
+ let paramArray = [];
2234
+ if (this.returnModel.identifier) {
2235
+ let modelArr = this.returnModel.identifier;
2236
+ for (var val of modelArr) {
2237
+ paramArray.push({ [val.key]: val.value });
2238
+ }
2239
+ const params = paramArray.reduce((arrObj, item) => Object.assign(arrObj, item, {}));
2240
+ //this.util.openPageByContextRootWithData(this.getContextRoot(), this.returnModel.yesAction, params, this.navController)
2241
+ this.navController.navigateRoot(this.returnModel.yesAction, {
2242
+ queryParams: params,
2243
+ });
2244
+ return;
2245
+ }
2246
+ if (this.returnModel.yesAction &&
2247
+ this.returnModel.yesAction.substring(0, 4) != '/cp/') {
2248
+ this.navController.navigateRoot([this.returnModel.yesAction]);
2249
+ this.displayPosition = false;
2250
+ return;
2251
+ }
2252
+ else {
2253
+ window.open(location.origin + this.returnModel.yesAction, '_self');
2254
+ }
2255
+ this.navController.navigateRoot([this.returnModel.yesAction]);
2256
+ }
2257
+ reject() {
2258
+ if (this.returnModel.noAction &&
2259
+ this.returnModel.noAction.substring(0, 4) != '/cp/') {
2260
+ this.navController.navigateRoot([this.returnModel.noAction]);
2261
+ this.displayPosition = false;
2262
+ }
2263
+ else {
2264
+ window.open(location.origin + this.returnModel.noAction, '_self');
2265
+ }
2266
+ }
2267
+ getContextRoot() {
2268
+ return window.location.pathname.substring(0, window.location.pathname.indexOf('/', 2));
2269
+ }
2270
+ uploadFile(ev) { }
2271
+ getTranslation(key, dynamicParam) {
2272
+ if (!dynamicParam) {
2273
+ return key;
2274
+ }
2275
+ let dynamicObj = {};
2276
+ let param;
2277
+ let params;
2278
+ if (Array.isArray(dynamicParam)) {
2279
+ params = dynamicParam;
2280
+ params.forEach((prm) => {
2281
+ dynamicObj[prm.key] = prm.value;
2282
+ });
2283
+ }
2284
+ else {
2285
+ param = dynamicParam;
2286
+ dynamicObj[param.key] = param.value;
2287
+ }
2288
+ this.translate.use('en');
2289
+ let translatedString = '';
2290
+ this.translate.set(key, key);
2291
+ translatedString = this.translate.instant(key, Object.assign(dynamicObj));
2292
+ return translatedString;
2293
+ }
2294
+ getText(object) {
2295
+ return object?.text ? object?.text : object;
2296
+ }
2297
+ unmask(event) {
2298
+ this.maskClass = false;
2299
+ }
2300
+ mask(event) {
2301
+ this.maskClass = true;
2302
+ }
2303
+ dateInput(event) {
2304
+ let currentValue = event.srcElement.value;
2305
+ if (currentValue) {
2306
+ if (currentValue.length == 2 && currentValue.charAt(2) != '/') {
2307
+ event.target.value = currentValue + '/';
2308
+ }
2309
+ if (currentValue.length == 5 && currentValue.charAt(5) != '/') {
2310
+ event.target.value = currentValue + '/';
2311
+ }
2312
+ }
2313
+ }
2314
+ checkForValueChange(event) {
2315
+ if (this.question.componentData) {
2316
+ let compData = JSON.parse(this.question.componentData);
2317
+ let currentValue = event.target.value;
2318
+ let originalValue = this.form.get(compData.originalValueControl)?.value;
2319
+ let formControlToUpdate = this.form.get(compData.formControlToUpdate);
2320
+ formControlToUpdate.patchValue('N');
2321
+ formControlToUpdate.updateValueAndValidity();
2322
+ this.form.updateValueAndValidity();
2323
+ this.dynamicParam = this.dynamicParam ? this.dynamicParam : [];
2324
+ if (Array.isArray(this.dynamicParam)) {
2325
+ this.dynamicParam.push({
2326
+ key: this.question.name,
2327
+ value: currentValue,
2328
+ });
2329
+ }
2330
+ else {
2331
+ this.dynamicParam[this.question.name] = currentValue;
2332
+ }
2333
+ if (currentValue != originalValue) {
2334
+ formControlToUpdate.patchValue('Y');
2335
+ this.onDynamicParamUpdate.emit(this.dynamicParam);
2336
+ }
2337
+ else {
2338
+ formControlToUpdate.patchValue('N');
2339
+ }
2340
+ formControlToUpdate.updateValueAndValidity();
2341
+ }
2342
+ }
2343
+ setEmployer(employer) {
2344
+ if (this.question.componentData) {
2345
+ let compData = JSON.parse(this.question.componentData);
2346
+ let addressFc = this.form.get(compData.addressFormControlName);
2347
+ let empIdFc = this.form.get(compData.employerIdFormControlName);
2348
+ empIdFc.setValue(employer.employerId ? employer.employerId : '-1');
2349
+ addressFc.setValue({
2350
+ country: employer.country,
2351
+ city: employer.city,
2352
+ zip: employer.zip,
2353
+ streetAddress: employer.addressDisplayVal,
2354
+ state: employer.state,
2355
+ optionalAddress: null,
2356
+ county: null,
2357
+ town: null,
2358
+ });
2359
+ }
2360
+ }
2361
+ resetEmployer() {
2362
+ if (this.question.componentData) {
2363
+ let compData = JSON.parse(this.question.componentData);
2364
+ let addressFc = this.form.get(compData.addressFormControlName);
2365
+ let empIdFc = this.form.get(compData.employerIdFormControlName);
2366
+ empIdFc.setValue('-1');
2367
+ addressFc.setValue({
2368
+ country: null,
2369
+ city: null,
2370
+ zip: null,
2371
+ streetAddress: null,
2372
+ state: null,
2373
+ optionalAddress: null,
2374
+ county: null,
2375
+ town: null,
2376
+ });
2377
+ }
2378
+ }
2379
+ setFormControlValue(elementName, elementValue) {
2380
+ if (this.form.controls[elementName]) {
2381
+ this.form.controls[elementName].patchValue(elementValue);
2382
+ }
2383
+ }
2384
+ setDefaultValue() {
2385
+ if (this.question.defaultValue) {
2386
+ let value = this.question.defaultValue;
2387
+ if (this.question.type == 'dropdown') {
2388
+ const choice = this.question.defaultValue;
2389
+ var jsonObject = JSON.parse(choice);
2390
+ this.setFormControlValue(this.question.name, this.question.choices.filter((c) => c.value == jsonObject.value)[0]);
2391
+ }
2392
+ else {
2393
+ this.setFormControlValue(this.question.name, value);
2394
+ }
2395
+ }
2396
+ }
2397
+ modifyCalendarAttributes() {
2398
+ const inputElement = this.pCalendar.nativeElement.querySelectorAll('p-calendar [aria-controls]');
2399
+ inputElement.forEach((element) => {
2400
+ this.renderer.setAttribute(element, 'aria-controls', this.question.name);
2401
+ this.renderer.setAttribute(element, 'aria-expanded', 'false');
2402
+ });
2403
+ }
2404
+ getRequiredValidationMessage() {
2405
+ if (localStorage.getItem("language") === "es") {
2406
+ return 'requerido';
2407
+ }
2408
+ else {
2409
+ return 'required';
2410
+ }
2411
+ }
2412
+ static { this.ɵfac = function DynamicFormQuestionComponent_Factory(t) { return new (t || DynamicFormQuestionComponent)(i0.ɵɵdirectiveInject(i1.QuestionControlService), i0.ɵɵdirectiveInject(i2.QuestionService), i0.ɵɵdirectiveInject(i3.TranslateService), i0.ɵɵdirectiveInject(i4.ValidationService), i0.ɵɵdirectiveInject(i5.UtilService), i0.ɵɵdirectiveInject(i6.NavController), i0.ɵɵdirectiveInject(i7.LoggerService), i0.ɵɵdirectiveInject(i8.ClaimantService), i0.ɵɵdirectiveInject(i9.WeeklyCertServiceV2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i10.LoginService)); }; }
2413
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DynamicFormQuestionComponent, selectors: [["app-question"]], viewQuery: function DynamicFormQuestionComponent_Query(rf, ctx) { if (rf & 1) {
2414
+ i0.ɵɵviewQuery(_c0, 5);
2415
+ i0.ɵɵviewQuery(_c1, 5);
2416
+ i0.ɵɵviewQuery(_c2, 5);
2417
+ i0.ɵɵviewQuery(_c3, 5);
2418
+ } if (rf & 2) {
2419
+ let _t;
2420
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.bankdtls = _t.first);
2421
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.wcEmployerGrid = _t.first);
2422
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.pCalendar = _t.first);
2423
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.addresses = _t);
2424
+ } }, inputs: { question: "question", form: "form", indexNumber: "indexNumber", forScreenQuestionnaire: "forScreenQuestionnaire", dynamicParam: "dynamicParam", potentialIssueId: "potentialIssueId" }, outputs: { onDynamicParamUpdate: "onDynamicParamUpdate" }, decls: 28, vars: 29, consts: [[3, "formGroup", "id"], ["appendTo", "body", "closeOnEscape", "false", 3, "visible", "position", "modal", "breakpoints", "style", "baseZIndex", "draggable", "resizable", "visibleChange", 4, "ngIf"], ["class", "form-label", 3, "ngStyle", 4, "ngIf"], [4, "ngIf"], ["style", "display: flex;", 4, "ngIf"], [3, "ngSwitch"], [4, "ngSwitchCase"], ["class", "responsive", 4, "ngSwitchCase"], [3, "ngStyle", 4, "ngIf"], ["appendTo", "body", "closeOnEscape", "false", 3, "visible", "position", "modal", "breakpoints", "baseZIndex", "draggable", "resizable", "visibleChange"], [1, "heading", "ion-padding-left"], ["pTemplate", "footer"], ["shape", "round", "size", "small", "type", "submit", "fill", "outline", 3, "click", 4, "ngIf"], ["shape", "round", "size", "small", "type", "submit", "fill", "solid", 3, "click", 4, "ngIf"], ["shape", "round", "size", "small", "type", "submit", "fill", "outline", 3, "click"], ["shape", "round", "size", "small", "type", "submit", "fill", "solid", 3, "click"], [1, "form-label", 3, "ngStyle"], [3, "innerHtml"], [3, "formControlName", "form", "dynamicParam", "modelDisplay", 4, "ngIf"], [3, "componentData", "question", "form", "accepted", 4, "ngIf"], [3, "formControlName", 4, "ngIf"], [3, "formControlName", "fromPopup", "countyRequired", "inputId", 4, "ngIf"], [3, "formControlName", "componentData", "form", 4, "ngIf"], [3, "dynamicParam", "formControlName", 4, "ngIf"], ["empType", "REG", 3, "formControlName", "onFound", "onEmpty", 4, "ngIf"], [3, "potentialIssueId", "formControlName", 4, "ngIf"], [3, "isRequired", "formControlName", "text", "uri", "externalUrl", 4, "ngIf"], [3, "isRequired", "formControlName", "inputId", 4, "ngIf"], [3, "control", 4, "ngIf"], [3, "formControlName", "form", "dynamicParam", "modelDisplay"], [3, "componentData", "question", "form", "accepted"], [3, "formControlName"], [3, "formControlName", "fromPopup", "countyRequired", "inputId"], ["address", ""], ["bankdtls", ""], [3, "formControlName", "componentData", "form"], [3, "dynamicParam", "formControlName"], ["wcEmployerGrid", ""], ["empType", "REG", 3, "formControlName", "onFound", "onEmpty"], [3, "potentialIssueId", "formControlName"], [3, "isRequired", "formControlName", "text", "uri", "externalUrl"], [3, "isRequired", "formControlName", "inputId"], [3, "control"], ["jobTitle", ""], [2, "display", "flex"], [1, "heading", 2, "color", "var(--ion-color-medium-gray)", "padding-top", "20px", 3, "innerHTML"], ["style", "padding-left: 8px; padding-top:13px", 4, "ngIf"], [2, "padding-left", "8px", "padding-top", "13px"], [3, "overlayText"], [1, "container", 2, "display", "flex"], ["style", "flex-grow: 1;", "style", "padding-left: 8px; padding-top:3px", 4, "ngIf"], [3, "ngStyle"], ["pCalendar", ""], ["yearRange", "1901:2099", "dateFormat", "mm/dd/yy", "appendTo", "body", "dataType", "string", "placeholder", "mm/dd/yyyy", 3, "formControlName", "inputId", "monthNavigator", "yearNavigator", "showIcon", "minDate", "maxDate", "showOnFocus", "iconAriaLabel", "onBlur", "onSelect", "onInput"], ["yearRange", "1901:2050", "dateFormat", "mm/dd/yy", "appendTo", "body", "dataType", "string", "placeholder", "mm/dd/yyyy", 3, "formControlName", "inputId", "monthNavigator", "yearNavigator", "showIcon", "minDate", "maxDate", "showOnFocus", "iconAriaLabel", "onBlur", "onSelect", "onInput"], ["autocomplete", "off", "mask", "999-99-9999", "placeholder", "999-99-9999", 3, "inputId", "formControlName", "onComplete", "onFocus", "onBlur"], ["autocomplete", "off", "mask", "99-99999-9-99", "placeholder", "99-99999-9-99", 3, "inputId", "formControlName", "value", "onComplete"], ["mode", "decimal", "locale", "en-US", 3, "inputId", "formControlName", "minFractionDigits", "ariaLabel"], ["type", "text", "pInputText", "", 3, "maxLength", "placeholder", "id", "formControlName", 4, "ngIf"], ["type", "text", "pInputText", "", 3, "placeholder", "id", "formControlName", 4, "ngIf"], ["type", "text", "pInputText", "", 3, "id", "formControlName", "placeholder", 4, "ngIf"], ["type", "text", "pInputText", "", 3, "maxLength", "placeholder", "id", "formControlName"], ["type", "text", "pInputText", "", 3, "placeholder", "id", "formControlName"], ["type", "text", "pInputText", "", 3, "id", "formControlName", "placeholder"], ["type", "text", "pInputText", "", 3, "maxLength", "id", "formControlName", "placeholder", 4, "ngIf"], ["type", "text", "pInputText", "", 3, "maxLength", "id", "formControlName", "placeholder"], ["type", "text", "pInputText", "", 3, "maxLength", "id", "formControlName", "disabled", "autocomplete", 4, "ngIf"], ["type", "text", "pInputText", "", 3, "id", "formControlName", "disabled", 4, "ngIf"], ["type", "text", "pInputText", "", 3, "maxLength", "id", "formControlName", "disabled", 4, "ngIf"], ["type", "text", "pInputText", "", 3, "maxLength", "id", "formControlName", "disabled", "autocomplete"], ["type", "text", "pInputText", "", 3, "id", "formControlName", "disabled"], ["type", "text", "pInputText", "", 3, "maxLength", "id", "formControlName", "disabled"], ["type", "text", "pInputText", "", 3, "maxLength", "id", "formControlName"], ["autocomplete", "off", "mask", "999-999-9999", 3, "inputId", "formControlName", "placeholder", "onBlur", 4, "ngIf"], ["autocomplete", "off", "mask", "999-999-9999", 3, "inputId", "formControlName", "placeholder", "onBlur"], ["autocomplete", "off", "mask", "999 999-9999", 3, "inputId", "formControlName", "placeholder", "onBlur", 4, "ngIf"], ["autocomplete", "off", "mask", "999 999-9999", 3, "inputId", "formControlName", "placeholder", "onBlur"], ["strongRegex", "^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})(?=.*[_@*$!#.])", 3, "inputId", "formControlName", "toggleMask", "maxLength", "weakLabel", "promptLabel", "mediumLabel", "strongLabel", "ariaLabel"], [1, "mt-1", 2, "font-size", "small"], [2, "line-height", "1.25"], [2, "margin-left", "-25px", "font-size", "small"], [3, "allowedFileType", "formControlName", "maxSizeInMB", "multiple", "noOfFilesToUpload"], ["type", "text", "pInputText", "", 3, "id", "formControlName", "disabled", "placeholder", "blur"], ["type", "text", "pInputText", "", 3, "id", "formControlName", "blur"], [2, "padding-left", "8px", "padding-top", "3px"], ["autoResize", "true", 3, "id", "formControlName", "maxLength", "rows", "cols", "placeholder"], ["styleClass", "p-d-block", 4, "ngIf"], ["styleClass", "p-d-block"], ["autoResize", "true", 3, "id", "formControlName", "rows", "cols", "placeholder"], ["appendTo", "body", "field", "text", "minLength", "1", 3, "formControlName", "suggestions", "dropdown", "forceSelection", "completeOnFocus", "completeMethod", "onSelect", 4, "ngIf"], ["optionLabel", "text", "appendTo", "body", 3, "options", "formControlName", "autoDisplayFirst", "inputId", "ariaLabel", "onChange", "onClick"], ["appendTo", "body", "field", "text", "minLength", "1", 3, "formControlName", "suggestions", "dropdown", "forceSelection", "completeOnFocus", "completeMethod", "onSelect"], ["pTemplate", "item"], [1, "container"], ["class", "shared-row", 4, "ngIf"], [1, "shared-row"], ["unselectable", "true", "optionLabel", "text", "optionValue", "value", 3, "options", "formControlName", "onOptionClick"], ["optionLabel", "text", "optionValue", "value", 3, "options", "formControlName", "onOptionClick"], [3, "display", "returningUser", "form", "formChange", "success", 4, "ngIf"], [3, "display", "returningUser", "form", "formChange", "success"], ["mode", "decimal", 3, "formControlName", "inputId", "useGrouping", "min", "max", "size", "maxlength", "ariaLabel", "placeholder"], ["mode", "decimal", 3, "formControlName", "inputId", "useGrouping", "minFractionDigits", "maxFractionDigits", "min", "max", "size", "maxlength", "ariaLabel", "placeholder"], ["mode", "currency", "currency", "USD", 3, "formControlName", "inputId", "useGrouping", "minFractionDigits", "maxFractionDigits", "min", "max", "size", "maxlength", "ariaLabel", "placeholder"], [1, "formgroup-inline", 3, "ngStyle"], ["styleClass", "app-p-checkbox", 3, "name", "value", "label", "formControl", "inputId", 4, "ngFor", "ngForOf"], ["styleClass", "app-p-checkbox", 3, "name", "value", "label", "formControl", "inputId"], ["unselectable", "true", "optionLabel", "text", "optionValue", "value", 3, "options", "formControlName", "multiple"], [1, "field-checkbox"], ["binary", "true", "inputId", "binary", 3, "formControlName"], ["for", "binary"], ["style", "flex-grow: 1;", "style", "padding-left: 8px; padding-top: 3px", 4, "ngIf"], ["type", "hidden", 3, "formControlName"], ["style", "flex-grow: 1;", "style", "padding-left: 2px", 4, "ngIf"], [2, "padding-left", "2px"], [3, "displayText", "overlayText", "displayAsLabel"], [3, "displayText", "formControlName", "overlayText", "labelWithLink"], [3, "displayText", "formControlName", "labelWithPopup", "labelWithLink"], [1, "responsive"], [4, "ngFor", "ngForOf"], ["class", "col-fit-content", 3, "sizeXl", "sizeLg", "sizeMd", "offsetMd", 4, "ngIf"], [1, "col-fit-content", 3, "sizeXl", "sizeLg", "sizeMd", "offsetMd"], [3, "question", "form", "forScreenQuestionnaire"], [3, "sizeXl", "sizeLg", "sizeMd", "offsetMd", 4, "ngIf"], [3, "sizeXl", "sizeLg", "sizeMd", "offsetMd"], ["class", "p-error", 4, "ngIf"], [1, "p-error"]], template: function DynamicFormQuestionComponent_Template(rf, ctx) { if (rf & 1) {
2425
+ i0.ɵɵelementStart(0, "div", 0);
2426
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_p_dialog_1_Template, 6, 14, "p-dialog", 1)(2, DynamicFormQuestionComponent_div_2_Template, 2, 2, "div", 2)(3, DynamicFormQuestionComponent_div_3_Template, 5, 8, "div", 2)(4, DynamicFormQuestionComponent_div_4_Template, 5, 8, "div", 2)(5, DynamicFormQuestionComponent_div_5_Template, 5, 8, "div", 2)(6, DynamicFormQuestionComponent_div_6_Template, 17, 16, "div", 3)(7, DynamicFormQuestionComponent_div_7_Template, 4, 7, "div", 2)(8, DynamicFormQuestionComponent_div_8_Template, 5, 7, "div", 4);
2427
+ i0.ɵɵelementStart(9, "div", 5);
2428
+ i0.ɵɵtemplate(10, DynamicFormQuestionComponent_ng_container_10_Template, 22, 19, "ng-container", 6)(11, DynamicFormQuestionComponent_ng_container_11_Template, 3, 2, "ng-container", 6)(12, DynamicFormQuestionComponent_ng_container_12_Template, 6, 8, "ng-container", 6)(13, DynamicFormQuestionComponent_ng_container_13_Template, 4, 2, "ng-container", 6)(14, DynamicFormQuestionComponent_ng_container_14_Template, 5, 11, "ng-container", 6)(15, DynamicFormQuestionComponent_ng_container_15_Template, 5, 13, "ng-container", 6)(16, DynamicFormQuestionComponent_ng_container_16_Template, 5, 13, "ng-container", 6)(17, DynamicFormQuestionComponent_ng_container_17_Template, 5, 3, "ng-container", 6)(18, DynamicFormQuestionComponent_ng_container_18_Template, 5, 3, "ng-container", 6)(19, DynamicFormQuestionComponent_ng_container_19_Template, 5, 6, "ng-container", 6)(20, DynamicFormQuestionComponent_ng_container_20_Template, 7, 4, "ng-container", 6)(21, DynamicFormQuestionComponent_ng_container_21_Template, 6, 4, "ng-container", 6)(22, DynamicFormQuestionComponent_ng_container_22_Template, 5, 2, "ng-container", 6)(23, DynamicFormQuestionComponent_ng_container_23_Template, 4, 6, "ng-container", 6)(24, DynamicFormQuestionComponent_ng_container_24_Template, 4, 7, "ng-container", 6)(25, DynamicFormQuestionComponent_ng_container_25_Template, 4, 7, "ng-container", 6)(26, DynamicFormQuestionComponent_ng_container_26_Template, 8, 2, "ng-container", 7);
2429
+ i0.ɵɵelementEnd();
2430
+ i0.ɵɵtemplate(27, DynamicFormQuestionComponent_div_27_Template, 2, 2, "div", 8);
2431
+ i0.ɵɵelementEnd();
2432
+ } if (rf & 2) {
2433
+ i0.ɵɵproperty("formGroup", ctx.form)("id", "question-div-" + ctx.question.name);
2434
+ i0.ɵɵadvance(1);
2435
+ i0.ɵɵproperty("ngIf", ctx.displayPosition);
2436
+ i0.ɵɵadvance(1);
2437
+ i0.ɵɵproperty("ngIf", !ctx.forScreenQuestionnaire);
2438
+ i0.ɵɵadvance(1);
2439
+ i0.ɵɵproperty("ngIf", ctx.forScreenQuestionnaire && ctx.question.indent === 1 && ctx.question.type != "html" && ctx.question.type != "hidden" && ctx.question.description && ctx.question.type != "simplecheckbox" && ctx.question.type != "label" && ctx.question.type != "label-with-overlay");
2440
+ i0.ɵɵadvance(1);
2441
+ i0.ɵɵproperty("ngIf", ctx.forScreenQuestionnaire && ctx.question.customTag && (ctx.question.customTag != "component" || ctx.question.customTag == "component" && ctx.showLabelForCustomComponent()) && ctx.question.indent === 1 && ctx.question.type != "html" && ctx.question.type != "hidden" && !ctx.question.description && ctx.question.type != "label" && ctx.question.type != "simplecheckbox");
2442
+ i0.ɵɵadvance(1);
2443
+ i0.ɵɵproperty("ngIf", ctx.forScreenQuestionnaire && !ctx.question.customTag && ctx.question.indent === 1 && ctx.question.type != "html" && ctx.question.type != "hidden" && !ctx.question.description && ctx.question.type != "simplecheckbox" && ctx.question.type != "label" && ctx.question.type != "label-with-overlay");
2444
+ i0.ɵɵadvance(1);
2445
+ i0.ɵɵproperty("ngIf", ctx.question.customTag && ctx.question.customTag === "component" && ctx.question.type != "html" && !ctx.question.description);
2446
+ i0.ɵɵadvance(1);
2447
+ i0.ɵɵproperty("ngIf", ctx.question.indent != 1 && ctx.question.type != "html" && ctx.question.type != "label" && ctx.question.type != "hidden");
2448
+ i0.ɵɵadvance(1);
2449
+ i0.ɵɵproperty("ngIf", ctx.question.type === "html");
2450
+ i0.ɵɵadvance(1);
2451
+ i0.ɵɵproperty("ngSwitch", ctx.question.type);
2452
+ i0.ɵɵadvance(1);
2453
+ i0.ɵɵproperty("ngSwitchCase", "text");
2454
+ i0.ɵɵadvance(1);
2455
+ i0.ɵɵproperty("ngSwitchCase", "comment");
2456
+ i0.ɵɵadvance(1);
2457
+ i0.ɵɵproperty("ngSwitchCase", "dropdown");
2458
+ i0.ɵɵadvance(1);
2459
+ i0.ɵɵproperty("ngSwitchCase", "radiogroup");
2460
+ i0.ɵɵadvance(1);
2461
+ i0.ɵɵproperty("ngSwitchCase", "number");
2462
+ i0.ɵɵadvance(1);
2463
+ i0.ɵɵproperty("ngSwitchCase", "decimal");
2464
+ i0.ɵɵadvance(1);
2465
+ i0.ɵɵproperty("ngSwitchCase", "currency");
2466
+ i0.ɵɵadvance(1);
2467
+ i0.ɵɵproperty("ngSwitchCase", "checkbox");
2468
+ i0.ɵɵadvance(1);
2469
+ i0.ɵɵproperty("ngSwitchCase", "multicheckbox");
2470
+ i0.ɵɵadvance(1);
2471
+ i0.ɵɵproperty("ngSwitchCase", "singleselectcheckbox");
2472
+ i0.ɵɵadvance(1);
2473
+ i0.ɵɵproperty("ngSwitchCase", "simplecheckbox");
2474
+ i0.ɵɵadvance(1);
2475
+ i0.ɵɵproperty("ngSwitchCase", "displaytextaslabel");
2476
+ i0.ɵɵadvance(1);
2477
+ i0.ɵɵproperty("ngSwitchCase", "label");
2478
+ i0.ɵɵadvance(1);
2479
+ i0.ɵɵproperty("ngSwitchCase", "label-with-overlay");
2480
+ i0.ɵɵadvance(1);
2481
+ i0.ɵɵproperty("ngSwitchCase", "label-with-link");
2482
+ i0.ɵɵadvance(1);
2483
+ i0.ɵɵproperty("ngSwitchCase", "label-with-popup");
2484
+ i0.ɵɵadvance(1);
2485
+ i0.ɵɵproperty("ngSwitchCase", "panel");
2486
+ i0.ɵɵadvance(1);
2487
+ i0.ɵɵproperty("ngIf", ctx.question.type != "panel");
2488
+ } }, dependencies: [i6.IonButton, i6.IonCol, i6.IonRow, i11.NgForOf, i11.NgIf, i11.NgStyle, i11.NgSwitch, i11.NgSwitchCase, i12.PrimeTemplate, i13.DefaultValueAccessor, i13.NgControlStatus, i13.NgControlStatusGroup, i13.MaxLengthValidator, i13.FormControlDirective, i13.FormGroupDirective, i13.FormControlName, i14.AutoComplete, i15.Dialog, i16.Password, i17.InputText, i18.InputMask, i19.Divider, i20.Calendar, i21.Checkbox, i22.SelectButton, i23.InputNumber, i24.CaptchaComponent, i25.FileUploaderComponent, DynamicFormQuestionComponent, i26.OverlayInfoComponent, i27.EmployerGridComponent, i28.LegalDisclaimarComponent, i29.MoneyExpectComponent, i30.SearchEmployerComponent, i31.AddressComponent, i32.BankDetailsComponent, i33.Mfa2Component, i34.DependentGridComponent, i35.WeeklyCertEmployerGridComponent, i36.AddParticipantComponent, i37.Dropdown, i38.RequalifyLiftPreviousIssuesComponent, i39.AddPaymentComponent, i40.LinkComponent, i41.SignSsnComponent, i42.JobTitleComponent, i3.TranslatePipe, i43.DynamicTranslatePipe, i44.TrustHtmlPipe], styles: [".form-label[_ngcontent-%COMP%]{display:inline-block;margin-bottom:6px;margin-top:16px}.p-checkbox-label[_ngcontent-%COMP%]{line-height:1.5;text-align:justify;margin-left:1rem}.p-checkbox[_ngcontent-%COMP%]{padding:6px 0;width:-webkit-fill-available}.p-dropdown[_ngcontent-%COMP%]{display:inline-flex;min-width:185px}.p-calendar[_ngcontent-%COMP%] .p-inputtext[_ngcontent-%COMP%]{max-width:134px}[_nghost-%COMP%] .p-dropdown{display:inline-flex;min-width:185px}[_nghost-%COMP%] .p-calendar .p-inputtext{max-width:134px!important}.col-fit-content[_ngcontent-%COMP%]{max-width:-moz-fit-content;max-width:fit-content}.hide-content[_ngcontent-%COMP%]{position:relative;display:inline-block}.hide-content[_ngcontent-%COMP%]:after{content:\"***-**\";position:absolute;left:9px;bottom:6px;background-color:#fff;pointer-events:none}.shared-row[_ngcontent-%COMP%]{display:flex;column-gap:15px}"], data: { animation: [rowExpansionTrigger] } }); }
2489
+ }
2490
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DynamicFormQuestionComponent, [{
2491
+ type: Component,
2492
+ args: [{ selector: 'app-question', changeDetection: ChangeDetectionStrategy.Default, animations: [rowExpansionTrigger], template: "<div [formGroup]=\"form\" [id]=\"'question-div-' + question.name\">\r\n <p-dialog *ngIf=\"displayPosition\" [(visible)]=\"displayPosition\" [position]=\"position\"\r\n [modal]=\"true\" [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\" [style]=\"{width: '45vw'}\"\r\n [baseZIndex]=\"5000\" [draggable]=\"false\" [resizable]=\"false\" appendTo=\"body\" closeOnEscape=\"false\" [attr.aria-label]=\"question.title\">\r\n\r\n <h4 class=\"heading ion-padding-left\">\r\n {{popUpHeader}}\r\n </h4>\r\n <p>{{popUpText}}\r\n </p>\r\n <ng-template pTemplate=\"footer\">\r\n <ion-button shape=\"round\" *ngIf=\"popUpNoActionLabel\" size=\"small\" type=\"submit\" fill=\"outline\" (click)=\"reject()\">\r\n {{popUpNoActionLabel}}\r\n </ion-button>\r\n\r\n <ion-button shape=\"round\" *ngIf=\"popUpYesActionLabel\" size=\"small\" type=\"submit\" fill=\"solid\" (click)=\"accept()\">\r\n {{popUpYesActionLabel}}\r\n </ion-button>\r\n\r\n </ng-template>\r\n </p-dialog>\r\n <div [ngStyle]=\"setStyle(question.indent)\" *ngIf=\"!forScreenQuestionnaire\" class=\"form-label\">\r\n <label [attr.for]=\"question.name\" *ngIf=\"question.indent===1 && question.type!='html' && question.type!='hidden' && question.type!='label'\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </label>\r\n </div>\r\n\r\n <div [ngStyle]=\"setStyle(question.indent)\" class=\"form-label\"\r\n *ngIf=\"forScreenQuestionnaire && question.indent===1 && question.type!='html' && question.type!='hidden' && question.description && question.type!='simplecheckbox' && question.type!='label' && question.type!='label-with-overlay'\">\r\n <label [attr.for]=\"question.name\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </label>\r\n </div>\r\n\r\n <div [ngStyle]=\"setStyle(question.indent)\" class=\"form-label\"\r\n *ngIf=\"forScreenQuestionnaire && question.customTag && (question.customTag!='component' || (question.customTag=='component' && showLabelForCustomComponent())) && question.indent===1 && question.type!='html' && question.type!='hidden' && !question.description && question.type!='label' && question.type!='simplecheckbox'\">\r\n <label [attr.for]=\"question.name\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </label>\r\n </div>\r\n\r\n <div [ngStyle]=\"setStyle(question.indent)\" class=\"form-label\"\r\n *ngIf=\"forScreenQuestionnaire && !question.customTag && question.indent===1 && question.type!='html' && question.type!='hidden' && !question.description && question.type!='simplecheckbox' && question.type!='label' && question.type!='label-with-overlay'\">\r\n <label [attr.for]=\"question.name\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </label>\r\n </div>\r\n\r\n\r\n\r\n <div *ngIf=\"question.customTag && question.customTag==='component' && question.type!='html' && !question.description\">\r\n <app-employer-grid [formControlName]=\"question.name\" [form]=\"form\" [dynamicParam]=\"dynamicParam\"\r\n *ngIf=\"question.componentName==='app-employer-grid'\" (modelDisplay)=\"onModelDisplay($event)\"></app-employer-grid>\r\n <app-legal-disclaimar *ngIf=\"question.componentName==='app-legal-disclaimar'\"\r\n [componentData]=\"question.componentData\" (accepted)=\"onAccepted($event)\" [question]=\"question\" [form]=\"form\">\r\n </app-legal-disclaimar>\r\n <money-expect *ngIf=\"question.componentName==='money-expect'\"></money-expect>\r\n <app-captcha [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-captcha'\"></app-captcha>\r\n\r\n <app-file-uploader [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-file-uploader'\">\r\n </app-file-uploader>\r\n <app-address [formControlName]=\"question.name\" [fromPopup]=\"false\" [countyRequired]=\"question.countyRequired\"\r\n *ngIf=\"question.componentName==='app-address'\" #address [inputId]=\"question.name\"> </app-address>\r\n <app-bank-details [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-bank-details'\" #bankdtls>\r\n </app-bank-details>\r\n <app-requalify-lift-previous-issues *ngIf=\"question.componentName==='app-requalify-lift-previous-issues'\"\r\n [formControlName]=\"question.name\" [componentData]=\"question.componentData\" [form]=\"form\" >\r\n </app-requalify-lift-previous-issues> \r\n <app-dependent-grid [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-dependent-grid'\"></app-dependent-grid>\r\n <app-weekly-cert-employer-grid #wcEmployerGrid [dynamicParam]=\"dynamicParam\" [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-weekly-cert-employer-grid'\"></app-weekly-cert-employer-grid>\r\n <app-search-employer [formControlName]=\"question.name\" empType=\"REG\" (onFound)=\"setEmployer($event)\" \r\n (onEmpty)=\"resetEmployer()\" *ngIf=\"question.componentName==='app-search-employer'\"></app-search-employer>\r\n <app-add-participant [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-add-participant'\"> </app-add-participant>\r\n <app-add-payment [potentialIssueId]=\"potentialIssueId\" [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-add-payment'\"></app-add-payment>\r\n <app-link [isRequired]=\"question.isRequired\" [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-link'\" [text]=\"linkComponentData?.text\" [uri]=\"linkComponentData?.uri\" [externalUrl]=\"linkComponentData?.externalUrl\"></app-link>\r\n <app-sign-ssn [isRequired]=\"question.isRequired\" [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-sign-ssn'\" [inputId]=\"question.name\"></app-sign-ssn>\r\n <app-job-title [control]=\"form.controls[question.name]\" *ngIf=\"question.componentName==='app-job-title'\" #jobTitle> </app-job-title>\r\n </div>\r\n\r\n <div *ngIf=\"question.indent!=1 && question.type!='html' && question.type!='label' && question.type!='hidden'\" class=\"form-label\" [ngStyle]=\"setStyle(question.indent)\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </div>\r\n\r\n <div *ngIf=\"question.type==='html'\" style=\"display: flex;\">\r\n <div [innerHTML]=\"question.html | dynamicTranslate:dynamicParam | trustHtml\"\r\n style=\"color:var(--ion-color-medium-gray); padding-top: 20px;\" class=\"heading\">\r\n </div>\r\n <div *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:13px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n \r\n <div [ngSwitch]=\"question.type\">\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div *ngIf=\"question.inputType && question.inputType==='date' && question.name && question.name!='dob'\">\r\n <div [ngStyle]=\"setStyle(question.indent)\" #pCalendar>\r\n <p-calendar [formControlName]=\"question.name\" [inputId]=\"question.name\" [monthNavigator]=\"true\"\r\n [yearNavigator]=\"true\" yearRange=\"1901:2099\" [showIcon]=\"true\" [minDate]=\"showMinDate ? minDate : null\"\r\n [maxDate]=\"showMaxDate ? maxDate : null\" dateFormat=\"mm/dd/yy\" appendTo=\"body\" dataType=\"string\"\r\n (onBlur)=\"validate(question)\" (onSelect)=\"validate(question)\" placeholder=\"mm/dd/yyyy\" [showOnFocus]=\"false\" \r\n (onInput)=\"dateInput($event)\" [iconAriaLabel]=\"question.title\">\r\n </p-calendar>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"question.inputType && question.inputType==='date' && question.name && question.name==='dob'\">\r\n <div [ngStyle]=\"setStyle(question.indent)\" #pCalendar>\r\n <p-calendar [formControlName]=\"question.name\" [inputId]=\"question.name\" [monthNavigator]=\"true\"\r\n [yearNavigator]=\"true\" yearRange=\"1901:2050\" [showIcon]=\"true\" [minDate]=\"minDateDOB\"\r\n [maxDate]=\"maxDateDOB\" dateFormat=\"mm/dd/yy\" appendTo=\"body\" dataType=\"string\"\r\n (onBlur)=\"blurDOB(question)\" (onSelect)=\"validate(question)\" placeholder=\"mm/dd/yyyy\" [showOnFocus]=\"false\" \r\n (onInput)=\"dateInput($event)\" [iconAriaLabel]=\"question.title\">\r\n </p-calendar>\r\n </div>\r\n </div>\r\n \r\n\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text' && question.customTag && question.customTag==='ssn'\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputMask autocomplete=\"off\" [class.hide-content]=\"maskClass\" mask=\"999-99-9999\" [inputId]=\"question.name\" [formControlName]=\"question.name\"\r\n placeholder=\"999-99-9999\" (onComplete)=\"validate(question)\" (onFocus)=\"unmask($event)\" (onBlur)=\"mask($event)\" [attr.aria-label]=\"question.title\">\r\n </p-inputMask>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text' && question.customTag && question.customTag==='ean'\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputMask autocomplete=\"off\" mask=\"99-99999-9-99\" [inputId]=\"question.name\" [formControlName]=\"question.name\"\r\n placeholder=\"99-99999-9-99\" [value]=\"81-00586-0-01\" (onComplete)=\"validate(question)\">\r\n </p-inputMask>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text' && question.customTag && question.customTag==='dueamt'\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputNumber [inputId]=\"question.name\" [formControlName]=\"question.name\" mode=\"decimal\" locale=\"en-US\"\r\n [minFractionDigits]=\"2\" [ariaLabel]=\"question.title\"></p-inputNumber>\r\n </div>\r\n\r\n\r\n\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text' && (!question.customTag || question.customTag==='Optional') && !question.isRequired\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" *ngIf=\"question.size && question.maxLength\"\r\n [maxLength]=\"question.maxLength\" placeholder='{{\"common.optional\" | translate}}' [id]=\"question.name\" pInputText\r\n [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"/>\r\n <input type=\"text\" *ngIf=\"question.size && !question.maxLength\" placeholder='{{\"common.optional\" | translate}}'\r\n [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"/>\r\n <input type=\"text\" *ngIf=\"!question.size && question.maxLength\" [maxLength]=\"question.maxLength\"\r\n placeholder='{{\"common.optional\" | translate}}' [id]=\"question.name\" pInputText [formControlName]=\"question.name\" />\r\n <input type=\"text\" *ngIf=\"!question.size && !question.maxLength\" [id]=\"question.name\" pInputText\r\n [formControlName]=\"question.name\" placeholder='{{\"common.optional\" | translate}}' [attr.aria-label]=\"question.title\"/>\r\n </div>\r\n\r\n <!--User Name-->\r\n <div *ngIf=\"question.inputType && question.inputType==='text' && !question.customTag && question.isRequired && !checkFlowKey()\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" *ngIf=\"question.size && question.maxLength\" \r\n [maxLength]=\"question.maxLength\" [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" \r\n [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n <input type=\"text\" *ngIf=\"question.size && !question.maxLength\" [id]=\"question.name\"\r\n pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n <input type=\"text\" *ngIf=\"!question.size && question.maxLength\" [maxLength]=\"question.maxLength\"\r\n [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n <input type=\"text\" *ngIf=\"!question.size && !question.maxLength\" [id]=\"question.name\" pInputText\r\n [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n </div>\r\n \r\n\r\n <div *ngIf=\"question.inputType && question.inputType==='text' && !question.customTag && question.isRequired && checkFlowKey()\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" *ngIf=\"question.size && question.maxLength\" \r\n [maxLength]=\"question.maxLength\" [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [disabled]=\"!phoneVerified\" [autocomplete]=\"question?.name.includes('secAns')?'off': 'on'\"/>\r\n <input type=\"text\" *ngIf=\"question.size && !question.maxLength\" [id]=\"question.name\"\r\n pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [disabled]=\"!phoneVerified\"/>\r\n <input type=\"text\" *ngIf=\"!question.size && question.maxLength\" [maxLength]=\"question.maxLength\"\r\n [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [disabled]=\"!phoneVerified\"/>\r\n <input type=\"text\" *ngIf=\"!question.size && !question.maxLength\" [id]=\"question.name\" pInputText\r\n [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [disabled]=\"!phoneVerified\"/>\r\n </div>\r\n\r\n <div \r\n *ngIf=\"question.inputType && question.inputType==='text'\r\n && question.customTag && question.customTag.includes('firstName') && checkFlowKey() \">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [maxLength]=\"question.maxLength\" [id]=\"question.name\" [attr.aria-label]=\"question.title\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"/>\r\n </div>\r\n </div>\r\n <div \r\n *ngIf=\"question.inputType && question.inputType==='text'\r\n && question.customTag && question.customTag.includes('lastName') && checkFlowKey() \">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [maxLength]=\"question.maxLength\" [id]=\"question.name\" [attr.aria-label]=\"question.title\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"/>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!question.inputType && question.customTag && !question.customTag.includes('phone')\"\r\n [ngStyle]=\"{'padding-left.px': question.indent*10}\" [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"question.customTag && question.customTag.includes('phone') && !checkFlowKey()\">\r\n <p-inputMask autocomplete=\"off\" mask=\"999-999-9999\" [inputId]=\"question.name\" [formControlName]=\"question.name\" \r\n [placeholder]=\"question.isRequired ? '999-999-9999' : ('common.optional' | translate)\"\r\n *ngIf=\"question.inputType && question.inputType==='text'\" (onBlur)=\"checkForValueChange($event)\" [attr.aria-label]=\"question.title\">\r\n </p-inputMask>\r\n </div>\r\n <div *ngIf=\"question.customTag && question.customTag.includes('phone') && checkFlowKey()\">\r\n <p-inputMask autocomplete=\"off\" mask=\"999 999-9999\" [inputId]=\"question.name\" [formControlName]=\"question.name\" \r\n [placeholder]=\"question.isRequired ? '999 999-9999' : ('common.optional' | translate)\"\r\n *ngIf=\"question.inputType && question.inputType==='text'\" (onBlur)=\"checkForValueChange($event)\" [attr.aria-label]=\"question.title\">\r\n </p-inputMask>\r\n </div>\r\n\r\n \r\n <div *ngIf=\"question.customTag && question.customTag.includes('password')\">\r\n <p-password [inputId]=\"question.name\" [formControlName]=\"question.name\" [toggleMask]=\"true\" [maxLength]=\"question.maxLength\" weakLabel='{{\"common.password.weak\" | translate}}'\r\n promptLabel= '{{\"common.enter.password\" | translate}}' mediumLabel='{{\"common.password.weak\" | translate}}' strongLabel='{{\"common.password.strong\" | translate}}' strongRegex=\"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})(?=.*[_@*$!#.])\" [ariaLabel]=\"question.title\">\r\n \r\n <ng-template pTemplate=\"footer\">\r\n <p-divider></p-divider>\r\n <p class=\"mt-1\" style=\"font-size: small;\">{{\"common.password.must.include\" | translate}}</p>\r\n <ul style=\"line-height: 1.25\">\r\n <li style=\"margin-left: -25px; font-size: small;\">{{\"common.password.one.uppercase\" | translate}}</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">{{\"common.password.one.lowercase\" | translate}}</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">{{\"common.password.one.number\" | translate}}</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">{{\"common.password.two.mentioned.char\" | translate}} <b>_ &#64; * $ ! # .</b></li>\r\n <li style=\"margin-left: -25px; font-size: small;\">{{\"common.password.forteen.chars\" | translate}}</li>\r\n </ul>\r\n <p-divider></p-divider>\r\n <p class=\"mt-1\" style=\"font-size: small;\">{{\"common.password.suggestion.header\" | translate}}</p>\r\n <ul style=\"line-height: 1.25\">\r\n <li style=\"margin-left: -25px; font-size: small;\">{{\"common.password.suggestion.name.email.phone\" | translate}}</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">{{\"common.password.suggestion.kid.partner.pet\" | translate}}</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">{{\"common.password.suggestion.name.or.userid\" | translate}}</li>\r\n </ul>\r\n </ng-template>\r\n </p-password>\r\n </div>\r\n\r\n <div *ngIf=\"question.customTag && question.customTag.includes('fileupload')\">\r\n <app-file-uploader [allowedFileType]=\"question.allowedFileType\" [formControlName]=\"question.name\"\r\n [maxSizeInMB]=\"question.sizeInMB\" [multiple]=\"question.multiple\" [noOfFilesToUpload]=\"question.noOFFiles\" [attr.aria-label]=\"question.title\">\r\n </app-file-uploader>\r\n </div>\r\n\r\n <!--Email Address-->\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text'\r\n && question.customTag && (question.customTag!='ssn' && question.customTag!='Optional' && question.customTag!='fileupload' \r\n && question.customTag!='phone' && question.customTag!='firstName' && question.customTag!='lastName' && question.customTag!='ean' && question.customTag!='dueamt' && question.customTag!='password') && checkFlowKey()\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [id]=\"question.name\" [attr.aria-label]=\"question.title\" pInputText [formControlName]=\"question.name\" [disabled]=\"true\"\r\n (blur)=\"checkForValueChange($event)\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n </div>\r\n </div>\r\n <div>\r\n <div \r\n *ngIf=\"question.inputType && question.inputType==='text'\r\n && question.customTag && (question.customTag!='ssn' && question.customTag!='Optional' && question.customTag!='fileupload' \r\n && question.customTag!='phone' && question.customTag!='ean' && question.customTag!='dueamt' && question.customTag!='password') && !checkFlowKey()\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [id]=\"question.name\" [attr.aria-label]=\"question.title\" pInputText [formControlName]=\"question.name\" (blur)=\"checkForValueChange($event)\" [attr.aria-label]=\"question.title\"/>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!question.inputType && !question.customTag\" [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [id]=\"question.name\" *ngIf=\"question.size\" pInputText\r\n [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n <input type=\"text\" [id]=\"question.name\" *ngIf=\"!question.size\" pInputText [formControlName]=\"question.name\" \r\n [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n </div>\r\n <!-- </ion-col>\r\n <ion-col size=\"1\" *ngIf=\"question.description\" style=\"padding-top: 12px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </ion-col>\r\n </ion-row> -->\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'comment'\">\r\n <div [ngStyle]=\"setStyle(question.indent)\" *ngIf=\"question.maxLength\">\r\n <textarea [id]=\"question.name\" autoResize=\"true\" [formControlName]=\"question.name\"\r\n [maxLength]=\"question.maxLength\" [rows]=\"3\" [cols]=\"35\" [attr.aria-label]=\"question.title\"\r\n [placeholder]=\"question.placeholder ? question.placeholder : ''\"></textarea>\r\n <div>\r\n\r\n <small styleClass=\"p-d-block\" *ngIf=\"question.description\">{{question.description}}</small>\r\n </div>\r\n </div>\r\n\r\n <div [ngStyle]=\"setStyle(question.indent)\" *ngIf=\"!question.maxLength\">\r\n <textarea [id]=\"question.name\" autoResize=\"true\" [formControlName]=\"question.name\" [rows]=\"3\"\r\n [cols]=\"35\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"></textarea>\r\n <div>\r\n\r\n <small styleClass=\"p-d-block\" *ngIf=\"question.description\">{{question.description}}</small>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <ng-container *ngSwitchCase=\"'dropdown'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-autoComplete *ngIf=\"false\" [formControlName]=\"question.name\" [suggestions]=\"filterResult\" appendTo=\"body\"\r\n (completeMethod)=\"filterValue($event,question)\" field=\"text\" [dropdown]=\"true\" minLength=\"1\"\r\n [forceSelection]=\"true\" (onSelect)=\"onSelect($event,question.name)\" [completeOnFocus]=\"true\">\r\n <ng-template let-value pTemplate=\"item\">\r\n <div>\r\n <div>{{value.text}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n <app-dropdown [options]=\"filterResult\" [formControlName]=\"question.name\" optionLabel=\"text\" appendTo=\"body\"\r\n (onChange)=\"onSelect($event,question.name)\" [autoDisplayFirst]=\"false\" (onClick)=\"filterValue($event,question)\" [inputId]=\"question.name\"\r\n [ariaLabel]=\"question.title\"></app-dropdown>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'radiogroup'\">\r\n\r\n <div class=\"container\"> \r\n <div class=\"shared-row\" *ngIf=\"question.name && question.name!='verification'\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-selectButton unselectable=\"true\" [options]=\"question.choices\" [formControlName]=\"question.name\" optionLabel=\"text\"\r\n optionValue=\"value\" (onOptionClick)=\"onRadioOptionClick($event,question)\"></p-selectButton>\r\n </div>\r\n <div *ngIf=\"question.description\" >\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n \r\n <div *ngIf=\"question.name && question.name==='verification'\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-selectButton [options]=\"question.choices\" [formControlName]=\"question.name\" optionLabel=\"text\"\r\n optionValue=\"value\" (onOptionClick)=\"generateOtpForNewUserCreation($event,form)\"></p-selectButton>\r\n </div>\r\n <app-mfa2 *ngIf=\"isOtpModalEnabled\" [display]=\"isOtpModalEnabled\" [returningUser]=\"isReturningUser\" [(form)]=\"form\" (success)=\"enableFields()\"></app-mfa2>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputNumber formControlName=\"{{question.name}}\" mode=\"decimal\" [inputId]=\"question.name\" [useGrouping]=\"false\"\r\n [min]=\"minValue\" [max]=\"maxValue\"\r\n [size]=\"question.size ? question.size : null\" [maxlength]=\"question.maxLength ? question.maxLength : null\" [ariaLabel]=\"question.title\"\r\n [placeholder]=\"question.placeholder ? question.placeholder : ''\"></p-inputNumber>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'decimal'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputNumber formControlName=\"{{question.name}}\" mode=\"decimal\" [inputId]=\"question.name\" [useGrouping]=\"false\" \r\n [minFractionDigits]=\"2\" [maxFractionDigits]=\"2\" [min]=\"minValue\" \r\n [max]=\"maxValue\" [size]=\"question.size ? question.size : null\" [maxlength]=\"question.maxLength ? question.maxLength : null\" [ariaLabel]=\"question.title\"\r\n [placeholder]=\"question.placeholder ? question.placeholder : ''\"></p-inputNumber>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'currency'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputNumber formControlName=\"{{question.name}}\" mode=\"currency\" [inputId]=\"question.name\" [useGrouping]=\"false\" \r\n [minFractionDigits]=\"2\" [maxFractionDigits]=\"2\" currency=\"USD\" [min]=\"minValue\" \r\n [max]=\"maxValue\" [size]=\"question.size ? question.size : null\" [maxlength]=\"question.maxLength ? question.maxLength : null\" \r\n [ariaLabel]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"></p-inputNumber>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\" class=\"formgroup-inline\">\r\n <p-checkbox [name]=\"question.name + '-group'\" [value]=\"choice.value\" \r\n [label]=\"choice.text\" *ngFor=\"let choice of question.choices\" [formControl]=\"form.controls[question.name]\"\r\n styleClass=\"app-p-checkbox\" [inputId]=\"question.name + '-' + choice.value\" [attr.aria-label]=\"question.title\"></p-checkbox>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'multicheckbox'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-checkbox [name]=\"question.name + '-group'\" [value]=\"choice.value\" \r\n [label]=\"choice.text\" *ngFor=\"let choice of question.choices\" [formControl]=\"form.controls[question.name]\"\r\n styleClass=\"app-p-checkbox\" [inputId]=\"question.name + '-' + choice.value\" [attr.aria-label]=\"question.title\"></p-checkbox>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'singleselectcheckbox'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-selectButton unselectable=\"true\" [options]=\"question.choices\" [formControlName]=\"question.name\" [multiple]=false\r\n optionLabel=\"text\" optionValue=\"value\" [attr.aria-label]=\"question.title\"></p-selectButton>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'simplecheckbox'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div class=\"field-checkbox\">\r\n <p-checkbox binary=\"true\" inputId=\"binary\" [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"></p-checkbox>\r\n <label for=\"binary\">{{question.title}}</label>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top: 3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'displaytextaslabel'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <label>{{getText(form.controls[question.name].value)}}</label>\r\n <input type=\"hidden\" [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"/>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 2px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'label'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <label>{{question.title}}</label>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 2px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'label-with-overlay'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <app-overlay-info [displayText]=\"question.title\" [overlayText]=\"question.description | dynamicTranslate:dynamicParam\" [displayAsLabel]=\"true\"></app-overlay-info>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'label-with-link'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <app-overlay-info [displayText]=\"question.title\" [formControlName]=\"question.name\" [overlayText]=\"question.description | dynamicTranslate:dynamicParam\" [labelWithLink]=\"true\"></app-overlay-info>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'label-with-popup'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <app-overlay-info [displayText]=\"question.title\" [formControlName]=\"question.name\" [labelWithPopup]=\"question.description | dynamicTranslate:dynamicParam\" [labelWithLink]=\"true\"></app-overlay-info>\r\n </div>\r\n </ng-container>\r\n \r\n <ng-container class=\"responsive\" *ngSwitchCase=\"'panel'\">\r\n <ion-row>\r\n <ion-col>\r\n <ion-row>\r\n <ng-container *ngFor=\"let element of question.elements\">\r\n <ion-col *ngIf=\"element.colElement==='COL1' && visibleIf(element.visibleIf,element.name)\"\r\n [sizeXl]=\"element.sizeXL\" [sizeLg]=\"element.sizeLG\" [sizeMd]=\"element.sizeMD\"\r\n [offsetMd]=\"element.offSetMD\" class=\"col-fit-content\">\r\n <app-question [question]=\"element\" [form]=\"form\" [forScreenQuestionnaire]=\"forScreenQuestionnaire\">\r\n </app-question>\r\n </ion-col>\r\n </ng-container>\r\n </ion-row>\r\n </ion-col>\r\n <ion-col>\r\n <ion-row>\r\n <ng-container *ngFor=\"let element of question.elements\">\r\n <ion-col *ngIf=\"element.colElement==='COL2' && visibleIf(element.visibleIf,element.name)\"\r\n [sizeXl]=\"element.sizeXL\" [sizeLg]=\"element.sizeLG\" [sizeMd]=\"element.sizeMD\"\r\n [offsetMd]=\"element.offSetMD\">\r\n <app-question [question]=\"element\" [form]=\"form\" [forScreenQuestionnaire]=\"forScreenQuestionnaire\">\r\n </app-question>\r\n </ion-col>\r\n </ng-container>\r\n </ion-row>\r\n </ion-col>\r\n </ion-row>\r\n </ng-container>\r\n </div>\r\n <div [ngStyle]=\"setStyle(question.indent)\" *ngIf=\"question.type!='panel'\">\r\n <small class=\"p-error\" *ngIf=\"isValid!=''\" [@rowExpansionTrigger]=\"'active'\">{{isValid | dynamicTranslate:dynamicParam}}</small>\r\n </div>\r\n</div>", styles: [".form-label{display:inline-block;margin-bottom:6px;margin-top:16px}.p-checkbox-label{line-height:1.5;text-align:justify;margin-left:1rem}.p-checkbox{padding:6px 0;width:-webkit-fill-available}.p-dropdown{display:inline-flex;min-width:185px}.p-calendar .p-inputtext{max-width:134px}:host ::ng-deep .p-dropdown{display:inline-flex;min-width:185px}:host ::ng-deep .p-calendar .p-inputtext{max-width:134px!important}.col-fit-content{max-width:-moz-fit-content;max-width:fit-content}.hide-content{position:relative;display:inline-block}.hide-content:after{content:\"***-**\";position:absolute;left:9px;bottom:6px;background-color:#fff;pointer-events:none}.shared-row{display:flex;column-gap:15px}\n"] }]
2493
+ }], () => [{ type: i1.QuestionControlService }, { type: i2.QuestionService }, { type: i3.TranslateService }, { type: i4.ValidationService }, { type: i5.UtilService }, { type: i6.NavController }, { type: i7.LoggerService }, { type: i8.ClaimantService }, { type: i9.WeeklyCertServiceV2 }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i10.LoginService }], { question: [{
2494
+ type: Input
2495
+ }], form: [{
2496
+ type: Input
2497
+ }], indexNumber: [{
2498
+ type: Input
2499
+ }], forScreenQuestionnaire: [{
2500
+ type: Input
2501
+ }], dynamicParam: [{
2502
+ type: Input
2503
+ }], potentialIssueId: [{
2504
+ type: Input
2505
+ }], onDynamicParamUpdate: [{
2506
+ type: Output
2507
+ }], bankdtls: [{
2508
+ type: ViewChild,
2509
+ args: ['bankdtls']
2510
+ }], addresses: [{
2511
+ type: ViewChildren,
2512
+ args: ['address']
2513
+ }], wcEmployerGrid: [{
2514
+ type: ViewChild,
2515
+ args: ['wcEmployerGrid']
2516
+ }], pCalendar: [{
2517
+ type: ViewChild,
2518
+ args: ['pCalendar']
2519
+ }] }); })();
2520
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DynamicFormQuestionComponent, { className: "DynamicFormQuestionComponent", filePath: "lib\\components\\questionnaire\\dynamic-form-question.component.ts", lineNumber: 60 }); })();
2521
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXF1ZXN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbm5haXJlL2R5bmFtaWMtZm9ybS1xdWVzdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb25uYWlyZS9keW5hbWljLWZvcm0tcXVlc3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUF3QixTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUWxMLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQVU3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUl2RSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ1pyRSxzQ0FBa0g7SUFBbkIsZ05BQVMsZUFBQSxnQkFBUSxDQUFBLElBQUM7SUFDL0csWUFDRjtJQUFBLGlCQUFhOzs7SUFEWCxlQUNGO0lBREUsMkRBQ0Y7Ozs7SUFFQSxzQ0FBaUg7SUFBbkIsZ05BQVMsZUFBQSxnQkFBUSxDQUFBLElBQUM7SUFDOUcsWUFDRjtJQUFBLGlCQUFhOzs7SUFEWCxlQUNGO0lBREUsNERBQ0Y7OztJQU5BLHFIQUVhLHdHQUFBOzs7SUFGYyxpREFBd0I7SUFJeEIsZUFBeUI7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TSxjQUFjO2tCQUExQyxTQUFTO21CQUFDLGdCQUFnQjtZQUNILFNBQVM7a0JBQWhDLFNBQVM7bUJBQUMsV0FBVzs7a0ZBbkRYLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFJlbmRlcmVyMiwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEVsZW1lbnRzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9FbGVtZW50c01vZGVsJztcclxuaW1wb3J0IHsgS2V5VmFsdWVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0tleVZhbHVlTW9kZWwnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlQWN0aW9uUmVzcG9uc2VNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL1NlcnZpY2VBY3Rpb25SZXNwb25zZU1vZGVsJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvVmFsaWRhdGlvbk1vZGVsJztcclxuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcXVlc3Rpb25uYWlyZS92YWxpZGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2hvaWNlcywgUXVlc3Rpb25Db250cm9sU2VydmljZSB9IGZyb20gJy4vcXVlc3Rpb24tY29udHJvbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUXVlc3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9xdWVzdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9hZGVyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9Mb2FkZXJNb2RlbCc7XHJcbmltcG9ydCB7IEFkZHJlc3NDb21wb25lbnQgfSBmcm9tICcuLi9hZGRyZXNzL2FkZHJlc3MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmFua0RldGFpbHNDb21wb25lbnQgfSBmcm9tICcuLi9iYW5rLWRldGFpbHMvYmFuay1kZXRhaWxzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVtcGxveWVyRGV0YWlsU2VhcmNoUmVzdWx0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQnO1xyXG5pbXBvcnQgeyByb3dFeHBhbnNpb25UcmlnZ2VyIH0gZnJvbSAnLi4vLi4vYW5uaW1hdGlvbnMvYXBwLWFuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBXZWVrbHlDZXJ0RW1wbG95ZXJHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi4vd2Vla2x5LWNlcnQtZW1wbG95ZXItZ3JpZC93ZWVrbHktY2VydC1lbXBsb3llci1ncmlkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENsYWltYW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NsYWltYW50LXNlcnZpY2UvY2xhaW1hbnQuc2VydmljZSc7XHJcbmltcG9ydCB7V2Vla2x5Q2VydFNlcnZpY2VWMn0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2Vla2x5LWNlcnQvd2Vla2x5LWNlcnQtdjIuc2VydmljZSc7XHJcbmltcG9ydCB7UGFydGlhbEVtcGxveW1lbnRNb2RlbH0gZnJvbSAnLi4vLi4vbW9kZWxzL1BhcnRpYWxFbXBsb3ltZW50TW9kZWwnO1xyXG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcclxuXHJcbmludGVyZmFjZSBWYWx1ZUNoYW5nZUNvbXBvbmVudE1vZGVsIHtcclxuICBvcmlnaW5hbFZhbHVlQ29udHJvbDogc3RyaW5nO1xyXG4gIGZvcm1Db250cm9sVG9VcGRhdGU6IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIEVtcGxveWVyQWRkcmVzc1VwZGF0ZU1vZGVsIHtcclxuICBhZGRyZXNzRm9ybUNvbnRyb2xOYW1lOiBzdHJpbmc7XHJcbiAgZW1wbG95ZXJJZEZvcm1Db250cm9sTmFtZTogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgTWluTWF4RGF0ZU1vZGVsIHtcclxuICBtaW5EYXRlS2V5OiBzdHJpbmc7XHJcbiAgbWF4RGF0ZUtleTogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgTWluTWF4VmFsdWVNb2RlbCB7XHJcbiAgbWluVmFsdWU6IHN0cmluZztcclxuICBtYXhWYWx1ZTogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgTGlua0NvbXBvbmVudE1vZGVsIHtcclxuICB1cmk6IHN0cmluZztcclxuICBleHRlcm5hbFVybDogc3RyaW5nO1xyXG4gIHRleHQ6IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcXVlc3Rpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWZvcm0tcXVlc3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtZm9ybS1xdWVzdGlvbi5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcclxuICBhbmltYXRpb25zOiBbcm93RXhwYW5zaW9uVHJpZ2dlcl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybVF1ZXN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBxdWVzdGlvbjogRWxlbWVudHNNb2RlbDtcclxuICBASW5wdXQoKSBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIGluZGV4TnVtYmVyOiBudW1iZXI7XHJcbiAgQElucHV0KCkgZm9yU2NyZWVuUXVlc3Rpb25uYWlyZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkeW5hbWljUGFyYW06IGFueTtcclxuICBASW5wdXQoKSBwb3RlbnRpYWxJc3N1ZUlkOiBudW1iZXI7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkR5bmFtaWNQYXJhbVVwZGF0ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGZpbHRlclJlc3VsdDogYW55W107XHJcbiAgbWluRGF0ZTogRGF0ZTtcclxuICBsZWdhbEFjY2VwdGVkOiBib29sZWFuID0gbnVsbDtcclxuICBtYXhEYXRlOiBEYXRlO1xyXG4gIGluZGV4OiBudW1iZXIgPSAxO1xyXG4gIHJldHVybk1vZGVsID0gbmV3IFZhbGlkYXRpb25Nb2RlbCgpO1xyXG4gIGRpc3BsYXlQb3NpdGlvbjogYm9vbGVhbjtcclxuICBwb3NpdGlvbjogc3RyaW5nO1xyXG4gIHBvcFVwSGVhZGVyOiBzdHJpbmc7XHJcbiAgcG9wVXBUZXh0OiBzdHJpbmc7XHJcbiAgcG9wVXBZZXNBY3Rpb25MYWJlbDogc3RyaW5nO1xyXG4gIHBvcFVwTm9BY3Rpb25MYWJlbDogc3RyaW5nO1xyXG4gIG1hc2tDbGFzcyA9IHRydWU7XHJcbiAgc2hvd01pbkRhdGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93TWF4RGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG1pblZhbHVlID0gbnVsbDtcclxuICBtYXhWYWx1ZSA9IG51bGw7XHJcbiAgdG9EYXlEYXRlID0gbmV3IERhdGUoKTtcclxuICBjdXJyZW50Zmxvd2tleTogc3RyaW5nO1xyXG4gIHJlZ2lzdGVyQ2xhaW1hbnRGbGFnOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcGhvbmVWZXJpZmllZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgaXNGaWVsZERpc2FibGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICBwYXJ0RW1wTW9kZWwgPSBuZXcgUGFydGlhbEVtcGxveW1lbnRNb2RlbCgpO1xyXG4gIGlzT3RwTW9kYWxFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGlzUmV0dXJuaW5nVXNlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHdjRW1wbG95ZXJWYWxpZGF0aW9uTXNnOiBzdHJpbmcgPSAnVGhlIGxhc3QgZGF5IHdvcmtlZCByZXBvcnRlZCBvbiB5b3VyIGNsYWltIGZhbGxzIHdpdGhpbiB0aGlzIHdlZWssIHlvdSBtdXN0IHNlbGVjdCBcInllc1wiIGZvciBcIkRpZCB5b3UgcGVyZm9ybSBhbnkgd29yayBkdXJpbmcgdGhlIHdlZWs/XCInO1xyXG5cclxuICBtaW5EYXRlRE9COiBEYXRlID0gbmV3IERhdGUoXHJcbiAgICB0aGlzLnRvRGF5RGF0ZS5nZXRGdWxsWWVhcigpIC0gMTAwLFxyXG4gICAgdGhpcy50b0RheURhdGUuZ2V0TW9udGgoKSxcclxuICAgIHRoaXMudG9EYXlEYXRlLmdldERhdGUoKVxyXG4gICk7XHJcbiAgbWF4RGF0ZURPQjogRGF0ZSA9IG5ldyBEYXRlKFxyXG4gICAgdGhpcy50b0RheURhdGUuZ2V0RnVsbFllYXIoKSAtIDEwLFxyXG4gICAgdGhpcy50b0RheURhdGUuZ2V0TW9udGgoKSxcclxuICAgIHRoaXMudG9EYXlEYXRlLmdldERhdGUoKVxyXG4gICk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2JhbmtkdGxzJykgYmFua2R0bHM6IEJhbmtEZXRhaWxzQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGRyZW4oJ2FkZHJlc3MnKSBhZGRyZXNzZXM6IFF1ZXJ5TGlzdDxBZGRyZXNzQ29tcG9uZW50PjtcclxuICBAVmlld0NoaWxkKCd3Y0VtcGxveWVyR3JpZCcpIHdjRW1wbG95ZXJHcmlkOiBXZWVrbHlDZXJ0RW1wbG95ZXJHcmlkQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ3BDYWxlbmRhcicpIHBDYWxlbmRhcjogRWxlbWVudFJlZjtcclxuXHJcbiAgbGlua0NvbXBvbmVudERhdGE6IExpbmtDb21wb25lbnRNb2RlbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHFjczogUXVlc3Rpb25Db250cm9sU2VydmljZSxcclxuICAgIHB1YmxpYyBzZXJ2aWNlOiBRdWVzdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHB1YmxpYyB2YWxpZGF0aW9uU2VydmljZTogVmFsaWRhdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdXRpbDogVXRpbFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgbmF2Q29udHJvbGxlcjogTmF2Q29udHJvbGxlcixcclxuICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxyXG4gICAgcHVibGljIGNsYWltYW50U2VydmljZTogQ2xhaW1hbnRTZXJ2aWNlLFxyXG4gICAgcHVibGljIHdlZWtseWNlcnRTZXJ2aWNlOiBXZWVrbHlDZXJ0U2VydmljZVYyLFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJpdmF0ZSBsczogTG9naW5TZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5wQ2FsZW5kYXIpIHtcclxuICAgICAgdGhpcy5tb2RpZnlDYWxlbmRhckF0dHJpYnV0ZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZpc2libGVJZihzdHJFeHA6IHN0cmluZywgZWxlbWVudE5hbWU6IHN0cmluZykge1xyXG4gICAgaWYgKCFzdHJFeHApIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGlzVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaWYgKHN0ckV4cC5pbmNsdWRlcygnJiYnKSkge1xyXG4gICAgICBsZXQgZXhwcjogc3RyaW5nW10gPSBzdHJFeHAuc3BsaXQoJyYmJyk7XHJcbiAgICAgIGlzVmlzaWJsZSA9XHJcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwclswXSkgJiZcclxuICAgICAgICB0aGlzLmNhbGN1bGF0ZU9wZXJhbmRWYWx1ZShleHByWzFdKTtcclxuICAgICAgaWYgKGV4cHIubGVuZ3RoID49IDMpIHtcclxuICAgICAgICBpc1Zpc2libGUgPSBpc1Zpc2libGUgJiYgdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwclsyXSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGV4cHIubGVuZ3RoID49IDQpIHtcclxuICAgICAgICBpc1Zpc2libGUgPSBpc1Zpc2libGUgJiYgdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwclszXSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGV4cHIubGVuZ3RoID09IDUpIHtcclxuICAgICAgICBpc1Zpc2libGUgPSBpc1Zpc2libGUgJiYgdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwcls0XSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGV4cHIubGVuZ3RoID4gNSkge1xyXG4gICAgICAgIHRocm93IFwiQXBwVmFsaWRhdG9ycyA6IE1vcmUgdGhhbiA1ICcmJicgZXhwcmVzc2lvbnMgYXJlIG5vdCBzdXBwb3J0ZWQuXCI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChzdHJFeHAuaW5jbHVkZXMoJ3x8JykpIHtcclxuICAgICAgbGV0IGV4cHI6IHN0cmluZ1tdID0gc3RyRXhwLnNwbGl0KCd8fCcpO1xyXG4gICAgICBpc1Zpc2libGUgPVxyXG4gICAgICAgIHRoaXMuY2FsY3VsYXRlT3BlcmFuZFZhbHVlKGV4cHJbMF0pIHx8XHJcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwclsxXSk7XHJcbiAgICAgIGlmIChleHByLmxlbmd0aCA+PSAzKSB7XHJcbiAgICAgICAgaXNWaXNpYmxlID0gaXNWaXNpYmxlIHx8IHRoaXMuY2FsY3VsYXRlT3BlcmFuZFZhbHVlKGV4cHJbMl0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChleHByLmxlbmd0aCA+PSA0KSB7XHJcbiAgICAgICAgaXNWaXNpYmxlID0gaXNWaXNpYmxlIHx8IHRoaXMuY2FsY3VsYXRlT3BlcmFuZFZhbHVlKGV4cHJbM10pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChleHByLmxlbmd0aCA9PSA1KSB7XHJcbiAgICAgICAgaXNWaXNpYmxlID0gaXNWaXNpYmxlIHx8IHRoaXMuY2FsY3VsYXRlT3BlcmFuZFZhbHVlKGV4cHJbNF0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChleHByLmxlbmd0aCA+IDUpIHtcclxuICAgICAgICB0aHJvdyBcIkFwcFZhbGlkYXRvcnMgOiBNb3JlIHRoYW4gNSAnfHwnIGV4cHJlc3Npb25zIGFyZSBub3Qgc3VwcG9ydGVkLlwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGlzVmlzaWJsZSkge1xyXG4gICAgICByZXR1cm4gaXNWaXNpYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2V0Rm9ybUNvbnRyb2xWYWx1ZShlbGVtZW50TmFtZSwgbnVsbCk7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBjYWxjdWxhdGVPcGVyYW5kVmFsdWUoc3RyRXhwOiBzdHJpbmcpIHtcclxuICAgIHZhciBzcGxpdEFycmF5OiBzdHJpbmdbXTtcclxuICAgIGxldCBpc0RvZXNOb3RFcXVhbDogYm9vbGVhbjtcclxuICAgIGxldCBpbmRleDogbnVtYmVyID0gc3RyRXhwLmluZGV4T2YoJyE9Jyk7XHJcbiAgICBpZiAoaW5kZXggPT09IC0xKSB7XHJcbiAgICAgIHNwbGl0QXJyYXkgPSBzdHJFeHAuc3BsaXQoJz09Jyk7XHJcbiAgICAgIGlzRG9lc05vdEVxdWFsID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzcGxpdEFycmF5ID0gc3RyRXhwLnNwbGl0KCchPScpO1xyXG4gICAgICBpc0RvZXNOb3RFcXVhbCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBsZXQgb3BlcmFuZDE6IHN0cmluZyA9IHNwbGl0QXJyYXlbMF07XHJcbiAgICBsZXQgb3BlcmFuZDI6IHN0cmluZyA9IHNwbGl0QXJyYXlbMV07XHJcbiAgICBvcGVyYW5kMSA9IG9wZXJhbmQxLnJlcGxhY2UoJ3snLCAnJykucmVwbGFjZSgnfScsICcnKS50cmltKCk7IC8vY2xhaW1hbnRQcmlvclBheTEwMiBkaWZmbWFpbGFkZHJlc3MzMTVcclxuICAgIG9wZXJhbmQyID0gb3BlcmFuZDIucmVwbGFjZSgneycsICcnKS5yZXBsYWNlKCd9JywgJycpLnRyaW0oKTsgLy9udWxsXHJcbiAgICBpZiAodGhpcy5mb3JtLmNvbnRyb2xzW29wZXJhbmQxXSkge1xyXG4gICAgICB2YXIgdmFsdWVPZkNucnRybFRvQ2hlY2s7XHJcblxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW29wZXJhbmQxXS52YWx1ZSAmJlxyXG4gICAgICAgIHR5cGVvZiB0aGlzLmZvcm0uY29udHJvbHNbb3BlcmFuZDFdLnZhbHVlID09PSAnc3RyaW5nJ1xyXG4gICAgICApIHtcclxuICAgICAgICB2YWx1ZU9mQ25ydHJsVG9DaGVjayA9IHRoaXMuZm9ybS5jb250cm9sc1tvcGVyYW5kMV0udmFsdWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbb3BlcmFuZDFdLnZhbHVlICYmXHJcbiAgICAgICAgdHlwZW9mIHRoaXMuZm9ybS5jb250cm9sc1tvcGVyYW5kMV0udmFsdWUgIT0gJ3N0cmluZydcclxuICAgICAgKSB7XHJcbiAgICAgICAgdmFsdWVPZkNucnRybFRvQ2hlY2sgPSB0aGlzLmZvcm0uY29udHJvbHNbb3BlcmFuZDFdLnZhbHVlWyd2YWx1ZSddO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAob3BlcmFuZDIgPT09ICdudWxsJyAmJiBpc0RvZXNOb3RFcXVhbCAmJiB2YWx1ZU9mQ25ydHJsVG9DaGVjaykge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChvcGVyYW5kMiA9PT0gJ251bGwnICYmICFpc0RvZXNOb3RFcXVhbCAmJiAhdmFsdWVPZkNucnRybFRvQ2hlY2spIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBvcGVyYW5kMiA9IG9wZXJhbmQyLnJlcGxhY2UoXCInXCIsICcnKS5yZXBsYWNlKFwiJ1wiLCAnJykudHJpbSgpOyAvL251bGxcclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICBvcGVyYW5kMiAhPSAnbnVsbCcgJiZcclxuICAgICAgICAhaXNEb2VzTm90RXF1YWwgJiZcclxuICAgICAgICB2YWx1ZU9mQ25ydHJsVG9DaGVjayA9PT0gb3BlcmFuZDJcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICBvcGVyYW5kMiAhPSAnbnVsbCcgJiZcclxuICAgICAgICBpc0RvZXNOb3RFcXVhbCAmJlxyXG4gICAgICAgIHZhbHVlT2ZDbnJ0cmxUb0NoZWNrICE9IG9wZXJhbmQyXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIC8vICAgdGhpcy5sb2dnZXIuZGVidWcoJ2lzIER5bmFtaWNGb3JtUXVlc3Rpb25Db21wb25lbnQgbmdPbkluaXQgY2FsbGVkJywgdGhpcy5xdWVzdGlvbilcclxuICAgIHRoaXMuZ2V0UGFydGlhbEVtcGxveW1lbnRJbmZvKCk7XHJcbiAgICB0aGlzLmZpbHRlclJlc3VsdCA9IHRoaXMucXVlc3Rpb24uY2hvaWNlcztcclxuICAgIHRoaXMuc2V0TWluTWF4RGF0ZSgpO1xyXG4gICAgdGhpcy5zZXRNaW5NYXhWYWx1ZSgpO1xyXG4gICAgdGhpcy5zZXREZWZhdWx0VmFsdWUoKTtcclxuICAgIHRoaXMuc2V0TGlua0NvbXBvbmVudERhdGEoKTtcclxuICAgIGxldCBjdXJyZW50UWVzID0gdGhpcy5zZXJ2aWNlLnNlYXJjaEJzLmdldFZhbHVlKCk7XHJcbiAgICB0aGlzLmN1cnJlbnRmbG93a2V5ID0gY3VycmVudFFlcy5mbG93S2V5O1xyXG4gICAgaWYoKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdkaXNhYmxlRmllbGRzT25TaWdudXAnKSA9PT0gJ3RydWUnKSAmJiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImZsb3dLZXlcIikgPT0gJzM0NScpe1xyXG4gICAgICB0aGlzLmRpc2FibGVGaWVsZHMoKTtcclxuICAgIH1cclxuICB9XHJcbiAgY2hlY2tGbG93S2V5KCkge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudGZsb3drZXkgPT09ICdyZWdpc3Rlci1jbGFpbWFudCcpIHtcclxuICAgICAgLy9jb25zb2xlLmluZm8oXCJjdXJyZW50Zmxvd2tleSBcIix0aGlzLmN1cnJlbnRmbG93a2V5KVxyXG4gICAgICByZXR1cm4gKHRoaXMucmVnaXN0ZXJDbGFpbWFudEZsYWcgPSB0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJlZ2lzdGVyQ2xhaW1hbnRGbGFnO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyBwaG9uZU51bWJlclZlcmlmaWVkKCk6IGJvb2xlYW57XHJcbiAgLy8gICByZXR1cm4gdGhpcy5waG9uZVZlcmlmaWVkLFxyXG4gIC8vIH1cclxuXHJcbiAgZGlzYWJsZUZpZWxkcygpIHtcclxuICAgIGlmICh0aGlzLmNoZWNrRmxvd0tleSgpKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ3Bob25lJykuZGlzYWJsZSgpO1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdlbWFpbCcpLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgndXNlcm5hbWUnKS5kaXNhYmxlKCk7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ3Bhc3N3b3JkJykuZGlzYWJsZSgpO1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdjb25maXJtUGFzc3dvcmQnKS5kaXNhYmxlKCk7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ3NlY1F1ZXMxJykuZGlzYWJsZSgpO1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdzZWNBbnMxJykuZGlzYWJsZSgpO1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdzZWNRdWVzMicpLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnc2VjQW5zMicpLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnc2VjUXVlczMnKS5kaXNhYmxlKCk7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ3NlY0FuczMnKS5kaXNhYmxlKCk7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ3Jlc0FkcmVzcycpLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnZGlmZm1haWxhZGRyZXNzJykuZGlzYWJsZSgpO1xyXG4gICAgICAvL3RoaXMuZm9ybS5nZXQoJ21haWxhZGRyZXNzJykuZGlzYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZW5hYmxlRmllbGRzKCkge1xyXG4gICAgdGhpcy5mb3JtLmdldCgnZW1haWwnKS5lbmFibGUoKTtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ3VzZXJuYW1lJykuZW5hYmxlKCk7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdwYXNzd29yZCcpLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5mb3JtLmdldCgnY29uZmlybVBhc3N3b3JkJykuZW5hYmxlKCk7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdzZWNRdWVzMScpLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5mb3JtLmdldCgnc2VjQW5zMScpLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5mb3JtLmdldCgnc2VjUXVlczInKS5lbmFibGUoKTtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ3NlY0FuczInKS5lbmFibGUoKTtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ3NlY1F1ZXMzJykuZW5hYmxlKCk7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdzZWNBbnMzJykuZW5hYmxlKCk7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdyZXNBZHJlc3MnKS5lbmFibGUoKTtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ2RpZmZtYWlsYWRkcmVzcycpLmVuYWJsZSgpO1xyXG4gICAgLy90aGlzLmZvcm0uZ2V0KCdtYWlsYWRkcmVzcycpLmVuYWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tJZlVzZXJFeGlzdCgpIHtcclxuICAgIC8vIGNvbnNvbGUuaW5mbyhcImRvYiBcIiwgdGhpcy5mb3JtLmdldChcImRvYlwiKS52YWx1ZSk7XHJcbiAgICBpZiAoXHJcbiAgICAgICF0aGlzLmZvcm0uZ2V0KCdzc24nKS52YWx1ZSAmJlxyXG4gICAgICAhdGhpcy5mb3JtLmdldCgnZG9iJykudmFsdWUgJiZcclxuICAgICAgIXRoaXMuY2hlY2tGbG93S2V5KClcclxuICAgICkge1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IHNzbmZyb211c2VyID0gdGhpcy5mb3JtLmdldCgnc3NuJykudmFsdWU7XHJcbiAgICAgIGxldCBkYXRlT2ZiaXJ0aCA9IHRoaXMuZm9ybS5nZXQoJ2RvYicpLnZhbHVlO1xyXG4gICAgICAvL2NvbnNvbGUuaW5mbyhcInRlc3Qgd2l0aCBzc25mcm9tdXNlciBcIiwgc3NuZnJvbXVzZXIpO1xyXG4gICAgICBsZXQgZm9ybWF0ZWREID0gZGF0ZU9mYmlydGgucmVwbGFjZSgvXFwvL2csXCItXCIpO1xyXG4gICAgICBpZihkYXRlT2ZiaXJ0aCAhPSBudWxsICYmIHNzbmZyb211c2VyICE9IG51bGwpe1xyXG4gICAgICAgIHRoaXMuY2xhaW1hbnRTZXJ2aWNlLmNoZWNrSWZVc2VyQWxyZWFkeUV4aXN0KHNzbmZyb211c2VyLGZvcm1hdGVkRCkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgKHgpID0+IHtcclxuICAgICAgICAgICAgaWYoeCE9bnVsbCl7XHJcbiAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlRmllbGRzKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5mb3JtLmdldCgncGhvbmUnKS5zZXRWYWx1ZSh4LnRvU3RyaW5nKCkpO1xyXG4gICAgICAgICAgICAgIGlmICh3aW5kb3dbXCJlbnZcIl1bXCJlbnZpcm9ubWVudFwiXSA9PT0gXCJrc3Byb2RcIikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLmdldCgncGhvbmUnKS5kaXNhYmxlKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIC8qKkRlbGV0ZSB0aGUgZWxzZSBibG9jayBhZnRlciB0aGUgd29ya3NoYXJlIHRlc3RpbmcgaXMgZG9uZSAqL1xyXG4gICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdwaG9uZScpLmRpc2FibGUoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlRmllbGRzKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5mb3JtLmdldCgncGhvbmUnKS5lbmFibGUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIChlcnIpID0+IHsgXHJcbiAgICAgICAgICAgIGlmKGVyci5lcnJvckNvZGU9PT1cIjQwNFwiKXtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0UGFydGlhbEVtcGxveW1lbnRJbmZvKCkge1xyXG4gICAgaWYgKHRoaXMucXVlc3Rpb24ubmFtZSA9PT0gJ3dvcmtQZXJmb3JtZWQnKSB7XHJcbiAgICAgIHRoaXMud2Vla2x5Y2VydFNlcnZpY2VcclxuICAgICAgICAuZ2V0UGFydGlhbEVtcGxveW1lbnQoKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlczogUGFydGlhbEVtcGxveW1lbnRNb2RlbCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcy5wYXJ0aWFsRW1wbG95bWVudEZsYWcgPT09ICcxJykge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0udmFsdWVbdGhpcy5xdWVzdGlvbi5uYW1lXSA9ICdZJztcclxuICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uYWRkVmFsaWRhdG9ycyhcclxuICAgICAgICAgICAgICAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY29udHJvbC52YWx1ZSAhPT0gJ1knID8geyB3Y0VtcGxveWVyVmFsaWRhdGlvbjogdHJ1ZSB9IDogbnVsbDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRMaW5rQ29tcG9uZW50RGF0YSgpIHtcclxuICAgIGlmICh0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudE5hbWUgPT0gJ2FwcC1saW5rJykge1xyXG4gICAgICB0aGlzLmxpbmtDb21wb25lbnREYXRhID0gdGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhXHJcbiAgICAgICAgPyBKU09OLnBhcnNlKHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YSlcclxuICAgICAgICA6IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzaG93TGFiZWxGb3JDdXN0b21Db21wb25lbnQoKSB7XHJcbiAgICBsZXQgcGFyc2VkRGF0YSA9IHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YVxyXG4gICAgICA/IEpTT04ucGFyc2UodGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhKVxyXG4gICAgICA6IG51bGw7XHJcbiAgICByZXR1cm4gcGFyc2VkRGF0YT8uc2hvd0xhYmVsID09ICdZJztcclxuICB9XHJcblxyXG4gIHNldE1pbk1heFZhbHVlKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLnR5cGUgPT09ICdudW1iZXInIHx8XHJcbiAgICAgIHRoaXMucXVlc3Rpb24udHlwZSA9PT0gJ2RlY2ltYWwnIHx8XHJcbiAgICAgIHRoaXMucXVlc3Rpb24udHlwZSA9PT0gJ2N1cnJlbmN5J1xyXG4gICAgKSB7XHJcbiAgICAgIGxldCBtaW5NYXhNb2RlbDogTWluTWF4VmFsdWVNb2RlbCA9IHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YVxyXG4gICAgICAgID8gSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGEpXHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgICBpZiAobWluTWF4TW9kZWwpIHtcclxuICAgICAgICBpZiAobWluTWF4TW9kZWwubWluVmFsdWUpIHtcclxuICAgICAgICAgIHRoaXMubWluVmFsdWUgPSBtaW5NYXhNb2RlbC5taW5WYWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG1pbk1heE1vZGVsLm1heFZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLm1heFZhbHVlID0gbWluTWF4TW9kZWwubWF4VmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRNaW5NYXhEYXRlKCkge1xyXG4gICAgaWYgKHRoaXMucXVlc3Rpb24uaW5wdXRUeXBlID09PSAnZGF0ZScpIHtcclxuICAgICAgbGV0IG1pbk1heE1vZGVsOiBNaW5NYXhEYXRlTW9kZWwgPSB0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGFcclxuICAgICAgICA/IEpTT04ucGFyc2UodGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhKVxyXG4gICAgICAgIDogbnVsbDtcclxuICAgICAgaWYgKG1pbk1heE1vZGVsICYmIChtaW5NYXhNb2RlbC5tYXhEYXRlS2V5IHx8IG1pbk1heE1vZGVsLm1pbkRhdGVLZXkpKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZHluYW1pY1BhcmFtW21pbk1heE1vZGVsLm1pbkRhdGVLZXldKSB7XHJcbiAgICAgICAgICB0aGlzLnBhcnNlRGF0ZSh0aGlzLmR5bmFtaWNQYXJhbVttaW5NYXhNb2RlbC5taW5EYXRlS2V5XSwgJ21pbicpO1xyXG4gICAgICAgICAgdGhpcy5zaG93TWluRGF0ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmR5bmFtaWNQYXJhbVttaW5NYXhNb2RlbC5tYXhEYXRlS2V5XSkge1xyXG4gICAgICAgICAgdGhpcy5wYXJzZURhdGUodGhpcy5keW5hbWljUGFyYW1bbWluTWF4TW9kZWwubWF4RGF0ZUtleV0sICdtYXgnKTtcclxuICAgICAgICAgIHRoaXMuc2hvd01heERhdGUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodGhpcy5xdWVzdGlvbi5taW4pIHtcclxuICAgICAgICAgIHRoaXMucGFyc2VEYXRlKHRoaXMucXVlc3Rpb24ubWluLCAnbWluJyk7XHJcbiAgICAgICAgICB0aGlzLnNob3dNaW5EYXRlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMucXVlc3Rpb24ubWF4KSB7XHJcbiAgICAgICAgICB0aGlzLnBhcnNlRGF0ZSh0aGlzLnF1ZXN0aW9uLm1heCwgJ21heCcpO1xyXG4gICAgICAgICAgdGhpcy5zaG93TWF4RGF0ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHBhcnNlRGF0ZShzdHJEYXRlOiBzdHJpbmcsIHR5cGU6IHN0cmluZyk6IERhdGUge1xyXG4gICAgaWYgKHN0ckRhdGUgJiYgdHlwZSA9PT0gJ21heCcpIHtcclxuICAgICAgdmFyIHNwbGl0QXJyYXkgPSBzdHJEYXRlLnNwbGl0KCctJyk7XHJcbiAgICAgIHRoaXMubWF4RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIHRoaXMubWF4RGF0ZS5zZXRNb250aChOdW1iZXIoc3BsaXRBcnJheVswXSkgLSAxKTtcclxuICAgICAgdGhpcy5tYXhEYXRlLnNldEZ1bGxZZWFyKE51bWJlcihzcGxpdEFycmF5WzJdKSk7XHJcbiAgICAgIHRoaXMubWF4RGF0ZS5zZXREYXRlKE51bWJlcihzcGxpdEFycmF5WzFdKSk7XHJcbiAgICAgIHJldHVybiB0aGlzLm1heERhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHN0ckRhdGUgJiYgdHlwZSA9PT0gJ21pbicpIHtcclxuICAgICAgdmFyIHNwbGl0QXJyYXkgPSBzdHJEYXRlLnNwbGl0KCctJyk7XHJcbiAgICAgIHRoaXMubWluRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIHRoaXMubWluRGF0ZS5zZXRNb250aChOdW1iZXIoc3BsaXRBcnJheVswXSkgLSAxKTtcclxuICAgICAgdGhpcy5taW5EYXRlLnNldEZ1bGxZZWFyKE51bWJlcihzcGxpdEFycmF5WzJdKSk7XHJcbiAgICAgIHRoaXMubWluRGF0ZS5zZXREYXRlKE51bWJlcihzcGxpdEFycmF5WzFdKSk7XHJcbiAgICAgIHJldHVybiB0aGlzLm1pbkRhdGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRTdHlsZShpbmRlbnQ6IG51bWJlcik6IG9iamVjdCB7XHJcbiAgICBsZXQgcGFkZGluZyA9IGluZGVudCA8PSAxID8gJzAgcHgnIDogaW5kZW50ICogMTAgKyAncHgnO1xyXG5cclxuICAgIGxldCBzdHlsZU9iaiA9IHtcclxuICAgICAgJ3BhZGRpbmctbGVmdCc6IHBhZGRpbmcsXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHN0eWxlT2JqKTtcclxuICB9XHJcblxyXG4gIHNldE1hcmdpbihtYXJnaW46IG51bWJlcik6IG9iamVjdCB7XHJcbiAgICBsZXQgbWFyID0gbWFyZ2luICsgJ3B4JztcclxuICAgIGxldCBzdHlsZU9iaiA9IHtcclxuICAgICAgJ21hcmdpbi1yaWdodCc6IG1hcixcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oc3R5bGVPYmopO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzVmFsaWQoKSB7XHJcbiAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gJyc7XHJcbiAgICBsZXQgcXVlc3Rpb25UeXBlOiBzdHJpbmcgPSB0aGlzLnF1ZXN0aW9uLnR5cGU7XHJcbiAgICBpZiAoXHJcbiAgICAgICdodG1sJyA9PT0gcXVlc3Rpb25UeXBlIHx8XHJcbiAgICAgICdsYWJlbCcgPT09IHF1ZXN0aW9uVHlwZSB8fFxyXG4gICAgICAnc2ltcGxlTGFiZWwnID09PSBxdWVzdGlvblR5cGUgfHxcclxuICAgICAgJ2Rpc3BsYXl0ZXh0YXNsYWJlbCcgPT09IHF1ZXN0aW9uVHlwZSB8fFxyXG4gICAgICAoJ2J1dHRvbicgPT09IHF1ZXN0aW9uVHlwZSAmJlxyXG4gICAgICAgICF0aGlzLnF1ZXN0aW9uLnZhbGlkYXRvcnMgJiZcclxuICAgICAgICB0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudE5hbWUgIT0gJ2FwcC1zaWduLXNzbicgJiZcclxuICAgICAgICB0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudE5hbWUgIT0gJ2FwcC1saW5rJykgfHxcclxuICAgICAgJ2xhYmVsLXdpdGgtb3ZlcmxheScgPT09IHF1ZXN0aW9uVHlwZVxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5xdWVzdGlvbiAmJlxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLm5hbWUgJiZcclxuICAgICAgdGhpcy5mb3JtICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ucmVxdWlyZWQgJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICByZXR1cm4gdGhpcy5xdWVzdGlvbi5yZXF1aXJlZEVycm9yVGV4dDtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5xdWVzdGlvbiAmJlxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLm5hbWUgJiZcclxuICAgICAgdGhpcy5mb3JtICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ubWF4bGVuZ3RoICYmXHJcbiAgICAgICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fFxyXG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ2Vycm9ycz8ubWF4TGVuZ3RoJywgdGhpcy5xdWVzdGlvbik7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIGlmICh0aGlzLnF1ZXN0aW9uLmRlc2NyaXB0aW9uKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlc3Rpb24uZGVzY3JpcHRpb247XHJcbiAgICAgIH1cclxuICAgICAgbGV0IHZhbGlkYXRvckxpc3QgPSB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRvcnM7XHJcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xyXG4gICAgICB2YWxpZGF0b3JMaXN0LmZvckVhY2goKHZhbGlkYXRvcikgPT4ge1xyXG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd2YWxpZGF0b3IudHlwZSAnLCB2YWxpZGF0b3IudHlwZSk7XHJcbiAgICAgICAgaWYgKGtlZXBHb2luZykge1xyXG4gICAgICAgICAgaWYgKHZhbGlkYXRvci50eXBlID09PSAndGV4dCcgJiYgdmFsaWRhdG9yLm1heExlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndmFsaWRhdG9yLnRleHQgJywgdmFsaWRhdG9yLnRleHQpO1xyXG4gICAgICAgICAgICBtZXNzYWdlID0gdmFsaWRhdG9yLnRleHQ7XHJcbiAgICAgICAgICAgIGtlZXBHb2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbWVzc2FnZSA9ICcnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBtZXNzYWdlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5xdWVzdGlvbiAmJlxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLm5hbWUgJiZcclxuICAgICAgdGhpcy5mb3JtICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ucGF0dGVybiAmJlxyXG4gICAgICAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHxcclxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKVxyXG4gICAgKSB7XHJcbiAgICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCdlcnJvcnM/LnBhdHRlcm4nLHRoaXMucXVlc3Rpb24pXHJcbiAgICAgIGxldCB2YWxpZGF0b3JMaXN0ID0gdGhpcy5xdWVzdGlvbi52YWxpZGF0b3JzO1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIHZhbGlkYXRvckxpc3QuZm9yRWFjaCgodmFsaWRhdG9yKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbGlkYXRvci50eXBlICcsIHZhbGlkYXRvci50eXBlKVxyXG4gICAgICAgIGlmIChrZWVwR29pbmcpIHtcclxuICAgICAgICAgIGlmICh2YWxpZGF0b3IudHlwZSA9PT0gJ3JlZ2V4Jykge1xyXG4gICAgICAgICAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygndmFsaWRhdG9yLnRleHQgJywgdmFsaWRhdG9yLnRleHQpXHJcbiAgICAgICAgICAgIG1lc3NhZ2UgPSB2YWxpZGF0b3IudGV4dDtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcclxuICAgICAgICAgICAga2VlcEdvaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBtZXNzYWdlID0gJyc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIG1lc3NhZ2U7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LmRhdGVDb21wYXJpc2lvbiAmJlxyXG4gICAgICAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHxcclxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKVxyXG4gICAgKSB7XHJcbiAgICAgIGxldCB2YWxpZGF0b3JMaXN0ID0gdGhpcy5xdWVzdGlvbi52YWxpZGF0b3JzO1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9ICcnO1xyXG4gICAgICB2YWxpZGF0b3JMaXN0LmZvckVhY2goKHZhbGlkYXRvcikgPT4ge1xyXG4gICAgICAgIGlmIChrZWVwR29pbmcpIHtcclxuICAgICAgICAgIC8vICAgdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbGlkYXRvci50eXBlLm1pbmxlbmd0aCAnLCB2YWxpZGF0b3IudHlwZSlcclxuICAgICAgICAgIGlmICh2YWxpZGF0b3IudHlwZSA9PT0gJ2V4cHJlc3Npb24nKSB7XHJcbiAgICAgICAgICAgIC8vICB0aGlzLmxvZ2dlci5kZWJ1ZygndmFsaWRhdG9yLnRleHQgJywgdmFsaWRhdG9yLnRleHQpXHJcbiAgICAgICAgICAgIG1lc3NhZ2UgPSB2YWxpZGF0b3IudGV4dDtcclxuICAgICAgICAgICAga2VlcEdvaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBtZXNzYWdlID0gJyc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIG1lc3NhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnF1ZXN0aW9uICYmXHJcbiAgICAgIHRoaXMucXVlc3Rpb24ubmFtZSAmJlxyXG4gICAgICB0aGlzLmZvcm0gJiZcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5taW5sZW5ndGggJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICBsZXQgdmFsaWRhdG9yTGlzdCA9IHRoaXMucXVlc3Rpb24udmFsaWRhdG9ycztcclxuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XHJcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSAnJztcclxuICAgICAgdmFsaWRhdG9yTGlzdC5mb3JFYWNoKCh2YWxpZGF0b3IpID0+IHtcclxuICAgICAgICBpZiAoa2VlcEdvaW5nKSB7XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKCd2YWxpZGF0b3IudHlwZS5taW5sZW5ndGggJywgdmFsaWRhdG9yLnR5cGUpXHJcbiAgICAgICAgICBpZiAodmFsaWRhdG9yLnR5cGUgPT09ICd0ZXh0Jykge1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKCd2YWxpZGF0b3IudGV4dCAnLCB2YWxpZGF0b3IudGV4dClcclxuICAgICAgICAgICAgbWVzc2FnZSA9IHZhbGlkYXRvci50ZXh0O1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgICAgICBrZWVwR29pbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2UgPSAnJztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LnBhc3N3b3JkQ29tcGFyaXNpb24gJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICBsZXQgdmFsaWRhdG9yTGlzdCA9IHRoaXMucXVlc3Rpb24udmFsaWRhdG9ycztcclxuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XHJcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSAnJztcclxuICAgICAgdmFsaWRhdG9yTGlzdC5mb3JFYWNoKCh2YWxpZGF0b3IpID0+IHtcclxuICAgICAgICBpZiAoa2VlcEdvaW5nKSB7XHJcbiAgICAgICAgICAvLyAgIGNvbnNvbGUubG9nKCd2YWxpZGF0b3IudHlwZS5taW5sZW5ndGggJywgdmFsaWRhdG9yLnR5cGUpXHJcbiAgICAgICAgICBpZiAodmFsaWRhdG9yLnR5cGUgPT09ICdleHByZXNzaW9uJykge1xyXG4gICAgICAgICAgICAvLyAgY29uc29sZS5sb2coJ3ZhbGlkYXRvci50ZXh0ICcsIHZhbGlkYXRvci50ZXh0KVxyXG4gICAgICAgICAgICBtZXNzYWdlID0gdmFsaWRhdG9yLnRleHQ7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgICAgICAgIGtlZXBHb2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbWVzc2FnZSA9ICcnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBtZXNzYWdlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5xdWVzdGlvbiAmJlxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLm5hbWUgJiZcclxuICAgICAgdGhpcy5mb3JtICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ucmVxdWlyZWRJZiAmJlxyXG4gICAgICAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHxcclxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldFJlcXVpcmVkVmFsaWRhdGlvbk1lc3NhZ2UoKTsgICAgICBcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LmJwRW1wbHJGbGFnICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5ICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWRcclxuICAgICkge1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZztcclxuICAgICAgaWYobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsYW5ndWFnZVwiKSA9PT0gXCJlc1wiKXtcclxuICAgICAgICBtZXNzYWdlID0gJ0NvbmZpcm1hciBvIGVsaW1pbmFyIGNhZGEgZW1wbGVhZG9yKGVzKSBwYXJhIGNvbnRpbnVhcic7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbWVzc2FnZSA9ICdDb25maXJtIG9yIERlbGV0ZSBlYWNoIGVtcGxveWVyKHMpIHRvIGNvbnRpbnVlJztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnNcclxuICAgICAgICA/LnNpbXBsZUNoZWNrQm94VmFsaWRhdGlvbkZsYWcgJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVxdWlyZWRWYWxpZGF0aW9uTWVzc2FnZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5xdWVzdGlvbiAmJlxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLm5hbWUgJiZcclxuICAgICAgdGhpcy5mb3JtICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8uY3BhdGNodmFsaWRhdGlvbkZsYWcgJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVxdWlyZWRWYWxpZGF0aW9uTWVzc2FnZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5xdWVzdGlvbiAmJlxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLm5hbWUgJiZcclxuICAgICAgdGhpcy5mb3JtICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8udXBsb2FkdmFsaWRhdGlvbkZsYWcgJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVxdWlyZWRWYWxpZGF0aW9uTWVzc2FnZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5xdWVzdGlvbiAmJlxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLm5hbWUgJiZcclxuICAgICAgdGhpcy5mb3JtICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8uYnBFbXBsckxlbmd0aEZsYWcgJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9ICdBZGQgcHJldmlvdXMgZW1wbG95bWVudCBkZXRhaWxzJztcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcclxuICAgICAgcmV0dXJuIG1lc3NhZ2U7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LmFkZHJlc3NWYWxpZGF0aW9uRmxhZyAmJlxyXG4gICAgICAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHxcclxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKVxyXG4gICAgKSB7XHJcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xyXG4gICAgICAvL2xldCBtZXNzYWdlOiBzdHJpbmcgPSBcIlBsZWFzZSBwcm92aWRlIHZhbGlkIGFkZHJlc3MuXCI7XHJcbiAgICAgIHRoaXMuYWRkcmVzc2VzLmZvckVhY2goKGFkZHJlc3MpID0+IGFkZHJlc3Muc3VibWl0KCkpO1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnNcclxuICAgICAgICA/LmJhbmtEZXRhaWxzVmFsaWRhdGlvbkZsYWcgJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgLy9sZXQgbWVzc2FnZTogc3RyaW5nID0gXCJQbGVhc2UgcHJvdmlkZSB2YWxpZCBiYW5rIGRldGFpbHMuXCI7XHJcbiAgICAgIHRoaXMuYmFua2R0bHM/LnN1Ym1pdCgpO1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LndjRW1wbG95ZXJWYWxpZGF0aW9uICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5ICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWRcclxuICAgICkge1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdO1xyXG4gICAgICBjb25zdCBlcnJvciA9IGNvbnRyb2wuZXJyb3JzOyAgICAgIFxyXG4gICAgICB0aGlzLndjRW1wbG95ZXJHcmlkPy5zdWJtaXQoKTtcclxuICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xyXG5cclxuICAgICAgaWYoZXJyb3I/LndjRW1wbG95ZXJWYWxpZGF0aW9uKSB7XHJcbiAgICAgICAgbWVzc2FnZSA9IHRoaXMud2NFbXBsb3llclZhbGlkYXRpb25Nc2c7XHJcbiAgICAgICAgcmV0dXJuIG1lc3NhZ2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKGVycm9yPy5yZXF1aXJlZCkge1xyXG4gICAgICAgIG1lc3NhZ2UgPSBcInJlcXVpcmVkXCI7XHJcbiAgICAgIHJldHVybiBtZXNzYWdlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnF1ZXN0aW9uICYmXHJcbiAgICAgIHRoaXMucXVlc3Rpb24ubmFtZSAmJlxyXG4gICAgICB0aGlzLmZvcm0gJiZcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5ub3RFcXVhbHMgJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICBsZXQgdmFsaWRhdG9yTGlzdCA9IHRoaXMucXVlc3Rpb24udmFsaWRhdG9ycztcclxuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XHJcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSAnJztcclxuICAgICAgdmFsaWRhdG9yTGlzdC5mb3JFYWNoKCh2YWxpZGF0b3IpID0+IHtcclxuICAgICAgICBpZiAoa2VlcEdvaW5nKSB7XHJcbiAgICAgICAgICBpZiAodmFsaWRhdG9yLnR5cGUgPT09ICdjdXN0b212YWxpZGF0aW9uJykge1xyXG4gICAgICAgICAgICBtZXNzYWdlID0gdmFsaWRhdG9yLnRleHQ7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgICAgICAgIGtlZXBHb2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbWVzc2FnZSA9ICcnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcclxuICAgICAgcmV0dXJuIG1lc3NhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ21lc3NhZ2UgZnJvbSBwYW5lbCBvdXRlci0tICcsbWVzc2FnZSk7XHJcbiAgICByZXR1cm4gbWVzc2FnZTtcclxuICB9XHJcblxyXG4gIG9uQWNjZXB0ZWQoYWdyZWVkOiBib29sZWFuKSB7XHJcbiAgICAvL2NvbnNvbGUubG9nKCdvbkFjY2VwdGVkIGNhbGxlZCcsYWdyZWVkKTtcclxuICAgIHRoaXMubGVnYWxBY2NlcHRlZCA9IGFncmVlZDtcclxuICB9XHJcblxyXG4gIG9uQ29tcGxldGVSZXF1YWxpZnkocmVxdWFsaWZ5RGF0YTogVW50eXBlZEZvcm1Hcm91cCkge1xyXG4gICAgLy9jb25zb2xlLmxvZyhcIm9uQ29tcGxldGVSZXF1YWxpZnlcIiwgcmVxdWFsaWZ5RGF0YSk7XHJcbiAgfVxyXG5cclxuICBvbk1vZGVsRGlzcGxheShtb2RlbERpc3BsYXk6IGJvb2xlYW4pIHtcclxuICAgIC8vY29uc29sZS5sb2coJ21vZGVsRGlzcGxheSBjYWxsZWQnLG1vZGVsRGlzcGxheSk7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZU90cEZvck5ld1VzZXJDcmVhdGlvbihldmVudCwgZm9ybSkge1xyXG4gICAgaWYgKGZvcm0uY29udHJvbHMucGhvbmUudmFsdWUgPT0gbnVsbCB8fCBmb3JtLnZhbHVlLnZlcmlmaWNhdGlvbiA9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuaXNPdHBNb2RhbEVuYWJsZWQgPSBmYWxzZTtcclxuICAgICAgY29uc29sZS5sb2coXCJGaWVsZHMgYXJlIG51bGwuXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICAvLyBSZW1vdmUgbm9uLW51bWVyaWMgY2hhcmFjdGVyc1xyXG4gICAvLyBsZXQgdmFsaWRQaG9uZSA9IGZvcm0udmFsdWUucGhvbmUucmVwbGFjZSgvXFxEL2csICcnKTtcclxuICAgIGxldCB2YWxpZFBob25lID0gZm9ybS5jb250cm9scy5waG9uZS52YWx1ZS5yZXBsYWNlQWxsKFwiLVwiLFwiXCIpLnJlcGxhY2VBbGwoXCIgXCIsXCJcIik7XHJcbiAgICAgIFxyXG4gICAgLy8gQ291bnQgZGlnaXRzXHJcbiAgICBsZXQgcGhvbmVMZW5ndGggPSB2YWxpZFBob25lLmxlbmd0aDtcclxuICAgIGNvbnNvbGUubG9nKFwiUGhvbmUgbnVtYmVyIGxlbmd0aFwiLCBwaG9uZUxlbmd0aCk7XHJcbiAgICBpZiAocGhvbmVMZW5ndGggIT0gMTApIHtcclxuICAgICAgY29uc29sZS5sb2coXCJQaG9uZSBudW1iZXIgbXVzdCBiZSBvZiBsZW5ndGggMTBcIilcclxuICAgICAgXHJcbiAgICAgIHJldHVybjsgXHJcbiAgICB9XHJcbiAgICB0aGlzLmxzXHJcbiAgICAgIC5nZW5lcmF0ZU90cEZvck5ld1VzZXJDcmVhdGlvbihmb3JtLmNvbnRyb2xzLnBob25lLnZhbHVlLCBldmVudC5vcHRpb24udmFsdWUpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ0FjY2VzcyBjb2RlIHNlbnQgc3VjY2Vzc2Z1bGx5LicpO1xyXG4gICAgICAgICAgdGhpcy5pc090cE1vZGFsRW5hYmxlZCA9IHRydWU7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ0NvdWxkIG5vdCBnZW5lcmF0ZSB0aGUgYXV0aGVudGljYXRpb24gT1RQIGNvZGUuJyk7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7IFxyXG4gIH1cclxuXHJcbiAgb25SYWRpb09wdGlvbkNsaWNrKGV2ZW50LCBlbGVtZW50OiBFbGVtZW50c01vZGVsKSB7XHJcbiAgICBpZihlbGVtZW50Py5uYW1lID09PSBcImRpZmZtYWlsYWRkcmVzc1wiICYmIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiZmxvd0tleVwiKSA9PSAnMzQ1Jyl7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdkaXNhYmxlRmllbGRzT25TaWdudXAnLCAnZmFsc2UnKTtcclxuICAgIH1cclxuICAgIGxldCBxdWVyeSA9IGV2ZW50LnF1ZXJ5O1xyXG4gICAgaWYgKGVsZW1lbnQuc2VydmljZVR5cGUgJiYgZWxlbWVudC5zZXJ2aWNlVHlwZSA9PT0gJ0ZFVENIJykge1xyXG4gICAgICBsZXQgc2VydmljZUNhbGxUeXBlID0gZWxlbWVudC5zZXJ2aWNlQ2FsbFR5cGU7XHJcbiAgICAgIGxldCBzZXJ2aWNlTmFtZTogc3RyaW5nID0gZWxlbWVudC5zZXJ2aWNlTmFtZTtcclxuICAgICAgY29uc3Qgb3B0aW9ucyA9IGV2ZW50Lm9wdGlvbi52YWx1ZVxyXG4gICAgICAgID8geyBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdzZWxlY3Rpb24nLCBldmVudC5vcHRpb24udmFsdWUpIH1cclxuICAgICAgICA6IHt9O1xyXG4gICAgICBpZiAoc2VydmljZUNhbGxUeXBlID09PSAnR0VUJykge1xyXG4gICAgICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKCk7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5nZXQoYCR7c2VydmljZU5hbWV9YCwgb3B0aW9ucykuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBsZXQgdmFsdWVzOiBTZXJ2aWNlQWN0aW9uUmVzcG9uc2VNb2RlbCA9IHJlcztcclxuICAgICAgICAgICAgaWYgKHZhbHVlcy5zdWNjZXNzID09IHRydWUpIHtcclxuICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKHZhbHVlcy5zZXJ2aWNlQ2FsbFZhbHVlcy5zZXJ2aWNlVHlwZSk7XHJcbiAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyh2YWx1ZXMuc2VydmljZUNhbGxWYWx1ZXMpO1xyXG4gICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIHZhbHVlcy5zZXJ2aWNlQ2FsbFZhbHVlcyAmJlxyXG4gICAgICAgICAgICAgICAgdmFsdWVzLnNlcnZpY2VDYWxsVmFsdWVzLnNlcnZpY2VUeXBlICYmXHJcbiAgICAgICAgICAgICAgICB2YWx1ZXMuc2VydmljZUNhbGxWYWx1ZXMuc2VydmljZVR5cGUgPT09ICdGRVRDSCdcclxuICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIGxldCBzZXJ2aWNlQ2FsbFR5cGVJblRydWUgPVxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZXMuc2VydmljZUNhbGxWYWx1ZXMuc2VydmljZUNhbGxUeXBlO1xyXG4gICAgICAgICAgICAgICAgbGV0IHNlcnZpY2VOYW1lSW5UcnVlOiBzdHJpbmcgPVxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZXMuc2VydmljZUNhbGxWYWx1ZXMuc2VydmljZU5hbWU7XHJcbiAgICAgICAgICAgICAgICBpZiAoc2VydmljZUNhbGxUeXBlSW5UcnVlID09PSAnR0VUJykge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmdldChgJHtzZXJ2aWNlTmFtZUluVHJ1ZX1gKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2FkZXJNb2RlbDogTG9hZGVyTW9kZWwgPSByZXNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCIgdmFsdWUgZnJvbSBsb2FkZXIgPSBcIiwgbG9hZGVyTW9kZWwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRGb3JtVmFsdWVzKGxvYWRlck1vZGVsLmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIChlcnJwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW2VsZW1lbnQubmFtZV0/LnJlc2V0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubmFtZVxyXG4gICAgICAgICAgICAgICAgICAgICAgXT8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnJwKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tlbGVtZW50Lm5hbWVdPy5yZXNldCgpO1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbZWxlbWVudC5uYW1lXT8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Rm9ybVZhbHVlcyhkYXRhKSB7XHJcbiAgICBPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgbGV0IHZhbHVlVG9TZXQgPSBkYXRhW2tleV07XHJcbiAgICAgIHRoaXMuc2V0VmFsdWVJbkZvcm1Db250cm9sKGtleSwgdmFsdWVUb1NldCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFZhbHVlSW5Gb3JtQ29udHJvbChuYW1lLCB2YWx1ZSkge1xyXG4gICAgbGV0IGNvbnRyb2wgPSB0aGlzLmZvcm0uY29udHJvbHNbbmFtZV07XHJcbiAgICBpZiAoY29udHJvbCkge1xyXG4gICAgICBjb250cm9sLnBhdGNoVmFsdWUodmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS5lcnJvcignTm8gZm9ybSBjb250cm9sIHByZXNlbnQgd2l0aCBuYW1lICcsIG5hbWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZmlsdGVyVmFsdWUoZXZlbnQsIGVsZW1lbnQ6IEVsZW1lbnRzTW9kZWwpIHtcclxuICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCdjaG9pY2VzLS0nLGNob2ljZXMpO1xyXG5cclxuICAgIGxldCBjaG9pY2VzOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgIGxldCBmaWx0ZXJlZDogYW55W10gPSBbXTtcclxuICAgIGxldCBxdWVyeSA9IGV2ZW50LnF1ZXJ5O1xyXG5cclxuICAgIGlmIChlbGVtZW50LnNlcnZpY2VUeXBlICYmIGVsZW1lbnQuc2VydmljZVR5cGUgPT09ICdGRVRDSCcpIHtcclxuICAgICAgbGV0IHNlcnZpY2VDYWxsUGFyYW0gPSBlbGVtZW50LnNlcnZpY2VDYWxsUGFyYW07IC8vc3NuMzIwLGxzdG5hbWUzMjBcclxuICAgICAgbGV0IHNlcnZpY2VDYWxsVHlwZSA9IGVsZW1lbnQuc2VydmljZUNhbGxUeXBlOyAvL1wiR0VUXCJcclxuICAgICAgbGV0IHNlcnZpY2VOYW1lOiBzdHJpbmcgPSBlbGVtZW50LnNlcnZpY2VOYW1lOyAvLy9zZWN1cml0eS1zZXJ2aWNlL3ZhbGlkYXRlU1NOL1xyXG4gICAgICBsZXQgc2VydmljZVVwZGF0ZVBhcmFtID0gZWxlbWVudC5zZXJ2aWNlVXBkYXRlUGFyYW07XHJcblxyXG4gICAgICBpZiAoc2VydmljZUNhbGxUeXBlID09PSAnR0VUJykge1xyXG4gICAgICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCdJbnNpZGUgR0VUJyk7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5nZXQoYCR7c2VydmljZU5hbWV9YCkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgKHJlcykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygncmVzLS0nLCByZXMsICcgLSByZXNbMF0ubGVuZ3RoIC0nLCByZXMpO1xyXG4gICAgICAgICAgICBjaG9pY2VzLnB1c2gocmVzKTtcclxuICAgICAgICAgICAgbGV0IHF1ZXJ5ID0gZXZlbnQucXVlcnk7XHJcbiAgICAgICAgICAgIC8vbGV0IGZpbHRlcmVkOiBhbnlbXSA9IFtdO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNob2ljZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICBsZXQgY2hvaWNlID0gY2hvaWNlc1tpXTtcclxuICAgICAgICAgICAgICAvL3RoaXMubG9nZ2VyLmRlYnVnKCdjaG9pY2UgLSAnLCBjaG9pY2UsICdjaG9pY2UudGV4dC0tJywgY2hvaWNlLnRleHQsICdxdWVyeS50b0xvd2VyQ2FzZSgpJywgcXVlcnk/LnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgICAgICAgIC8vaWYgKGNob2ljZS50ZXh0LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihxdWVyeS50b0xvd2VyQ2FzZSgpKSA9PSAwKSB7XHJcbiAgICAgICAgICAgICAgZmlsdGVyZWQucHVzaChjaG9pY2VbMF0pO1xyXG4gICAgICAgICAgICAgIC8vfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyUmVzdWx0ID0gZmlsdGVyZWQ7XHJcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd0aGlzLmZpbHRlclJlc3VsdDEyMy0tJywgdGhpcy5maWx0ZXJSZXN1bHQpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNob2ljZXMgPSBlbGVtZW50LmNob2ljZXM7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hvaWNlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCBjb3VudHJ5ID0gY2hvaWNlc1tpXTtcclxuICAgICAgICAvL2lmIChjb3VudHJ5LnRleHQudG9Mb3dlckNhc2UoKS5pbmRleE9mKHF1ZXJ5LnRvTG93ZXJDYXNlKCkpID09IDApIHtcclxuICAgICAgICBmaWx0ZXJlZC5wdXNoKGNvdW50cnkpO1xyXG4gICAgICAgIC8vfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZmlsdGVyUmVzdWx0ID0gZmlsdGVyZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdChldmVudCwgY250cmxOYW1lOiBzdHJpbmcpIHt9XHJcblxyXG4gIC8vVGhpcyBzaG91ZCBiZSBzaW1pbGlyYSB0byBtZXRob2QgcHJlc2VudCBpbiBwYW5lbFxyXG4gIHZhbGlkYXRlKGVsZW1lbnQ6IEVsZW1lbnRzTW9kZWwpIHtcclxuICAgIGlmICghZWxlbWVudC5zZXJ2aWNlTmFtZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHNlcnZpY2VUeXBlID0gZWxlbWVudC5zZXJ2aWNlVHlwZTtcclxuICAgIGlmIChlbGVtZW50LnNlcnZpY2VUeXBlID09PSAnRkVUQ0gnKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgc2VydmljZUNhbGxQYXJhbSA9IGVsZW1lbnQuc2VydmljZUNhbGxQYXJhbTsgLy9zc24zMjAsbHN0bmFtZTMyMFxyXG4gICAgbGV0IHNlcnZpY2VDYWxsVHlwZSA9IGVsZW1lbnQuc2VydmljZUNhbGxUeXBlOyAvL1wiR0VUXCJcclxuICAgIGxldCBzZXJ2aWNlTmFtZTogc3RyaW5nID0gZWxlbWVudC5zZXJ2aWNlTmFtZTsgLy8vc2VjdXJpdHktc2VydmljZS92YWxpZGF0ZVNTTi9cclxuICAgIGxldCBzZXJ2aWNlVXBkYXRlUGFyYW0gPSBlbGVtZW50LnNlcnZpY2VVcGRhdGVQYXJhbTtcclxuICAgIGxldCBhbGxWYWx1ZVByZXNlbnQ6IEJvb2xlYW4gPSB0cnVlO1xyXG4gICAgLy8gIHRoaXMubG9nZ2VyLmRlYnVnKCdzZXJ2aWNlQ2FsbFBhcmFtJyxzZXJ2aWNlQ2FsbFBhcmFtKTtcclxuICAgIGlmIChzZXJ2aWNlQ2FsbFBhcmFtKSB7XHJcbiAgICAgIHZhciBzcGxpdHRlZCA9IHNlcnZpY2VDYWxsUGFyYW0uc3BsaXQoJywnKTtcclxuICAgICAgbGV0IHZhbHVlQXJyOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICBsZXQgcGFyYW1BcnI6IHN0cmluZ1tdID0gW107XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BsaXR0ZWQubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAvL3VzZSBpIGluc3RlYWQgb2YgMCBkb2IzMjBcclxuICAgICAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnZG9iMzIwJyx0aGlzLmZvcm0uY29udHJvbHNbJ2RvYjMyMCddLnZhbHVlKTtcclxuICAgICAgICBpZiAodGhpcy5mb3JtLmNvbnRyb2xzW3NwbGl0dGVkW2ldXS52YWx1ZSkge1xyXG4gICAgICAgICAgcGFyYW1BcnIucHVzaChzcGxpdHRlZFtpXSk7XHJcbiAgICAgICAgICB2YWx1ZUFyci5wdXNoKHRoaXMuZm9ybS5jb250cm9sc1tzcGxpdHRlZFtpXV0udmFsdWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBhbGxWYWx1ZVByZXNlbnQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbHVlQXJyMTInLCB2YWx1ZUFyciwgJ3BhcmFtQXJyMTEgJywgcGFyYW1BcnIsICcgZWxlbWVudCcsIGVsZW1lbnQpO1xyXG5cclxuICAgICAgdmFyIG1vZGVsOiBWYWxpZGF0aW9uTW9kZWwgPSB7fTtcclxuICAgICAgbW9kZWwucGFyYW1OYW1lID0gcGFyYW1BcnI7XHJcbiAgICAgIG1vZGVsLnBhcmFtVmFsdWUgPSB2YWx1ZUFycjtcclxuICAgICAgLy8gcmV0dXJuIHRoaXMucG9zdChgcXVlc3Rpb25uYWlyZS9zY3JlZW4tcXVlc3Rpb25uYWlyZWAsIHF1ZXN0aW9ubmFpcmVEYXRhKTtcclxuICAgICAgaWYgKGFsbFZhbHVlUHJlc2VudCkge1xyXG4gICAgICAgIGlmIChzZXJ2aWNlQ2FsbFR5cGUgPT09ICdQT1NUJykge1xyXG4gICAgICAgICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ0luc2lkZSBHRVQnKTtcclxuICAgICAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UucG9zdChgJHtzZXJ2aWNlTmFtZX1gLCBtb2RlbCkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZXR1cm5Nb2RlbCA9IHJlcztcclxuICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJldHVybk1vZGVsLnJldHVyblR5cGUgJiZcclxuICAgICAgICAgICAgICAgIHRoaXMucmV0dXJuTW9kZWwucmV0dXJuVHlwZSA9PT0gJ1BPUFVQJ1xyXG4gICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5UG9zaXRpb24gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9ICd0b3AnO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3BVcEhlYWRlciA9IHRoaXMucmV0dXJuTW9kZWwucG9wVXBIZWFkZXI7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvcFVwVGV4dCA9IHRoaXMucmV0dXJuTW9kZWwucG9wVXBUZXh0O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3BVcFllc0FjdGlvbkxhYmVsID0gdGhpcy5yZXR1cm5Nb2RlbC5wb3BVcFllc0J1dHRvbkxhYmVsO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3BVcE5vQWN0aW9uTGFiZWwgPSB0aGlzLnJldHVybk1vZGVsLnBvcFVwTm9CdXR0b25MYWJlbDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3RoaXMucmV0dXJuTW9kZWwgJywgdGhpcy5yZXR1cm5Nb2RlbCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgYmx1ckRPQihlbGVtZW50OiBFbGVtZW50c01vZGVsKSB7XHJcbiAgICB0aGlzLnZhbGlkYXRlKGVsZW1lbnQpO1xyXG4gICAgdGhpcy5jaGVja0lmVXNlckV4aXN0KCk7XHJcbiAgfVxyXG4gIGFjY2VwdCgpIHtcclxuICAgIGNvbnNvbGUubG9nKCdhY2NlcHQgY2FsbGVkMTIzJywgdGhpcy5yZXR1cm5Nb2RlbC5pZGVudGlmaWVyKTtcclxuICAgIGxldCBwYXJhbUFycmF5OiBQYXJhbXNbXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMucmV0dXJuTW9kZWwuaWRlbnRpZmllcikge1xyXG4gICAgICBsZXQgbW9kZWxBcnI6IEtleVZhbHVlTW9kZWxbXSA9IHRoaXMucmV0dXJuTW9kZWwuaWRlbnRpZmllcjtcclxuICAgICAgZm9yICh2YXIgdmFsIG9mIG1vZGVsQXJyKSB7XHJcbiAgICAgICAgcGFyYW1BcnJheS5wdXNoKHsgW3ZhbC5rZXldOiB2YWwudmFsdWUgfSk7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgcGFyYW1zID0gcGFyYW1BcnJheS5yZWR1Y2UoKGFyck9iaiwgaXRlbSkgPT5cclxuICAgICAgICBPYmplY3QuYXNzaWduKGFyck9iaiwgaXRlbSwge30pXHJcbiAgICAgICk7XHJcbiAgICAgIC8vdGhpcy51dGlsLm9wZW5QYWdlQnlDb250ZXh0Um9vdFdpdGhEYXRhKHRoaXMuZ2V0Q29udGV4dFJvb3QoKSwgdGhpcy5yZXR1cm5Nb2RlbC55ZXNBY3Rpb24sIHBhcmFtcywgdGhpcy5uYXZDb250cm9sbGVyKVxyXG4gICAgICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KHRoaXMucmV0dXJuTW9kZWwueWVzQWN0aW9uLCB7XHJcbiAgICAgICAgcXVlcnlQYXJhbXM6IHBhcmFtcyxcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5yZXR1cm5Nb2RlbC55ZXNBY3Rpb24gJiZcclxuICAgICAgdGhpcy5yZXR1cm5Nb2RlbC55ZXNBY3Rpb24uc3Vic3RyaW5nKDAsIDQpICE9ICcvY3AvJ1xyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMubmF2Q29udHJvbGxlci5uYXZpZ2F0ZVJvb3QoW3RoaXMucmV0dXJuTW9kZWwueWVzQWN0aW9uXSk7XHJcbiAgICAgIHRoaXMuZGlzcGxheVBvc2l0aW9uID0gZmFsc2U7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHdpbmRvdy5vcGVuKGxvY2F0aW9uLm9yaWdpbiArIHRoaXMucmV0dXJuTW9kZWwueWVzQWN0aW9uLCAnX3NlbGYnKTtcclxuICAgIH1cclxuICAgIHRoaXMubmF2Q29udHJvbGxlci5uYXZpZ2F0ZVJvb3QoW3RoaXMucmV0dXJuTW9kZWwueWVzQWN0aW9uXSk7XHJcbiAgfVxyXG5cclxuICByZWplY3QoKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucmV0dXJuTW9kZWwubm9BY3Rpb24gJiZcclxuICAgICAgdGhpcy5yZXR1cm5Nb2RlbC5ub0FjdGlvbi5zdWJzdHJpbmcoMCwgNCkgIT0gJy9jcC8nXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlUm9vdChbdGhpcy5yZXR1cm5Nb2RlbC5ub0FjdGlvbl0pO1xyXG4gICAgICB0aGlzLmRpc3BsYXlQb3NpdGlvbiA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgd2luZG93Lm9wZW4obG9jYXRpb24ub3JpZ2luICsgdGhpcy5yZXR1cm5Nb2RlbC5ub0FjdGlvbiwgJ19zZWxmJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRDb250ZXh0Um9vdCgpIHtcclxuICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuc3Vic3RyaW5nKFxyXG4gICAgICAwLFxyXG4gICAgICB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuaW5kZXhPZignLycsIDIpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkRmlsZShldjogYW55KSB7fVxyXG5cclxuICBnZXRUcmFuc2xhdGlvbihrZXk6IHN0cmluZywgZHluYW1pY1BhcmFtOiBhbnkpIHtcclxuICAgIGlmICghZHluYW1pY1BhcmFtKSB7XHJcbiAgICAgIHJldHVybiBrZXk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGR5bmFtaWNPYmogPSB7fTtcclxuXHJcbiAgICBsZXQgcGFyYW06IEtleVZhbHVlTW9kZWw7XHJcbiAgICBsZXQgcGFyYW1zOiBLZXlWYWx1ZU1vZGVsW107XHJcblxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZHluYW1pY1BhcmFtKSkge1xyXG4gICAgICBwYXJhbXMgPSBkeW5hbWljUGFyYW07XHJcbiAgICAgIHBhcmFtcy5mb3JFYWNoKChwcm0pID0+IHtcclxuICAgICAgICBkeW5hbWljT2JqW3BybS5rZXldID0gcHJtLnZhbHVlO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHBhcmFtID0gZHluYW1pY1BhcmFtO1xyXG4gICAgICBkeW5hbWljT2JqW3BhcmFtLmtleV0gPSBwYXJhbS52YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRyYW5zbGF0ZS51c2UoJ2VuJyk7XHJcbiAgICBsZXQgdHJhbnNsYXRlZFN0cmluZzogU3RyaW5nID0gJyc7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZS5zZXQoa2V5LCBrZXkpO1xyXG4gICAgdHJhbnNsYXRlZFN0cmluZyA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoa2V5LCBPYmplY3QuYXNzaWduKGR5bmFtaWNPYmopKTtcclxuICAgIHJldHVybiB0cmFuc2xhdGVkU3RyaW5nO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGV4dChvYmplY3QpIHtcclxuICAgIHJldHVybiBvYmplY3Q/LnRleHQgPyBvYmplY3Q/LnRleHQgOiBvYmplY3Q7XHJcbiAgfVxyXG5cclxuICB1bm1hc2soZXZlbnQpIHtcclxuICAgIHRoaXMubWFza0NsYXNzID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBtYXNrKGV2ZW50KSB7XHJcbiAgICB0aGlzLm1hc2tDbGFzcyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBkYXRlSW5wdXQoZXZlbnQpIHtcclxuICAgIGxldCBjdXJyZW50VmFsdWU6IHN0cmluZyA9IGV2ZW50LnNyY0VsZW1lbnQudmFsdWU7XHJcbiAgICBpZiAoY3VycmVudFZhbHVlKSB7XHJcbiAgICAgIGlmIChjdXJyZW50VmFsdWUubGVuZ3RoID09IDIgJiYgY3VycmVudFZhbHVlLmNoYXJBdCgyKSAhPSAnLycpIHtcclxuICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSBjdXJyZW50VmFsdWUgKyAnLyc7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGN1cnJlbnRWYWx1ZS5sZW5ndGggPT0gNSAmJiBjdXJyZW50VmFsdWUuY2hhckF0KDUpICE9ICcvJykge1xyXG4gICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IGN1cnJlbnRWYWx1ZSArICcvJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hlY2tGb3JWYWx1ZUNoYW5nZShldmVudCkge1xyXG4gICAgaWYgKHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YSkge1xyXG4gICAgICBsZXQgY29tcERhdGE6IFZhbHVlQ2hhbmdlQ29tcG9uZW50TW9kZWwgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgIHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YVxyXG4gICAgICApO1xyXG4gICAgICBsZXQgY3VycmVudFZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xyXG4gICAgICBsZXQgb3JpZ2luYWxWYWx1ZSA9IHRoaXMuZm9ybS5nZXQoY29tcERhdGEub3JpZ2luYWxWYWx1ZUNvbnRyb2wpPy52YWx1ZTtcclxuICAgICAgbGV0IGZvcm1Db250cm9sVG9VcGRhdGU6IEFic3RyYWN0Q29udHJvbCA9IHRoaXMuZm9ybS5nZXQoXHJcbiAgICAgICAgY29tcERhdGEuZm9ybUNvbnRyb2xUb1VwZGF0ZVxyXG4gICAgICApO1xyXG4gICAgICBmb3JtQ29udHJvbFRvVXBkYXRlLnBhdGNoVmFsdWUoJ04nKTtcclxuICAgICAgZm9ybUNvbnRyb2xUb1VwZGF0ZS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIHRoaXMuZm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIHRoaXMuZHluYW1pY1BhcmFtID0gdGhpcy5keW5hbWljUGFyYW0gPyB0aGlzLmR5bmFtaWNQYXJhbSA6IFtdO1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmR5bmFtaWNQYXJhbSkpIHtcclxuICAgICAgICB0aGlzLmR5bmFtaWNQYXJhbS5wdXNoKHtcclxuICAgICAgICAgIGtleTogdGhpcy5xdWVzdGlvbi5uYW1lLFxyXG4gICAgICAgICAgdmFsdWU6IGN1cnJlbnRWYWx1ZSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmR5bmFtaWNQYXJhbVt0aGlzLnF1ZXN0aW9uLm5hbWVdID0gY3VycmVudFZhbHVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjdXJyZW50VmFsdWUgIT0gb3JpZ2luYWxWYWx1ZSkge1xyXG4gICAgICAgIGZvcm1Db250cm9sVG9VcGRhdGUucGF0Y2hWYWx1ZSgnWScpO1xyXG4gICAgICAgIHRoaXMub25EeW5hbWljUGFyYW1VcGRhdGUuZW1pdCh0aGlzLmR5bmFtaWNQYXJhbSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZm9ybUNvbnRyb2xUb1VwZGF0ZS5wYXRjaFZhbHVlKCdOJyk7XHJcbiAgICAgIH1cclxuICAgICAgZm9ybUNvbnRyb2xUb1VwZGF0ZS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRFbXBsb3llcihlbXBsb3llcjogRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQpIHtcclxuICAgIGlmICh0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGEpIHtcclxuICAgICAgbGV0IGNvbXBEYXRhOiBFbXBsb3llckFkZHJlc3NVcGRhdGVNb2RlbCA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgdGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhXHJcbiAgICAgICk7XHJcbiAgICAgIGxldCBhZGRyZXNzRmM6IEFic3RyYWN0Q29udHJvbCA9IHRoaXMuZm9ybS5nZXQoXHJcbiAgICAgICAgY29tcERhdGEuYWRkcmVzc0Zvcm1Db250cm9sTmFtZVxyXG4gICAgICApO1xyXG4gICAgICBsZXQgZW1wSWRGYzogQWJzdHJhY3RDb250cm9sID0gdGhpcy5mb3JtLmdldChcclxuICAgICAgICBjb21wRGF0YS5lbXBsb3llcklkRm9ybUNvbnRyb2xOYW1lXHJcbiAgICAgICk7XHJcbiAgICAgIGVtcElkRmMuc2V0VmFsdWUoZW1wbG95ZXIuZW1wbG95ZXJJZCA/IGVtcGxveWVyLmVtcGxveWVySWQgOiAnLTEnKTtcclxuICAgICAgYWRkcmVzc0ZjLnNldFZhbHVlKHtcclxuICAgICAgICBjb3VudHJ5OiBlbXBsb3llci5jb3VudHJ5LFxyXG4gICAgICAgIGNpdHk6IGVtcGxveWVyLmNpdHksXHJcbiAgICAgICAgemlwOiBlbXBsb3llci56aXAsXHJcbiAgICAgICAgc3RyZWV0QWRkcmVzczogZW1wbG95ZXIuYWRkcmVzc0Rpc3BsYXlWYWwsXHJcbiAgICAgICAgc3RhdGU6IGVtcGxveWVyLnN0YXRlLFxyXG4gICAgICAgIG9wdGlvbmFsQWRkcmVzczogbnVsbCxcclxuICAgICAgICBjb3VudHk6IG51bGwsXHJcbiAgICAgICAgdG93bjogbnVsbCxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldEVtcGxveWVyKCkge1xyXG4gICAgaWYgKHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YSkge1xyXG4gICAgICBsZXQgY29tcERhdGE6IEVtcGxveWVyQWRkcmVzc1VwZGF0ZU1vZGVsID0gSlNPTi5wYXJzZShcclxuICAgICAgICB0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGFcclxuICAgICAgKTtcclxuICAgICAgbGV0IGFkZHJlc3NGYzogQWJzdHJhY3RDb250cm9sID0gdGhpcy5mb3JtLmdldChcclxuICAgICAgICBjb21wRGF0YS5hZGRyZXNzRm9ybUNvbnRyb2xOYW1lXHJcbiAgICAgICk7XHJcbiAgICAgIGxldCBlbXBJZEZjOiBBYnN0cmFjdENvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KFxyXG4gICAgICAgIGNvbXBEYXRhLmVtcGxveWVySWRGb3JtQ29udHJvbE5hbWVcclxuICAgICAgKTtcclxuICAgICAgZW1wSWRGYy5zZXRWYWx1ZSgnLTEnKTtcclxuICAgICAgYWRkcmVzc0ZjLnNldFZhbHVlKHtcclxuICAgICAgICBjb3VudHJ5OiBudWxsLFxyXG4gICAgICAgIGNpdHk6IG51bGwsXHJcbiAgICAgICAgemlwOiBudWxsLFxyXG4gICAgICAgIHN0cmVldEFkZHJlc3M6IG51bGwsXHJcbiAgICAgICAgc3RhdGU6IG51bGwsXHJcbiAgICAgICAgb3B0aW9uYWxBZGRyZXNzOiBudWxsLFxyXG4gICAgICAgIGNvdW50eTogbnVsbCxcclxuICAgICAgICB0b3duOiBudWxsLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldEZvcm1Db250cm9sVmFsdWUoZWxlbWVudE5hbWUsIGVsZW1lbnRWYWx1ZSkge1xyXG4gICAgaWYgKHRoaXMuZm9ybS5jb250cm9sc1tlbGVtZW50TmFtZV0pIHtcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW2VsZW1lbnROYW1lXS5wYXRjaFZhbHVlKGVsZW1lbnRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0VmFsdWUoKSB7XHJcbiAgICBpZiAodGhpcy5xdWVzdGlvbi5kZWZhdWx0VmFsdWUpIHtcclxuICAgICAgbGV0IHZhbHVlID0gdGhpcy5xdWVzdGlvbi5kZWZhdWx0VmFsdWU7XHJcbiAgICAgIGlmICh0aGlzLnF1ZXN0aW9uLnR5cGUgPT0gJ2Ryb3Bkb3duJykge1xyXG4gICAgICAgIGNvbnN0IGNob2ljZTogc3RyaW5nID0gdGhpcy5xdWVzdGlvbi5kZWZhdWx0VmFsdWU7XHJcbiAgICAgICAgdmFyIGpzb25PYmplY3Q6IENob2ljZXMgPSBKU09OLnBhcnNlKGNob2ljZSk7XHJcbiAgICAgICAgdGhpcy5zZXRGb3JtQ29udHJvbFZhbHVlKFxyXG4gICAgICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lLFxyXG4gICAgICAgICAgdGhpcy5xdWVzdGlvbi5jaG9pY2VzLmZpbHRlcigoYykgPT4gYy52YWx1ZSA9PSBqc29uT2JqZWN0LnZhbHVlKVswXVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZXRGb3JtQ29udHJvbFZhbHVlKHRoaXMucXVlc3Rpb24ubmFtZSwgdmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtb2RpZnlDYWxlbmRhckF0dHJpYnV0ZXMoKSB7XHJcbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSB0aGlzLnBDYWxlbmRhci5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXHJcbiAgICAgICdwLWNhbGVuZGFyIFthcmlhLWNvbnRyb2xzXSdcclxuICAgICk7XHJcbiAgICBpbnB1dEVsZW1lbnQuZm9yRWFjaCgoZWxlbWVudDogSFRNTElucHV0RWxlbWVudCkgPT4ge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbGVtZW50LCAnYXJpYS1jb250cm9scycsIHRoaXMucXVlc3Rpb24ubmFtZSk7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsZW1lbnQsICdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFJlcXVpcmVkVmFsaWRhdGlvbk1lc3NhZ2UoKXtcclxuICAgIGlmKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibGFuZ3VhZ2VcIikgPT09IFwiZXNcIil7XHJcbiAgICAgIHJldHVybiAncmVxdWVyaWRvJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAncmVxdWlyZWQnO1xyXG4gICAgfVxyXG4gIH1cclxufSIsIjxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCIgW2lkXT1cIidxdWVzdGlvbi1kaXYtJyArIHF1ZXN0aW9uLm5hbWVcIj5cclxuICA8cC1kaWFsb2cgKm5nSWY9XCJkaXNwbGF5UG9zaXRpb25cIiBbKHZpc2libGUpXT1cImRpc3BsYXlQb3NpdGlvblwiIFtwb3NpdGlvbl09XCJwb3NpdGlvblwiXHJcbiAgICBbbW9kYWxdPVwidHJ1ZVwiIFticmVha3BvaW50c109XCJ7JzEyMDBweCc6ICc2NjBweCcsICc5OTJweCc6ICc2NjBweCcsICc3NjhweCc6ICc2NjBweCcsICc1NzZweCc6ICcxMDB2dyd9XCIgW3N0eWxlXT1cInt3aWR0aDogJzQ1dncnfVwiXHJcbiAgICBbYmFzZVpJbmRleF09XCI1MDAwXCIgW2RyYWdnYWJsZV09XCJmYWxzZVwiIFtyZXNpemFibGVdPVwiZmFsc2VcIiBhcHBlbmRUbz1cImJvZHlcIiBjbG9zZU9uRXNjYXBlPVwiZmFsc2VcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+XHJcblxyXG4gICAgPGg0IGNsYXNzPVwiaGVhZGluZyBpb24tcGFkZGluZy1sZWZ0XCI+XHJcbiAgICAgIHt7cG9wVXBIZWFkZXJ9fVxyXG4gICAgPC9oND5cclxuICAgIDxwPnt7cG9wVXBUZXh0fX1cclxuICAgIDwvcD5cclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmb290ZXJcIj5cclxuICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiICpuZ0lmPVwicG9wVXBOb0FjdGlvbkxhYmVsXCIgc2l6ZT1cInNtYWxsXCIgdHlwZT1cInN1Ym1pdFwiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cInJlamVjdCgpXCI+XHJcbiAgICAgICAge3twb3BVcE5vQWN0aW9uTGFiZWx9fVxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgKm5nSWY9XCJwb3BVcFllc0FjdGlvbkxhYmVsXCIgc2l6ZT1cInNtYWxsXCIgdHlwZT1cInN1Ym1pdFwiIGZpbGw9XCJzb2xpZFwiIChjbGljayk9XCJhY2NlcHQoKVwiPlxyXG4gICAgICAgIHt7cG9wVXBZZXNBY3Rpb25MYWJlbH19XHJcbiAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvcC1kaWFsb2c+XHJcbiAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCIgKm5nSWY9XCIhZm9yU2NyZWVuUXVlc3Rpb25uYWlyZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlxyXG4gICAgPGxhYmVsIFthdHRyLmZvcl09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5pbmRlbnQ9PT0xICYmIHF1ZXN0aW9uLnR5cGUhPSdodG1sJyAmJiBxdWVzdGlvbi50eXBlIT0naGlkZGVuJyAmJiBxdWVzdGlvbi50eXBlIT0nbGFiZWwnXCI+XHJcbiAgICAgIDxzcGFuIFtpbm5lckh0bWxdPVwicXVlc3Rpb24udGl0bGUgfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbSB8IHRydXN0SHRtbFwiPjwvc3Bhbj5cclxuICAgIDwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiXHJcbiAgICAqbmdJZj1cImZvclNjcmVlblF1ZXN0aW9ubmFpcmUgJiYgcXVlc3Rpb24uaW5kZW50PT09MSAmJiBxdWVzdGlvbi50eXBlIT0naHRtbCcgJiYgcXVlc3Rpb24udHlwZSE9J2hpZGRlbicgJiYgcXVlc3Rpb24uZGVzY3JpcHRpb24gJiYgcXVlc3Rpb24udHlwZSE9J3NpbXBsZWNoZWNrYm94JyAmJiBxdWVzdGlvbi50eXBlIT0nbGFiZWwnICYmIHF1ZXN0aW9uLnR5cGUhPSdsYWJlbC13aXRoLW92ZXJsYXknXCI+XHJcbiAgICA8bGFiZWwgW2F0dHIuZm9yXT1cInF1ZXN0aW9uLm5hbWVcIj5cclxuICAgIDxzcGFuIFtpbm5lckh0bWxdPVwicXVlc3Rpb24udGl0bGUgfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbSB8IHRydXN0SHRtbFwiPjwvc3Bhbj5cclxuICA8L2xhYmVsPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIiBjbGFzcz1cImZvcm0tbGFiZWxcIlxyXG4gICAgKm5nSWY9XCJmb3JTY3JlZW5RdWVzdGlvbm5haXJlICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyAmJiAocXVlc3Rpb24uY3VzdG9tVGFnIT0nY29tcG9uZW50JyB8fCAocXVlc3Rpb24uY3VzdG9tVGFnPT0nY29tcG9uZW50JyAmJiBzaG93TGFiZWxGb3JDdXN0b21Db21wb25lbnQoKSkpICYmIHF1ZXN0aW9uLmluZGVudD09PTEgJiYgcXVlc3Rpb24udHlwZSE9J2h0bWwnICYmIHF1ZXN0aW9uLnR5cGUhPSdoaWRkZW4nICYmICFxdWVzdGlvbi5kZXNjcmlwdGlvbiAmJiBxdWVzdGlvbi50eXBlIT0nbGFiZWwnICYmIHF1ZXN0aW9uLnR5cGUhPSdzaW1wbGVjaGVja2JveCdcIj5cclxuICAgIDxsYWJlbCBbYXR0ci5mb3JdPVwicXVlc3Rpb24ubmFtZVwiPlxyXG4gICAgPHNwYW4gW2lubmVySHRtbF09XCJxdWVzdGlvbi50aXRsZSB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtIHwgdHJ1c3RIdG1sXCI+PC9zcGFuPlxyXG4gIDwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiXHJcbiAgICAqbmdJZj1cImZvclNjcmVlblF1ZXN0aW9ubmFpcmUgJiYgIXF1ZXN0aW9uLmN1c3RvbVRhZyAgJiYgcXVlc3Rpb24uaW5kZW50PT09MSAmJiBxdWVzdGlvbi50eXBlIT0naHRtbCcgJiYgcXVlc3Rpb24udHlwZSE9J2hpZGRlbicgJiYgIXF1ZXN0aW9uLmRlc2NyaXB0aW9uICYmIHF1ZXN0aW9uLnR5cGUhPSdzaW1wbGVjaGVja2JveCcgJiYgcXVlc3Rpb24udHlwZSE9J2xhYmVsJyAmJiBxdWVzdGlvbi50eXBlIT0nbGFiZWwtd2l0aC1vdmVybGF5J1wiPlxyXG4gICAgPGxhYmVsIFthdHRyLmZvcl09XCJxdWVzdGlvbi5uYW1lXCI+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cInF1ZXN0aW9uLnRpdGxlIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW0gfCB0cnVzdEh0bWxcIj48L3NwYW4+XHJcbiAgPC9sYWJlbD5cclxuICA8L2Rpdj5cclxuXHJcblxyXG5cclxuICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZz09PSdjb21wb25lbnQnICYmIHF1ZXN0aW9uLnR5cGUhPSdodG1sJyAmJiAhcXVlc3Rpb24uZGVzY3JpcHRpb25cIj5cclxuICAgIDxhcHAtZW1wbG95ZXItZ3JpZCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbZm9ybV09XCJmb3JtXCIgW2R5bmFtaWNQYXJhbV09XCJkeW5hbWljUGFyYW1cIlxyXG4gICAgICAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWVtcGxveWVyLWdyaWQnXCIgKG1vZGVsRGlzcGxheSk9XCJvbk1vZGVsRGlzcGxheSgkZXZlbnQpXCI+PC9hcHAtZW1wbG95ZXItZ3JpZD5cclxuICAgIDxhcHAtbGVnYWwtZGlzY2xhaW1hciAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWxlZ2FsLWRpc2NsYWltYXInXCJcclxuICAgICAgW2NvbXBvbmVudERhdGFdPVwicXVlc3Rpb24uY29tcG9uZW50RGF0YVwiIChhY2NlcHRlZCk9XCJvbkFjY2VwdGVkKCRldmVudClcIiBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIiBbZm9ybV09XCJmb3JtXCI+XHJcbiAgICA8L2FwcC1sZWdhbC1kaXNjbGFpbWFyPlxyXG4gICAgPG1vbmV5LWV4cGVjdCAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nbW9uZXktZXhwZWN0J1wiPjwvbW9uZXktZXhwZWN0PlxyXG4gICAgPGFwcC1jYXB0Y2hhIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtY2FwdGNoYSdcIj48L2FwcC1jYXB0Y2hhPlxyXG5cclxuICAgIDxhcHAtZmlsZS11cGxvYWRlciBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWZpbGUtdXBsb2FkZXInXCI+XHJcbiAgICA8L2FwcC1maWxlLXVwbG9hZGVyPlxyXG4gICAgPGFwcC1hZGRyZXNzIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFtmcm9tUG9wdXBdPVwiZmFsc2VcIiBbY291bnR5UmVxdWlyZWRdPVwicXVlc3Rpb24uY291bnR5UmVxdWlyZWRcIlxyXG4gICAgICAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWFkZHJlc3MnXCIgI2FkZHJlc3MgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiPiA8L2FwcC1hZGRyZXNzPlxyXG4gICAgPGFwcC1iYW5rLWRldGFpbHMgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1iYW5rLWRldGFpbHMnXCIgI2JhbmtkdGxzPlxyXG4gICAgPC9hcHAtYmFuay1kZXRhaWxzPlxyXG4gICAgPGFwcC1yZXF1YWxpZnktbGlmdC1wcmV2aW91cy1pc3N1ZXMgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1yZXF1YWxpZnktbGlmdC1wcmV2aW91cy1pc3N1ZXMnXCJcclxuICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFtjb21wb25lbnREYXRhXT1cInF1ZXN0aW9uLmNvbXBvbmVudERhdGFcIiBbZm9ybV09XCJmb3JtXCIgPlxyXG4gICAgPC9hcHAtcmVxdWFsaWZ5LWxpZnQtcHJldmlvdXMtaXNzdWVzPiBcclxuICAgIDxhcHAtZGVwZW5kZW50LWdyaWQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1kZXBlbmRlbnQtZ3JpZCdcIj48L2FwcC1kZXBlbmRlbnQtZ3JpZD5cclxuICAgIDxhcHAtd2Vla2x5LWNlcnQtZW1wbG95ZXItZ3JpZCAjd2NFbXBsb3llckdyaWQgW2R5bmFtaWNQYXJhbV09XCJkeW5hbWljUGFyYW1cIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLXdlZWtseS1jZXJ0LWVtcGxveWVyLWdyaWQnXCI+PC9hcHAtd2Vla2x5LWNlcnQtZW1wbG95ZXItZ3JpZD5cclxuICAgIDxhcHAtc2VhcmNoLWVtcGxveWVyIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIGVtcFR5cGU9XCJSRUdcIiAob25Gb3VuZCk9XCJzZXRFbXBsb3llcigkZXZlbnQpXCIgXHJcbiAgICAob25FbXB0eSk9XCJyZXNldEVtcGxveWVyKClcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLXNlYXJjaC1lbXBsb3llcidcIj48L2FwcC1zZWFyY2gtZW1wbG95ZXI+XHJcbiAgICA8YXBwLWFkZC1wYXJ0aWNpcGFudCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWFkZC1wYXJ0aWNpcGFudCdcIj4gPC9hcHAtYWRkLXBhcnRpY2lwYW50PlxyXG4gICAgPGFwcC1hZGQtcGF5bWVudCBbcG90ZW50aWFsSXNzdWVJZF09XCJwb3RlbnRpYWxJc3N1ZUlkXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1hZGQtcGF5bWVudCdcIj48L2FwcC1hZGQtcGF5bWVudD5cclxuICAgIDxhcHAtbGluayBbaXNSZXF1aXJlZF09XCJxdWVzdGlvbi5pc1JlcXVpcmVkXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1saW5rJ1wiIFt0ZXh0XT1cImxpbmtDb21wb25lbnREYXRhPy50ZXh0XCIgW3VyaV09XCJsaW5rQ29tcG9uZW50RGF0YT8udXJpXCIgW2V4dGVybmFsVXJsXT1cImxpbmtDb21wb25lbnREYXRhPy5leHRlcm5hbFVybFwiPjwvYXBwLWxpbms+XHJcbiAgICA8YXBwLXNpZ24tc3NuIFtpc1JlcXVpcmVkXT1cInF1ZXN0aW9uLmlzUmVxdWlyZWRcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLXNpZ24tc3NuJ1wiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIj48L2FwcC1zaWduLXNzbj5cclxuICAgIDxhcHAtam9iLXRpdGxlIFtjb250cm9sXT1cImZvcm0uY29udHJvbHNbcXVlc3Rpb24ubmFtZV1cIiAgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1qb2ItdGl0bGUnXCIgI2pvYlRpdGxlPiA8L2FwcC1qb2ItdGl0bGU+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5pbmRlbnQhPTEgJiYgcXVlc3Rpb24udHlwZSE9J2h0bWwnICYmIHF1ZXN0aW9uLnR5cGUhPSdsYWJlbCcgJiYgcXVlc3Rpb24udHlwZSE9J2hpZGRlbidcIiBjbGFzcz1cImZvcm0tbGFiZWxcIiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cInF1ZXN0aW9uLnRpdGxlIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW0gfCB0cnVzdEh0bWxcIj48L3NwYW4+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi50eXBlPT09J2h0bWwnXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgPGRpdiAgW2lubmVySFRNTF09XCJxdWVzdGlvbi5odG1sIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW0gfCB0cnVzdEh0bWxcIlxyXG4gICAgICBzdHlsZT1cImNvbG9yOnZhcigtLWlvbi1jb2xvci1tZWRpdW0tZ3JheSk7IHBhZGRpbmctdG9wOiAyMHB4O1wiIGNsYXNzPVwiaGVhZGluZ1wiPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDoxM3B4XCI+XHJcbiAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgXHJcbiAgPGRpdiBbbmdTd2l0Y2hdPVwicXVlc3Rpb24udHlwZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RleHQnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0nZGF0ZScgJiYgcXVlc3Rpb24ubmFtZSAmJiBxdWVzdGlvbi5uYW1lIT0nZG9iJ1wiPlxyXG4gICAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCIgI3BDYWxlbmRhcj5cclxuICAgICAgICAgICAgPHAtY2FsZW5kYXIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFttb250aE5hdmlnYXRvcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgeWVhclJhbmdlPVwiMTkwMToyMDk5XCIgW3Nob3dJY29uXT1cInRydWVcIiBbbWluRGF0ZV09XCJzaG93TWluRGF0ZSA/IG1pbkRhdGUgOiBudWxsXCJcclxuICAgICAgICAgICAgICBbbWF4RGF0ZV09XCJzaG93TWF4RGF0ZSA/IG1heERhdGUgOiBudWxsXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCIgYXBwZW5kVG89XCJib2R5XCIgZGF0YVR5cGU9XCJzdHJpbmdcIlxyXG4gICAgICAgICAgICAgIChvbkJsdXIpPVwidmFsaWRhdGUocXVlc3Rpb24pXCIgKG9uU2VsZWN0KT1cInZhbGlkYXRlKHF1ZXN0aW9uKVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIFxyXG4gICAgICAgICAgICAgIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCIgW2ljb25BcmlhTGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj5cclxuICAgICAgICAgICAgPC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5pbnB1dFR5cGUgJiYgcXVlc3Rpb24uaW5wdXRUeXBlPT09J2RhdGUnICYmIHF1ZXN0aW9uLm5hbWUgJiYgcXVlc3Rpb24ubmFtZT09PSdkb2InXCI+XHJcbiAgICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIiAjcENhbGVuZGFyPlxyXG4gICAgICAgICAgICA8cC1jYWxlbmRhciBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCIgW21vbnRoTmF2aWdhdG9yXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwNTBcIiBbc2hvd0ljb25dPVwidHJ1ZVwiIFttaW5EYXRlXT1cIm1pbkRhdGVET0JcIlxyXG4gICAgICAgICAgICAgIFttYXhEYXRlXT1cIm1heERhdGVET0JcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIiBhcHBlbmRUbz1cImJvZHlcIiBkYXRhVHlwZT1cInN0cmluZ1wiXHJcbiAgICAgICAgICAgICAgKG9uQmx1cik9XCJibHVyRE9CKHF1ZXN0aW9uKVwiIChvblNlbGVjdCk9XCJ2YWxpZGF0ZShxdWVzdGlvbilcIiBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiBcclxuICAgICAgICAgICAgICAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiIFtpY29uQXJpYUxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+XHJcbiAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0ndGV4dCcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZz09PSdzc24nXCJcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxwLWlucHV0TWFzayBhdXRvY29tcGxldGU9XCJvZmZcIiAgW2NsYXNzLmhpZGUtY29udGVudF09XCJtYXNrQ2xhc3NcIiBtYXNrPVwiOTk5LTk5LTk5OTlcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCI5OTktOTktOTk5OVwiIChvbkNvbXBsZXRlKT1cInZhbGlkYXRlKHF1ZXN0aW9uKVwiIChvbkZvY3VzKT1cInVubWFzaygkZXZlbnQpXCIgKG9uQmx1cik9XCJtYXNrKCRldmVudClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+XHJcbiAgICAgICAgICA8L3AtaW5wdXRNYXNrPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0ndGV4dCcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZz09PSdlYW4nXCJcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxwLWlucHV0TWFzayBhdXRvY29tcGxldGU9XCJvZmZcIiAgbWFzaz1cIjk5LTk5OTk5LTktOTlcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCI5OS05OTk5OS05LTk5XCIgW3ZhbHVlXT1cIjgxLTAwNTg2LTAtMDFcIiAob25Db21wbGV0ZSk9XCJ2YWxpZGF0ZShxdWVzdGlvbilcIj5cclxuICAgICAgICAgIDwvcC1pbnB1dE1hc2s+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0JyAmJiBxdWVzdGlvbi5jdXN0b21UYWcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnPT09J2R1ZWFtdCdcIlxyXG4gICAgICAgICAgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPHAtaW5wdXROdW1iZXIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIG1vZGU9XCJkZWNpbWFsXCIgbG9jYWxlPVwiZW4tVVNcIlxyXG4gICAgICAgICAgICBbbWluRnJhY3Rpb25EaWdpdHNdPVwiMlwiIFthcmlhTGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuXHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5pbnB1dFR5cGUgJiYgcXVlc3Rpb24uaW5wdXRUeXBlPT09J3RleHQnICYmICghcXVlc3Rpb24uY3VzdG9tVGFnICB8fCAgcXVlc3Rpb24uY3VzdG9tVGFnPT09J09wdGlvbmFsJykgJiYgIXF1ZXN0aW9uLmlzUmVxdWlyZWRcIlxyXG4gICAgICAgICAgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCJxdWVzdGlvbi5zaXplICYmIHF1ZXN0aW9uLm1heExlbmd0aFwiXHJcbiAgICAgICAgICAgIFttYXhMZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoXCIgcGxhY2Vob2xkZXI9J3t7XCJjb21tb24ub3B0aW9uYWxcIiB8IHRyYW5zbGF0ZX19JyBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIHBJbnB1dFRleHRcclxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiLz5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwicXVlc3Rpb24uc2l6ZSAmJiAhcXVlc3Rpb24ubWF4TGVuZ3RoXCIgIHBsYWNlaG9sZGVyPSd7e1wiY29tbW9uLm9wdGlvbmFsXCIgfCB0cmFuc2xhdGV9fSdcclxuICAgICAgICAgICAgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIi8+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cIiFxdWVzdGlvbi5zaXplICYmIHF1ZXN0aW9uLm1heExlbmd0aFwiIFttYXhMZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9J3t7XCJjb21tb24ub3B0aW9uYWxcIiB8IHRyYW5zbGF0ZX19JyBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgLz5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwiIXF1ZXN0aW9uLnNpemUgJiYgIXF1ZXN0aW9uLm1heExlbmd0aFwiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgcElucHV0VGV4dFxyXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBwbGFjZWhvbGRlcj0ne3tcImNvbW1vbi5vcHRpb25hbFwiIHwgdHJhbnNsYXRlfX0nIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIi8+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS1Vc2VyIE5hbWUtLT5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0JyAmJiAhcXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmlzUmVxdWlyZWQgICYmICFjaGVja0Zsb3dLZXkoKVwiXHJcbiAgICAgICAgICBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cInF1ZXN0aW9uLnNpemUgJiYgcXVlc3Rpb24ubWF4TGVuZ3RoXCIgXHJcbiAgICAgICAgICAgIFttYXhMZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoXCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBcclxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiLz5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwicXVlc3Rpb24uc2l6ZSAmJiAhcXVlc3Rpb24ubWF4TGVuZ3RoXCIgIFtpZF09XCJxdWVzdGlvbi5uYW1lXCJcclxuICAgICAgICAgICAgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiLz5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwiIXF1ZXN0aW9uLnNpemUgJiYgcXVlc3Rpb24ubWF4TGVuZ3RoXCIgW21heExlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGhcIlxyXG4gICAgICAgICAgICBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIi8+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cIiFxdWVzdGlvbi5zaXplICYmICFxdWVzdGlvbi5tYXhMZW5ndGhcIiBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIHBJbnB1dFRleHRcclxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIi8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5pbnB1dFR5cGUgJiYgcXVlc3Rpb24uaW5wdXRUeXBlPT09J3RleHQnICYmICFxdWVzdGlvbi5jdXN0b21UYWcgJiYgcXVlc3Rpb24uaXNSZXF1aXJlZCAmJiBjaGVja0Zsb3dLZXkoKVwiXHJcbiAgICAgICAgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwicXVlc3Rpb24uc2l6ZSAmJiBxdWVzdGlvbi5tYXhMZW5ndGhcIiBcclxuICAgICAgICAgIFttYXhMZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoXCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbZGlzYWJsZWRdPVwiIXBob25lVmVyaWZpZWRcIiBbYXV0b2NvbXBsZXRlXT1cInF1ZXN0aW9uPy5uYW1lLmluY2x1ZGVzKCdzZWNBbnMnKT8nb2ZmJzogJ29uJ1wiLz5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cInF1ZXN0aW9uLnNpemUgJiYgIXF1ZXN0aW9uLm1heExlbmd0aFwiICBbaWRdPVwicXVlc3Rpb24ubmFtZVwiXHJcbiAgICAgICAgICBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbZGlzYWJsZWRdPVwiIXBob25lVmVyaWZpZWRcIi8+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCIhcXVlc3Rpb24uc2l6ZSAmJiBxdWVzdGlvbi5tYXhMZW5ndGhcIiBbbWF4TGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aFwiXHJcbiAgICAgICAgICBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtkaXNhYmxlZF09XCIhcGhvbmVWZXJpZmllZFwiLz5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cIiFxdWVzdGlvbi5zaXplICYmICFxdWVzdGlvbi5tYXhMZW5ndGhcIiBbaWRdPVwicXVlc3Rpb24ubmFtZVwiICBwSW5wdXRUZXh0XHJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtkaXNhYmxlZF09XCIhcGhvbmVWZXJpZmllZFwiLz5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IFxyXG4gICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5pbnB1dFR5cGUgICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0J1xyXG4gICAgICAgICAgICAgICAgICAmJiBxdWVzdGlvbi5jdXN0b21UYWcgICYmIHF1ZXN0aW9uLmN1c3RvbVRhZy5pbmNsdWRlcygnZmlyc3ROYW1lJykgJiYgY2hlY2tGbG93S2V5KCkgXCI+XHJcbiAgICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW21heExlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGhcIiBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBcclxuICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAgJiYgcXVlc3Rpb24uaW5wdXRUeXBlPT09J3RleHQnXHJcbiAgICAgICAgICAgICAgICAmJiBxdWVzdGlvbi5jdXN0b21UYWcgICYmIHF1ZXN0aW9uLmN1c3RvbVRhZy5pbmNsdWRlcygnbGFzdE5hbWUnKSAmJiBjaGVja0Zsb3dLZXkoKSBcIj5cclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICBbbWF4TGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aFwiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIi8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIXF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5jdXN0b21UYWcgJiYgICFxdWVzdGlvbi5jdXN0b21UYWcuaW5jbHVkZXMoJ3Bob25lJylcIlxyXG4gICAgICAgICAgW25nU3R5bGVdPVwieydwYWRkaW5nLWxlZnQucHgnOiBxdWVzdGlvbi5pbmRlbnQqMTB9XCIgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCIvPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5jdXN0b21UYWcuaW5jbHVkZXMoJ3Bob25lJykgICYmICFjaGVja0Zsb3dLZXkoKVwiPlxyXG4gICAgICAgICAgPHAtaW5wdXRNYXNrIGF1dG9jb21wbGV0ZT1cIm9mZlwiICBtYXNrPVwiOTk5LTk5OS05OTk5XCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24uaXNSZXF1aXJlZCA/ICc5OTktOTk5LTk5OTknIDogKCdjb21tb24ub3B0aW9uYWwnIHwgdHJhbnNsYXRlKVwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0J1wiIChvbkJsdXIpPVwiY2hlY2tGb3JWYWx1ZUNoYW5nZSgkZXZlbnQpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPlxyXG4gICAgICAgICAgPC9wLWlucHV0TWFzaz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZy5pbmNsdWRlcygncGhvbmUnKSAmJiBjaGVja0Zsb3dLZXkoKVwiPlxyXG4gICAgICAgICAgPHAtaW5wdXRNYXNrIGF1dG9jb21wbGV0ZT1cIm9mZlwiICBtYXNrPVwiOTk5IDk5OS05OTk5XCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24uaXNSZXF1aXJlZCA/ICc5OTkgOTk5LTk5OTknIDogKCdjb21tb24ub3B0aW9uYWwnIHwgdHJhbnNsYXRlKVwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0J1wiIChvbkJsdXIpPVwiY2hlY2tGb3JWYWx1ZUNoYW5nZSgkZXZlbnQpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPlxyXG4gICAgICAgICAgPC9wLWlucHV0TWFzaz5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICBcclxuICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZy5pbmNsdWRlcygncGFzc3dvcmQnKVwiPlxyXG4gICAgICAgICAgPHAtcGFzc3dvcmQgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFt0b2dnbGVNYXNrXT1cInRydWVcIiBbbWF4TGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aFwiIHdlYWtMYWJlbD0ne3tcImNvbW1vbi5wYXNzd29yZC53ZWFrXCIgfCB0cmFuc2xhdGV9fSdcclxuICAgICAgICAgIHByb21wdExhYmVsPSAne3tcImNvbW1vbi5lbnRlci5wYXNzd29yZFwiIHwgdHJhbnNsYXRlfX0nIG1lZGl1bUxhYmVsPSd7e1wiY29tbW9uLnBhc3N3b3JkLndlYWtcIiB8IHRyYW5zbGF0ZX19JyBzdHJvbmdMYWJlbD0ne3tcImNvbW1vbi5wYXNzd29yZC5zdHJvbmdcIiB8IHRyYW5zbGF0ZX19JyBzdHJvbmdSZWdleD1cIl4oPz0uKlthLXpdKSg/PS4qW0EtWl0pKD89LipbMC05XSkoPz0uezgsfSkoPz0uKltfQCokISMuXSlcIiBbYXJpYUxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiPlxyXG4gICAgICAgICAgICAgIDxwLWRpdmlkZXI+PC9wLWRpdmlkZXI+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtdC0xXCIgc3R5bGU9XCJmb250LXNpemU6IHNtYWxsO1wiPnt7XCJjb21tb24ucGFzc3dvcmQubXVzdC5pbmNsdWRlXCIgfCB0cmFuc2xhdGV9fTwvcD5cclxuICAgICAgICAgICAgICA8dWwgc3R5bGU9XCJsaW5lLWhlaWdodDogMS4yNVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTI1cHg7IGZvbnQtc2l6ZTogc21hbGw7XCI+e3tcImNvbW1vbi5wYXNzd29yZC5vbmUudXBwZXJjYXNlXCIgfCB0cmFuc2xhdGV9fTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMjVweDsgZm9udC1zaXplOiBzbWFsbDtcIj57e1wiY29tbW9uLnBhc3N3b3JkLm9uZS5sb3dlcmNhc2VcIiB8IHRyYW5zbGF0ZX19PC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0yNXB4OyBmb250LXNpemU6IHNtYWxsO1wiPnt7XCJjb21tb24ucGFzc3dvcmQub25lLm51bWJlclwiIHwgdHJhbnNsYXRlfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTI1cHg7IGZvbnQtc2l6ZTogc21hbGw7XCI+e3tcImNvbW1vbi5wYXNzd29yZC50d28ubWVudGlvbmVkLmNoYXJcIiB8IHRyYW5zbGF0ZX19IDxiPl8gJiM2NDsgKiAkICEgIyAuPC9iPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMjVweDsgZm9udC1zaXplOiBzbWFsbDtcIj57e1wiY29tbW9uLnBhc3N3b3JkLmZvcnRlZW4uY2hhcnNcIiB8IHRyYW5zbGF0ZX19PC9saT5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgIDxwLWRpdmlkZXI+PC9wLWRpdmlkZXI+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtdC0xXCIgc3R5bGU9XCJmb250LXNpemU6IHNtYWxsO1wiPnt7XCJjb21tb24ucGFzc3dvcmQuc3VnZ2VzdGlvbi5oZWFkZXJcIiB8IHRyYW5zbGF0ZX19PC9wPlxyXG4gICAgICAgICAgICAgIDx1bCBzdHlsZT1cImxpbmUtaGVpZ2h0OiAxLjI1XCI+XHJcbiAgICAgICAgICAgICAgICA8bGkgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTI1cHg7IGZvbnQtc2l6ZTogc21hbGw7XCI+e3tcImNvbW1vbi5wYXNzd29yZC5zdWdnZXN0aW9uLm5hbWUuZW1haWwucGhvbmVcIiB8IHRyYW5zbGF0ZX19PC9saT5cclxuICAgICAgICAgICAgICAgIDxsaSBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMjVweDsgZm9udC1zaXplOiBzbWFsbDtcIj57e1wiY29tbW9uLnBhc3N3b3JkLnN1Z2dlc3Rpb24ua2lkLnBhcnRuZXIucGV0XCIgfCB0cmFuc2xhdGV9fTwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGkgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTI1cHg7IGZvbnQtc2l6ZTogc21hbGw7XCI+e3tcImNvbW1vbi5wYXNzd29yZC5zdWdnZXN0aW9uLm5hbWUub3IudXNlcmlkXCIgfCB0cmFuc2xhdGV9fTwvbGk+XHJcbiAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L3AtcGFzc3dvcmQ+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5jdXN0b21UYWcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnLmluY2x1ZGVzKCdmaWxldXBsb2FkJylcIj5cclxuICAgICAgICAgIDxhcHAtZmlsZS11cGxvYWRlciBbYWxsb3dlZEZpbGVUeXBlXT1cInF1ZXN0aW9uLmFsbG93ZWRGaWxlVHlwZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiXHJcbiAgICAgICAgICAgIFttYXhTaXplSW5NQl09XCJxdWVzdGlvbi5zaXplSW5NQlwiIFttdWx0aXBsZV09XCJxdWVzdGlvbi5tdWx0aXBsZVwiIFtub09mRmlsZXNUb1VwbG9hZF09XCJxdWVzdGlvbi5ub09GRmlsZXNcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+XHJcbiAgICAgICAgICA8L2FwcC1maWxlLXVwbG9hZGVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tRW1haWwgQWRkcmVzcy0tPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0ndGV4dCdcclxuICAgICAgICAgICAgICAgICAgJiYgcXVlc3Rpb24uY3VzdG9tVGFnICAmJiAocXVlc3Rpb24uY3VzdG9tVGFnIT0nc3NuJyAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdPcHRpb25hbCcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0nZmlsZXVwbG9hZCcgIFxyXG4gICAgICAgICAgICAgICAgICAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdwaG9uZScgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0nZmlyc3ROYW1lJyAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdsYXN0TmFtZScgICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyE9J2VhbicgICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyE9J2R1ZWFtdCcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0ncGFzc3dvcmQnKSAmJiBjaGVja0Zsb3dLZXkoKVwiPlxyXG4gICAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2Rpc2FibGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAoYmx1cik9XCJjaGVja0ZvclZhbHVlQ2hhbmdlKCRldmVudClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8ZGl2IFxyXG4gICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAgJiYgcXVlc3Rpb24uaW5wdXRUeXBlPT09J3RleHQnXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgcXVlc3Rpb24uY3VzdG9tVGFnICAmJiAocXVlc3Rpb24uY3VzdG9tVGFnIT0nc3NuJyAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdPcHRpb25hbCcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0nZmlsZXVwbG9hZCcgIFxyXG4gICAgICAgICAgICAgICAgICAgICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyE9J3Bob25lJyAgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0nZWFuJyAgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0nZHVlYW10JyAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdwYXNzd29yZCcpICYmICFjaGVja0Zsb3dLZXkoKVwiPlxyXG4gICAgICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIChibHVyKT1cImNoZWNrRm9yVmFsdWVDaGFuZ2UoJGV2ZW50KVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIi8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhcXVlc3Rpb24uaW5wdXRUeXBlICYmICFxdWVzdGlvbi5jdXN0b21UYWdcIiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbaWRdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uc2l6ZVwiICBwSW5wdXRUZXh0XHJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCIvPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cIiFxdWVzdGlvbi5zaXplXCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBcclxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCIvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS0gPC9pb24tY29sPlxyXG4gICAgPGlvbi1jb2wgc2l6ZT1cIjFcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLXRvcDogMTJweFwiPlxyXG4gICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgIDwvaW9uLWNvbD5cclxuICA8L2lvbi1yb3c+IC0tPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOjNweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NvbW1lbnQnXCI+XHJcbiAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiICpuZ0lmPVwicXVlc3Rpb24ubWF4TGVuZ3RoXCI+XHJcbiAgICAgICAgPHRleHRhcmVhIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgYXV0b1Jlc2l6ZT1cInRydWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIlxyXG4gICAgICAgICAgW21heExlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGhcIiBbcm93c109XCIzXCIgW2NvbHNdPVwiMzVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIj48L3RleHRhcmVhPlxyXG4gICAgICAgIDxkaXY+XHJcblxyXG4gICAgICAgICAgPHNtYWxsIHN0eWxlQ2xhc3M9XCJwLWQtYmxvY2tcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCI+e3txdWVzdGlvbi5kZXNjcmlwdGlvbn19PC9zbWFsbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIiAqbmdJZj1cIiFxdWVzdGlvbi5tYXhMZW5ndGhcIj5cclxuICAgICAgICA8dGV4dGFyZWEgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBhdXRvUmVzaXplPVwidHJ1ZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFtyb3dzXT1cIjNcIlxyXG4gICAgICAgICAgW2NvbHNdPVwiMzVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgPGRpdj5cclxuXHJcbiAgICAgICAgICA8c21hbGwgc3R5bGVDbGFzcz1cInAtZC1ibG9ja1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIj57e3F1ZXN0aW9uLmRlc2NyaXB0aW9ufX08L3NtYWxsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZHJvcGRvd24nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8cC1hdXRvQ29tcGxldGUgKm5nSWY9XCJmYWxzZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFtzdWdnZXN0aW9uc109XCJmaWx0ZXJSZXN1bHRcIiBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgICAoY29tcGxldGVNZXRob2QpPVwiZmlsdGVyVmFsdWUoJGV2ZW50LHF1ZXN0aW9uKVwiIGZpZWxkPVwidGV4dFwiIFtkcm9wZG93bl09XCJ0cnVlXCIgbWluTGVuZ3RoPVwiMVwiXHJcbiAgICAgICAgICAgIFtmb3JjZVNlbGVjdGlvbl09XCJ0cnVlXCIgKG9uU2VsZWN0KT1cIm9uU2VsZWN0KCRldmVudCxxdWVzdGlvbi5uYW1lKVwiIFtjb21wbGV0ZU9uRm9jdXNdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXZhbHVlIHBUZW1wbGF0ZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdj57e3ZhbHVlLnRleHR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9wLWF1dG9Db21wbGV0ZT5cclxuICAgICAgICAgIDxhcHAtZHJvcGRvd24gW29wdGlvbnNdPVwiZmlsdGVyUmVzdWx0XCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgIChvbkNoYW5nZSk9XCJvblNlbGVjdCgkZXZlbnQscXVlc3Rpb24ubmFtZSlcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIChvbkNsaWNrKT1cImZpbHRlclZhbHVlKCRldmVudCxxdWVzdGlvbilcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCJcclxuICAgICAgICAgIFthcmlhTGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj48L2FwcC1kcm9wZG93bj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj5cclxuICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncmFkaW9ncm91cCdcIj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj4gICAgICAgIFxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNoYXJlZC1yb3dcIiAqbmdJZj1cInF1ZXN0aW9uLm5hbWUgJiYgcXVlc3Rpb24ubmFtZSE9J3ZlcmlmaWNhdGlvbidcIj5cclxuICAgICAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJxdWVzdGlvbi5jaG9pY2VzXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIiAob25PcHRpb25DbGljayk9XCJvblJhZGlvT3B0aW9uQ2xpY2soJGV2ZW50LHF1ZXN0aW9uKVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiA+XHJcbiAgICAgICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24ubmFtZSAmJiBxdWVzdGlvbi5uYW1lPT09J3ZlcmlmaWNhdGlvbidcIj5cclxuICAgICAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIFtvcHRpb25zXT1cInF1ZXN0aW9uLmNob2ljZXNcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIChvbk9wdGlvbkNsaWNrKT1cImdlbmVyYXRlT3RwRm9yTmV3VXNlckNyZWF0aW9uKCRldmVudCxmb3JtKVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YXBwLW1mYTIgKm5nSWY9XCJpc090cE1vZGFsRW5hYmxlZFwiIFtkaXNwbGF5XT1cImlzT3RwTW9kYWxFbmFibGVkXCIgW3JldHVybmluZ1VzZXJdPVwiaXNSZXR1cm5pbmdVc2VyXCIgWyhmb3JtKV09XCJmb3JtXCIgKHN1Y2Nlc3MpPVwiZW5hYmxlRmllbGRzKClcIj48L2FwcC1tZmEyPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj5cclxuICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyJ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPHAtaW5wdXROdW1iZXIgZm9ybUNvbnRyb2xOYW1lPVwie3txdWVzdGlvbi5uYW1lfX1cIiBtb2RlPVwiZGVjaW1hbFwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbdXNlR3JvdXBpbmddPVwiZmFsc2VcIlxyXG4gICAgICAgICAgW21pbl09XCJtaW5WYWx1ZVwiIFttYXhdPVwibWF4VmFsdWVcIlxyXG4gICAgICAgICAgW3NpemVdPVwicXVlc3Rpb24uc2l6ZSA/IHF1ZXN0aW9uLnNpemUgOiBudWxsXCIgW21heGxlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGggPyBxdWVzdGlvbi5tYXhMZW5ndGggOiBudWxsXCIgW2FyaWFMYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOjNweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RlY2ltYWwnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8cC1pbnB1dE51bWJlciBmb3JtQ29udHJvbE5hbWU9XCJ7e3F1ZXN0aW9uLm5hbWV9fVwiIG1vZGU9XCJkZWNpbWFsXCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFt1c2VHcm91cGluZ109XCJmYWxzZVwiIFxyXG4gICAgICAgICAgW21pbkZyYWN0aW9uRGlnaXRzXT1cIjJcIiBbbWF4RnJhY3Rpb25EaWdpdHNdPVwiMlwiIFttaW5dPVwibWluVmFsdWVcIiBcclxuICAgICAgICAgIFttYXhdPVwibWF4VmFsdWVcIiBbc2l6ZV09XCJxdWVzdGlvbi5zaXplID8gcXVlc3Rpb24uc2l6ZSA6IG51bGxcIiAgW21heGxlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGggPyBxdWVzdGlvbi5tYXhMZW5ndGggOiBudWxsXCIgW2FyaWFMYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOjNweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2N1cnJlbmN5J1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPHAtaW5wdXROdW1iZXIgZm9ybUNvbnRyb2xOYW1lPVwie3txdWVzdGlvbi5uYW1lfX1cIiBtb2RlPVwiY3VycmVuY3lcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCIgW3VzZUdyb3VwaW5nXT1cImZhbHNlXCIgXHJcbiAgICAgICAgICBbbWluRnJhY3Rpb25EaWdpdHNdPVwiMlwiIFttYXhGcmFjdGlvbkRpZ2l0c109XCIyXCIgY3VycmVuY3k9XCJVU0RcIiBbbWluXT1cIm1pblZhbHVlXCIgXHJcbiAgICAgICAgICBbbWF4XT1cIm1heFZhbHVlXCIgW3NpemVdPVwicXVlc3Rpb24uc2l6ZSA/IHF1ZXN0aW9uLnNpemUgOiBudWxsXCIgIFttYXhsZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoID8gcXVlc3Rpb24ubWF4TGVuZ3RoIDogbnVsbFwiIFxyXG4gICAgICAgICAgW2FyaWFMYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6M3B4XCI+XHJcbiAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY2hlY2tib3gnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCIgY2xhc3M9XCJmb3JtZ3JvdXAtaW5saW5lXCI+XHJcbiAgICAgICAgICAgIDxwLWNoZWNrYm94IFtuYW1lXT1cInF1ZXN0aW9uLm5hbWUgKyAnLWdyb3VwJ1wiIFt2YWx1ZV09XCJjaG9pY2UudmFsdWVcIiBcclxuICAgICAgICAgICAgICBbbGFiZWxdPVwiY2hvaWNlLnRleHRcIiAqbmdGb3I9XCJsZXQgY2hvaWNlIG9mIHF1ZXN0aW9uLmNob2ljZXNcIiBbZm9ybUNvbnRyb2xdPVwiZm9ybS5jb250cm9sc1txdWVzdGlvbi5uYW1lXVwiXHJcbiAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cImFwcC1wLWNoZWNrYm94XCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZSArICctJyArIGNob2ljZS52YWx1ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj48L3AtY2hlY2tib3g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6M3B4XCI+XHJcbiAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ211bHRpY2hlY2tib3gnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICAgIDxwLWNoZWNrYm94IFtuYW1lXT1cInF1ZXN0aW9uLm5hbWUgKyAnLWdyb3VwJ1wiIFt2YWx1ZV09XCJjaG9pY2UudmFsdWVcIiBcclxuICAgICAgICAgICAgICBbbGFiZWxdPVwiY2hvaWNlLnRleHRcIiAqbmdGb3I9XCJsZXQgY2hvaWNlIG9mIHF1ZXN0aW9uLmNob2ljZXNcIiBbZm9ybUNvbnRyb2xdPVwiZm9ybS5jb250cm9sc1txdWVzdGlvbi5uYW1lXVwiXHJcbiAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cImFwcC1wLWNoZWNrYm94XCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZSArICctJyArIGNob2ljZS52YWx1ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj48L3AtY2hlY2tib3g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6M3B4XCI+XHJcbiAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3NpbmdsZXNlbGVjdGNoZWNrYm94J1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJxdWVzdGlvbi5jaG9pY2VzXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW211bHRpcGxlXT1mYWxzZVxyXG4gICAgICAgICAgICBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6M3B4XCI+XHJcbiAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3NpbXBsZWNoZWNrYm94J1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1jaGVja2JveFwiPlxyXG4gICAgICAgICAgPHAtY2hlY2tib3ggYmluYXJ5PVwidHJ1ZVwiIGlucHV0SWQ9XCJiaW5hcnlcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+PC9wLWNoZWNrYm94PlxyXG4gICAgICAgICAgPGxhYmVsIGZvcj1cImJpbmFyeVwiPnt7cXVlc3Rpb24udGl0bGV9fTwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6IDNweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkaXNwbGF5dGV4dGFzbGFiZWwnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGxhYmVsPnt7Z2V0VGV4dChmb3JtLmNvbnRyb2xzW3F1ZXN0aW9uLm5hbWVdLnZhbHVlKX19PC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIi8+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDJweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidsYWJlbCdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8bGFiZWw+e3txdWVzdGlvbi50aXRsZX19PC9sYWJlbD5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogMnB4XCI+XHJcbiAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidsYWJlbC13aXRoLW92ZXJsYXknXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW2Rpc3BsYXlUZXh0XT1cInF1ZXN0aW9uLnRpdGxlXCIgIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCIgW2Rpc3BsYXlBc0xhYmVsXT1cInRydWVcIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbGFiZWwtd2l0aC1saW5rJ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtkaXNwbGF5VGV4dF09XCJxdWVzdGlvbi50aXRsZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCIgW2xhYmVsV2l0aExpbmtdPVwidHJ1ZVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidsYWJlbC13aXRoLXBvcHVwJ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtkaXNwbGF5VGV4dF09XCJxdWVzdGlvbi50aXRsZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFtsYWJlbFdpdGhQb3B1cF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCIgW2xhYmVsV2l0aExpbmtdPVwidHJ1ZVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIFxyXG4gICAgPG5nLWNvbnRhaW5lciBjbGFzcz1cInJlc3BvbnNpdmVcIiAqbmdTd2l0Y2hDYXNlPVwiJ3BhbmVsJ1wiPlxyXG4gICAgICA8aW9uLXJvdz5cclxuICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIHF1ZXN0aW9uLmVsZW1lbnRzXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgKm5nSWY9XCJlbGVtZW50LmNvbEVsZW1lbnQ9PT0nQ09MMScgJiYgdmlzaWJsZUlmKGVsZW1lbnQudmlzaWJsZUlmLGVsZW1lbnQubmFtZSlcIlxyXG4gICAgICAgICAgICAgICAgW3NpemVYbF09XCJlbGVtZW50LnNpemVYTFwiIFtzaXplTGddPVwiZWxlbWVudC5zaXplTEdcIiBbc2l6ZU1kXT1cImVsZW1lbnQuc2l6ZU1EXCJcclxuICAgICAgICAgICAgICAgIFtvZmZzZXRNZF09XCJlbGVtZW50Lm9mZlNldE1EXCIgY2xhc3M9XCJjb2wtZml0LWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgIDxhcHAtcXVlc3Rpb24gW3F1ZXN0aW9uXT1cImVsZW1lbnRcIiBbZm9ybV09XCJmb3JtXCIgW2ZvclNjcmVlblF1ZXN0aW9ubmFpcmVdPVwiZm9yU2NyZWVuUXVlc3Rpb25uYWlyZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9hcHAtcXVlc3Rpb24+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBxdWVzdGlvbi5lbGVtZW50c1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sICpuZ0lmPVwiZWxlbWVudC5jb2xFbGVtZW50PT09J0NPTDInICYmIHZpc2libGVJZihlbGVtZW50LnZpc2libGVJZixlbGVtZW50Lm5hbWUpXCJcclxuICAgICAgICAgICAgICAgIFtzaXplWGxdPVwiZWxlbWVudC5zaXplWExcIiBbc2l6ZUxnXT1cImVsZW1lbnQuc2l6ZUxHXCIgW3NpemVNZF09XCJlbGVtZW50LnNpemVNRFwiXHJcbiAgICAgICAgICAgICAgICBbb2Zmc2V0TWRdPVwiZWxlbWVudC5vZmZTZXRNRFwiPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1xdWVzdGlvbiBbcXVlc3Rpb25dPVwiZWxlbWVudFwiIFtmb3JtXT1cImZvcm1cIiBbZm9yU2NyZWVuUXVlc3Rpb25uYWlyZV09XCJmb3JTY3JlZW5RdWVzdGlvbm5haXJlXCI+XHJcbiAgICAgICAgICAgICAgICA8L2FwcC1xdWVzdGlvbj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCIgKm5nSWY9XCJxdWVzdGlvbi50eXBlIT0ncGFuZWwnXCI+XHJcbiAgICA8c21hbGwgY2xhc3M9XCJwLWVycm9yXCIgKm5nSWY9XCJpc1ZhbGlkIT0nJ1wiIFtAcm93RXhwYW5zaW9uVHJpZ2dlcl09XCInYWN0aXZlJ1wiPnt7aXNWYWxpZCB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtfX08L3NtYWxsPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=