@reusa/ngx-reusa-app-lib 0.0.1310 → 0.0.1312

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 (589) hide show
  1. package/README.md +46 -46
  2. package/esm2022/lib/annimations/app-animations.mjs +1 -1
  3. package/esm2022/lib/components/add-employer/add-employer.component.mjs +2404 -1286
  4. package/esm2022/lib/components/add-participant/add-participant.component.mjs +159 -105
  5. package/esm2022/lib/components/add-payment/add-payment.component.mjs +59 -53
  6. package/esm2022/lib/components/add-wage/add-wage.component.mjs +161 -0
  7. package/esm2022/lib/components/address/address.component.mjs +285 -150
  8. package/esm2022/lib/components/address-popup/address-popup.component.mjs +97 -0
  9. package/esm2022/lib/components/address-suggestion/address-suggestion.component.mjs +289 -0
  10. package/esm2022/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.mjs +245 -0
  11. package/esm2022/lib/components/associate-ssn/associate-ssn.component.mjs +203 -0
  12. package/esm2022/lib/components/bank-details/bank-details.component.mjs +79 -219
  13. package/esm2022/lib/components/captcha/captcha.component.mjs +6 -6
  14. package/esm2022/lib/components/card/card.component.mjs +1 -1
  15. package/esm2022/lib/components/claim-info/claim-info.component.mjs +408 -0
  16. package/esm2022/lib/components/contact-us/contact-us.component.mjs +17 -43
  17. package/esm2022/lib/components/content/content.component.mjs +1 -1
  18. package/esm2022/lib/components/correspondence-download/correspondence-download.component.mjs +3 -9
  19. package/esm2022/lib/components/dashboard-card/dashboard-card.component.mjs +32 -4
  20. package/esm2022/lib/components/dependent-grid/dependent-grid.component.mjs +30 -15
  21. package/esm2022/lib/components/disclosure/disclosure.component.mjs +1 -1
  22. package/esm2022/lib/components/dropdown/dropdown.component.mjs +4 -4
  23. package/esm2022/lib/components/dropdown/dropdown.interface.mjs +1 -1
  24. package/esm2022/lib/components/dua-request-page/dua-request-page.component.mjs +596 -0
  25. package/esm2022/lib/components/dua-request-popup/dua-request-popup.component.mjs +356 -0
  26. package/esm2022/lib/components/email-update/email-update.component.mjs +63 -140
  27. package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +363 -560
  28. package/esm2022/lib/components/employer-info/employer-info.component.mjs +319 -0
  29. package/esm2022/lib/components/employer-pay/employer-pay.component.mjs +238 -0
  30. package/esm2022/lib/components/employer-pay-grid/employer-pay-grid.component.mjs +302 -0
  31. package/esm2022/lib/components/error/error.component.mjs +22 -5
  32. package/esm2022/lib/components/farm-usage/farm-usage.component.mjs +172 -0
  33. package/esm2022/lib/components/fav-menu/fav-menu.component.mjs +1 -1
  34. package/esm2022/lib/components/file-download/file-download.component.mjs +1 -1
  35. package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +178 -49
  36. package/esm2022/lib/components/footer/footer.component.mjs +94 -83
  37. package/esm2022/lib/components/gross-earnings/gross-earnings.component.mjs +201 -0
  38. package/esm2022/lib/components/header/header.component.mjs +440 -174
  39. package/esm2022/lib/components/help/help.component.mjs +1 -1
  40. package/esm2022/lib/components/history-page/history-page.component.mjs +571 -0
  41. package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +25 -36
  42. package/esm2022/lib/components/idme/idme.component.mjs +84 -0
  43. package/esm2022/lib/components/info/info.component.mjs +4 -12
  44. package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +16 -22
  45. package/esm2022/lib/components/job-title/job-title.component.mjs +92 -97
  46. package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +143 -513
  47. package/esm2022/lib/components/link/link.component.mjs +1 -1
  48. package/esm2022/lib/components/maintenance-detector/maintenance-detector.component.mjs +1 -1
  49. package/esm2022/lib/components/mask/mask.component.mjs +1 -1
  50. package/esm2022/lib/components/menu/menu.component.mjs +69 -100
  51. package/esm2022/lib/components/mfa/mfa.component.mjs +158 -287
  52. package/esm2022/lib/components/mfa-popup/mfa-popup.component.mjs +11 -18
  53. package/esm2022/lib/components/money-expect/money-expect.component.mjs +158 -54
  54. package/esm2022/lib/components/msg/msg.component.mjs +1 -1
  55. package/esm2022/lib/components/news/news.component.mjs +1 -1
  56. package/esm2022/lib/components/offline-add-employer/offline-add-employer.component.mjs +3661 -0
  57. package/esm2022/lib/components/offline-bank-details/offline-bank-details.component.mjs +258 -0
  58. package/esm2022/lib/components/offline-employer-grid/offline-employer-grid.component.mjs +853 -0
  59. package/esm2022/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.mjs +251 -0
  60. package/esm2022/lib/components/overlay-info/overlay-info.component.mjs +1 -1
  61. package/esm2022/lib/components/page/page.component.mjs +1 -1
  62. package/esm2022/lib/components/profile/profile.component.mjs +717 -353
  63. package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +108 -38
  64. package/esm2022/lib/components/proof-of-anything/proof-of-anything.component.mjs +261 -0
  65. package/esm2022/lib/components/proof-of-document-upload/proof-of-document-upload.component.mjs +560 -0
  66. package/esm2022/lib/components/questionnaire/AppValidators.mjs +296 -47
  67. package/esm2022/lib/components/questionnaire/FbConstants.mjs +1 -1
  68. package/esm2022/lib/components/questionnaire/account-success/account-success.page.mjs +110 -65
  69. package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +377 -173
  70. package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +76 -95
  71. package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +849 -1071
  72. package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +207 -667
  73. package/esm2022/lib/components/questionnaire/form-builder/form-builder.page.mjs +28 -22
  74. package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +116 -32
  75. package/esm2022/lib/components/questionnaire/question-base.mjs +1 -1
  76. package/esm2022/lib/components/questionnaire/question-control.service.mjs +2 -1
  77. package/esm2022/lib/components/questionnaire/question.service.mjs +5 -7
  78. package/esm2022/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +15 -29
  79. package/esm2022/lib/components/read-more/read-more.component.mjs +6 -6
  80. package/esm2022/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +457 -233
  81. package/esm2022/lib/components/scrollable-text/scrollable-text.component.mjs +25 -0
  82. package/esm2022/lib/components/search-employer/search-employer.component.mjs +155 -30
  83. package/esm2022/lib/components/select/select.component.mjs +5 -10
  84. package/esm2022/lib/components/sign-ssn/sign-ssn.component.mjs +3 -3
  85. package/esm2022/lib/components/sms/sms.component.mjs +336 -0
  86. package/esm2022/lib/components/ssn/ssn.component.mjs +1 -1
  87. package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +52 -72
  88. package/esm2022/lib/components/test/test.component.mjs +1 -1
  89. package/esm2022/lib/components/user-login/user-login.component.mjs +139 -357
  90. package/esm2022/lib/components/wage-calculator/wage-calculator.component.mjs +527 -0
  91. package/esm2022/lib/components/wage-grid/wage-grid.component.mjs +274 -0
  92. package/esm2022/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.mjs +147 -0
  93. package/esm2022/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.mjs +167 -0
  94. package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +613 -237
  95. package/esm2022/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +114 -59
  96. package/esm2022/lib/components/weekly-certification/weekly-certification.component.mjs +806 -0
  97. package/esm2022/lib/components/weekly-confirmation/confirmation.component.mjs +129 -0
  98. package/esm2022/lib/components/weekly-interim-confirmation/interim-confirmation.component.mjs +136 -0
  99. package/esm2022/lib/components/weekly-summary-v2/summary.component-v2.mjs +72 -0
  100. package/esm2022/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.mjs +50 -0
  101. package/esm2022/lib/components/weekly-work-search-counter/work-search-counter.component.mjs +92 -0
  102. package/esm2022/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.mjs +1190 -0
  103. package/esm2022/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.mjs +685 -0
  104. package/esm2022/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.mjs +524 -0
  105. package/esm2022/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.mjs +394 -0
  106. package/esm2022/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.mjs +640 -0
  107. package/esm2022/lib/directives/auto-focus/auto-focus.directive.mjs +1 -1
  108. package/esm2022/lib/directives/caps-lock.directive.mjs +1 -1
  109. package/esm2022/lib/directives/required-roles/required-roles.directive.mjs +1 -1
  110. package/esm2022/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.mjs +33 -0
  111. package/esm2022/lib/enums/AddressValidationResponseEnum.mjs +9 -0
  112. package/esm2022/lib/enums/AddressValidationSourceFunctionEnum.mjs +5 -0
  113. package/esm2022/lib/enums/EmailStatusEnum.mjs +1 -1
  114. package/esm2022/lib/guards/auth.guard.mjs +50 -2
  115. package/esm2022/lib/guards/no-login/no-login.guard.mjs +1 -1
  116. package/esm2022/lib/interceptors/error-interceptor/http-error-interceptor.mjs +51 -3
  117. package/esm2022/lib/interceptors/header-interceptor/http-header.interceptor.mjs +1 -1
  118. package/esm2022/lib/models/ActiveClaimModel.mjs +3 -0
  119. package/esm2022/lib/models/CountyModel.mjs +3 -0
  120. package/esm2022/lib/models/DuaAppDataModel.mjs +3 -0
  121. package/esm2022/lib/models/DuaRequestModel.mjs +3 -0
  122. package/esm2022/lib/models/DuaRetroWeeksComponentModel.mjs +6 -0
  123. package/esm2022/lib/models/EmployerDetailSearchResult.mjs +1 -1
  124. package/esm2022/lib/models/EmployerInfoComponentModel.mjs +4 -0
  125. package/esm2022/lib/models/EmployerPayInfoModel.mjs +6 -0
  126. package/esm2022/lib/models/ErrorModel.mjs +1 -1
  127. package/esm2022/lib/models/FarmUsageComponentModel.mjs +2 -0
  128. package/esm2022/lib/models/FileModel.mjs +1 -1
  129. package/esm2022/lib/models/GrossEarningsModel.mjs +3 -0
  130. package/esm2022/lib/models/HelpConstants.mjs +5 -0
  131. package/esm2022/lib/models/LexisNexisOtpDetailsResponseModel.mjs +3 -0
  132. package/esm2022/lib/models/LibConstants.mjs +45 -6
  133. package/esm2022/lib/models/NotificationModel.mjs +1 -1
  134. package/esm2022/lib/models/OtpAuthModel.mjs +1 -1
  135. package/esm2022/lib/models/PaymentComponentModel.mjs +1 -1
  136. package/esm2022/lib/models/ReasonSeparationRequestModel.mjs +3 -0
  137. package/esm2022/lib/models/RetroWeeksModel.mjs +3 -0
  138. package/esm2022/lib/models/SecurityQuestionAnswerModel.mjs +3 -0
  139. package/esm2022/lib/models/SendOtpRequestModel.mjs +3 -0
  140. package/esm2022/lib/models/TrendModel.mjs +1 -1
  141. package/esm2022/lib/models/UserDetailsModel.mjs +1 -1
  142. package/esm2022/lib/models/UserModel.mjs +1 -1
  143. package/esm2022/lib/models/VerifyOtpRequestModel.mjs +3 -0
  144. package/esm2022/lib/models/WageCalculatorModel.mjs +3 -0
  145. package/esm2022/lib/models/WageInfoModel.mjs +4 -0
  146. package/esm2022/lib/models/addressValidation/AddressRecommendationModel.mjs +3 -0
  147. package/esm2022/lib/models/addressValidation/AddressValidationRequestComponentModel.mjs +3 -0
  148. package/esm2022/lib/models/addressValidation/AddressValidationResponseComponentModel.mjs +3 -0
  149. package/esm2022/lib/models/addressValidation/AddressValidationReturnComponentModel.mjs +3 -0
  150. package/esm2022/lib/models/claimant/ClaimantModel.mjs +1 -1
  151. package/esm2022/lib/models/claimant/JobResultsData.mjs +1 -1
  152. package/esm2022/lib/models/claimant/MatchingJobs.mjs +1 -1
  153. package/esm2022/lib/models/claimant/ResetPasswordModel.mjs +1 -1
  154. package/esm2022/lib/models/combo-model.mjs +343 -0
  155. package/esm2022/lib/models/dashboard-model.mjs +1 -1
  156. package/esm2022/lib/models/dependent.model.mjs +1 -1
  157. package/esm2022/lib/models/fileupload/DocUploadModel.mjs +7 -0
  158. package/esm2022/lib/models/fileupload/EmployerDataModel.mjs +3 -0
  159. package/esm2022/lib/models/fileupload/FileObject.mjs +3 -0
  160. package/esm2022/lib/models/fileupload/FileObjectArray.mjs +7 -0
  161. package/esm2022/lib/models/questionnaire/AppealParticipantModel.mjs +8 -0
  162. package/esm2022/lib/models/questionnaire/ClaimAppEmpResponseModel.mjs +1 -1
  163. package/esm2022/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +2 -1
  164. package/esm2022/lib/models/questionnaire/ClaimOnlyEmployerDataModel.mjs +1 -1
  165. package/esm2022/lib/models/questionnaire/ComboModel.mjs +96 -653
  166. package/esm2022/lib/models/questionnaire/ElementsModel.mjs +1 -1
  167. package/esm2022/lib/models/questionnaire/KeyValueModel.mjs +1 -1
  168. package/esm2022/lib/models/questionnaire/LegalDiscaimarModel.mjs +1 -1
  169. package/esm2022/lib/models/questionnaire/ScrollableTextModel.mjs +3 -0
  170. package/esm2022/lib/models/questionnaire/StatusModel.mjs +1 -1
  171. package/esm2022/lib/models/questionnaire/WbaHelperTextModel.mjs +3 -0
  172. package/esm2022/lib/models/weekly-cert/WorkSearchWaiverModel.mjs +3 -0
  173. package/esm2022/lib/models/weekly-cert/address-detail-model.mjs +2 -0
  174. package/esm2022/lib/models/weekly-cert/admin-leave-details-model.mjs +7 -0
  175. package/esm2022/lib/models/weekly-cert/employer-info-v2-model.mjs +7 -0
  176. package/esm2022/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.mjs +6 -0
  177. package/esm2022/lib/models/weekly-cert/weekly-certification-v2-model.mjs +34 -0
  178. package/esm2022/lib/models/weekly-cert/work-search-record-v2-model.mjs +15 -0
  179. package/esm2022/lib/models/weekly-cert/work-search-v2-model.mjs +11 -0
  180. package/esm2022/lib/ngx-reusa-app-lib.component.mjs +5 -5
  181. package/esm2022/lib/ngx-reusa-app-lib.module.mjs +135 -23
  182. package/esm2022/lib/ngx-reusa-app-lib.service.mjs +1 -1
  183. package/esm2022/lib/pages/BasePage.mjs +4 -23
  184. package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +22 -18
  185. package/esm2022/lib/pages/common/change-password/change-password.page.mjs +142 -124
  186. package/esm2022/lib/pages/common/landing/landing.component.mjs +7 -8
  187. package/esm2022/lib/pages/common/landing2/landing2.component.mjs +4 -4
  188. package/esm2022/lib/pages/common/login/login.component.mjs +7 -11
  189. package/esm2022/lib/pages/common/not-found/not-found.page.mjs +1 -1
  190. package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +14 -14
  191. package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +5 -5
  192. package/esm2022/lib/pages/common/unauthorized/unauthorized.page.mjs +1 -1
  193. package/esm2022/lib/pages/popovers/language/language.page.mjs +1 -2
  194. package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +4 -4
  195. package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +7 -2
  196. package/esm2022/lib/pages/popovers/user-search/user-search.component.mjs +1 -1
  197. package/esm2022/lib/pipes/filter.pipe.mjs +1 -1
  198. package/esm2022/lib/pipes/format-worksearch/format-worksearch.pipe.mjs +101 -0
  199. package/esm2022/lib/pipes/mask/mask.email.pipe.mjs +1 -1
  200. package/esm2022/lib/pipes/proper-case/proper-case.pipe.mjs +1 -1
  201. package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +2 -2
  202. package/esm2022/lib/pipes/trust-html/trust-html.pipe.mjs +1 -1
  203. package/esm2022/lib/services/address-validation-service/address-validation.service.mjs +151 -0
  204. package/esm2022/lib/services/appeal/appeal.service.mjs +37 -0
  205. package/esm2022/lib/services/base-service.mjs +4 -1
  206. package/esm2022/lib/services/birt-service/birt.service.mjs +57 -0
  207. package/esm2022/lib/services/captcha/captcha.service.mjs +1 -1
  208. package/esm2022/lib/services/chatbot/chatbot.service.mjs +1 -2
  209. package/esm2022/lib/services/chatbot/script.const.mjs +1 -1
  210. package/esm2022/lib/services/claimant/claimant.service.mjs +1 -1
  211. package/esm2022/lib/services/claimant-service/claimant.service.mjs +7 -13
  212. package/esm2022/lib/services/claims/claims.service.mjs +102 -14
  213. package/esm2022/lib/services/dms-service/dms.service.mjs +1 -1
  214. package/esm2022/lib/services/employer/employer-service.mjs +35 -0
  215. package/esm2022/lib/services/event-service/event-service.mjs +44 -0
  216. package/esm2022/lib/services/fpjs/fingerprint.service.mjs +1 -1
  217. package/esm2022/lib/services/google-analytics/google-analytics.service.mjs +1 -1
  218. package/esm2022/lib/services/help/help.service.mjs +1 -1
  219. package/esm2022/lib/services/idle/idle.service.mjs +1 -1
  220. package/esm2022/lib/services/logger/logger.service.mjs +1 -1
  221. package/esm2022/lib/services/login/login.service.mjs +29 -11
  222. package/esm2022/lib/services/maintenance/maintenance.service.mjs +1 -1
  223. package/esm2022/lib/services/notification/notification.service.mjs +1 -1
  224. package/esm2022/lib/services/offline-claims/offline-claims.service.mjs +327 -0
  225. package/esm2022/lib/services/questionnaire/questionnaire.service.mjs +4 -1
  226. package/esm2022/lib/services/questionnaire/validation.service.mjs +4 -1
  227. package/esm2022/lib/services/security-service/security.service.mjs +23 -6
  228. package/esm2022/lib/services/tour/tour.service.mjs +1 -1
  229. package/esm2022/lib/services/util/util.service.mjs +61 -5
  230. package/esm2022/lib/services/weekly-cert/review.service.mjs +101 -0
  231. package/esm2022/lib/services/weekly-cert/weekly-cert-v2.service.mjs +186 -14
  232. package/esm2022/lib/services/weekly-cert/weekly-cert.service.mjs +37 -0
  233. package/esm2022/lib/services/weekly-cert/work-search.service.mjs +58 -0
  234. package/esm2022/lib/validations/AppRegex.mjs +1 -3
  235. package/esm2022/lib/validations/AppValidators.mjs +84 -31
  236. package/esm2022/public-api.mjs +47 -5
  237. package/fesm2022/reusa-ngx-reusa-app-lib.mjs +41051 -23038
  238. package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
  239. package/lib/components/add-employer/add-employer.component.d.ts +137 -50
  240. package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
  241. package/lib/components/add-participant/add-participant.component.d.ts +11 -5
  242. package/lib/components/add-participant/add-participant.component.d.ts.map +1 -1
  243. package/lib/components/add-payment/add-payment.component.d.ts +9 -3
  244. package/lib/components/add-payment/add-payment.component.d.ts.map +1 -1
  245. package/lib/components/add-wage/add-wage.component.d.ts +30 -0
  246. package/lib/components/add-wage/add-wage.component.d.ts.map +1 -0
  247. package/lib/components/address/address.component.d.ts +42 -15
  248. package/lib/components/address/address.component.d.ts.map +1 -1
  249. package/lib/components/address-popup/address-popup.component.d.ts +16 -0
  250. package/lib/components/address-popup/address-popup.component.d.ts.map +1 -0
  251. package/lib/components/address-suggestion/address-suggestion.component.d.ts +43 -0
  252. package/lib/components/address-suggestion/address-suggestion.component.d.ts.map +1 -0
  253. package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts +37 -0
  254. package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts.map +1 -0
  255. package/lib/components/associate-ssn/associate-ssn.component.d.ts +33 -0
  256. package/lib/components/associate-ssn/associate-ssn.component.d.ts.map +1 -0
  257. package/lib/components/bank-details/bank-details.component.d.ts +1 -23
  258. package/lib/components/bank-details/bank-details.component.d.ts.map +1 -1
  259. package/lib/components/claim-info/claim-info.component.d.ts +49 -0
  260. package/lib/components/claim-info/claim-info.component.d.ts.map +1 -0
  261. package/lib/components/contact-us/contact-us.component.d.ts +1 -4
  262. package/lib/components/contact-us/contact-us.component.d.ts.map +1 -1
  263. package/lib/components/correspondence-download/correspondence-download.component.d.ts.map +1 -1
  264. package/lib/components/dashboard-card/dashboard-card.component.d.ts.map +1 -1
  265. package/lib/components/dua-request-page/dua-request-page.component.d.ts +74 -0
  266. package/lib/components/dua-request-page/dua-request-page.component.d.ts.map +1 -0
  267. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts +61 -0
  268. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts.map +1 -0
  269. package/lib/components/email-update/email-update.component.d.ts +1 -12
  270. package/lib/components/email-update/email-update.component.d.ts.map +1 -1
  271. package/lib/components/employer-grid/employer-grid.component.d.ts +21 -14
  272. package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
  273. package/lib/components/employer-info/employer-info.component.d.ts +50 -0
  274. package/lib/components/employer-info/employer-info.component.d.ts.map +1 -0
  275. package/lib/components/employer-pay/employer-pay.component.d.ts +51 -0
  276. package/lib/components/employer-pay/employer-pay.component.d.ts.map +1 -0
  277. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts +43 -0
  278. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts.map +1 -0
  279. package/lib/components/error/error.component.d.ts +3 -2
  280. package/lib/components/error/error.component.d.ts.map +1 -1
  281. package/lib/components/farm-usage/farm-usage.component.d.ts +33 -0
  282. package/lib/components/farm-usage/farm-usage.component.d.ts.map +1 -0
  283. package/lib/components/file-uploader/file-uploader.component.d.ts +5 -1
  284. package/lib/components/file-uploader/file-uploader.component.d.ts.map +1 -1
  285. package/lib/components/footer/footer.component.d.ts.map +1 -1
  286. package/lib/components/gross-earnings/gross-earnings.component.d.ts +42 -0
  287. package/lib/components/gross-earnings/gross-earnings.component.d.ts.map +1 -0
  288. package/lib/components/header/header.component.d.ts +17 -5
  289. package/lib/components/header/header.component.d.ts.map +1 -1
  290. package/lib/components/history-page/history-page.component.d.ts +80 -0
  291. package/lib/components/history-page/history-page.component.d.ts.map +1 -0
  292. package/lib/components/idme/idme.component.d.ts +19 -0
  293. package/lib/components/idme/idme.component.d.ts.map +1 -0
  294. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +1 -3
  295. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts.map +1 -1
  296. package/lib/components/job-title/job-title.component.d.ts +22 -23
  297. package/lib/components/job-title/job-title.component.d.ts.map +1 -1
  298. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +5 -6
  299. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -1
  300. package/lib/components/menu/menu.component.d.ts +3 -12
  301. package/lib/components/menu/menu.component.d.ts.map +1 -1
  302. package/lib/components/mfa/mfa.component.d.ts +7 -19
  303. package/lib/components/mfa/mfa.component.d.ts.map +1 -1
  304. package/lib/components/mfa-popup/mfa-popup.component.d.ts +6 -8
  305. package/lib/components/mfa-popup/mfa-popup.component.d.ts.map +1 -1
  306. package/lib/components/money-expect/money-expect.component.d.ts +15 -4
  307. package/lib/components/money-expect/money-expect.component.d.ts.map +1 -1
  308. package/lib/components/offline-add-employer/offline-add-employer.component.d.ts +311 -0
  309. package/lib/components/offline-add-employer/offline-add-employer.component.d.ts.map +1 -0
  310. package/lib/components/offline-bank-details/offline-bank-details.component.d.ts +33 -0
  311. package/lib/components/offline-bank-details/offline-bank-details.component.d.ts.map +1 -0
  312. package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts +97 -0
  313. package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts.map +1 -0
  314. package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts +33 -0
  315. package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts.map +1 -0
  316. package/lib/components/profile/profile.component.d.ts +81 -49
  317. package/lib/components/profile/profile.component.d.ts.map +1 -1
  318. package/lib/components/profile-redirect/profile-redirect.component.d.ts +9 -2
  319. package/lib/components/profile-redirect/profile-redirect.component.d.ts.map +1 -1
  320. package/lib/components/proof-of-anything/proof-of-anything.component.d.ts +54 -0
  321. package/lib/components/proof-of-anything/proof-of-anything.component.d.ts.map +1 -0
  322. package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts +74 -0
  323. package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts.map +1 -0
  324. package/lib/components/questionnaire/AppValidators.d.ts +1 -0
  325. package/lib/components/questionnaire/AppValidators.d.ts.map +1 -1
  326. package/lib/components/questionnaire/account-success/account-success.page.d.ts +13 -10
  327. package/lib/components/questionnaire/account-success/account-success.page.d.ts.map +1 -1
  328. package/lib/components/questionnaire/common-success/common-success.page.d.ts +7 -1
  329. package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
  330. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts +3 -1
  331. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts.map +1 -1
  332. package/lib/components/questionnaire/dynamic-form-question.component.d.ts +31 -33
  333. package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
  334. package/lib/components/questionnaire/dynamic-form.component.d.ts +10 -34
  335. package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
  336. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts +0 -7
  337. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts.map +1 -1
  338. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts +7 -1
  339. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts.map +1 -1
  340. package/lib/components/questionnaire/question-control.service.d.ts.map +1 -1
  341. package/lib/components/questionnaire/question.service.d.ts +0 -1
  342. package/lib/components/questionnaire/question.service.d.ts.map +1 -1
  343. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts +1 -7
  344. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts.map +1 -1
  345. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts +10 -3
  346. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts.map +1 -1
  347. package/lib/components/scrollable-text/scrollable-text.component.d.ts +11 -0
  348. package/lib/components/scrollable-text/scrollable-text.component.d.ts.map +1 -0
  349. package/lib/components/search-employer/search-employer.component.d.ts +5 -4
  350. package/lib/components/search-employer/search-employer.component.d.ts.map +1 -1
  351. package/lib/components/sms/sms.component.d.ts +63 -0
  352. package/lib/components/sms/sms.component.d.ts.map +1 -0
  353. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +1 -5
  354. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts.map +1 -1
  355. package/lib/components/user-login/user-login.component.d.ts +5 -38
  356. package/lib/components/user-login/user-login.component.d.ts.map +1 -1
  357. package/lib/components/wage-calculator/wage-calculator.component.d.ts +44 -0
  358. package/lib/components/wage-calculator/wage-calculator.component.d.ts.map +1 -0
  359. package/lib/components/wage-grid/wage-grid.component.d.ts +43 -0
  360. package/lib/components/wage-grid/wage-grid.component.d.ts.map +1 -0
  361. package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts +28 -0
  362. package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts.map +1 -0
  363. package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts +28 -0
  364. package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts.map +1 -0
  365. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +27 -10
  366. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -1
  367. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts +9 -3
  368. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts.map +1 -1
  369. package/lib/components/weekly-certification/weekly-certification.component.d.ts +101 -0
  370. package/lib/components/weekly-certification/weekly-certification.component.d.ts.map +1 -0
  371. package/lib/components/weekly-confirmation/confirmation.component.d.ts +21 -0
  372. package/lib/components/weekly-confirmation/confirmation.component.d.ts.map +1 -0
  373. package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts +34 -0
  374. package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts.map +1 -0
  375. package/lib/components/weekly-summary-v2/summary.component-v2.d.ts +17 -0
  376. package/lib/components/weekly-summary-v2/summary.component-v2.d.ts.map +1 -0
  377. package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts +10 -0
  378. package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts.map +1 -0
  379. package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts +17 -0
  380. package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts.map +1 -0
  381. package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts +105 -0
  382. package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts.map +1 -0
  383. package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts +71 -0
  384. package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts.map +1 -0
  385. package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts +59 -0
  386. package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts.map +1 -0
  387. package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts +47 -0
  388. package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts.map +1 -0
  389. package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts +78 -0
  390. package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts.map +1 -0
  391. package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts +8 -0
  392. package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts.map +1 -0
  393. package/lib/enums/AddressValidationResponseEnum.d.ts +8 -0
  394. package/lib/enums/AddressValidationResponseEnum.d.ts.map +1 -0
  395. package/lib/enums/AddressValidationSourceFunctionEnum.d.ts +4 -0
  396. package/lib/enums/AddressValidationSourceFunctionEnum.d.ts.map +1 -0
  397. package/lib/guards/auth.guard.d.ts.map +1 -1
  398. package/lib/interceptors/error-interceptor/http-error-interceptor.d.ts.map +1 -1
  399. package/lib/models/ActiveClaimModel.d.ts +8 -0
  400. package/lib/models/ActiveClaimModel.d.ts.map +1 -0
  401. package/lib/models/CountyModel.d.ts +8 -0
  402. package/lib/models/CountyModel.d.ts.map +1 -0
  403. package/lib/models/DuaAppDataModel.d.ts +5 -0
  404. package/lib/models/DuaAppDataModel.d.ts.map +1 -0
  405. package/lib/models/DuaRequestModel.d.ts +10 -0
  406. package/lib/models/DuaRequestModel.d.ts.map +1 -0
  407. package/lib/models/DuaRetroWeeksComponentModel.d.ts +5 -0
  408. package/lib/models/DuaRetroWeeksComponentModel.d.ts.map +1 -0
  409. package/lib/models/EmployerDetailSearchResult.d.ts +4 -1
  410. package/lib/models/EmployerDetailSearchResult.d.ts.map +1 -1
  411. package/lib/models/EmployerInfoComponentModel.d.ts +9 -0
  412. package/lib/models/EmployerInfoComponentModel.d.ts.map +1 -0
  413. package/lib/models/EmployerPayInfoModel.d.ts +20 -0
  414. package/lib/models/EmployerPayInfoModel.d.ts.map +1 -0
  415. package/lib/models/FarmUsageComponentModel.d.ts +10 -0
  416. package/lib/models/FarmUsageComponentModel.d.ts.map +1 -0
  417. package/lib/models/GrossEarningsModel.d.ts +6 -0
  418. package/lib/models/GrossEarningsModel.d.ts.map +1 -0
  419. package/lib/models/HelpConstants.d.ts +5 -0
  420. package/lib/models/HelpConstants.d.ts.map +1 -0
  421. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts +7 -0
  422. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts.map +1 -0
  423. package/lib/models/LibConstants.d.ts +40 -1
  424. package/lib/models/LibConstants.d.ts.map +1 -1
  425. package/lib/models/PaymentComponentModel.d.ts +1 -1
  426. package/lib/models/PaymentComponentModel.d.ts.map +1 -1
  427. package/lib/models/ReasonSeparationRequestModel.d.ts +7 -0
  428. package/lib/models/ReasonSeparationRequestModel.d.ts.map +1 -0
  429. package/lib/models/RetroWeeksModel.d.ts +11 -0
  430. package/lib/models/RetroWeeksModel.d.ts.map +1 -0
  431. package/lib/models/SecurityQuestionAnswerModel.d.ts +7 -0
  432. package/lib/models/SecurityQuestionAnswerModel.d.ts.map +1 -0
  433. package/lib/models/SendOtpRequestModel.d.ts +12 -0
  434. package/lib/models/SendOtpRequestModel.d.ts.map +1 -0
  435. package/lib/models/VerifyOtpRequestModel.d.ts +8 -0
  436. package/lib/models/VerifyOtpRequestModel.d.ts.map +1 -0
  437. package/lib/models/WageCalculatorModel.d.ts +15 -0
  438. package/lib/models/WageCalculatorModel.d.ts.map +1 -0
  439. package/lib/models/WageInfoModel.d.ts +9 -0
  440. package/lib/models/WageInfoModel.d.ts.map +1 -0
  441. package/lib/models/addressValidation/AddressRecommendationModel.d.ts +12 -0
  442. package/lib/models/addressValidation/AddressRecommendationModel.d.ts.map +1 -0
  443. package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts +11 -0
  444. package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts.map +1 -0
  445. package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts +6 -0
  446. package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts.map +1 -0
  447. package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts +16 -0
  448. package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts.map +1 -0
  449. package/lib/models/combo-model.d.ts +42 -0
  450. package/lib/models/combo-model.d.ts.map +1 -0
  451. package/lib/models/dashboard-model.d.ts +22 -0
  452. package/lib/models/dashboard-model.d.ts.map +1 -1
  453. package/lib/models/fileupload/DocUploadModel.d.ts +22 -0
  454. package/lib/models/fileupload/DocUploadModel.d.ts.map +1 -0
  455. package/lib/models/fileupload/EmployerDataModel.d.ts +6 -0
  456. package/lib/models/fileupload/EmployerDataModel.d.ts.map +1 -0
  457. package/lib/models/fileupload/FileObject.d.ts +8 -0
  458. package/lib/models/fileupload/FileObject.d.ts.map +1 -0
  459. package/lib/models/fileupload/FileObjectArray.d.ts +8 -0
  460. package/lib/models/fileupload/FileObjectArray.d.ts.map +1 -0
  461. package/lib/models/questionnaire/AppealParticipantModel.d.ts +17 -0
  462. package/lib/models/questionnaire/AppealParticipantModel.d.ts.map +1 -0
  463. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts +3 -0
  464. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts.map +1 -1
  465. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +13 -4
  466. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts.map +1 -1
  467. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts +4 -1
  468. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts.map +1 -1
  469. package/lib/models/questionnaire/ComboModel.d.ts +14 -82
  470. package/lib/models/questionnaire/ComboModel.d.ts.map +1 -1
  471. package/lib/models/questionnaire/ElementsModel.d.ts +0 -1
  472. package/lib/models/questionnaire/ElementsModel.d.ts.map +1 -1
  473. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts +2 -0
  474. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts.map +1 -1
  475. package/lib/models/questionnaire/ScrollableTextModel.d.ts +4 -0
  476. package/lib/models/questionnaire/ScrollableTextModel.d.ts.map +1 -0
  477. package/lib/models/questionnaire/StatusModel.d.ts +1 -0
  478. package/lib/models/questionnaire/StatusModel.d.ts.map +1 -1
  479. package/lib/models/questionnaire/WbaHelperTextModel.d.ts +4 -0
  480. package/lib/models/questionnaire/WbaHelperTextModel.d.ts.map +1 -0
  481. package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts +9 -0
  482. package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts.map +1 -0
  483. package/lib/models/weekly-cert/address-detail-model.d.ts +14 -0
  484. package/lib/models/weekly-cert/address-detail-model.d.ts.map +1 -0
  485. package/lib/models/weekly-cert/admin-leave-details-model.d.ts +15 -0
  486. package/lib/models/weekly-cert/admin-leave-details-model.d.ts.map +1 -0
  487. package/lib/models/weekly-cert/employer-info-v2-model.d.ts +27 -0
  488. package/lib/models/weekly-cert/employer-info-v2-model.d.ts.map +1 -0
  489. package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts +57 -0
  490. package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts.map +1 -0
  491. package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts +59 -0
  492. package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts.map +1 -0
  493. package/lib/models/weekly-cert/work-search-record-v2-model.d.ts +66 -0
  494. package/lib/models/weekly-cert/work-search-record-v2-model.d.ts.map +1 -0
  495. package/lib/models/weekly-cert/work-search-v2-model.d.ts +18 -0
  496. package/lib/models/weekly-cert/work-search-v2-model.d.ts.map +1 -0
  497. package/lib/ngx-reusa-app-lib.module.d.ts +124 -86
  498. package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -1
  499. package/lib/pages/BasePage.d.ts +3 -6
  500. package/lib/pages/BasePage.d.ts.map +1 -1
  501. package/lib/pages/common/change-password/change-password.page.d.ts +3 -0
  502. package/lib/pages/common/change-password/change-password.page.d.ts.map +1 -1
  503. package/lib/pages/common/login/login.component.d.ts.map +1 -1
  504. package/lib/pages/popovers/language/language.page.d.ts.map +1 -1
  505. package/lib/pages/popovers/my-profile/my-profile.page.d.ts.map +1 -1
  506. package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts +14 -0
  507. package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts.map +1 -0
  508. package/lib/services/address-validation-service/address-validation.service.d.ts +44 -0
  509. package/lib/services/address-validation-service/address-validation.service.d.ts.map +1 -0
  510. package/lib/services/appeal/appeal.service.d.ts +16 -0
  511. package/lib/services/appeal/appeal.service.d.ts.map +1 -0
  512. package/lib/services/base-service.d.ts +12 -0
  513. package/lib/services/base-service.d.ts.map +1 -1
  514. package/lib/services/birt-service/birt.service.d.ts +17 -0
  515. package/lib/services/birt-service/birt.service.d.ts.map +1 -0
  516. package/lib/services/claimant-service/claimant.service.d.ts +5 -6
  517. package/lib/services/claimant-service/claimant.service.d.ts.map +1 -1
  518. package/lib/services/claims/claims.service.d.ts +38 -5
  519. package/lib/services/claims/claims.service.d.ts.map +1 -1
  520. package/lib/services/employer/employer-service.d.ts +16 -0
  521. package/lib/services/employer/employer-service.d.ts.map +1 -0
  522. package/lib/services/event-service/event-service.d.ts +20 -0
  523. package/lib/services/event-service/event-service.d.ts.map +1 -0
  524. package/lib/services/login/login.service.d.ts +5 -3
  525. package/lib/services/login/login.service.d.ts.map +1 -1
  526. package/lib/services/offline-claims/offline-claims.service.d.ts +64 -0
  527. package/lib/services/offline-claims/offline-claims.service.d.ts.map +1 -0
  528. package/lib/services/questionnaire/questionnaire.service.d.ts +1 -0
  529. package/lib/services/questionnaire/questionnaire.service.d.ts.map +1 -1
  530. package/lib/services/questionnaire/validation.service.d.ts +3 -0
  531. package/lib/services/questionnaire/validation.service.d.ts.map +1 -1
  532. package/lib/services/security-service/security.service.d.ts +12 -4
  533. package/lib/services/security-service/security.service.d.ts.map +1 -1
  534. package/lib/services/util/util.service.d.ts +6 -0
  535. package/lib/services/util/util.service.d.ts.map +1 -1
  536. package/lib/services/weekly-cert/review.service.d.ts +23 -0
  537. package/lib/services/weekly-cert/review.service.d.ts.map +1 -0
  538. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts +47 -5
  539. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts.map +1 -1
  540. package/lib/services/weekly-cert/weekly-cert.service.d.ts +17 -0
  541. package/lib/services/weekly-cert/weekly-cert.service.d.ts.map +1 -0
  542. package/lib/services/weekly-cert/work-search.service.d.ts +26 -0
  543. package/lib/services/weekly-cert/work-search.service.d.ts.map +1 -0
  544. package/lib/validations/AppRegex.d.ts +0 -2
  545. package/lib/validations/AppRegex.d.ts.map +1 -1
  546. package/lib/validations/AppValidators.d.ts +20 -14
  547. package/lib/validations/AppValidators.d.ts.map +1 -1
  548. package/package.json +2 -2
  549. package/public-api.d.ts +46 -4
  550. package/public-api.d.ts.map +1 -1
  551. package/esm2022/lib/components/lexis-nexis/lexis-nexis.component.mjs +0 -402
  552. package/esm2022/lib/components/mfa2/mfa2.component.mjs +0 -285
  553. package/esm2022/lib/components/security-question/security-question.component.mjs +0 -199
  554. package/esm2022/lib/models/LexisNexisAccountCreationModel.mjs +0 -2
  555. package/esm2022/lib/models/LexisNexisAuthSelectionRequestModel.mjs +0 -2
  556. package/esm2022/lib/models/LexisNexisAuthSelectionResponseModel.mjs +0 -2
  557. package/esm2022/lib/models/LexisNexisEnabledResponseModel.mjs +0 -2
  558. package/esm2022/lib/models/LexisNexisResponseModel.mjs +0 -3
  559. package/esm2022/lib/models/PartialEmploymentModel.mjs +0 -3
  560. package/esm2022/lib/models/SecurityQuestionModel.mjs +0 -3
  561. package/esm2022/lib/services/claimant-service/claimant-usps-redirect.service.mjs +0 -36
  562. package/esm2022/lib/services/lexis-nexis/lexis.nexis.service.mjs +0 -60
  563. package/esm2022/lib/services/ovp/ovp.service.mjs +0 -43
  564. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts +0 -59
  565. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +0 -1
  566. package/lib/components/mfa2/mfa2.component.d.ts +0 -48
  567. package/lib/components/mfa2/mfa2.component.d.ts.map +0 -1
  568. package/lib/components/security-question/security-question.component.d.ts +0 -37
  569. package/lib/components/security-question/security-question.component.d.ts.map +0 -1
  570. package/lib/models/LexisNexisAccountCreationModel.d.ts +0 -15
  571. package/lib/models/LexisNexisAccountCreationModel.d.ts.map +0 -1
  572. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts +0 -16
  573. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts.map +0 -1
  574. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts +0 -39
  575. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts.map +0 -1
  576. package/lib/models/LexisNexisEnabledResponseModel.d.ts +0 -5
  577. package/lib/models/LexisNexisEnabledResponseModel.d.ts.map +0 -1
  578. package/lib/models/LexisNexisResponseModel.d.ts +0 -7
  579. package/lib/models/LexisNexisResponseModel.d.ts.map +0 -1
  580. package/lib/models/PartialEmploymentModel.d.ts +0 -6
  581. package/lib/models/PartialEmploymentModel.d.ts.map +0 -1
  582. package/lib/models/SecurityQuestionModel.d.ts +0 -7
  583. package/lib/models/SecurityQuestionModel.d.ts.map +0 -1
  584. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts +0 -16
  585. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts.map +0 -1
  586. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts +0 -26
  587. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts.map +0 -1
  588. package/lib/services/ovp/ovp.service.d.ts +0 -17
  589. package/lib/services/ovp/ovp.service.d.ts.map +0 -1
@@ -2,7 +2,7 @@ import { HttpParams } from '@angular/common/http';
2
2
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, ViewChildren } from '@angular/core';
3
3
  import { ValidationModel } from '../../models/questionnaire/ValidationModel';
4
4
  import { rowExpansionTrigger } from '../../annimations/app-animations';
5
- import { PartialEmploymentModel } from '../../models/PartialEmploymentModel';
5
+ import { LibConstants } from '../../models/LibConstants';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "./question-control.service";
8
8
  import * as i2 from "./question.service";
@@ -11,51 +11,17 @@ import * as i4 from "../../services/questionnaire/validation.service";
11
11
  import * as i5 from "../../services/util/util.service";
12
12
  import * as i6 from "@ionic/angular";
13
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";
14
+ import * as i8 from "@angular/platform-browser";
15
+ import * as i9 from "../../services/login/login.service";
16
+ import * as i10 from "../../services/address-validation-service/address-validation.service";
51
17
  const _c0 = ["bankdtls"];
52
18
  const _c1 = ["wcEmployerGrid"];
53
- const _c2 = ["pCalendar"];
19
+ const _c2 = ["jobTitle"];
54
20
  const _c3 = ["address"];
55
- function DynamicFormQuestionComponent_p_dialog_1_ng_template_5_ion_button_0_Template(rf, ctx) { if (rf & 1) {
21
+ function DynamicFormQuestionComponent_p_dialog_1_ng_template_4_ion_button_0_Template(rf, ctx) { if (rf & 1) {
56
22
  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()); });
23
+ i0.ɵɵelementStart(0, "ion-button", 15);
24
+ i0.ɵɵlistener("click", function DynamicFormQuestionComponent_p_dialog_1_ng_template_4_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
25
  i0.ɵɵtext(1);
60
26
  i0.ɵɵelementEnd();
61
27
  } if (rf & 2) {
@@ -63,10 +29,10 @@ function DynamicFormQuestionComponent_p_dialog_1_ng_template_5_ion_button_0_Temp
63
29
  i0.ɵɵadvance(1);
64
30
  i0.ɵɵtextInterpolate1(" ", ctx_r27.popUpNoActionLabel, " ");
65
31
  } }
66
- function DynamicFormQuestionComponent_p_dialog_1_ng_template_5_ion_button_1_Template(rf, ctx) { if (rf & 1) {
32
+ function DynamicFormQuestionComponent_p_dialog_1_ng_template_4_ion_button_1_Template(rf, ctx) { if (rf & 1) {
67
33
  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()); });
34
+ i0.ɵɵelementStart(0, "ion-button", 16);
35
+ i0.ɵɵlistener("click", function DynamicFormQuestionComponent_p_dialog_1_ng_template_4_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
36
  i0.ɵɵtext(1);
71
37
  i0.ɵɵelementEnd();
72
38
  } if (rf & 2) {
@@ -74,8 +40,8 @@ function DynamicFormQuestionComponent_p_dialog_1_ng_template_5_ion_button_1_Temp
74
40
  i0.ɵɵadvance(1);
75
41
  i0.ɵɵtextInterpolate1(" ", ctx_r28.popUpYesActionLabel, " ");
76
42
  } }
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);
43
+ function DynamicFormQuestionComponent_p_dialog_1_ng_template_4_Template(rf, ctx) { if (rf & 1) {
44
+ i0.ɵɵtemplate(0, DynamicFormQuestionComponent_p_dialog_1_ng_template_4_ion_button_0_Template, 2, 1, "ion-button", 13)(1, DynamicFormQuestionComponent_p_dialog_1_ng_template_4_ion_button_1_Template, 2, 1, "ion-button", 14);
79
45
  } if (rf & 2) {
80
46
  const ctx_r26 = i0.ɵɵnextContext(2);
81
47
  i0.ɵɵproperty("ngIf", ctx_r26.popUpNoActionLabel);
@@ -91,10 +57,8 @@ function DynamicFormQuestionComponent_p_dialog_1_Template(rf, ctx) { if (rf & 1)
91
57
  i0.ɵɵelementStart(1, "h4", 10);
92
58
  i0.ɵɵtext(2);
93
59
  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);
60
+ i0.ɵɵelement(3, "div", 11);
61
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_p_dialog_1_ng_template_4_Template, 2, 2, "ng-template", 12);
98
62
  i0.ɵɵelementEnd();
99
63
  } if (rf & 2) {
100
64
  const ctx_r0 = i0.ɵɵnextContext();
@@ -103,12 +67,12 @@ function DynamicFormQuestionComponent_p_dialog_1_Template(rf, ctx) { if (rf & 1)
103
67
  i0.ɵɵattribute("aria-label", ctx_r0.question.title);
104
68
  i0.ɵɵadvance(2);
105
69
  i0.ɵɵtextInterpolate1(" ", ctx_r0.popUpHeader, " ");
106
- i0.ɵɵadvance(2);
107
- i0.ɵɵtextInterpolate1("", ctx_r0.popUpText, " ");
70
+ i0.ɵɵadvance(1);
71
+ i0.ɵɵproperty("innerHTML", ctx_r0.sanitizer.bypassSecurityTrustHtml(ctx_r0.popUpText), i0.ɵɵsanitizeHtml);
108
72
  } }
109
73
  function DynamicFormQuestionComponent_div_2_label_1_Template(rf, ctx) { if (rf & 1) {
110
74
  i0.ɵɵelementStart(0, "label");
111
- i0.ɵɵelement(1, "span", 17);
75
+ i0.ɵɵelement(1, "span", 18);
112
76
  i0.ɵɵpipe(2, "trustHtml");
113
77
  i0.ɵɵpipe(3, "dynamicTranslate");
114
78
  i0.ɵɵelementEnd();
@@ -119,7 +83,7 @@ function DynamicFormQuestionComponent_div_2_label_1_Template(rf, ctx) { if (rf &
119
83
  i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(2, 2, i0.ɵɵpipeBind2(3, 4, ctx_r35.question.title, ctx_r35.dynamicParam)), i0.ɵɵsanitizeHtml);
120
84
  } }
121
85
  function DynamicFormQuestionComponent_div_2_Template(rf, ctx) { if (rf & 1) {
122
- i0.ɵɵelementStart(0, "div", 16);
86
+ i0.ɵɵelementStart(0, "div", 17);
123
87
  i0.ɵɵtemplate(1, DynamicFormQuestionComponent_div_2_label_1_Template, 4, 7, "label", 3);
124
88
  i0.ɵɵelementEnd();
125
89
  } if (rf & 2) {
@@ -129,160 +93,242 @@ function DynamicFormQuestionComponent_div_2_Template(rf, ctx) { if (rf & 1) {
129
93
  i0.ɵɵproperty("ngIf", ctx_r1.question.indent === 1 && ctx_r1.question.type != "html" && ctx_r1.question.type != "hidden" && ctx_r1.question.type != "label");
130
94
  } }
131
95
  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()();
96
+ i0.ɵɵelementStart(0, "div", 17);
97
+ i0.ɵɵelement(1, "span", 18);
98
+ i0.ɵɵpipe(2, "trustHtml");
99
+ i0.ɵɵpipe(3, "dynamicTranslate");
100
+ i0.ɵɵelementEnd();
137
101
  } if (rf & 2) {
138
102
  const ctx_r2 = i0.ɵɵnextContext();
139
103
  i0.ɵɵproperty("ngStyle", ctx_r2.setStyle(ctx_r2.question.indent));
140
104
  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);
105
+ i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(2, 2, i0.ɵɵpipeBind2(3, 4, ctx_r2.question.title, ctx_r2.dynamicParam)), i0.ɵɵsanitizeHtml);
144
106
  } }
145
107
  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()();
108
+ i0.ɵɵelementStart(0, "div", 17);
109
+ i0.ɵɵelement(1, "span", 18);
110
+ i0.ɵɵpipe(2, "trustHtml");
111
+ i0.ɵɵpipe(3, "dynamicTranslate");
112
+ i0.ɵɵelementEnd();
151
113
  } if (rf & 2) {
152
114
  const ctx_r3 = i0.ɵɵnextContext();
153
115
  i0.ɵɵproperty("ngStyle", ctx_r3.setStyle(ctx_r3.question.indent));
154
116
  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);
117
+ i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(2, 2, i0.ɵɵpipeBind2(3, 4, ctx_r3.question.title, ctx_r3.dynamicParam)), i0.ɵɵsanitizeHtml);
158
118
  } }
159
119
  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()();
120
+ i0.ɵɵelementStart(0, "div", 17);
121
+ i0.ɵɵelement(1, "span", 18);
122
+ i0.ɵɵpipe(2, "trustHtml");
123
+ i0.ɵɵpipe(3, "dynamicTranslate");
124
+ i0.ɵɵelementEnd();
165
125
  } if (rf & 2) {
166
126
  const ctx_r4 = i0.ɵɵnextContext();
167
127
  i0.ɵɵproperty("ngStyle", ctx_r4.setStyle(ctx_r4.question.indent));
168
128
  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);
129
+ i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(2, 2, i0.ɵɵpipeBind2(3, 4, ctx_r4.question.title, ctx_r4.dynamicParam)), i0.ɵɵsanitizeHtml);
172
130
  } }
173
131
  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)); });
132
+ const _r65 = i0.ɵɵgetCurrentView();
133
+ i0.ɵɵelementStart(0, "app-employer-grid", 34);
134
+ i0.ɵɵlistener("modelDisplay", function DynamicFormQuestionComponent_div_6_app_employer_grid_1_Template_app_employer_grid_modelDisplay_0_listener($event) { i0.ɵɵrestoreView(_r65); const ctx_r64 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r64.onModelDisplay($event)); });
177
135
  i0.ɵɵelementEnd();
178
136
  } if (rf & 2) {
179
137
  const ctx_r36 = i0.ɵɵnextContext(2);
180
138
  i0.ɵɵproperty("formControlName", ctx_r36.question.name)("form", ctx_r36.form)("dynamicParam", ctx_r36.dynamicParam);
181
139
  } }
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)); });
140
+ function DynamicFormQuestionComponent_div_6_app_offline_employer_grid_2_Template(rf, ctx) { if (rf & 1) {
141
+ const _r67 = i0.ɵɵgetCurrentView();
142
+ i0.ɵɵelementStart(0, "app-offline-employer-grid", 34);
143
+ i0.ɵɵlistener("modelDisplay", function DynamicFormQuestionComponent_div_6_app_offline_employer_grid_2_Template_app_offline_employer_grid_modelDisplay_0_listener($event) { i0.ɵɵrestoreView(_r67); const ctx_r66 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r66.onModelDisplay($event)); });
186
144
  i0.ɵɵelementEnd();
187
145
  } if (rf & 2) {
188
146
  const ctx_r37 = i0.ɵɵnextContext(2);
189
- i0.ɵɵproperty("componentData", ctx_r37.question.componentData)("question", ctx_r37.question)("form", ctx_r37.form);
147
+ i0.ɵɵproperty("formControlName", ctx_r37.question.name)("form", ctx_r37.form)("dynamicParam", ctx_r37.dynamicParam);
190
148
  } }
191
- function DynamicFormQuestionComponent_div_6_money_expect_3_Template(rf, ctx) { if (rf & 1) {
192
- i0.ɵɵelement(0, "money-expect");
149
+ function DynamicFormQuestionComponent_div_6_app_legal_disclaimar_3_Template(rf, ctx) { if (rf & 1) {
150
+ const _r69 = i0.ɵɵgetCurrentView();
151
+ i0.ɵɵelementStart(0, "app-legal-disclaimar", 35);
152
+ i0.ɵɵlistener("accepted", function DynamicFormQuestionComponent_div_6_app_legal_disclaimar_3_Template_app_legal_disclaimar_accepted_0_listener($event) { i0.ɵɵrestoreView(_r69); const ctx_r68 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r68.onAccepted($event)); });
153
+ i0.ɵɵelementEnd();
154
+ } if (rf & 2) {
155
+ const ctx_r38 = i0.ɵɵnextContext(2);
156
+ i0.ɵɵproperty("componentData", ctx_r38.question.componentData)("question", ctx_r38.question)("form", ctx_r38.form);
193
157
  } }
194
- function DynamicFormQuestionComponent_div_6_app_captcha_4_Template(rf, ctx) { if (rf & 1) {
195
- i0.ɵɵelement(0, "app-captcha", 31);
158
+ function DynamicFormQuestionComponent_div_6_app_offline_legal_disclaimar_4_Template(rf, ctx) { if (rf & 1) {
159
+ const _r71 = i0.ɵɵgetCurrentView();
160
+ i0.ɵɵelementStart(0, "app-offline-legal-disclaimar", 35);
161
+ i0.ɵɵlistener("accepted", function DynamicFormQuestionComponent_div_6_app_offline_legal_disclaimar_4_Template_app_offline_legal_disclaimar_accepted_0_listener($event) { i0.ɵɵrestoreView(_r71); const ctx_r70 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r70.onAccepted($event)); });
162
+ i0.ɵɵelementEnd();
196
163
  } if (rf & 2) {
197
164
  const ctx_r39 = i0.ɵɵnextContext(2);
198
- i0.ɵɵproperty("formControlName", ctx_r39.question.name);
165
+ i0.ɵɵproperty("componentData", ctx_r39.question.componentData)("question", ctx_r39.question)("form", ctx_r39.form);
199
166
  } }
200
- function DynamicFormQuestionComponent_div_6_app_file_uploader_5_Template(rf, ctx) { if (rf & 1) {
201
- i0.ɵɵelement(0, "app-file-uploader", 31);
167
+ function DynamicFormQuestionComponent_div_6_money_expect_5_Template(rf, ctx) { if (rf & 1) {
168
+ i0.ɵɵelement(0, "money-expect", 36);
202
169
  } if (rf & 2) {
203
170
  const ctx_r40 = i0.ɵɵnextContext(2);
204
- i0.ɵɵproperty("formControlName", ctx_r40.question.name);
171
+ i0.ɵɵproperty("componentData", ctx_r40.question.componentData);
205
172
  } }
206
- function DynamicFormQuestionComponent_div_6_app_address_6_Template(rf, ctx) { if (rf & 1) {
207
- i0.ɵɵelement(0, "app-address", 32, 33);
173
+ function DynamicFormQuestionComponent_div_6_app_captcha_6_Template(rf, ctx) { if (rf & 1) {
174
+ i0.ɵɵelement(0, "app-captcha", 37);
208
175
  } if (rf & 2) {
209
176
  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);
177
+ i0.ɵɵproperty("formControlName", ctx_r41.question.name);
211
178
  } }
212
- function DynamicFormQuestionComponent_div_6_app_bank_details_7_Template(rf, ctx) { if (rf & 1) {
213
- i0.ɵɵelement(0, "app-bank-details", 31, 34);
179
+ function DynamicFormQuestionComponent_div_6_app_file_uploader_7_Template(rf, ctx) { if (rf & 1) {
180
+ i0.ɵɵelement(0, "app-file-uploader", 37);
214
181
  } if (rf & 2) {
215
182
  const ctx_r42 = i0.ɵɵnextContext(2);
216
183
  i0.ɵɵproperty("formControlName", ctx_r42.question.name);
217
184
  } }
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);
185
+ function DynamicFormQuestionComponent_div_6_app_address_8_Template(rf, ctx) { if (rf & 1) {
186
+ i0.ɵɵelement(0, "app-address", 38, 39);
220
187
  } if (rf & 2) {
221
188
  const ctx_r43 = i0.ɵɵnextContext(2);
222
- i0.ɵɵproperty("formControlName", ctx_r43.question.name)("componentData", ctx_r43.question.componentData)("form", ctx_r43.form);
189
+ i0.ɵɵproperty("formControlName", ctx_r43.question.name)("fromPopup", false)("countyRequired", ctx_r43.question.countyRequired)("questionaireForm", ctx_r43.questionaireForm)("inputId", ctx_r43.question.name)("componentData", ctx_r43.question.componentData)("diffMailAddress", (ctx_r43.form == null ? null : ctx_r43.form.controls["diffMailingAddress"] == null ? null : ctx_r43.form.controls["diffMailingAddress"].value) === "Y" || (ctx_r43.form == null ? null : ctx_r43.form.controls["diffmailaddress"] == null ? null : ctx_r43.form.controls["diffmailaddress"].value) === "Y" ? true : false)("enableAddressValidation", ctx_r43.isAddressValidationEnabled);
223
190
  } }
224
- function DynamicFormQuestionComponent_div_6_app_dependent_grid_9_Template(rf, ctx) { if (rf & 1) {
225
- i0.ɵɵelement(0, "app-dependent-grid", 31);
191
+ function DynamicFormQuestionComponent_div_6_app_job_title_9_Template(rf, ctx) { if (rf & 1) {
192
+ i0.ɵɵelement(0, "app-job-title", 40);
226
193
  } if (rf & 2) {
227
194
  const ctx_r44 = i0.ɵɵnextContext(2);
228
- i0.ɵɵproperty("formControlName", ctx_r44.question.name);
195
+ i0.ɵɵproperty("formControlName", ctx_r44.question.name)("isRequired", ctx_r44.question.isRequired);
229
196
  } }
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);
197
+ function DynamicFormQuestionComponent_div_6_app_bank_details_10_Template(rf, ctx) { if (rf & 1) {
198
+ i0.ɵɵelement(0, "app-bank-details", 37, 41);
232
199
  } if (rf & 2) {
233
200
  const ctx_r45 = i0.ɵɵnextContext(2);
234
- i0.ɵɵproperty("dynamicParam", ctx_r45.dynamicParam)("formControlName", ctx_r45.question.name);
201
+ i0.ɵɵproperty("formControlName", ctx_r45.question.name);
235
202
  } }
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();
203
+ function DynamicFormQuestionComponent_div_6_app_offline_bank_details_11_Template(rf, ctx) { if (rf & 1) {
204
+ i0.ɵɵelement(0, "app-offline-bank-details", 37, 41);
241
205
  } if (rf & 2) {
242
206
  const ctx_r46 = i0.ɵɵnextContext(2);
243
207
  i0.ɵɵproperty("formControlName", ctx_r46.question.name);
244
208
  } }
245
- function DynamicFormQuestionComponent_div_6_app_add_participant_12_Template(rf, ctx) { if (rf & 1) {
246
- i0.ɵɵelement(0, "app-add-participant", 31);
209
+ function DynamicFormQuestionComponent_div_6_app_requalify_lift_previous_issues_12_Template(rf, ctx) { if (rf & 1) {
210
+ i0.ɵɵelement(0, "app-requalify-lift-previous-issues", 42);
247
211
  } if (rf & 2) {
248
212
  const ctx_r47 = i0.ɵɵnextContext(2);
249
- i0.ɵɵproperty("formControlName", ctx_r47.question.name);
213
+ i0.ɵɵproperty("formControlName", ctx_r47.question.name)("componentData", ctx_r47.question.componentData)("form", ctx_r47.form)("question", ctx_r47.question);
250
214
  } }
251
- function DynamicFormQuestionComponent_div_6_app_add_payment_13_Template(rf, ctx) { if (rf & 1) {
252
- i0.ɵɵelement(0, "app-add-payment", 39);
215
+ function DynamicFormQuestionComponent_div_6_app_dependent_grid_13_Template(rf, ctx) { if (rf & 1) {
216
+ i0.ɵɵelement(0, "app-dependent-grid", 37);
253
217
  } if (rf & 2) {
254
218
  const ctx_r48 = i0.ɵɵnextContext(2);
255
- i0.ɵɵproperty("potentialIssueId", ctx_r48.potentialIssueId)("formControlName", ctx_r48.question.name);
219
+ i0.ɵɵproperty("formControlName", ctx_r48.question.name);
256
220
  } }
257
- function DynamicFormQuestionComponent_div_6_app_link_14_Template(rf, ctx) { if (rf & 1) {
258
- i0.ɵɵelement(0, "app-link", 40);
221
+ function DynamicFormQuestionComponent_div_6_app_weekly_cert_employer_grid_14_Template(rf, ctx) { if (rf & 1) {
222
+ i0.ɵɵelement(0, "app-weekly-cert-employer-grid", 43, 44);
259
223
  } if (rf & 2) {
260
224
  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);
225
+ i0.ɵɵproperty("form", ctx_r49.form)("dynamicParam", ctx_r49.dynamicParam)("formControlName", ctx_r49.question.name);
262
226
  } }
263
- function DynamicFormQuestionComponent_div_6_app_sign_ssn_15_Template(rf, ctx) { if (rf & 1) {
264
- i0.ɵɵelement(0, "app-sign-ssn", 41);
227
+ function DynamicFormQuestionComponent_div_6_app_search_employer_15_Template(rf, ctx) { if (rf & 1) {
228
+ const _r77 = i0.ɵɵgetCurrentView();
229
+ i0.ɵɵelementStart(0, "app-search-employer", 45);
230
+ i0.ɵɵlistener("onFound", function DynamicFormQuestionComponent_div_6_app_search_employer_15_Template_app_search_employer_onFound_0_listener($event) { i0.ɵɵrestoreView(_r77); const ctx_r76 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r76.setEmployer($event)); })("onEmpty", function DynamicFormQuestionComponent_div_6_app_search_employer_15_Template_app_search_employer_onEmpty_0_listener() { i0.ɵɵrestoreView(_r77); const ctx_r78 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r78.resetEmployer()); });
231
+ i0.ɵɵelementEnd();
265
232
  } if (rf & 2) {
266
233
  const ctx_r50 = i0.ɵɵnextContext(2);
267
- i0.ɵɵproperty("isRequired", ctx_r50.question.isRequired)("formControlName", ctx_r50.question.name)("inputId", ctx_r50.question.name);
234
+ i0.ɵɵproperty("formControlName", ctx_r50.question.name);
268
235
  } }
269
- function DynamicFormQuestionComponent_div_6_app_job_title_16_Template(rf, ctx) { if (rf & 1) {
270
- i0.ɵɵelement(0, "app-job-title", 42, 43);
236
+ function DynamicFormQuestionComponent_div_6_app_add_participant_16_Template(rf, ctx) { if (rf & 1) {
237
+ i0.ɵɵelement(0, "app-add-participant", 46);
271
238
  } if (rf & 2) {
272
239
  const ctx_r51 = i0.ɵɵnextContext(2);
273
- i0.ɵɵproperty("control", ctx_r51.form.controls[ctx_r51.question.name]);
240
+ i0.ɵɵproperty("formControlName", ctx_r51.question.name)("dynamicParam", ctx_r51.dynamicParam);
241
+ } }
242
+ function DynamicFormQuestionComponent_div_6_app_add_payment_17_Template(rf, ctx) { if (rf & 1) {
243
+ i0.ɵɵelement(0, "app-add-payment", 47);
244
+ } if (rf & 2) {
245
+ const ctx_r52 = i0.ɵɵnextContext(2);
246
+ i0.ɵɵproperty("potentialIssueId", ctx_r52.potentialIssueId)("formControlName", ctx_r52.question.name);
247
+ } }
248
+ function DynamicFormQuestionComponent_div_6_app_link_18_Template(rf, ctx) { if (rf & 1) {
249
+ i0.ɵɵelement(0, "app-link", 48);
250
+ } if (rf & 2) {
251
+ const ctx_r53 = i0.ɵɵnextContext(2);
252
+ i0.ɵɵproperty("isRequired", ctx_r53.question.isRequired)("formControlName", ctx_r53.question.name)("text", ctx_r53.linkComponentData == null ? null : ctx_r53.linkComponentData.text)("uri", ctx_r53.linkComponentData == null ? null : ctx_r53.linkComponentData.uri)("externalUrl", ctx_r53.linkComponentData == null ? null : ctx_r53.linkComponentData.externalUrl);
253
+ } }
254
+ function DynamicFormQuestionComponent_div_6_app_sign_ssn_19_Template(rf, ctx) { if (rf & 1) {
255
+ i0.ɵɵelement(0, "app-sign-ssn", 49);
256
+ } if (rf & 2) {
257
+ const ctx_r54 = i0.ɵɵnextContext(2);
258
+ i0.ɵɵproperty("isRequired", ctx_r54.question.isRequired)("formControlName", ctx_r54.question.name)("inputId", ctx_r54.question.name);
259
+ } }
260
+ function DynamicFormQuestionComponent_div_6_app_employer_pay_grid_20_Template(rf, ctx) { if (rf & 1) {
261
+ i0.ɵɵelement(0, "app-employer-pay-grid", 37);
262
+ } if (rf & 2) {
263
+ const ctx_r55 = i0.ɵɵnextContext(2);
264
+ i0.ɵɵproperty("formControlName", ctx_r55.question.name);
265
+ } }
266
+ function DynamicFormQuestionComponent_div_6_app_sms_21_Template(rf, ctx) { if (rf & 1) {
267
+ const _r80 = i0.ɵɵgetCurrentView();
268
+ i0.ɵɵelementStart(0, "app-sms", 50);
269
+ i0.ɵɵlistener("accepted", function DynamicFormQuestionComponent_div_6_app_sms_21_Template_app_sms_accepted_0_listener($event) { i0.ɵɵrestoreView(_r80); const ctx_r79 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r79.onAcceptedOtp($event)); });
270
+ i0.ɵɵelementEnd();
271
+ } if (rf & 2) {
272
+ const ctx_r56 = i0.ɵɵnextContext(2);
273
+ i0.ɵɵproperty("formControlName", ctx_r56.question.name)("question", ctx_r56.question)("form", ctx_r56.form);
274
+ } }
275
+ function DynamicFormQuestionComponent_div_6_app_farm_usage_22_Template(rf, ctx) { if (rf & 1) {
276
+ i0.ɵɵelement(0, "app-farm-usage", 37);
277
+ } if (rf & 2) {
278
+ const ctx_r57 = i0.ɵɵnextContext(2);
279
+ i0.ɵɵproperty("formControlName", ctx_r57.question.name);
280
+ } }
281
+ function DynamicFormQuestionComponent_div_6_app_wage_grid_23_Template(rf, ctx) { if (rf & 1) {
282
+ i0.ɵɵelement(0, "app-wage-grid", 37);
283
+ } if (rf & 2) {
284
+ const ctx_r58 = i0.ɵɵnextContext(2);
285
+ i0.ɵɵproperty("formControlName", ctx_r58.question.name);
286
+ } }
287
+ function DynamicFormQuestionComponent_div_6_app_gross_earnings_24_Template(rf, ctx) { if (rf & 1) {
288
+ i0.ɵɵelement(0, "app-gross-earnings", 37);
289
+ } if (rf & 2) {
290
+ const ctx_r59 = i0.ɵɵnextContext(2);
291
+ i0.ɵɵproperty("formControlName", ctx_r59.question.name);
292
+ } }
293
+ function DynamicFormQuestionComponent_div_6_app_scrollable_text_25_Template(rf, ctx) { if (rf & 1) {
294
+ i0.ɵɵelement(0, "app-scrollable-text", 51);
295
+ } if (rf & 2) {
296
+ const ctx_r60 = i0.ɵɵnextContext(2);
297
+ i0.ɵɵproperty("componentData", ctx_r60.question.componentData)("formControlName", ctx_r60.question.name);
298
+ } }
299
+ function DynamicFormQuestionComponent_div_6_app_employer_info_26_Template(rf, ctx) { if (rf & 1) {
300
+ i0.ɵɵelement(0, "app-employer-info", 37);
301
+ } if (rf & 2) {
302
+ const ctx_r61 = i0.ɵɵnextContext(2);
303
+ i0.ɵɵproperty("formControlName", ctx_r61.question.name);
304
+ } }
305
+ function DynamicFormQuestionComponent_div_6_app_idme_27_Template(rf, ctx) { if (rf & 1) {
306
+ i0.ɵɵelement(0, "app-idme", 37);
307
+ } if (rf & 2) {
308
+ const ctx_r62 = i0.ɵɵnextContext(2);
309
+ i0.ɵɵproperty("formControlName", ctx_r62.question.name);
310
+ } }
311
+ function DynamicFormQuestionComponent_div_6_app_wage_calculator_28_Template(rf, ctx) { if (rf & 1) {
312
+ i0.ɵɵelement(0, "app-wage-calculator", 37);
313
+ } if (rf & 2) {
314
+ const ctx_r63 = i0.ɵɵnextContext(2);
315
+ i0.ɵɵproperty("formControlName", ctx_r63.question.name);
274
316
  } }
275
317
  function DynamicFormQuestionComponent_div_6_Template(rf, ctx) { if (rf & 1) {
276
318
  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);
319
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_div_6_app_employer_grid_1_Template, 1, 3, "app-employer-grid", 19)(2, DynamicFormQuestionComponent_div_6_app_offline_employer_grid_2_Template, 1, 3, "app-offline-employer-grid", 19)(3, DynamicFormQuestionComponent_div_6_app_legal_disclaimar_3_Template, 1, 3, "app-legal-disclaimar", 20)(4, DynamicFormQuestionComponent_div_6_app_offline_legal_disclaimar_4_Template, 1, 3, "app-offline-legal-disclaimar", 20)(5, DynamicFormQuestionComponent_div_6_money_expect_5_Template, 1, 1, "money-expect", 21)(6, DynamicFormQuestionComponent_div_6_app_captcha_6_Template, 1, 1, "app-captcha", 22)(7, DynamicFormQuestionComponent_div_6_app_file_uploader_7_Template, 1, 1, "app-file-uploader", 22)(8, DynamicFormQuestionComponent_div_6_app_address_8_Template, 2, 8, "app-address", 23)(9, DynamicFormQuestionComponent_div_6_app_job_title_9_Template, 1, 2, "app-job-title", 24)(10, DynamicFormQuestionComponent_div_6_app_bank_details_10_Template, 2, 1, "app-bank-details", 22)(11, DynamicFormQuestionComponent_div_6_app_offline_bank_details_11_Template, 2, 1, "app-offline-bank-details", 22)(12, DynamicFormQuestionComponent_div_6_app_requalify_lift_previous_issues_12_Template, 1, 4, "app-requalify-lift-previous-issues", 25)(13, DynamicFormQuestionComponent_div_6_app_dependent_grid_13_Template, 1, 1, "app-dependent-grid", 22)(14, DynamicFormQuestionComponent_div_6_app_weekly_cert_employer_grid_14_Template, 2, 3, "app-weekly-cert-employer-grid", 26)(15, DynamicFormQuestionComponent_div_6_app_search_employer_15_Template, 1, 1, "app-search-employer", 27)(16, DynamicFormQuestionComponent_div_6_app_add_participant_16_Template, 1, 2, "app-add-participant", 28)(17, DynamicFormQuestionComponent_div_6_app_add_payment_17_Template, 1, 2, "app-add-payment", 29)(18, DynamicFormQuestionComponent_div_6_app_link_18_Template, 1, 5, "app-link", 30)(19, DynamicFormQuestionComponent_div_6_app_sign_ssn_19_Template, 1, 3, "app-sign-ssn", 31)(20, DynamicFormQuestionComponent_div_6_app_employer_pay_grid_20_Template, 1, 1, "app-employer-pay-grid", 22)(21, DynamicFormQuestionComponent_div_6_app_sms_21_Template, 1, 3, "app-sms", 32)(22, DynamicFormQuestionComponent_div_6_app_farm_usage_22_Template, 1, 1, "app-farm-usage", 22)(23, DynamicFormQuestionComponent_div_6_app_wage_grid_23_Template, 1, 1, "app-wage-grid", 22)(24, DynamicFormQuestionComponent_div_6_app_gross_earnings_24_Template, 1, 1, "app-gross-earnings", 22)(25, DynamicFormQuestionComponent_div_6_app_scrollable_text_25_Template, 1, 2, "app-scrollable-text", 33)(26, DynamicFormQuestionComponent_div_6_app_employer_info_26_Template, 1, 1, "app-employer-info", 22)(27, DynamicFormQuestionComponent_div_6_app_idme_27_Template, 1, 1, "app-idme", 22)(28, DynamicFormQuestionComponent_div_6_app_wage_calculator_28_Template, 1, 1, "app-wage-calculator", 22);
278
320
  i0.ɵɵelementEnd();
279
321
  } if (rf & 2) {
280
322
  const ctx_r5 = i0.ɵɵnextContext();
281
323
  i0.ɵɵadvance(1);
282
324
  i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-employer-grid");
283
325
  i0.ɵɵadvance(1);
326
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-offline-employer-grid");
327
+ i0.ɵɵadvance(1);
284
328
  i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-legal-disclaimar");
285
329
  i0.ɵɵadvance(1);
330
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-offline-legal-disclaimar");
331
+ i0.ɵɵadvance(1);
286
332
  i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "money-expect");
287
333
  i0.ɵɵadvance(1);
288
334
  i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-captcha");
@@ -291,8 +337,12 @@ function DynamicFormQuestionComponent_div_6_Template(rf, ctx) { if (rf & 1) {
291
337
  i0.ɵɵadvance(1);
292
338
  i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-address");
293
339
  i0.ɵɵadvance(1);
340
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-job-title");
341
+ i0.ɵɵadvance(1);
294
342
  i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-bank-details");
295
343
  i0.ɵɵadvance(1);
344
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-offline-bank-details");
345
+ i0.ɵɵadvance(1);
296
346
  i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-requalify-lift-previous-issues");
297
347
  i0.ɵɵadvance(1);
298
348
  i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-dependent-grid");
@@ -309,11 +359,27 @@ function DynamicFormQuestionComponent_div_6_Template(rf, ctx) { if (rf & 1) {
309
359
  i0.ɵɵadvance(1);
310
360
  i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-sign-ssn");
311
361
  i0.ɵɵadvance(1);
312
- i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-job-title");
362
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-employer-pay-grid");
363
+ i0.ɵɵadvance(1);
364
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-sms");
365
+ i0.ɵɵadvance(1);
366
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-farm-usage");
367
+ i0.ɵɵadvance(1);
368
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-wage-grid");
369
+ i0.ɵɵadvance(1);
370
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-gross-earnings");
371
+ i0.ɵɵadvance(1);
372
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-scrollable-text");
373
+ i0.ɵɵadvance(1);
374
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-employer-info");
375
+ i0.ɵɵadvance(1);
376
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-idme");
377
+ i0.ɵɵadvance(1);
378
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-wage-calculator");
313
379
  } }
314
380
  function DynamicFormQuestionComponent_div_7_Template(rf, ctx) { if (rf & 1) {
315
- i0.ɵɵelementStart(0, "div", 16);
316
- i0.ɵɵelement(1, "span", 17);
381
+ i0.ɵɵelementStart(0, "div", 17);
382
+ i0.ɵɵelement(1, "span", 18);
317
383
  i0.ɵɵpipe(2, "trustHtml");
318
384
  i0.ɵɵpipe(3, "dynamicTranslate");
319
385
  i0.ɵɵelementEnd();
@@ -324,21 +390,21 @@ function DynamicFormQuestionComponent_div_7_Template(rf, ctx) { if (rf & 1) {
324
390
  i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(2, 2, i0.ɵɵpipeBind2(3, 4, ctx_r6.question.title, ctx_r6.dynamicParam)), i0.ɵɵsanitizeHtml);
325
391
  } }
326
392
  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);
393
+ i0.ɵɵelementStart(0, "div", 55);
394
+ i0.ɵɵelement(1, "app-overlay-info", 56);
329
395
  i0.ɵɵpipe(2, "dynamicTranslate");
330
396
  i0.ɵɵelementEnd();
331
397
  } if (rf & 2) {
332
- const ctx_r63 = i0.ɵɵnextContext(2);
398
+ const ctx_r81 = i0.ɵɵnextContext(2);
333
399
  i0.ɵɵadvance(1);
334
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r63.question.description, ctx_r63.dynamicParam));
400
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r81.question.description, ctx_r81.dynamicParam));
335
401
  } }
336
402
  function DynamicFormQuestionComponent_div_8_Template(rf, ctx) { if (rf & 1) {
337
- i0.ɵɵelementStart(0, "div", 44);
338
- i0.ɵɵelement(1, "div", 45);
403
+ i0.ɵɵelementStart(0, "div", 52);
404
+ i0.ɵɵelement(1, "div", 53);
339
405
  i0.ɵɵpipe(2, "trustHtml");
340
406
  i0.ɵɵpipe(3, "dynamicTranslate");
341
- i0.ɵɵtemplate(4, DynamicFormQuestionComponent_div_8_div_4_Template, 3, 4, "div", 46);
407
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_div_8_div_4_Template, 3, 4, "div", 54);
342
408
  i0.ɵɵelementEnd();
343
409
  } if (rf & 2) {
344
410
  const ctx_r7 = i0.ɵɵnextContext();
@@ -348,497 +414,397 @@ function DynamicFormQuestionComponent_div_8_Template(rf, ctx) { if (rf & 1) {
348
414
  i0.ɵɵproperty("ngIf", ctx_r7.question.description);
349
415
  } }
350
416
  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)); });
417
+ const _r97 = i0.ɵɵgetCurrentView();
418
+ i0.ɵɵelementStart(0, "div")(1, "div", 59)(2, "p-calendar", 60);
419
+ i0.ɵɵlistener("onBlur", function DynamicFormQuestionComponent_ng_container_10_div_2_Template_p_calendar_onBlur_2_listener() { i0.ɵɵrestoreView(_r97); const ctx_r96 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r96.validate(ctx_r96.question)); })("onSelect", function DynamicFormQuestionComponent_ng_container_10_div_2_Template_p_calendar_onSelect_2_listener() { i0.ɵɵrestoreView(_r97); const ctx_r98 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r98.validate(ctx_r98.question)); })("onInput", function DynamicFormQuestionComponent_ng_container_10_div_2_Template_p_calendar_onInput_2_listener($event) { i0.ɵɵrestoreView(_r97); const ctx_r99 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r99.dateInput($event)); });
354
420
  i0.ɵɵelementEnd()()();
355
421
  } if (rf & 2) {
356
- const ctx_r64 = i0.ɵɵnextContext(2);
422
+ const ctx_r82 = i0.ɵɵnextContext(2);
357
423
  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);
424
+ i0.ɵɵproperty("ngStyle", ctx_r82.setStyle(ctx_r82.question.indent));
425
+ i0.ɵɵadvance(1);
426
+ i0.ɵɵproperty("formControlName", ctx_r82.question.name)("inputId", ctx_r82.question.name)("monthNavigator", true)("yearNavigator", true)("showIcon", true)("minDate", ctx_r82.showMinDate ? ctx_r82.minDate : null)("maxDate", ctx_r82.showMaxDate ? ctx_r82.maxDate : null)("showOnFocus", false)("iconAriaLabel", ctx_r82.question.title);
361
427
  } }
362
428
  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()()();
429
+ const _r101 = i0.ɵɵgetCurrentView();
430
+ i0.ɵɵelementStart(0, "div", 59)(1, "p-inputMask", 61);
431
+ i0.ɵɵlistener("onComplete", function DynamicFormQuestionComponent_ng_container_10_div_3_Template_p_inputMask_onComplete_1_listener() { i0.ɵɵrestoreView(_r101); const ctx_r100 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r100.validate(ctx_r100.question)); })("onFocus", function DynamicFormQuestionComponent_ng_container_10_div_3_Template_p_inputMask_onFocus_1_listener($event) { i0.ɵɵrestoreView(_r101); const ctx_r102 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r102.unmask($event)); })("onBlur", function DynamicFormQuestionComponent_ng_container_10_div_3_Template_p_inputMask_onBlur_1_listener($event) { i0.ɵɵrestoreView(_r101); const ctx_r103 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r103.mask($event)); });
432
+ i0.ɵɵelementEnd()();
367
433
  } if (rf & 2) {
368
- const ctx_r65 = i0.ɵɵnextContext(2);
434
+ const ctx_r83 = i0.ɵɵnextContext(2);
435
+ i0.ɵɵproperty("ngStyle", ctx_r83.setStyle(ctx_r83.question.indent));
369
436
  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);
437
+ i0.ɵɵproperty("inputId", ctx_r83.question.name)("formControlName", ctx_r83.question.name)("type", ctx_r83.type);
438
+ i0.ɵɵattribute("aria-label", ctx_r83.question.title);
373
439
  } }
374
440
  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)); });
441
+ const _r105 = i0.ɵɵgetCurrentView();
442
+ i0.ɵɵelementStart(0, "div", 59)(1, "p-inputMask", 62);
443
+ i0.ɵɵlistener("onComplete", function DynamicFormQuestionComponent_ng_container_10_div_4_Template_p_inputMask_onComplete_1_listener() { i0.ɵɵrestoreView(_r105); const ctx_r104 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r104.validate(ctx_r104.question)); })("onFocus", function DynamicFormQuestionComponent_ng_container_10_div_4_Template_p_inputMask_onFocus_1_listener($event) { i0.ɵɵrestoreView(_r105); const ctx_r106 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r106.unmask($event)); })("onBlur", function DynamicFormQuestionComponent_ng_container_10_div_4_Template_p_inputMask_onBlur_1_listener($event) { i0.ɵɵrestoreView(_r105); const ctx_r107 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r107.mask($event)); });
378
444
  i0.ɵɵelementEnd()();
379
445
  } if (rf & 2) {
380
- const ctx_r66 = i0.ɵɵnextContext(2);
381
- i0.ɵɵproperty("ngStyle", ctx_r66.setStyle(ctx_r66.question.indent));
446
+ const ctx_r84 = i0.ɵɵnextContext(2);
447
+ i0.ɵɵproperty("ngStyle", ctx_r84.setStyle(ctx_r84.question.indent));
382
448
  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);
449
+ i0.ɵɵproperty("inputId", ctx_r84.question.name)("formControlName", ctx_r84.question.name)("type", ctx_r84.type);
450
+ i0.ɵɵattribute("aria-label", ctx_r84.question.title);
386
451
  } }
387
452
  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)); });
453
+ const _r109 = i0.ɵɵgetCurrentView();
454
+ i0.ɵɵelementStart(0, "div", 59)(1, "p-inputMask", 63);
455
+ i0.ɵɵlistener("onComplete", function DynamicFormQuestionComponent_ng_container_10_div_5_Template_p_inputMask_onComplete_1_listener() { i0.ɵɵrestoreView(_r109); const ctx_r108 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r108.validate(ctx_r108.question)); });
391
456
  i0.ɵɵelementEnd()();
392
457
  } if (rf & 2) {
393
- const ctx_r67 = i0.ɵɵnextContext(2);
394
- i0.ɵɵproperty("ngStyle", ctx_r67.setStyle(ctx_r67.question.indent));
458
+ const ctx_r85 = i0.ɵɵnextContext(2);
459
+ i0.ɵɵproperty("ngStyle", ctx_r85.setStyle(ctx_r85.question.indent));
395
460
  i0.ɵɵadvance(1);
396
- i0.ɵɵproperty("inputId", ctx_r67.question.name)("formControlName", ctx_r67.question.name)("value", 81 - 586 - 0 - 1);
461
+ i0.ɵɵproperty("inputId", ctx_r85.question.name)("formControlName", ctx_r85.question.name)("value", 81 - 586 - 0 - 1);
397
462
  } }
398
463
  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);
464
+ i0.ɵɵelementStart(0, "div", 59);
465
+ i0.ɵɵelement(1, "p-inputNumber", 64);
401
466
  i0.ɵɵelementEnd();
402
467
  } if (rf & 2) {
403
- const ctx_r68 = i0.ɵɵnextContext(2);
404
- i0.ɵɵproperty("ngStyle", ctx_r68.setStyle(ctx_r68.question.indent));
468
+ const ctx_r86 = i0.ɵɵnextContext(2);
469
+ i0.ɵɵproperty("ngStyle", ctx_r86.setStyle(ctx_r86.question.indent));
405
470
  i0.ɵɵadvance(1);
406
- i0.ɵɵproperty("inputId", ctx_r68.question.name)("formControlName", ctx_r68.question.name)("minFractionDigits", 2)("ariaLabel", ctx_r68.question.title);
471
+ i0.ɵɵproperty("inputId", ctx_r86.question.name)("formControlName", ctx_r86.question.name)("minFractionDigits", 2)("ariaLabel", ctx_r86.question.title);
407
472
  } }
408
473
  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");
474
+ i0.ɵɵelement(0, "input", 68);
411
475
  } 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);
476
+ const ctx_r110 = i0.ɵɵnextContext(3);
477
+ i0.ɵɵproperty("maxLength", ctx_r110.question.maxLength)("placeholder", ctx_r110.question.placeholder || ctx_r110.question.placeholder === "" ? ctx_r110.question.placeholder : "Optional")("id", ctx_r110.question.name)("formControlName", ctx_r110.question.name);
478
+ i0.ɵɵattribute("aria-label", ctx_r110.question.title);
416
479
  } }
417
480
  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");
481
+ i0.ɵɵelement(0, "input", 69);
420
482
  } 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);
483
+ const ctx_r111 = i0.ɵɵnextContext(3);
484
+ i0.ɵɵproperty("placeholder", ctx_r111.question.placeholder || ctx_r111.question.placeholder === "" ? ctx_r111.question.placeholder : "Optional")("id", ctx_r111.question.name)("formControlName", ctx_r111.question.name);
485
+ i0.ɵɵattribute("aria-label", ctx_r111.question.title);
425
486
  } }
426
487
  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");
488
+ i0.ɵɵelement(0, "input", 68);
429
489
  } 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);
490
+ const ctx_r112 = i0.ɵɵnextContext(3);
491
+ i0.ɵɵproperty("maxLength", ctx_r112.question.maxLength)("placeholder", ctx_r112.question.placeholder || ctx_r112.question.placeholder === "" ? ctx_r112.question.placeholder : "Optional")("id", ctx_r112.question.name)("formControlName", ctx_r112.question.name);
433
492
  } }
434
493
  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");
494
+ i0.ɵɵelement(0, "input", 70);
437
495
  } 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);
496
+ const ctx_r113 = i0.ɵɵnextContext(3);
497
+ i0.ɵɵproperty("id", ctx_r113.question.name)("formControlName", ctx_r113.question.name)("placeholder", ctx_r113.question.placeholder || ctx_r113.question.placeholder === "" ? ctx_r113.question.placeholder : "Optional");
498
+ i0.ɵɵattribute("aria-label", ctx_r113.question.title);
442
499
  } }
443
500
  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);
501
+ i0.ɵɵelementStart(0, "div", 59);
502
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_7_input_1_Template, 1, 5, "input", 65)(2, DynamicFormQuestionComponent_ng_container_10_div_7_input_2_Template, 1, 4, "input", 66)(3, DynamicFormQuestionComponent_ng_container_10_div_7_input_3_Template, 1, 4, "input", 65)(4, DynamicFormQuestionComponent_ng_container_10_div_7_input_4_Template, 1, 4, "input", 67);
446
503
  i0.ɵɵelementEnd();
447
504
  } if (rf & 2) {
448
- const ctx_r69 = i0.ɵɵnextContext(2);
449
- i0.ɵɵproperty("ngStyle", ctx_r69.setStyle(ctx_r69.question.indent));
505
+ const ctx_r87 = i0.ɵɵnextContext(2);
506
+ i0.ɵɵproperty("ngStyle", ctx_r87.setStyle(ctx_r87.question.indent));
450
507
  i0.ɵɵadvance(1);
451
- i0.ɵɵproperty("ngIf", ctx_r69.question.size && ctx_r69.question.maxLength);
508
+ i0.ɵɵproperty("ngIf", ctx_r87.question.size && ctx_r87.question.maxLength);
452
509
  i0.ɵɵadvance(1);
453
- i0.ɵɵproperty("ngIf", ctx_r69.question.size && !ctx_r69.question.maxLength);
510
+ i0.ɵɵproperty("ngIf", ctx_r87.question.size && !ctx_r87.question.maxLength);
454
511
  i0.ɵɵadvance(1);
455
- i0.ɵɵproperty("ngIf", !ctx_r69.question.size && ctx_r69.question.maxLength);
512
+ i0.ɵɵproperty("ngIf", !ctx_r87.question.size && ctx_r87.question.maxLength);
456
513
  i0.ɵɵadvance(1);
457
- i0.ɵɵproperty("ngIf", !ctx_r69.question.size && !ctx_r69.question.maxLength);
514
+ i0.ɵɵproperty("ngIf", !ctx_r87.question.size && !ctx_r87.question.maxLength);
458
515
  } }
459
516
  function DynamicFormQuestionComponent_ng_container_10_div_8_input_1_Template(rf, ctx) { if (rf & 1) {
460
- i0.ɵɵelement(0, "input", 65);
517
+ i0.ɵɵelement(0, "input", 72);
461
518
  } 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);
519
+ const ctx_r114 = i0.ɵɵnextContext(3);
520
+ i0.ɵɵproperty("maxLength", ctx_r114.question.maxLength)("id", ctx_r114.question.name)("formControlName", ctx_r114.question.name)("placeholder", ctx_r114.question.placeholder ? ctx_r114.question.placeholder : "");
521
+ i0.ɵɵattribute("aria-label", ctx_r114.question.title);
465
522
  } }
466
523
  function DynamicFormQuestionComponent_ng_container_10_div_8_input_2_Template(rf, ctx) { if (rf & 1) {
467
- i0.ɵɵelement(0, "input", 63);
524
+ i0.ɵɵelement(0, "input", 70);
468
525
  } 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);
526
+ const ctx_r115 = i0.ɵɵnextContext(3);
527
+ i0.ɵɵproperty("id", ctx_r115.question.name)("formControlName", ctx_r115.question.name)("placeholder", ctx_r115.question.placeholder ? ctx_r115.question.placeholder : "");
528
+ i0.ɵɵattribute("aria-label", ctx_r115.question.title);
472
529
  } }
473
530
  function DynamicFormQuestionComponent_ng_container_10_div_8_input_3_Template(rf, ctx) { if (rf & 1) {
474
- i0.ɵɵelement(0, "input", 65);
531
+ i0.ɵɵelement(0, "input", 72);
475
532
  } 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);
533
+ const ctx_r116 = i0.ɵɵnextContext(3);
534
+ i0.ɵɵproperty("maxLength", ctx_r116.question.maxLength)("id", ctx_r116.question.name)("formControlName", ctx_r116.question.name)("placeholder", ctx_r116.question.placeholder ? ctx_r116.question.placeholder : "");
535
+ i0.ɵɵattribute("aria-label", ctx_r116.question.title);
479
536
  } }
480
537
  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
538
  i0.ɵɵelement(0, "input", 70);
512
539
  } 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);
540
+ const ctx_r117 = i0.ɵɵnextContext(3);
541
+ i0.ɵɵproperty("id", ctx_r117.question.name)("formControlName", ctx_r117.question.name)("placeholder", ctx_r117.question.placeholder ? ctx_r117.question.placeholder : "");
542
+ i0.ɵɵattribute("aria-label", ctx_r117.question.title);
516
543
  } }
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);
544
+ function DynamicFormQuestionComponent_ng_container_10_div_8_Template(rf, ctx) { if (rf & 1) {
545
+ i0.ɵɵelementStart(0, "div", 59);
546
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_8_input_1_Template, 1, 5, "input", 71)(2, DynamicFormQuestionComponent_ng_container_10_div_8_input_2_Template, 1, 4, "input", 67)(3, DynamicFormQuestionComponent_ng_container_10_div_8_input_3_Template, 1, 5, "input", 71)(4, DynamicFormQuestionComponent_ng_container_10_div_8_input_4_Template, 1, 4, "input", 67);
534
547
  i0.ɵɵelementEnd();
535
548
  } 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);
549
+ const ctx_r88 = i0.ɵɵnextContext(2);
550
+ i0.ɵɵproperty("ngStyle", ctx_r88.setStyle(ctx_r88.question.indent));
553
551
  i0.ɵɵadvance(1);
554
- i0.ɵɵproperty("ngStyle", ctx_r72.setStyle(ctx_r72.question.indent));
552
+ i0.ɵɵproperty("ngIf", ctx_r88.question.size && ctx_r88.question.maxLength);
555
553
  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);
554
+ i0.ɵɵproperty("ngIf", ctx_r88.question.size && !ctx_r88.question.maxLength);
565
555
  i0.ɵɵadvance(1);
566
- i0.ɵɵproperty("ngStyle", ctx_r73.setStyle(ctx_r73.question.indent));
556
+ i0.ɵɵproperty("ngIf", !ctx_r88.question.size && ctx_r88.question.maxLength);
567
557
  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);
558
+ i0.ɵɵproperty("ngIf", !ctx_r88.question.size && !ctx_r88.question.maxLength);
570
559
  } }
571
560
  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);
561
+ function DynamicFormQuestionComponent_ng_container_10_div_9_Template(rf, ctx) { if (rf & 1) {
562
+ i0.ɵɵelementStart(0, "div", 59);
563
+ i0.ɵɵelement(1, "input", 70);
575
564
  i0.ɵɵelementEnd();
576
565
  } 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));
566
+ const ctx_r89 = i0.ɵɵnextContext(2);
567
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(6, _c6, ctx_r89.question.indent * 10))("ngStyle", ctx_r89.setStyle(ctx_r89.question.indent));
579
568
  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);
569
+ i0.ɵɵproperty("id", ctx_r89.question.name)("formControlName", ctx_r89.question.name)("placeholder", ctx_r89.question.placeholder ? ctx_r89.question.placeholder : "");
570
+ i0.ɵɵattribute("aria-label", ctx_r89.question.title);
582
571
  } }
583
- function DynamicFormQuestionComponent_ng_container_10_div_13_p_inputMask_1_Template(rf, ctx) { if (rf & 1) {
584
- const _r113 = i0.ɵɵgetCurrentView();
572
+ function DynamicFormQuestionComponent_ng_container_10_div_10_p_inputMask_1_Template(rf, ctx) { if (rf & 1) {
573
+ const _r120 = i0.ɵɵgetCurrentView();
585
574
  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");
575
+ i0.ɵɵlistener("onBlur", function DynamicFormQuestionComponent_ng_container_10_div_10_p_inputMask_1_Template_p_inputMask_onBlur_0_listener($event) { i0.ɵɵrestoreView(_r120); const ctx_r119 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r119.checkForValueChange($event)); });
588
576
  i0.ɵɵelementEnd();
589
577
  } 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);
578
+ const ctx_r118 = i0.ɵɵnextContext(3);
579
+ i0.ɵɵproperty("inputId", ctx_r118.question.name)("formControlName", ctx_r118.question.name)("placeholder", ctx_r118.question.isRequired ? "999-999-9999" : "Optional");
580
+ i0.ɵɵattribute("aria-label", ctx_r118.question.title);
593
581
  } }
594
- function DynamicFormQuestionComponent_ng_container_10_div_13_Template(rf, ctx) { if (rf & 1) {
582
+ function DynamicFormQuestionComponent_ng_container_10_div_10_Template(rf, ctx) { if (rf & 1) {
595
583
  i0.ɵɵelementStart(0, "div");
596
- i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_13_p_inputMask_1_Template, 2, 6, "p-inputMask", 73);
584
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_10_p_inputMask_1_Template, 1, 4, "p-inputMask", 73);
597
585
  i0.ɵɵelementEnd();
598
586
  } if (rf & 2) {
599
- const ctx_r75 = i0.ɵɵnextContext(2);
587
+ const ctx_r90 = i0.ɵɵnextContext(2);
600
588
  i0.ɵɵadvance(1);
601
- i0.ɵɵproperty("ngIf", ctx_r75.question.inputType && ctx_r75.question.inputType === "text");
589
+ i0.ɵɵproperty("ngIf", ctx_r90.question.inputType && ctx_r90.question.inputType === "text");
590
+ } }
591
+ function DynamicFormQuestionComponent_ng_container_10_div_11_ng_template_2_li_10_Template(rf, ctx) { if (rf & 1) {
592
+ i0.ɵɵelementStart(0, "li", 78);
593
+ i0.ɵɵtext(1, "1 of the following characters ");
594
+ i0.ɵɵelementStart(2, "b");
595
+ i0.ɵɵtext(3, "_ @ * $ ! # .");
596
+ i0.ɵɵelementEnd()();
597
+ } }
598
+ function DynamicFormQuestionComponent_ng_container_10_div_11_ng_template_2_li_11_Template(rf, ctx) { if (rf & 1) {
599
+ i0.ɵɵelementStart(0, "li", 78);
600
+ i0.ɵɵtext(1, "2 of the following characters ");
601
+ i0.ɵɵelementStart(2, "b");
602
+ i0.ɵɵtext(3, "_ @ * $ ! # .");
603
+ i0.ɵɵelementEnd()();
602
604
  } }
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");
605
+ function DynamicFormQuestionComponent_ng_container_10_div_11_ng_template_2_li_12_Template(rf, ctx) { if (rf & 1) {
606
+ i0.ɵɵelementStart(0, "li", 78);
607
+ i0.ɵɵtext(1, "8 characters");
608
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
609
  } }
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);
610
+ function DynamicFormQuestionComponent_ng_container_10_div_11_ng_template_2_li_13_Template(rf, ctx) { if (rf & 1) {
611
+ i0.ɵɵelementStart(0, "li", 78);
612
+ i0.ɵɵtext(1, "14 characters");
617
613
  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
614
  } }
623
- function DynamicFormQuestionComponent_ng_container_10_div_15_ng_template_2_Template(rf, ctx) { if (rf & 1) {
615
+ function DynamicFormQuestionComponent_ng_container_10_div_11_ng_template_2_Template(rf, ctx) { if (rf & 1) {
624
616
  i0.ɵɵelement(0, "p-divider");
625
- i0.ɵɵelementStart(1, "p", 78);
617
+ i0.ɵɵelementStart(1, "p", 76);
626
618
  i0.ɵɵtext(2, "Password must include at least");
627
619
  i0.ɵɵelementEnd();
628
- i0.ɵɵelementStart(3, "ul", 79)(4, "li", 80);
629
- i0.ɵɵtext(5, "1 uppercase letter");
620
+ i0.ɵɵelementStart(3, "ul", 77)(4, "li", 78);
621
+ i0.ɵɵtext(5, "1 lowercase letter");
630
622
  i0.ɵɵelementEnd();
631
- i0.ɵɵelementStart(6, "li", 80);
632
- i0.ɵɵtext(7, "1 lowercase letter");
623
+ i0.ɵɵelementStart(6, "li", 78);
624
+ i0.ɵɵtext(7, "1 uppercase letter");
633
625
  i0.ɵɵelementEnd();
634
- i0.ɵɵelementStart(8, "li", 80);
626
+ i0.ɵɵelementStart(8, "li", 78);
635
627
  i0.ɵɵtext(9, "1 number");
636
628
  i0.ɵɵelementEnd();
637
- i0.ɵɵelementStart(10, "li", 80);
638
- i0.ɵɵtext(11, "2 of the following characters ");
639
- i0.ɵɵelementStart(12, "b");
640
- i0.ɵɵtext(13, "_ @ * $ ! # .");
641
- i0.ɵɵelementEnd()();
642
- i0.ɵɵelementStart(14, "li", 80);
643
- i0.ɵɵtext(15, "14 characters");
644
- i0.ɵɵelementEnd()();
645
- i0.ɵɵelement(16, "p-divider");
646
- i0.ɵɵelementStart(17, "p", 78);
647
- i0.ɵɵtext(18, "Suggestion");
629
+ i0.ɵɵtemplate(10, DynamicFormQuestionComponent_ng_container_10_div_11_ng_template_2_li_10_Template, 4, 0, "li", 79)(11, DynamicFormQuestionComponent_ng_container_10_div_11_ng_template_2_li_11_Template, 4, 0, "li", 79)(12, DynamicFormQuestionComponent_ng_container_10_div_11_ng_template_2_li_12_Template, 2, 0, "li", 79)(13, DynamicFormQuestionComponent_ng_container_10_div_11_ng_template_2_li_13_Template, 2, 0, "li", 79);
648
630
  i0.ɵɵelementEnd();
649
- i0.ɵɵelementStart(19, "ul", 79)(20, "li", 80);
650
- i0.ɵɵtext(21, "Don't use your name, email or phone.");
631
+ i0.ɵɵelement(14, "p-divider");
632
+ i0.ɵɵelementStart(15, "p", 76);
633
+ i0.ɵɵtext(16, "Suggestion");
651
634
  i0.ɵɵelementEnd();
652
- i0.ɵɵelementStart(22, "li", 80);
653
- i0.ɵɵtext(23, "Don't use your kid, partner or pet name.");
635
+ i0.ɵɵelementStart(17, "ul", 77)(18, "li", 78);
636
+ i0.ɵɵtext(19, "Don't use your name, email or phone");
654
637
  i0.ɵɵelementEnd();
655
- i0.ɵɵelementStart(24, "li", 80);
656
- i0.ɵɵtext(25, "Your password cannot contain your name and/or your user id.");
638
+ i0.ɵɵelementStart(20, "li", 78);
639
+ i0.ɵɵtext(21, "Don't use your kid, partner or pet name.");
657
640
  i0.ɵɵelementEnd()();
641
+ } if (rf & 2) {
642
+ const ctx_r121 = i0.ɵɵnextContext(3);
643
+ i0.ɵɵadvance(10);
644
+ i0.ɵɵproperty("ngIf", !ctx_r121.isSameSymbolPolicyForClaimantAndAgency);
645
+ i0.ɵɵadvance(1);
646
+ i0.ɵɵproperty("ngIf", ctx_r121.isSameSymbolPolicyForClaimantAndAgency);
647
+ i0.ɵɵadvance(1);
648
+ i0.ɵɵproperty("ngIf", !ctx_r121.isNewPasswordPolicyEnabledForClaimant);
649
+ i0.ɵɵadvance(1);
650
+ i0.ɵɵproperty("ngIf", ctx_r121.isNewPasswordPolicyEnabledForClaimant);
658
651
  } }
659
- function DynamicFormQuestionComponent_ng_container_10_div_15_Template(rf, ctx) { if (rf & 1) {
660
- i0.ɵɵelementStart(0, "div")(1, "p-password", 77);
661
- i0.ɵɵtemplate(2, DynamicFormQuestionComponent_ng_container_10_div_15_ng_template_2_Template, 26, 0, "ng-template", 11);
652
+ function DynamicFormQuestionComponent_ng_container_10_div_11_Template(rf, ctx) { if (rf & 1) {
653
+ i0.ɵɵelementStart(0, "div")(1, "p-password", 75);
654
+ i0.ɵɵtemplate(2, DynamicFormQuestionComponent_ng_container_10_div_11_ng_template_2_Template, 22, 4, "ng-template", 12);
662
655
  i0.ɵɵelementEnd()();
663
656
  } if (rf & 2) {
664
- const ctx_r77 = i0.ɵɵnextContext(2);
657
+ const ctx_r91 = i0.ɵɵnextContext(2);
665
658
  i0.ɵɵadvance(1);
666
- i0.ɵɵproperty("inputId", ctx_r77.question.name)("formControlName", ctx_r77.question.name)("toggleMask", true)("maxLength", ctx_r77.question.maxLength)("ariaLabel", ctx_r77.question.title);
659
+ i0.ɵɵproperty("inputId", ctx_r91.question.name)("formControlName", ctx_r91.question.name)("toggleMask", true)("maxLength", ctx_r91.question.maxLength)("ariaLabel", ctx_r91.question.title);
667
660
  } }
668
- function DynamicFormQuestionComponent_ng_container_10_div_16_Template(rf, ctx) { if (rf & 1) {
661
+ function DynamicFormQuestionComponent_ng_container_10_div_12_Template(rf, ctx) { if (rf & 1) {
669
662
  i0.ɵɵelementStart(0, "div");
670
- i0.ɵɵelement(1, "app-file-uploader", 81);
663
+ i0.ɵɵelement(1, "app-file-uploader", 80);
671
664
  i0.ɵɵelementEnd();
672
665
  } if (rf & 2) {
673
- const ctx_r78 = i0.ɵɵnextContext(2);
666
+ const ctx_r92 = i0.ɵɵnextContext(2);
674
667
  i0.ɵɵadvance(1);
675
- 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);
676
- i0.ɵɵattribute("aria-label", ctx_r78.question.title);
668
+ i0.ɵɵproperty("allowedFileType", ctx_r92.question.allowedFileType)("formControlName", ctx_r92.question.name)("maxSizeInMB", ctx_r92.question.sizeInMB)("multiple", ctx_r92.question.multiple)("noOfFilesToUpload", ctx_r92.question.noOFFiles);
669
+ i0.ɵɵattribute("aria-label", ctx_r92.question.title);
677
670
  } }
678
- function DynamicFormQuestionComponent_ng_container_10_div_17_Template(rf, ctx) { if (rf & 1) {
679
- const _r119 = i0.ɵɵgetCurrentView();
680
- i0.ɵɵelementStart(0, "div")(1, "div", 51)(2, "input", 82);
681
- 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)); });
682
- i0.ɵɵelementEnd()()();
683
- } if (rf & 2) {
684
- const ctx_r79 = i0.ɵɵnextContext(2);
685
- i0.ɵɵadvance(1);
686
- i0.ɵɵproperty("ngStyle", ctx_r79.setStyle(ctx_r79.question.indent));
687
- i0.ɵɵadvance(1);
688
- i0.ɵɵproperty("id", ctx_r79.question.name)("formControlName", ctx_r79.question.name)("disabled", true)("placeholder", ctx_r79.question.placeholder ? ctx_r79.question.placeholder : "");
689
- i0.ɵɵattribute("aria-label", ctx_r79.question.title)("aria-label", ctx_r79.question.title);
690
- } }
691
- function DynamicFormQuestionComponent_ng_container_10_div_19_Template(rf, ctx) { if (rf & 1) {
692
- const _r121 = i0.ɵɵgetCurrentView();
693
- i0.ɵɵelementStart(0, "div")(1, "div", 51)(2, "input", 83);
694
- 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)); });
671
+ function DynamicFormQuestionComponent_ng_container_10_div_13_Template(rf, ctx) { if (rf & 1) {
672
+ const _r127 = i0.ɵɵgetCurrentView();
673
+ i0.ɵɵelementStart(0, "div")(1, "div", 59)(2, "input", 81);
674
+ i0.ɵɵlistener("blur", function DynamicFormQuestionComponent_ng_container_10_div_13_Template_input_blur_2_listener($event) { i0.ɵɵrestoreView(_r127); const ctx_r126 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r126.checkForValueChange($event)); });
695
675
  i0.ɵɵelementEnd()()();
696
676
  } if (rf & 2) {
697
- const ctx_r80 = i0.ɵɵnextContext(2);
677
+ const ctx_r93 = i0.ɵɵnextContext(2);
698
678
  i0.ɵɵadvance(1);
699
- i0.ɵɵproperty("ngStyle", ctx_r80.setStyle(ctx_r80.question.indent));
679
+ i0.ɵɵproperty("ngStyle", ctx_r93.setStyle(ctx_r93.question.indent));
700
680
  i0.ɵɵadvance(1);
701
- i0.ɵɵproperty("id", ctx_r80.question.name)("formControlName", ctx_r80.question.name);
702
- i0.ɵɵattribute("aria-label", ctx_r80.question.title)("aria-label", ctx_r80.question.title);
681
+ i0.ɵɵproperty("id", ctx_r93.question.name)("formControlName", ctx_r93.question.name)("placeholder", ctx_r93.question.placeholder ? ctx_r93.question.placeholder : "");
682
+ i0.ɵɵattribute("aria-label", ctx_r93.question.title)("aria-label", ctx_r93.question.title);
703
683
  } }
704
- function DynamicFormQuestionComponent_ng_container_10_div_20_input_1_Template(rf, ctx) { if (rf & 1) {
705
- i0.ɵɵelement(0, "input", 63);
684
+ function DynamicFormQuestionComponent_ng_container_10_div_14_input_1_Template(rf, ctx) { if (rf & 1) {
685
+ i0.ɵɵelement(0, "input", 70);
706
686
  } if (rf & 2) {
707
- const ctx_r122 = i0.ɵɵnextContext(3);
708
- i0.ɵɵproperty("id", ctx_r122.question.name)("formControlName", ctx_r122.question.name)("placeholder", ctx_r122.question.placeholder ? ctx_r122.question.placeholder : "");
709
- i0.ɵɵattribute("aria-label", ctx_r122.question.title);
687
+ const ctx_r128 = i0.ɵɵnextContext(3);
688
+ i0.ɵɵproperty("id", ctx_r128.question.name)("formControlName", ctx_r128.question.name)("placeholder", ctx_r128.question.placeholder ? ctx_r128.question.placeholder : "");
689
+ i0.ɵɵattribute("aria-label", ctx_r128.question.title);
710
690
  } }
711
- function DynamicFormQuestionComponent_ng_container_10_div_20_input_2_Template(rf, ctx) { if (rf & 1) {
712
- i0.ɵɵelement(0, "input", 63);
691
+ function DynamicFormQuestionComponent_ng_container_10_div_14_input_2_Template(rf, ctx) { if (rf & 1) {
692
+ i0.ɵɵelement(0, "input", 70);
713
693
  } if (rf & 2) {
714
- const ctx_r123 = i0.ɵɵnextContext(3);
715
- i0.ɵɵproperty("id", ctx_r123.question.name)("formControlName", ctx_r123.question.name)("placeholder", ctx_r123.question.placeholder ? ctx_r123.question.placeholder : "");
716
- i0.ɵɵattribute("aria-label", ctx_r123.question.title);
694
+ const ctx_r129 = i0.ɵɵnextContext(3);
695
+ i0.ɵɵproperty("id", ctx_r129.question.name)("formControlName", ctx_r129.question.name)("placeholder", ctx_r129.question.placeholder ? ctx_r129.question.placeholder : "");
696
+ i0.ɵɵattribute("aria-label", ctx_r129.question.title);
717
697
  } }
718
- function DynamicFormQuestionComponent_ng_container_10_div_20_Template(rf, ctx) { if (rf & 1) {
719
- i0.ɵɵelementStart(0, "div", 51);
720
- 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);
698
+ function DynamicFormQuestionComponent_ng_container_10_div_14_Template(rf, ctx) { if (rf & 1) {
699
+ i0.ɵɵelementStart(0, "div", 59);
700
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_14_input_1_Template, 1, 4, "input", 67)(2, DynamicFormQuestionComponent_ng_container_10_div_14_input_2_Template, 1, 4, "input", 67);
721
701
  i0.ɵɵelementEnd();
722
702
  } if (rf & 2) {
723
- const ctx_r81 = i0.ɵɵnextContext(2);
724
- i0.ɵɵproperty("ngStyle", ctx_r81.setStyle(ctx_r81.question.indent));
703
+ const ctx_r94 = i0.ɵɵnextContext(2);
704
+ i0.ɵɵproperty("ngStyle", ctx_r94.setStyle(ctx_r94.question.indent));
725
705
  i0.ɵɵadvance(1);
726
- i0.ɵɵproperty("ngIf", ctx_r81.question.size);
706
+ i0.ɵɵproperty("ngIf", ctx_r94.question.size);
727
707
  i0.ɵɵadvance(1);
728
- i0.ɵɵproperty("ngIf", !ctx_r81.question.size);
708
+ i0.ɵɵproperty("ngIf", !ctx_r94.question.size);
729
709
  } }
730
- function DynamicFormQuestionComponent_ng_container_10_div_21_Template(rf, ctx) { if (rf & 1) {
731
- i0.ɵɵelementStart(0, "div", 84);
732
- i0.ɵɵelement(1, "app-overlay-info", 48);
710
+ function DynamicFormQuestionComponent_ng_container_10_div_15_Template(rf, ctx) { if (rf & 1) {
711
+ i0.ɵɵelementStart(0, "div", 82);
712
+ i0.ɵɵelement(1, "app-overlay-info", 56);
733
713
  i0.ɵɵpipe(2, "dynamicTranslate");
734
714
  i0.ɵɵelementEnd();
735
715
  } if (rf & 2) {
736
- const ctx_r82 = i0.ɵɵnextContext(2);
716
+ const ctx_r95 = i0.ɵɵnextContext(2);
737
717
  i0.ɵɵadvance(1);
738
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r82.question.description, ctx_r82.dynamicParam));
718
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r95.question.description, ctx_r95.dynamicParam));
739
719
  } }
740
720
  function DynamicFormQuestionComponent_ng_container_10_Template(rf, ctx) { if (rf & 1) {
741
721
  i0.ɵɵelementContainerStart(0);
742
- i0.ɵɵelementStart(1, "div", 49);
743
- 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, 3, 5, "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);
744
- i0.ɵɵelementStart(18, "div");
745
- i0.ɵɵtemplate(19, DynamicFormQuestionComponent_ng_container_10_div_19_Template, 3, 5, "div", 3);
746
- i0.ɵɵelementEnd();
747
- 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);
722
+ i0.ɵɵelementStart(1, "div", 57);
723
+ i0.ɵɵtemplate(2, DynamicFormQuestionComponent_ng_container_10_div_2_Template, 3, 10, "div", 3)(3, DynamicFormQuestionComponent_ng_container_10_div_3_Template, 2, 5, "div", 8)(4, DynamicFormQuestionComponent_ng_container_10_div_4_Template, 2, 5, "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, 2, 8, "div", 8)(10, DynamicFormQuestionComponent_ng_container_10_div_10_Template, 2, 1, "div", 3)(11, DynamicFormQuestionComponent_ng_container_10_div_11_Template, 3, 5, "div", 3)(12, DynamicFormQuestionComponent_ng_container_10_div_12_Template, 2, 6, "div", 3)(13, DynamicFormQuestionComponent_ng_container_10_div_13_Template, 3, 6, "div", 3)(14, DynamicFormQuestionComponent_ng_container_10_div_14_Template, 3, 3, "div", 8)(15, DynamicFormQuestionComponent_ng_container_10_div_15_Template, 3, 4, "div", 58);
748
724
  i0.ɵɵelementEnd();
749
725
  i0.ɵɵelementContainerEnd();
750
726
  } if (rf & 2) {
751
727
  const ctx_r8 = i0.ɵɵnextContext();
752
728
  i0.ɵɵadvance(2);
753
- i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "date" && ctx_r8.question.name && ctx_r8.question.name != "dob");
754
- i0.ɵɵadvance(1);
755
- i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "date" && ctx_r8.question.name && ctx_r8.question.name === "dob");
729
+ i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "date");
756
730
  i0.ɵɵadvance(1);
757
731
  i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && ctx_r8.question.customTag === "ssn");
758
732
  i0.ɵɵadvance(1);
733
+ i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && ctx_r8.question.customTag === "custommask");
734
+ i0.ɵɵadvance(1);
759
735
  i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && ctx_r8.question.customTag === "ean");
760
736
  i0.ɵɵadvance(1);
761
737
  i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && ctx_r8.question.customTag === "dueamt");
762
738
  i0.ɵɵadvance(1);
763
739
  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);
764
740
  i0.ɵɵadvance(1);
765
- i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && !ctx_r8.question.customTag && ctx_r8.question.isRequired && !ctx_r8.checkFlowKey());
766
- i0.ɵɵadvance(1);
767
- i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && !ctx_r8.question.customTag && ctx_r8.question.isRequired && ctx_r8.checkFlowKey());
768
- i0.ɵɵadvance(1);
769
- 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());
770
- i0.ɵɵadvance(1);
771
- 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());
741
+ i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && !ctx_r8.question.customTag && ctx_r8.question.isRequired);
772
742
  i0.ɵɵadvance(1);
773
743
  i0.ɵɵproperty("ngIf", !ctx_r8.question.inputType && ctx_r8.question.customTag && !ctx_r8.question.customTag.includes("phone"));
774
744
  i0.ɵɵadvance(1);
775
- i0.ɵɵproperty("ngIf", ctx_r8.question.customTag && ctx_r8.question.customTag.includes("phone") && !ctx_r8.checkFlowKey());
776
- i0.ɵɵadvance(1);
777
- i0.ɵɵproperty("ngIf", ctx_r8.question.customTag && ctx_r8.question.customTag.includes("phone") && ctx_r8.checkFlowKey());
745
+ i0.ɵɵproperty("ngIf", ctx_r8.question.customTag && ctx_r8.question.customTag.includes("phone"));
778
746
  i0.ɵɵadvance(1);
779
747
  i0.ɵɵproperty("ngIf", ctx_r8.question.customTag && ctx_r8.question.customTag.includes("password"));
780
748
  i0.ɵɵadvance(1);
781
749
  i0.ɵɵproperty("ngIf", ctx_r8.question.customTag && ctx_r8.question.customTag.includes("fileupload"));
782
750
  i0.ɵɵadvance(1);
783
- 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());
784
- i0.ɵɵadvance(2);
785
- 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());
751
+ 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.question.customTag != "custommask"));
786
752
  i0.ɵɵadvance(1);
787
753
  i0.ɵɵproperty("ngIf", !ctx_r8.question.inputType && !ctx_r8.question.customTag);
788
754
  i0.ɵɵadvance(1);
789
755
  i0.ɵɵproperty("ngIf", ctx_r8.question.description);
790
756
  } }
791
- function DynamicFormQuestionComponent_ng_container_11_div_1_small_3_Template(rf, ctx) { if (rf & 1) {
792
- i0.ɵɵelementStart(0, "small", 87);
793
- i0.ɵɵtext(1);
757
+ function DynamicFormQuestionComponent_ng_container_11_div_1_div_2_Template(rf, ctx) { if (rf & 1) {
758
+ i0.ɵɵelementStart(0, "div", 87);
759
+ i0.ɵɵelement(1, "app-overlay-info", 56);
760
+ i0.ɵɵpipe(2, "dynamicTranslate");
794
761
  i0.ɵɵelementEnd();
795
762
  } if (rf & 2) {
796
- const ctx_r126 = i0.ɵɵnextContext(3);
763
+ const ctx_r132 = i0.ɵɵnextContext(3);
797
764
  i0.ɵɵadvance(1);
798
- i0.ɵɵtextInterpolate(ctx_r126.question.description);
765
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r132.question.description, ctx_r132.dynamicParam));
799
766
  } }
800
767
  function DynamicFormQuestionComponent_ng_container_11_div_1_Template(rf, ctx) { if (rf & 1) {
801
- i0.ɵɵelementStart(0, "div", 51);
768
+ i0.ɵɵelementStart(0, "div", 84);
802
769
  i0.ɵɵelement(1, "textarea", 85);
803
- i0.ɵɵelementStart(2, "div");
804
- i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_11_div_1_small_3_Template, 2, 1, "small", 86);
805
- i0.ɵɵelementEnd()();
770
+ i0.ɵɵtemplate(2, DynamicFormQuestionComponent_ng_container_11_div_1_div_2_Template, 3, 4, "div", 86);
771
+ i0.ɵɵelementEnd();
806
772
  } if (rf & 2) {
807
- const ctx_r124 = i0.ɵɵnextContext(2);
808
- i0.ɵɵproperty("ngStyle", ctx_r124.setStyle(ctx_r124.question.indent));
773
+ const ctx_r130 = i0.ɵɵnextContext(2);
774
+ i0.ɵɵproperty("ngStyle", ctx_r130.setStyle(ctx_r130.question.indent));
809
775
  i0.ɵɵadvance(1);
810
- 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 : "");
811
- i0.ɵɵattribute("aria-label", ctx_r124.question.title);
812
- i0.ɵɵadvance(2);
813
- i0.ɵɵproperty("ngIf", ctx_r124.question.description);
776
+ i0.ɵɵproperty("id", ctx_r130.question.name)("formControlName", ctx_r130.question.name)("maxLength", ctx_r130.question.maxLength)("rows", 3)("cols", 35)("placeholder", ctx_r130.question.placeholder ? ctx_r130.question.placeholder : "");
777
+ i0.ɵɵattribute("aria-label", ctx_r130.question.title);
778
+ i0.ɵɵadvance(1);
779
+ i0.ɵɵproperty("ngIf", ctx_r130.question.description);
814
780
  } }
815
- function DynamicFormQuestionComponent_ng_container_11_div_2_small_3_Template(rf, ctx) { if (rf & 1) {
816
- i0.ɵɵelementStart(0, "small", 87);
817
- i0.ɵɵtext(1);
781
+ function DynamicFormQuestionComponent_ng_container_11_div_2_div_2_Template(rf, ctx) { if (rf & 1) {
782
+ i0.ɵɵelementStart(0, "div", 87);
783
+ i0.ɵɵelement(1, "app-overlay-info", 56);
784
+ i0.ɵɵpipe(2, "dynamicTranslate");
818
785
  i0.ɵɵelementEnd();
819
786
  } if (rf & 2) {
820
- const ctx_r127 = i0.ɵɵnextContext(3);
787
+ const ctx_r133 = i0.ɵɵnextContext(3);
821
788
  i0.ɵɵadvance(1);
822
- i0.ɵɵtextInterpolate(ctx_r127.question.description);
789
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r133.question.description, ctx_r133.dynamicParam));
823
790
  } }
824
791
  function DynamicFormQuestionComponent_ng_container_11_div_2_Template(rf, ctx) { if (rf & 1) {
825
- i0.ɵɵelementStart(0, "div", 51);
792
+ i0.ɵɵelementStart(0, "div", 84);
826
793
  i0.ɵɵelement(1, "textarea", 88);
827
- i0.ɵɵelementStart(2, "div");
828
- i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_11_div_2_small_3_Template, 2, 1, "small", 86);
829
- i0.ɵɵelementEnd()();
794
+ i0.ɵɵtemplate(2, DynamicFormQuestionComponent_ng_container_11_div_2_div_2_Template, 3, 4, "div", 86);
795
+ i0.ɵɵelementEnd();
830
796
  } if (rf & 2) {
831
- const ctx_r125 = i0.ɵɵnextContext(2);
832
- i0.ɵɵproperty("ngStyle", ctx_r125.setStyle(ctx_r125.question.indent));
797
+ const ctx_r131 = i0.ɵɵnextContext(2);
798
+ i0.ɵɵproperty("ngStyle", ctx_r131.setStyle(ctx_r131.question.indent));
833
799
  i0.ɵɵadvance(1);
834
- 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 : "");
835
- i0.ɵɵattribute("aria-label", ctx_r125.question.title);
836
- i0.ɵɵadvance(2);
837
- i0.ɵɵproperty("ngIf", ctx_r125.question.description);
800
+ i0.ɵɵproperty("id", ctx_r131.question.name)("formControlName", ctx_r131.question.name)("rows", 3)("cols", 35)("placeholder", ctx_r131.question.placeholder ? ctx_r131.question.placeholder : "");
801
+ i0.ɵɵattribute("aria-label", ctx_r131.question.title);
802
+ i0.ɵɵadvance(1);
803
+ i0.ɵɵproperty("ngIf", ctx_r131.question.description);
838
804
  } }
839
805
  function DynamicFormQuestionComponent_ng_container_11_Template(rf, ctx) { if (rf & 1) {
840
806
  i0.ɵɵelementContainerStart(0);
841
- 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);
807
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_11_div_1_Template, 3, 9, "div", 83)(2, DynamicFormQuestionComponent_ng_container_11_div_2_Template, 3, 8, "div", 83);
842
808
  i0.ɵɵelementContainerEnd();
843
809
  } if (rf & 2) {
844
810
  const ctx_r9 = i0.ɵɵnextContext();
@@ -852,39 +818,39 @@ function DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_ng_templa
852
818
  i0.ɵɵtext(2);
853
819
  i0.ɵɵelementEnd()();
854
820
  } if (rf & 2) {
855
- const value_r131 = ctx.$implicit;
821
+ const value_r137 = ctx.$implicit;
856
822
  i0.ɵɵadvance(2);
857
- i0.ɵɵtextInterpolate(value_r131.text);
823
+ i0.ɵɵtextInterpolate(value_r137.text);
858
824
  } }
859
825
  function DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_Template(rf, ctx) { if (rf & 1) {
860
- const _r133 = i0.ɵɵgetCurrentView();
826
+ const _r139 = i0.ɵɵgetCurrentView();
861
827
  i0.ɵɵelementStart(0, "p-autoComplete", 91);
862
- 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)); });
828
+ i0.ɵɵlistener("completeMethod", function DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_Template_p_autoComplete_completeMethod_0_listener($event) { i0.ɵɵrestoreView(_r139); const ctx_r138 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r138.filterValue($event, ctx_r138.question)); })("onSelect", function DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_Template_p_autoComplete_onSelect_0_listener($event) { i0.ɵɵrestoreView(_r139); const ctx_r140 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r140.onSelect($event, ctx_r140.question.name)); });
863
829
  i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_ng_template_1_Template, 3, 1, "ng-template", 92);
864
830
  i0.ɵɵelementEnd();
865
831
  } if (rf & 2) {
866
- const ctx_r128 = i0.ɵɵnextContext(2);
867
- i0.ɵɵproperty("formControlName", ctx_r128.question.name)("suggestions", ctx_r128.filterResult)("dropdown", true)("forceSelection", true)("completeOnFocus", true);
832
+ const ctx_r134 = i0.ɵɵnextContext(2);
833
+ i0.ɵɵproperty("formControlName", ctx_r134.question.name)("suggestions", ctx_r134.filterResult)("dropdown", true)("forceSelection", true)("completeOnFocus", true);
868
834
  } }
869
835
  function DynamicFormQuestionComponent_ng_container_12_div_5_Template(rf, ctx) { if (rf & 1) {
870
- i0.ɵɵelementStart(0, "div", 84);
871
- i0.ɵɵelement(1, "app-overlay-info", 48);
836
+ i0.ɵɵelementStart(0, "div", 82);
837
+ i0.ɵɵelement(1, "app-overlay-info", 56);
872
838
  i0.ɵɵpipe(2, "dynamicTranslate");
873
839
  i0.ɵɵelementEnd();
874
840
  } if (rf & 2) {
875
- const ctx_r129 = i0.ɵɵnextContext(2);
841
+ const ctx_r135 = i0.ɵɵnextContext(2);
876
842
  i0.ɵɵadvance(1);
877
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r129.question.description, ctx_r129.dynamicParam));
843
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r135.question.description, ctx_r135.dynamicParam));
878
844
  } }
879
845
  function DynamicFormQuestionComponent_ng_container_12_Template(rf, ctx) { if (rf & 1) {
880
- const _r136 = i0.ɵɵgetCurrentView();
846
+ const _r142 = i0.ɵɵgetCurrentView();
881
847
  i0.ɵɵelementContainerStart(0);
882
- i0.ɵɵelementStart(1, "div", 49)(2, "div", 51);
848
+ i0.ɵɵelementStart(1, "div", 57)(2, "div", 59);
883
849
  i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_Template, 2, 5, "p-autoComplete", 89);
884
850
  i0.ɵɵelementStart(4, "app-dropdown", 90);
885
- 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)); });
851
+ i0.ɵɵlistener("onChange", function DynamicFormQuestionComponent_ng_container_12_Template_app_dropdown_onChange_4_listener($event) { i0.ɵɵrestoreView(_r142); const ctx_r141 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r141.onSelect($event, ctx_r141.question.name)); })("onClick", function DynamicFormQuestionComponent_ng_container_12_Template_app_dropdown_onClick_4_listener($event) { i0.ɵɵrestoreView(_r142); const ctx_r143 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r143.filterValue($event, ctx_r143.question)); });
886
852
  i0.ɵɵelementEnd()();
887
- i0.ɵɵtemplate(5, DynamicFormQuestionComponent_ng_container_12_div_5_Template, 3, 4, "div", 50);
853
+ i0.ɵɵtemplate(5, DynamicFormQuestionComponent_ng_container_12_div_5_Template, 3, 4, "div", 58);
888
854
  i0.ɵɵelementEnd();
889
855
  i0.ɵɵelementContainerEnd();
890
856
  } if (rf & 2) {
@@ -894,102 +860,54 @@ function DynamicFormQuestionComponent_ng_container_12_Template(rf, ctx) { if (rf
894
860
  i0.ɵɵadvance(1);
895
861
  i0.ɵɵproperty("ngIf", false);
896
862
  i0.ɵɵadvance(1);
897
- i0.ɵɵproperty("options", ctx_r10.filterResult)("formControlName", ctx_r10.question.name)("autoDisplayFirst", false)("inputId", ctx_r10.question.name)("ariaLabel", ctx_r10.question.title);
863
+ i0.ɵɵproperty("options", ctx_r10.filterResult)("formControlName", ctx_r10.question.name)("autoDisplayFirst", false)("inputId", ctx_r10.question.name)("ariaLabel", ctx_r10.question.title)("placeholder", ctx_r10.question.placeholder ? ctx_r10.question.placeholder : "");
898
864
  i0.ɵɵadvance(1);
899
865
  i0.ɵɵproperty("ngIf", ctx_r10.question.description);
900
866
  } }
901
- function DynamicFormQuestionComponent_ng_container_13_div_2_div_3_Template(rf, ctx) { if (rf & 1) {
902
- i0.ɵɵelementStart(0, "div");
903
- i0.ɵɵelement(1, "app-overlay-info", 48);
867
+ function DynamicFormQuestionComponent_ng_container_13_div_4_Template(rf, ctx) { if (rf & 1) {
868
+ i0.ɵɵelementStart(0, "div", 82);
869
+ i0.ɵɵelement(1, "app-overlay-info", 56);
904
870
  i0.ɵɵpipe(2, "dynamicTranslate");
905
871
  i0.ɵɵelementEnd();
906
872
  } if (rf & 2) {
907
- const ctx_r140 = i0.ɵɵnextContext(3);
908
- i0.ɵɵadvance(1);
909
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r140.question.description, ctx_r140.dynamicParam));
910
- } }
911
- function DynamicFormQuestionComponent_ng_container_13_div_2_Template(rf, ctx) { if (rf & 1) {
912
- const _r142 = i0.ɵɵgetCurrentView();
913
- i0.ɵɵelementStart(0, "div", 95)(1, "div", 51)(2, "p-selectButton", 96);
914
- 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)); });
915
- i0.ɵɵelementEnd()();
916
- i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_13_div_2_div_3_Template, 3, 4, "div", 3);
917
- i0.ɵɵelementEnd();
918
- } if (rf & 2) {
919
- const ctx_r138 = i0.ɵɵnextContext(2);
920
- i0.ɵɵadvance(1);
921
- i0.ɵɵproperty("ngStyle", ctx_r138.setStyle(ctx_r138.question.indent));
922
- i0.ɵɵadvance(1);
923
- i0.ɵɵproperty("options", ctx_r138.question.choices)("formControlName", ctx_r138.question.name);
924
- i0.ɵɵadvance(1);
925
- i0.ɵɵproperty("ngIf", ctx_r138.question.description);
926
- } }
927
- function DynamicFormQuestionComponent_ng_container_13_div_3_app_mfa2_3_Template(rf, ctx) { if (rf & 1) {
928
- const _r146 = i0.ɵɵgetCurrentView();
929
- i0.ɵɵelementStart(0, "app-mfa2", 99);
930
- 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()); });
931
- i0.ɵɵelementEnd();
932
- } if (rf & 2) {
933
- const ctx_r143 = i0.ɵɵnextContext(3);
934
- i0.ɵɵproperty("display", ctx_r143.isOtpModalEnabled)("returningUser", ctx_r143.isReturningUser)("form", ctx_r143.form);
935
- } }
936
- function DynamicFormQuestionComponent_ng_container_13_div_3_div_4_Template(rf, ctx) { if (rf & 1) {
937
- i0.ɵɵelementStart(0, "div", 84);
938
- i0.ɵɵelement(1, "app-overlay-info", 48);
939
- i0.ɵɵpipe(2, "dynamicTranslate");
940
- i0.ɵɵelementEnd();
941
- } if (rf & 2) {
942
- const ctx_r144 = i0.ɵɵnextContext(3);
873
+ const ctx_r144 = i0.ɵɵnextContext(2);
943
874
  i0.ɵɵadvance(1);
944
875
  i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r144.question.description, ctx_r144.dynamicParam));
945
876
  } }
946
- function DynamicFormQuestionComponent_ng_container_13_div_3_Template(rf, ctx) { if (rf & 1) {
947
- const _r149 = i0.ɵɵgetCurrentView();
948
- i0.ɵɵelementStart(0, "div")(1, "div", 51)(2, "p-selectButton", 97);
949
- 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)); });
950
- i0.ɵɵelementEnd()();
951
- 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);
952
- i0.ɵɵelementEnd();
953
- } if (rf & 2) {
954
- const ctx_r139 = i0.ɵɵnextContext(2);
955
- i0.ɵɵadvance(1);
956
- i0.ɵɵproperty("ngStyle", ctx_r139.setStyle(ctx_r139.question.indent));
957
- i0.ɵɵadvance(1);
958
- i0.ɵɵproperty("options", ctx_r139.question.choices)("formControlName", ctx_r139.question.name);
959
- i0.ɵɵadvance(1);
960
- i0.ɵɵproperty("ngIf", ctx_r139.isOtpModalEnabled);
961
- i0.ɵɵadvance(1);
962
- i0.ɵɵproperty("ngIf", ctx_r139.question.description);
963
- } }
964
877
  function DynamicFormQuestionComponent_ng_container_13_Template(rf, ctx) { if (rf & 1) {
878
+ const _r146 = i0.ɵɵgetCurrentView();
965
879
  i0.ɵɵelementContainerStart(0);
966
- i0.ɵɵelementStart(1, "div", 93);
967
- 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);
880
+ i0.ɵɵelementStart(1, "div", 57)(2, "div", 59)(3, "p-selectButton", 93);
881
+ i0.ɵɵlistener("onOptionClick", function DynamicFormQuestionComponent_ng_container_13_Template_p_selectButton_onOptionClick_3_listener($event) { i0.ɵɵrestoreView(_r146); const ctx_r145 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r145.onRadioOptionClick($event, ctx_r145.question)); });
882
+ i0.ɵɵelementEnd()();
883
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_13_div_4_Template, 3, 4, "div", 58);
968
884
  i0.ɵɵelementEnd();
969
885
  i0.ɵɵelementContainerEnd();
970
886
  } if (rf & 2) {
971
887
  const ctx_r11 = i0.ɵɵnextContext();
972
888
  i0.ɵɵadvance(2);
973
- i0.ɵɵproperty("ngIf", ctx_r11.question.name && ctx_r11.question.name != "verification");
889
+ i0.ɵɵproperty("ngStyle", ctx_r11.setStyle(ctx_r11.question.indent));
974
890
  i0.ɵɵadvance(1);
975
- i0.ɵɵproperty("ngIf", ctx_r11.question.name && ctx_r11.question.name === "verification");
891
+ i0.ɵɵproperty("options", ctx_r11.question.choices)("formControlName", ctx_r11.question.name);
892
+ i0.ɵɵadvance(1);
893
+ i0.ɵɵproperty("ngIf", ctx_r11.question.description);
976
894
  } }
977
895
  function DynamicFormQuestionComponent_ng_container_14_div_4_Template(rf, ctx) { if (rf & 1) {
978
- i0.ɵɵelementStart(0, "div", 84);
979
- i0.ɵɵelement(1, "app-overlay-info", 48);
896
+ i0.ɵɵelementStart(0, "div", 82);
897
+ i0.ɵɵelement(1, "app-overlay-info", 56);
980
898
  i0.ɵɵpipe(2, "dynamicTranslate");
981
899
  i0.ɵɵelementEnd();
982
900
  } if (rf & 2) {
983
- const ctx_r150 = i0.ɵɵnextContext(2);
901
+ const ctx_r147 = i0.ɵɵnextContext(2);
984
902
  i0.ɵɵadvance(1);
985
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r150.question.description, ctx_r150.dynamicParam));
903
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r147.question.description, ctx_r147.dynamicParam));
986
904
  } }
987
905
  function DynamicFormQuestionComponent_ng_container_14_Template(rf, ctx) { if (rf & 1) {
988
906
  i0.ɵɵelementContainerStart(0);
989
- i0.ɵɵelementStart(1, "div", 49)(2, "div", 51);
990
- i0.ɵɵelement(3, "p-inputNumber", 100);
907
+ i0.ɵɵelementStart(1, "div", 57)(2, "div", 59);
908
+ i0.ɵɵelement(3, "p-inputNumber", 94);
991
909
  i0.ɵɵelementEnd();
992
- i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_14_div_4_Template, 3, 4, "div", 50);
910
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_14_div_4_Template, 3, 4, "div", 58);
993
911
  i0.ɵɵelementEnd();
994
912
  i0.ɵɵelementContainerEnd();
995
913
  } if (rf & 2) {
@@ -998,26 +916,26 @@ function DynamicFormQuestionComponent_ng_container_14_Template(rf, ctx) { if (rf
998
916
  i0.ɵɵproperty("ngStyle", ctx_r12.setStyle(ctx_r12.question.indent));
999
917
  i0.ɵɵadvance(1);
1000
918
  i0.ɵɵpropertyInterpolate("formControlName", ctx_r12.question.name);
1001
- 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 : "");
919
+ 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 : "")("required", ctx_r12.question.isRequired);
1002
920
  i0.ɵɵadvance(1);
1003
921
  i0.ɵɵproperty("ngIf", ctx_r12.question.description);
1004
922
  } }
1005
923
  function DynamicFormQuestionComponent_ng_container_15_div_4_Template(rf, ctx) { if (rf & 1) {
1006
- i0.ɵɵelementStart(0, "div", 84);
1007
- i0.ɵɵelement(1, "app-overlay-info", 48);
924
+ i0.ɵɵelementStart(0, "div", 82);
925
+ i0.ɵɵelement(1, "app-overlay-info", 56);
1008
926
  i0.ɵɵpipe(2, "dynamicTranslate");
1009
927
  i0.ɵɵelementEnd();
1010
928
  } if (rf & 2) {
1011
- const ctx_r151 = i0.ɵɵnextContext(2);
929
+ const ctx_r148 = i0.ɵɵnextContext(2);
1012
930
  i0.ɵɵadvance(1);
1013
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r151.question.description, ctx_r151.dynamicParam));
931
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r148.question.description, ctx_r148.dynamicParam));
1014
932
  } }
1015
933
  function DynamicFormQuestionComponent_ng_container_15_Template(rf, ctx) { if (rf & 1) {
1016
934
  i0.ɵɵelementContainerStart(0);
1017
- i0.ɵɵelementStart(1, "div", 49)(2, "div", 51);
1018
- i0.ɵɵelement(3, "p-inputNumber", 101);
935
+ i0.ɵɵelementStart(1, "div", 57)(2, "div", 59);
936
+ i0.ɵɵelement(3, "p-inputNumber", 95);
1019
937
  i0.ɵɵelementEnd();
1020
- i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_15_div_4_Template, 3, 4, "div", 50);
938
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_15_div_4_Template, 3, 4, "div", 58);
1021
939
  i0.ɵɵelementEnd();
1022
940
  i0.ɵɵelementContainerEnd();
1023
941
  } if (rf & 2) {
@@ -1026,26 +944,26 @@ function DynamicFormQuestionComponent_ng_container_15_Template(rf, ctx) { if (rf
1026
944
  i0.ɵɵproperty("ngStyle", ctx_r13.setStyle(ctx_r13.question.indent));
1027
945
  i0.ɵɵadvance(1);
1028
946
  i0.ɵɵpropertyInterpolate("formControlName", ctx_r13.question.name);
1029
- 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 : "");
947
+ 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 : "")("required", ctx_r13.question.isRequired);
1030
948
  i0.ɵɵadvance(1);
1031
949
  i0.ɵɵproperty("ngIf", ctx_r13.question.description);
1032
950
  } }
1033
951
  function DynamicFormQuestionComponent_ng_container_16_div_4_Template(rf, ctx) { if (rf & 1) {
1034
- i0.ɵɵelementStart(0, "div", 84);
1035
- i0.ɵɵelement(1, "app-overlay-info", 48);
952
+ i0.ɵɵelementStart(0, "div", 82);
953
+ i0.ɵɵelement(1, "app-overlay-info", 56);
1036
954
  i0.ɵɵpipe(2, "dynamicTranslate");
1037
955
  i0.ɵɵelementEnd();
1038
956
  } if (rf & 2) {
1039
- const ctx_r152 = i0.ɵɵnextContext(2);
957
+ const ctx_r149 = i0.ɵɵnextContext(2);
1040
958
  i0.ɵɵadvance(1);
1041
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r152.question.description, ctx_r152.dynamicParam));
959
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r149.question.description, ctx_r149.dynamicParam));
1042
960
  } }
1043
961
  function DynamicFormQuestionComponent_ng_container_16_Template(rf, ctx) { if (rf & 1) {
1044
962
  i0.ɵɵelementContainerStart(0);
1045
- i0.ɵɵelementStart(1, "div", 49)(2, "div", 51);
1046
- i0.ɵɵelement(3, "p-inputNumber", 102);
963
+ i0.ɵɵelementStart(1, "div", 57)(2, "div", 59);
964
+ i0.ɵɵelement(3, "p-inputNumber", 96);
1047
965
  i0.ɵɵelementEnd();
1048
- i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_16_div_4_Template, 3, 4, "div", 50);
966
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_16_div_4_Template, 3, 4, "div", 58);
1049
967
  i0.ɵɵelementEnd();
1050
968
  i0.ɵɵelementContainerEnd();
1051
969
  } if (rf & 2) {
@@ -1054,34 +972,34 @@ function DynamicFormQuestionComponent_ng_container_16_Template(rf, ctx) { if (rf
1054
972
  i0.ɵɵproperty("ngStyle", ctx_r14.setStyle(ctx_r14.question.indent));
1055
973
  i0.ɵɵadvance(1);
1056
974
  i0.ɵɵpropertyInterpolate("formControlName", ctx_r14.question.name);
1057
- 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 : "");
975
+ 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 : "")("required", ctx_r14.question.isRequired);
1058
976
  i0.ɵɵadvance(1);
1059
977
  i0.ɵɵproperty("ngIf", ctx_r14.question.description);
1060
978
  } }
1061
979
  function DynamicFormQuestionComponent_ng_container_17_p_checkbox_3_Template(rf, ctx) { if (rf & 1) {
1062
- i0.ɵɵelement(0, "p-checkbox", 105);
980
+ i0.ɵɵelement(0, "p-checkbox", 99);
1063
981
  } if (rf & 2) {
1064
- const choice_r155 = ctx.$implicit;
1065
- const ctx_r153 = i0.ɵɵnextContext(2);
1066
- 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);
1067
- i0.ɵɵattribute("aria-label", ctx_r153.question.title);
982
+ const choice_r152 = ctx.$implicit;
983
+ const ctx_r150 = i0.ɵɵnextContext(2);
984
+ i0.ɵɵproperty("name", ctx_r150.question.name + "-group")("value", choice_r152.value)("label", choice_r152.text)("formControl", ctx_r150.form.controls[ctx_r150.question.name])("inputId", ctx_r150.question.name + "-" + choice_r152.value);
985
+ i0.ɵɵattribute("aria-label", ctx_r150.question.title);
1068
986
  } }
1069
987
  function DynamicFormQuestionComponent_ng_container_17_div_4_Template(rf, ctx) { if (rf & 1) {
1070
- i0.ɵɵelementStart(0, "div", 84);
1071
- i0.ɵɵelement(1, "app-overlay-info", 48);
988
+ i0.ɵɵelementStart(0, "div", 82);
989
+ i0.ɵɵelement(1, "app-overlay-info", 56);
1072
990
  i0.ɵɵpipe(2, "dynamicTranslate");
1073
991
  i0.ɵɵelementEnd();
1074
992
  } if (rf & 2) {
1075
- const ctx_r154 = i0.ɵɵnextContext(2);
993
+ const ctx_r151 = i0.ɵɵnextContext(2);
1076
994
  i0.ɵɵadvance(1);
1077
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r154.question.description, ctx_r154.dynamicParam));
995
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r151.question.description, ctx_r151.dynamicParam));
1078
996
  } }
1079
997
  function DynamicFormQuestionComponent_ng_container_17_Template(rf, ctx) { if (rf & 1) {
1080
998
  i0.ɵɵelementContainerStart(0);
1081
- i0.ɵɵelementStart(1, "div", 49)(2, "div", 103);
1082
- i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_17_p_checkbox_3_Template, 1, 6, "p-checkbox", 104);
999
+ i0.ɵɵelementStart(1, "div", 57)(2, "div", 97);
1000
+ i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_17_p_checkbox_3_Template, 1, 6, "p-checkbox", 98);
1083
1001
  i0.ɵɵelementEnd();
1084
- i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_17_div_4_Template, 3, 4, "div", 50);
1002
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_17_div_4_Template, 3, 4, "div", 58);
1085
1003
  i0.ɵɵelementEnd();
1086
1004
  i0.ɵɵelementContainerEnd();
1087
1005
  } if (rf & 2) {
@@ -1094,29 +1012,29 @@ function DynamicFormQuestionComponent_ng_container_17_Template(rf, ctx) { if (rf
1094
1012
  i0.ɵɵproperty("ngIf", ctx_r15.question.description);
1095
1013
  } }
1096
1014
  function DynamicFormQuestionComponent_ng_container_18_p_checkbox_3_Template(rf, ctx) { if (rf & 1) {
1097
- i0.ɵɵelement(0, "p-checkbox", 105);
1015
+ i0.ɵɵelement(0, "p-checkbox", 99);
1098
1016
  } if (rf & 2) {
1099
- const choice_r158 = ctx.$implicit;
1100
- const ctx_r156 = i0.ɵɵnextContext(2);
1101
- 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);
1102
- i0.ɵɵattribute("aria-label", ctx_r156.question.title);
1017
+ const choice_r155 = ctx.$implicit;
1018
+ const ctx_r153 = i0.ɵɵnextContext(2);
1019
+ 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);
1020
+ i0.ɵɵattribute("aria-label", ctx_r153.question.title);
1103
1021
  } }
1104
1022
  function DynamicFormQuestionComponent_ng_container_18_div_4_Template(rf, ctx) { if (rf & 1) {
1105
- i0.ɵɵelementStart(0, "div", 84);
1106
- i0.ɵɵelement(1, "app-overlay-info", 48);
1023
+ i0.ɵɵelementStart(0, "div", 82);
1024
+ i0.ɵɵelement(1, "app-overlay-info", 56);
1107
1025
  i0.ɵɵpipe(2, "dynamicTranslate");
1108
1026
  i0.ɵɵelementEnd();
1109
1027
  } if (rf & 2) {
1110
- const ctx_r157 = i0.ɵɵnextContext(2);
1028
+ const ctx_r154 = i0.ɵɵnextContext(2);
1111
1029
  i0.ɵɵadvance(1);
1112
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r157.question.description, ctx_r157.dynamicParam));
1030
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r154.question.description, ctx_r154.dynamicParam));
1113
1031
  } }
1114
1032
  function DynamicFormQuestionComponent_ng_container_18_Template(rf, ctx) { if (rf & 1) {
1115
1033
  i0.ɵɵelementContainerStart(0);
1116
- i0.ɵɵelementStart(1, "div", 49)(2, "div", 51);
1117
- i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_18_p_checkbox_3_Template, 1, 6, "p-checkbox", 104);
1034
+ i0.ɵɵelementStart(1, "div", 57)(2, "div", 59);
1035
+ i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_18_p_checkbox_3_Template, 1, 6, "p-checkbox", 98);
1118
1036
  i0.ɵɵelementEnd();
1119
- i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_18_div_4_Template, 3, 4, "div", 50);
1037
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_18_div_4_Template, 3, 4, "div", 58);
1120
1038
  i0.ɵɵelementEnd();
1121
1039
  i0.ɵɵelementContainerEnd();
1122
1040
  } if (rf & 2) {
@@ -1129,21 +1047,21 @@ function DynamicFormQuestionComponent_ng_container_18_Template(rf, ctx) { if (rf
1129
1047
  i0.ɵɵproperty("ngIf", ctx_r16.question.description);
1130
1048
  } }
1131
1049
  function DynamicFormQuestionComponent_ng_container_19_div_4_Template(rf, ctx) { if (rf & 1) {
1132
- i0.ɵɵelementStart(0, "div", 84);
1133
- i0.ɵɵelement(1, "app-overlay-info", 48);
1050
+ i0.ɵɵelementStart(0, "div", 82);
1051
+ i0.ɵɵelement(1, "app-overlay-info", 56);
1134
1052
  i0.ɵɵpipe(2, "dynamicTranslate");
1135
1053
  i0.ɵɵelementEnd();
1136
1054
  } if (rf & 2) {
1137
- const ctx_r159 = i0.ɵɵnextContext(2);
1055
+ const ctx_r156 = i0.ɵɵnextContext(2);
1138
1056
  i0.ɵɵadvance(1);
1139
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r159.question.description, ctx_r159.dynamicParam));
1057
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r156.question.description, ctx_r156.dynamicParam));
1140
1058
  } }
1141
1059
  function DynamicFormQuestionComponent_ng_container_19_Template(rf, ctx) { if (rf & 1) {
1142
1060
  i0.ɵɵelementContainerStart(0);
1143
- i0.ɵɵelementStart(1, "div", 49)(2, "div", 51);
1144
- i0.ɵɵelement(3, "p-selectButton", 106);
1061
+ i0.ɵɵelementStart(1, "div", 57)(2, "div", 59);
1062
+ i0.ɵɵelement(3, "p-selectButton", 100);
1145
1063
  i0.ɵɵelementEnd();
1146
- i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_19_div_4_Template, 3, 4, "div", 50);
1064
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_19_div_4_Template, 3, 4, "div", 58);
1147
1065
  i0.ɵɵelementEnd();
1148
1066
  i0.ɵɵelementContainerEnd();
1149
1067
  } if (rf & 2) {
@@ -1157,23 +1075,23 @@ function DynamicFormQuestionComponent_ng_container_19_Template(rf, ctx) { if (rf
1157
1075
  i0.ɵɵproperty("ngIf", ctx_r17.question.description);
1158
1076
  } }
1159
1077
  function DynamicFormQuestionComponent_ng_container_20_div_6_Template(rf, ctx) { if (rf & 1) {
1160
- i0.ɵɵelementStart(0, "div", 84);
1161
- i0.ɵɵelement(1, "app-overlay-info", 48);
1078
+ i0.ɵɵelementStart(0, "div", 82);
1079
+ i0.ɵɵelement(1, "app-overlay-info", 56);
1162
1080
  i0.ɵɵpipe(2, "dynamicTranslate");
1163
1081
  i0.ɵɵelementEnd();
1164
1082
  } if (rf & 2) {
1165
- const ctx_r160 = i0.ɵɵnextContext(2);
1083
+ const ctx_r157 = i0.ɵɵnextContext(2);
1166
1084
  i0.ɵɵadvance(1);
1167
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r160.question.description, ctx_r160.dynamicParam));
1085
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r157.question.description, ctx_r157.dynamicParam));
1168
1086
  } }
1169
1087
  function DynamicFormQuestionComponent_ng_container_20_Template(rf, ctx) { if (rf & 1) {
1170
1088
  i0.ɵɵelementContainerStart(0);
1171
- i0.ɵɵelementStart(1, "div", 49)(2, "div", 107);
1172
- i0.ɵɵelement(3, "p-checkbox", 108);
1173
- i0.ɵɵelementStart(4, "label", 109);
1089
+ i0.ɵɵelementStart(1, "div", 57)(2, "div", 101);
1090
+ i0.ɵɵelement(3, "p-checkbox", 102);
1091
+ i0.ɵɵelementStart(4, "label", 103);
1174
1092
  i0.ɵɵtext(5);
1175
1093
  i0.ɵɵelementEnd()();
1176
- i0.ɵɵtemplate(6, DynamicFormQuestionComponent_ng_container_20_div_6_Template, 3, 4, "div", 110);
1094
+ i0.ɵɵtemplate(6, DynamicFormQuestionComponent_ng_container_20_div_6_Template, 3, 4, "div", 104);
1177
1095
  i0.ɵɵelementEnd();
1178
1096
  i0.ɵɵelementContainerEnd();
1179
1097
  } if (rf & 2) {
@@ -1187,22 +1105,22 @@ function DynamicFormQuestionComponent_ng_container_20_Template(rf, ctx) { if (rf
1187
1105
  i0.ɵɵproperty("ngIf", ctx_r18.question.description);
1188
1106
  } }
1189
1107
  function DynamicFormQuestionComponent_ng_container_21_div_5_Template(rf, ctx) { if (rf & 1) {
1190
- i0.ɵɵelementStart(0, "div", 113);
1191
- i0.ɵɵelement(1, "app-overlay-info", 48);
1108
+ i0.ɵɵelementStart(0, "div", 107);
1109
+ i0.ɵɵelement(1, "app-overlay-info", 56);
1192
1110
  i0.ɵɵpipe(2, "dynamicTranslate");
1193
1111
  i0.ɵɵelementEnd();
1194
1112
  } if (rf & 2) {
1195
- const ctx_r161 = i0.ɵɵnextContext(2);
1113
+ const ctx_r158 = i0.ɵɵnextContext(2);
1196
1114
  i0.ɵɵadvance(1);
1197
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r161.question.description, ctx_r161.dynamicParam));
1115
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r158.question.description, ctx_r158.dynamicParam));
1198
1116
  } }
1199
1117
  function DynamicFormQuestionComponent_ng_container_21_Template(rf, ctx) { if (rf & 1) {
1200
1118
  i0.ɵɵelementContainerStart(0);
1201
- i0.ɵɵelementStart(1, "div", 49)(2, "label");
1119
+ i0.ɵɵelementStart(1, "div", 57)(2, "label");
1202
1120
  i0.ɵɵtext(3);
1203
1121
  i0.ɵɵelementEnd();
1204
- i0.ɵɵelement(4, "input", 111);
1205
- i0.ɵɵtemplate(5, DynamicFormQuestionComponent_ng_container_21_div_5_Template, 3, 4, "div", 112);
1122
+ i0.ɵɵelement(4, "input", 105);
1123
+ i0.ɵɵtemplate(5, DynamicFormQuestionComponent_ng_container_21_div_5_Template, 3, 4, "div", 106);
1206
1124
  i0.ɵɵelementEnd();
1207
1125
  i0.ɵɵelementContainerEnd();
1208
1126
  } if (rf & 2) {
@@ -1216,21 +1134,21 @@ function DynamicFormQuestionComponent_ng_container_21_Template(rf, ctx) { if (rf
1216
1134
  i0.ɵɵproperty("ngIf", ctx_r19.question.description);
1217
1135
  } }
1218
1136
  function DynamicFormQuestionComponent_ng_container_22_div_4_Template(rf, ctx) { if (rf & 1) {
1219
- i0.ɵɵelementStart(0, "div", 113);
1220
- i0.ɵɵelement(1, "app-overlay-info", 48);
1137
+ i0.ɵɵelementStart(0, "div", 107);
1138
+ i0.ɵɵelement(1, "app-overlay-info", 56);
1221
1139
  i0.ɵɵpipe(2, "dynamicTranslate");
1222
1140
  i0.ɵɵelementEnd();
1223
1141
  } if (rf & 2) {
1224
- const ctx_r162 = i0.ɵɵnextContext(2);
1142
+ const ctx_r159 = i0.ɵɵnextContext(2);
1225
1143
  i0.ɵɵadvance(1);
1226
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r162.question.description, ctx_r162.dynamicParam));
1144
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r159.question.description, ctx_r159.dynamicParam));
1227
1145
  } }
1228
1146
  function DynamicFormQuestionComponent_ng_container_22_Template(rf, ctx) { if (rf & 1) {
1229
1147
  i0.ɵɵelementContainerStart(0);
1230
- i0.ɵɵelementStart(1, "div", 49)(2, "label");
1148
+ i0.ɵɵelementStart(1, "div", 57)(2, "label");
1231
1149
  i0.ɵɵtext(3);
1232
1150
  i0.ɵɵelementEnd();
1233
- i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_22_div_4_Template, 3, 4, "div", 112);
1151
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_22_div_4_Template, 3, 4, "div", 106);
1234
1152
  i0.ɵɵelementEnd();
1235
1153
  i0.ɵɵelementContainerEnd();
1236
1154
  } if (rf & 2) {
@@ -1242,8 +1160,8 @@ function DynamicFormQuestionComponent_ng_container_22_Template(rf, ctx) { if (rf
1242
1160
  } }
1243
1161
  function DynamicFormQuestionComponent_ng_container_23_Template(rf, ctx) { if (rf & 1) {
1244
1162
  i0.ɵɵelementContainerStart(0);
1245
- i0.ɵɵelementStart(1, "div", 49);
1246
- i0.ɵɵelement(2, "app-overlay-info", 114);
1163
+ i0.ɵɵelementStart(1, "div", 57);
1164
+ i0.ɵɵelement(2, "app-overlay-info", 108);
1247
1165
  i0.ɵɵpipe(3, "dynamicTranslate");
1248
1166
  i0.ɵɵelementEnd();
1249
1167
  i0.ɵɵelementContainerEnd();
@@ -1254,8 +1172,8 @@ function DynamicFormQuestionComponent_ng_container_23_Template(rf, ctx) { if (rf
1254
1172
  } }
1255
1173
  function DynamicFormQuestionComponent_ng_container_24_Template(rf, ctx) { if (rf & 1) {
1256
1174
  i0.ɵɵelementContainerStart(0);
1257
- i0.ɵɵelementStart(1, "div", 49);
1258
- i0.ɵɵelement(2, "app-overlay-info", 115);
1175
+ i0.ɵɵelementStart(1, "div", 57);
1176
+ i0.ɵɵelement(2, "app-overlay-info", 109);
1259
1177
  i0.ɵɵpipe(3, "dynamicTranslate");
1260
1178
  i0.ɵɵelementEnd();
1261
1179
  i0.ɵɵelementContainerEnd();
@@ -1266,8 +1184,8 @@ function DynamicFormQuestionComponent_ng_container_24_Template(rf, ctx) { if (rf
1266
1184
  } }
1267
1185
  function DynamicFormQuestionComponent_ng_container_25_Template(rf, ctx) { if (rf & 1) {
1268
1186
  i0.ɵɵelementContainerStart(0);
1269
- i0.ɵɵelementStart(1, "div", 49);
1270
- i0.ɵɵelement(2, "app-overlay-info", 116);
1187
+ i0.ɵɵelementStart(1, "div", 57);
1188
+ i0.ɵɵelement(2, "app-overlay-info", 110);
1271
1189
  i0.ɵɵpipe(3, "dynamicTranslate");
1272
1190
  i0.ɵɵelementEnd();
1273
1191
  i0.ɵɵelementContainerEnd();
@@ -1277,54 +1195,54 @@ function DynamicFormQuestionComponent_ng_container_25_Template(rf, ctx) { if (rf
1277
1195
  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);
1278
1196
  } }
1279
1197
  function DynamicFormQuestionComponent_ng_container_26_ng_container_4_ion_col_1_Template(rf, ctx) { if (rf & 1) {
1280
- i0.ɵɵelementStart(0, "ion-col", 120);
1281
- i0.ɵɵelement(1, "app-question", 121);
1198
+ i0.ɵɵelementStart(0, "ion-col", 114);
1199
+ i0.ɵɵelement(1, "app-question", 115);
1282
1200
  i0.ɵɵelementEnd();
1283
1201
  } if (rf & 2) {
1284
- const element_r165 = i0.ɵɵnextContext().$implicit;
1285
- const ctx_r166 = i0.ɵɵnextContext(2);
1286
- i0.ɵɵproperty("sizeXl", element_r165.sizeXL)("sizeLg", element_r165.sizeLG)("sizeMd", element_r165.sizeMD)("offsetMd", element_r165.offSetMD);
1202
+ const element_r162 = i0.ɵɵnextContext().$implicit;
1203
+ const ctx_r163 = i0.ɵɵnextContext(2);
1204
+ i0.ɵɵproperty("sizeXl", element_r162.sizeXL)("sizeLg", element_r162.sizeLG)("sizeMd", element_r162.sizeMD)("offsetMd", element_r162.offSetMD);
1287
1205
  i0.ɵɵadvance(1);
1288
- i0.ɵɵproperty("question", element_r165)("form", ctx_r166.form)("forScreenQuestionnaire", ctx_r166.forScreenQuestionnaire);
1206
+ i0.ɵɵproperty("question", element_r162)("form", ctx_r163.form)("forScreenQuestionnaire", ctx_r163.forScreenQuestionnaire);
1289
1207
  } }
1290
1208
  function DynamicFormQuestionComponent_ng_container_26_ng_container_4_Template(rf, ctx) { if (rf & 1) {
1291
1209
  i0.ɵɵelementContainerStart(0);
1292
- i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_26_ng_container_4_ion_col_1_Template, 2, 7, "ion-col", 119);
1210
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_26_ng_container_4_ion_col_1_Template, 2, 7, "ion-col", 113);
1293
1211
  i0.ɵɵelementContainerEnd();
1294
1212
  } if (rf & 2) {
1295
- const element_r165 = ctx.$implicit;
1296
- const ctx_r163 = i0.ɵɵnextContext(2);
1213
+ const element_r162 = ctx.$implicit;
1214
+ const ctx_r160 = i0.ɵɵnextContext(2);
1297
1215
  i0.ɵɵadvance(1);
1298
- i0.ɵɵproperty("ngIf", element_r165.colElement === "COL1" && ctx_r163.visibleIf(element_r165.visibleIf, element_r165.name));
1216
+ i0.ɵɵproperty("ngIf", element_r162.colElement === "COL1" && ctx_r160.visibleIf(element_r162.visibleIf, element_r162.name));
1299
1217
  } }
1300
1218
  function DynamicFormQuestionComponent_ng_container_26_ng_container_7_ion_col_1_Template(rf, ctx) { if (rf & 1) {
1301
- i0.ɵɵelementStart(0, "ion-col", 123);
1302
- i0.ɵɵelement(1, "app-question", 121);
1219
+ i0.ɵɵelementStart(0, "ion-col", 117);
1220
+ i0.ɵɵelement(1, "app-question", 115);
1303
1221
  i0.ɵɵelementEnd();
1304
1222
  } if (rf & 2) {
1305
- const element_r168 = i0.ɵɵnextContext().$implicit;
1306
- const ctx_r169 = i0.ɵɵnextContext(2);
1307
- i0.ɵɵproperty("sizeXl", element_r168.sizeXL)("sizeLg", element_r168.sizeLG)("sizeMd", element_r168.sizeMD)("offsetMd", element_r168.offSetMD);
1223
+ const element_r165 = i0.ɵɵnextContext().$implicit;
1224
+ const ctx_r166 = i0.ɵɵnextContext(2);
1225
+ i0.ɵɵproperty("sizeXl", element_r165.sizeXL)("sizeLg", element_r165.sizeLG)("sizeMd", element_r165.sizeMD)("offsetMd", element_r165.offSetMD);
1308
1226
  i0.ɵɵadvance(1);
1309
- i0.ɵɵproperty("question", element_r168)("form", ctx_r169.form)("forScreenQuestionnaire", ctx_r169.forScreenQuestionnaire);
1227
+ i0.ɵɵproperty("question", element_r165)("form", ctx_r166.form)("forScreenQuestionnaire", ctx_r166.forScreenQuestionnaire);
1310
1228
  } }
1311
1229
  function DynamicFormQuestionComponent_ng_container_26_ng_container_7_Template(rf, ctx) { if (rf & 1) {
1312
1230
  i0.ɵɵelementContainerStart(0);
1313
- i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_26_ng_container_7_ion_col_1_Template, 2, 7, "ion-col", 122);
1231
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_26_ng_container_7_ion_col_1_Template, 2, 7, "ion-col", 116);
1314
1232
  i0.ɵɵelementContainerEnd();
1315
1233
  } if (rf & 2) {
1316
- const element_r168 = ctx.$implicit;
1317
- const ctx_r164 = i0.ɵɵnextContext(2);
1234
+ const element_r165 = ctx.$implicit;
1235
+ const ctx_r161 = i0.ɵɵnextContext(2);
1318
1236
  i0.ɵɵadvance(1);
1319
- i0.ɵɵproperty("ngIf", element_r168.colElement === "COL2" && ctx_r164.visibleIf(element_r168.visibleIf, element_r168.name));
1237
+ i0.ɵɵproperty("ngIf", element_r165.colElement === "COL2" && ctx_r161.visibleIf(element_r165.visibleIf, element_r165.name));
1320
1238
  } }
1321
1239
  function DynamicFormQuestionComponent_ng_container_26_Template(rf, ctx) { if (rf & 1) {
1322
- i0.ɵɵelementContainerStart(0, 117);
1240
+ i0.ɵɵelementContainerStart(0, 111);
1323
1241
  i0.ɵɵelementStart(1, "ion-row")(2, "ion-col")(3, "ion-row");
1324
- i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_26_ng_container_4_Template, 2, 1, "ng-container", 118);
1242
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_26_ng_container_4_Template, 2, 1, "ng-container", 112);
1325
1243
  i0.ɵɵelementEnd()();
1326
1244
  i0.ɵɵelementStart(5, "ion-col")(6, "ion-row");
1327
- i0.ɵɵtemplate(7, DynamicFormQuestionComponent_ng_container_26_ng_container_7_Template, 2, 1, "ng-container", 118);
1245
+ i0.ɵɵtemplate(7, DynamicFormQuestionComponent_ng_container_26_ng_container_7_Template, 2, 1, "ng-container", 112);
1328
1246
  i0.ɵɵelementEnd()()();
1329
1247
  i0.ɵɵelementContainerEnd();
1330
1248
  } if (rf & 2) {
@@ -1335,19 +1253,19 @@ function DynamicFormQuestionComponent_ng_container_26_Template(rf, ctx) { if (rf
1335
1253
  i0.ɵɵproperty("ngForOf", ctx_r24.question.elements);
1336
1254
  } }
1337
1255
  function DynamicFormQuestionComponent_div_27_small_1_Template(rf, ctx) { if (rf & 1) {
1338
- i0.ɵɵelementStart(0, "small", 125);
1256
+ i0.ɵɵelementStart(0, "small", 119);
1339
1257
  i0.ɵɵtext(1);
1340
1258
  i0.ɵɵpipe(2, "dynamicTranslate");
1341
1259
  i0.ɵɵelementEnd();
1342
1260
  } if (rf & 2) {
1343
- const ctx_r171 = i0.ɵɵnextContext(2);
1261
+ const ctx_r168 = i0.ɵɵnextContext(2);
1344
1262
  i0.ɵɵproperty("@rowExpansionTrigger", "active");
1345
1263
  i0.ɵɵadvance(1);
1346
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 2, ctx_r171.isValid, ctx_r171.dynamicParam));
1264
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 2, ctx_r168.isValid, ctx_r168.dynamicParam));
1347
1265
  } }
1348
1266
  function DynamicFormQuestionComponent_div_27_Template(rf, ctx) { if (rf & 1) {
1349
- i0.ɵɵelementStart(0, "div", 51);
1350
- i0.ɵɵtemplate(1, DynamicFormQuestionComponent_div_27_small_1_Template, 3, 5, "small", 124);
1267
+ i0.ɵɵelementStart(0, "div", 59);
1268
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_div_27_small_1_Template, 3, 5, "small", 118);
1351
1269
  i0.ɵɵelementEnd();
1352
1270
  } if (rf & 2) {
1353
1271
  const ctx_r25 = i0.ɵɵnextContext();
@@ -1356,7 +1274,7 @@ function DynamicFormQuestionComponent_div_27_Template(rf, ctx) { if (rf & 1) {
1356
1274
  i0.ɵɵproperty("ngIf", ctx_r25.isValid != "");
1357
1275
  } }
1358
1276
  export class DynamicFormQuestionComponent {
1359
- constructor(qcs, service, translate, validationService, util, navController, logger, claimantService, weeklycertService, elementRef, renderer, ls) {
1277
+ constructor(qcs, service, translate, validationService, util, navController, logger, sanitizer, loginService, addrSvc, modalCtrl) {
1360
1278
  this.qcs = qcs;
1361
1279
  this.service = service;
1362
1280
  this.translate = translate;
@@ -1364,34 +1282,29 @@ export class DynamicFormQuestionComponent {
1364
1282
  this.util = util;
1365
1283
  this.navController = navController;
1366
1284
  this.logger = logger;
1367
- this.claimantService = claimantService;
1368
- this.weeklycertService = weeklycertService;
1369
- this.elementRef = elementRef;
1370
- this.renderer = renderer;
1371
- this.ls = ls;
1285
+ this.sanitizer = sanitizer;
1286
+ this.loginService = loginService;
1287
+ this.addrSvc = addrSvc;
1288
+ this.modalCtrl = modalCtrl;
1372
1289
  this.onDynamicParamUpdate = new EventEmitter();
1290
+ this.isNewPasswordPolicyEnabled = LibConstants.isNewPasswordPolicyEnabled == 'true';
1291
+ this.isNewPasswordPolicyEnabledForClaimant = LibConstants.isNewPasswordPolicyEnabledForClaimant == 'true';
1292
+ this.isNewPasswordPolicyEnabledForEmployer = LibConstants.isNewPasswordPolicyEnabledForEmployer == 'true';
1293
+ this.isSameSymbolPolicyForClaimantAndAgency = LibConstants.isSameSymbolPolicyForClaimantAndAgency == 'true';
1294
+ this.isAddressValidationEnabled = LibConstants.isAddressValidationEnabled == 'true';
1373
1295
  this.legalAccepted = null;
1296
+ this.OtpCompleted = null;
1374
1297
  this.index = 1;
1375
1298
  this.returnModel = new ValidationModel();
1376
- this.maskClass = true;
1299
+ this.type = 'text';
1377
1300
  this.showMinDate = false;
1378
1301
  this.showMaxDate = false;
1379
1302
  this.minValue = null;
1380
1303
  this.maxValue = null;
1381
- this.toDayDate = new Date();
1382
- this.registerClaimantFlag = false;
1383
- this.phoneVerified = true;
1384
- this.isFieldDisabled = true;
1385
- this.partEmpModel = new PartialEmploymentModel();
1386
- this.isOtpModalEnabled = false;
1387
- this.isReturningUser = false;
1388
- this.minDateDOB = new Date(this.toDayDate.getFullYear() - 100, this.toDayDate.getMonth(), this.toDayDate.getDate());
1389
- this.maxDateDOB = new Date(this.toDayDate.getFullYear() - 10, this.toDayDate.getMonth(), this.toDayDate.getDate());
1390
- }
1391
- ngAfterViewInit() {
1392
- if (this.pCalendar) {
1393
- this.modifyCalendarAttributes();
1394
- }
1304
+ this.td = null;
1305
+ this.alpRnd = 'XsPjxWl';
1306
+ this.varn = 37043;
1307
+ this.showAddressSuggestion = false;
1395
1308
  }
1396
1309
  visibleIf(strExp, elementName) {
1397
1310
  if (!strExp) {
@@ -1400,9 +1313,7 @@ export class DynamicFormQuestionComponent {
1400
1313
  let isVisible = false;
1401
1314
  if (strExp.includes('&&')) {
1402
1315
  let expr = strExp.split('&&');
1403
- isVisible =
1404
- this.calculateOperandValue(expr[0]) &&
1405
- this.calculateOperandValue(expr[1]);
1316
+ isVisible = this.calculateOperandValue(expr[0]) && this.calculateOperandValue(expr[1]);
1406
1317
  if (expr.length >= 3) {
1407
1318
  isVisible = isVisible && this.calculateOperandValue(expr[2]);
1408
1319
  }
@@ -1418,9 +1329,7 @@ export class DynamicFormQuestionComponent {
1418
1329
  }
1419
1330
  if (strExp.includes('||')) {
1420
1331
  let expr = strExp.split('||');
1421
- isVisible =
1422
- this.calculateOperandValue(expr[0]) ||
1423
- this.calculateOperandValue(expr[1]);
1332
+ isVisible = this.calculateOperandValue(expr[0]) || this.calculateOperandValue(expr[1]);
1424
1333
  if (expr.length >= 3) {
1425
1334
  isVisible = isVisible || this.calculateOperandValue(expr[2]);
1426
1335
  }
@@ -1455,15 +1364,13 @@ export class DynamicFormQuestionComponent {
1455
1364
  let operand1 = splitArray[0];
1456
1365
  let operand2 = splitArray[1];
1457
1366
  operand1 = operand1.replace('{', '').replace('}', '').trim(); //claimantPriorPay102 diffmailaddress315
1458
- operand2 = operand2.replace('{', '').replace('}', '').trim(); //null
1367
+ operand2 = operand2.replace('{', '').replace('}', '').trim(); //null
1459
1368
  if (this.form.controls[operand1]) {
1460
1369
  var valueOfCnrtrlToCheck;
1461
- if (this.form.controls[operand1].value &&
1462
- typeof this.form.controls[operand1].value === 'string') {
1370
+ if (this.form.controls[operand1].value && typeof (this.form.controls[operand1]).value === 'string') {
1463
1371
  valueOfCnrtrlToCheck = this.form.controls[operand1].value;
1464
1372
  }
1465
- if (this.form.controls[operand1].value &&
1466
- typeof this.form.controls[operand1].value != 'string') {
1373
+ if (this.form.controls[operand1].value && typeof (this.form.controls[operand1]).value != 'string') {
1467
1374
  valueOfCnrtrlToCheck = this.form.controls[operand1].value['value'];
1468
1375
  }
1469
1376
  if (operand2 === 'null' && isDoesNotEqual && valueOfCnrtrlToCheck) {
@@ -1472,152 +1379,35 @@ export class DynamicFormQuestionComponent {
1472
1379
  if (operand2 === 'null' && !isDoesNotEqual && !valueOfCnrtrlToCheck) {
1473
1380
  return true;
1474
1381
  }
1475
- operand2 = operand2.replace("'", '').replace("'", '').trim(); //null
1476
- if (operand2 != 'null' &&
1477
- !isDoesNotEqual &&
1478
- valueOfCnrtrlToCheck === operand2) {
1382
+ operand2 = operand2.replace('\'', '').replace('\'', '').trim(); //null
1383
+ if (operand2 != 'null' && !isDoesNotEqual && (valueOfCnrtrlToCheck === operand2)) {
1479
1384
  return true;
1480
1385
  }
1481
- if (operand2 != 'null' &&
1482
- isDoesNotEqual &&
1483
- valueOfCnrtrlToCheck != operand2) {
1386
+ if (operand2 != 'null' && isDoesNotEqual && (valueOfCnrtrlToCheck != operand2)) {
1484
1387
  return true;
1485
1388
  }
1486
1389
  return false;
1487
1390
  }
1488
1391
  }
1489
1392
  ngOnInit() {
1490
- // this.logger.debug('is DynamicFormQuestionComponent ngOnInit called', this.question)
1491
- this.getPartialEmploymentInfo();
1492
1393
  this.filterResult = this.question.choices;
1493
1394
  this.setMinMaxDate();
1494
1395
  this.setMinMaxValue();
1495
1396
  this.setDefaultValue();
1496
1397
  this.setLinkComponentData();
1497
- let currentQes = this.service.searchBs.getValue();
1498
- this.currentflowkey = currentQes.flowKey;
1499
- if ((localStorage.getItem('disableFieldsOnSignup') === 'true') && localStorage.getItem("flowKey") == '345') {
1500
- this.disableFields();
1501
- }
1502
- }
1503
- checkFlowKey() {
1504
- if (this.currentflowkey === 'register-claimant') {
1505
- //console.info("currentflowkey ",this.currentflowkey)
1506
- return (this.registerClaimantFlag = true);
1507
- }
1508
- else {
1509
- return this.registerClaimantFlag;
1510
- }
1511
- }
1512
- // phoneNumberVerified(): boolean{
1513
- // return this.phoneVerified,
1514
- // }
1515
- disableFields() {
1516
- if (this.checkFlowKey()) {
1517
- this.form.get('phone').disable();
1518
- this.form.get('email').disable();
1519
- this.form.get('username').disable();
1520
- this.form.get('password').disable();
1521
- this.form.get('confirmPassword').disable();
1522
- this.form.get('secQues1').disable();
1523
- this.form.get('secAns1').disable();
1524
- this.form.get('secQues2').disable();
1525
- this.form.get('secAns2').disable();
1526
- this.form.get('secQues3').disable();
1527
- this.form.get('secAns3').disable();
1528
- this.form.get('resAdress').disable();
1529
- this.form.get('diffmailaddress').disable();
1530
- //this.form.get('mailaddress').disable();
1531
- }
1532
- }
1533
- enableFields() {
1534
- this.form.get('email').enable();
1535
- this.form.get('username').enable();
1536
- this.form.get('password').enable();
1537
- this.form.get('confirmPassword').enable();
1538
- this.form.get('secQues1').enable();
1539
- this.form.get('secAns1').enable();
1540
- this.form.get('secQues2').enable();
1541
- this.form.get('secAns2').enable();
1542
- this.form.get('secQues3').enable();
1543
- this.form.get('secAns3').enable();
1544
- this.form.get('resAdress').enable();
1545
- this.form.get('diffmailaddress').enable();
1546
- //this.form.get('mailaddress').enable();
1547
- }
1548
- checkIfUserExist() {
1549
- // console.info("dob ", this.form.get("dob").value);
1550
- if (!this.form.get('ssn').value &&
1551
- !this.form.get('dob').value &&
1552
- !this.checkFlowKey()) {
1553
- }
1554
- else {
1555
- let ssnfromuser = this.form.get('ssn').value;
1556
- let dateOfbirth = this.form.get('dob').value;
1557
- //console.info("test with ssnfromuser ", ssnfromuser);
1558
- let formatedD = dateOfbirth.replace(/\//g, "-");
1559
- if (dateOfbirth != null && ssnfromuser != null) {
1560
- this.claimantService.checkIfUserAlreadyExist(ssnfromuser, formatedD).subscribe((x) => {
1561
- if (x != null) {
1562
- this.disableFields();
1563
- this.form.get('phone').setValue(x.toString());
1564
- if (window["env"]["environment"] === "ksprod") {
1565
- this.form.get('phone').disable();
1566
- }
1567
- /**Delete the else block after the workshare testing is done */
1568
- else {
1569
- this.form.get('phone').disable();
1570
- }
1571
- }
1572
- else {
1573
- this.disableFields();
1574
- this.form.get('phone').enable();
1575
- }
1576
- }, (err) => {
1577
- if (err.errorCode === "404") {
1578
- }
1579
- else {
1580
- this.util.hideLoader();
1581
- this.util.errorHandler(err);
1582
- }
1583
- });
1584
- }
1585
- }
1586
- }
1587
- getPartialEmploymentInfo() {
1588
- if (this.question.name === 'workPerformed') {
1589
- this.weeklycertService
1590
- .getPartialEmployment()
1591
- .subscribe((res) => {
1592
- if (res.partialEmploymentFlag === '1') {
1593
- this.form.value[this.question.name] = 'Y';
1594
- this.form.controls[this.question.name].addValidators((control) => {
1595
- return control.value !== 'Y' ? { forceYes: true } : null;
1596
- });
1597
- }
1598
- });
1599
- }
1600
1398
  }
1601
1399
  setLinkComponentData() {
1602
1400
  if (this.question.componentName == 'app-link') {
1603
- this.linkComponentData = this.question.componentData
1604
- ? JSON.parse(this.question.componentData)
1605
- : null;
1401
+ this.linkComponentData = this.question.componentData ? JSON.parse(this.question.componentData) : null;
1606
1402
  }
1607
1403
  }
1608
1404
  showLabelForCustomComponent() {
1609
- let parsedData = this.question.componentData
1610
- ? JSON.parse(this.question.componentData)
1611
- : null;
1405
+ let parsedData = this.question.componentData ? JSON.parse(this.question.componentData) : null;
1612
1406
  return parsedData?.showLabel == 'Y';
1613
1407
  }
1614
1408
  setMinMaxValue() {
1615
- if (this.question.type === 'number' ||
1616
- this.question.type === 'decimal' ||
1617
- this.question.type === 'currency') {
1618
- let minMaxModel = this.question.componentData
1619
- ? JSON.parse(this.question.componentData)
1620
- : null;
1409
+ if (this.question.type === 'number' || this.question.type === 'decimal' || this.question.type === 'currency') {
1410
+ let minMaxModel = this.question.componentData ? JSON.parse(this.question.componentData) : null;
1621
1411
  if (minMaxModel) {
1622
1412
  if (minMaxModel.minValue) {
1623
1413
  this.minValue = minMaxModel.minValue;
@@ -1630,9 +1420,7 @@ export class DynamicFormQuestionComponent {
1630
1420
  }
1631
1421
  setMinMaxDate() {
1632
1422
  if (this.question.inputType === 'date') {
1633
- let minMaxModel = this.question.componentData
1634
- ? JSON.parse(this.question.componentData)
1635
- : null;
1423
+ let minMaxModel = this.question.componentData ? JSON.parse(this.question.componentData) : null;
1636
1424
  if (minMaxModel && (minMaxModel.maxDateKey || minMaxModel.minDateKey)) {
1637
1425
  if (this.dynamicParam[minMaxModel.minDateKey]) {
1638
1426
  this.parseDate(this.dynamicParam[minMaxModel.minDateKey], 'min');
@@ -1674,48 +1462,34 @@ export class DynamicFormQuestionComponent {
1674
1462
  }
1675
1463
  }
1676
1464
  setStyle(indent) {
1677
- let padding = indent <= 1 ? '0 px' : indent * 10 + 'px';
1465
+ //let padding = indent <= 1 ? '0 px' : indent * 0 + 'px';
1466
+ let padding = '0 px';
1678
1467
  let styleObj = {
1679
- 'padding-left': padding,
1468
+ 'padding-left': padding
1680
1469
  };
1681
1470
  return Object.assign(styleObj);
1682
1471
  }
1683
1472
  setMargin(margin) {
1684
1473
  let mar = margin + 'px';
1685
1474
  let styleObj = {
1686
- 'margin-right': mar,
1475
+ 'margin-right': mar
1687
1476
  };
1688
1477
  return Object.assign(styleObj);
1689
1478
  }
1690
1479
  get isValid() {
1691
- let message = '';
1480
+ let message = "";
1692
1481
  let questionType = this.question.type;
1693
- if ('html' === questionType ||
1694
- 'label' === questionType ||
1695
- 'simpleLabel' === questionType ||
1696
- 'displaytextaslabel' === questionType ||
1697
- ('button' === questionType &&
1698
- !this.question.validators &&
1699
- this.question.componentName != 'app-sign-ssn' &&
1700
- this.question.componentName != 'app-link') ||
1701
- 'label-with-overlay' === questionType) {
1702
- return '';
1482
+ if ('html' === questionType || 'label' === questionType || 'simpleLabel' === questionType || 'displaytextaslabel' === questionType
1483
+ || ('button' === questionType && !this.question.validators && this.question.componentName != 'app-sign-ssn' && this.question.componentName != 'app-link')
1484
+ || 'label-with-overlay' === questionType) {
1485
+ return "";
1703
1486
  }
1704
- if (this.question &&
1705
- this.question.name &&
1706
- this.form &&
1707
- this.form.controls[this.question.name].errors?.required &&
1708
- (this.form.controls[this.question.name].dirty ||
1709
- this.form.controls[this.question.name].touched)) {
1487
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.required
1488
+ && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1710
1489
  this.form.controls[this.question.name].markAsDirty();
1711
1490
  return this.question.requiredErrorText;
1712
1491
  }
1713
- if (this.question &&
1714
- this.question.name &&
1715
- this.form &&
1716
- this.form.controls[this.question.name].errors?.maxlength &&
1717
- (this.form.controls[this.question.name].dirty ||
1718
- this.form.controls[this.question.name].touched)) {
1492
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.maxlength && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1719
1493
  this.logger.debug('errors?.maxLength', this.question);
1720
1494
  this.form.controls[this.question.name].markAsDirty();
1721
1495
  if (this.question.description) {
@@ -1723,7 +1497,7 @@ export class DynamicFormQuestionComponent {
1723
1497
  }
1724
1498
  let validatorList = this.question.validators;
1725
1499
  var keepGoing = true;
1726
- validatorList.forEach((validator) => {
1500
+ validatorList.forEach(validator => {
1727
1501
  this.logger.debug('validator.type ', validator.type);
1728
1502
  if (keepGoing) {
1729
1503
  if (validator.type === 'text' && validator.maxLength) {
@@ -1732,22 +1506,18 @@ export class DynamicFormQuestionComponent {
1732
1506
  keepGoing = false;
1733
1507
  }
1734
1508
  else {
1735
- message = '';
1509
+ message = "";
1736
1510
  }
1737
1511
  }
1738
1512
  });
1739
1513
  return message;
1740
1514
  }
1741
- if (this.question &&
1742
- this.question.name &&
1743
- this.form &&
1744
- this.form.controls[this.question.name].errors?.pattern &&
1745
- (this.form.controls[this.question.name].dirty ||
1746
- this.form.controls[this.question.name].touched)) {
1515
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.pattern
1516
+ && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1747
1517
  // this.logger.debug('errors?.pattern',this.question)
1748
1518
  let validatorList = this.question.validators;
1749
1519
  var keepGoing = true;
1750
- validatorList.forEach((validator) => {
1520
+ validatorList.forEach(validator => {
1751
1521
  // this.logger.debug('validator.type ', validator.type)
1752
1522
  if (keepGoing) {
1753
1523
  if (validator.type === 'regex') {
@@ -1757,22 +1527,18 @@ export class DynamicFormQuestionComponent {
1757
1527
  keepGoing = false;
1758
1528
  }
1759
1529
  else {
1760
- message = '';
1530
+ message = "";
1761
1531
  }
1762
1532
  }
1763
1533
  });
1764
1534
  return message;
1765
1535
  }
1766
- if (this.question &&
1767
- this.question.name &&
1768
- this.form &&
1769
- this.form.controls[this.question.name].errors?.dateComparision &&
1770
- (this.form.controls[this.question.name].dirty ||
1771
- this.form.controls[this.question.name].touched)) {
1536
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.dateComparision
1537
+ && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1772
1538
  let validatorList = this.question.validators;
1773
1539
  var keepGoing = true;
1774
- let message = '';
1775
- validatorList.forEach((validator) => {
1540
+ let message = "";
1541
+ validatorList.forEach(validator => {
1776
1542
  if (keepGoing) {
1777
1543
  // this.logger.debug('validator.type.minlength ', validator.type)
1778
1544
  if (validator.type === 'expression') {
@@ -1782,180 +1548,194 @@ export class DynamicFormQuestionComponent {
1782
1548
  this.form.controls[this.question.name].markAsDirty();
1783
1549
  }
1784
1550
  else {
1785
- message = '';
1551
+ message = "";
1786
1552
  }
1787
1553
  }
1788
1554
  });
1789
1555
  return message;
1790
1556
  }
1791
- if (this.question &&
1792
- this.question.name &&
1793
- this.form &&
1794
- this.form.controls[this.question.name].errors?.minlength &&
1795
- (this.form.controls[this.question.name].dirty ||
1796
- this.form.controls[this.question.name].touched)) {
1557
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.minlength
1558
+ && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1797
1559
  let validatorList = this.question.validators;
1798
1560
  var keepGoing = true;
1799
- let message = '';
1800
- validatorList.forEach((validator) => {
1561
+ let message = "";
1562
+ validatorList.forEach(validator => {
1801
1563
  if (keepGoing) {
1802
- //console.log('validator.type.minlength ', validator.type)
1564
+ //this.logger.debug('validator.type.minlength ', validator.type)
1803
1565
  if (validator.type === 'text') {
1804
- //console.log('validator.text ', validator.text)
1566
+ //this.logger.debug('validator.text ', validator.text)
1805
1567
  message = validator.text;
1806
1568
  this.form.controls[this.question.name].markAsDirty();
1807
1569
  keepGoing = false;
1808
1570
  }
1809
1571
  else {
1810
- message = '';
1572
+ message = "";
1811
1573
  }
1812
1574
  }
1813
1575
  });
1814
1576
  return message;
1815
1577
  }
1816
- if (this.question &&
1817
- this.question.name &&
1818
- this.form &&
1819
- this.form.controls[this.question.name].errors?.passwordComparision &&
1820
- (this.form.controls[this.question.name].dirty ||
1821
- this.form.controls[this.question.name].touched)) {
1578
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.passwordComparision
1579
+ && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1822
1580
  let validatorList = this.question.validators;
1823
1581
  var keepGoing = true;
1824
- let message = '';
1825
- validatorList.forEach((validator) => {
1582
+ let message = "";
1583
+ validatorList.forEach(validator => {
1826
1584
  if (keepGoing) {
1827
- // console.log('validator.type.minlength ', validator.type)
1585
+ // this.logger.debug('validator.type.minlength ', validator.type)
1828
1586
  if (validator.type === 'expression') {
1829
- // console.log('validator.text ', validator.text)
1587
+ // this.logger.debug('validator.text ', validator.text)
1830
1588
  message = validator.text;
1831
1589
  this.form.controls[this.question.name].markAsDirty();
1832
1590
  keepGoing = false;
1833
1591
  }
1834
1592
  else {
1835
- message = '';
1593
+ message = "";
1836
1594
  }
1837
1595
  }
1838
1596
  });
1839
1597
  return message;
1840
1598
  }
1841
- if (this.question &&
1842
- this.question.name &&
1843
- this.form &&
1844
- this.form.controls[this.question.name].errors?.requiredIf &&
1845
- (this.form.controls[this.question.name].dirty ||
1846
- this.form.controls[this.question.name].touched)) {
1599
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.requiredIf
1600
+ && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1847
1601
  this.form.controls[this.question.name].markAsDirty();
1848
- return 'required';
1602
+ return "required";
1849
1603
  }
1850
- if (this.question &&
1851
- this.question.name &&
1852
- this.form &&
1853
- this.form.controls[this.question.name].errors?.bpEmplrFlag &&
1854
- this.form.controls[this.question.name].dirty &&
1855
- this.form.controls[this.question.name].touched) {
1604
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.bpEmplrFlag
1605
+ && (this.form.controls[this.question.name].dirty && this.form.controls[this.question.name].touched)) {
1856
1606
  var keepGoing = true;
1857
- let message;
1858
- if (localStorage.getItem("language") === "es") {
1859
- message = 'Confirmar o eliminar cada empleador(es) para continuar';
1607
+ if (this.util.isState('MS')) {
1608
+ let message = "Enter details or delete each employer(s) to continue";
1609
+ this.form.controls[this.question.name].markAsDirty();
1610
+ return message;
1860
1611
  }
1861
1612
  else {
1862
- message = 'Confirm or Delete each employer(s) to continue';
1613
+ let message = "Confirm or Delete each employer(s) to continue";
1614
+ this.form.controls[this.question.name].markAsDirty();
1615
+ return message;
1863
1616
  }
1864
- this.form.controls[this.question.name].markAsDirty();
1865
- return message;
1866
1617
  }
1867
- if (this.question &&
1868
- this.question.name &&
1869
- this.form &&
1870
- this.form.controls[this.question.name].errors
1871
- ?.simpleCheckBoxValidationFlag &&
1872
- (this.form.controls[this.question.name].dirty ||
1873
- this.form.controls[this.question.name].touched)) {
1618
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.simpleCheckBoxValidationFlag
1619
+ && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1874
1620
  var keepGoing = true;
1875
- let message = 'required';
1621
+ let message = "required";
1876
1622
  this.form.controls[this.question.name].markAsDirty();
1877
1623
  return message;
1878
1624
  }
1879
- if (this.question &&
1880
- this.question.name &&
1881
- this.form &&
1882
- this.form.controls[this.question.name].errors?.cpatchvalidationFlag &&
1883
- (this.form.controls[this.question.name].dirty ||
1884
- this.form.controls[this.question.name].touched)) {
1625
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.cpatchvalidationFlag
1626
+ && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1885
1627
  var keepGoing = true;
1886
- let message = 'required';
1628
+ let message = "required";
1887
1629
  this.form.controls[this.question.name].markAsDirty();
1888
1630
  return message;
1889
1631
  }
1890
- if (this.question &&
1891
- this.question.name &&
1892
- this.form &&
1893
- this.form.controls[this.question.name].errors?.uploadvalidationFlag &&
1894
- (this.form.controls[this.question.name].dirty ||
1895
- this.form.controls[this.question.name].touched)) {
1632
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.uploadvalidationFlag
1633
+ && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1896
1634
  var keepGoing = true;
1897
- let message = 'required';
1635
+ let message = "required";
1898
1636
  this.form.controls[this.question.name].markAsDirty();
1899
1637
  return message;
1900
1638
  }
1901
- if (this.question &&
1902
- this.question.name &&
1903
- this.form &&
1904
- this.form.controls[this.question.name].errors?.bpEmplrLengthFlag &&
1905
- (this.form.controls[this.question.name].dirty ||
1906
- this.form.controls[this.question.name].touched)) {
1639
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.bpEmplrLengthFlag
1640
+ && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1907
1641
  var keepGoing = true;
1908
- let message = 'Add previous employment details';
1642
+ let message = "Add previous employment details";
1909
1643
  this.form.controls[this.question.name].markAsDirty();
1910
1644
  return message;
1911
1645
  }
1912
- if (this.question &&
1913
- this.question.name &&
1914
- this.form &&
1915
- this.form.controls[this.question.name].errors?.addressValidationFlag &&
1916
- (this.form.controls[this.question.name].dirty ||
1917
- this.form.controls[this.question.name].touched)) {
1646
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.addressValidationFlag
1647
+ && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1918
1648
  var keepGoing = true;
1919
1649
  //let message: string = "Please provide valid address.";
1920
- this.addresses.forEach((address) => address.submit());
1650
+ this.addresses.forEach(address => address.submit());
1921
1651
  this.form.controls[this.question.name].markAsDirty();
1922
1652
  return message;
1923
1653
  }
1924
- if (this.question &&
1925
- this.question.name &&
1926
- this.form &&
1927
- this.form.controls[this.question.name].errors
1928
- ?.bankDetailsValidationFlag &&
1929
- (this.form.controls[this.question.name].dirty ||
1930
- this.form.controls[this.question.name].touched)) {
1654
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.bankDetailsValidationFlag
1655
+ && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1931
1656
  var keepGoing = true;
1932
1657
  //let message: string = "Please provide valid bank details.";
1933
1658
  this.bankdtls?.submit();
1934
1659
  this.form.controls[this.question.name].markAsDirty();
1935
1660
  return message;
1936
1661
  }
1937
- if (this.question &&
1938
- this.question.name &&
1939
- this.form &&
1940
- this.form.controls[this.question.name].errors?.wcEmployerValidation &&
1941
- this.form.controls[this.question.name].dirty &&
1942
- this.form.controls[this.question.name].touched) {
1662
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.jobTitleFlag
1663
+ && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1943
1664
  var keepGoing = true;
1944
1665
  let message = "required";
1666
+ this.jobTitle?.submit();
1667
+ this.form.controls[this.question.name].markAsDirty();
1668
+ return message;
1669
+ }
1670
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.wcEmployerValidation
1671
+ && (this.form.controls[this.question.name].dirty && this.form.controls[this.question.name].touched)) {
1672
+ var keepGoing = true;
1673
+ let message = "Update employer(s) to continue";
1945
1674
  this.wcEmployerGrid?.submit();
1946
1675
  this.form.controls[this.question.name].markAsDirty();
1947
1676
  return message;
1948
1677
  }
1949
- if (this.question &&
1950
- this.question.name &&
1951
- this.form &&
1952
- this.form.controls[this.question.name].errors?.notEquals &&
1953
- (this.form.controls[this.question.name].dirty ||
1954
- this.form.controls[this.question.name].touched)) {
1678
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.wcEmployerRequired
1679
+ && (this.form.controls[this.question.name].dirty && this.form.controls[this.question.name].touched)) {
1680
+ var keepGoing = true;
1681
+ let message = "Add employer details";
1682
+ this.form.controls[this.question.name].markAsDirty();
1683
+ return message;
1684
+ }
1685
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.wcRequired
1686
+ && (this.form.controls[this.question.name].dirty && this.form.controls[this.question.name].touched)) {
1687
+ var keepGoing = true;
1688
+ let message = "required";
1689
+ this.form.controls[this.question.name].markAsDirty();
1690
+ return message;
1691
+ }
1692
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.wcPartialClaimEmployment
1693
+ && (this.form.controls[this.question.name].dirty && this.form.controls[this.question.name].touched)) {
1694
+ var keepGoing = true;
1695
+ let message = null;
1696
+ if (this.loginService.isCsr()) {
1697
+ message = "Verify employment. The last day worked on the application is during the week or employment details were on the prior week. If claimant did not work select Next to continue.";
1698
+ }
1699
+ else if (this.loginService.isClaimant()) {
1700
+ message = "Did you work during the week? If yes, provide your employment details. If no, please call us at 601-493-9427, Monday through Friday from 8:00 AM to 5:00 PM for assistance.";
1701
+ }
1702
+ this.form.controls[this.question.name].markAsDirty();
1703
+ return message;
1704
+ }
1705
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.wcDependentRequired
1706
+ && (this.form.controls[this.question.name].dirty && this.form.controls[this.question.name].touched)) {
1707
+ var keepGoing = true;
1708
+ let message = "Add dependent details";
1709
+ this.form.controls[this.question.name].markAsDirty();
1710
+ return message;
1711
+ }
1712
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.wcEmployerPaymentInfoRequired
1713
+ && (this.form.controls[this.question.name].dirty && this.form.controls[this.question.name].touched)) {
1714
+ var keepGoing = true;
1715
+ let message = "Add employer payment details";
1716
+ this.form.controls[this.question.name].markAsDirty();
1717
+ return message;
1718
+ }
1719
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.remunerationPaymentInfoRequired
1720
+ && (this.form.controls[this.question.name].dirty && this.form.controls[this.question.name].touched)) {
1721
+ var keepGoing = true;
1722
+ let message = "Add remuneration payment details";
1723
+ this.form.controls[this.question.name].markAsDirty();
1724
+ return message;
1725
+ }
1726
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.grossEarningsInfoRequired
1727
+ && (this.form.controls[this.question.name].dirty && this.form.controls[this.question.name].touched)) {
1728
+ var keepGoing = true;
1729
+ let message = "Add hours worked details";
1730
+ this.form.controls[this.question.name].markAsDirty();
1731
+ return message;
1732
+ }
1733
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.notEquals
1734
+ && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1955
1735
  let validatorList = this.question.validators;
1956
1736
  var keepGoing = true;
1957
- let message = '';
1958
- validatorList.forEach((validator) => {
1737
+ let message = "";
1738
+ validatorList.forEach(validator => {
1959
1739
  if (keepGoing) {
1960
1740
  if (validator.type === 'customvalidation') {
1961
1741
  message = validator.text;
@@ -1963,7 +1743,46 @@ export class DynamicFormQuestionComponent {
1963
1743
  keepGoing = false;
1964
1744
  }
1965
1745
  else {
1966
- message = '';
1746
+ message = "";
1747
+ }
1748
+ }
1749
+ });
1750
+ var keepGoing = true;
1751
+ this.form.controls[this.question.name].markAsDirty();
1752
+ return message;
1753
+ }
1754
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.atLeastOne
1755
+ && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1756
+ let validatorList = this.question.validators;
1757
+ var keepGoing = true;
1758
+ let message = "";
1759
+ validatorList.forEach(validator => {
1760
+ if (keepGoing) {
1761
+ if (validator.type === 'customvalidation') {
1762
+ message = validator.text;
1763
+ this.form.controls[this.question.name].markAsDirty();
1764
+ keepGoing = false;
1765
+ }
1766
+ }
1767
+ });
1768
+ var keepGoing = true;
1769
+ this.form.controls[this.question.name].markAsDirty();
1770
+ return message;
1771
+ }
1772
+ if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.isGreaterDate
1773
+ && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1774
+ let validatorList = this.question.validators;
1775
+ var keepGoing = true;
1776
+ let message = "";
1777
+ validatorList.forEach(validator => {
1778
+ if (keepGoing) {
1779
+ if (validator.type === 'customvalidation') {
1780
+ message = validator.text;
1781
+ this.form.controls[this.question.name].markAsDirty();
1782
+ keepGoing = false;
1783
+ }
1784
+ else {
1785
+ message = "";
1967
1786
  }
1968
1787
  }
1969
1788
  });
@@ -1974,86 +1793,59 @@ export class DynamicFormQuestionComponent {
1974
1793
  // this.logger.debug('message from panel outer-- ',message);
1975
1794
  return message;
1976
1795
  }
1796
+ onAcceptedOtp(agreed) {
1797
+ this.OtpCompleted = agreed;
1798
+ }
1977
1799
  onAccepted(agreed) {
1978
- //console.log('onAccepted called',agreed);
1800
+ //this.logger.debug('onAccepted called',agreed);
1979
1801
  this.legalAccepted = agreed;
1980
1802
  }
1981
1803
  onCompleteRequalify(requalifyData) {
1982
- //console.log("onCompleteRequalify", requalifyData);
1804
+ //this.logger.debug("onCompleteRequalify", requalifyData);
1983
1805
  }
1984
1806
  onModelDisplay(modelDisplay) {
1985
- //console.log('modelDisplay called',modelDisplay);
1986
- }
1987
- generateOtpForNewUserCreation(event, form) {
1988
- if (form.controls.phone.value == null || form.value.verification == null) {
1989
- this.isOtpModalEnabled = false;
1990
- console.log("Fields are null.");
1991
- return;
1992
- }
1993
- // Remove non-numeric characters
1994
- // let validPhone = form.value.phone.replace(/\D/g, '');
1995
- let validPhone = form.controls.phone.value.replaceAll("-", "").replaceAll(" ", "");
1996
- // Count digits
1997
- let phoneLength = validPhone.length;
1998
- console.log("Phone number length", phoneLength);
1999
- if (phoneLength != 10) {
2000
- console.log("Phone number must be of length 10");
2001
- return;
2002
- }
2003
- this.ls
2004
- .generateOtpForNewUserCreation(form.controls.phone.value, event.option.value)
2005
- .subscribe({
2006
- next: (res) => {
2007
- console.log('Access code sent successfully.');
2008
- this.isOtpModalEnabled = true;
2009
- },
2010
- error: (err) => {
2011
- console.log('Could not generate the authentication OTP code.');
2012
- console.error(err);
2013
- },
2014
- });
1807
+ //this.logger.debug('modelDisplay called',modelDisplay);
2015
1808
  }
2016
1809
  onRadioOptionClick(event, element) {
2017
- if (element?.name === "diffmailaddress" && localStorage.getItem("flowKey") == '345') {
2018
- localStorage.setItem('disableFieldsOnSignup', 'false');
2019
- }
2020
1810
  let query = event.query;
2021
1811
  if (element.serviceType && element.serviceType === 'FETCH') {
2022
1812
  let serviceCallType = element.serviceCallType;
2023
1813
  let serviceName = element.serviceName;
2024
- const options = event.option.value
2025
- ? { params: new HttpParams().set('selection', event.option.value) }
2026
- : {};
1814
+ const options = event.option.value ? { params: new HttpParams().set('selection', event.option.value) } : {};
2027
1815
  if (serviceCallType === 'GET') {
2028
1816
  this.util.showLoader();
2029
- this.validationService.get(`${serviceName}`, options).subscribe((res) => {
1817
+ this.validationService
1818
+ .get(`${serviceName}`, options)
1819
+ .subscribe(res => {
2030
1820
  let values = res;
2031
1821
  if (values.success == true) {
2032
- //console.log(values.serviceCallValues.serviceType);
2033
- //console.log(values.serviceCallValues);
2034
- if (values.serviceCallValues &&
2035
- values.serviceCallValues.serviceType &&
2036
- values.serviceCallValues.serviceType === 'FETCH') {
1822
+ //this.logger.debug(values.serviceCallValues.serviceType);
1823
+ //this.logger.debug(values.serviceCallValues);
1824
+ if (values.serviceCallValues && values.serviceCallValues.serviceType
1825
+ && values.serviceCallValues.serviceType === 'FETCH') {
2037
1826
  let serviceCallTypeInTrue = values.serviceCallValues.serviceCallType;
2038
1827
  let serviceNameInTrue = values.serviceCallValues.serviceName;
2039
1828
  if (serviceCallTypeInTrue === 'GET') {
2040
1829
  this.util.showLoader();
2041
- this.validationService.get(`${serviceNameInTrue}`).subscribe((resp) => {
1830
+ this.validationService
1831
+ .get(`${serviceNameInTrue}`)
1832
+ .subscribe(resp => {
2042
1833
  let loaderModel = resp;
2043
- // console.log(" value from loader = ", loaderModel);
1834
+ this.logger.debug(" value from loader = ", loaderModel);
2044
1835
  this.setFormValues(loaderModel.data);
2045
1836
  this.util.hideLoader();
2046
- }, (errp) => {
1837
+ }, errp => {
2047
1838
  this.util.hideLoader();
2048
1839
  this.form.controls[element.name]?.reset();
2049
1840
  this.form.controls[element.name]?.updateValueAndValidity();
2050
1841
  this.util.errorHandler(errp);
2051
1842
  });
2052
1843
  }
1844
+ ;
2053
1845
  }
2054
1846
  this.util.hideLoader();
2055
1847
  }
2056
- }, (err) => {
1848
+ }, err => {
2057
1849
  this.util.hideLoader();
2058
1850
  this.form.controls[element.name]?.reset();
2059
1851
  this.form.controls[element.name]?.updateValueAndValidity();
@@ -2063,7 +1855,8 @@ export class DynamicFormQuestionComponent {
2063
1855
  }
2064
1856
  }
2065
1857
  setFormValues(data) {
2066
- Object.keys(data).forEach((key) => {
1858
+ Object.keys(data)
1859
+ .forEach(key => {
2067
1860
  let valueToSet = data[key];
2068
1861
  this.setValueInFormControl(key, valueToSet);
2069
1862
  });
@@ -2089,7 +1882,9 @@ export class DynamicFormQuestionComponent {
2089
1882
  let serviceUpdateParam = element.serviceUpdateParam;
2090
1883
  if (serviceCallType === 'GET') {
2091
1884
  // this.logger.debug('Inside GET');
2092
- this.validationService.get(`${serviceName}`).subscribe((res) => {
1885
+ this.validationService
1886
+ .get(`${serviceName}`)
1887
+ .subscribe(res => {
2093
1888
  this.logger.debug('res--', res, ' - res[0].length -', res);
2094
1889
  choices.push(res);
2095
1890
  let query = event.query;
@@ -2103,7 +1898,7 @@ export class DynamicFormQuestionComponent {
2103
1898
  }
2104
1899
  this.filterResult = filtered;
2105
1900
  this.logger.debug('this.filterResult123--', this.filterResult);
2106
- }, (err) => {
1901
+ }, err => {
2107
1902
  this.util.hideLoader();
2108
1903
  this.util.errorHandler(err);
2109
1904
  });
@@ -2120,7 +1915,8 @@ export class DynamicFormQuestionComponent {
2120
1915
  this.filterResult = filtered;
2121
1916
  }
2122
1917
  }
2123
- onSelect(event, cntrlName) { }
1918
+ onSelect(event, cntrlName) {
1919
+ }
2124
1920
  //This shoud be similira to method present in panel
2125
1921
  validate(element) {
2126
1922
  if (!element.serviceName) {
@@ -2137,7 +1933,7 @@ export class DynamicFormQuestionComponent {
2137
1933
  let allValuePresent = true;
2138
1934
  // this.logger.debug('serviceCallParam',serviceCallParam);
2139
1935
  if (serviceCallParam) {
2140
- var splitted = serviceCallParam.split(',');
1936
+ var splitted = serviceCallParam.split(",");
2141
1937
  let valueArr = [];
2142
1938
  let paramArr = [];
2143
1939
  for (let i = 0; i < splitted.length; i++) {
@@ -2159,10 +1955,11 @@ export class DynamicFormQuestionComponent {
2159
1955
  if (allValuePresent) {
2160
1956
  if (serviceCallType === 'POST') {
2161
1957
  // this.logger.debug('Inside GET');
2162
- this.validationService.post(`${serviceName}`, model).subscribe((res) => {
1958
+ this.validationService
1959
+ .post(`${serviceName}`, model)
1960
+ .subscribe(res => {
2163
1961
  this.returnModel = res;
2164
- if (this.returnModel.returnType &&
2165
- this.returnModel.returnType === 'POPUP') {
1962
+ if (this.returnModel.returnType && this.returnModel.returnType === 'POPUP') {
2166
1963
  this.displayPosition = true;
2167
1964
  this.position = 'top';
2168
1965
  this.popUpHeader = this.returnModel.popUpHeader;
@@ -2171,7 +1968,7 @@ export class DynamicFormQuestionComponent {
2171
1968
  this.popUpNoActionLabel = this.returnModel.popUpNoButtonLabel;
2172
1969
  }
2173
1970
  this.logger.debug('this.returnModel ', this.returnModel);
2174
- }, (err) => {
1971
+ }, err => {
2175
1972
  this.util.hideLoader();
2176
1973
  this.util.errorHandler(err);
2177
1974
  });
@@ -2179,27 +1976,26 @@ export class DynamicFormQuestionComponent {
2179
1976
  }
2180
1977
  }
2181
1978
  }
2182
- blurDOB(element) {
2183
- this.validate(element);
2184
- this.checkIfUserExist();
2185
- }
1979
+ /**
1980
+ * @description This method will be called after selecting button from action label
1981
+ * encrypts parameter values for URL using base64 encoding and XOR using random key
1982
+ **/
2186
1983
  accept() {
2187
- console.log('accept called123', this.returnModel.identifier);
1984
+ this.logger.debug('accept called123', this.returnModel.identifier);
2188
1985
  let paramArray = [];
2189
1986
  if (this.returnModel.identifier) {
2190
1987
  let modelArr = this.returnModel.identifier;
1988
+ this.td = this.util.generateRandomKey();
1989
+ localStorage.setItem('vxk', btoa(btoa(this.alpRnd + (this.td).toString() + (this.varn).toString())));
2191
1990
  for (var val of modelArr) {
2192
- paramArray.push({ [val.key]: val.value });
1991
+ paramArray.push({ [this.util.xorEncrypt(val.key, this.td)]: this.util.xorEncrypt(val.value, this.td) });
2193
1992
  }
2194
- const params = paramArray.reduce((arrObj, item) => Object.assign(arrObj, item, {}));
1993
+ let params = paramArray.reduce((arrObj, item) => Object.assign(arrObj, item, {}));
2195
1994
  //this.util.openPageByContextRootWithData(this.getContextRoot(), this.returnModel.yesAction, params, this.navController)
2196
- this.navController.navigateRoot(this.returnModel.yesAction, {
2197
- queryParams: params,
2198
- });
1995
+ this.navController.navigateRoot(this.returnModel.yesAction, { queryParams: params });
2199
1996
  return;
2200
1997
  }
2201
- if (this.returnModel.yesAction &&
2202
- this.returnModel.yesAction.substring(0, 4) != '/cp/') {
1998
+ if (this.returnModel.yesAction && this.returnModel.yesAction.substring(0, 4) != '/cp/') {
2203
1999
  this.navController.navigateRoot([this.returnModel.yesAction]);
2204
2000
  this.displayPosition = false;
2205
2001
  return;
@@ -2210,8 +2006,7 @@ export class DynamicFormQuestionComponent {
2210
2006
  this.navController.navigateRoot([this.returnModel.yesAction]);
2211
2007
  }
2212
2008
  reject() {
2213
- if (this.returnModel.noAction &&
2214
- this.returnModel.noAction.substring(0, 4) != '/cp/') {
2009
+ if (this.returnModel.noAction && this.returnModel.noAction.substring(0, 4) != '/cp/') {
2215
2010
  this.navController.navigateRoot([this.returnModel.noAction]);
2216
2011
  this.displayPosition = false;
2217
2012
  }
@@ -2220,9 +2015,10 @@ export class DynamicFormQuestionComponent {
2220
2015
  }
2221
2016
  }
2222
2017
  getContextRoot() {
2223
- return window.location.pathname.substring(0, window.location.pathname.indexOf('/', 2));
2018
+ return window.location.pathname.substring(0, window.location.pathname.indexOf("/", 2));
2019
+ }
2020
+ uploadFile(ev) {
2224
2021
  }
2225
- uploadFile(ev) { }
2226
2022
  getTranslation(key, dynamicParam) {
2227
2023
  if (!dynamicParam) {
2228
2024
  return key;
@@ -2232,7 +2028,7 @@ export class DynamicFormQuestionComponent {
2232
2028
  let params;
2233
2029
  if (Array.isArray(dynamicParam)) {
2234
2030
  params = dynamicParam;
2235
- params.forEach((prm) => {
2031
+ params.forEach(prm => {
2236
2032
  dynamicObj[prm.key] = prm.value;
2237
2033
  });
2238
2034
  }
@@ -2241,7 +2037,7 @@ export class DynamicFormQuestionComponent {
2241
2037
  dynamicObj[param.key] = param.value;
2242
2038
  }
2243
2039
  this.translate.use('en');
2244
- let translatedString = '';
2040
+ let translatedString = "";
2245
2041
  this.translate.set(key, key);
2246
2042
  translatedString = this.translate.instant(key, Object.assign(dynamicObj));
2247
2043
  return translatedString;
@@ -2250,19 +2046,19 @@ export class DynamicFormQuestionComponent {
2250
2046
  return object?.text ? object?.text : object;
2251
2047
  }
2252
2048
  unmask(event) {
2253
- this.maskClass = false;
2049
+ this.type = 'text';
2254
2050
  }
2255
2051
  mask(event) {
2256
- this.maskClass = true;
2052
+ this.type = 'password';
2257
2053
  }
2258
2054
  dateInput(event) {
2259
2055
  let currentValue = event.srcElement.value;
2260
2056
  if (currentValue) {
2261
2057
  if (currentValue.length == 2 && currentValue.charAt(2) != '/') {
2262
- event.target.value = currentValue + '/';
2058
+ event.target.value = currentValue + "/";
2263
2059
  }
2264
2060
  if (currentValue.length == 5 && currentValue.charAt(5) != '/') {
2265
- event.target.value = currentValue + '/';
2061
+ event.target.value = currentValue + "/";
2266
2062
  }
2267
2063
  }
2268
2064
  }
@@ -2277,10 +2073,7 @@ export class DynamicFormQuestionComponent {
2277
2073
  this.form.updateValueAndValidity();
2278
2074
  this.dynamicParam = this.dynamicParam ? this.dynamicParam : [];
2279
2075
  if (Array.isArray(this.dynamicParam)) {
2280
- this.dynamicParam.push({
2281
- key: this.question.name,
2282
- value: currentValue,
2283
- });
2076
+ this.dynamicParam.push({ key: this.question.name, value: currentValue });
2284
2077
  }
2285
2078
  else {
2286
2079
  this.dynamicParam[this.question.name] = currentValue;
@@ -2300,16 +2093,11 @@ export class DynamicFormQuestionComponent {
2300
2093
  let compData = JSON.parse(this.question.componentData);
2301
2094
  let addressFc = this.form.get(compData.addressFormControlName);
2302
2095
  let empIdFc = this.form.get(compData.employerIdFormControlName);
2303
- empIdFc.setValue(employer.employerId ? employer.employerId : '-1');
2096
+ empIdFc.setValue(employer.employerId ? employer.employerId : "-1");
2304
2097
  addressFc.setValue({
2305
- country: employer.country,
2306
- city: employer.city,
2307
- zip: employer.zip,
2308
- streetAddress: employer.addressDisplayVal,
2309
- state: employer.state,
2310
- optionalAddress: null,
2311
- county: null,
2312
- town: null,
2098
+ country: employer.country, city: employer.city,
2099
+ zip: employer.zip, streetAddress: employer.addressDisplayVal, state: employer.state,
2100
+ optionalAddress: null, county: null, town: null
2313
2101
  });
2314
2102
  }
2315
2103
  }
@@ -2318,16 +2106,11 @@ export class DynamicFormQuestionComponent {
2318
2106
  let compData = JSON.parse(this.question.componentData);
2319
2107
  let addressFc = this.form.get(compData.addressFormControlName);
2320
2108
  let empIdFc = this.form.get(compData.employerIdFormControlName);
2321
- empIdFc.setValue('-1');
2109
+ empIdFc.setValue("-1");
2322
2110
  addressFc.setValue({
2323
- country: null,
2324
- city: null,
2325
- zip: null,
2326
- streetAddress: null,
2327
- state: null,
2328
- optionalAddress: null,
2329
- county: null,
2330
- town: null,
2111
+ country: null, city: null,
2112
+ zip: null, streetAddress: null, state: null,
2113
+ optionalAddress: null, county: null, town: null
2331
2114
  });
2332
2115
  }
2333
2116
  }
@@ -2342,21 +2125,14 @@ export class DynamicFormQuestionComponent {
2342
2125
  if (this.question.type == 'dropdown') {
2343
2126
  const choice = this.question.defaultValue;
2344
2127
  var jsonObject = JSON.parse(choice);
2345
- this.setFormControlValue(this.question.name, this.question.choices.filter((c) => c.value == jsonObject.value)[0]);
2128
+ this.setFormControlValue(this.question.name, this.question.choices.filter(c => c.value == jsonObject.value)[0]);
2346
2129
  }
2347
2130
  else {
2348
2131
  this.setFormControlValue(this.question.name, value);
2349
2132
  }
2350
2133
  }
2351
2134
  }
2352
- modifyCalendarAttributes() {
2353
- const inputElement = this.pCalendar.nativeElement.querySelectorAll('p-calendar [aria-controls]');
2354
- inputElement.forEach((element) => {
2355
- this.renderer.setAttribute(element, 'aria-controls', this.question.name);
2356
- this.renderer.setAttribute(element, 'aria-expanded', 'false');
2357
- });
2358
- }
2359
- 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)); }; }
2135
+ 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.DomSanitizer), i0.ɵɵdirectiveInject(i9.LoginService), i0.ɵɵdirectiveInject(i10.AddressValidationService), i0.ɵɵdirectiveInject(i6.ModalController)); }; }
2360
2136
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DynamicFormQuestionComponent, selectors: [["app-question"]], viewQuery: function DynamicFormQuestionComponent_Query(rf, ctx) { if (rf & 1) {
2361
2137
  i0.ɵɵviewQuery(_c0, 5);
2362
2138
  i0.ɵɵviewQuery(_c1, 5);
@@ -2366,13 +2142,13 @@ export class DynamicFormQuestionComponent {
2366
2142
  let _t;
2367
2143
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.bankdtls = _t.first);
2368
2144
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.wcEmployerGrid = _t.first);
2369
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.pCalendar = _t.first);
2145
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.jobTitle = _t.first);
2370
2146
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.addresses = _t);
2371
- } }, 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"], ["weakLabel", "Weak password", "mediumLabel", "Weak password", "strongLabel", "Strong password", "strongRegex", "^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})(?=.*[_@*$!#.])", 3, "inputId", "formControlName", "toggleMask", "maxLength", "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) {
2147
+ } }, inputs: { question: "question", form: "form", indexNumber: "indexNumber", forScreenQuestionnaire: "forScreenQuestionnaire", dynamicParam: "dynamicParam", potentialIssueId: "potentialIssueId", questionaireForm: "questionaireForm" }, 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"], [3, "innerHTML"], ["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, "componentData", 4, "ngIf"], [3, "formControlName", 4, "ngIf"], [3, "formControlName", "fromPopup", "countyRequired", "questionaireForm", "inputId", "componentData", "diffMailAddress", "enableAddressValidation", 4, "ngIf"], [3, "formControlName", "isRequired", 4, "ngIf"], [3, "formControlName", "componentData", "form", "question", 4, "ngIf"], [3, "form", "dynamicParam", "formControlName", 4, "ngIf"], ["empType", "REG", 3, "formControlName", "onFound", "onEmpty", 4, "ngIf"], [3, "formControlName", "dynamicParam", 4, "ngIf"], [3, "potentialIssueId", "formControlName", 4, "ngIf"], [3, "isRequired", "formControlName", "text", "uri", "externalUrl", 4, "ngIf"], [3, "isRequired", "formControlName", "inputId", 4, "ngIf"], [3, "formControlName", "question", "form", "accepted", 4, "ngIf"], [3, "componentData", "formControlName", 4, "ngIf"], [3, "formControlName", "form", "dynamicParam", "modelDisplay"], [3, "componentData", "question", "form", "accepted"], [3, "componentData"], [3, "formControlName"], [3, "formControlName", "fromPopup", "countyRequired", "questionaireForm", "inputId", "componentData", "diffMailAddress", "enableAddressValidation"], ["address", ""], [3, "formControlName", "isRequired"], ["bankdtls", ""], [3, "formControlName", "componentData", "form", "question"], [3, "form", "dynamicParam", "formControlName"], ["wcEmployerGrid", ""], ["empType", "REG", 3, "formControlName", "onFound", "onEmpty"], [3, "formControlName", "dynamicParam"], [3, "potentialIssueId", "formControlName"], [3, "isRequired", "formControlName", "text", "uri", "externalUrl"], [3, "isRequired", "formControlName", "inputId"], [3, "formControlName", "question", "form", "accepted"], [3, "componentData", "formControlName"], [2, "display", "flex"], [1, "heading", 2, "color", "var(--ion-color-medium-gray)", "padding-top", "20px", 3, "innerHTML"], ["style", "flex-grow: 1;", "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"], ["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"], ["mask", "999-99-9999", "placeholder", "999-99-9999", 3, "inputId", "formControlName", "type", "onComplete", "onFocus", "onBlur"], ["mask", "9999", "placeholder", "9999", 3, "inputId", "formControlName", "type", "onComplete", "onFocus", "onBlur"], ["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"], ["mask", "999-999-9999", 3, "inputId", "formControlName", "placeholder", "onBlur", 4, "ngIf"], ["mask", "999-999-9999", 3, "inputId", "formControlName", "placeholder", "onBlur"], ["weakLabel", "Weak password", "mediumLabel", "Weak password", "strongLabel", "Strong password", "strongRegex", "^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_@*$!#.]+.*[_@*$!#.])(?=.{14,})", 3, "inputId", "formControlName", "toggleMask", "maxLength", "ariaLabel"], [1, "mt-1", 2, "font-size", "small"], [2, "line-height", "1.25"], [2, "margin-left", "-25px", "font-size", "small"], ["style", "margin-left: -25px; font-size: small;", 4, "ngIf"], [3, "allowedFileType", "formControlName", "maxSizeInMB", "multiple", "noOfFilesToUpload"], ["type", "text", "pInputText", "", 3, "id", "formControlName", "placeholder", "blur"], [2, "padding-left", "8px", "padding-top", "3px"], ["style", "display: flex; align-items: center;", 3, "ngStyle", 4, "ngIf"], [2, "display", "flex", "align-items", "center", 3, "ngStyle"], ["autoResize", "true", 3, "id", "formControlName", "maxLength", "rows", "cols", "placeholder"], ["style", "flex-grow: 1;", "style", "padding-left: 3px; padding-top:3px", 4, "ngIf"], [2, "padding-left", "3px", "padding-top", "3px"], ["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", "placeholder", "onChange", "onClick"], ["appendTo", "body", "field", "text", "minLength", "1", 3, "formControlName", "suggestions", "dropdown", "forceSelection", "completeOnFocus", "completeMethod", "onSelect"], ["pTemplate", "item"], ["unselectable", "true", "optionLabel", "text", "optionValue", "value", 3, "options", "formControlName", "onOptionClick"], ["mode", "decimal", 3, "formControlName", "inputId", "useGrouping", "min", "max", "size", "maxlength", "ariaLabel", "placeholder", "required"], ["mode", "decimal", 3, "formControlName", "inputId", "useGrouping", "minFractionDigits", "maxFractionDigits", "min", "max", "size", "maxlength", "ariaLabel", "placeholder", "required"], ["mode", "currency", "currency", "USD", 3, "formControlName", "inputId", "useGrouping", "minFractionDigits", "maxFractionDigits", "min", "max", "size", "maxlength", "ariaLabel", "placeholder", "required"], [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) {
2372
2148
  i0.ɵɵelementStart(0, "div", 0);
2373
- 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);
2149
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_p_dialog_1_Template, 5, 14, "p-dialog", 1)(2, DynamicFormQuestionComponent_div_2_Template, 2, 2, "div", 2)(3, DynamicFormQuestionComponent_div_3_Template, 4, 7, "div", 2)(4, DynamicFormQuestionComponent_div_4_Template, 4, 7, "div", 2)(5, DynamicFormQuestionComponent_div_5_Template, 4, 7, "div", 2)(6, DynamicFormQuestionComponent_div_6_Template, 29, 28, "div", 3)(7, DynamicFormQuestionComponent_div_7_Template, 4, 7, "div", 2)(8, DynamicFormQuestionComponent_div_8_Template, 5, 7, "div", 4);
2374
2150
  i0.ɵɵelementStart(9, "div", 5);
2375
- 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);
2151
+ i0.ɵɵtemplate(10, DynamicFormQuestionComponent_ng_container_10_Template, 16, 14, "ng-container", 6)(11, DynamicFormQuestionComponent_ng_container_11_Template, 3, 2, "ng-container", 6)(12, DynamicFormQuestionComponent_ng_container_12_Template, 6, 9, "ng-container", 6)(13, DynamicFormQuestionComponent_ng_container_13_Template, 5, 4, "ng-container", 6)(14, DynamicFormQuestionComponent_ng_container_14_Template, 5, 12, "ng-container", 6)(15, DynamicFormQuestionComponent_ng_container_15_Template, 5, 14, "ng-container", 6)(16, DynamicFormQuestionComponent_ng_container_16_Template, 5, 14, "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);
2376
2152
  i0.ɵɵelementEnd();
2377
2153
  i0.ɵɵtemplate(27, DynamicFormQuestionComponent_div_27_Template, 2, 2, "div", 8);
2378
2154
  i0.ɵɵelementEnd();
@@ -2432,12 +2208,12 @@ export class DynamicFormQuestionComponent {
2432
2208
  i0.ɵɵproperty("ngSwitchCase", "panel");
2433
2209
  i0.ɵɵadvance(1);
2434
2210
  i0.ɵɵproperty("ngIf", ctx.question.type != "panel");
2435
- } }, 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] } }); }
2211
+ } }, 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:110px}[_nghost-%COMP%] .p-calendar .p-inputtext{max-width:134px!important}.col-fit-content[_ngcontent-%COMP%]{max-width:-moz-fit-content;max-width:fit-content}"], data: { animation: [rowExpansionTrigger] } }); }
2436
2212
  }
2437
2213
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DynamicFormQuestionComponent, [{
2438
2214
  type: Component,
2439
- 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=\"Weak password\" \r\n mediumLabel=\"Weak password\" strongLabel=\"Strong password\" 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;\">Password must include at least</p>\r\n <ul style=\"line-height: 1.25\">\r\n <li style=\"margin-left: -25px; font-size: small;\">1 uppercase letter</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">1 lowercase letter</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">1 number</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">2 of the following characters <b>_ &#64; * $ ! # .</b></li>\r\n <li style=\"margin-left: -25px; font-size: small;\">14 characters</li>\r\n </ul>\r\n <p-divider></p-divider>\r\n <p class=\"mt-1\" style=\"font-size: small;\">Suggestion</p>\r\n <ul style=\"line-height: 1.25\">\r\n <li style=\"margin-left: -25px; font-size: small;\">Don't use your name, email or phone.</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">Don't use your kid, partner or pet name.</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">Your password cannot contain your name and/or your user id.</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"] }]
2440
- }], () => [{ 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: [{
2215
+ 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 <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(popUpText)\"></div>\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 <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\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 <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\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 <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </div>\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\r\n <app-offline-employer-grid [formControlName]=\"question.name\" [form]=\"form\" [dynamicParam]=\"dynamicParam\"\r\n *ngIf=\"question.componentName==='app-offline-employer-grid'\" (modelDisplay)=\"onModelDisplay($event)\"></app-offline-employer-grid>\r\n\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\r\n <app-offline-legal-disclaimar *ngIf=\"question.componentName==='app-offline-legal-disclaimar'\"\r\n [componentData]=\"question.componentData\" (accepted)=\"onAccepted($event)\" [question]=\"question\" [form]=\"form\">\r\n </app-offline-legal-disclaimar>\r\n\r\n <money-expect *ngIf=\"question.componentName==='money-expect'\" [componentData]=\"question.componentData\" ></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\" [questionaireForm]=\"questionaireForm\"\r\n *ngIf=\"question.componentName==='app-address'\" #address [inputId]=\"question.name\" [componentData]=\"question.componentData\"\r\n [diffMailAddress]=\"(form?.controls['diffMailingAddress']?.value === 'Y') || (form?.controls['diffmailaddress']?.value === 'Y')? true : false\"\r\n [enableAddressValidation]=\"isAddressValidationEnabled\" > </app-address>\r\n <!-- <app-address-suggestion *ngIf=\"showAddressSuggestion\"></app-address-suggestion> -->\r\n <app-job-title [formControlName]=\"question.name\" [isRequired]=\"question.isRequired\"\r\n *ngIf=\"question.componentName==='app-job-title'\" > </app-job-title> \r\n \r\n <app-bank-details [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-bank-details'\" #bankdtls>\r\n </app-bank-details>\r\n\r\n <app-offline-bank-details [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-offline-bank-details'\" #bankdtls>\r\n </app-offline-bank-details>\r\n\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\" [question]=\"question\">\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 [form]=\"form\" [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\" [dynamicParam]=\"dynamicParam\" *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-employer-pay-grid [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-employer-pay-grid'\"></app-employer-pay-grid>\r\n <app-sms [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-sms'\" [question]=\"question\" [form]=\"form\"\r\n (accepted)=\"onAcceptedOtp($event)\"></app-sms>\r\n <app-farm-usage [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-farm-usage'\"></app-farm-usage>\r\n <app-wage-grid [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-wage-grid'\"></app-wage-grid>\r\n <app-gross-earnings [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-gross-earnings'\"></app-gross-earnings>\r\n <app-scrollable-text [componentData]=\"question.componentData\" [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-scrollable-text'\"></app-scrollable-text>\r\n <app-employer-info [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-employer-info'\"></app-employer-info>\r\n <app-idme [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-idme'\"></app-idme>\r\n <app-wage-calculator [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-wage-calculator'\"></app-wage-calculator>\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 style=\"flex-grow: 1;\" *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'\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\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\r\n *ngIf=\"question.inputType && question.inputType==='text' && question.customTag && question.customTag==='ssn'\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputMask 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)\" [type]=\"type\" [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==='custommask'\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputMask mask=\"9999\" [inputId]=\"question.name\" [formControlName]=\"question.name\"\r\n placeholder=\"9999\" (onComplete)=\"validate(question)\" (onFocus)=\"unmask($event)\" (onBlur)=\"mask($event)\" [type]=\"type\" [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 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]=\"(question.placeholder || question.placeholder === '') ? question.placeholder:'Optional'\" [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]=\" (question.placeholder || question.placeholder === '') ? question.placeholder:'Optional'\"\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]=\"(question.placeholder || question.placeholder === '') ? question.placeholder:'Optional'\" [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]=\"(question.placeholder || question.placeholder === '') ? question.placeholder:'Optional'\" [attr.aria-label]=\"question.title\"/>\r\n </div>\r\n \r\n\r\n <!--User Name-->\r\n <div *ngIf=\"question.inputType && question.inputType==='text' && !question.customTag && question.isRequired\"\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 <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')\">\r\n <p-inputMask mask=\"999-999-9999\" [inputId]=\"question.name\" [formControlName]=\"question.name\" \r\n [placeholder]=\"question.isRequired ? '999-999-9999' : 'Optional'\"\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 <div *ngIf=\"question.customTag && question.customTag.includes('password')\">\r\n <p-password [inputId]=\"question.name\" [formControlName]=\"question.name\" [toggleMask]=\"true\" [maxLength]=\"question.maxLength\" weakLabel=\"Weak password\" \r\n mediumLabel=\"Weak password\" strongLabel=\"Strong password\" strongRegex=\"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_@*$!#.]+.*[_@*$!#.])(?=.{14,})\" [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;\">Password must include at least</p>\r\n <ul style=\"line-height: 1.25\">\r\n <li style=\"margin-left: -25px; font-size: small;\">1 lowercase letter</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">1 uppercase letter</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">1 number</li>\r\n <li style=\"margin-left: -25px; font-size: small;\" *ngIf=\"!isSameSymbolPolicyForClaimantAndAgency\">1 of the following characters <b>_ &#64; * $ ! # .</b></li>\r\n <li style=\"margin-left: -25px; font-size: small;\" *ngIf=\"isSameSymbolPolicyForClaimantAndAgency\">2 of the following characters <b>_ &#64; * $ ! # .</b></li>\r\n <li style=\"margin-left: -25px; font-size: small;\" *ngIf=\"!isNewPasswordPolicyEnabledForClaimant\">8 characters</li>\r\n <li style=\"margin-left: -25px; font-size: small;\" *ngIf=\"isNewPasswordPolicyEnabledForClaimant\">14 characters</li>\r\n </ul>\r\n <p-divider></p-divider>\r\n <p class=\"mt-1\" style=\"font-size: small;\">Suggestion</p>\r\n <ul style=\"line-height: 1.25\">\r\n <li style=\"margin-left: -25px; font-size: small;\">Don't use your name, email or phone</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">Don't use your kid, partner or pet name.</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!='ean' && question.customTag!='dueamt' && question.customTag!='password'\r\n && question.customTag!='custommask')\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [id]=\"question.name\" [attr.aria-label]=\"question.title\" pInputText [formControlName]=\"question.name\" \r\n (blur)=\"checkForValueChange($event)\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\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\" style=\"display: flex; align-items: center;\">\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 style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 3px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n\r\n <div [ngStyle]=\"setStyle(question.indent)\" *ngIf=\"!question.maxLength\" style=\"display: flex; align-items: center;\">\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 style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 3px; 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\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\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"></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\" style=\"display: flex;\">\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 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\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 : ''\" [required]=\"question.isRequired\"></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 : ''\" [required]=\"question.isRequired\"></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 : ''\" [required]=\"question.isRequired\"></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:110px}:host ::ng-deep .p-calendar .p-inputtext{max-width:134px!important}.col-fit-content{max-width:-moz-fit-content;max-width:fit-content}\n"] }]
2216
+ }], () => [{ type: i1.QuestionControlService }, { type: i2.QuestionService }, { type: i3.TranslateService }, { type: i4.ValidationService }, { type: i5.UtilService }, { type: i6.NavController }, { type: i7.LoggerService }, { type: i8.DomSanitizer }, { type: i9.LoginService }, { type: i10.AddressValidationService }, { type: i6.ModalController }], { question: [{
2441
2217
  type: Input
2442
2218
  }], form: [{
2443
2219
  type: Input
@@ -2449,6 +2225,8 @@ export class DynamicFormQuestionComponent {
2449
2225
  type: Input
2450
2226
  }], potentialIssueId: [{
2451
2227
  type: Input
2228
+ }], questionaireForm: [{
2229
+ type: Input
2452
2230
  }], onDynamicParamUpdate: [{
2453
2231
  type: Output
2454
2232
  }], bankdtls: [{
@@ -2460,9 +2238,9 @@ export class DynamicFormQuestionComponent {
2460
2238
  }], wcEmployerGrid: [{
2461
2239
  type: ViewChild,
2462
2240
  args: ['wcEmployerGrid']
2463
- }], pCalendar: [{
2241
+ }], jobTitle: [{
2464
2242
  type: ViewChild,
2465
- args: ['pCalendar']
2243
+ args: ['jobTitle']
2466
2244
  }] }); })();
2467
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DynamicFormQuestionComponent, { className: "DynamicFormQuestionComponent", filePath: "lib\\components\\questionnaire\\dynamic-form-question.component.ts", lineNumber: 60 }); })();
2468
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXF1ZXN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbm5haXJlL2R5bmFtaWMtZm9ybS1xdWVzdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb25uYWlyZS9keW5hbWljLWZvcm0tcXVlc3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUF3QixTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUWxMLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQVU3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUl2RSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ1pyRSxzQ0FBa0g7SUFBbkIsZ05BQVMsZUFBQSxnQkFBUSxDQUFBLElBQUM7SUFDL0csWUFDRjtJQUFBLGlCQUFhOzs7SUFEWCxlQUNGO0lBREUsMkRBQ0Y7Ozs7SUFFQSxzQ0FBaUg7SUFBbkIsZ05BQVMsZUFBQSxnQkFBUSxDQUFBLElBQUM7SUFDOUcsWUFDRjtJQUFBLGlCQUFhOzs7SUFEWCxlQUNGO0lBREUsNERBQ0Y7OztJQU5BLHFIQUVhLHdHQUFBOzs7SUFGYyxpREFBd0I7SUFJeEIsZUFBeUI7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LEVBQUUsSUFBWTtRQUNyQyxJQUFJLE9BQU8sSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFO1lBQzdCLElBQUksVUFBVSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDckI7UUFFRCxJQUFJLE9BQU8sSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFO1lBQzdCLElBQUksVUFBVSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDckI7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFD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LG1CQUFtQixDQUFDO21YQUd4QixRQUFRO2tCQUFoQixLQUFLO1lBQ0csSUFBSTtrQkFBWixLQUFLO1lBQ0csV0FBVztrQkFBbkIsS0FBSztZQUNHLHNCQUFzQjtrQkFBOUIsS0FBSztZQUNHLFlBQVk7a0JBQXBCLEtBQUs7WUFDRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFFSSxvQkFBb0I7a0JBQTdCLE1BQU07WUF1Q2dCLFFBQVE7a0JBQTlCLFNBQVM7bUJBQUMsVUFBVTtZQUNJLFNBQVM7a0JBQWpDLFlBQVk7bUJBQUMsU0FBUztZQUNNLGNBQWM7a0JBQTFDLFNBQVM7bUJBQUMsZ0JBQWdCO1lBQ0gsU0FBUztrQkFBaEMsU0FBUzttQkFBQyxXQUFXOztrRkFsRFgsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgUmVuZGVyZXIyLCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgRWxlbWVudHNNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0VsZW1lbnRzTW9kZWwnO1xyXG5pbXBvcnQgeyBLZXlWYWx1ZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvS2V5VmFsdWVNb2RlbCc7XHJcbmltcG9ydCB7IFNlcnZpY2VBY3Rpb25SZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvU2VydmljZUFjdGlvblJlc3BvbnNlTW9kZWwnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9WYWxpZGF0aW9uTW9kZWwnO1xyXG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9xdWVzdGlvbm5haXJlL3ZhbGlkYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDaG9pY2VzLCBRdWVzdGlvbkNvbnRyb2xTZXJ2aWNlIH0gZnJvbSAnLi9xdWVzdGlvbi1jb250cm9sLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBRdWVzdGlvblNlcnZpY2UgfSBmcm9tICcuL3F1ZXN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2FkZXJNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0xvYWRlck1vZGVsJztcclxuaW1wb3J0IHsgQWRkcmVzc0NvbXBvbmVudCB9IGZyb20gJy4uL2FkZHJlc3MvYWRkcmVzcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCYW5rRGV0YWlsc0NvbXBvbmVudCB9IGZyb20gJy4uL2JhbmstZGV0YWlscy9iYW5rLWRldGFpbHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9FbXBsb3llckRldGFpbFNlYXJjaFJlc3VsdCc7XHJcbmltcG9ydCB7IHJvd0V4cGFuc2lvblRyaWdnZXIgfSBmcm9tICcuLi8uLi9hbm5pbWF0aW9ucy9hcHAtYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IFdlZWtseUNlcnRFbXBsb3llckdyaWRDb21wb25lbnQgfSBmcm9tICcuLi93ZWVrbHktY2VydC1lbXBsb3llci1ncmlkL3dlZWtseS1jZXJ0LWVtcGxveWVyLWdyaWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2xhaW1hbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2xhaW1hbnQtc2VydmljZS9jbGFpbWFudC5zZXJ2aWNlJztcclxuaW1wb3J0IHtXZWVrbHlDZXJ0U2VydmljZVYyfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy93ZWVrbHktY2VydC93ZWVrbHktY2VydC12Mi5zZXJ2aWNlJztcclxuaW1wb3J0IHtQYXJ0aWFsRW1wbG95bWVudE1vZGVsfSBmcm9tICcuLi8uLi9tb2RlbHMvUGFydGlhbEVtcGxveW1lbnRNb2RlbCc7XHJcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xyXG5cclxuaW50ZXJmYWNlIFZhbHVlQ2hhbmdlQ29tcG9uZW50TW9kZWwge1xyXG4gIG9yaWdpbmFsVmFsdWVDb250cm9sOiBzdHJpbmc7XHJcbiAgZm9ybUNvbnRyb2xUb1VwZGF0ZTogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgRW1wbG95ZXJBZGRyZXNzVXBkYXRlTW9kZWwge1xyXG4gIGFkZHJlc3NGb3JtQ29udHJvbE5hbWU6IHN0cmluZztcclxuICBlbXBsb3llcklkRm9ybUNvbnRyb2xOYW1lOiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBNaW5NYXhEYXRlTW9kZWwge1xyXG4gIG1pbkRhdGVLZXk6IHN0cmluZztcclxuICBtYXhEYXRlS2V5OiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBNaW5NYXhWYWx1ZU1vZGVsIHtcclxuICBtaW5WYWx1ZTogc3RyaW5nO1xyXG4gIG1heFZhbHVlOiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBMaW5rQ29tcG9uZW50TW9kZWwge1xyXG4gIHVyaTogc3RyaW5nO1xyXG4gIGV4dGVybmFsVXJsOiBzdHJpbmc7XHJcbiAgdGV4dDogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1xdWVzdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtZm9ybS1xdWVzdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZHluYW1pYy1mb3JtLXF1ZXN0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxyXG4gIGFuaW1hdGlvbnM6IFtyb3dFeHBhbnNpb25UcmlnZ2VyXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIER5bmFtaWNGb3JtUXVlc3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIHF1ZXN0aW9uOiBFbGVtZW50c01vZGVsO1xyXG4gIEBJbnB1dCgpIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgaW5kZXhOdW1iZXI6IG51bWJlcjtcclxuICBASW5wdXQoKSBmb3JTY3JlZW5RdWVzdGlvbm5haXJlOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGR5bmFtaWNQYXJhbTogYW55O1xyXG4gIEBJbnB1dCgpIHBvdGVudGlhbElzc3VlSWQ6IG51bWJlcjtcclxuXHJcbiAgQE91dHB1dCgpIG9uRHluYW1pY1BhcmFtVXBkYXRlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgZmlsdGVyUmVzdWx0OiBhbnlbXTtcclxuICBtaW5EYXRlOiBEYXRlO1xyXG4gIGxlZ2FsQWNjZXB0ZWQ6IGJvb2xlYW4gPSBudWxsO1xyXG4gIG1heERhdGU6IERhdGU7XHJcbiAgaW5kZXg6IG51bWJlciA9IDE7XHJcbiAgcmV0dXJuTW9kZWwgPSBuZXcgVmFsaWRhdGlvbk1vZGVsKCk7XHJcbiAgZGlzcGxheVBvc2l0aW9uOiBib29sZWFuO1xyXG4gIHBvc2l0aW9uOiBzdHJpbmc7XHJcbiAgcG9wVXBIZWFkZXI6IHN0cmluZztcclxuICBwb3BVcFRleHQ6IHN0cmluZztcclxuICBwb3BVcFllc0FjdGlvbkxhYmVsOiBzdHJpbmc7XHJcbiAgcG9wVXBOb0FjdGlvbkxhYmVsOiBzdHJpbmc7XHJcbiAgbWFza0NsYXNzID0gdHJ1ZTtcclxuICBzaG93TWluRGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dNYXhEYXRlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbWluVmFsdWUgPSBudWxsO1xyXG4gIG1heFZhbHVlID0gbnVsbDtcclxuICB0b0RheURhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIGN1cnJlbnRmbG93a2V5OiBzdHJpbmc7XHJcbiAgcmVnaXN0ZXJDbGFpbWFudEZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwaG9uZVZlcmlmaWVkOiBib29sZWFuID0gdHJ1ZTtcclxuICBpc0ZpZWxkRGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHBhcnRFbXBNb2RlbCA9IG5ldyBQYXJ0aWFsRW1wbG95bWVudE1vZGVsKCk7XHJcbiAgaXNPdHBNb2RhbEVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgaXNSZXR1cm5pbmdVc2VyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIG1pbkRhdGVET0I6IERhdGUgPSBuZXcgRGF0ZShcclxuICAgIHRoaXMudG9EYXlEYXRlLmdldEZ1bGxZZWFyKCkgLSAxMDAsXHJcbiAgICB0aGlzLnRvRGF5RGF0ZS5nZXRNb250aCgpLFxyXG4gICAgdGhpcy50b0RheURhdGUuZ2V0RGF0ZSgpXHJcbiAgKTtcclxuICBtYXhEYXRlRE9COiBEYXRlID0gbmV3IERhdGUoXHJcbiAgICB0aGlzLnRvRGF5RGF0ZS5nZXRGdWxsWWVhcigpIC0gMTAsXHJcbiAgICB0aGlzLnRvRGF5RGF0ZS5nZXRNb250aCgpLFxyXG4gICAgdGhpcy50b0RheURhdGUuZ2V0RGF0ZSgpXHJcbiAgKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnYmFua2R0bHMnKSBiYW5rZHRsczogQmFua0RldGFpbHNDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZHJlbignYWRkcmVzcycpIGFkZHJlc3NlczogUXVlcnlMaXN0PEFkZHJlc3NDb21wb25lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ3djRW1wbG95ZXJHcmlkJykgd2NFbXBsb3llckdyaWQ6IFdlZWtseUNlcnRFbXBsb3llckdyaWRDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgncENhbGVuZGFyJykgcENhbGVuZGFyOiBFbGVtZW50UmVmO1xyXG5cclxuICBsaW5rQ29tcG9uZW50RGF0YTogTGlua0NvbXBvbmVudE1vZGVsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcWNzOiBRdWVzdGlvbkNvbnRyb2xTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNlcnZpY2U6IFF1ZXN0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIHZhbGlkYXRpb25TZXJ2aWNlOiBWYWxpZGF0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyB1dGlsOiBVdGlsU2VydmljZSxcclxuICAgIHB1YmxpYyBuYXZDb250cm9sbGVyOiBOYXZDb250cm9sbGVyLFxyXG4gICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgY2xhaW1hbnRTZXJ2aWNlOiBDbGFpbWFudFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgd2Vla2x5Y2VydFNlcnZpY2U6IFdlZWtseUNlcnRTZXJ2aWNlVjIsXHJcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIGxzOiBMb2dpblNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnBDYWxlbmRhcikge1xyXG4gICAgICB0aGlzLm1vZGlmeUNhbGVuZGFyQXR0cmlidXRlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmlzaWJsZUlmKHN0ckV4cDogc3RyaW5nLCBlbGVtZW50TmFtZTogc3RyaW5nKSB7XHJcbiAgICBpZiAoIXN0ckV4cCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgaXNWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBpZiAoc3RyRXhwLmluY2x1ZGVzKCcmJicpKSB7XHJcbiAgICAgIGxldCBleHByOiBzdHJpbmdbXSA9IHN0ckV4cC5zcGxpdCgnJiYnKTtcclxuICAgICAgaXNWaXNpYmxlID1cclxuICAgICAgICB0aGlzLmNhbGN1bGF0ZU9wZXJhbmRWYWx1ZShleHByWzBdKSAmJlxyXG4gICAgICAgIHRoaXMuY2FsY3VsYXRlT3BlcmFuZFZhbHVlKGV4cHJbMV0pO1xyXG4gICAgICBpZiAoZXhwci5sZW5ndGggPj0gMykge1xyXG4gICAgICAgIGlzVmlzaWJsZSA9IGlzVmlzaWJsZSAmJiB0aGlzLmNhbGN1bGF0ZU9wZXJhbmRWYWx1ZShleHByWzJdKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZXhwci5sZW5ndGggPj0gNCkge1xyXG4gICAgICAgIGlzVmlzaWJsZSA9IGlzVmlzaWJsZSAmJiB0aGlzLmNhbGN1bGF0ZU9wZXJhbmRWYWx1ZShleHByWzNdKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZXhwci5sZW5ndGggPT0gNSkge1xyXG4gICAgICAgIGlzVmlzaWJsZSA9IGlzVmlzaWJsZSAmJiB0aGlzLmNhbGN1bGF0ZU9wZXJhbmRWYWx1ZShleHByWzRdKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZXhwci5sZW5ndGggPiA1KSB7XHJcbiAgICAgICAgdGhyb3cgXCJBcHBWYWxpZGF0b3JzIDogTW9yZSB0aGFuIDUgJyYmJyBleHByZXNzaW9ucyBhcmUgbm90IHN1cHBvcnRlZC5cIjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHN0ckV4cC5pbmNsdWRlcygnfHwnKSkge1xyXG4gICAgICBsZXQgZXhwcjogc3RyaW5nW10gPSBzdHJFeHAuc3BsaXQoJ3x8Jyk7XHJcbiAgICAgIGlzVmlzaWJsZSA9XHJcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwclswXSkgfHxcclxuICAgICAgICB0aGlzLmNhbGN1bGF0ZU9wZXJhbmRWYWx1ZShleHByWzFdKTtcclxuICAgICAgaWYgKGV4cHIubGVuZ3RoID49IDMpIHtcclxuICAgICAgICBpc1Zpc2libGUgPSBpc1Zpc2libGUgfHwgdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwclsyXSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGV4cHIubGVuZ3RoID49IDQpIHtcclxuICAgICAgICBpc1Zpc2libGUgPSBpc1Zpc2libGUgfHwgdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwclszXSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGV4cHIubGVuZ3RoID09IDUpIHtcclxuICAgICAgICBpc1Zpc2libGUgPSBpc1Zpc2libGUgfHwgdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwcls0XSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGV4cHIubGVuZ3RoID4gNSkge1xyXG4gICAgICAgIHRocm93IFwiQXBwVmFsaWRhdG9ycyA6IE1vcmUgdGhhbiA1ICd8fCcgZXhwcmVzc2lvbnMgYXJlIG5vdCBzdXBwb3J0ZWQuXCI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoaXNWaXNpYmxlKSB7XHJcbiAgICAgIHJldHVybiBpc1Zpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZXRGb3JtQ29udHJvbFZhbHVlKGVsZW1lbnROYW1lLCBudWxsKTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNhbGN1bGF0ZU9wZXJhbmRWYWx1ZShzdHJFeHA6IHN0cmluZykge1xyXG4gICAgdmFyIHNwbGl0QXJyYXk6IHN0cmluZ1tdO1xyXG4gICAgbGV0IGlzRG9lc05vdEVxdWFsOiBib29sZWFuO1xyXG4gICAgbGV0IGluZGV4OiBudW1iZXIgPSBzdHJFeHAuaW5kZXhPZignIT0nKTtcclxuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcclxuICAgICAgc3BsaXRBcnJheSA9IHN0ckV4cC5zcGxpdCgnPT0nKTtcclxuICAgICAgaXNEb2VzTm90RXF1YWwgPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNwbGl0QXJyYXkgPSBzdHJFeHAuc3BsaXQoJyE9Jyk7XHJcbiAgICAgIGlzRG9lc05vdEVxdWFsID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGxldCBvcGVyYW5kMTogc3RyaW5nID0gc3BsaXRBcnJheVswXTtcclxuICAgIGxldCBvcGVyYW5kMjogc3RyaW5nID0gc3BsaXRBcnJheVsxXTtcclxuICAgIG9wZXJhbmQxID0gb3BlcmFuZDEucmVwbGFjZSgneycsICcnKS5yZXBsYWNlKCd9JywgJycpLnRyaW0oKTsgLy9jbGFpbWFudFByaW9yUGF5MTAyIGRpZmZtYWlsYWRkcmVzczMxNVxyXG4gICAgb3BlcmFuZDIgPSBvcGVyYW5kMi5yZXBsYWNlKCd7JywgJycpLnJlcGxhY2UoJ30nLCAnJykudHJpbSgpOyAvL251bGxcclxuICAgIGlmICh0aGlzLmZvcm0uY29udHJvbHNbb3BlcmFuZDFdKSB7XHJcbiAgICAgIHZhciB2YWx1ZU9mQ25ydHJsVG9DaGVjaztcclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbb3BlcmFuZDFdLnZhbHVlICYmXHJcbiAgICAgICAgdHlwZW9mIHRoaXMuZm9ybS5jb250cm9sc1tvcGVyYW5kMV0udmFsdWUgPT09ICdzdHJpbmcnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHZhbHVlT2ZDbnJ0cmxUb0NoZWNrID0gdGhpcy5mb3JtLmNvbnRyb2xzW29wZXJhbmQxXS52YWx1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tvcGVyYW5kMV0udmFsdWUgJiZcclxuICAgICAgICB0eXBlb2YgdGhpcy5mb3JtLmNvbnRyb2xzW29wZXJhbmQxXS52YWx1ZSAhPSAnc3RyaW5nJ1xyXG4gICAgICApIHtcclxuICAgICAgICB2YWx1ZU9mQ25ydHJsVG9DaGVjayA9IHRoaXMuZm9ybS5jb250cm9sc1tvcGVyYW5kMV0udmFsdWVbJ3ZhbHVlJ107XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChvcGVyYW5kMiA9PT0gJ251bGwnICYmIGlzRG9lc05vdEVxdWFsICYmIHZhbHVlT2ZDbnJ0cmxUb0NoZWNrKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG9wZXJhbmQyID09PSAnbnVsbCcgJiYgIWlzRG9lc05vdEVxdWFsICYmICF2YWx1ZU9mQ25ydHJsVG9DaGVjaykge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIG9wZXJhbmQyID0gb3BlcmFuZDIucmVwbGFjZShcIidcIiwgJycpLnJlcGxhY2UoXCInXCIsICcnKS50cmltKCk7IC8vbnVsbFxyXG5cclxuICAgICAgaWYgKFxyXG4gICAgICAgIG9wZXJhbmQyICE9ICdudWxsJyAmJlxyXG4gICAgICAgICFpc0RvZXNOb3RFcXVhbCAmJlxyXG4gICAgICAgIHZhbHVlT2ZDbnJ0cmxUb0NoZWNrID09PSBvcGVyYW5kMlxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKFxyXG4gICAgICAgIG9wZXJhbmQyICE9ICdudWxsJyAmJlxyXG4gICAgICAgIGlzRG9lc05vdEVxdWFsICYmXHJcbiAgICAgICAgdmFsdWVPZkNucnRybFRvQ2hlY2sgIT0gb3BlcmFuZDJcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgLy8gICB0aGlzLmxvZ2dlci5kZWJ1ZygnaXMgRHluYW1pY0Zvcm1RdWVzdGlvbkNvbXBvbmVudCBuZ09uSW5pdCBjYWxsZWQnLCB0aGlzLnF1ZXN0aW9uKVxyXG4gICAgdGhpcy5nZXRQYXJ0aWFsRW1wbG95bWVudEluZm8oKTtcclxuICAgIHRoaXMuZmlsdGVyUmVzdWx0ID0gdGhpcy5xdWVzdGlvbi5jaG9pY2VzO1xyXG4gICAgdGhpcy5zZXRNaW5NYXhEYXRlKCk7XHJcbiAgICB0aGlzLnNldE1pbk1heFZhbHVlKCk7XHJcbiAgICB0aGlzLnNldERlZmF1bHRWYWx1ZSgpO1xyXG4gICAgdGhpcy5zZXRMaW5rQ29tcG9uZW50RGF0YSgpO1xyXG4gICAgbGV0IGN1cnJlbnRRZXMgPSB0aGlzLnNlcnZpY2Uuc2VhcmNoQnMuZ2V0VmFsdWUoKTtcclxuICAgIHRoaXMuY3VycmVudGZsb3drZXkgPSBjdXJyZW50UWVzLmZsb3dLZXk7XHJcbiAgICBpZigobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2Rpc2FibGVGaWVsZHNPblNpZ251cCcpID09PSAndHJ1ZScpICYmIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiZmxvd0tleVwiKSA9PSAnMzQ1Jyl7XHJcbiAgICAgIHRoaXMuZGlzYWJsZUZpZWxkcygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjaGVja0Zsb3dLZXkoKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50Zmxvd2tleSA9PT0gJ3JlZ2lzdGVyLWNsYWltYW50Jykge1xyXG4gICAgICAvL2NvbnNvbGUuaW5mbyhcImN1cnJlbnRmbG93a2V5IFwiLHRoaXMuY3VycmVudGZsb3drZXkpXHJcbiAgICAgIHJldHVybiAodGhpcy5yZWdpc3RlckNsYWltYW50RmxhZyA9IHRydWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMucmVnaXN0ZXJDbGFpbWFudEZsYWc7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIHBob25lTnVtYmVyVmVyaWZpZWQoKTogYm9vbGVhbntcclxuICAvLyAgIHJldHVybiB0aGlzLnBob25lVmVyaWZpZWQsXHJcbiAgLy8gfVxyXG5cclxuICBkaXNhYmxlRmllbGRzKCkge1xyXG4gICAgaWYgKHRoaXMuY2hlY2tGbG93S2V5KCkpIHtcclxuICAgICAgdGhpcy5mb3JtLmdldCgncGhvbmUnKS5kaXNhYmxlKCk7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ2VtYWlsJykuZGlzYWJsZSgpO1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCd1c2VybmFtZScpLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgncGFzc3dvcmQnKS5kaXNhYmxlKCk7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ2NvbmZpcm1QYXNzd29yZCcpLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnc2VjUXVlczEnKS5kaXNhYmxlKCk7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ3NlY0FuczEnKS5kaXNhYmxlKCk7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ3NlY1F1ZXMyJykuZGlzYWJsZSgpO1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdzZWNBbnMyJykuZGlzYWJsZSgpO1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdzZWNRdWVzMycpLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnc2VjQW5zMycpLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgncmVzQWRyZXNzJykuZGlzYWJsZSgpO1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdkaWZmbWFpbGFkZHJlc3MnKS5kaXNhYmxlKCk7XHJcbiAgICAgIC8vdGhpcy5mb3JtLmdldCgnbWFpbGFkZHJlc3MnKS5kaXNhYmxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBlbmFibGVGaWVsZHMoKSB7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdlbWFpbCcpLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5mb3JtLmdldCgndXNlcm5hbWUnKS5lbmFibGUoKTtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ3Bhc3N3b3JkJykuZW5hYmxlKCk7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdjb25maXJtUGFzc3dvcmQnKS5lbmFibGUoKTtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ3NlY1F1ZXMxJykuZW5hYmxlKCk7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdzZWNBbnMxJykuZW5hYmxlKCk7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdzZWNRdWVzMicpLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5mb3JtLmdldCgnc2VjQW5zMicpLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5mb3JtLmdldCgnc2VjUXVlczMnKS5lbmFibGUoKTtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ3NlY0FuczMnKS5lbmFibGUoKTtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ3Jlc0FkcmVzcycpLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5mb3JtLmdldCgnZGlmZm1haWxhZGRyZXNzJykuZW5hYmxlKCk7XHJcbiAgICAvL3RoaXMuZm9ybS5nZXQoJ21haWxhZGRyZXNzJykuZW5hYmxlKCk7XHJcbiAgfVxyXG5cclxuICBjaGVja0lmVXNlckV4aXN0KCkge1xyXG4gICAgLy8gY29uc29sZS5pbmZvKFwiZG9iIFwiLCB0aGlzLmZvcm0uZ2V0KFwiZG9iXCIpLnZhbHVlKTtcclxuICAgIGlmIChcclxuICAgICAgIXRoaXMuZm9ybS5nZXQoJ3NzbicpLnZhbHVlICYmXHJcbiAgICAgICF0aGlzLmZvcm0uZ2V0KCdkb2InKS52YWx1ZSAmJlxyXG4gICAgICAhdGhpcy5jaGVja0Zsb3dLZXkoKVxyXG4gICAgKSB7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgc3NuZnJvbXVzZXIgPSB0aGlzLmZvcm0uZ2V0KCdzc24nKS52YWx1ZTtcclxuICAgICAgbGV0IGRhdGVPZmJpcnRoID0gdGhpcy5mb3JtLmdldCgnZG9iJykudmFsdWU7XHJcbiAgICAgIC8vY29uc29sZS5pbmZvKFwidGVzdCB3aXRoIHNzbmZyb211c2VyIFwiLCBzc25mcm9tdXNlcik7XHJcbiAgICAgIGxldCBmb3JtYXRlZEQgPSBkYXRlT2ZiaXJ0aC5yZXBsYWNlKC9cXC8vZyxcIi1cIik7XHJcbiAgICAgIGlmKGRhdGVPZmJpcnRoICE9IG51bGwgJiYgc3NuZnJvbXVzZXIgIT0gbnVsbCl7XHJcbiAgICAgICAgdGhpcy5jbGFpbWFudFNlcnZpY2UuY2hlY2tJZlVzZXJBbHJlYWR5RXhpc3Qoc3NuZnJvbXVzZXIsZm9ybWF0ZWREKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAoeCkgPT4ge1xyXG4gICAgICAgICAgICBpZih4IT1udWxsKXtcclxuICAgICAgICAgICAgICB0aGlzLmRpc2FibGVGaWVsZHMoKTtcclxuICAgICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdwaG9uZScpLnNldFZhbHVlKHgudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgICAgICAgaWYgKHdpbmRvd1tcImVudlwiXVtcImVudmlyb25tZW50XCJdID09PSBcImtzcHJvZFwiKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdwaG9uZScpLmRpc2FibGUoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgLyoqRGVsZXRlIHRoZSBlbHNlIGJsb2NrIGFmdGVyIHRoZSB3b3Jrc2hhcmUgdGVzdGluZyBpcyBkb25lICovXHJcbiAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ3Bob25lJykuZGlzYWJsZSgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmRpc2FibGVGaWVsZHMoKTtcclxuICAgICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdwaG9uZScpLmVuYWJsZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgKGVycikgPT4geyBcclxuICAgICAgICAgICAgaWYoZXJyLmVycm9yQ29kZT09PVwiNDA0XCIpe1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRQYXJ0aWFsRW1wbG95bWVudEluZm8oKSB7XHJcbiAgICBpZiAodGhpcy5xdWVzdGlvbi5uYW1lID09PSAnd29ya1BlcmZvcm1lZCcpIHtcclxuICAgICAgdGhpcy53ZWVrbHljZXJ0U2VydmljZVxyXG4gICAgICAgIC5nZXRQYXJ0aWFsRW1wbG95bWVudCgpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzOiBQYXJ0aWFsRW1wbG95bWVudE1vZGVsKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzLnBhcnRpYWxFbXBsb3ltZW50RmxhZyA9PT0gJzEnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS52YWx1ZVt0aGlzLnF1ZXN0aW9uLm5hbWVdID0gJ1knO1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5hZGRWYWxpZGF0b3JzKFxyXG4gICAgICAgICAgICAgIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjb250cm9sLnZhbHVlICE9PSAnWScgPyB7IGZvcmNlWWVzOiB0cnVlIH0gOiBudWxsO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldExpbmtDb21wb25lbnREYXRhKCkge1xyXG4gICAgaWYgKHRoaXMucXVlc3Rpb24uY29tcG9uZW50TmFtZSA9PSAnYXBwLWxpbmsnKSB7XHJcbiAgICAgIHRoaXMubGlua0NvbXBvbmVudERhdGEgPSB0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGFcclxuICAgICAgICA/IEpTT04ucGFyc2UodGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhKVxyXG4gICAgICAgIDogbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNob3dMYWJlbEZvckN1c3RvbUNvbXBvbmVudCgpIHtcclxuICAgIGxldCBwYXJzZWREYXRhID0gdGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhXHJcbiAgICAgID8gSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGEpXHJcbiAgICAgIDogbnVsbDtcclxuICAgIHJldHVybiBwYXJzZWREYXRhPy5zaG93TGFiZWwgPT0gJ1knO1xyXG4gIH1cclxuXHJcbiAgc2V0TWluTWF4VmFsdWUoKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24udHlwZSA9PT0gJ251bWJlcicgfHxcclxuICAgICAgdGhpcy5xdWVzdGlvbi50eXBlID09PSAnZGVjaW1hbCcgfHxcclxuICAgICAgdGhpcy5xdWVzdGlvbi50eXBlID09PSAnY3VycmVuY3knXHJcbiAgICApIHtcclxuICAgICAgbGV0IG1pbk1heE1vZGVsOiBNaW5NYXhWYWx1ZU1vZGVsID0gdGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhXHJcbiAgICAgICAgPyBKU09OLnBhcnNlKHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YSlcclxuICAgICAgICA6IG51bGw7XHJcbiAgICAgIGlmIChtaW5NYXhNb2RlbCkge1xyXG4gICAgICAgIGlmIChtaW5NYXhNb2RlbC5taW5WYWx1ZSkge1xyXG4gICAgICAgICAgdGhpcy5taW5WYWx1ZSA9IG1pbk1heE1vZGVsLm1pblZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobWluTWF4TW9kZWwubWF4VmFsdWUpIHtcclxuICAgICAgICAgIHRoaXMubWF4VmFsdWUgPSBtaW5NYXhNb2RlbC5tYXhWYWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldE1pbk1heERhdGUoKSB7XHJcbiAgICBpZiAodGhpcy5xdWVzdGlvbi5pbnB1dFR5cGUgPT09ICdkYXRlJykge1xyXG4gICAgICBsZXQgbWluTWF4TW9kZWw6IE1pbk1heERhdGVNb2RlbCA9IHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YVxyXG4gICAgICAgID8gSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGEpXHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgICBpZiAobWluTWF4TW9kZWwgJiYgKG1pbk1heE1vZGVsLm1heERhdGVLZXkgfHwgbWluTWF4TW9kZWwubWluRGF0ZUtleSkpIHtcclxuICAgICAgICBpZiAodGhpcy5keW5hbWljUGFyYW1bbWluTWF4TW9kZWwubWluRGF0ZUtleV0pIHtcclxuICAgICAgICAgIHRoaXMucGFyc2VEYXRlKHRoaXMuZHluYW1pY1BhcmFtW21pbk1heE1vZGVsLm1pbkRhdGVLZXldLCAnbWluJyk7XHJcbiAgICAgICAgICB0aGlzLnNob3dNaW5EYXRlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuZHluYW1pY1BhcmFtW21pbk1heE1vZGVsLm1heERhdGVLZXldKSB7XHJcbiAgICAgICAgICB0aGlzLnBhcnNlRGF0ZSh0aGlzLmR5bmFtaWNQYXJhbVttaW5NYXhNb2RlbC5tYXhEYXRlS2V5XSwgJ21heCcpO1xyXG4gICAgICAgICAgdGhpcy5zaG93TWF4RGF0ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh0aGlzLnF1ZXN0aW9uLm1pbikge1xyXG4gICAgICAgICAgdGhpcy5wYXJzZURhdGUodGhpcy5xdWVzdGlvbi5taW4sICdtaW4nKTtcclxuICAgICAgICAgIHRoaXMuc2hvd01pbkRhdGUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5xdWVzdGlvbi5tYXgpIHtcclxuICAgICAgICAgIHRoaXMucGFyc2VEYXRlKHRoaXMucXVlc3Rpb24ubWF4LCAnbWF4Jyk7XHJcbiAgICAgICAgICB0aGlzLnNob3dNYXhEYXRlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcGFyc2VEYXRlKHN0ckRhdGU6IHN0cmluZywgdHlwZTogc3RyaW5nKTogRGF0ZSB7XHJcbiAgICBpZiAoc3RyRGF0ZSAmJiB0eXBlID09PSAnbWF4Jykge1xyXG4gICAgICB2YXIgc3BsaXRBcnJheSA9IHN0ckRhdGUuc3BsaXQoJy0nKTtcclxuICAgICAgdGhpcy5tYXhEYXRlID0gbmV3IERhdGUoKTtcclxuICAgICAgdGhpcy5tYXhEYXRlLnNldE1vbnRoKE51bWJlcihzcGxpdEFycmF5WzBdKSAtIDEpO1xyXG4gICAgICB0aGlzLm1heERhdGUuc2V0RnVsbFllYXIoTnVtYmVyKHNwbGl0QXJyYXlbMl0pKTtcclxuICAgICAgdGhpcy5tYXhEYXRlLnNldERhdGUoTnVtYmVyKHNwbGl0QXJyYXlbMV0pKTtcclxuICAgICAgcmV0dXJuIHRoaXMubWF4RGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3RyRGF0ZSAmJiB0eXBlID09PSAnbWluJykge1xyXG4gICAgICB2YXIgc3BsaXRBcnJheSA9IHN0ckRhdGUuc3BsaXQoJy0nKTtcclxuICAgICAgdGhpcy5taW5EYXRlID0gbmV3IERhdGUoKTtcclxuICAgICAgdGhpcy5taW5EYXRlLnNldE1vbnRoKE51bWJlcihzcGxpdEFycmF5WzBdKSAtIDEpO1xyXG4gICAgICB0aGlzLm1pbkRhdGUuc2V0RnVsbFllYXIoTnVtYmVyKHNwbGl0QXJyYXlbMl0pKTtcclxuICAgICAgdGhpcy5taW5EYXRlLnNldERhdGUoTnVtYmVyKHNwbGl0QXJyYXlbMV0pKTtcclxuICAgICAgcmV0dXJuIHRoaXMubWluRGF0ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFN0eWxlKGluZGVudDogbnVtYmVyKTogb2JqZWN0IHtcclxuICAgIGxldCBwYWRkaW5nID0gaW5kZW50IDw9IDEgPyAnMCBweCcgOiBpbmRlbnQgKiAxMCArICdweCc7XHJcblxyXG4gICAgbGV0IHN0eWxlT2JqID0ge1xyXG4gICAgICAncGFkZGluZy1sZWZ0JzogcGFkZGluZyxcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oc3R5bGVPYmopO1xyXG4gIH1cclxuXHJcbiAgc2V0TWFyZ2luKG1hcmdpbjogbnVtYmVyKTogb2JqZWN0IHtcclxuICAgIGxldCBtYXIgPSBtYXJnaW4gKyAncHgnO1xyXG4gICAgbGV0IHN0eWxlT2JqID0ge1xyXG4gICAgICAnbWFyZ2luLXJpZ2h0JzogbWFyLFxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihzdHlsZU9iaik7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNWYWxpZCgpIHtcclxuICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSAnJztcclxuICAgIGxldCBxdWVzdGlvblR5cGU6IHN0cmluZyA9IHRoaXMucXVlc3Rpb24udHlwZTtcclxuICAgIGlmIChcclxuICAgICAgJ2h0bWwnID09PSBxdWVzdGlvblR5cGUgfHxcclxuICAgICAgJ2xhYmVsJyA9PT0gcXVlc3Rpb25UeXBlIHx8XHJcbiAgICAgICdzaW1wbGVMYWJlbCcgPT09IHF1ZXN0aW9uVHlwZSB8fFxyXG4gICAgICAnZGlzcGxheXRleHRhc2xhYmVsJyA9PT0gcXVlc3Rpb25UeXBlIHx8XHJcbiAgICAgICgnYnV0dG9uJyA9PT0gcXVlc3Rpb25UeXBlICYmXHJcbiAgICAgICAgIXRoaXMucXVlc3Rpb24udmFsaWRhdG9ycyAmJlxyXG4gICAgICAgIHRoaXMucXVlc3Rpb24uY29tcG9uZW50TmFtZSAhPSAnYXBwLXNpZ24tc3NuJyAmJlxyXG4gICAgICAgIHRoaXMucXVlc3Rpb24uY29tcG9uZW50TmFtZSAhPSAnYXBwLWxpbmsnKSB8fFxyXG4gICAgICAnbGFiZWwtd2l0aC1vdmVybGF5JyA9PT0gcXVlc3Rpb25UeXBlXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnF1ZXN0aW9uICYmXHJcbiAgICAgIHRoaXMucXVlc3Rpb24ubmFtZSAmJlxyXG4gICAgICB0aGlzLmZvcm0gJiZcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5yZXF1aXJlZCAmJlxyXG4gICAgICAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHxcclxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIHJldHVybiB0aGlzLnF1ZXN0aW9uLnJlcXVpcmVkRXJyb3JUZXh0O1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnF1ZXN0aW9uICYmXHJcbiAgICAgIHRoaXMucXVlc3Rpb24ubmFtZSAmJlxyXG4gICAgICB0aGlzLmZvcm0gJiZcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5tYXhsZW5ndGggJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnZXJyb3JzPy5tYXhMZW5ndGgnLCB0aGlzLnF1ZXN0aW9uKTtcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcclxuICAgICAgaWYgKHRoaXMucXVlc3Rpb24uZGVzY3JpcHRpb24pIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5xdWVzdGlvbi5kZXNjcmlwdGlvbjtcclxuICAgICAgfVxyXG4gICAgICBsZXQgdmFsaWRhdG9yTGlzdCA9IHRoaXMucXVlc3Rpb24udmFsaWRhdG9ycztcclxuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XHJcbiAgICAgIHZhbGlkYXRvckxpc3QuZm9yRWFjaCgodmFsaWRhdG9yKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbGlkYXRvci50eXBlICcsIHZhbGlkYXRvci50eXBlKTtcclxuICAgICAgICBpZiAoa2VlcEdvaW5nKSB7XHJcbiAgICAgICAgICBpZiAodmFsaWRhdG9yLnR5cGUgPT09ICd0ZXh0JyAmJiB2YWxpZGF0b3IubWF4TGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd2YWxpZGF0b3IudGV4dCAnLCB2YWxpZGF0b3IudGV4dCk7XHJcbiAgICAgICAgICAgIG1lc3NhZ2UgPSB2YWxpZGF0b3IudGV4dDtcclxuICAgICAgICAgICAga2VlcEdvaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBtZXNzYWdlID0gJyc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIG1lc3NhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnF1ZXN0aW9uICYmXHJcbiAgICAgIHRoaXMucXVlc3Rpb24ubmFtZSAmJlxyXG4gICAgICB0aGlzLmZvcm0gJiZcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5wYXR0ZXJuICYmXHJcbiAgICAgICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fFxyXG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpXHJcbiAgICApIHtcclxuICAgICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ2Vycm9ycz8ucGF0dGVybicsdGhpcy5xdWVzdGlvbilcclxuICAgICAgbGV0IHZhbGlkYXRvckxpc3QgPSB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRvcnM7XHJcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xyXG5cclxuICAgICAgdmFsaWRhdG9yTGlzdC5mb3JFYWNoKCh2YWxpZGF0b3IpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygndmFsaWRhdG9yLnR5cGUgJywgdmFsaWRhdG9yLnR5cGUpXHJcbiAgICAgICAgaWYgKGtlZXBHb2luZykge1xyXG4gICAgICAgICAgaWYgKHZhbGlkYXRvci50eXBlID09PSAncmVnZXgnKSB7XHJcbiAgICAgICAgICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCd2YWxpZGF0b3IudGV4dCAnLCB2YWxpZGF0b3IudGV4dClcclxuICAgICAgICAgICAgbWVzc2FnZSA9IHZhbGlkYXRvci50ZXh0O1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgICAgICBrZWVwR29pbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2UgPSAnJztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5xdWVzdGlvbiAmJlxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLm5hbWUgJiZcclxuICAgICAgdGhpcy5mb3JtICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8uZGF0ZUNvbXBhcmlzaW9uICYmXHJcbiAgICAgICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fFxyXG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpXHJcbiAgICApIHtcclxuICAgICAgbGV0IHZhbGlkYXRvckxpc3QgPSB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRvcnM7XHJcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xyXG4gICAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gJyc7XHJcbiAgICAgIHZhbGlkYXRvckxpc3QuZm9yRWFjaCgodmFsaWRhdG9yKSA9PiB7XHJcbiAgICAgICAgaWYgKGtlZXBHb2luZykge1xyXG4gICAgICAgICAgLy8gICB0aGlzLmxvZ2dlci5kZWJ1ZygndmFsaWRhdG9yLnR5cGUubWlubGVuZ3RoICcsIHZhbGlkYXRvci50eXBlKVxyXG4gICAgICAgICAgaWYgKHZhbGlkYXRvci50eXBlID09PSAnZXhwcmVzc2lvbicpIHtcclxuICAgICAgICAgICAgLy8gIHRoaXMubG9nZ2VyLmRlYnVnKCd2YWxpZGF0b3IudGV4dCAnLCB2YWxpZGF0b3IudGV4dClcclxuICAgICAgICAgICAgbWVzc2FnZSA9IHZhbGlkYXRvci50ZXh0O1xyXG4gICAgICAgICAgICBrZWVwR29pbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2UgPSAnJztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/Lm1pbmxlbmd0aCAmJlxyXG4gICAgICAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHxcclxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKVxyXG4gICAgKSB7XHJcbiAgICAgIGxldCB2YWxpZGF0b3JMaXN0ID0gdGhpcy5xdWVzdGlvbi52YWxpZGF0b3JzO1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9ICcnO1xyXG4gICAgICB2YWxpZGF0b3JMaXN0LmZvckVhY2goKHZhbGlkYXRvcikgPT4ge1xyXG4gICAgICAgIGlmIChrZWVwR29pbmcpIHtcclxuICAgICAgICAgIC8vY29uc29sZS5sb2coJ3ZhbGlkYXRvci50eXBlLm1pbmxlbmd0aCAnLCB2YWxpZGF0b3IudHlwZSlcclxuICAgICAgICAgIGlmICh2YWxpZGF0b3IudHlwZSA9PT0gJ3RleHQnKSB7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coJ3ZhbGlkYXRvci50ZXh0ICcsIHZhbGlkYXRvci50ZXh0KVxyXG4gICAgICAgICAgICBtZXNzYWdlID0gdmFsaWRhdG9yLnRleHQ7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgICAgICAgIGtlZXBHb2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbWVzc2FnZSA9ICcnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBtZXNzYWdlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5xdWVzdGlvbiAmJlxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLm5hbWUgJiZcclxuICAgICAgdGhpcy5mb3JtICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ucGFzc3dvcmRDb21wYXJpc2lvbiAmJlxyXG4gICAgICAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHxcclxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKVxyXG4gICAgKSB7XHJcbiAgICAgIGxldCB2YWxpZGF0b3JMaXN0ID0gdGhpcy5xdWVzdGlvbi52YWxpZGF0b3JzO1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9ICcnO1xyXG4gICAgICB2YWxpZGF0b3JMaXN0LmZvckVhY2goKHZhbGlkYXRvcikgPT4ge1xyXG4gICAgICAgIGlmIChrZWVwR29pbmcpIHtcclxuICAgICAgICAgIC8vICAgY29uc29sZS5sb2coJ3ZhbGlkYXRvci50eXBlLm1pbmxlbmd0aCAnLCB2YWxpZGF0b3IudHlwZSlcclxuICAgICAgICAgIGlmICh2YWxpZGF0b3IudHlwZSA9PT0gJ2V4cHJlc3Npb24nKSB7XHJcbiAgICAgICAgICAgIC8vICBjb25zb2xlLmxvZygndmFsaWRhdG9yLnRleHQgJywgdmFsaWRhdG9yLnRleHQpXHJcbiAgICAgICAgICAgIG1lc3NhZ2UgPSB2YWxpZGF0b3IudGV4dDtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcclxuICAgICAgICAgICAga2VlcEdvaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBtZXNzYWdlID0gJyc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIG1lc3NhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnF1ZXN0aW9uICYmXHJcbiAgICAgIHRoaXMucXVlc3Rpb24ubmFtZSAmJlxyXG4gICAgICB0aGlzLmZvcm0gJiZcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5yZXF1aXJlZElmICYmXHJcbiAgICAgICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fFxyXG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcclxuICAgICAgcmV0dXJuICdyZXF1aXJlZCc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnF1ZXN0aW9uICYmXHJcbiAgICAgIHRoaXMucXVlc3Rpb24ubmFtZSAmJlxyXG4gICAgICB0aGlzLmZvcm0gJiZcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5icEVtcGxyRmxhZyAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkXHJcbiAgICApIHtcclxuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XHJcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgICAgIGlmKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibGFuZ3VhZ2VcIikgPT09IFwiZXNcIil7XHJcbiAgICAgICAgbWVzc2FnZSA9ICdDb25maXJtYXIgbyBlbGltaW5hciBjYWRhIGVtcGxlYWRvcihlcykgcGFyYSBjb250aW51YXInO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG1lc3NhZ2UgPSAnQ29uZmlybSBvciBEZWxldGUgZWFjaCBlbXBsb3llcihzKSB0byBjb250aW51ZSc7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcclxuICAgICAgcmV0dXJuIG1lc3NhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnF1ZXN0aW9uICYmXHJcbiAgICAgIHRoaXMucXVlc3Rpb24ubmFtZSAmJlxyXG4gICAgICB0aGlzLmZvcm0gJiZcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzXHJcbiAgICAgICAgPy5zaW1wbGVDaGVja0JveFZhbGlkYXRpb25GbGFnICYmXHJcbiAgICAgICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fFxyXG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpXHJcbiAgICApIHtcclxuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XHJcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSAncmVxdWlyZWQnO1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LmNwYXRjaHZhbGlkYXRpb25GbGFnICYmXHJcbiAgICAgICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fFxyXG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpXHJcbiAgICApIHtcclxuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XHJcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSAncmVxdWlyZWQnO1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LnVwbG9hZHZhbGlkYXRpb25GbGFnICYmXHJcbiAgICAgICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fFxyXG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpXHJcbiAgICApIHtcclxuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XHJcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSAncmVxdWlyZWQnO1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LmJwRW1wbHJMZW5ndGhGbGFnICYmXHJcbiAgICAgICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fFxyXG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpXHJcbiAgICApIHtcclxuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XHJcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSAnQWRkIHByZXZpb3VzIGVtcGxveW1lbnQgZGV0YWlscyc7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIHJldHVybiBtZXNzYWdlO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnF1ZXN0aW9uICYmXHJcbiAgICAgIHRoaXMucXVlc3Rpb24ubmFtZSAmJlxyXG4gICAgICB0aGlzLmZvcm0gJiZcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5hZGRyZXNzVmFsaWRhdGlvbkZsYWcgJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgLy9sZXQgbWVzc2FnZTogc3RyaW5nID0gXCJQbGVhc2UgcHJvdmlkZSB2YWxpZCBhZGRyZXNzLlwiO1xyXG4gICAgICB0aGlzLmFkZHJlc3Nlcy5mb3JFYWNoKChhZGRyZXNzKSA9PiBhZGRyZXNzLnN1Ym1pdCgpKTtcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcclxuICAgICAgcmV0dXJuIG1lc3NhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnF1ZXN0aW9uICYmXHJcbiAgICAgIHRoaXMucXVlc3Rpb24ubmFtZSAmJlxyXG4gICAgICB0aGlzLmZvcm0gJiZcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzXHJcbiAgICAgICAgPy5iYW5rRGV0YWlsc1ZhbGlkYXRpb25GbGFnICYmXHJcbiAgICAgICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fFxyXG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpXHJcbiAgICApIHtcclxuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XHJcbiAgICAgIC8vbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFwiUGxlYXNlIHByb3ZpZGUgdmFsaWQgYmFuayBkZXRhaWxzLlwiO1xyXG4gICAgICB0aGlzLmJhbmtkdGxzPy5zdWJtaXQoKTtcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcclxuICAgICAgcmV0dXJuIG1lc3NhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnF1ZXN0aW9uICYmXHJcbiAgICAgIHRoaXMucXVlc3Rpb24ubmFtZSAmJlxyXG4gICAgICB0aGlzLmZvcm0gJiZcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy53Y0VtcGxveWVyVmFsaWRhdGlvbiAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkXHJcbiAgICApIHtcclxuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XHJcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcInJlcXVpcmVkXCI7XHJcbiAgICAgIHRoaXMud2NFbXBsb3llckdyaWQ/LnN1Ym1pdCgpO1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/Lm5vdEVxdWFscyAmJlxyXG4gICAgICAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHxcclxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKVxyXG4gICAgKSB7XHJcbiAgICAgIGxldCB2YWxpZGF0b3JMaXN0ID0gdGhpcy5xdWVzdGlvbi52YWxpZGF0b3JzO1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9ICcnO1xyXG4gICAgICB2YWxpZGF0b3JMaXN0LmZvckVhY2goKHZhbGlkYXRvcikgPT4ge1xyXG4gICAgICAgIGlmIChrZWVwR29pbmcpIHtcclxuICAgICAgICAgIGlmICh2YWxpZGF0b3IudHlwZSA9PT0gJ2N1c3RvbXZhbGlkYXRpb24nKSB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2UgPSB2YWxpZGF0b3IudGV4dDtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcclxuICAgICAgICAgICAga2VlcEdvaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBtZXNzYWdlID0gJyc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnbWVzc2FnZSBmcm9tIHBhbmVsIG91dGVyLS0gJyxtZXNzYWdlKTtcclxuICAgIHJldHVybiBtZXNzYWdlO1xyXG4gIH1cclxuXHJcbiAgb25BY2NlcHRlZChhZ3JlZWQ6IGJvb2xlYW4pIHtcclxuICAgIC8vY29uc29sZS5sb2coJ29uQWNjZXB0ZWQgY2FsbGVkJyxhZ3JlZWQpO1xyXG4gICAgdGhpcy5sZWdhbEFjY2VwdGVkID0gYWdyZWVkO1xyXG4gIH1cclxuXHJcbiAgb25Db21wbGV0ZVJlcXVhbGlmeShyZXF1YWxpZnlEYXRhOiBVbnR5cGVkRm9ybUdyb3VwKSB7XHJcbiAgICAvL2NvbnNvbGUubG9nKFwib25Db21wbGV0ZVJlcXVhbGlmeVwiLCByZXF1YWxpZnlEYXRhKTtcclxuICB9XHJcblxyXG4gIG9uTW9kZWxEaXNwbGF5KG1vZGVsRGlzcGxheTogYm9vbGVhbikge1xyXG4gICAgLy9jb25zb2xlLmxvZygnbW9kZWxEaXNwbGF5IGNhbGxlZCcsbW9kZWxEaXNwbGF5KTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlT3RwRm9yTmV3VXNlckNyZWF0aW9uKGV2ZW50LCBmb3JtKSB7XHJcbiAgICBpZiAoZm9ybS5jb250cm9scy5waG9uZS52YWx1ZSA9PSBudWxsIHx8IGZvcm0udmFsdWUudmVyaWZpY2F0aW9uID09IG51bGwpIHtcclxuICAgICAgdGhpcy5pc090cE1vZGFsRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkZpZWxkcyBhcmUgbnVsbC5cIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vIFJlbW92ZSBub24tbnVtZXJpYyBjaGFyYWN0ZXJzXHJcbiAgIC8vIGxldCB2YWxpZFBob25lID0gZm9ybS52YWx1ZS5waG9uZS5yZXBsYWNlKC9cXEQvZywgJycpO1xyXG4gICAgbGV0IHZhbGlkUGhvbmUgPSBmb3JtLmNvbnRyb2xzLnBob25lLnZhbHVlLnJlcGxhY2VBbGwoXCItXCIsXCJcIikucmVwbGFjZUFsbChcIiBcIixcIlwiKTtcclxuICAgICAgXHJcbiAgICAvLyBDb3VudCBkaWdpdHNcclxuICAgIGxldCBwaG9uZUxlbmd0aCA9IHZhbGlkUGhvbmUubGVuZ3RoO1xyXG4gICAgY29uc29sZS5sb2coXCJQaG9uZSBudW1iZXIgbGVuZ3RoXCIsIHBob25lTGVuZ3RoKTtcclxuICAgIGlmIChwaG9uZUxlbmd0aCAhPSAxMCkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIlBob25lIG51bWJlciBtdXN0IGJlIG9mIGxlbmd0aCAxMFwiKVxyXG4gICAgICBcclxuICAgICAgcmV0dXJuOyBcclxuICAgIH1cclxuICAgIHRoaXMubHNcclxuICAgICAgLmdlbmVyYXRlT3RwRm9yTmV3VXNlckNyZWF0aW9uKGZvcm0uY29udHJvbHMucGhvbmUudmFsdWUsIGV2ZW50Lm9wdGlvbi52YWx1ZSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnQWNjZXNzIGNvZGUgc2VudCBzdWNjZXNzZnVsbHkuJyk7XHJcbiAgICAgICAgICB0aGlzLmlzT3RwTW9kYWxFbmFibGVkID0gdHJ1ZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnQ291bGQgbm90IGdlbmVyYXRlIHRoZSBhdXRoZW50aWNhdGlvbiBPVFAgY29kZS4nKTtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTsgXHJcbiAgfVxyXG5cclxuICBvblJhZGlvT3B0aW9uQ2xpY2soZXZlbnQsIGVsZW1lbnQ6IEVsZW1lbnRzTW9kZWwpIHtcclxuICAgIGlmKGVsZW1lbnQ/Lm5hbWUgPT09IFwiZGlmZm1haWxhZGRyZXNzXCIgJiYgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJmbG93S2V5XCIpID09ICczNDUnKXtcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2Rpc2FibGVGaWVsZHNPblNpZ251cCcsICdmYWxzZScpO1xyXG4gICAgfVxyXG4gICAgbGV0IHF1ZXJ5ID0gZXZlbnQucXVlcnk7XHJcbiAgICBpZiAoZWxlbWVudC5zZXJ2aWNlVHlwZSAmJiBlbGVtZW50LnNlcnZpY2VUeXBlID09PSAnRkVUQ0gnKSB7XHJcbiAgICAgIGxldCBzZXJ2aWNlQ2FsbFR5cGUgPSBlbGVtZW50LnNlcnZpY2VDYWxsVHlwZTtcclxuICAgICAgbGV0IHNlcnZpY2VOYW1lOiBzdHJpbmcgPSBlbGVtZW50LnNlcnZpY2VOYW1lO1xyXG4gICAgICBjb25zdCBvcHRpb25zID0gZXZlbnQub3B0aW9uLnZhbHVlXHJcbiAgICAgICAgPyB7IHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3NlbGVjdGlvbicsIGV2ZW50Lm9wdGlvbi52YWx1ZSkgfVxyXG4gICAgICAgIDoge307XHJcbiAgICAgIGlmIChzZXJ2aWNlQ2FsbFR5cGUgPT09ICdHRVQnKSB7XHJcbiAgICAgICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmdldChgJHtzZXJ2aWNlTmFtZX1gLCBvcHRpb25zKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCB2YWx1ZXM6IFNlcnZpY2VBY3Rpb25SZXNwb25zZU1vZGVsID0gcmVzO1xyXG4gICAgICAgICAgICBpZiAodmFsdWVzLnN1Y2Nlc3MgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIC8vY29uc29sZS5sb2codmFsdWVzLnNlcnZpY2VDYWxsVmFsdWVzLnNlcnZpY2VUeXBlKTtcclxuICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKHZhbHVlcy5zZXJ2aWNlQ2FsbFZhbHVlcyk7XHJcbiAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgdmFsdWVzLnNlcnZpY2VDYWxsVmFsdWVzICYmXHJcbiAgICAgICAgICAgICAgICB2YWx1ZXMuc2VydmljZUNhbGxWYWx1ZXMuc2VydmljZVR5cGUgJiZcclxuICAgICAgICAgICAgICAgIHZhbHVlcy5zZXJ2aWNlQ2FsbFZhbHVlcy5zZXJ2aWNlVHlwZSA9PT0gJ0ZFVENIJ1xyXG4gICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHNlcnZpY2VDYWxsVHlwZUluVHJ1ZSA9XHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlcy5zZXJ2aWNlQ2FsbFZhbHVlcy5zZXJ2aWNlQ2FsbFR5cGU7XHJcbiAgICAgICAgICAgICAgICBsZXQgc2VydmljZU5hbWVJblRydWU6IHN0cmluZyA9XHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlcy5zZXJ2aWNlQ2FsbFZhbHVlcy5zZXJ2aWNlTmFtZTtcclxuICAgICAgICAgICAgICAgIGlmIChzZXJ2aWNlQ2FsbFR5cGVJblRydWUgPT09ICdHRVQnKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuZ2V0KGAke3NlcnZpY2VOYW1lSW5UcnVlfWApLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgICAgICAocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgbGV0IGxvYWRlck1vZGVsOiBMb2FkZXJNb2RlbCA9IHJlc3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIiB2YWx1ZSBmcm9tIGxvYWRlciA9IFwiLCBsb2FkZXJNb2RlbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEZvcm1WYWx1ZXMobG9hZGVyTW9kZWwuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgKGVycnApID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbZWxlbWVudC5uYW1lXT8ucmVzZXQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tcclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5uYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICBdPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycnApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW2VsZW1lbnQubmFtZV0/LnJlc2V0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tlbGVtZW50Lm5hbWVdPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRGb3JtVmFsdWVzKGRhdGEpIHtcclxuICAgIE9iamVjdC5rZXlzKGRhdGEpLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICBsZXQgdmFsdWVUb1NldCA9IGRhdGFba2V5XTtcclxuICAgICAgdGhpcy5zZXRWYWx1ZUluRm9ybUNvbnRyb2woa2V5LCB2YWx1ZVRvU2V0KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0VmFsdWVJbkZvcm1Db250cm9sKG5hbWUsIHZhbHVlKSB7XHJcbiAgICBsZXQgY29udHJvbCA9IHRoaXMuZm9ybS5jb250cm9sc1tuYW1lXTtcclxuICAgIGlmIChjb250cm9sKSB7XHJcbiAgICAgIGNvbnRyb2wucGF0Y2hWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdObyBmb3JtIGNvbnRyb2wgcHJlc2VudCB3aXRoIG5hbWUgJywgbmFtZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJWYWx1ZShldmVudCwgZWxlbWVudDogRWxlbWVudHNNb2RlbCkge1xyXG4gICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ2Nob2ljZXMtLScsY2hvaWNlcyk7XHJcblxyXG4gICAgbGV0IGNob2ljZXM6IGFueVtdID0gW107XHJcblxyXG4gICAgbGV0IGZpbHRlcmVkOiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IHF1ZXJ5ID0gZXZlbnQucXVlcnk7XHJcblxyXG4gICAgaWYgKGVsZW1lbnQuc2VydmljZVR5cGUgJiYgZWxlbWVudC5zZXJ2aWNlVHlwZSA9PT0gJ0ZFVENIJykge1xyXG4gICAgICBsZXQgc2VydmljZUNhbGxQYXJhbSA9IGVsZW1lbnQuc2VydmljZUNhbGxQYXJhbTsgLy9zc24zMjAsbHN0bmFtZTMyMFxyXG4gICAgICBsZXQgc2VydmljZUNhbGxUeXBlID0gZWxlbWVudC5zZXJ2aWNlQ2FsbFR5cGU7IC8vXCJHRVRcIlxyXG4gICAgICBsZXQgc2VydmljZU5hbWU6IHN0cmluZyA9IGVsZW1lbnQuc2VydmljZU5hbWU7IC8vL3NlY3VyaXR5LXNlcnZpY2UvdmFsaWRhdGVTU04vXHJcbiAgICAgIGxldCBzZXJ2aWNlVXBkYXRlUGFyYW0gPSBlbGVtZW50LnNlcnZpY2VVcGRhdGVQYXJhbTtcclxuXHJcbiAgICAgIGlmIChzZXJ2aWNlQ2FsbFR5cGUgPT09ICdHRVQnKSB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ0luc2lkZSBHRVQnKTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmdldChgJHtzZXJ2aWNlTmFtZX1gKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdyZXMtLScsIHJlcywgJyAtIHJlc1swXS5sZW5ndGggLScsIHJlcyk7XHJcbiAgICAgICAgICAgIGNob2ljZXMucHVzaChyZXMpO1xyXG4gICAgICAgICAgICBsZXQgcXVlcnkgPSBldmVudC5xdWVyeTtcclxuICAgICAgICAgICAgLy9sZXQgZmlsdGVyZWQ6IGFueVtdID0gW107XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hvaWNlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgIGxldCBjaG9pY2UgPSBjaG9pY2VzW2ldO1xyXG4gICAgICAgICAgICAgIC8vdGhpcy5sb2dnZXIuZGVidWcoJ2Nob2ljZSAtICcsIGNob2ljZSwgJ2Nob2ljZS50ZXh0LS0nLCBjaG9pY2UudGV4dCwgJ3F1ZXJ5LnRvTG93ZXJDYXNlKCknLCBxdWVyeT8udG9Mb3dlckNhc2UoKSk7XHJcbiAgICAgICAgICAgICAgLy9pZiAoY2hvaWNlLnRleHQudG9Mb3dlckNhc2UoKS5pbmRleE9mKHF1ZXJ5LnRvTG93ZXJDYXNlKCkpID09IDApIHtcclxuICAgICAgICAgICAgICBmaWx0ZXJlZC5wdXNoKGNob2ljZVswXSk7XHJcbiAgICAgICAgICAgICAgLy99XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJSZXN1bHQgPSBmaWx0ZXJlZDtcclxuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3RoaXMuZmlsdGVyUmVzdWx0MTIzLS0nLCB0aGlzLmZpbHRlclJlc3VsdCk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY2hvaWNlcyA9IGVsZW1lbnQuY2hvaWNlcztcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaG9pY2VzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IGNvdW50cnkgPSBjaG9pY2VzW2ldO1xyXG4gICAgICAgIC8vaWYgKGNvdW50cnkudGV4dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YocXVlcnkudG9Mb3dlckNhc2UoKSkgPT0gMCkge1xyXG4gICAgICAgIGZpbHRlcmVkLnB1c2goY291bnRyeSk7XHJcbiAgICAgICAgLy99XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5maWx0ZXJSZXN1bHQgPSBmaWx0ZXJlZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VsZWN0KGV2ZW50LCBjbnRybE5hbWU6IHN0cmluZykge31cclxuXHJcbiAgLy9UaGlzIHNob3VkIGJlIHNpbWlsaXJhIHRvIG1ldGhvZCBwcmVzZW50IGluIHBhbmVsXHJcbiAgdmFsaWRhdGUoZWxlbWVudDogRWxlbWVudHNNb2RlbCkge1xyXG4gICAgaWYgKCFlbGVtZW50LnNlcnZpY2VOYW1lKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgc2VydmljZVR5cGUgPSBlbGVtZW50LnNlcnZpY2VUeXBlO1xyXG4gICAgaWYgKGVsZW1lbnQuc2VydmljZVR5cGUgPT09ICdGRVRDSCcpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBzZXJ2aWNlQ2FsbFBhcmFtID0gZWxlbWVudC5zZXJ2aWNlQ2FsbFBhcmFtOyAvL3NzbjMyMCxsc3RuYW1lMzIwXHJcbiAgICBsZXQgc2VydmljZUNhbGxUeXBlID0gZWxlbWVudC5zZXJ2aWNlQ2FsbFR5cGU7IC8vXCJHRVRcIlxyXG4gICAgbGV0IHNlcnZpY2VOYW1lOiBzdHJpbmcgPSBlbGVtZW50LnNlcnZpY2VOYW1lOyAvLy9zZWN1cml0eS1zZXJ2aWNlL3ZhbGlkYXRlU1NOL1xyXG4gICAgbGV0IHNlcnZpY2VVcGRhdGVQYXJhbSA9IGVsZW1lbnQuc2VydmljZVVwZGF0ZVBhcmFtO1xyXG4gICAgbGV0IGFsbFZhbHVlUHJlc2VudDogQm9vbGVhbiA9IHRydWU7XHJcbiAgICAvLyAgdGhpcy5sb2dnZXIuZGVidWcoJ3NlcnZpY2VDYWxsUGFyYW0nLHNlcnZpY2VDYWxsUGFyYW0pO1xyXG4gICAgaWYgKHNlcnZpY2VDYWxsUGFyYW0pIHtcclxuICAgICAgdmFyIHNwbGl0dGVkID0gc2VydmljZUNhbGxQYXJhbS5zcGxpdCgnLCcpO1xyXG4gICAgICBsZXQgdmFsdWVBcnI6IHN0cmluZ1tdID0gW107XHJcbiAgICAgIGxldCBwYXJhbUFycjogc3RyaW5nW10gPSBbXTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzcGxpdHRlZC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIC8vdXNlIGkgaW5zdGVhZCBvZiAwIGRvYjMyMFxyXG4gICAgICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCdkb2IzMjAnLHRoaXMuZm9ybS5jb250cm9sc1snZG9iMzIwJ10udmFsdWUpO1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm0uY29udHJvbHNbc3BsaXR0ZWRbaV1dLnZhbHVlKSB7XHJcbiAgICAgICAgICBwYXJhbUFyci5wdXNoKHNwbGl0dGVkW2ldKTtcclxuICAgICAgICAgIHZhbHVlQXJyLnB1c2godGhpcy5mb3JtLmNvbnRyb2xzW3NwbGl0dGVkW2ldXS52YWx1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGFsbFZhbHVlUHJlc2VudCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygndmFsdWVBcnIxMicsIHZhbHVlQXJyLCAncGFyYW1BcnIxMSAnLCBwYXJhbUFyciwgJyBlbGVtZW50JywgZWxlbWVudCk7XHJcblxyXG4gICAgICB2YXIgbW9kZWw6IFZhbGlkYXRpb25Nb2RlbCA9IHt9O1xyXG4gICAgICBtb2RlbC5wYXJhbU5hbWUgPSBwYXJhbUFycjtcclxuICAgICAgbW9kZWwucGFyYW1WYWx1ZSA9IHZhbHVlQXJyO1xyXG4gICAgICAvLyByZXR1cm4gdGhpcy5wb3N0KGBxdWVzdGlvbm5haXJlL3NjcmVlbi1xdWVzdGlvbm5haXJlYCwgcXVlc3Rpb25uYWlyZURhdGEpO1xyXG4gICAgICBpZiAoYWxsVmFsdWVQcmVzZW50KSB7XHJcbiAgICAgICAgaWYgKHNlcnZpY2VDYWxsVHlwZSA9PT0gJ1BPU1QnKSB7XHJcbiAgICAgICAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnSW5zaWRlIEdFVCcpO1xyXG4gICAgICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5wb3N0KGAke3NlcnZpY2VOYW1lfWAsIG1vZGVsKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgIChyZXMpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnJldHVybk1vZGVsID0gcmVzO1xyXG4gICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIHRoaXMucmV0dXJuTW9kZWwucmV0dXJuVHlwZSAmJlxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZXR1cm5Nb2RlbC5yZXR1cm5UeXBlID09PSAnUE9QVVAnXHJcbiAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlQb3NpdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gJ3RvcCc7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvcFVwSGVhZGVyID0gdGhpcy5yZXR1cm5Nb2RlbC5wb3BVcEhlYWRlcjtcclxuICAgICAgICAgICAgICAgIHRoaXMucG9wVXBUZXh0ID0gdGhpcy5yZXR1cm5Nb2RlbC5wb3BVcFRleHQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvcFVwWWVzQWN0aW9uTGFiZWwgPSB0aGlzLnJldHVybk1vZGVsLnBvcFVwWWVzQnV0dG9uTGFiZWw7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvcFVwTm9BY3Rpb25MYWJlbCA9IHRoaXMucmV0dXJuTW9kZWwucG9wVXBOb0J1dHRvbkxhYmVsO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndGhpcy5yZXR1cm5Nb2RlbCAnLCB0aGlzLnJldHVybk1vZGVsKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBibHVyRE9CKGVsZW1lbnQ6IEVsZW1lbnRzTW9kZWwpIHtcclxuICAgIHRoaXMudmFsaWRhdGUoZWxlbWVudCk7XHJcbiAgICB0aGlzLmNoZWNrSWZVc2VyRXhpc3QoKTtcclxuICB9XHJcbiAgYWNjZXB0KCkge1xyXG4gICAgY29uc29sZS5sb2coJ2FjY2VwdCBjYWxsZWQxMjMnLCB0aGlzLnJldHVybk1vZGVsLmlkZW50aWZpZXIpO1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IFBhcmFtc1tdID0gW107XHJcbiAgICBpZiAodGhpcy5yZXR1cm5Nb2RlbC5pZGVudGlmaWVyKSB7XHJcbiAgICAgIGxldCBtb2RlbEFycjogS2V5VmFsdWVNb2RlbFtdID0gdGhpcy5yZXR1cm5Nb2RlbC5pZGVudGlmaWVyO1xyXG4gICAgICBmb3IgKHZhciB2YWwgb2YgbW9kZWxBcnIpIHtcclxuICAgICAgICBwYXJhbUFycmF5LnB1c2goeyBbdmFsLmtleV06IHZhbC52YWx1ZSB9KTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBwYXJhbXMgPSBwYXJhbUFycmF5LnJlZHVjZSgoYXJyT2JqLCBpdGVtKSA9PlxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24oYXJyT2JqLCBpdGVtLCB7fSlcclxuICAgICAgKTtcclxuICAgICAgLy90aGlzLnV0aWwub3BlblBhZ2VCeUNvbnRleHRSb290V2l0aERhdGEodGhpcy5nZXRDb250ZXh0Um9vdCgpLCB0aGlzLnJldHVybk1vZGVsLnllc0FjdGlvbiwgcGFyYW1zLCB0aGlzLm5hdkNvbnRyb2xsZXIpXHJcbiAgICAgIHRoaXMubmF2Q29udHJvbGxlci5uYXZpZ2F0ZVJvb3QodGhpcy5yZXR1cm5Nb2RlbC55ZXNBY3Rpb24sIHtcclxuICAgICAgICBxdWVyeVBhcmFtczogcGFyYW1zLFxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnJldHVybk1vZGVsLnllc0FjdGlvbiAmJlxyXG4gICAgICB0aGlzLnJldHVybk1vZGVsLnllc0FjdGlvbi5zdWJzdHJpbmcoMCwgNCkgIT0gJy9jcC8nXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlUm9vdChbdGhpcy5yZXR1cm5Nb2RlbC55ZXNBY3Rpb25dKTtcclxuICAgICAgdGhpcy5kaXNwbGF5UG9zaXRpb24gPSBmYWxzZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgd2luZG93Lm9wZW4obG9jYXRpb24ub3JpZ2luICsgdGhpcy5yZXR1cm5Nb2RlbC55ZXNBY3Rpb24sICdfc2VsZicpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlUm9vdChbdGhpcy5yZXR1cm5Nb2RlbC55ZXNBY3Rpb25dKTtcclxuICB9XHJcblxyXG4gIHJlamVjdCgpIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5yZXR1cm5Nb2RlbC5ub0FjdGlvbiAmJlxyXG4gICAgICB0aGlzLnJldHVybk1vZGVsLm5vQWN0aW9uLnN1YnN0cmluZygwLCA0KSAhPSAnL2NwLydcclxuICAgICkge1xyXG4gICAgICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KFt0aGlzLnJldHVybk1vZGVsLm5vQWN0aW9uXSk7XHJcbiAgICAgIHRoaXMuZGlzcGxheVBvc2l0aW9uID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB3aW5kb3cub3Blbihsb2NhdGlvbi5vcmlnaW4gKyB0aGlzLnJldHVybk1vZGVsLm5vQWN0aW9uLCAnX3NlbGYnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldENvbnRleHRSb290KCkge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zdWJzdHJpbmcoXHJcbiAgICAgIDAsXHJcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5pbmRleE9mKCcvJywgMilcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGxvYWRGaWxlKGV2OiBhbnkpIHt9XHJcblxyXG4gIGdldFRyYW5zbGF0aW9uKGtleTogc3RyaW5nLCBkeW5hbWljUGFyYW06IGFueSkge1xyXG4gICAgaWYgKCFkeW5hbWljUGFyYW0pIHtcclxuICAgICAgcmV0dXJuIGtleTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZHluYW1pY09iaiA9IHt9O1xyXG5cclxuICAgIGxldCBwYXJhbTogS2V5VmFsdWVNb2RlbDtcclxuICAgIGxldCBwYXJhbXM6IEtleVZhbHVlTW9kZWxbXTtcclxuXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShkeW5hbWljUGFyYW0pKSB7XHJcbiAgICAgIHBhcmFtcyA9IGR5bmFtaWNQYXJhbTtcclxuICAgICAgcGFyYW1zLmZvckVhY2goKHBybSkgPT4ge1xyXG4gICAgICAgIGR5bmFtaWNPYmpbcHJtLmtleV0gPSBwcm0udmFsdWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcGFyYW0gPSBkeW5hbWljUGFyYW07XHJcbiAgICAgIGR5bmFtaWNPYmpbcGFyYW0ua2V5XSA9IHBhcmFtLnZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudHJhbnNsYXRlLnVzZSgnZW4nKTtcclxuICAgIGxldCB0cmFuc2xhdGVkU3RyaW5nOiBTdHJpbmcgPSAnJztcclxuICAgIHRoaXMudHJhbnNsYXRlLnNldChrZXksIGtleSk7XHJcbiAgICB0cmFuc2xhdGVkU3RyaW5nID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChrZXksIE9iamVjdC5hc3NpZ24oZHluYW1pY09iaikpO1xyXG4gICAgcmV0dXJuIHRyYW5zbGF0ZWRTdHJpbmc7XHJcbiAgfVxyXG5cclxuICBnZXRUZXh0KG9iamVjdCkge1xyXG4gICAgcmV0dXJuIG9iamVjdD8udGV4dCA/IG9iamVjdD8udGV4dCA6IG9iamVjdDtcclxuICB9XHJcblxyXG4gIHVubWFzayhldmVudCkge1xyXG4gICAgdGhpcy5tYXNrQ2xhc3MgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG1hc2soZXZlbnQpIHtcclxuICAgIHRoaXMubWFza0NsYXNzID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGRhdGVJbnB1dChldmVudCkge1xyXG4gICAgbGV0IGN1cnJlbnRWYWx1ZTogc3RyaW5nID0gZXZlbnQuc3JjRWxlbWVudC52YWx1ZTtcclxuICAgIGlmIChjdXJyZW50VmFsdWUpIHtcclxuICAgICAgaWYgKGN1cnJlbnRWYWx1ZS5sZW5ndGggPT0gMiAmJiBjdXJyZW50VmFsdWUuY2hhckF0KDIpICE9ICcvJykge1xyXG4gICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IGN1cnJlbnRWYWx1ZSArICcvJztcclxuICAgICAgfVxyXG4gICAgICBpZiAoY3VycmVudFZhbHVlLmxlbmd0aCA9PSA1ICYmIGN1cnJlbnRWYWx1ZS5jaGFyQXQoNSkgIT0gJy8nKSB7XHJcbiAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gY3VycmVudFZhbHVlICsgJy8nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja0ZvclZhbHVlQ2hhbmdlKGV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhKSB7XHJcbiAgICAgIGxldCBjb21wRGF0YTogVmFsdWVDaGFuZ2VDb21wb25lbnRNb2RlbCA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgdGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhXHJcbiAgICAgICk7XHJcbiAgICAgIGxldCBjdXJyZW50VmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgICAgIGxldCBvcmlnaW5hbFZhbHVlID0gdGhpcy5mb3JtLmdldChjb21wRGF0YS5vcmlnaW5hbFZhbHVlQ29udHJvbCk/LnZhbHVlO1xyXG4gICAgICBsZXQgZm9ybUNvbnRyb2xUb1VwZGF0ZTogQWJzdHJhY3RDb250cm9sID0gdGhpcy5mb3JtLmdldChcclxuICAgICAgICBjb21wRGF0YS5mb3JtQ29udHJvbFRvVXBkYXRlXHJcbiAgICAgICk7XHJcbiAgICAgIGZvcm1Db250cm9sVG9VcGRhdGUucGF0Y2hWYWx1ZSgnTicpO1xyXG4gICAgICBmb3JtQ29udHJvbFRvVXBkYXRlLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy5mb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy5keW5hbWljUGFyYW0gPSB0aGlzLmR5bmFtaWNQYXJhbSA/IHRoaXMuZHluYW1pY1BhcmFtIDogW107XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZHluYW1pY1BhcmFtKSkge1xyXG4gICAgICAgIHRoaXMuZHluYW1pY1BhcmFtLnB1c2goe1xyXG4gICAgICAgICAga2V5OiB0aGlzLnF1ZXN0aW9uLm5hbWUsXHJcbiAgICAgICAgICB2YWx1ZTogY3VycmVudFZhbHVlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZHluYW1pY1BhcmFtW3RoaXMucXVlc3Rpb24ubmFtZV0gPSBjdXJyZW50VmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGN1cnJlbnRWYWx1ZSAhPSBvcmlnaW5hbFZhbHVlKSB7XHJcbiAgICAgICAgZm9ybUNvbnRyb2xUb1VwZGF0ZS5wYXRjaFZhbHVlKCdZJyk7XHJcbiAgICAgICAgdGhpcy5vbkR5bmFtaWNQYXJhbVVwZGF0ZS5lbWl0KHRoaXMuZHluYW1pY1BhcmFtKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3JtQ29udHJvbFRvVXBkYXRlLnBhdGNoVmFsdWUoJ04nKTtcclxuICAgICAgfVxyXG4gICAgICBmb3JtQ29udHJvbFRvVXBkYXRlLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldEVtcGxveWVyKGVtcGxveWVyOiBFbXBsb3llckRldGFpbFNlYXJjaFJlc3VsdCkge1xyXG4gICAgaWYgKHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YSkge1xyXG4gICAgICBsZXQgY29tcERhdGE6IEVtcGxveWVyQWRkcmVzc1VwZGF0ZU1vZGVsID0gSlNPTi5wYXJzZShcclxuICAgICAgICB0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGFcclxuICAgICAgKTtcclxuICAgICAgbGV0IGFkZHJlc3NGYzogQWJzdHJhY3RDb250cm9sID0gdGhpcy5mb3JtLmdldChcclxuICAgICAgICBjb21wRGF0YS5hZGRyZXNzRm9ybUNvbnRyb2xOYW1lXHJcbiAgICAgICk7XHJcbiAgICAgIGxldCBlbXBJZEZjOiBBYnN0cmFjdENvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KFxyXG4gICAgICAgIGNvbXBEYXRhLmVtcGxveWVySWRGb3JtQ29udHJvbE5hbWVcclxuICAgICAgKTtcclxuICAgICAgZW1wSWRGYy5zZXRWYWx1ZShlbXBsb3llci5lbXBsb3llcklkID8gZW1wbG95ZXIuZW1wbG95ZXJJZCA6ICctMScpO1xyXG4gICAgICBhZGRyZXNzRmMuc2V0VmFsdWUoe1xyXG4gICAgICAgIGNvdW50cnk6IGVtcGxveWVyLmNvdW50cnksXHJcbiAgICAgICAgY2l0eTogZW1wbG95ZXIuY2l0eSxcclxuICAgICAgICB6aXA6IGVtcGxveWVyLnppcCxcclxuICAgICAgICBzdHJlZXRBZGRyZXNzOiBlbXBsb3llci5hZGRyZXNzRGlzcGxheVZhbCxcclxuICAgICAgICBzdGF0ZTogZW1wbG95ZXIuc3RhdGUsXHJcbiAgICAgICAgb3B0aW9uYWxBZGRyZXNzOiBudWxsLFxyXG4gICAgICAgIGNvdW50eTogbnVsbCxcclxuICAgICAgICB0b3duOiBudWxsLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc2V0RW1wbG95ZXIoKSB7XHJcbiAgICBpZiAodGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhKSB7XHJcbiAgICAgIGxldCBjb21wRGF0YTogRW1wbG95ZXJBZGRyZXNzVXBkYXRlTW9kZWwgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgIHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YVxyXG4gICAgICApO1xyXG4gICAgICBsZXQgYWRkcmVzc0ZjOiBBYnN0cmFjdENvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KFxyXG4gICAgICAgIGNvbXBEYXRhLmFkZHJlc3NGb3JtQ29udHJvbE5hbWVcclxuICAgICAgKTtcclxuICAgICAgbGV0IGVtcElkRmM6IEFic3RyYWN0Q29udHJvbCA9IHRoaXMuZm9ybS5nZXQoXHJcbiAgICAgICAgY29tcERhdGEuZW1wbG95ZXJJZEZvcm1Db250cm9sTmFtZVxyXG4gICAgICApO1xyXG4gICAgICBlbXBJZEZjLnNldFZhbHVlKCctMScpO1xyXG4gICAgICBhZGRyZXNzRmMuc2V0VmFsdWUoe1xyXG4gICAgICAgIGNvdW50cnk6IG51bGwsXHJcbiAgICAgICAgY2l0eTogbnVsbCxcclxuICAgICAgICB6aXA6IG51bGwsXHJcbiAgICAgICAgc3RyZWV0QWRkcmVzczogbnVsbCxcclxuICAgICAgICBzdGF0ZTogbnVsbCxcclxuICAgICAgICBvcHRpb25hbEFkZHJlc3M6IG51bGwsXHJcbiAgICAgICAgY291bnR5OiBudWxsLFxyXG4gICAgICAgIHRvd246IG51bGwsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Rm9ybUNvbnRyb2xWYWx1ZShlbGVtZW50TmFtZSwgZWxlbWVudFZhbHVlKSB7XHJcbiAgICBpZiAodGhpcy5mb3JtLmNvbnRyb2xzW2VsZW1lbnROYW1lXSkge1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbZWxlbWVudE5hbWVdLnBhdGNoVmFsdWUoZWxlbWVudFZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldERlZmF1bHRWYWx1ZSgpIHtcclxuICAgIGlmICh0aGlzLnF1ZXN0aW9uLmRlZmF1bHRWYWx1ZSkge1xyXG4gICAgICBsZXQgdmFsdWUgPSB0aGlzLnF1ZXN0aW9uLmRlZmF1bHRWYWx1ZTtcclxuICAgICAgaWYgKHRoaXMucXVlc3Rpb24udHlwZSA9PSAnZHJvcGRvd24nKSB7XHJcbiAgICAgICAgY29uc3QgY2hvaWNlOiBzdHJpbmcgPSB0aGlzLnF1ZXN0aW9uLmRlZmF1bHRWYWx1ZTtcclxuICAgICAgICB2YXIganNvbk9iamVjdDogQ2hvaWNlcyA9IEpTT04ucGFyc2UoY2hvaWNlKTtcclxuICAgICAgICB0aGlzLnNldEZvcm1Db250cm9sVmFsdWUoXHJcbiAgICAgICAgICB0aGlzLnF1ZXN0aW9uLm5hbWUsXHJcbiAgICAgICAgICB0aGlzLnF1ZXN0aW9uLmNob2ljZXMuZmlsdGVyKChjKSA9PiBjLnZhbHVlID09IGpzb25PYmplY3QudmFsdWUpWzBdXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldEZvcm1Db250cm9sVmFsdWUodGhpcy5xdWVzdGlvbi5uYW1lLCB2YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1vZGlmeUNhbGVuZGFyQXR0cmlidXRlcygpIHtcclxuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IHRoaXMucENhbGVuZGFyLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcclxuICAgICAgJ3AtY2FsZW5kYXIgW2FyaWEtY29udHJvbHNdJ1xyXG4gICAgKTtcclxuICAgIGlucHV0RWxlbWVudC5mb3JFYWNoKChlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50KSA9PiB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsZW1lbnQsICdhcmlhLWNvbnRyb2xzJywgdGhpcy5xdWVzdGlvbi5uYW1lKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWxlbWVudCwgJ2FyaWEtZXhwYW5kZWQnLCAnZmFsc2UnKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiIFtpZF09XCIncXVlc3Rpb24tZGl2LScgKyBxdWVzdGlvbi5uYW1lXCI+XHJcbiAgPHAtZGlhbG9nICpuZ0lmPVwiZGlzcGxheVBvc2l0aW9uXCIgWyh2aXNpYmxlKV09XCJkaXNwbGF5UG9zaXRpb25cIiBbcG9zaXRpb25dPVwicG9zaXRpb25cIlxyXG4gICAgW21vZGFsXT1cInRydWVcIiBbYnJlYWtwb2ludHNdPVwieycxMjAwcHgnOiAnNjYwcHgnLCAnOTkycHgnOiAnNjYwcHgnLCAnNzY4cHgnOiAnNjYwcHgnLCAnNTc2cHgnOiAnMTAwdncnfVwiIFtzdHlsZV09XCJ7d2lkdGg6ICc0NXZ3J31cIlxyXG4gICAgW2Jhc2VaSW5kZXhdPVwiNTAwMFwiIFtkcmFnZ2FibGVdPVwiZmFsc2VcIiBbcmVzaXphYmxlXT1cImZhbHNlXCIgYXBwZW5kVG89XCJib2R5XCIgY2xvc2VPbkVzY2FwZT1cImZhbHNlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPlxyXG5cclxuICAgIDxoNCBjbGFzcz1cImhlYWRpbmcgaW9uLXBhZGRpbmctbGVmdFwiPlxyXG4gICAgICB7e3BvcFVwSGVhZGVyfX1cclxuICAgIDwvaDQ+XHJcbiAgICA8cD57e3BvcFVwVGV4dH19XHJcbiAgICA8L3A+XHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XHJcbiAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiAqbmdJZj1cInBvcFVwTm9BY3Rpb25MYWJlbFwiIHNpemU9XCJzbWFsbFwiIHR5cGU9XCJzdWJtaXRcIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJyZWplY3QoKVwiPlxyXG4gICAgICAgIHt7cG9wVXBOb0FjdGlvbkxhYmVsfX1cclxuICAgICAgPC9pb24tYnV0dG9uPlxyXG5cclxuICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiICpuZ0lmPVwicG9wVXBZZXNBY3Rpb25MYWJlbFwiIHNpemU9XCJzbWFsbFwiIHR5cGU9XCJzdWJtaXRcIiBmaWxsPVwic29saWRcIiAoY2xpY2spPVwiYWNjZXB0KClcIj5cclxuICAgICAgICB7e3BvcFVwWWVzQWN0aW9uTGFiZWx9fVxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L3AtZGlhbG9nPlxyXG4gIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiICpuZ0lmPVwiIWZvclNjcmVlblF1ZXN0aW9ubmFpcmVcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5cclxuICAgIDxsYWJlbCBbYXR0ci5mb3JdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uaW5kZW50PT09MSAmJiBxdWVzdGlvbi50eXBlIT0naHRtbCcgJiYgcXVlc3Rpb24udHlwZSE9J2hpZGRlbicgJiYgcXVlc3Rpb24udHlwZSE9J2xhYmVsJ1wiPlxyXG4gICAgICA8c3BhbiBbaW5uZXJIdG1sXT1cInF1ZXN0aW9uLnRpdGxlIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW0gfCB0cnVzdEh0bWxcIj48L3NwYW4+XHJcbiAgICA8L2xhYmVsPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIiBjbGFzcz1cImZvcm0tbGFiZWxcIlxyXG4gICAgKm5nSWY9XCJmb3JTY3JlZW5RdWVzdGlvbm5haXJlICYmIHF1ZXN0aW9uLmluZGVudD09PTEgJiYgcXVlc3Rpb24udHlwZSE9J2h0bWwnICYmIHF1ZXN0aW9uLnR5cGUhPSdoaWRkZW4nICYmIHF1ZXN0aW9uLmRlc2NyaXB0aW9uICYmIHF1ZXN0aW9uLnR5cGUhPSdzaW1wbGVjaGVja2JveCcgJiYgcXVlc3Rpb24udHlwZSE9J2xhYmVsJyAmJiBxdWVzdGlvbi50eXBlIT0nbGFiZWwtd2l0aC1vdmVybGF5J1wiPlxyXG4gICAgPGxhYmVsIFthdHRyLmZvcl09XCJxdWVzdGlvbi5uYW1lXCI+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cInF1ZXN0aW9uLnRpdGxlIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW0gfCB0cnVzdEh0bWxcIj48L3NwYW4+XHJcbiAgPC9sYWJlbD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCJcclxuICAgICpuZ0lmPVwiZm9yU2NyZWVuUXVlc3Rpb25uYWlyZSAmJiBxdWVzdGlvbi5jdXN0b21UYWcgJiYgKHF1ZXN0aW9uLmN1c3RvbVRhZyE9J2NvbXBvbmVudCcgfHwgKHF1ZXN0aW9uLmN1c3RvbVRhZz09J2NvbXBvbmVudCcgJiYgc2hvd0xhYmVsRm9yQ3VzdG9tQ29tcG9uZW50KCkpKSAmJiBxdWVzdGlvbi5pbmRlbnQ9PT0xICYmIHF1ZXN0aW9uLnR5cGUhPSdodG1sJyAmJiBxdWVzdGlvbi50eXBlIT0naGlkZGVuJyAmJiAhcXVlc3Rpb24uZGVzY3JpcHRpb24gJiYgcXVlc3Rpb24udHlwZSE9J2xhYmVsJyAmJiBxdWVzdGlvbi50eXBlIT0nc2ltcGxlY2hlY2tib3gnXCI+XHJcbiAgICA8bGFiZWwgW2F0dHIuZm9yXT1cInF1ZXN0aW9uLm5hbWVcIj5cclxuICAgIDxzcGFuIFtpbm5lckh0bWxdPVwicXVlc3Rpb24udGl0bGUgfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbSB8IHRydXN0SHRtbFwiPjwvc3Bhbj5cclxuICA8L2xhYmVsPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIiBjbGFzcz1cImZvcm0tbGFiZWxcIlxyXG4gICAgKm5nSWY9XCJmb3JTY3JlZW5RdWVzdGlvbm5haXJlICYmICFxdWVzdGlvbi5jdXN0b21UYWcgICYmIHF1ZXN0aW9uLmluZGVudD09PTEgJiYgcXVlc3Rpb24udHlwZSE9J2h0bWwnICYmIHF1ZXN0aW9uLnR5cGUhPSdoaWRkZW4nICYmICFxdWVzdGlvbi5kZXNjcmlwdGlvbiAmJiBxdWVzdGlvbi50eXBlIT0nc2ltcGxlY2hlY2tib3gnICYmIHF1ZXN0aW9uLnR5cGUhPSdsYWJlbCcgJiYgcXVlc3Rpb24udHlwZSE9J2xhYmVsLXdpdGgtb3ZlcmxheSdcIj5cclxuICAgIDxsYWJlbCBbYXR0ci5mb3JdPVwicXVlc3Rpb24ubmFtZVwiPlxyXG4gICAgPHNwYW4gW2lubmVySHRtbF09XCJxdWVzdGlvbi50aXRsZSB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtIHwgdHJ1c3RIdG1sXCI+PC9zcGFuPlxyXG4gIDwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcblxyXG5cclxuXHJcbiAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5jdXN0b21UYWc9PT0nY29tcG9uZW50JyAmJiBxdWVzdGlvbi50eXBlIT0naHRtbCcgJiYgIXF1ZXN0aW9uLmRlc2NyaXB0aW9uXCI+XHJcbiAgICA8YXBwLWVtcGxveWVyLWdyaWQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2Zvcm1dPVwiZm9ybVwiIFtkeW5hbWljUGFyYW1dPVwiZHluYW1pY1BhcmFtXCJcclxuICAgICAgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1lbXBsb3llci1ncmlkJ1wiIChtb2RlbERpc3BsYXkpPVwib25Nb2RlbERpc3BsYXkoJGV2ZW50KVwiPjwvYXBwLWVtcGxveWVyLWdyaWQ+XHJcbiAgICA8YXBwLWxlZ2FsLWRpc2NsYWltYXIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1sZWdhbC1kaXNjbGFpbWFyJ1wiXHJcbiAgICAgIFtjb21wb25lbnREYXRhXT1cInF1ZXN0aW9uLmNvbXBvbmVudERhdGFcIiAoYWNjZXB0ZWQpPVwib25BY2NlcHRlZCgkZXZlbnQpXCIgW3F1ZXN0aW9uXT1cInF1ZXN0aW9uXCIgW2Zvcm1dPVwiZm9ybVwiPlxyXG4gICAgPC9hcHAtbGVnYWwtZGlzY2xhaW1hcj5cclxuICAgIDxtb25leS1leHBlY3QgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J21vbmV5LWV4cGVjdCdcIj48L21vbmV5LWV4cGVjdD5cclxuICAgIDxhcHAtY2FwdGNoYSBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWNhcHRjaGEnXCI+PC9hcHAtY2FwdGNoYT5cclxuXHJcbiAgICA8YXBwLWZpbGUtdXBsb2FkZXIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1maWxlLXVwbG9hZGVyJ1wiPlxyXG4gICAgPC9hcHAtZmlsZS11cGxvYWRlcj5cclxuICAgIDxhcHAtYWRkcmVzcyBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbZnJvbVBvcHVwXT1cImZhbHNlXCIgW2NvdW50eVJlcXVpcmVkXT1cInF1ZXN0aW9uLmNvdW50eVJlcXVpcmVkXCJcclxuICAgICAgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1hZGRyZXNzJ1wiICNhZGRyZXNzIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIj4gPC9hcHAtYWRkcmVzcz5cclxuICAgIDxhcHAtYmFuay1kZXRhaWxzIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtYmFuay1kZXRhaWxzJ1wiICNiYW5rZHRscz5cclxuICAgIDwvYXBwLWJhbmstZGV0YWlscz5cclxuICAgIDxhcHAtcmVxdWFsaWZ5LWxpZnQtcHJldmlvdXMtaXNzdWVzICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtcmVxdWFsaWZ5LWxpZnQtcHJldmlvdXMtaXNzdWVzJ1wiXHJcbiAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbY29tcG9uZW50RGF0YV09XCJxdWVzdGlvbi5jb21wb25lbnREYXRhXCIgW2Zvcm1dPVwiZm9ybVwiID5cclxuICAgIDwvYXBwLXJlcXVhbGlmeS1saWZ0LXByZXZpb3VzLWlzc3Vlcz4gXHJcbiAgICA8YXBwLWRlcGVuZGVudC1ncmlkIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtZGVwZW5kZW50LWdyaWQnXCI+PC9hcHAtZGVwZW5kZW50LWdyaWQ+XHJcbiAgICA8YXBwLXdlZWtseS1jZXJ0LWVtcGxveWVyLWdyaWQgI3djRW1wbG95ZXJHcmlkIFtkeW5hbWljUGFyYW1dPVwiZHluYW1pY1BhcmFtXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC13ZWVrbHktY2VydC1lbXBsb3llci1ncmlkJ1wiPjwvYXBwLXdlZWtseS1jZXJ0LWVtcGxveWVyLWdyaWQ+XHJcbiAgICA8YXBwLXNlYXJjaC1lbXBsb3llciBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBlbXBUeXBlPVwiUkVHXCIgKG9uRm91bmQpPVwic2V0RW1wbG95ZXIoJGV2ZW50KVwiIFxyXG4gICAgKG9uRW1wdHkpPVwicmVzZXRFbXBsb3llcigpXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1zZWFyY2gtZW1wbG95ZXInXCI+PC9hcHAtc2VhcmNoLWVtcGxveWVyPlxyXG4gICAgPGFwcC1hZGQtcGFydGljaXBhbnQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1hZGQtcGFydGljaXBhbnQnXCI+IDwvYXBwLWFkZC1wYXJ0aWNpcGFudD5cclxuICAgIDxhcHAtYWRkLXBheW1lbnQgW3BvdGVudGlhbElzc3VlSWRdPVwicG90ZW50aWFsSXNzdWVJZFwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtYWRkLXBheW1lbnQnXCI+PC9hcHAtYWRkLXBheW1lbnQ+XHJcbiAgICA8YXBwLWxpbmsgW2lzUmVxdWlyZWRdPVwicXVlc3Rpb24uaXNSZXF1aXJlZFwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtbGluaydcIiBbdGV4dF09XCJsaW5rQ29tcG9uZW50RGF0YT8udGV4dFwiIFt1cmldPVwibGlua0NvbXBvbmVudERhdGE/LnVyaVwiIFtleHRlcm5hbFVybF09XCJsaW5rQ29tcG9uZW50RGF0YT8uZXh0ZXJuYWxVcmxcIj48L2FwcC1saW5rPlxyXG4gICAgPGFwcC1zaWduLXNzbiBbaXNSZXF1aXJlZF09XCJxdWVzdGlvbi5pc1JlcXVpcmVkXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1zaWduLXNzbidcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCI+PC9hcHAtc2lnbi1zc24+XHJcbiAgICA8YXBwLWpvYi10aXRsZSBbY29udHJvbF09XCJmb3JtLmNvbnRyb2xzW3F1ZXN0aW9uLm5hbWVdXCIgICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtam9iLXRpdGxlJ1wiICNqb2JUaXRsZT4gPC9hcHAtam9iLXRpdGxlPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uaW5kZW50IT0xICYmIHF1ZXN0aW9uLnR5cGUhPSdodG1sJyAmJiBxdWVzdGlvbi50eXBlIT0nbGFiZWwnICYmIHF1ZXN0aW9uLnR5cGUhPSdoaWRkZW4nXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCIgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgPHNwYW4gW2lubmVySHRtbF09XCJxdWVzdGlvbi50aXRsZSB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtIHwgdHJ1c3RIdG1sXCI+PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24udHlwZT09PSdodG1sJ1wiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgIDxkaXYgIFtpbm5lckhUTUxdPVwicXVlc3Rpb24uaHRtbCB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtIHwgdHJ1c3RIdG1sXCJcclxuICAgICAgc3R5bGU9XCJjb2xvcjp2YXIoLS1pb24tY29sb3ItbWVkaXVtLWdyYXkpOyBwYWRkaW5nLXRvcDogMjBweDtcIiBjbGFzcz1cImhlYWRpbmdcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6MTNweFwiPlxyXG4gICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIFxyXG4gIDxkaXYgW25nU3dpdGNoXT1cInF1ZXN0aW9uLnR5cGVcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0ZXh0J1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5pbnB1dFR5cGUgJiYgcXVlc3Rpb24uaW5wdXRUeXBlPT09J2RhdGUnICYmIHF1ZXN0aW9uLm5hbWUgJiYgcXVlc3Rpb24ubmFtZSE9J2RvYidcIj5cclxuICAgICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiICNwQ2FsZW5kYXI+XHJcbiAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbbW9udGhOYXZpZ2F0b3JdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiIHllYXJSYW5nZT1cIjE5MDE6MjA5OVwiIFtzaG93SWNvbl09XCJ0cnVlXCIgW21pbkRhdGVdPVwic2hvd01pbkRhdGUgPyBtaW5EYXRlIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgW21heERhdGVdPVwic2hvd01heERhdGUgPyBtYXhEYXRlIDogbnVsbFwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiIGFwcGVuZFRvPVwiYm9keVwiIGRhdGFUeXBlPVwic3RyaW5nXCJcclxuICAgICAgICAgICAgICAob25CbHVyKT1cInZhbGlkYXRlKHF1ZXN0aW9uKVwiIChvblNlbGVjdCk9XCJ2YWxpZGF0ZShxdWVzdGlvbilcIiBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiBcclxuICAgICAgICAgICAgICAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiIFtpY29uQXJpYUxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+XHJcbiAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSdkYXRlJyAmJiBxdWVzdGlvbi5uYW1lICYmIHF1ZXN0aW9uLm5hbWU9PT0nZG9iJ1wiPlxyXG4gICAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCIgI3BDYWxlbmRhcj5cclxuICAgICAgICAgICAgPHAtY2FsZW5kYXIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFttb250aE5hdmlnYXRvcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgW3Nob3dJY29uXT1cInRydWVcIiBbbWluRGF0ZV09XCJtaW5EYXRlRE9CXCJcclxuICAgICAgICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlRE9CXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCIgYXBwZW5kVG89XCJib2R5XCIgZGF0YVR5cGU9XCJzdHJpbmdcIlxyXG4gICAgICAgICAgICAgIChvbkJsdXIpPVwiYmx1ckRPQihxdWVzdGlvbilcIiAob25TZWxlY3QpPVwidmFsaWRhdGUocXVlc3Rpb24pXCIgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgXHJcbiAgICAgICAgICAgICAgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIiBbaWNvbkFyaWFMYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPlxyXG4gICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuXHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5pbnB1dFR5cGUgJiYgcXVlc3Rpb24uaW5wdXRUeXBlPT09J3RleHQnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5jdXN0b21UYWc9PT0nc3NuJ1wiXHJcbiAgICAgICAgICBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8cC1pbnB1dE1hc2sgYXV0b2NvbXBsZXRlPVwib2ZmXCIgIFtjbGFzcy5oaWRlLWNvbnRlbnRdPVwibWFza0NsYXNzXCIgbWFzaz1cIjk5OS05OS05OTk5XCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiOTk5LTk5LTk5OTlcIiAob25Db21wbGV0ZSk9XCJ2YWxpZGF0ZShxdWVzdGlvbilcIiAob25Gb2N1cyk9XCJ1bm1hc2soJGV2ZW50KVwiIChvbkJsdXIpPVwibWFzaygkZXZlbnQpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPlxyXG4gICAgICAgICAgPC9wLWlucHV0TWFzaz5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5pbnB1dFR5cGUgJiYgcXVlc3Rpb24uaW5wdXRUeXBlPT09J3RleHQnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5jdXN0b21UYWc9PT0nZWFuJ1wiXHJcbiAgICAgICAgICBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8cC1pbnB1dE1hc2sgYXV0b2NvbXBsZXRlPVwib2ZmXCIgIG1hc2s9XCI5OS05OTk5OS05LTk5XCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiOTktOTk5OTktOS05OVwiIFt2YWx1ZV09XCI4MS0wMDU4Ni0wLTAxXCIgKG9uQ29tcGxldGUpPVwidmFsaWRhdGUocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICA8L3AtaW5wdXRNYXNrPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0ndGV4dCcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZz09PSdkdWVhbXQnXCJcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxwLWlucHV0TnVtYmVyIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBtb2RlPVwiZGVjaW1hbFwiIGxvY2FsZT1cImVuLVVTXCJcclxuICAgICAgICAgICAgW21pbkZyYWN0aW9uRGlnaXRzXT1cIjJcIiBbYXJpYUxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuXHJcblxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0JyAmJiAoIXF1ZXN0aW9uLmN1c3RvbVRhZyAgfHwgIHF1ZXN0aW9uLmN1c3RvbVRhZz09PSdPcHRpb25hbCcpICYmICFxdWVzdGlvbi5pc1JlcXVpcmVkXCJcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwicXVlc3Rpb24uc2l6ZSAmJiBxdWVzdGlvbi5tYXhMZW5ndGhcIlxyXG4gICAgICAgICAgICBbbWF4TGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aFwiIHBsYWNlaG9sZGVyPSd7e1wiY29tbW9uLm9wdGlvbmFsXCIgfCB0cmFuc2xhdGV9fScgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0XHJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIi8+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cInF1ZXN0aW9uLnNpemUgJiYgIXF1ZXN0aW9uLm1heExlbmd0aFwiICBwbGFjZWhvbGRlcj0ne3tcImNvbW1vbi5vcHRpb25hbFwiIHwgdHJhbnNsYXRlfX0nXHJcbiAgICAgICAgICAgIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIvPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCIhcXVlc3Rpb24uc2l6ZSAmJiBxdWVzdGlvbi5tYXhMZW5ndGhcIiBbbWF4TGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aFwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSd7e1wiY29tbW9uLm9wdGlvbmFsXCIgfCB0cmFuc2xhdGV9fScgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIC8+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cIiFxdWVzdGlvbi5zaXplICYmICFxdWVzdGlvbi5tYXhMZW5ndGhcIiBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIHBJbnB1dFRleHRcclxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgcGxhY2Vob2xkZXI9J3t7XCJjb21tb24ub3B0aW9uYWxcIiB8IHRyYW5zbGF0ZX19JyBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIvPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tVXNlciBOYW1lLS0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0ndGV4dCcgJiYgIXF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5pc1JlcXVpcmVkICAmJiAhY2hlY2tGbG93S2V5KClcIlxyXG4gICAgICAgICAgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCJxdWVzdGlvbi5zaXplICYmIHF1ZXN0aW9uLm1heExlbmd0aFwiIFxyXG4gICAgICAgICAgICBbbWF4TGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aFwiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgXHJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIi8+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cInF1ZXN0aW9uLnNpemUgJiYgIXF1ZXN0aW9uLm1heExlbmd0aFwiICBbaWRdPVwicXVlc3Rpb24ubmFtZVwiXHJcbiAgICAgICAgICAgIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIi8+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cIiFxdWVzdGlvbi5zaXplICYmIHF1ZXN0aW9uLm1heExlbmd0aFwiIFttYXhMZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoXCJcclxuICAgICAgICAgICAgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCIvPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCIhcXVlc3Rpb24uc2l6ZSAmJiAhcXVlc3Rpb24ubWF4TGVuZ3RoXCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0XHJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCIvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0JyAmJiAhcXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmlzUmVxdWlyZWQgJiYgY2hlY2tGbG93S2V5KClcIlxyXG4gICAgICAgIFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cInF1ZXN0aW9uLnNpemUgJiYgcXVlc3Rpb24ubWF4TGVuZ3RoXCIgXHJcbiAgICAgICAgICBbbWF4TGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aFwiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgW2Rpc2FibGVkXT1cIiFwaG9uZVZlcmlmaWVkXCIgW2F1dG9jb21wbGV0ZV09XCJxdWVzdGlvbj8ubmFtZS5pbmNsdWRlcygnc2VjQW5zJyk/J29mZic6ICdvbidcIi8+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCJxdWVzdGlvbi5zaXplICYmICFxdWVzdGlvbi5tYXhMZW5ndGhcIiAgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIlxyXG4gICAgICAgICAgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgW2Rpc2FibGVkXT1cIiFwaG9uZVZlcmlmaWVkXCIvPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwiIXF1ZXN0aW9uLnNpemUgJiYgcXVlc3Rpb24ubWF4TGVuZ3RoXCIgW21heExlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGhcIlxyXG4gICAgICAgICAgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbZGlzYWJsZWRdPVwiIXBob25lVmVyaWZpZWRcIi8+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCIhcXVlc3Rpb24uc2l6ZSAmJiAhcXVlc3Rpb24ubWF4TGVuZ3RoXCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiAgcElucHV0VGV4dFxyXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbZGlzYWJsZWRdPVwiIXBob25lVmVyaWZpZWRcIi8+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBcclxuICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0ndGV4dCdcclxuICAgICAgICAgICAgICAgICAgJiYgcXVlc3Rpb24uY3VzdG9tVGFnICAmJiBxdWVzdGlvbi5jdXN0b21UYWcuaW5jbHVkZXMoJ2ZpcnN0TmFtZScpICYmIGNoZWNrRmxvd0tleSgpIFwiPlxyXG4gICAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFttYXhMZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoXCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgXHJcbiAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5pbnB1dFR5cGUgICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0J1xyXG4gICAgICAgICAgICAgICAgJiYgcXVlc3Rpb24uY3VzdG9tVGFnICAmJiBxdWVzdGlvbi5jdXN0b21UYWcuaW5jbHVkZXMoJ2xhc3ROYW1lJykgJiYgY2hlY2tGbG93S2V5KCkgXCI+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAgW21heExlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGhcIiBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFxdWVzdGlvbi5pbnB1dFR5cGUgJiYgcXVlc3Rpb24uY3VzdG9tVGFnICYmICAhcXVlc3Rpb24uY3VzdG9tVGFnLmluY2x1ZGVzKCdwaG9uZScpXCJcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cInsncGFkZGluZy1sZWZ0LnB4JzogcXVlc3Rpb24uaW5kZW50KjEwfVwiIFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiLz5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5jdXN0b21UYWcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnLmluY2x1ZGVzKCdwaG9uZScpICAmJiAhY2hlY2tGbG93S2V5KClcIj5cclxuICAgICAgICAgIDxwLWlucHV0TWFzayBhdXRvY29tcGxldGU9XCJvZmZcIiAgbWFzaz1cIjk5OS05OTktOTk5OVwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBcclxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLmlzUmVxdWlyZWQgPyAnOTk5LTk5OS05OTk5JyA6ICgnY29tbW9uLm9wdGlvbmFsJyB8IHRyYW5zbGF0ZSlcIlxyXG4gICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0ndGV4dCdcIiAob25CbHVyKT1cImNoZWNrRm9yVmFsdWVDaGFuZ2UoJGV2ZW50KVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj5cclxuICAgICAgICAgIDwvcC1pbnB1dE1hc2s+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5jdXN0b21UYWcuaW5jbHVkZXMoJ3Bob25lJykgJiYgY2hlY2tGbG93S2V5KClcIj5cclxuICAgICAgICAgIDxwLWlucHV0TWFzayBhdXRvY29tcGxldGU9XCJvZmZcIiAgbWFzaz1cIjk5OSA5OTktOTk5OVwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBcclxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLmlzUmVxdWlyZWQgPyAnOTk5IDk5OS05OTk5JyA6ICgnY29tbW9uLm9wdGlvbmFsJyB8IHRyYW5zbGF0ZSlcIlxyXG4gICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0ndGV4dCdcIiAob25CbHVyKT1cImNoZWNrRm9yVmFsdWVDaGFuZ2UoJGV2ZW50KVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj5cclxuICAgICAgICAgIDwvcC1pbnB1dE1hc2s+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5jdXN0b21UYWcuaW5jbHVkZXMoJ3Bhc3N3b3JkJylcIj5cclxuICAgICAgICAgIDxwLXBhc3N3b3JkIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbdG9nZ2xlTWFza109XCJ0cnVlXCIgW21heExlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGhcIiB3ZWFrTGFiZWw9XCJXZWFrIHBhc3N3b3JkXCIgXHJcbiAgICAgICAgICBtZWRpdW1MYWJlbD1cIldlYWsgcGFzc3dvcmRcIiBzdHJvbmdMYWJlbD1cIlN0cm9uZyBwYXNzd29yZFwiIHN0cm9uZ1JlZ2V4PVwiXig/PS4qW2Etel0pKD89LipbQS1aXSkoPz0uKlswLTldKSg/PS57OCx9KSg/PS4qW19AKiQhIy5dKVwiIFthcmlhTGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgPHAtZGl2aWRlcj48L3AtZGl2aWRlcj5cclxuICAgICAgICAgICAgICA8cCBjbGFzcz1cIm10LTFcIiBzdHlsZT1cImZvbnQtc2l6ZTogc21hbGw7XCI+UGFzc3dvcmQgbXVzdCBpbmNsdWRlIGF0IGxlYXN0PC9wPlxyXG4gICAgICAgICAgICAgIDx1bCBzdHlsZT1cImxpbmUtaGVpZ2h0OiAxLjI1XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMjVweDsgZm9udC1zaXplOiBzbWFsbDtcIj4xIHVwcGVyY2FzZSBsZXR0ZXI8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTI1cHg7IGZvbnQtc2l6ZTogc21hbGw7XCI+MSBsb3dlcmNhc2UgbGV0dGVyPC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0yNXB4OyBmb250LXNpemU6IHNtYWxsO1wiPjEgbnVtYmVyPC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0yNXB4OyBmb250LXNpemU6IHNtYWxsO1wiPjIgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIDxiPl8gJiM2NDsgKiAkICEgIyAuPC9iPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMjVweDsgZm9udC1zaXplOiBzbWFsbDtcIj4xNCBjaGFyYWN0ZXJzPC9saT5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgIDxwLWRpdmlkZXI+PC9wLWRpdmlkZXI+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtdC0xXCIgc3R5bGU9XCJmb250LXNpemU6IHNtYWxsO1wiPlN1Z2dlc3Rpb248L3A+XHJcbiAgICAgICAgICAgICAgPHVsIHN0eWxlPVwibGluZS1oZWlnaHQ6IDEuMjVcIj5cclxuICAgICAgICAgICAgICAgIDxsaSBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMjVweDsgZm9udC1zaXplOiBzbWFsbDtcIj5Eb24ndCB1c2UgeW91ciBuYW1lLCBlbWFpbCBvciBwaG9uZS48L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0yNXB4OyBmb250LXNpemU6IHNtYWxsO1wiPkRvbid0IHVzZSB5b3VyIGtpZCwgcGFydG5lciBvciBwZXQgbmFtZS48L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0yNXB4OyBmb250LXNpemU6IHNtYWxsO1wiPllvdXIgcGFzc3dvcmQgY2Fubm90IGNvbnRhaW4geW91ciBuYW1lIGFuZC9vciB5b3VyIHVzZXIgaWQuPC9saT5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvcC1wYXNzd29yZD5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5jdXN0b21UYWcuaW5jbHVkZXMoJ2ZpbGV1cGxvYWQnKVwiPlxyXG4gICAgICAgICAgPGFwcC1maWxlLXVwbG9hZGVyIFthbGxvd2VkRmlsZVR5cGVdPVwicXVlc3Rpb24uYWxsb3dlZEZpbGVUeXBlXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCJcclxuICAgICAgICAgICAgW21heFNpemVJbk1CXT1cInF1ZXN0aW9uLnNpemVJbk1CXCIgW211bHRpcGxlXT1cInF1ZXN0aW9uLm11bHRpcGxlXCIgW25vT2ZGaWxlc1RvVXBsb2FkXT1cInF1ZXN0aW9uLm5vT0ZGaWxlc1wiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj5cclxuICAgICAgICAgIDwvYXBwLWZpbGUtdXBsb2FkZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS1FbWFpbCBBZGRyZXNzLS0+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5pbnB1dFR5cGUgICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0J1xyXG4gICAgICAgICAgICAgICAgICAmJiBxdWVzdGlvbi5jdXN0b21UYWcgICYmIChxdWVzdGlvbi5jdXN0b21UYWchPSdzc24nICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyE9J09wdGlvbmFsJyAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdmaWxldXBsb2FkJyAgXHJcbiAgICAgICAgICAgICAgICAgICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyE9J3Bob25lJyAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdmaXJzdE5hbWUnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyE9J2xhc3ROYW1lJyAgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0nZWFuJyAgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0nZHVlYW10JyAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdwYXNzd29yZCcpICYmIGNoZWNrRmxvd0tleSgpXCI+XHJcbiAgICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIChibHVyKT1cImNoZWNrRm9yVmFsdWVDaGFuZ2UoJGV2ZW50KVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCIvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIDxkaXYgXHJcbiAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0ndGV4dCdcclxuICAgICAgICAgICAgICAgICAgICAmJiBxdWVzdGlvbi5jdXN0b21UYWcgICYmIChxdWVzdGlvbi5jdXN0b21UYWchPSdzc24nICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyE9J09wdGlvbmFsJyAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdmaWxldXBsb2FkJyAgXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0ncGhvbmUnICAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdlYW4nICAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdkdWVhbXQnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyE9J3Bhc3N3b3JkJykgJiYgIWNoZWNrRmxvd0tleSgpXCI+XHJcbiAgICAgICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKGJsdXIpPVwiY2hlY2tGb3JWYWx1ZUNoYW5nZSgkZXZlbnQpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFxdWVzdGlvbi5pbnB1dFR5cGUgJiYgIXF1ZXN0aW9uLmN1c3RvbVRhZ1wiIFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5zaXplXCIgIHBJbnB1dFRleHRcclxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIi8+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbaWRdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwiIXF1ZXN0aW9uLnNpemVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFxyXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIi8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLSA8L2lvbi1jb2w+XHJcbiAgICA8aW9uLWNvbCBzaXplPVwiMVwiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctdG9wOiAxMnB4XCI+XHJcbiAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgPC9pb24tY29sPlxyXG4gIDwvaW9uLXJvdz4gLS0+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6M3B4XCI+XHJcbiAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY29tbWVudCdcIj5cclxuICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCIgKm5nSWY9XCJxdWVzdGlvbi5tYXhMZW5ndGhcIj5cclxuICAgICAgICA8dGV4dGFyZWEgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBhdXRvUmVzaXplPVwidHJ1ZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiXHJcbiAgICAgICAgICBbbWF4TGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aFwiIFtyb3dzXT1cIjNcIiBbY29sc109XCIzNVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgPGRpdj5cclxuXHJcbiAgICAgICAgICA8c21hbGwgc3R5bGVDbGFzcz1cInAtZC1ibG9ja1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIj57e3F1ZXN0aW9uLmRlc2NyaXB0aW9ufX08L3NtYWxsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiICpuZ0lmPVwiIXF1ZXN0aW9uLm1heExlbmd0aFwiPlxyXG4gICAgICAgIDx0ZXh0YXJlYSBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIGF1dG9SZXNpemU9XCJ0cnVlXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW3Jvd3NdPVwiM1wiXHJcbiAgICAgICAgICBbY29sc109XCIzNVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICA8ZGl2PlxyXG5cclxuICAgICAgICAgIDxzbWFsbCBzdHlsZUNsYXNzPVwicC1kLWJsb2NrXCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiPnt7cXVlc3Rpb24uZGVzY3JpcHRpb259fTwvc21hbGw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkcm9wZG93bidcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxwLWF1dG9Db21wbGV0ZSAqbmdJZj1cImZhbHNlXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW3N1Z2dlc3Rpb25zXT1cImZpbHRlclJlc3VsdFwiIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICAgICAgICAgIChjb21wbGV0ZU1ldGhvZCk9XCJmaWx0ZXJWYWx1ZSgkZXZlbnQscXVlc3Rpb24pXCIgZmllbGQ9XCJ0ZXh0XCIgW2Ryb3Bkb3duXT1cInRydWVcIiBtaW5MZW5ndGg9XCIxXCJcclxuICAgICAgICAgICAgW2ZvcmNlU2VsZWN0aW9uXT1cInRydWVcIiAob25TZWxlY3QpPVwib25TZWxlY3QoJGV2ZW50LHF1ZXN0aW9uLm5hbWUpXCIgW2NvbXBsZXRlT25Gb2N1c109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdmFsdWUgcFRlbXBsYXRlPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2Pnt7dmFsdWUudGV4dH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L3AtYXV0b0NvbXBsZXRlPlxyXG4gICAgICAgICAgPGFwcC1kcm9wZG93biBbb3B0aW9uc109XCJmaWx0ZXJSZXN1bHRcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBvcHRpb25MYWJlbD1cInRleHRcIiBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgKG9uQ2hhbmdlKT1cIm9uU2VsZWN0KCRldmVudCxxdWVzdGlvbi5uYW1lKVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgKG9uQ2xpY2spPVwiZmlsdGVyVmFsdWUoJGV2ZW50LHF1ZXN0aW9uKVwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIlxyXG4gICAgICAgICAgW2FyaWFMYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPjwvYXBwLWRyb3Bkb3duPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOjNweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidyYWRpb2dyb3VwJ1wiPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPiAgICAgICAgXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hhcmVkLXJvd1wiICpuZ0lmPVwicXVlc3Rpb24ubmFtZSAmJiBxdWVzdGlvbi5uYW1lIT0ndmVyaWZpY2F0aW9uJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInF1ZXN0aW9uLmNob2ljZXNcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIChvbk9wdGlvbkNsaWNrKT1cIm9uUmFkaW9PcHRpb25DbGljaygkZXZlbnQscXVlc3Rpb24pXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiID5cclxuICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5uYW1lICYmIHF1ZXN0aW9uLm5hbWU9PT0ndmVyaWZpY2F0aW9uJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gW29wdGlvbnNdPVwicXVlc3Rpb24uY2hvaWNlc1wiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCIgKG9uT3B0aW9uQ2xpY2spPVwiZ2VuZXJhdGVPdHBGb3JOZXdVc2VyQ3JlYXRpb24oJGV2ZW50LGZvcm0pXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxhcHAtbWZhMiAqbmdJZj1cImlzT3RwTW9kYWxFbmFibGVkXCIgW2Rpc3BsYXldPVwiaXNPdHBNb2RhbEVuYWJsZWRcIiBbcmV0dXJuaW5nVXNlcl09XCJpc1JldHVybmluZ1VzZXJcIiBbKGZvcm0pXT1cImZvcm1cIiAoc3VjY2Vzcyk9XCJlbmFibGVGaWVsZHMoKVwiPjwvYXBwLW1mYTI+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOjNweFwiPlxyXG4gICAgICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8cC1pbnB1dE51bWJlciBmb3JtQ29udHJvbE5hbWU9XCJ7e3F1ZXN0aW9uLm5hbWV9fVwiIG1vZGU9XCJkZWNpbWFsXCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFt1c2VHcm91cGluZ109XCJmYWxzZVwiXHJcbiAgICAgICAgICBbbWluXT1cIm1pblZhbHVlXCIgW21heF09XCJtYXhWYWx1ZVwiXHJcbiAgICAgICAgICBbc2l6ZV09XCJxdWVzdGlvbi5zaXplID8gcXVlc3Rpb24uc2l6ZSA6IG51bGxcIiBbbWF4bGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aCA/IHF1ZXN0aW9uLm1heExlbmd0aCA6IG51bGxcIiBbYXJpYUxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6M3B4XCI+XHJcbiAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGVjaW1hbCdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGZvcm1Db250cm9sTmFtZT1cInt7cXVlc3Rpb24ubmFtZX19XCIgbW9kZT1cImRlY2ltYWxcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCIgW3VzZUdyb3VwaW5nXT1cImZhbHNlXCIgXHJcbiAgICAgICAgICBbbWluRnJhY3Rpb25EaWdpdHNdPVwiMlwiIFttYXhGcmFjdGlvbkRpZ2l0c109XCIyXCIgW21pbl09XCJtaW5WYWx1ZVwiIFxyXG4gICAgICAgICAgW21heF09XCJtYXhWYWx1ZVwiIFtzaXplXT1cInF1ZXN0aW9uLnNpemUgPyBxdWVzdGlvbi5zaXplIDogbnVsbFwiICBbbWF4bGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aCA/IHF1ZXN0aW9uLm1heExlbmd0aCA6IG51bGxcIiBbYXJpYUxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6M3B4XCI+XHJcbiAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY3VycmVuY3knXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8cC1pbnB1dE51bWJlciBmb3JtQ29udHJvbE5hbWU9XCJ7e3F1ZXN0aW9uLm5hbWV9fVwiIG1vZGU9XCJjdXJyZW5jeVwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbdXNlR3JvdXBpbmddPVwiZmFsc2VcIiBcclxuICAgICAgICAgIFttaW5GcmFjdGlvbkRpZ2l0c109XCIyXCIgW21heEZyYWN0aW9uRGlnaXRzXT1cIjJcIiBjdXJyZW5jeT1cIlVTRFwiIFttaW5dPVwibWluVmFsdWVcIiBcclxuICAgICAgICAgIFttYXhdPVwibWF4VmFsdWVcIiBbc2l6ZV09XCJxdWVzdGlvbi5zaXplID8gcXVlc3Rpb24uc2l6ZSA6IG51bGxcIiAgW21heGxlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGggPyBxdWVzdGlvbi5tYXhMZW5ndGggOiBudWxsXCIgXHJcbiAgICAgICAgICBbYXJpYUxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiPjwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj5cclxuICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidjaGVja2JveCdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIiBjbGFzcz1cImZvcm1ncm91cC1pbmxpbmVcIj5cclxuICAgICAgICAgICAgPHAtY2hlY2tib3ggW25hbWVdPVwicXVlc3Rpb24ubmFtZSArICctZ3JvdXAnXCIgW3ZhbHVlXT1cImNob2ljZS52YWx1ZVwiIFxyXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJjaG9pY2UudGV4dFwiICpuZ0Zvcj1cImxldCBjaG9pY2Ugb2YgcXVlc3Rpb24uY2hvaWNlc1wiIFtmb3JtQ29udHJvbF09XCJmb3JtLmNvbnRyb2xzW3F1ZXN0aW9uLm5hbWVdXCJcclxuICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwiYXBwLXAtY2hlY2tib3hcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lICsgJy0nICsgY2hvaWNlLnZhbHVlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPjwvcC1jaGVja2JveD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj5cclxuICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbXVsdGljaGVja2JveCdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgICAgPHAtY2hlY2tib3ggW25hbWVdPVwicXVlc3Rpb24ubmFtZSArICctZ3JvdXAnXCIgW3ZhbHVlXT1cImNob2ljZS52YWx1ZVwiIFxyXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJjaG9pY2UudGV4dFwiICpuZ0Zvcj1cImxldCBjaG9pY2Ugb2YgcXVlc3Rpb24uY2hvaWNlc1wiIFtmb3JtQ29udHJvbF09XCJmb3JtLmNvbnRyb2xzW3F1ZXN0aW9uLm5hbWVdXCJcclxuICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwiYXBwLXAtY2hlY2tib3hcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lICsgJy0nICsgY2hvaWNlLnZhbHVlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPjwvcC1jaGVja2JveD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj5cclxuICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc2luZ2xlc2VsZWN0Y2hlY2tib3gnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInF1ZXN0aW9uLmNob2ljZXNcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbbXVsdGlwbGVdPWZhbHNlXHJcbiAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj5cclxuICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc2ltcGxlY2hlY2tib3gnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkLWNoZWNrYm94XCI+XHJcbiAgICAgICAgICA8cC1jaGVja2JveCBiaW5hcnk9XCJ0cnVlXCIgaW5wdXRJZD1cImJpbmFyeVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj48L3AtY2hlY2tib3g+XHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwiYmluYXJ5XCI+e3txdWVzdGlvbi50aXRsZX19PC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDogM3B4XCI+XHJcbiAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2Rpc3BsYXl0ZXh0YXNsYWJlbCdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8bGFiZWw+e3tnZXRUZXh0KGZvcm0uY29udHJvbHNbcXVlc3Rpb24ubmFtZV0udmFsdWUpfX08L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiLz5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogMnB4XCI+XHJcbiAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xhYmVsJ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxsYWJlbD57e3F1ZXN0aW9uLnRpdGxlfX08L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAycHhcIj5cclxuICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xhYmVsLXdpdGgtb3ZlcmxheSdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbZGlzcGxheVRleHRdPVwicXVlc3Rpb24udGl0bGVcIiAgW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIiBbZGlzcGxheUFzTGFiZWxdPVwidHJ1ZVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidsYWJlbC13aXRoLWxpbmsnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW2Rpc3BsYXlUZXh0XT1cInF1ZXN0aW9uLnRpdGxlXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIiBbbGFiZWxXaXRoTGlua109XCJ0cnVlXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xhYmVsLXdpdGgtcG9wdXAnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW2Rpc3BsYXlUZXh0XT1cInF1ZXN0aW9uLnRpdGxlXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2xhYmVsV2l0aFBvcHVwXT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIiBbbGFiZWxXaXRoTGlua109XCJ0cnVlXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgXHJcbiAgICA8bmctY29udGFpbmVyIGNsYXNzPVwicmVzcG9uc2l2ZVwiICpuZ1N3aXRjaENhc2U9XCIncGFuZWwnXCI+XHJcbiAgICAgIDxpb24tcm93PlxyXG4gICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2YgcXVlc3Rpb24uZWxlbWVudHNcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCAqbmdJZj1cImVsZW1lbnQuY29sRWxlbWVudD09PSdDT0wxJyAmJiB2aXNpYmxlSWYoZWxlbWVudC52aXNpYmxlSWYsZWxlbWVudC5uYW1lKVwiXHJcbiAgICAgICAgICAgICAgICBbc2l6ZVhsXT1cImVsZW1lbnQuc2l6ZVhMXCIgW3NpemVMZ109XCJlbGVtZW50LnNpemVMR1wiIFtzaXplTWRdPVwiZWxlbWVudC5zaXplTURcIlxyXG4gICAgICAgICAgICAgICAgW29mZnNldE1kXT1cImVsZW1lbnQub2ZmU2V0TURcIiBjbGFzcz1cImNvbC1maXQtY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1xdWVzdGlvbiBbcXVlc3Rpb25dPVwiZWxlbWVudFwiIFtmb3JtXT1cImZvcm1cIiBbZm9yU2NyZWVuUXVlc3Rpb25uYWlyZV09XCJmb3JTY3JlZW5RdWVzdGlvbm5haXJlXCI+XHJcbiAgICAgICAgICAgICAgICA8L2FwcC1xdWVzdGlvbj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIHF1ZXN0aW9uLmVsZW1lbnRzXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgKm5nSWY9XCJlbGVtZW50LmNvbEVsZW1lbnQ9PT0nQ09MMicgJiYgdmlzaWJsZUlmKGVsZW1lbnQudmlzaWJsZUlmLGVsZW1lbnQubmFtZSlcIlxyXG4gICAgICAgICAgICAgICAgW3NpemVYbF09XCJlbGVtZW50LnNpemVYTFwiIFtzaXplTGddPVwiZWxlbWVudC5zaXplTEdcIiBbc2l6ZU1kXT1cImVsZW1lbnQuc2l6ZU1EXCJcclxuICAgICAgICAgICAgICAgIFtvZmZzZXRNZF09XCJlbGVtZW50Lm9mZlNldE1EXCI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLXF1ZXN0aW9uIFtxdWVzdGlvbl09XCJlbGVtZW50XCIgW2Zvcm1dPVwiZm9ybVwiIFtmb3JTY3JlZW5RdWVzdGlvbm5haXJlXT1cImZvclNjcmVlblF1ZXN0aW9ubmFpcmVcIj5cclxuICAgICAgICAgICAgICAgIDwvYXBwLXF1ZXN0aW9uPlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICA8L2lvbi1yb3c+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIiAqbmdJZj1cInF1ZXN0aW9uLnR5cGUhPSdwYW5lbCdcIj5cclxuICAgIDxzbWFsbCBjbGFzcz1cInAtZXJyb3JcIiAqbmdJZj1cImlzVmFsaWQhPScnXCIgW0Byb3dFeHBhbnNpb25UcmlnZ2VyXT1cIidhY3RpdmUnXCI+e3tpc1ZhbGlkIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW19fTwvc21hbGw+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
2245
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DynamicFormQuestionComponent, { className: "DynamicFormQuestionComponent", filePath: "lib\\components\\questionnaire\\dynamic-form-question.component.ts", lineNumber: 68 }); })();
2246
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXF1ZXN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbm5haXJlL2R5bmFtaWMtZm9ybS1xdWVzdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb25uYWlyZS9keW5hbWljLWZvcm0tcXVlc3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVFwSSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFVN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNibkQsc0NBQWtIO0lBQW5CLGdOQUFTLGVBQUEsZ0JBQVEsQ0FBQSxJQUFDO0lBQy9HLFlBQ0Y7SUFBQSxpQkFBYTs7O0lBRFgsZUFDRjtJQURFLDJEQUNGOzs7O0lBRUEsc0NBQWlIO0lBQW5CLGdOQUFTLGVBQUEsZ0JBQVEsQ0FBQSxJQUFDO0lBQzlHLFlBQ0Y7SUFBQSxpQkFBYTs7O0lBRFgsZUFDRjtJQURFLDREQUNGOzs7SUFOQSxxSEFFYSx3R0FBQTs7O0lBRmMsaURBQXdCO0lBSXhCLGVBQXlCO0lBQXpCLGtEQUF5Qjs7Ozs7O0lBYnhELG1DQUV1STtJQUZyRyw0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M0NWLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExpbmtDb21wb25lbnQgfSBmcm9tICcuLy4uL2xpbmsvbGluay5jb21wb25lbnQnO1xuaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBOZ0Zvcm0sIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmF2Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEVsZW1lbnRzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9FbGVtZW50c01vZGVsJztcbmltcG9ydCB7IEtleVZhbHVlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9LZXlWYWx1ZU1vZGVsJztcbmltcG9ydCB7IFNlcnZpY2VBY3Rpb25SZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvU2VydmljZUFjdGlvblJlc3BvbnNlTW9kZWwnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvVmFsaWRhdGlvbk1vZGVsJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9xdWVzdGlvbm5haXJlL3ZhbGlkYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcbmltcG9ydCB7IENob2ljZXMsIFF1ZXN0aW9uQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuL3F1ZXN0aW9uLWNvbnRyb2wuc2VydmljZSc7XG5pbXBvcnQgeyBRdWVzdGlvblNlcnZpY2UgfSBmcm9tICcuL3F1ZXN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9hZGVyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9Mb2FkZXJNb2RlbCc7XG5pbXBvcnQgeyBBZGRyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi4vYWRkcmVzcy9hZGRyZXNzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYW5rRGV0YWlsc0NvbXBvbmVudCB9IGZyb20gJy4uL2JhbmstZGV0YWlscy9iYW5rLWRldGFpbHMuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcGxveWVyRGV0YWlsU2VhcmNoUmVzdWx0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQnO1xuaW1wb3J0IHsgcm93RXhwYW5zaW9uVHJpZ2dlciB9IGZyb20gJy4uLy4uL2FubmltYXRpb25zL2FwcC1hbmltYXRpb25zJztcbmltcG9ydCB7IFdlZWtseUNlcnRFbXBsb3llckdyaWRDb21wb25lbnQgfSBmcm9tICcuLi93ZWVrbHktY2VydC1lbXBsb3llci1ncmlkL3dlZWtseS1jZXJ0LWVtcGxveWVyLWdyaWQuY29tcG9uZW50JztcbmltcG9ydCB7IEpvYlRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vam9iLXRpdGxlL2pvYi10aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGliQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0xpYkNvbnN0YW50cyc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWRkcmVzc1ZhbGlkYXRpb25SZXF1ZXN0Q29tcG9uZW50TW9kZWwgYXMgQWRkclJlcX0gZnJvbSAnLi4vLi4vbW9kZWxzL2FkZHJlc3NWYWxpZGF0aW9uL0FkZHJlc3NWYWxpZGF0aW9uUmVxdWVzdENvbXBvbmVudE1vZGVsJztcbmltcG9ydCB7IEFkZHJlc3NWYWxpZGF0aW9uUmVzcG9uc2VDb21wb25lbnRNb2RlbCBhcyBBZGRyUmVzfSBmcm9tICcuLi8uLi9tb2RlbHMvYWRkcmVzc1ZhbGlkYXRpb24vQWRkcmVzc1ZhbGlkYXRpb25SZXNwb25zZUNvbXBvbmVudE1vZGVsJztcbmltcG9ydCB7IEFkZHJlc3NSZWNvbW1lbmRhdGlvbk1vZGVsIGFzIEFkZHJSZWN9IGZyb20gJy4uLy4uL21vZGVscy9hZGRyZXNzVmFsaWRhdGlvbi9BZGRyZXNzUmVjb21tZW5kYXRpb25Nb2RlbCc7XG5pbXBvcnQgeyBBZGRyZXNzVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hZGRyZXNzLXZhbGlkYXRpb24tc2VydmljZS9hZGRyZXNzLXZhbGlkYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBBZGRyZXNzUG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi9hZGRyZXNzLXBvcHVwL2FkZHJlc3MtcG9wdXAuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGFsQ29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcblxuaW50ZXJmYWNlIFZhbHVlQ2hhbmdlQ29tcG9uZW50TW9kZWwge1xuICBvcmlnaW5hbFZhbHVlQ29udHJvbDogc3RyaW5nO1xuICBmb3JtQ29udHJvbFRvVXBkYXRlOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBFbXBsb3llckFkZHJlc3NVcGRhdGVNb2RlbCB7XG4gIGFkZHJlc3NGb3JtQ29udHJvbE5hbWU6IHN0cmluZztcbiAgZW1wbG95ZXJJZEZvcm1Db250cm9sTmFtZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgTWluTWF4RGF0ZU1vZGVsIHtcbiAgbWluRGF0ZUtleTogc3RyaW5nO1xuICBtYXhEYXRlS2V5OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBNaW5NYXhWYWx1ZU1vZGVsIHtcbiAgbWluVmFsdWU6IHN0cmluZztcbiAgbWF4VmFsdWU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIExpbmtDb21wb25lbnRNb2RlbCB7XG4gIHVyaTogc3RyaW5nO1xuICBleHRlcm5hbFVybDogc3RyaW5nO1xuICB0ZXh0OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1xdWVzdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWZvcm0tcXVlc3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtcIi4vZHluYW1pYy1mb3JtLXF1ZXN0aW9uLmNvbXBvbmVudC5zY3NzXCJdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gIGFuaW1hdGlvbnM6IFtyb3dFeHBhbnNpb25UcmlnZ2VyXVxufSlcblxuZXhwb3J0IGNsYXNzIER5bmFtaWNGb3JtUXVlc3Rpb25Db21wb25lbnQge1xuICBASW5wdXQoKSBxdWVzdGlvbjogRWxlbWVudHNNb2RlbDtcbiAgQElucHV0KCkgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgQElucHV0KCkgaW5kZXhOdW1iZXI6IG51bWJlcjtcbiAgQElucHV0KCkgZm9yU2NyZWVuUXVlc3Rpb25uYWlyZTogYm9vbGVhbjtcbiAgQElucHV0KCkgZHluYW1pY1BhcmFtOiBhbnk7XG4gIEBJbnB1dCgpIHBvdGVudGlhbElzc3VlSWQ6IG51bWJlcjtcbiAgQElucHV0KCkgcXVlc3Rpb25haXJlRm9ybTtcbiAgQE91dHB1dCgpIG9uRHluYW1pY1BhcmFtVXBkYXRlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgaXNOZXdQYXNzd29yZFBvbGljeUVuYWJsZWQgPSBMaWJDb25zdGFudHMuaXNOZXdQYXNzd29yZFBvbGljeUVuYWJsZWQgPT0gJ3RydWUnO1xuICBwdWJsaWMgaXNOZXdQYXNzd29yZFBvbGljeUVuYWJsZWRGb3JDbGFpbWFudCA9IExpYkNvbnN0YW50cy5pc05ld1Bhc3N3b3JkUG9saWN5RW5hYmxlZEZvckNsYWltYW50ID09ICd0cnVlJztcbiAgcHVibGljIGlzTmV3UGFzc3dvcmRQb2xpY3lFbmFibGVkRm9yRW1wbG95ZXIgPSBMaWJDb25zdGFudHMuaXNOZXdQYXNzd29yZFBvbGljeUVuYWJsZWRGb3JFbXBsb3llciA9PSAndHJ1ZSc7XG4gIHB1YmxpYyBpc1NhbWVTeW1ib2xQb2xpY3lGb3JDbGFpbWFudEFuZEFnZW5jeSA9IExpYkNvbnN0YW50cy5pc1NhbWVTeW1ib2xQb2xpY3lGb3JDbGFpbWFudEFuZEFnZW5jeSA9PSAndHJ1ZSc7XG4gIHB1YmxpYyBpc0FkZHJlc3NWYWxpZGF0aW9uRW5hYmxlZCA9IExpYkNvbnN0YW50cy5pc0FkZHJlc3NWYWxpZGF0aW9uRW5hYmxlZCA9PSAndHJ1ZSc7XG4gIFxuICBmaWx0ZXJSZXN1bHQ6IGFueVtdO1xuICBtaW5EYXRlOiBEYXRlO1xuICBsZWdhbEFjY2VwdGVkOiBib29sZWFuID0gbnVsbDtcbiAgT3RwQ29tcGxldGVkOiBib29sZWFuID0gbnVsbDtcbiAgbWF4RGF0ZTogRGF0ZTtcbiAgaW5kZXg6IG51bWJlciA9IDE7XG4gIHJldHVybk1vZGVsID0gbmV3IFZhbGlkYXRpb25Nb2RlbCgpO1xuICBkaXNwbGF5UG9zaXRpb246IGJvb2xlYW47XG4gIHBvc2l0aW9uOiBzdHJpbmc7XG4gIHBvcFVwSGVhZGVyOiBzdHJpbmc7XG4gIHBvcFVwVGV4dDogc3RyaW5nO1xuICBwb3BVcFllc0FjdGlvbkxhYmVsOiBzdHJpbmc7XG4gIHBvcFVwTm9BY3Rpb25MYWJlbDogc3RyaW5nO1xuICB0eXBlID0gJ3RleHQnO1xuICBzaG93TWluRGF0ZSA6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2hvd01heERhdGUgOiBib29sZWFuID0gZmFsc2U7XG4gIG1pblZhbHVlID0gbnVsbDtcbiAgbWF4VmFsdWUgPSBudWxsO1xuICB0ZCA9IG51bGw7XG4gIGFscFJuZCA9ICdYc1BqeFdsJ1xuICB2YXJuID0gMzcwNDM7XG4gIHN0YXR1c0NoYW5nZUxpc3RlbmVyQWRkZWQ6IGJvb2xlYW47XG4gIHNob3dBZGRyZXNzU3VnZ2VzdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ2JhbmtkdGxzJykgYmFua2R0bHM6IEJhbmtEZXRhaWxzQ29tcG9uZW50O1xuICBAVmlld0NoaWxkcmVuKCdhZGRyZXNzJykgYWRkcmVzc2VzOiBRdWVyeUxpc3Q8QWRkcmVzc0NvbXBvbmVudD47XG4gIEBWaWV3Q2hpbGQoJ3djRW1wbG95ZXJHcmlkJykgd2NFbXBsb3llckdyaWQ6IFdlZWtseUNlcnRFbXBsb3llckdyaWRDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2pvYlRpdGxlJykgam9iVGl0bGU6IEpvYlRpdGxlQ29tcG9uZW50O1xuXG4gIGxpbmtDb21wb25lbnREYXRhIDogTGlua0NvbXBvbmVudE1vZGVsO1xuICBcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHFjczogUXVlc3Rpb25Db250cm9sU2VydmljZSwgcHVibGljIHNlcnZpY2U6IFF1ZXN0aW9uU2VydmljZSwgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHVibGljIHZhbGlkYXRpb25TZXJ2aWNlOiBWYWxpZGF0aW9uU2VydmljZSwgcHVibGljIHV0aWw6IFV0aWxTZXJ2aWNlLCBwdWJsaWMgbmF2Q29udHJvbGxlcjogTmF2Q29udHJvbGxlciwgXG4gICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsIHB1YmxpYyBzYW5pdGl6ZXIgOiBEb21TYW5pdGl6ZXIsIHB1YmxpYyBsb2dpblNlcnZpY2U6IExvZ2luU2VydmljZSwgICAgcHJpdmF0ZSBhZGRyU3ZjICA6IEFkZHJlc3NWYWxpZGF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIG1vZGFsQ3RybDogTW9kYWxDb250cm9sbGVyKSB7XG5cbiAgfVxuXG5cbiAgdmlzaWJsZUlmKHN0ckV4cDogc3RyaW5nLCBlbGVtZW50TmFtZTogc3RyaW5nKSB7XG5cbiAgICBpZiAoIXN0ckV4cCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgbGV0IGlzVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGlmIChzdHJFeHAuaW5jbHVkZXMoJyYmJykpIHtcbiAgICAgIGxldCBleHByOiBzdHJpbmdbXSA9IHN0ckV4cC5zcGxpdCgnJiYnKTtcbiAgICAgIGlzVmlzaWJsZSA9IHRoaXMuY2FsY3VsYXRlT3BlcmFuZFZhbHVlKGV4cHJbMF0pICYmIHRoaXMuY2FsY3VsYXRlT3BlcmFuZFZhbHVlKGV4cHJbMV0pXG4gICAgICBpZihleHByLmxlbmd0aCA+PSAzKXtcbiAgICAgICAgaXNWaXNpYmxlID0gaXNWaXNpYmxlICYmIHRoaXMuY2FsY3VsYXRlT3BlcmFuZFZhbHVlKGV4cHJbMl0pXG4gICAgICB9XG4gICAgICBpZihleHByLmxlbmd0aCA+PSA0KXtcbiAgICAgICAgaXNWaXNpYmxlID0gaXNWaXNpYmxlICYmIHRoaXMuY2FsY3VsYXRlT3BlcmFuZFZhbHVlKGV4cHJbM10pXG4gICAgICB9XG4gICAgICBpZihleHByLmxlbmd0aCA9PSA1KXtcbiAgICAgICAgaXNWaXNpYmxlID0gaXNWaXNpYmxlICYmIHRoaXMuY2FsY3VsYXRlT3BlcmFuZFZhbHVlKGV4cHJbNF0pXG4gICAgICB9XG4gICAgICBpZihleHByLmxlbmd0aCA+IDUpe1xuICAgICAgICAgIHRocm93IFwiQXBwVmFsaWRhdG9ycyA6IE1vcmUgdGhhbiA1ICcmJicgZXhwcmVzc2lvbnMgYXJlIG5vdCBzdXBwb3J0ZWQuXCI7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChzdHJFeHAuaW5jbHVkZXMoJ3x8JykpIHtcbiAgICAgIGxldCBleHByOiBzdHJpbmdbXSA9IHN0ckV4cC5zcGxpdCgnfHwnKTtcbiAgICAgIGlzVmlzaWJsZSA9IHRoaXMuY2FsY3VsYXRlT3BlcmFuZFZhbHVlKGV4cHJbMF0pIHx8IHRoaXMuY2FsY3VsYXRlT3BlcmFuZFZhbHVlKGV4cHJbMV0pXG4gICAgICBpZihleHByLmxlbmd0aCA+PSAzKXtcbiAgICAgICAgaXNWaXNpYmxlID0gaXNWaXNpYmxlIHx8IHRoaXMuY2FsY3VsYXRlT3BlcmFuZFZhbHVlKGV4cHJbMl0pXG4gICAgICB9XG4gICAgICBpZihleHByLmxlbmd0aCA+PSA0KXtcbiAgICAgICAgaXNWaXNpYmxlID0gaXNWaXNpYmxlIHx8IHRoaXMuY2FsY3VsYXRlT3BlcmFuZFZhbHVlKGV4cHJbM10pXG4gICAgICB9XG4gICAgICBpZihleHByLmxlbmd0aCA9PSA1KXtcbiAgICAgICAgaXNWaXNpYmxlID0gaXNWaXNpYmxlIHx8IHRoaXMuY2FsY3VsYXRlT3BlcmFuZFZhbHVlKGV4cHJbNF0pXG4gICAgICB9XG4gICAgICBpZihleHByLmxlbmd0aCA+IDUpe1xuICAgICAgICAgIHRocm93IFwiQXBwVmFsaWRhdG9ycyA6IE1vcmUgdGhhbiA1ICd8fCcgZXhwcmVzc2lvbnMgYXJlIG5vdCBzdXBwb3J0ZWQuXCI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgcmV0dXJuIGlzVmlzaWJsZTtcbiAgICB9XG5cbiAgICB0aGlzLnNldEZvcm1Db250cm9sVmFsdWUoZWxlbWVudE5hbWUsIG51bGwpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNhbGN1bGF0ZU9wZXJhbmRWYWx1ZShzdHJFeHA6IHN0cmluZykge1xuICAgIHZhciBzcGxpdEFycmF5OiBzdHJpbmdbXTtcbiAgICBsZXQgaXNEb2VzTm90RXF1YWw6IGJvb2xlYW47XG4gICAgbGV0IGluZGV4OiBudW1iZXIgPSBzdHJFeHAuaW5kZXhPZignIT0nKTtcbiAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICBzcGxpdEFycmF5ID0gc3RyRXhwLnNwbGl0KCc9PScpO1xuICAgICAgaXNEb2VzTm90RXF1YWwgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3BsaXRBcnJheSA9IHN0ckV4cC5zcGxpdCgnIT0nKTtcbiAgICAgIGlzRG9lc05vdEVxdWFsID0gdHJ1ZTtcbiAgICB9XG4gICAgbGV0IG9wZXJhbmQxOiBzdHJpbmcgPSBzcGxpdEFycmF5WzBdO1xuICAgIGxldCBvcGVyYW5kMjogc3RyaW5nID0gc3BsaXRBcnJheVsxXTtcbiAgICBvcGVyYW5kMSA9IG9wZXJhbmQxLnJlcGxhY2UoJ3snLCAnJykucmVwbGFjZSgnfScsICcnKS50cmltKCk7IC8vY2xhaW1hbnRQcmlvclBheTEwMiBkaWZmbWFpbGFkZHJlc3MzMTVcbiAgICBvcGVyYW5kMiA9IG9wZXJhbmQyLnJlcGxhY2UoJ3snLCAnJykucmVwbGFjZSgnfScsICcnKS50cmltKCk7IC8vbnVsbCBcbiAgICBpZiAodGhpcy5mb3JtLmNvbnRyb2xzW29wZXJhbmQxXSkge1xuICAgICAgdmFyIHZhbHVlT2ZDbnJ0cmxUb0NoZWNrO1xuXG4gICAgICBpZiAodGhpcy5mb3JtLmNvbnRyb2xzW29wZXJhbmQxXS52YWx1ZSAmJiB0eXBlb2YgKHRoaXMuZm9ybS5jb250cm9sc1tvcGVyYW5kMV0pLnZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICB2YWx1ZU9mQ25ydHJsVG9DaGVjayA9IHRoaXMuZm9ybS5jb250cm9sc1tvcGVyYW5kMV0udmFsdWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmZvcm0uY29udHJvbHNbb3BlcmFuZDFdLnZhbHVlICYmIHR5cGVvZiAodGhpcy5mb3JtLmNvbnRyb2xzW29wZXJhbmQxXSkudmFsdWUgIT0gJ3N0cmluZycpIHtcbiAgICAgICAgdmFsdWVPZkNucnRybFRvQ2hlY2sgPSB0aGlzLmZvcm0uY29udHJvbHNbb3BlcmFuZDFdLnZhbHVlWyd2YWx1ZSddO1xuICAgICAgfVxuXG4gICAgICBpZiAob3BlcmFuZDIgPT09ICdudWxsJyAmJiBpc0RvZXNOb3RFcXVhbCAmJiB2YWx1ZU9mQ25ydHJsVG9DaGVjaykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChvcGVyYW5kMiA9PT0gJ251bGwnICYmICFpc0RvZXNOb3RFcXVhbCAmJiAhdmFsdWVPZkNucnRybFRvQ2hlY2spIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBvcGVyYW5kMiA9IG9wZXJhbmQyLnJlcGxhY2UoJ1xcJycsICcnKS5yZXBsYWNlKCdcXCcnLCAnJykudHJpbSgpOyAvL251bGxcblxuICAgICAgaWYgKG9wZXJhbmQyICE9ICdudWxsJyAmJiAhaXNEb2VzTm90RXF1YWwgJiYgKHZhbHVlT2ZDbnJ0cmxUb0NoZWNrID09PSBvcGVyYW5kMikpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChvcGVyYW5kMiAhPSAnbnVsbCcgJiYgaXNEb2VzTm90RXF1YWwgJiYgKHZhbHVlT2ZDbnJ0cmxUb0NoZWNrICE9IG9wZXJhbmQyKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZmlsdGVyUmVzdWx0ID0gdGhpcy5xdWVzdGlvbi5jaG9pY2VzO1xuICAgIHRoaXMuc2V0TWluTWF4RGF0ZSgpO1xuICAgIHRoaXMuc2V0TWluTWF4VmFsdWUoKTtcbiAgICB0aGlzLnNldERlZmF1bHRWYWx1ZSgpO1xuICAgIHRoaXMuc2V0TGlua0NvbXBvbmVudERhdGEoKTtcbiAgfVxuXG4gIHNldExpbmtDb21wb25lbnREYXRhKCkge1xuICAgIGlmKHRoaXMucXVlc3Rpb24uY29tcG9uZW50TmFtZSA9PSAnYXBwLWxpbmsnKXtcbiAgICAgIHRoaXMubGlua0NvbXBvbmVudERhdGEgPSB0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGEgPyBKU09OLnBhcnNlKHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YSkgOiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHNob3dMYWJlbEZvckN1c3RvbUNvbXBvbmVudCgpIHtcbiAgICBsZXQgcGFyc2VkRGF0YSA9IHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YSA/IEpTT04ucGFyc2UodGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhKSA6IG51bGw7XG4gICAgcmV0dXJuIHBhcnNlZERhdGE/LnNob3dMYWJlbCA9PSAnWSc7XG4gIH1cblxuICBzZXRNaW5NYXhWYWx1ZSgpIHtcbiAgICAgaWYgKHRoaXMucXVlc3Rpb24udHlwZSA9PT0gJ251bWJlcicgfHwgdGhpcy5xdWVzdGlvbi50eXBlID09PSAnZGVjaW1hbCcgfHwgdGhpcy5xdWVzdGlvbi50eXBlID09PSAnY3VycmVuY3knKSB7XG4gICAgICBsZXQgbWluTWF4TW9kZWwgOiBNaW5NYXhWYWx1ZU1vZGVsID0gdGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhID8gSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGEpIDogbnVsbDtcbiAgICAgIGlmKG1pbk1heE1vZGVsKXtcbiAgICAgICAgaWYobWluTWF4TW9kZWwubWluVmFsdWUpe1xuICAgICAgICAgIHRoaXMubWluVmFsdWUgPSBtaW5NYXhNb2RlbC5taW5WYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZihtaW5NYXhNb2RlbC5tYXhWYWx1ZSl7XG4gICAgICAgICAgdGhpcy5tYXhWYWx1ZSA9IG1pbk1heE1vZGVsLm1heFZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgIH1cbiAgfVxuXG4gIHNldE1pbk1heERhdGUoKSB7XG4gICAgaWYgKHRoaXMucXVlc3Rpb24uaW5wdXRUeXBlID09PSAnZGF0ZScpIHtcbiAgICAgIGxldCBtaW5NYXhNb2RlbCA6IE1pbk1heERhdGVNb2RlbCA9IHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YSA/IEpTT04ucGFyc2UodGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhKSA6IG51bGw7XG4gICAgICBpZihtaW5NYXhNb2RlbCAmJiAobWluTWF4TW9kZWwubWF4RGF0ZUtleSB8fCBtaW5NYXhNb2RlbC5taW5EYXRlS2V5KSl7XG4gICAgICAgIGlmKHRoaXMuZHluYW1pY1BhcmFtW21pbk1heE1vZGVsLm1pbkRhdGVLZXldKXtcbiAgICAgICAgICB0aGlzLnBhcnNlRGF0ZSh0aGlzLmR5bmFtaWNQYXJhbVttaW5NYXhNb2RlbC5taW5EYXRlS2V5XSwgJ21pbicpO1xuICAgICAgICAgIHRoaXMuc2hvd01pbkRhdGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmKHRoaXMuZHluYW1pY1BhcmFtW21pbk1heE1vZGVsLm1heERhdGVLZXldKXtcbiAgICAgICAgICB0aGlzLnBhcnNlRGF0ZSh0aGlzLmR5bmFtaWNQYXJhbVttaW5NYXhNb2RlbC5tYXhEYXRlS2V5XSwgJ21heCcpO1xuICAgICAgICAgIHRoaXMuc2hvd01heERhdGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2V7XG4gICAgICAgIGlmICh0aGlzLnF1ZXN0aW9uLm1pbikge1xuICAgICAgICAgIHRoaXMucGFyc2VEYXRlKHRoaXMucXVlc3Rpb24ubWluLCAnbWluJylcbiAgICAgICAgICB0aGlzLnNob3dNaW5EYXRlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5xdWVzdGlvbi5tYXgpIHtcbiAgICAgICAgICB0aGlzLnBhcnNlRGF0ZSh0aGlzLnF1ZXN0aW9uLm1heCwgJ21heCcpXG4gICAgICAgICAgdGhpcy5zaG93TWF4RGF0ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcGFyc2VEYXRlKHN0ckRhdGU6IHN0cmluZywgdHlwZTogc3RyaW5nKTogRGF0ZSB7XG4gICAgaWYgKHN0ckRhdGUgJiYgdHlwZSA9PT0gJ21heCcpIHtcbiAgICAgIHZhciBzcGxpdEFycmF5ID0gc3RyRGF0ZS5zcGxpdCgnLScpO1xuICAgICAgdGhpcy5tYXhEYXRlID0gbmV3IERhdGUoKTtcbiAgICAgIHRoaXMubWF4RGF0ZS5zZXRNb250aChOdW1iZXIoc3BsaXRBcnJheVswXSkgLSAxKTtcbiAgICAgIHRoaXMubWF4RGF0ZS5zZXRGdWxsWWVhcihOdW1iZXIoc3BsaXRBcnJheVsyXSkpO1xuICAgICAgdGhpcy5tYXhEYXRlLnNldERhdGUoTnVtYmVyKHNwbGl0QXJyYXlbMV0pKTtcbiAgICAgIHJldHVybiB0aGlzLm1heERhdGU7XG4gICAgfVxuXG4gICAgaWYgKHN0ckRhdGUgJiYgdHlwZSA9PT0gJ21pbicpIHtcbiAgICAgIHZhciBzcGxpdEFycmF5ID0gc3RyRGF0ZS5zcGxpdCgnLScpO1xuICAgICAgdGhpcy5taW5EYXRlID0gbmV3IERhdGUoKTtcbiAgICAgIHRoaXMubWluRGF0ZS5zZXRNb250aChOdW1iZXIoc3BsaXRBcnJheVswXSkgLSAxKTtcbiAgICAgIHRoaXMubWluRGF0ZS5zZXRGdWxsWWVhcihOdW1iZXIoc3BsaXRBcnJheVsyXSkpO1xuICAgICAgdGhpcy5taW5EYXRlLnNldERhdGUoTnVtYmVyKHNwbGl0QXJyYXlbMV0pKTtcbiAgICAgIHJldHVybiB0aGlzLm1pbkRhdGU7XG4gICAgfVxuICB9XG5cblxuICBzZXRTdHlsZShpbmRlbnQ6IG51bWJlcik6IG9iamVjdCB7XG4gICAgLy9sZXQgcGFkZGluZyA9IGluZGVudCA8PSAxID8gJzAgcHgnIDogaW5kZW50ICogMCArICdweCc7XG4gICAgbGV0IHBhZGRpbmcgPSAnMCBweCc7XG4gICAgbGV0IHN0eWxlT2JqID0ge1xuICAgICAgJ3BhZGRpbmctbGVmdCc6IHBhZGRpbmdcbiAgICB9O1xuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oc3R5bGVPYmopO1xuICB9XG5cbiAgc2V0TWFyZ2luKG1hcmdpbjogbnVtYmVyKTogb2JqZWN0IHtcbiAgICBsZXQgbWFyID0gbWFyZ2luICsgJ3B4JztcbiAgICBsZXQgc3R5bGVPYmogPSB7XG4gICAgICAnbWFyZ2luLXJpZ2h0JzogbWFyXG4gICAgfTtcblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHN0eWxlT2JqKTtcbiAgfVxuXG4gIGdldCBpc1ZhbGlkKCkge1xuICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcIlwiO1xuICAgIGxldCBxdWVzdGlvblR5cGU6IHN0cmluZyA9IHRoaXMucXVlc3Rpb24udHlwZTtcbiAgICBpZiAoJ2h0bWwnID09PSBxdWVzdGlvblR5cGUgfHwgJ2xhYmVsJyA9PT0gcXVlc3Rpb25UeXBlIHx8ICdzaW1wbGVMYWJlbCcgPT09IHF1ZXN0aW9uVHlwZSB8fCAnZGlzcGxheXRleHRhc2xhYmVsJyA9PT0gcXVlc3Rpb25UeXBlIFxuICAgICAgICB8fCAoJ2J1dHRvbicgPT09IHF1ZXN0aW9uVHlwZSAmJiAhdGhpcy5xdWVzdGlvbi52YWxpZGF0b3JzICYmIHRoaXMucXVlc3Rpb24uY29tcG9uZW50TmFtZSAhPSAnYXBwLXNpZ24tc3NuJyAmJiB0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudE5hbWUgIT0gJ2FwcC1saW5rJykgXG4gICAgICAgIHx8ICdsYWJlbC13aXRoLW92ZXJsYXknID09PSBxdWVzdGlvblR5cGUpIHtcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ucmVxdWlyZWRcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fCB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcbiAgICAgIHJldHVybiB0aGlzLnF1ZXN0aW9uLnJlcXVpcmVkRXJyb3JUZXh0O1xuICAgIH1cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ubWF4bGVuZ3RoICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fCB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ2Vycm9ycz8ubWF4TGVuZ3RoJywgdGhpcy5xdWVzdGlvbilcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICBpZiAodGhpcy5xdWVzdGlvbi5kZXNjcmlwdGlvbikge1xuICAgICAgICByZXR1cm4gdGhpcy5xdWVzdGlvbi5kZXNjcmlwdGlvbjtcbiAgICAgIH1cbiAgICAgIGxldCB2YWxpZGF0b3JMaXN0ID0gdGhpcy5xdWVzdGlvbi52YWxpZGF0b3JzO1xuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XG4gICAgICB2YWxpZGF0b3JMaXN0LmZvckVhY2godmFsaWRhdG9yID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbGlkYXRvci50eXBlICcsIHZhbGlkYXRvci50eXBlKVxuICAgICAgICBpZiAoa2VlcEdvaW5nKSB7XG4gICAgICAgICAgaWYgKHZhbGlkYXRvci50eXBlID09PSAndGV4dCcgJiYgdmFsaWRhdG9yLm1heExlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbGlkYXRvci50ZXh0ICcsIHZhbGlkYXRvci50ZXh0KVxuICAgICAgICAgICAgbWVzc2FnZSA9IHZhbGlkYXRvci50ZXh0O1xuICAgICAgICAgICAga2VlcEdvaW5nID0gZmFsc2U7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBcIlwiO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnF1ZXN0aW9uICYmIHRoaXMucXVlc3Rpb24ubmFtZSAmJiB0aGlzLmZvcm0gJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5wYXR0ZXJuXG4gICAgICAmJiAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHwgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZCkpIHtcbiAgICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCdlcnJvcnM/LnBhdHRlcm4nLHRoaXMucXVlc3Rpb24pXG4gICAgICBsZXQgdmFsaWRhdG9yTGlzdCA9IHRoaXMucXVlc3Rpb24udmFsaWRhdG9ycztcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuXG4gICAgICB2YWxpZGF0b3JMaXN0LmZvckVhY2godmFsaWRhdG9yID0+IHtcbiAgICAgICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbGlkYXRvci50eXBlICcsIHZhbGlkYXRvci50eXBlKVxuICAgICAgICBpZiAoa2VlcEdvaW5nKSB7XG4gICAgICAgICAgaWYgKHZhbGlkYXRvci50eXBlID09PSAncmVnZXgnKSB7XG4gICAgICAgICAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygndmFsaWRhdG9yLnRleHQgJywgdmFsaWRhdG9yLnRleHQpXG4gICAgICAgICAgICBtZXNzYWdlID0gdmFsaWRhdG9yLnRleHQ7XG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICAgICAga2VlcEdvaW5nID0gZmFsc2U7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBcIlwiO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuXG4gICAgfVxuICAgIGlmICh0aGlzLnF1ZXN0aW9uICYmIHRoaXMucXVlc3Rpb24ubmFtZSAmJiB0aGlzLmZvcm0gJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5kYXRlQ29tcGFyaXNpb25cbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fCB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgbGV0IHZhbGlkYXRvckxpc3QgPSB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRvcnM7XG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcIlwiO1xuICAgICAgdmFsaWRhdG9yTGlzdC5mb3JFYWNoKHZhbGlkYXRvciA9PiB7XG4gICAgICAgIGlmIChrZWVwR29pbmcpIHtcbiAgICAgICAgICAvLyAgIHRoaXMubG9nZ2VyLmRlYnVnKCd2YWxpZGF0b3IudHlwZS5taW5sZW5ndGggJywgdmFsaWRhdG9yLnR5cGUpXG4gICAgICAgICAgaWYgKHZhbGlkYXRvci50eXBlID09PSAnZXhwcmVzc2lvbicpIHtcbiAgICAgICAgICAgIC8vICB0aGlzLmxvZ2dlci5kZWJ1ZygndmFsaWRhdG9yLnRleHQgJywgdmFsaWRhdG9yLnRleHQpXG4gICAgICAgICAgICBtZXNzYWdlID0gdmFsaWRhdG9yLnRleHQ7XG4gICAgICAgICAgICBrZWVwR29pbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbWVzc2FnZSA9IFwiXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/Lm1pbmxlbmd0aFxuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8IHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICBsZXQgdmFsaWRhdG9yTGlzdCA9IHRoaXMucXVlc3Rpb24udmFsaWRhdG9ycztcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFwiXCI7XG4gICAgICB2YWxpZGF0b3JMaXN0LmZvckVhY2godmFsaWRhdG9yID0+IHtcbiAgICAgICAgaWYgKGtlZXBHb2luZykge1xuICAgICAgICAgIC8vdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbGlkYXRvci50eXBlLm1pbmxlbmd0aCAnLCB2YWxpZGF0b3IudHlwZSlcbiAgICAgICAgICBpZiAodmFsaWRhdG9yLnR5cGUgPT09ICd0ZXh0Jykge1xuICAgICAgICAgICAgLy90aGlzLmxvZ2dlci5kZWJ1ZygndmFsaWRhdG9yLnRleHQgJywgdmFsaWRhdG9yLnRleHQpXG4gICAgICAgICAgICBtZXNzYWdlID0gdmFsaWRhdG9yLnRleHQ7XG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICAgICAga2VlcEdvaW5nID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbWVzc2FnZSA9IFwiXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG5cbiAgICB9XG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ucGFzc3dvcmRDb21wYXJpc2lvblxuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8IHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICBsZXQgdmFsaWRhdG9yTGlzdCA9IHRoaXMucXVlc3Rpb24udmFsaWRhdG9ycztcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFwiXCI7XG4gICAgICB2YWxpZGF0b3JMaXN0LmZvckVhY2godmFsaWRhdG9yID0+IHtcbiAgICAgICAgaWYgKGtlZXBHb2luZykge1xuICAgICAgICAgIC8vICAgdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbGlkYXRvci50eXBlLm1pbmxlbmd0aCAnLCB2YWxpZGF0b3IudHlwZSlcbiAgICAgICAgICBpZiAodmFsaWRhdG9yLnR5cGUgPT09ICdleHByZXNzaW9uJykge1xuICAgICAgICAgICAgLy8gIHRoaXMubG9nZ2VyLmRlYnVnKCd2YWxpZGF0b3IudGV4dCAnLCB2YWxpZGF0b3IudGV4dClcbiAgICAgICAgICAgIG1lc3NhZ2UgPSB2YWxpZGF0b3IudGV4dDtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgICBrZWVwR29pbmcgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBtZXNzYWdlID0gXCJcIjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ucmVxdWlyZWRJZlxuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8IHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIFwicmVxdWlyZWRcIjtcblxuICAgIH1cblxuXG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8uYnBFbXBsckZsYWdcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XG4gICAgICBpZih0aGlzLnV0aWwuaXNTdGF0ZSgnTVMnKSlcbiAgICAgIHtcbiAgICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFwiRW50ZXIgZGV0YWlscyBvciBkZWxldGUgZWFjaCBlbXBsb3llcihzKSB0byBjb250aW51ZVwiO1xuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgICAgfVxuICAgICAgZWxzZXtcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcIkNvbmZpcm0gb3IgRGVsZXRlIGVhY2ggZW1wbG95ZXIocykgdG8gY29udGludWVcIjtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LnNpbXBsZUNoZWNrQm94VmFsaWRhdGlvbkZsYWdcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fCB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XG4gICAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gXCJyZXF1aXJlZFwiO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnF1ZXN0aW9uICYmIHRoaXMucXVlc3Rpb24ubmFtZSAmJiB0aGlzLmZvcm0gJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5jcGF0Y2h2YWxpZGF0aW9uRmxhZ1xuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8IHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcInJlcXVpcmVkXCI7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LnVwbG9hZHZhbGlkYXRpb25GbGFnXG4gICAgICAmJiAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHwgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZCkpIHtcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFwicmVxdWlyZWRcIjtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8uYnBFbXBsckxlbmd0aEZsYWdcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fCB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XG4gICAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gXCJBZGQgcHJldmlvdXMgZW1wbG95bWVudCBkZXRhaWxzXCI7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuICAgIGlmICh0aGlzLnF1ZXN0aW9uICYmIHRoaXMucXVlc3Rpb24ubmFtZSAmJiB0aGlzLmZvcm0gJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5hZGRyZXNzVmFsaWRhdGlvbkZsYWdcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fCB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XG4gICAgICAvL2xldCBtZXNzYWdlOiBzdHJpbmcgPSBcIlBsZWFzZSBwcm92aWRlIHZhbGlkIGFkZHJlc3MuXCI7XG4gICAgICB0aGlzLmFkZHJlc3Nlcy5mb3JFYWNoKGFkZHJlc3MgPT4gYWRkcmVzcy5zdWJtaXQoKSk7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LmJhbmtEZXRhaWxzVmFsaWRhdGlvbkZsYWdcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fCB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XG4gICAgICAvL2xldCBtZXNzYWdlOiBzdHJpbmcgPSBcIlBsZWFzZSBwcm92aWRlIHZhbGlkIGJhbmsgZGV0YWlscy5cIjtcbiAgICAgIHRoaXMuYmFua2R0bHM/LnN1Ym1pdCgpO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnF1ZXN0aW9uICYmIHRoaXMucXVlc3Rpb24ubmFtZSAmJiB0aGlzLmZvcm0gJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5qb2JUaXRsZUZsYWdcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fCB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XG4gICAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gXCJyZXF1aXJlZFwiO1xuICAgICAgdGhpcy5qb2JUaXRsZT8uc3VibWl0KCk7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LndjRW1wbG95ZXJWYWxpZGF0aW9uXG4gICAgICAmJiAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZCkpIHtcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFwiVXBkYXRlIGVtcGxveWVyKHMpIHRvIGNvbnRpbnVlXCI7XG4gICAgICB0aGlzLndjRW1wbG95ZXJHcmlkPy5zdWJtaXQoKTtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ud2NFbXBsb3llclJlcXVpcmVkXG4gICAgICAmJiAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZCkpIHtcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFwiQWRkIGVtcGxveWVyIGRldGFpbHNcIjtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ud2NSZXF1aXJlZFxuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5ICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcInJlcXVpcmVkXCI7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LndjUGFydGlhbENsYWltRW1wbG95bWVudFxuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5ICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBudWxsO1xuICAgICAgaWYodGhpcy5sb2dpblNlcnZpY2UuaXNDc3IoKSl7XG4gICAgICAgIG1lc3NhZ2UgPSBcIlZlcmlmeSBlbXBsb3ltZW50LiBUaGUgbGFzdCBkYXkgd29ya2VkIG9uIHRoZSBhcHBsaWNhdGlvbiBpcyBkdXJpbmcgdGhlIHdlZWsgb3IgZW1wbG95bWVudCBkZXRhaWxzIHdlcmUgb24gdGhlIHByaW9yIHdlZWsuIElmIGNsYWltYW50IGRpZCBub3Qgd29yayBzZWxlY3QgTmV4dCB0byBjb250aW51ZS5cIjtcbiAgICAgIH0gZWxzZSBpZih0aGlzLmxvZ2luU2VydmljZS5pc0NsYWltYW50KCkpe1xuICAgICAgICBtZXNzYWdlID0gXCJEaWQgeW91IHdvcmsgZHVyaW5nIHRoZSB3ZWVrPyBJZiB5ZXMsIHByb3ZpZGUgeW91ciBlbXBsb3ltZW50IGRldGFpbHMuIElmIG5vLCBwbGVhc2UgY2FsbCB1cyBhdCA2MDEtNDkzLTk0MjcsIE1vbmRheSB0aHJvdWdoIEZyaWRheSBmcm9tIDg6MDAgQU0gdG8gNTowMCBQTSBmb3IgYXNzaXN0YW5jZS5cIjtcbiAgICAgIH1cbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ud2NEZXBlbmRlbnRSZXF1aXJlZFxuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5ICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcIkFkZCBkZXBlbmRlbnQgZGV0YWlsc1wiO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnF1ZXN0aW9uICYmIHRoaXMucXVlc3Rpb24ubmFtZSAmJiB0aGlzLmZvcm0gJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy53Y0VtcGxveWVyUGF5bWVudEluZm9SZXF1aXJlZFxuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5ICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcIkFkZCBlbXBsb3llciBwYXltZW50IGRldGFpbHNcIjtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ucmVtdW5lcmF0aW9uUGF5bWVudEluZm9SZXF1aXJlZFxuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5ICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcIkFkZCByZW11bmVyYXRpb24gcGF5bWVudCBkZXRhaWxzXCI7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfSAgIFxuICAgIFxuICAgIGlmICh0aGlzLnF1ZXN0aW9uICYmIHRoaXMucXVlc3Rpb24ubmFtZSAmJiB0aGlzLmZvcm0gJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5ncm9zc0Vhcm5pbmdzSW5mb1JlcXVpcmVkXG4gICAgICAmJiAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZCkpIHtcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFwiQWRkIGhvdXJzIHdvcmtlZCBkZXRhaWxzXCI7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfSAgIFxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/Lm5vdEVxdWFsc1xuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8IHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICBsZXQgdmFsaWRhdG9yTGlzdCA9IHRoaXMucXVlc3Rpb24udmFsaWRhdG9ycztcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFwiXCI7XG4gICAgICB2YWxpZGF0b3JMaXN0LmZvckVhY2godmFsaWRhdG9yID0+IHtcbiAgICAgICAgaWYgKGtlZXBHb2luZykge1xuICAgICAgICAgIGlmICh2YWxpZGF0b3IudHlwZSA9PT0gJ2N1c3RvbXZhbGlkYXRpb24nKSB7XG4gICAgICAgICAgICBtZXNzYWdlID0gdmFsaWRhdG9yLnRleHQ7XG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICAgICAga2VlcEdvaW5nID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbWVzc2FnZSA9IFwiXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8uYXRMZWFzdE9uZVxuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8IHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICBsZXQgdmFsaWRhdG9yTGlzdCA9IHRoaXMucXVlc3Rpb24udmFsaWRhdG9ycztcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFwiXCI7XG4gICAgICB2YWxpZGF0b3JMaXN0LmZvckVhY2godmFsaWRhdG9yID0+IHtcbiAgICAgICAgaWYgKGtlZXBHb2luZykge1xuICAgICAgICAgIGlmICh2YWxpZGF0b3IudHlwZSA9PT0gJ2N1c3RvbXZhbGlkYXRpb24nKSB7XG4gICAgICAgICAgICBtZXNzYWdlID0gdmFsaWRhdG9yLnRleHQ7XG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICAgICAga2VlcEdvaW5nID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8uaXNHcmVhdGVyRGF0ZVxuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8IHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICBsZXQgdmFsaWRhdG9yTGlzdCA9IHRoaXMucXVlc3Rpb24udmFsaWRhdG9ycztcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFwiXCI7XG4gICAgICB2YWxpZGF0b3JMaXN0LmZvckVhY2godmFsaWRhdG9yID0+IHtcbiAgICAgICAgaWYgKGtlZXBHb2luZykge1xuICAgICAgICAgIGlmICh2YWxpZGF0b3IudHlwZSA9PT0gJ2N1c3RvbXZhbGlkYXRpb24nKSB7XG4gICAgICAgICAgICBtZXNzYWdlID0gdmFsaWRhdG9yLnRleHQ7XG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICAgICAga2VlcEdvaW5nID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbWVzc2FnZSA9IFwiXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnbWVzc2FnZSBmcm9tIHBhbmVsIG91dGVyLS0gJyxtZXNzYWdlKTtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfVxuXG4gIG9uQWNjZXB0ZWRPdHAoYWdyZWVkIDogYm9vbGVhbil7XG4gICAgIHRoaXMuT3RwQ29tcGxldGVkID0gYWdyZWVkO1xuICB9XG4gIG9uQWNjZXB0ZWQoYWdyZWVkOiBib29sZWFuKSB7XG4gICAgLy90aGlzLmxvZ2dlci5kZWJ1Zygnb25BY2NlcHRlZCBjYWxsZWQnLGFncmVlZCk7XG4gICAgdGhpcy5sZWdhbEFjY2VwdGVkID0gYWdyZWVkO1xuICB9XG5cbiAgb25Db21wbGV0ZVJlcXVhbGlmeShyZXF1YWxpZnlEYXRhOiBVbnR5cGVkRm9ybUdyb3VwKXtcblxuICAgIC8vdGhpcy5sb2dnZXIuZGVidWcoXCJvbkNvbXBsZXRlUmVxdWFsaWZ5XCIsIHJlcXVhbGlmeURhdGEpO1xuICB9XG5cbiAgb25Nb2RlbERpc3BsYXkobW9kZWxEaXNwbGF5OiBib29sZWFuKSB7XG4gICAgLy90aGlzLmxvZ2dlci5kZWJ1ZygnbW9kZWxEaXNwbGF5IGNhbGxlZCcsbW9kZWxEaXNwbGF5KTtcbiAgfVxuXG4gIG9uUmFkaW9PcHRpb25DbGljayhldmVudCwgZWxlbWVudDogRWxlbWVudHNNb2RlbCkge1xuICAgIGxldCBxdWVyeSA9IGV2ZW50LnF1ZXJ5O1xuICAgIGlmIChlbGVtZW50LnNlcnZpY2VUeXBlICYmIGVsZW1lbnQuc2VydmljZVR5cGUgPT09ICdGRVRDSCcpIHtcbiAgICAgIGxldCBzZXJ2aWNlQ2FsbFR5cGUgPSBlbGVtZW50LnNlcnZpY2VDYWxsVHlwZTtcbiAgICAgIGxldCBzZXJ2aWNlTmFtZTogc3RyaW5nID0gZWxlbWVudC5zZXJ2aWNlTmFtZTtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBldmVudC5vcHRpb24udmFsdWUgPyB7IHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3NlbGVjdGlvbicsIGV2ZW50Lm9wdGlvbi52YWx1ZSkgfSA6IHt9O1xuICAgICAgaWYgKHNlcnZpY2VDYWxsVHlwZSA9PT0gJ0dFVCcpIHtcbiAgICAgICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKTtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZVxuICAgICAgICAgIC5nZXQoYCR7c2VydmljZU5hbWV9YCwgb3B0aW9ucylcbiAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgICAgbGV0IHZhbHVlczogU2VydmljZUFjdGlvblJlc3BvbnNlTW9kZWwgPSByZXM7XG4gICAgICAgICAgICAgIGlmICh2YWx1ZXMuc3VjY2VzcyA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgLy90aGlzLmxvZ2dlci5kZWJ1Zyh2YWx1ZXMuc2VydmljZUNhbGxWYWx1ZXMuc2VydmljZVR5cGUpO1xuICAgICAgICAgICAgICAgIC8vdGhpcy5sb2dnZXIuZGVidWcodmFsdWVzLnNlcnZpY2VDYWxsVmFsdWVzKTtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWVzLnNlcnZpY2VDYWxsVmFsdWVzICYmIHZhbHVlcy5zZXJ2aWNlQ2FsbFZhbHVlcy5zZXJ2aWNlVHlwZVxuICAgICAgICAgICAgICAgICAgJiYgdmFsdWVzLnNlcnZpY2VDYWxsVmFsdWVzLnNlcnZpY2VUeXBlID09PSAnRkVUQ0gnKSB7XG4gICAgICAgICAgICAgICAgICBsZXQgc2VydmljZUNhbGxUeXBlSW5UcnVlID0gdmFsdWVzLnNlcnZpY2VDYWxsVmFsdWVzLnNlcnZpY2VDYWxsVHlwZTtcbiAgICAgICAgICAgICAgICAgIGxldCBzZXJ2aWNlTmFtZUluVHJ1ZTogc3RyaW5nID0gdmFsdWVzLnNlcnZpY2VDYWxsVmFsdWVzLnNlcnZpY2VOYW1lO1xuICAgICAgICAgICAgICAgICAgaWYgKHNlcnZpY2VDYWxsVHlwZUluVHJ1ZSA9PT0gJ0dFVCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZVxuICAgICAgICAgICAgICAgICAgICAgIC5nZXQoYCR7c2VydmljZU5hbWVJblRydWV9YClcbiAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2FkZXJNb2RlbDogTG9hZGVyTW9kZWwgPSByZXNwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCIgdmFsdWUgZnJvbSBsb2FkZXIgPSBcIiwgbG9hZGVyTW9kZWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEZvcm1WYWx1ZXMobG9hZGVyTW9kZWwuZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJycCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tlbGVtZW50Lm5hbWVdPy5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbZWxlbWVudC5uYW1lXT8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycnApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbZWxlbWVudC5uYW1lXT8ucmVzZXQoKTtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW2VsZW1lbnQubmFtZV0/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHNldEZvcm1WYWx1ZXMoZGF0YSkge1xuICAgIE9iamVjdC5rZXlzKGRhdGEpXG4gICAgICAuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBsZXQgdmFsdWVUb1NldCA9IGRhdGFba2V5XTtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZUluRm9ybUNvbnRyb2woa2V5LCB2YWx1ZVRvU2V0KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgc2V0VmFsdWVJbkZvcm1Db250cm9sKG5hbWUsIHZhbHVlKSB7XG4gICAgbGV0IGNvbnRyb2wgPSB0aGlzLmZvcm0uY29udHJvbHNbbmFtZV07XG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIGNvbnRyb2wucGF0Y2hWYWx1ZSh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ05vIGZvcm0gY29udHJvbCBwcmVzZW50IHdpdGggbmFtZSAnLCBuYW1lKTtcbiAgICB9XG4gIH1cblxuICBmaWx0ZXJWYWx1ZShldmVudCwgZWxlbWVudDogRWxlbWVudHNNb2RlbCkge1xuICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCdjaG9pY2VzLS0nLGNob2ljZXMpO1xuXG4gICAgbGV0IGNob2ljZXM6IGFueVtdID0gW107XG5cbiAgICBsZXQgZmlsdGVyZWQ6IGFueVtdID0gW107XG4gICAgbGV0IHF1ZXJ5ID0gZXZlbnQucXVlcnk7XG5cblxuICAgIGlmIChlbGVtZW50LnNlcnZpY2VUeXBlICYmIGVsZW1lbnQuc2VydmljZVR5cGUgPT09ICdGRVRDSCcpIHtcblxuICAgICAgbGV0IHNlcnZpY2VDYWxsUGFyYW0gPSBlbGVtZW50LnNlcnZpY2VDYWxsUGFyYW07IC8vc3NuMzIwLGxzdG5hbWUzMjBcbiAgICAgIGxldCBzZXJ2aWNlQ2FsbFR5cGUgPSBlbGVtZW50LnNlcnZpY2VDYWxsVHlwZTsgIC8vXCJHRVRcIlxuICAgICAgbGV0IHNlcnZpY2VOYW1lOiBzdHJpbmcgPSBlbGVtZW50LnNlcnZpY2VOYW1lOyAvLy9zZWN1cml0eS1zZXJ2aWNlL3ZhbGlkYXRlU1NOL1xuICAgICAgbGV0IHNlcnZpY2VVcGRhdGVQYXJhbSA9IGVsZW1lbnQuc2VydmljZVVwZGF0ZVBhcmFtO1xuXG4gICAgICBpZiAoc2VydmljZUNhbGxUeXBlID09PSAnR0VUJykge1xuICAgICAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnSW5zaWRlIEdFVCcpO1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlXG4gICAgICAgICAgLmdldChgJHtzZXJ2aWNlTmFtZX1gKVxuICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICByZXMgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygncmVzLS0nLCByZXMsICcgLSByZXNbMF0ubGVuZ3RoIC0nLCByZXMpO1xuICAgICAgICAgICAgICBjaG9pY2VzLnB1c2gocmVzKTtcbiAgICAgICAgICAgICAgbGV0IHF1ZXJ5ID0gZXZlbnQucXVlcnk7XG4gICAgICAgICAgICAgIC8vbGV0IGZpbHRlcmVkOiBhbnlbXSA9IFtdO1xuICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNob2ljZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBsZXQgY2hvaWNlID0gY2hvaWNlc1tpXTtcbiAgICAgICAgICAgICAgICAvL3RoaXMubG9nZ2VyLmRlYnVnKCdjaG9pY2UgLSAnLCBjaG9pY2UsICdjaG9pY2UudGV4dC0tJywgY2hvaWNlLnRleHQsICdxdWVyeS50b0xvd2VyQ2FzZSgpJywgcXVlcnk/LnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICAgICAgICAgIC8vaWYgKGNob2ljZS50ZXh0LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihxdWVyeS50b0xvd2VyQ2FzZSgpKSA9PSAwKSB7XG4gICAgICAgICAgICAgICAgZmlsdGVyZWQucHVzaChjaG9pY2VbMF0pO1xuICAgICAgICAgICAgICAgIC8vfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRoaXMuZmlsdGVyUmVzdWx0ID0gZmlsdGVyZWQ7XG4gICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd0aGlzLmZpbHRlclJlc3VsdDEyMy0tJywgdGhpcy5maWx0ZXJSZXN1bHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLFxuICAgICAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgY2hvaWNlcyA9IGVsZW1lbnQuY2hvaWNlcztcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hvaWNlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgY291bnRyeSA9IGNob2ljZXNbaV07XG4gICAgICAgIC8vaWYgKGNvdW50cnkudGV4dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YocXVlcnkudG9Mb3dlckNhc2UoKSkgPT0gMCkge1xuICAgICAgICBmaWx0ZXJlZC5wdXNoKGNvdW50cnkpO1xuICAgICAgICAvL31cbiAgICAgIH1cbiAgICAgIHRoaXMuZmlsdGVyUmVzdWx0ID0gZmlsdGVyZWQ7XG4gICAgfVxuXG4gIH1cblxuICBvblNlbGVjdChldmVudCwgY250cmxOYW1lOiBzdHJpbmcpIHtcbiAgfVxuXG5cbiAgLy9UaGlzIHNob3VkIGJlIHNpbWlsaXJhIHRvIG1ldGhvZCBwcmVzZW50IGluIHBhbmVsXG4gIHZhbGlkYXRlKGVsZW1lbnQ6IEVsZW1lbnRzTW9kZWwpIHtcblx0XG5cdFxuICAgIGlmICghZWxlbWVudC5zZXJ2aWNlTmFtZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBzZXJ2aWNlVHlwZSA9IGVsZW1lbnQuc2VydmljZVR5cGU7XG4gICAgaWYgKGVsZW1lbnQuc2VydmljZVR5cGUgPT09ICdGRVRDSCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cblxuICAgIGxldCBzZXJ2aWNlQ2FsbFBhcmFtID0gZWxlbWVudC5zZXJ2aWNlQ2FsbFBhcmFtOyAvL3NzbjMyMCxsc3RuYW1lMzIwXG4gICAgbGV0IHNlcnZpY2VDYWxsVHlwZSA9IGVsZW1lbnQuc2VydmljZUNhbGxUeXBlOyAgLy9cIkdFVFwiXG4gICAgbGV0IHNlcnZpY2VOYW1lOiBzdHJpbmcgPSBlbGVtZW50LnNlcnZpY2VOYW1lOyAvLy9zZWN1cml0eS1zZXJ2aWNlL3ZhbGlkYXRlU1NOL1xuICAgIGxldCBzZXJ2aWNlVXBkYXRlUGFyYW0gPSBlbGVtZW50LnNlcnZpY2VVcGRhdGVQYXJhbTtcbiAgICBsZXQgYWxsVmFsdWVQcmVzZW50OiBCb29sZWFuID0gdHJ1ZTtcbiAgICAvLyAgdGhpcy5sb2dnZXIuZGVidWcoJ3NlcnZpY2VDYWxsUGFyYW0nLHNlcnZpY2VDYWxsUGFyYW0pO1xuICAgIGlmIChzZXJ2aWNlQ2FsbFBhcmFtKSB7XG4gICAgICB2YXIgc3BsaXR0ZWQgPSBzZXJ2aWNlQ2FsbFBhcmFtLnNwbGl0KFwiLFwiKTtcbiAgICAgIGxldCB2YWx1ZUFycjogc3RyaW5nW10gPSBbXTtcbiAgICAgIGxldCBwYXJhbUFycjogc3RyaW5nW10gPSBbXTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BsaXR0ZWQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgLy91c2UgaSBpbnN0ZWFkIG9mIDAgZG9iMzIwXG4gICAgICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCdkb2IzMjAnLHRoaXMuZm9ybS5jb250cm9sc1snZG9iMzIwJ10udmFsdWUpO1xuICAgICAgICBpZiAodGhpcy5mb3JtLmNvbnRyb2xzW3NwbGl0dGVkW2ldXS52YWx1ZSkge1xuICAgICAgICAgIHBhcmFtQXJyLnB1c2goc3BsaXR0ZWRbaV0pO1xuICAgICAgICAgIHZhbHVlQXJyLnB1c2godGhpcy5mb3JtLmNvbnRyb2xzW3NwbGl0dGVkW2ldXS52YWx1ZSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhbGxWYWx1ZVByZXNlbnQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbHVlQXJyMTInLCB2YWx1ZUFyciwgJ3BhcmFtQXJyMTEgJywgcGFyYW1BcnIsICcgZWxlbWVudCcsIGVsZW1lbnQpO1xuXG4gICAgICB2YXIgbW9kZWw6IFZhbGlkYXRpb25Nb2RlbCA9IHt9O1xuICAgICAgbW9kZWwucGFyYW1OYW1lID0gcGFyYW1BcnI7XG4gICAgICBtb2RlbC5wYXJhbVZhbHVlID0gdmFsdWVBcnI7XG4gICAgICAvLyByZXR1cm4gdGhpcy5wb3N0KGBxdWVzdGlvbm5haXJlL3NjcmVlbi1xdWVzdGlvbm5haXJlYCwgcXVlc3Rpb25uYWlyZURhdGEpO1xuICAgICAgaWYgKGFsbFZhbHVlUHJlc2VudCkge1xuICAgICAgICBpZiAoc2VydmljZUNhbGxUeXBlID09PSAnUE9TVCcpIHtcbiAgICAgICAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnSW5zaWRlIEdFVCcpO1xuICAgICAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2VcbiAgICAgICAgICAgIC5wb3N0KGAke3NlcnZpY2VOYW1lfWAsIG1vZGVsKVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJldHVybk1vZGVsID0gcmVzO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnJldHVybk1vZGVsLnJldHVyblR5cGUgJiYgdGhpcy5yZXR1cm5Nb2RlbC5yZXR1cm5UeXBlID09PSAnUE9QVVAnKSB7XG5cbiAgICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVBvc2l0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSAndG9wJztcbiAgICAgICAgICAgICAgICAgIHRoaXMucG9wVXBIZWFkZXIgPSB0aGlzLnJldHVybk1vZGVsLnBvcFVwSGVhZGVyO1xuICAgICAgICAgICAgICAgICAgdGhpcy5wb3BVcFRleHQgPSB0aGlzLnJldHVybk1vZGVsLnBvcFVwVGV4dDtcbiAgICAgICAgICAgICAgICAgIHRoaXMucG9wVXBZZXNBY3Rpb25MYWJlbCA9IHRoaXMucmV0dXJuTW9kZWwucG9wVXBZZXNCdXR0b25MYWJlbDtcbiAgICAgICAgICAgICAgICAgIHRoaXMucG9wVXBOb0FjdGlvbkxhYmVsID0gdGhpcy5yZXR1cm5Nb2RlbC5wb3BVcE5vQnV0dG9uTGFiZWw7XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3RoaXMucmV0dXJuTW9kZWwgJywgdGhpcy5yZXR1cm5Nb2RlbClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAsXG4gICAgICAgICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XG5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIGFmdGVyIHNlbGVjdGluZyBidXR0b24gZnJvbSBhY3Rpb24gbGFiZWxcbiAgICogICAgICAgICAgICAgIGVuY3J5cHRzIHBhcmFtZXRlciB2YWx1ZXMgZm9yIFVSTCB1c2luZyBiYXNlNjQgZW5jb2RpbmcgYW5kIFhPUiB1c2luZyByYW5kb20ga2V5IFxuICAgKiovXG4gIGFjY2VwdCgpIHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnYWNjZXB0IGNhbGxlZDEyMycsIHRoaXMucmV0dXJuTW9kZWwuaWRlbnRpZmllcilcbiAgICBsZXQgcGFyYW1BcnJheTogUGFyYW1zW10gPSBbXTtcbiAgICBpZiAodGhpcy5yZXR1cm5Nb2RlbC5pZGVudGlmaWVyKSB7XG4gICAgICBsZXQgbW9kZWxBcnI6IEtleVZhbHVlTW9kZWxbXSA9IHRoaXMucmV0dXJuTW9kZWwuaWRlbnRpZmllcjtcbiAgICAgIHRoaXMudGQgPSB0aGlzLnV0aWwuZ2VuZXJhdGVSYW5kb21LZXkoKTtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd2eGsnLCBidG9hKGJ0b2EodGhpcy5hbHBSbmQgKyAodGhpcy50ZCkudG9TdHJpbmcoKSArICh0aGlzLnZhcm4pLnRvU3RyaW5nKCkpKSk7XG4gICAgICBmb3IgKHZhciB2YWwgb2YgbW9kZWxBcnIpIHtcbiAgICAgICAgcGFyYW1BcnJheS5wdXNoKHsgW3RoaXMudXRpbC54b3JFbmNyeXB0KHZhbC5rZXksIHRoaXMudGQpXTogXG4gICAgICAgIHRoaXMudXRpbC54b3JFbmNyeXB0KHZhbC52YWx1ZSwgdGhpcy50ZCkgfSk7XG4gICAgICB9XG4gICAgICBsZXQgcGFyYW1zID0gcGFyYW1BcnJheS5yZWR1Y2UoKGFyck9iaiwgaXRlbSkgPT4gT2JqZWN0LmFzc2lnbihhcnJPYmosIGl0ZW0sIHt9KSk7XG4gICAgICAvL3RoaXMudXRpbC5vcGVuUGFnZUJ5Q29udGV4dFJvb3RXaXRoRGF0YSh0aGlzLmdldENvbnRleHRSb290KCksIHRoaXMucmV0dXJuTW9kZWwueWVzQWN0aW9uLCBwYXJhbXMsIHRoaXMubmF2Q29udHJvbGxlcilcbiAgICAgIHRoaXMubmF2Q29udHJvbGxlci5uYXZpZ2F0ZVJvb3QodGhpcy5yZXR1cm5Nb2RlbC55ZXNBY3Rpb24sIHsgcXVlcnlQYXJhbXM6IHBhcmFtc30pXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnJldHVybk1vZGVsLnllc0FjdGlvbiAmJiB0aGlzLnJldHVybk1vZGVsLnllc0FjdGlvbi5zdWJzdHJpbmcoMCwgNCkgIT0gJy9jcC8nKSB7XG4gICAgICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KFt0aGlzLnJldHVybk1vZGVsLnllc0FjdGlvbl0pO1xuICAgICAgdGhpcy5kaXNwbGF5UG9zaXRpb24gPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgd2luZG93Lm9wZW4obG9jYXRpb24ub3JpZ2luICsgdGhpcy5yZXR1cm5Nb2RlbC55ZXNBY3Rpb24sICdfc2VsZicpO1xuICAgIH1cbiAgICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KFt0aGlzLnJldHVybk1vZGVsLnllc0FjdGlvbl0pO1xuICB9XG5cbiAgcmVqZWN0KCkge1xuICAgIGlmICh0aGlzLnJldHVybk1vZGVsLm5vQWN0aW9uICYmIHRoaXMucmV0dXJuTW9kZWwubm9BY3Rpb24uc3Vic3RyaW5nKDAsIDQpICE9ICcvY3AvJykge1xuICAgICAgdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlUm9vdChbdGhpcy5yZXR1cm5Nb2RlbC5ub0FjdGlvbl0pO1xuICAgICAgdGhpcy5kaXNwbGF5UG9zaXRpb24gPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgd2luZG93Lm9wZW4obG9jYXRpb24ub3JpZ2luICsgdGhpcy5yZXR1cm5Nb2RlbC5ub0FjdGlvbiwgJ19zZWxmJyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q29udGV4dFJvb3QoKSB7XG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zdWJzdHJpbmcoMCwgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLmluZGV4T2YoXCIvXCIsIDIpKTtcbiAgfVxuXG4gIHVwbG9hZEZpbGUoZXY6IGFueSkge1xuXG4gIH1cblxuICBnZXRUcmFuc2xhdGlvbihrZXk6IHN0cmluZywgZHluYW1pY1BhcmFtOiBhbnkpIHtcbiAgICBpZiAoIWR5bmFtaWNQYXJhbSkge1xuICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG5cbiAgICBsZXQgZHluYW1pY09iaiA9IHt9O1xuXG4gICAgbGV0IHBhcmFtOiBLZXlWYWx1ZU1vZGVsO1xuICAgIGxldCBwYXJhbXM6IEtleVZhbHVlTW9kZWxbXTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KGR5bmFtaWNQYXJhbSkpIHtcbiAgICAgIHBhcmFtcyA9IGR5bmFtaWNQYXJhbTtcbiAgICAgIHBhcmFtcy5mb3JFYWNoKHBybSA9PiB7XG4gICAgICAgIGR5bmFtaWNPYmpbcHJtLmtleV0gPSBwcm0udmFsdWU7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyYW0gPSBkeW5hbWljUGFyYW07XG4gICAgICBkeW5hbWljT2JqW3BhcmFtLmtleV0gPSBwYXJhbS52YWx1ZTtcbiAgICB9XG5cbiAgICB0aGlzLnRyYW5zbGF0ZS51c2UoJ2VuJyk7XG4gICAgbGV0IHRyYW5zbGF0ZWRTdHJpbmc6IFN0cmluZyA9IFwiXCI7XG4gICAgdGhpcy50cmFuc2xhdGUuc2V0KFxuICAgICAga2V5LCBrZXkpO1xuICAgIHRyYW5zbGF0ZWRTdHJpbmcgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAga2V5LCBPYmplY3QuYXNzaWduKGR5bmFtaWNPYmopKTtcbiAgICByZXR1cm4gdHJhbnNsYXRlZFN0cmluZztcbiAgfVxuXG4gIGdldFRleHQob2JqZWN0KSB7XG4gICAgcmV0dXJuIG9iamVjdD8udGV4dCA/IG9iamVjdD8udGV4dCA6IG9iamVjdDtcbiAgfVxuXG4gIHVubWFzayhldmVudCkge1xuICAgIHRoaXMudHlwZSA9ICd0ZXh0JztcbiAgfVxuXG4gIG1hc2soZXZlbnQpIHtcbiAgICB0aGlzLnR5cGUgPSAncGFzc3dvcmQnO1xuICB9XG5cbiAgZGF0ZUlucHV0KGV2ZW50KSB7XG4gICAgbGV0IGN1cnJlbnRWYWx1ZTogc3RyaW5nID0gZXZlbnQuc3JjRWxlbWVudC52YWx1ZTtcbiAgICBpZiAoY3VycmVudFZhbHVlKSB7XG4gICAgICBpZiAoY3VycmVudFZhbHVlLmxlbmd0aCA9PSAyICYmIGN1cnJlbnRWYWx1ZS5jaGFyQXQoMikgIT0gJy8nKSB7XG4gICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IGN1cnJlbnRWYWx1ZSArIFwiL1wiO1xuICAgICAgfVxuICAgICAgaWYgKGN1cnJlbnRWYWx1ZS5sZW5ndGggPT0gNSAmJiBjdXJyZW50VmFsdWUuY2hhckF0KDUpICE9ICcvJykge1xuICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSBjdXJyZW50VmFsdWUgKyBcIi9cIjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjaGVja0ZvclZhbHVlQ2hhbmdlKGV2ZW50KSB7XG4gICAgaWYgKHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YSkge1xuICAgICAgbGV0IGNvbXBEYXRhOiBWYWx1ZUNoYW5nZUNvbXBvbmVudE1vZGVsID0gSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGEpO1xuICAgICAgbGV0IGN1cnJlbnRWYWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICAgIGxldCBvcmlnaW5hbFZhbHVlID0gdGhpcy5mb3JtLmdldChjb21wRGF0YS5vcmlnaW5hbFZhbHVlQ29udHJvbCk/LnZhbHVlO1xuICAgICAgbGV0IGZvcm1Db250cm9sVG9VcGRhdGU6IEFic3RyYWN0Q29udHJvbCA9IHRoaXMuZm9ybS5nZXQoY29tcERhdGEuZm9ybUNvbnRyb2xUb1VwZGF0ZSk7XG4gICAgICBmb3JtQ29udHJvbFRvVXBkYXRlLnBhdGNoVmFsdWUoJ04nKVxuICAgICAgZm9ybUNvbnRyb2xUb1VwZGF0ZS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB0aGlzLmZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgdGhpcy5keW5hbWljUGFyYW0gPSB0aGlzLmR5bmFtaWNQYXJhbSA/IHRoaXMuZHluYW1pY1BhcmFtIDogW107XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmR5bmFtaWNQYXJhbSkpIHtcbiAgICAgICAgdGhpcy5keW5hbWljUGFyYW0ucHVzaCh7IGtleTogdGhpcy5xdWVzdGlvbi5uYW1lLCB2YWx1ZTogY3VycmVudFZhbHVlIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5keW5hbWljUGFyYW1bdGhpcy5xdWVzdGlvbi5uYW1lXSA9IGN1cnJlbnRWYWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChjdXJyZW50VmFsdWUgIT0gb3JpZ2luYWxWYWx1ZSkge1xuICAgICAgICBmb3JtQ29udHJvbFRvVXBkYXRlLnBhdGNoVmFsdWUoJ1knKTtcbiAgICAgICAgdGhpcy5vbkR5bmFtaWNQYXJhbVVwZGF0ZS5lbWl0KHRoaXMuZHluYW1pY1BhcmFtKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvcm1Db250cm9sVG9VcGRhdGUucGF0Y2hWYWx1ZSgnTicpXG4gICAgICB9XG4gICAgICBmb3JtQ29udHJvbFRvVXBkYXRlLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG4gIH1cblxuICBzZXRFbXBsb3llcihlbXBsb3llcjogRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQpIHtcbiAgICBpZiAodGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhKSB7XG4gICAgICBsZXQgY29tcERhdGE6IEVtcGxveWVyQWRkcmVzc1VwZGF0ZU1vZGVsID0gSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGEpO1xuICAgICAgbGV0IGFkZHJlc3NGYzogQWJzdHJhY3RDb250cm9sID0gdGhpcy5mb3JtLmdldChjb21wRGF0YS5hZGRyZXNzRm9ybUNvbnRyb2xOYW1lKTtcbiAgICAgIGxldCBlbXBJZEZjOiBBYnN0cmFjdENvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KGNvbXBEYXRhLmVtcGxveWVySWRGb3JtQ29udHJvbE5hbWUpO1xuICAgICAgZW1wSWRGYy5zZXRWYWx1ZShlbXBsb3llci5lbXBsb3llcklkID8gZW1wbG95ZXIuZW1wbG95ZXJJZCA6IFwiLTFcIik7XG4gICAgICBhZGRyZXNzRmMuc2V0VmFsdWUoe1xuICAgICAgICBjb3VudHJ5OiBlbXBsb3llci5jb3VudHJ5LCBjaXR5OiBlbXBsb3llci5jaXR5XG4gICAgICAgICwgemlwOiBlbXBsb3llci56aXAsIHN0cmVldEFkZHJlc3M6IGVtcGxveWVyLmFkZHJlc3NEaXNwbGF5VmFsLCBzdGF0ZTogZW1wbG95ZXIuc3RhdGUsXG4gICAgICAgIG9wdGlvbmFsQWRkcmVzczogbnVsbCwgY291bnR5OiBudWxsLCB0b3duOiBudWxsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXNldEVtcGxveWVyKCkge1xuICAgIGlmICh0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGEpIHtcbiAgICAgIGxldCBjb21wRGF0YTogRW1wbG95ZXJBZGRyZXNzVXBkYXRlTW9kZWwgPSBKU09OLnBhcnNlKHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YSk7XG4gICAgICBsZXQgYWRkcmVzc0ZjOiBBYnN0cmFjdENvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KGNvbXBEYXRhLmFkZHJlc3NGb3JtQ29udHJvbE5hbWUpO1xuICAgICAgbGV0IGVtcElkRmM6IEFic3RyYWN0Q29udHJvbCA9IHRoaXMuZm9ybS5nZXQoY29tcERhdGEuZW1wbG95ZXJJZEZvcm1Db250cm9sTmFtZSk7XG4gICAgICBlbXBJZEZjLnNldFZhbHVlKFwiLTFcIik7XG4gICAgICBhZGRyZXNzRmMuc2V0VmFsdWUoe1xuICAgICAgICBjb3VudHJ5OiBudWxsLCBjaXR5OiBudWxsXG4gICAgICAgICwgemlwOiBudWxsLCBzdHJlZXRBZGRyZXNzOiBudWxsLCBzdGF0ZTogbnVsbCxcbiAgICAgICAgb3B0aW9uYWxBZGRyZXNzOiBudWxsLCBjb3VudHk6IG51bGwsIHRvd246IG51bGxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNldEZvcm1Db250cm9sVmFsdWUoZWxlbWVudE5hbWUsIGVsZW1lbnRWYWx1ZSkge1xuICAgIGlmICh0aGlzLmZvcm0uY29udHJvbHNbZWxlbWVudE5hbWVdKSB7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbZWxlbWVudE5hbWVdLnBhdGNoVmFsdWUoZWxlbWVudFZhbHVlKTtcbiAgICB9XG4gIH1cbiAgXG4gIHNldERlZmF1bHRWYWx1ZSgpIHtcbiAgICBpZih0aGlzLnF1ZXN0aW9uLmRlZmF1bHRWYWx1ZSl7XG4gICAgICBsZXQgdmFsdWUgPSB0aGlzLnF1ZXN0aW9uLmRlZmF1bHRWYWx1ZTtcbiAgICAgIGlmKHRoaXMucXVlc3Rpb24udHlwZSA9PSAnZHJvcGRvd24nKXtcbiAgICAgICAgY29uc3QgY2hvaWNlOnN0cmluZyA9IHRoaXMucXVlc3Rpb24uZGVmYXVsdFZhbHVlO1xuICAgICAgICB2YXIganNvbk9iamVjdDogQ2hvaWNlcyA9IEpTT04ucGFyc2UoY2hvaWNlKTsgIFxuICAgICAgICB0aGlzLnNldEZvcm1Db250cm9sVmFsdWUodGhpcy5xdWVzdGlvbi5uYW1lLCB0aGlzLnF1ZXN0aW9uLmNob2ljZXMuZmlsdGVyKGMgPT4gYy52YWx1ZSA9PSBqc29uT2JqZWN0LnZhbHVlKVswXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNldEZvcm1Db250cm9sVmFsdWUodGhpcy5xdWVzdGlvbi5uYW1lLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cbiIsIjxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCIgW2lkXT1cIidxdWVzdGlvbi1kaXYtJyArIHF1ZXN0aW9uLm5hbWVcIj5cclxuICA8cC1kaWFsb2cgKm5nSWY9XCJkaXNwbGF5UG9zaXRpb25cIiBbKHZpc2libGUpXT1cImRpc3BsYXlQb3NpdGlvblwiIFtwb3NpdGlvbl09XCJwb3NpdGlvblwiXHJcbiAgICBbbW9kYWxdPVwidHJ1ZVwiIFticmVha3BvaW50c109XCJ7JzEyMDBweCc6ICc2NjBweCcsICc5OTJweCc6ICc2NjBweCcsICc3NjhweCc6ICc2NjBweCcsICc1NzZweCc6ICcxMDB2dyd9XCIgW3N0eWxlXT1cInt3aWR0aDogJzQ1dncnfVwiXHJcbiAgICBbYmFzZVpJbmRleF09XCI1MDAwXCIgW2RyYWdnYWJsZV09XCJmYWxzZVwiIFtyZXNpemFibGVdPVwiZmFsc2VcIiBhcHBlbmRUbz1cImJvZHlcIiBjbG9zZU9uRXNjYXBlPVwiZmFsc2VcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+XHJcblxyXG4gICAgPGg0IGNsYXNzPVwiaGVhZGluZyBpb24tcGFkZGluZy1sZWZ0XCI+XHJcbiAgICAgIHt7cG9wVXBIZWFkZXJ9fVxyXG4gICAgPC9oND5cclxuICAgIDxkaXYgW2lubmVySFRNTF09XCJzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwocG9wVXBUZXh0KVwiPjwvZGl2PlxyXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiPlxyXG4gICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgKm5nSWY9XCJwb3BVcE5vQWN0aW9uTGFiZWxcIiBzaXplPVwic21hbGxcIiB0eXBlPVwic3VibWl0XCIgZmlsbD1cIm91dGxpbmVcIiAoY2xpY2spPVwicmVqZWN0KClcIj5cclxuICAgICAgICB7e3BvcFVwTm9BY3Rpb25MYWJlbH19XHJcbiAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiAqbmdJZj1cInBvcFVwWWVzQWN0aW9uTGFiZWxcIiBzaXplPVwic21hbGxcIiB0eXBlPVwic3VibWl0XCIgZmlsbD1cInNvbGlkXCIgKGNsaWNrKT1cImFjY2VwdCgpXCI+XHJcbiAgICAgICAge3twb3BVcFllc0FjdGlvbkxhYmVsfX1cclxuICAgICAgPC9pb24tYnV0dG9uPlxyXG5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9wLWRpYWxvZz5cclxuICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIiAqbmdJZj1cIiFmb3JTY3JlZW5RdWVzdGlvbm5haXJlXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+XHJcbiAgICA8bGFiZWwgW2F0dHIuZm9yXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmluZGVudD09PTEgJiYgcXVlc3Rpb24udHlwZSE9J2h0bWwnICYmIHF1ZXN0aW9uLnR5cGUhPSdoaWRkZW4nICYmIHF1ZXN0aW9uLnR5cGUhPSdsYWJlbCdcIj5cclxuICAgICAgPHNwYW4gW2lubmVySHRtbF09XCJxdWVzdGlvbi50aXRsZSB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtIHwgdHJ1c3RIdG1sXCI+PC9zcGFuPlxyXG4gICAgPC9sYWJlbD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCJcclxuICAgICpuZ0lmPVwiZm9yU2NyZWVuUXVlc3Rpb25uYWlyZSAmJiBxdWVzdGlvbi5pbmRlbnQ9PT0xICYmIHF1ZXN0aW9uLnR5cGUhPSdodG1sJyAmJiBxdWVzdGlvbi50eXBlIT0naGlkZGVuJyAmJiBxdWVzdGlvbi5kZXNjcmlwdGlvbiAmJiBxdWVzdGlvbi50eXBlIT0nc2ltcGxlY2hlY2tib3gnICYmIHF1ZXN0aW9uLnR5cGUhPSdsYWJlbCcgJiYgcXVlc3Rpb24udHlwZSE9J2xhYmVsLXdpdGgtb3ZlcmxheSdcIj5cclxuICAgIDxzcGFuIFtpbm5lckh0bWxdPVwicXVlc3Rpb24udGl0bGUgfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbSB8IHRydXN0SHRtbFwiPjwvc3Bhbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCJcclxuICAgICpuZ0lmPVwiZm9yU2NyZWVuUXVlc3Rpb25uYWlyZSAmJiBxdWVzdGlvbi5jdXN0b21UYWcgJiYgKHF1ZXN0aW9uLmN1c3RvbVRhZyE9J2NvbXBvbmVudCcgfHwgKHF1ZXN0aW9uLmN1c3RvbVRhZz09J2NvbXBvbmVudCcgJiYgc2hvd0xhYmVsRm9yQ3VzdG9tQ29tcG9uZW50KCkpKSAmJiBxdWVzdGlvbi5pbmRlbnQ9PT0xICYmIHF1ZXN0aW9uLnR5cGUhPSdodG1sJyAmJiBxdWVzdGlvbi50eXBlIT0naGlkZGVuJyAmJiAhcXVlc3Rpb24uZGVzY3JpcHRpb24gJiYgcXVlc3Rpb24udHlwZSE9J2xhYmVsJyAmJiBxdWVzdGlvbi50eXBlIT0nc2ltcGxlY2hlY2tib3gnXCI+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cInF1ZXN0aW9uLnRpdGxlIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW0gfCB0cnVzdEh0bWxcIj48L3NwYW4+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiXHJcbiAgICAqbmdJZj1cImZvclNjcmVlblF1ZXN0aW9ubmFpcmUgJiYgIXF1ZXN0aW9uLmN1c3RvbVRhZyAgJiYgcXVlc3Rpb24uaW5kZW50PT09MSAmJiBxdWVzdGlvbi50eXBlIT0naHRtbCcgJiYgcXVlc3Rpb24udHlwZSE9J2hpZGRlbicgJiYgIXF1ZXN0aW9uLmRlc2NyaXB0aW9uICYmIHF1ZXN0aW9uLnR5cGUhPSdzaW1wbGVjaGVja2JveCcgJiYgcXVlc3Rpb24udHlwZSE9J2xhYmVsJyAmJiBxdWVzdGlvbi50eXBlIT0nbGFiZWwtd2l0aC1vdmVybGF5J1wiPlxyXG4gICAgPHNwYW4gW2lubmVySHRtbF09XCJxdWVzdGlvbi50aXRsZSB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtIHwgdHJ1c3RIdG1sXCI+PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZz09PSdjb21wb25lbnQnICYmIHF1ZXN0aW9uLnR5cGUhPSdodG1sJyAmJiAhcXVlc3Rpb24uZGVzY3JpcHRpb25cIj5cclxuICAgIDxhcHAtZW1wbG95ZXItZ3JpZCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbZm9ybV09XCJmb3JtXCIgW2R5bmFtaWNQYXJhbV09XCJkeW5hbWljUGFyYW1cIlxyXG4gICAgICAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWVtcGxveWVyLWdyaWQnXCIgKG1vZGVsRGlzcGxheSk9XCJvbk1vZGVsRGlzcGxheSgkZXZlbnQpXCI+PC9hcHAtZW1wbG95ZXItZ3JpZD5cclxuXHJcbiAgICA8YXBwLW9mZmxpbmUtZW1wbG95ZXItZ3JpZCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbZm9ybV09XCJmb3JtXCIgW2R5bmFtaWNQYXJhbV09XCJkeW5hbWljUGFyYW1cIlxyXG4gICAgICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtb2ZmbGluZS1lbXBsb3llci1ncmlkJ1wiIChtb2RlbERpc3BsYXkpPVwib25Nb2RlbERpc3BsYXkoJGV2ZW50KVwiPjwvYXBwLW9mZmxpbmUtZW1wbG95ZXItZ3JpZD5cclxuXHJcbiAgICA8YXBwLWxlZ2FsLWRpc2NsYWltYXIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1sZWdhbC1kaXNjbGFpbWFyJ1wiXHJcbiAgICAgIFtjb21wb25lbnREYXRhXT1cInF1ZXN0aW9uLmNvbXBvbmVudERhdGFcIiAoYWNjZXB0ZWQpPVwib25BY2NlcHRlZCgkZXZlbnQpXCIgW3F1ZXN0aW9uXT1cInF1ZXN0aW9uXCIgW2Zvcm1dPVwiZm9ybVwiPlxyXG4gICAgPC9hcHAtbGVnYWwtZGlzY2xhaW1hcj5cclxuXHJcbiAgICA8YXBwLW9mZmxpbmUtbGVnYWwtZGlzY2xhaW1hciAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLW9mZmxpbmUtbGVnYWwtZGlzY2xhaW1hcidcIlxyXG4gICAgW2NvbXBvbmVudERhdGFdPVwicXVlc3Rpb24uY29tcG9uZW50RGF0YVwiIChhY2NlcHRlZCk9XCJvbkFjY2VwdGVkKCRldmVudClcIiBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIiBbZm9ybV09XCJmb3JtXCI+XHJcbiAgICA8L2FwcC1vZmZsaW5lLWxlZ2FsLWRpc2NsYWltYXI+XHJcblxyXG4gICAgPG1vbmV5LWV4cGVjdCAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nbW9uZXktZXhwZWN0J1wiIFtjb21wb25lbnREYXRhXT1cInF1ZXN0aW9uLmNvbXBvbmVudERhdGFcIiA+PC9tb25leS1leHBlY3Q+XHJcbiAgICA8YXBwLWNhcHRjaGEgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1jYXB0Y2hhJ1wiPjwvYXBwLWNhcHRjaGE+XHJcblxyXG4gICAgPGFwcC1maWxlLXVwbG9hZGVyIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtZmlsZS11cGxvYWRlcidcIj5cclxuICAgIDwvYXBwLWZpbGUtdXBsb2FkZXI+XHJcbiAgICA8YXBwLWFkZHJlc3MgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2Zyb21Qb3B1cF09XCJmYWxzZVwiIFtjb3VudHlSZXF1aXJlZF09XCJxdWVzdGlvbi5jb3VudHlSZXF1aXJlZFwiIFtxdWVzdGlvbmFpcmVGb3JtXT1cInF1ZXN0aW9uYWlyZUZvcm1cIlxyXG4gICAgICAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWFkZHJlc3MnXCIgI2FkZHJlc3MgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFtjb21wb25lbnREYXRhXT1cInF1ZXN0aW9uLmNvbXBvbmVudERhdGFcIlxyXG4gICAgICBbZGlmZk1haWxBZGRyZXNzXT1cIihmb3JtPy5jb250cm9sc1snZGlmZk1haWxpbmdBZGRyZXNzJ10/LnZhbHVlID09PSAnWScpIHx8IChmb3JtPy5jb250cm9sc1snZGlmZm1haWxhZGRyZXNzJ10/LnZhbHVlID09PSAnWScpPyB0cnVlIDogZmFsc2VcIlxyXG4gICAgICBbZW5hYmxlQWRkcmVzc1ZhbGlkYXRpb25dPVwiaXNBZGRyZXNzVmFsaWRhdGlvbkVuYWJsZWRcIiA+IDwvYXBwLWFkZHJlc3M+XHJcbiAgIDwhLS0gPGFwcC1hZGRyZXNzLXN1Z2dlc3Rpb24gKm5nSWY9XCJzaG93QWRkcmVzc1N1Z2dlc3Rpb25cIj48L2FwcC1hZGRyZXNzLXN1Z2dlc3Rpb24+IC0tPlxyXG4gICAgPGFwcC1qb2ItdGl0bGUgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2lzUmVxdWlyZWRdPVwicXVlc3Rpb24uaXNSZXF1aXJlZFwiXHJcbiAgICAgICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtam9iLXRpdGxlJ1wiID4gPC9hcHAtam9iLXRpdGxlPiAgXHJcbiAgICBcclxuICAgIDxhcHAtYmFuay1kZXRhaWxzIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtYmFuay1kZXRhaWxzJ1wiICNiYW5rZHRscz5cclxuICAgIDwvYXBwLWJhbmstZGV0YWlscz5cclxuXHJcbiAgICA8YXBwLW9mZmxpbmUtYmFuay1kZXRhaWxzIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtb2ZmbGluZS1iYW5rLWRldGFpbHMnXCIgI2JhbmtkdGxzPlxyXG4gICAgPC9hcHAtb2ZmbGluZS1iYW5rLWRldGFpbHM+XHJcblxyXG4gICAgPGFwcC1yZXF1YWxpZnktbGlmdC1wcmV2aW91cy1pc3N1ZXMgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1yZXF1YWxpZnktbGlmdC1wcmV2aW91cy1pc3N1ZXMnXCJcclxuICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFtjb21wb25lbnREYXRhXT1cInF1ZXN0aW9uLmNvbXBvbmVudERhdGFcIiBbZm9ybV09XCJmb3JtXCIgW3F1ZXN0aW9uXT1cInF1ZXN0aW9uXCI+XHJcbiAgICA8L2FwcC1yZXF1YWxpZnktbGlmdC1wcmV2aW91cy1pc3N1ZXM+IFxyXG4gICAgPGFwcC1kZXBlbmRlbnQtZ3JpZCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWRlcGVuZGVudC1ncmlkJ1wiPjwvYXBwLWRlcGVuZGVudC1ncmlkPlxyXG4gICAgPGFwcC13ZWVrbHktY2VydC1lbXBsb3llci1ncmlkICN3Y0VtcGxveWVyR3JpZCBbZm9ybV09XCJmb3JtXCIgW2R5bmFtaWNQYXJhbV09XCJkeW5hbWljUGFyYW1cIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLXdlZWtseS1jZXJ0LWVtcGxveWVyLWdyaWQnXCI+PC9hcHAtd2Vla2x5LWNlcnQtZW1wbG95ZXItZ3JpZD5cclxuICAgIDxhcHAtc2VhcmNoLWVtcGxveWVyIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIGVtcFR5cGU9XCJSRUdcIiAob25Gb3VuZCk9XCJzZXRFbXBsb3llcigkZXZlbnQpXCIgXHJcbiAgICAob25FbXB0eSk9XCJyZXNldEVtcGxveWVyKClcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLXNlYXJjaC1lbXBsb3llcidcIj48L2FwcC1zZWFyY2gtZW1wbG95ZXI+XHJcbiAgICA8YXBwLWFkZC1wYXJ0aWNpcGFudCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbZHluYW1pY1BhcmFtXT1cImR5bmFtaWNQYXJhbVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtYWRkLXBhcnRpY2lwYW50J1wiPiA8L2FwcC1hZGQtcGFydGljaXBhbnQ+XHJcbiAgICA8YXBwLWFkZC1wYXltZW50IFtwb3RlbnRpYWxJc3N1ZUlkXT1cInBvdGVudGlhbElzc3VlSWRcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWFkZC1wYXltZW50J1wiPjwvYXBwLWFkZC1wYXltZW50PlxyXG4gICAgPGFwcC1saW5rIFtpc1JlcXVpcmVkXT1cInF1ZXN0aW9uLmlzUmVxdWlyZWRcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWxpbmsnXCIgW3RleHRdPVwibGlua0NvbXBvbmVudERhdGE/LnRleHRcIiBbdXJpXT1cImxpbmtDb21wb25lbnREYXRhPy51cmlcIiBbZXh0ZXJuYWxVcmxdPVwibGlua0NvbXBvbmVudERhdGE/LmV4dGVybmFsVXJsXCI+PC9hcHAtbGluaz5cclxuICAgIDxhcHAtc2lnbi1zc24gW2lzUmVxdWlyZWRdPVwicXVlc3Rpb24uaXNSZXF1aXJlZFwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtc2lnbi1zc24nXCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiPjwvYXBwLXNpZ24tc3NuPlxyXG4gICAgPGFwcC1lbXBsb3llci1wYXktZ3JpZCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWVtcGxveWVyLXBheS1ncmlkJ1wiPjwvYXBwLWVtcGxveWVyLXBheS1ncmlkPlxyXG4gICAgPGFwcC1zbXMgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1zbXMnXCIgW3F1ZXN0aW9uXT1cInF1ZXN0aW9uXCIgW2Zvcm1dPVwiZm9ybVwiXHJcbiAgICAgKGFjY2VwdGVkKT1cIm9uQWNjZXB0ZWRPdHAoJGV2ZW50KVwiPjwvYXBwLXNtcz5cclxuICAgIDxhcHAtZmFybS11c2FnZSBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWZhcm0tdXNhZ2UnXCI+PC9hcHAtZmFybS11c2FnZT5cclxuICAgIDxhcHAtd2FnZS1ncmlkIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtd2FnZS1ncmlkJ1wiPjwvYXBwLXdhZ2UtZ3JpZD5cclxuICAgIDxhcHAtZ3Jvc3MtZWFybmluZ3MgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1ncm9zcy1lYXJuaW5ncydcIj48L2FwcC1ncm9zcy1lYXJuaW5ncz5cclxuICAgIDxhcHAtc2Nyb2xsYWJsZS10ZXh0IFtjb21wb25lbnREYXRhXT1cInF1ZXN0aW9uLmNvbXBvbmVudERhdGFcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLXNjcm9sbGFibGUtdGV4dCdcIj48L2FwcC1zY3JvbGxhYmxlLXRleHQ+XHJcbiAgICA8YXBwLWVtcGxveWVyLWluZm8gW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1lbXBsb3llci1pbmZvJ1wiPjwvYXBwLWVtcGxveWVyLWluZm8+XHJcbiAgICA8YXBwLWlkbWUgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1pZG1lJ1wiPjwvYXBwLWlkbWU+XHJcbiAgICA8YXBwLXdhZ2UtY2FsY3VsYXRvciBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLXdhZ2UtY2FsY3VsYXRvcidcIj48L2FwcC13YWdlLWNhbGN1bGF0b3I+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5pbmRlbnQhPTEgJiYgcXVlc3Rpb24udHlwZSE9J2h0bWwnICYmIHF1ZXN0aW9uLnR5cGUhPSdsYWJlbCcgJiYgcXVlc3Rpb24udHlwZSE9J2hpZGRlbidcIiBjbGFzcz1cImZvcm0tbGFiZWxcIiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cInF1ZXN0aW9uLnRpdGxlIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW0gfCB0cnVzdEh0bWxcIj48L3NwYW4+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi50eXBlPT09J2h0bWwnXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgPGRpdiAgW2lubmVySFRNTF09XCJxdWVzdGlvbi5odG1sIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW0gfCB0cnVzdEh0bWxcIlxyXG4gICAgICBzdHlsZT1cImNvbG9yOnZhcigtLWlvbi1jb2xvci1tZWRpdW0tZ3JheSk7IHBhZGRpbmctdG9wOiAyMHB4O1wiIGNsYXNzPVwiaGVhZGluZ1wiPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDoxM3B4XCI+XHJcbiAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgXHJcbiAgPGRpdiBbbmdTd2l0Y2hdPVwicXVlc3Rpb24udHlwZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RleHQnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0nZGF0ZSdcIj5cclxuICAgICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgICA8cC1jYWxlbmRhciBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCIgW21vbnRoTmF2aWdhdG9yXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwOTlcIiBbc2hvd0ljb25dPVwidHJ1ZVwiIFttaW5EYXRlXT1cInNob3dNaW5EYXRlID8gbWluRGF0ZSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgIFttYXhEYXRlXT1cInNob3dNYXhEYXRlID8gbWF4RGF0ZSA6IG51bGxcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIiBhcHBlbmRUbz1cImJvZHlcIiBkYXRhVHlwZT1cInN0cmluZ1wiXHJcbiAgICAgICAgICAgICAgKG9uQmx1cik9XCJ2YWxpZGF0ZShxdWVzdGlvbilcIiAob25TZWxlY3QpPVwidmFsaWRhdGUocXVlc3Rpb24pXCIgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgXHJcbiAgICAgICAgICAgICAgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIiBbaWNvbkFyaWFMYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPlxyXG4gICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5pbnB1dFR5cGUgJiYgcXVlc3Rpb24uaW5wdXRUeXBlPT09J3RleHQnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5jdXN0b21UYWc9PT0nc3NuJ1wiXHJcbiAgICAgICAgICBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8cC1pbnB1dE1hc2sgbWFzaz1cIjk5OS05OS05OTk5XCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiOTk5LTk5LTk5OTlcIiAob25Db21wbGV0ZSk9XCJ2YWxpZGF0ZShxdWVzdGlvbilcIiAob25Gb2N1cyk9XCJ1bm1hc2soJGV2ZW50KVwiIChvbkJsdXIpPVwibWFzaygkZXZlbnQpXCIgW3R5cGVdPVwidHlwZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj5cclxuICAgICAgICAgIDwvcC1pbnB1dE1hc2s+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0ndGV4dCcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZz09PSdjdXN0b21tYXNrJ1wiXHJcbiAgICAgICAgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgIDxwLWlucHV0TWFzayBtYXNrPVwiOTk5OVwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCI5OTk5XCIgKG9uQ29tcGxldGUpPVwidmFsaWRhdGUocXVlc3Rpb24pXCIgKG9uRm9jdXMpPVwidW5tYXNrKCRldmVudClcIiAob25CbHVyKT1cIm1hc2soJGV2ZW50KVwiIFt0eXBlXT1cInR5cGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+XHJcbiAgICAgICAgPC9wLWlucHV0TWFzaz5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0JyAmJiBxdWVzdGlvbi5jdXN0b21UYWcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnPT09J2VhbidcIlxyXG4gICAgICAgICAgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPHAtaW5wdXRNYXNrIG1hc2s9XCI5OS05OTk5OS05LTk5XCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiOTktOTk5OTktOS05OVwiIFt2YWx1ZV09XCI4MS0wMDU4Ni0wLTAxXCIgKG9uQ29tcGxldGUpPVwidmFsaWRhdGUocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICA8L3AtaW5wdXRNYXNrPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0ndGV4dCcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZz09PSdkdWVhbXQnXCJcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxwLWlucHV0TnVtYmVyIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBtb2RlPVwiZGVjaW1hbFwiIGxvY2FsZT1cImVuLVVTXCJcclxuICAgICAgICAgICAgW21pbkZyYWN0aW9uRGlnaXRzXT1cIjJcIiBbYXJpYUxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuXHJcblxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0JyAmJiAoIXF1ZXN0aW9uLmN1c3RvbVRhZyAgfHwgIHF1ZXN0aW9uLmN1c3RvbVRhZz09PSdPcHRpb25hbCcpICYmICFxdWVzdGlvbi5pc1JlcXVpcmVkXCJcclxuICAgICAgICAgICBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cInF1ZXN0aW9uLnNpemUgJiYgcXVlc3Rpb24ubWF4TGVuZ3RoXCJcclxuICAgICAgICAgICAgW21heExlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGhcIiBbcGxhY2Vob2xkZXJdPVwiKHF1ZXN0aW9uLnBsYWNlaG9sZGVyIHx8IHF1ZXN0aW9uLnBsYWNlaG9sZGVyID09PSAnJykgPyBxdWVzdGlvbi5wbGFjZWhvbGRlcjonT3B0aW9uYWwnXCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0XHJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIi8+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cInF1ZXN0aW9uLnNpemUgJiYgIXF1ZXN0aW9uLm1heExlbmd0aFwiICBbcGxhY2Vob2xkZXJdPVwiIChxdWVzdGlvbi5wbGFjZWhvbGRlciB8fCBxdWVzdGlvbi5wbGFjZWhvbGRlciA9PT0gJycpID8gcXVlc3Rpb24ucGxhY2Vob2xkZXI6J09wdGlvbmFsJ1wiXHJcbiAgICAgICAgICAgIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIvPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCIhcXVlc3Rpb24uc2l6ZSAmJiBxdWVzdGlvbi5tYXhMZW5ndGhcIiBbbWF4TGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aFwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiKHF1ZXN0aW9uLnBsYWNlaG9sZGVyIHx8IHF1ZXN0aW9uLnBsYWNlaG9sZGVyID09PSAnJykgPyBxdWVzdGlvbi5wbGFjZWhvbGRlcjonT3B0aW9uYWwnXCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIC8+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cIiFxdWVzdGlvbi5zaXplICYmICFxdWVzdGlvbi5tYXhMZW5ndGhcIiBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIHBJbnB1dFRleHRcclxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW3BsYWNlaG9sZGVyXT1cIihxdWVzdGlvbi5wbGFjZWhvbGRlciB8fCBxdWVzdGlvbi5wbGFjZWhvbGRlciA9PT0gJycpID8gcXVlc3Rpb24ucGxhY2Vob2xkZXI6J09wdGlvbmFsJ1wiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIi8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcblxyXG4gICAgICAgIDwhLS1Vc2VyIE5hbWUtLT5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0JyAmJiAhcXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmlzUmVxdWlyZWRcIlxyXG4gICAgICAgICAgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCJxdWVzdGlvbi5zaXplICYmIHF1ZXN0aW9uLm1heExlbmd0aFwiIFxyXG4gICAgICAgICAgICBbbWF4TGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aFwiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgXHJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIi8+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cInF1ZXN0aW9uLnNpemUgJiYgIXF1ZXN0aW9uLm1heExlbmd0aFwiICBbaWRdPVwicXVlc3Rpb24ubmFtZVwiXHJcbiAgICAgICAgICAgIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIi8+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cIiFxdWVzdGlvbi5zaXplICYmIHF1ZXN0aW9uLm1heExlbmd0aFwiIFttYXhMZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoXCJcclxuICAgICAgICAgICAgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCIvPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCIhcXVlc3Rpb24uc2l6ZSAmJiAhcXVlc3Rpb24ubWF4TGVuZ3RoXCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0XHJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCIvPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIXF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5jdXN0b21UYWcgJiYgICFxdWVzdGlvbi5jdXN0b21UYWcuaW5jbHVkZXMoJ3Bob25lJylcIlxyXG4gICAgICAgICAgW25nU3R5bGVdPVwieydwYWRkaW5nLWxlZnQucHgnOiBxdWVzdGlvbi5pbmRlbnQqMTB9XCIgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCIvPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5jdXN0b21UYWcuaW5jbHVkZXMoJ3Bob25lJylcIj5cclxuICAgICAgICAgIDxwLWlucHV0TWFzayBtYXNrPVwiOTk5LTk5OS05OTk5XCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24uaXNSZXF1aXJlZCA/ICc5OTktOTk5LTk5OTknIDogJ09wdGlvbmFsJ1wiXHJcbiAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0J1wiIChvbkJsdXIpPVwiY2hlY2tGb3JWYWx1ZUNoYW5nZSgkZXZlbnQpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPlxyXG4gICAgICAgICAgPC9wLWlucHV0TWFzaz5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5jdXN0b21UYWcuaW5jbHVkZXMoJ3Bhc3N3b3JkJylcIj5cclxuICAgICAgICAgIDxwLXBhc3N3b3JkIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbdG9nZ2xlTWFza109XCJ0cnVlXCIgW21heExlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGhcIiB3ZWFrTGFiZWw9XCJXZWFrIHBhc3N3b3JkXCIgXHJcbiAgICAgICAgICBtZWRpdW1MYWJlbD1cIldlYWsgcGFzc3dvcmRcIiBzdHJvbmdMYWJlbD1cIlN0cm9uZyBwYXNzd29yZFwiIHN0cm9uZ1JlZ2V4PVwiXig/PS4qW2Etel0pKD89LipbQS1aXSkoPz0uKlswLTldKSg/PS4qW19AKiQhIy5dKy4qW19AKiQhIy5dKSg/PS57MTQsfSlcIiBbYXJpYUxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiPlxyXG4gICAgICAgICAgICAgIDxwLWRpdmlkZXI+PC9wLWRpdmlkZXI+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtdC0xXCIgc3R5bGU9XCJmb250LXNpemU6IHNtYWxsO1wiPlBhc3N3b3JkIG11c3QgaW5jbHVkZSBhdCBsZWFzdDwvcD5cclxuICAgICAgICAgICAgICA8dWwgc3R5bGU9XCJsaW5lLWhlaWdodDogMS4yNVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTI1cHg7IGZvbnQtc2l6ZTogc21hbGw7XCI+MSBsb3dlcmNhc2UgbGV0dGVyPC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0yNXB4OyBmb250LXNpemU6IHNtYWxsO1wiPjEgdXBwZXJjYXNlIGxldHRlcjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMjVweDsgZm9udC1zaXplOiBzbWFsbDtcIj4xIG51bWJlcjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMjVweDsgZm9udC1zaXplOiBzbWFsbDtcIiAqbmdJZj1cIiFpc1NhbWVTeW1ib2xQb2xpY3lGb3JDbGFpbWFudEFuZEFnZW5jeVwiPjEgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIDxiPl8gJiM2NDsgKiAkICEgIyAuPC9iPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMjVweDsgZm9udC1zaXplOiBzbWFsbDtcIiAqbmdJZj1cImlzU2FtZVN5bWJvbFBvbGljeUZvckNsYWltYW50QW5kQWdlbmN5XCI+MiBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnMgPGI+XyAmIzY0OyAqICQgISAjIC48L2I+PC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0yNXB4OyBmb250LXNpemU6IHNtYWxsO1wiICpuZ0lmPVwiIWlzTmV3UGFzc3dvcmRQb2xpY3lFbmFibGVkRm9yQ2xhaW1hbnRcIj44IGNoYXJhY3RlcnM8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTI1cHg7IGZvbnQtc2l6ZTogc21hbGw7XCIgKm5nSWY9XCJpc05ld1Bhc3N3b3JkUG9saWN5RW5hYmxlZEZvckNsYWltYW50XCI+MTQgY2hhcmFjdGVyczwvbGk+XHJcbiAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICA8cC1kaXZpZGVyPjwvcC1kaXZpZGVyPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwibXQtMVwiIHN0eWxlPVwiZm9udC1zaXplOiBzbWFsbDtcIj5TdWdnZXN0aW9uPC9wPlxyXG4gICAgICAgICAgICAgIDx1bCBzdHlsZT1cImxpbmUtaGVpZ2h0OiAxLjI1XCI+XHJcbiAgICAgICAgICAgICAgICA8bGkgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTI1cHg7IGZvbnQtc2l6ZTogc21hbGw7XCI+RG9uJ3QgdXNlIHlvdXIgbmFtZSwgZW1haWwgb3IgcGhvbmU8L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0yNXB4OyBmb250LXNpemU6IHNtYWxsO1wiPkRvbid0IHVzZSB5b3VyIGtpZCwgcGFydG5lciBvciBwZXQgbmFtZS48L2xpPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9wLXBhc3N3b3JkPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZy5pbmNsdWRlcygnZmlsZXVwbG9hZCcpXCI+XHJcbiAgICAgICAgICA8YXBwLWZpbGUtdXBsb2FkZXIgW2FsbG93ZWRGaWxlVHlwZV09XCJxdWVzdGlvbi5hbGxvd2VkRmlsZVR5cGVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIlxyXG4gICAgICAgICAgICBbbWF4U2l6ZUluTUJdPVwicXVlc3Rpb24uc2l6ZUluTUJcIiBbbXVsdGlwbGVdPVwicXVlc3Rpb24ubXVsdGlwbGVcIiBbbm9PZkZpbGVzVG9VcGxvYWRdPVwicXVlc3Rpb24ubm9PRkZpbGVzXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPlxyXG4gICAgICAgICAgPC9hcHAtZmlsZS11cGxvYWRlcj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLUVtYWlsIEFkZHJlc3MtLT5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAgJiYgcXVlc3Rpb24uaW5wdXRUeXBlPT09J3RleHQnXHJcbiAgICAgICAgICAgICAgICAgICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyAgJiYgKHF1ZXN0aW9uLmN1c3RvbVRhZyE9J3NzbicgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0nT3B0aW9uYWwnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyE9J2ZpbGV1cGxvYWQnICBcclxuICAgICAgICAgICAgICAgICAgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0ncGhvbmUnICAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdlYW4nICAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdkdWVhbXQnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyE9J3Bhc3N3b3JkJ1xyXG4gICAgICAgICAgICAgICAgICAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdjdXN0b21tYXNrJylcIj5cclxuICAgICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFxyXG4gICAgICAgICAgICAoYmx1cik9XCJjaGVja0ZvclZhbHVlQ2hhbmdlKCRldmVudClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIXF1ZXN0aW9uLmlucHV0VHlwZSAmJiAhcXVlc3Rpb24uY3VzdG9tVGFnXCIgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLnNpemVcIiAgcElucHV0VGV4dFxyXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiLz5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCIhcXVlc3Rpb24uc2l6ZVwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgXHJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIDwvaW9uLWNvbD5cclxuICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLXRvcDogMTJweFwiPlxyXG4gICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICA8L2lvbi1jb2w+XHJcbiAgICAgIDwvaW9uLXJvdz4gLS0+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6M3B4XCI+XHJcbiAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY29tbWVudCdcIj5cclxuICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCIgKm5nSWY9XCJxdWVzdGlvbi5tYXhMZW5ndGhcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XHJcbiAgICAgICAgPHRleHRhcmVhIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgYXV0b1Jlc2l6ZT1cInRydWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIlxyXG4gICAgICAgICAgW21heExlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGhcIiBbcm93c109XCIzXCIgW2NvbHNdPVwiMzVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIj48L3RleHRhcmVhPlxyXG4gICAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDNweDsgcGFkZGluZy10b3A6M3B4XCI+XHJcbiAgICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCIgKm5nSWY9XCIhcXVlc3Rpb24ubWF4TGVuZ3RoXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyO1wiPlxyXG4gICAgICAgIDx0ZXh0YXJlYSBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIGF1dG9SZXNpemU9XCJ0cnVlXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW3Jvd3NdPVwiM1wiXHJcbiAgICAgICAgICBbY29sc109XCIzNVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAzcHg7IHBhZGRpbmctdG9wOjNweFwiPlxyXG4gICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZHJvcGRvd24nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8cC1hdXRvQ29tcGxldGUgKm5nSWY9XCJmYWxzZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFtzdWdnZXN0aW9uc109XCJmaWx0ZXJSZXN1bHRcIiBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgICAoY29tcGxldGVNZXRob2QpPVwiZmlsdGVyVmFsdWUoJGV2ZW50LHF1ZXN0aW9uKVwiIGZpZWxkPVwidGV4dFwiIFtkcm9wZG93bl09XCJ0cnVlXCIgbWluTGVuZ3RoPVwiMVwiXHJcbiAgICAgICAgICAgIFtmb3JjZVNlbGVjdGlvbl09XCJ0cnVlXCIgKG9uU2VsZWN0KT1cIm9uU2VsZWN0KCRldmVudCxxdWVzdGlvbi5uYW1lKVwiIFtjb21wbGV0ZU9uRm9jdXNdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXZhbHVlIHBUZW1wbGF0ZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdj57e3ZhbHVlLnRleHR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9wLWF1dG9Db21wbGV0ZT5cclxuICAgICAgICAgIDxhcHAtZHJvcGRvd24gW29wdGlvbnNdPVwiZmlsdGVyUmVzdWx0XCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgIChvbkNoYW5nZSk9XCJvblNlbGVjdCgkZXZlbnQscXVlc3Rpb24ubmFtZSlcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIChvbkNsaWNrKT1cImZpbHRlclZhbHVlKCRldmVudCxxdWVzdGlvbilcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCJcclxuICAgICAgICAgIFthcmlhTGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6M3B4XCI+XHJcbiAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3JhZGlvZ3JvdXAnIFwiPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicXVlc3Rpb24uY2hvaWNlc1wiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIiAob25PcHRpb25DbGljayk9XCJvblJhZGlvT3B0aW9uQ2xpY2soJGV2ZW50LHF1ZXN0aW9uKVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6M3B4XCI+XHJcbiAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyJ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPHAtaW5wdXROdW1iZXIgZm9ybUNvbnRyb2xOYW1lPVwie3txdWVzdGlvbi5uYW1lfX1cIiBtb2RlPVwiZGVjaW1hbFwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbdXNlR3JvdXBpbmddPVwiZmFsc2VcIlxyXG4gICAgICAgICAgW21pbl09XCJtaW5WYWx1ZVwiIFttYXhdPVwibWF4VmFsdWVcIlxyXG4gICAgICAgICAgW3NpemVdPVwicXVlc3Rpb24uc2l6ZSA/IHF1ZXN0aW9uLnNpemUgOiBudWxsXCIgW21heGxlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGggPyBxdWVzdGlvbi5tYXhMZW5ndGggOiBudWxsXCIgW2FyaWFMYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCIgW3JlcXVpcmVkXT1cInF1ZXN0aW9uLmlzUmVxdWlyZWRcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6M3B4XCI+XHJcbiAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGVjaW1hbCdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGZvcm1Db250cm9sTmFtZT1cInt7cXVlc3Rpb24ubmFtZX19XCIgbW9kZT1cImRlY2ltYWxcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCIgW3VzZUdyb3VwaW5nXT1cImZhbHNlXCIgXHJcbiAgICAgICAgICBbbWluRnJhY3Rpb25EaWdpdHNdPVwiMlwiIFttYXhGcmFjdGlvbkRpZ2l0c109XCIyXCIgW21pbl09XCJtaW5WYWx1ZVwiIFxyXG4gICAgICAgICAgW21heF09XCJtYXhWYWx1ZVwiIFtzaXplXT1cInF1ZXN0aW9uLnNpemUgPyBxdWVzdGlvbi5zaXplIDogbnVsbFwiICBbbWF4bGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aCA/IHF1ZXN0aW9uLm1heExlbmd0aCA6IG51bGxcIiBbYXJpYUxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIiBbcmVxdWlyZWRdPVwicXVlc3Rpb24uaXNSZXF1aXJlZFwiPjwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj5cclxuICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidjdXJyZW5jeSdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGZvcm1Db250cm9sTmFtZT1cInt7cXVlc3Rpb24ubmFtZX19XCIgbW9kZT1cImN1cnJlbmN5XCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFt1c2VHcm91cGluZ109XCJmYWxzZVwiIFxyXG4gICAgICAgICAgW21pbkZyYWN0aW9uRGlnaXRzXT1cIjJcIiBbbWF4RnJhY3Rpb25EaWdpdHNdPVwiMlwiIGN1cnJlbmN5PVwiVVNEXCIgW21pbl09XCJtaW5WYWx1ZVwiIFxyXG4gICAgICAgICAgW21heF09XCJtYXhWYWx1ZVwiIFtzaXplXT1cInF1ZXN0aW9uLnNpemUgPyBxdWVzdGlvbi5zaXplIDogbnVsbFwiICBbbWF4bGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aCA/IHF1ZXN0aW9uLm1heExlbmd0aCA6IG51bGxcIiBcclxuICAgICAgICAgIFthcmlhTGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCIgW3JlcXVpcmVkXT1cInF1ZXN0aW9uLmlzUmVxdWlyZWRcIj48L3AtaW5wdXROdW1iZXI+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=