@reusa/ngx-reusa-app-lib 0.0.1333 → 0.0.1335

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