@reusa/ngx-reusa-app-lib 0.0.732 → 0.1.731

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 (472) hide show
  1. package/{esm2020 → esm2022}/lib/annimations/app-animations.mjs +36 -36
  2. package/esm2022/lib/components/add-employer/add-employer.component.mjs +3027 -0
  3. package/esm2022/lib/components/add-participant/add-participant.component.mjs +394 -0
  4. package/esm2022/lib/components/add-payment/add-payment.component.mjs +187 -0
  5. package/esm2022/lib/components/address/address.component.mjs +487 -0
  6. package/esm2022/lib/components/bank-details/bank-details.component.mjs +276 -0
  7. package/esm2022/lib/components/captcha/captcha.component.mjs +181 -0
  8. package/esm2022/lib/components/card/card.component.mjs +55 -0
  9. package/esm2022/lib/components/contact-us/contact-us.component.mjs +970 -0
  10. package/esm2022/lib/components/content/content.component.mjs +61 -0
  11. package/esm2022/lib/components/correspondence-download/correspondence-download.component.mjs +83 -0
  12. package/esm2022/lib/components/dashboard-card/dashboard-card.component.mjs +223 -0
  13. package/esm2022/lib/components/dependent-grid/dependent-grid.component.mjs +292 -0
  14. package/esm2022/lib/components/disclosure/disclosure.component.mjs +60 -0
  15. package/esm2022/lib/components/dropdown/dropdown.component.mjs +1974 -0
  16. package/esm2022/lib/components/dropdown/dropdown.interface.mjs +2 -0
  17. package/esm2022/lib/components/email-update/email-update.component.mjs +283 -0
  18. package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +794 -0
  19. package/esm2022/lib/components/error/error.component.mjs +86 -0
  20. package/esm2022/lib/components/fav-menu/fav-menu.component.mjs +163 -0
  21. package/{esm2020 → esm2022}/lib/components/file-download/file-download.component.mjs +104 -104
  22. package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +315 -0
  23. package/esm2022/lib/components/footer/footer.component.mjs +332 -0
  24. package/esm2022/lib/components/header/header.component.mjs +558 -0
  25. package/esm2022/lib/components/help/help.component.mjs +49 -0
  26. package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +65 -0
  27. package/{esm2020 → esm2022}/lib/components/info/info.component.mjs +187 -188
  28. package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +206 -0
  29. package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +193 -0
  30. package/esm2022/lib/components/maintenance-detector/maintenance-detector.component.mjs +43 -0
  31. package/esm2022/lib/components/mask/mask.component.mjs +48 -0
  32. package/esm2022/lib/components/menu/menu.component.mjs +423 -0
  33. package/esm2022/lib/components/mfa/mfa.component.mjs +444 -0
  34. package/esm2022/lib/components/mfa-popup/mfa-popup.component.mjs +50 -0
  35. package/esm2022/lib/components/money-expect/money-expect.component.mjs +90 -0
  36. package/esm2022/lib/components/msg/msg.component.mjs +48 -0
  37. package/esm2022/lib/components/news/news.component.mjs +90 -0
  38. package/esm2022/lib/components/overlay-info/overlay-info.component.mjs +213 -0
  39. package/esm2022/lib/components/page/page.component.mjs +136 -0
  40. package/esm2022/lib/components/profile/profile.component.mjs +177 -0
  41. package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +63 -0
  42. package/esm2022/lib/components/questionnaire/AppValidators.mjs +487 -0
  43. package/{esm2020 → esm2022}/lib/components/questionnaire/FbConstants.mjs +7 -7
  44. package/{esm2020 → esm2022}/lib/components/questionnaire/SelectItem.mjs +1 -1
  45. package/esm2022/lib/components/questionnaire/account-success/account-success.page.mjs +256 -0
  46. package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +475 -0
  47. package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +1094 -0
  48. package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +1882 -0
  49. package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +1263 -0
  50. package/esm2022/lib/components/questionnaire/form-builder/form-builder.page.mjs +244 -0
  51. package/{esm2020 → esm2022}/lib/components/questionnaire/input-focus.directive.mjs +44 -44
  52. package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +256 -0
  53. package/{esm2020 → esm2022}/lib/components/questionnaire/question-base.mjs +2 -2
  54. package/{esm2020 → esm2022}/lib/components/questionnaire/question-control.service.mjs +420 -419
  55. package/{esm2020 → esm2022}/lib/components/questionnaire/question.service.mjs +33 -33
  56. package/esm2022/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +262 -0
  57. package/{esm2020 → esm2022}/lib/components/read-more/read-more.component.mjs +67 -67
  58. package/esm2022/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +690 -0
  59. package/esm2022/lib/components/search-employer/search-employer.component.mjs +142 -0
  60. package/esm2022/lib/components/select/select.component.mjs +154 -0
  61. package/esm2022/lib/components/ssn/ssn.component.mjs +44 -0
  62. package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +151 -0
  63. package/esm2022/lib/components/test/test.component.mjs +19 -0
  64. package/esm2022/lib/components/user-login/user-login.component.mjs +398 -0
  65. package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +442 -0
  66. package/esm2022/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +307 -0
  67. package/{esm2020 → esm2022}/lib/directives/auto-focus/auto-focus.directive.mjs +31 -31
  68. package/{esm2020 → esm2022}/lib/directives/caps-lock.directive.mjs +38 -38
  69. package/{esm2020 → esm2022}/lib/directives/required-roles/required-roles.directive.mjs +30 -30
  70. package/{esm2020 → esm2022}/lib/enums/EmailStatusEnum.mjs +8 -8
  71. package/{esm2020 → esm2022}/lib/guards/auth.guard.mjs +138 -138
  72. package/esm2022/lib/guards/no-login/no-login.guard.mjs +21 -0
  73. package/{esm2020 → esm2022}/lib/interceptors/error-interceptor/http-error-interceptor.mjs +107 -107
  74. package/{esm2020 → esm2022}/lib/interceptors/header-interceptor/http-header.interceptor.mjs +99 -99
  75. package/{esm2020 → esm2022}/lib/models/AddressComponentModel.mjs +2 -2
  76. package/{esm2020 → esm2022}/lib/models/BankDetailsComponentModel.mjs +2 -2
  77. package/{esm2020 → esm2022}/lib/models/BankDetailsModel.mjs +3 -3
  78. package/{esm2020 → esm2022}/lib/models/CinRequalificationCriteriaModel.mjs +3 -3
  79. package/{esm2020 → esm2022}/lib/models/EmployerDetailSearchResult.mjs +5 -5
  80. package/{esm2020 → esm2022}/lib/models/ErrorModel.mjs +5 -5
  81. package/{esm2020 → esm2022}/lib/models/FileModel.mjs +1 -1
  82. package/{esm2020 → esm2022}/lib/models/LibConstants.mjs +119 -119
  83. package/{esm2020 → esm2022}/lib/models/NewsAndAnnouncementModel.mjs +2 -2
  84. package/{esm2020 → esm2022}/lib/models/NotificationModel.mjs +5 -5
  85. package/{esm2020 → esm2022}/lib/models/OtpAuthModel.mjs +2 -2
  86. package/{esm2020 → esm2022}/lib/models/PaymentComponentModel.mjs +2 -2
  87. package/esm2022/lib/models/RequalifyLiftPageModel.mjs +11 -0
  88. package/{esm2020 → esm2022}/lib/models/SsaVerificationModel.mjs +3 -3
  89. package/{esm2020 → esm2022}/lib/models/TrendModel.mjs +2 -2
  90. package/{esm2020 → esm2022}/lib/models/UserDetailsModel.mjs +2 -2
  91. package/{esm2020 → esm2022}/lib/models/UserModel.mjs +5 -5
  92. package/{esm2020 → esm2022}/lib/models/case/CaseAttachmentModel.mjs +3 -3
  93. package/{esm2020 → esm2022}/lib/models/claimant/ClaimantModel.mjs +2 -2
  94. package/{esm2020 → esm2022}/lib/models/claimant/JobResultsData.mjs +2 -2
  95. package/{esm2020 → esm2022}/lib/models/claimant/MatchingJobs.mjs +2 -2
  96. package/{esm2020 → esm2022}/lib/models/claimant/ResetPasswordModel.mjs +2 -2
  97. package/esm2022/lib/models/cmp/CaseCoreModel.mjs +3 -0
  98. package/{esm2020 → esm2022}/lib/models/cmp/ComplaintCategoryModel.mjs +3 -3
  99. package/{esm2020 → esm2022}/lib/models/cmp/ComplaintCategoryOutputModel.mjs +5 -5
  100. package/esm2022/lib/models/cmp/ContactUsModel.mjs +3 -0
  101. package/{esm2020 → esm2022}/lib/models/cmp/EmailTemplateModel.mjs +3 -3
  102. package/esm2022/lib/models/cmp/contactUsInqueryModel.mjs +7 -0
  103. package/{esm2020 → esm2022}/lib/models/cmp/messageRourceModel.mjs +3 -3
  104. package/esm2022/lib/models/dashboard-model.mjs +3 -0
  105. package/esm2022/lib/models/dependent.model.mjs +8 -0
  106. package/{esm2020 → esm2022}/lib/models/questionnaire/ClaimAppEmpRequestModel.mjs +2 -2
  107. package/{esm2020 → esm2022}/lib/models/questionnaire/ClaimAppEmpResponseModel.mjs +7 -7
  108. package/{esm2020 → esm2022}/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +5 -5
  109. package/{esm2020 → esm2022}/lib/models/questionnaire/ClaimOnlyEmployerDataModel.mjs +2 -2
  110. package/esm2022/lib/models/questionnaire/ComboModel.mjs +337 -0
  111. package/{esm2020 → esm2022}/lib/models/questionnaire/ElementsModel.mjs +7 -7
  112. package/{esm2020 → esm2022}/lib/models/questionnaire/EmployerDetailSearchResult.mjs +2 -2
  113. package/{esm2020 → esm2022}/lib/models/questionnaire/EmployerWagesModel.mjs +3 -3
  114. package/{esm2020 → esm2022}/lib/models/questionnaire/FBConfigModel.mjs +5 -5
  115. package/{esm2020 → esm2022}/lib/models/questionnaire/KeyValueModel.mjs +2 -2
  116. package/{esm2020 → esm2022}/lib/models/questionnaire/LegalDiscaimarModel.mjs +2 -2
  117. package/{esm2020 → esm2022}/lib/models/questionnaire/LoaderModel.mjs +2 -2
  118. package/{esm2020 → esm2022}/lib/models/questionnaire/PollingStatusModel.mjs +3 -3
  119. package/{esm2020 → esm2022}/lib/models/questionnaire/QtrYearEmployerWageModel.mjs +2 -2
  120. package/{esm2020 → esm2022}/lib/models/questionnaire/QuestionnaireQueryModel.mjs +7 -7
  121. package/{esm2020 → esm2022}/lib/models/questionnaire/QuestionnaireReturnModel.mjs +10 -10
  122. package/{esm2020 → esm2022}/lib/models/questionnaire/QuestionnaireSaveModel.mjs +2 -2
  123. package/esm2022/lib/models/questionnaire/RequalifyLiftIssuesModel.mjs +3 -0
  124. package/{esm2020 → esm2022}/lib/models/questionnaire/ServiceActionResponseModel.mjs +3 -3
  125. package/esm2022/lib/models/questionnaire/StatusModel.mjs +6 -0
  126. package/{esm2020 → esm2022}/lib/models/questionnaire/SuccessPageElement.mjs +2 -2
  127. package/esm2022/lib/models/questionnaire/UI512AResponseModel.mjs +3 -0
  128. package/{esm2020 → esm2022}/lib/models/questionnaire/ValidationModel.mjs +2 -2
  129. package/esm2022/lib/ngx-reusa-app-lib.component.mjs +23 -0
  130. package/esm2022/lib/ngx-reusa-app-lib.module.mjs +402 -0
  131. package/{esm2020 → esm2022}/lib/ngx-reusa-app-lib.service.mjs +14 -14
  132. package/{esm2020 → esm2022}/lib/pages/BasePage.mjs +76 -76
  133. package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +81 -0
  134. package/esm2022/lib/pages/common/change-password/change-password.page.mjs +463 -0
  135. package/esm2022/lib/pages/common/landing/landing.component.mjs +208 -0
  136. package/esm2022/lib/pages/common/landing2/landing2.component.mjs +244 -0
  137. package/esm2022/lib/pages/common/login/login.component.mjs +526 -0
  138. package/esm2022/lib/pages/common/not-found/not-found.page.mjs +24 -0
  139. package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +306 -0
  140. package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +61 -0
  141. package/esm2022/lib/pages/common/unauthorized/unauthorized.page.mjs +24 -0
  142. package/esm2022/lib/pages/popovers/language/language.page.mjs +61 -0
  143. package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +204 -0
  144. package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +129 -0
  145. package/esm2022/lib/pages/popovers/user-search/user-search.component.mjs +251 -0
  146. package/{esm2020 → esm2022}/lib/pipes/filter.pipe.mjs +30 -30
  147. package/{esm2020 → esm2022}/lib/pipes/mask/mask.email.pipe.mjs +23 -23
  148. package/{esm2020 → esm2022}/lib/pipes/proper-case/proper-case.pipe.mjs +27 -27
  149. package/{esm2020 → esm2022}/lib/pipes/translate/dynamic-translate.pipe.mjs +44 -44
  150. package/{esm2020 → esm2022}/lib/pipes/trust-html/trust-html.pipe.mjs +20 -20
  151. package/{esm2020 → esm2022}/lib/services/base-service.mjs +49 -49
  152. package/{esm2020 → esm2022}/lib/services/captcha/captcha.service.mjs +46 -46
  153. package/{esm2020 → esm2022}/lib/services/case-service/case.service.mjs +47 -47
  154. package/{esm2020 → esm2022}/lib/services/chatbot/chatbot.service.mjs +257 -257
  155. package/esm2022/lib/services/chatbot/script.const.mjs +42 -0
  156. package/{esm2020 → esm2022}/lib/services/claimant/claimant.service.mjs +31 -31
  157. package/esm2022/lib/services/claimant-context/claimant-context.service.mjs +48 -0
  158. package/{esm2020 → esm2022}/lib/services/claimant-service/claimant.service.mjs +47 -47
  159. package/{esm2020 → esm2022}/lib/services/claims/claims.service.mjs +99 -99
  160. package/{esm2020 → esm2022}/lib/services/cmp-service/cmp.service.mjs +84 -84
  161. package/{esm2020 → esm2022}/lib/services/dms-service/dms.service.mjs +60 -60
  162. package/{esm2020 → esm2022}/lib/services/fpjs/fingerprint.service.mjs +70 -70
  163. package/{esm2020 → esm2022}/lib/services/google-analytics/google-analytics.service.mjs +29 -29
  164. package/{esm2020 → esm2022}/lib/services/help/help.service.mjs +63 -63
  165. package/{esm2020 → esm2022}/lib/services/idle/idle.service.mjs +159 -159
  166. package/{esm2020 → esm2022}/lib/services/logger/logger.service.mjs +67 -67
  167. package/esm2022/lib/services/login/login.service.mjs +330 -0
  168. package/{esm2020 → esm2022}/lib/services/maintenance/maintenance.service.mjs +21 -21
  169. package/{esm2020 → esm2022}/lib/services/notification/notification.service.mjs +113 -113
  170. package/{esm2020 → esm2022}/lib/services/questionnaire/questionnaire.service.mjs +69 -69
  171. package/{esm2020 → esm2022}/lib/services/questionnaire/validation.service.mjs +59 -59
  172. package/{esm2020 → esm2022}/lib/services/security-service/security.service.mjs +35 -35
  173. package/{esm2020 → esm2022}/lib/services/tour/tour.service.mjs +60 -60
  174. package/{esm2020 → esm2022}/lib/services/util/util.service.mjs +424 -424
  175. package/esm2022/lib/validations/AppRegex.mjs +45 -0
  176. package/{esm2020 → esm2022}/lib/validations/AppValidators.mjs +165 -165
  177. package/{esm2020 → esm2022}/public-api.mjs +131 -131
  178. package/{esm2020 → esm2022}/reusa-ngx-reusa-app-lib.mjs +4 -4
  179. package/{fesm2020 → fesm2022}/reusa-ngx-reusa-app-lib.mjs +27966 -27877
  180. package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -0
  181. package/index.d.ts +5 -5
  182. package/lib/annimations/app-animations.d.ts +3 -3
  183. package/lib/components/add-employer/add-employer.component.d.ts +276 -276
  184. package/lib/components/add-participant/add-participant.component.d.ts +45 -45
  185. package/lib/components/add-payment/add-payment.component.d.ts +33 -33
  186. package/lib/components/address/address.component.d.ts +68 -68
  187. package/lib/components/address/address.component.d.ts.map +1 -1
  188. package/lib/components/bank-details/bank-details.component.d.ts +39 -39
  189. package/lib/components/captcha/captcha.component.d.ts +44 -44
  190. package/lib/components/card/card.component.d.ts +11 -11
  191. package/lib/components/contact-us/contact-us.component.d.ts +105 -107
  192. package/lib/components/contact-us/contact-us.component.d.ts.map +1 -1
  193. package/lib/components/content/content.component.d.ts +13 -13
  194. package/lib/components/correspondence-download/correspondence-download.component.d.ts +21 -21
  195. package/lib/components/dashboard-card/dashboard-card.component.d.ts +25 -25
  196. package/lib/components/dashboard-card/dashboard-card.component.d.ts.map +1 -1
  197. package/lib/components/dependent-grid/dependent-grid.component.d.ts +35 -35
  198. package/lib/components/disclosure/disclosure.component.d.ts +12 -12
  199. package/lib/components/dropdown/dropdown.component.d.ts +581 -207
  200. package/lib/components/dropdown/dropdown.component.d.ts.map +1 -1
  201. package/lib/components/dropdown/dropdown.interface.d.ts +155 -0
  202. package/lib/components/dropdown/dropdown.interface.d.ts.map +1 -0
  203. package/lib/components/email-update/email-update.component.d.ts +31 -31
  204. package/lib/components/employer-grid/employer-grid.component.d.ts +95 -94
  205. package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
  206. package/lib/components/error/error.component.d.ts +17 -17
  207. package/lib/components/fav-menu/fav-menu.component.d.ts +21 -21
  208. package/lib/components/file-download/file-download.component.d.ts +22 -22
  209. package/lib/components/file-uploader/file-uploader.component.d.ts +47 -47
  210. package/lib/components/footer/footer.component.d.ts +36 -36
  211. package/lib/components/header/header.component.d.ts +59 -58
  212. package/lib/components/header/header.component.d.ts.map +1 -1
  213. package/lib/components/help/help.component.d.ts +10 -10
  214. package/lib/components/idle-detector/idle-detector.component.d.ts +15 -15
  215. package/lib/components/info/info.component.d.ts +22 -22
  216. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +21 -21
  217. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +33 -33
  218. package/lib/components/maintenance-detector/maintenance-detector.component.d.ts +15 -15
  219. package/lib/components/mask/mask.component.d.ts +11 -11
  220. package/lib/components/menu/menu.component.d.ts +43 -43
  221. package/lib/components/mfa/mfa.component.d.ts +59 -59
  222. package/lib/components/mfa-popup/mfa-popup.component.d.ts +16 -16
  223. package/lib/components/money-expect/money-expect.component.d.ts +18 -18
  224. package/lib/components/msg/msg.component.d.ts +10 -10
  225. package/lib/components/news/news.component.d.ts +14 -14
  226. package/lib/components/overlay-info/overlay-info.component.d.ts +34 -34
  227. package/lib/components/page/page.component.d.ts +23 -23
  228. package/lib/components/profile/profile.component.d.ts +28 -28
  229. package/lib/components/profile-redirect/profile-redirect.component.d.ts +13 -13
  230. package/lib/components/questionnaire/AppValidators.d.ts +14 -14
  231. package/lib/components/questionnaire/AppValidators.d.ts.map +1 -1
  232. package/lib/components/questionnaire/FbConstants.d.ts +7 -7
  233. package/lib/components/questionnaire/SelectItem.d.ts +4 -4
  234. package/lib/components/questionnaire/account-success/account-success.page.d.ts +53 -53
  235. package/lib/components/questionnaire/common-success/common-success.page.d.ts +75 -75
  236. package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
  237. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts +46 -46
  238. package/lib/components/questionnaire/dynamic-form-question.component.d.ts +82 -82
  239. package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
  240. package/lib/components/questionnaire/dynamic-form.component.d.ts +130 -130
  241. package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
  242. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts +66 -64
  243. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts.map +1 -1
  244. package/lib/components/questionnaire/input-focus.directive.d.ts +11 -11
  245. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts +38 -38
  246. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts.map +1 -1
  247. package/lib/components/questionnaire/question-base.d.ts +16 -16
  248. package/lib/components/questionnaire/question-control.service.d.ts +19 -19
  249. package/lib/components/questionnaire/question-control.service.d.ts.map +1 -1
  250. package/lib/components/questionnaire/question.service.d.ts +18 -18
  251. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts +75 -74
  252. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts.map +1 -1
  253. package/lib/components/read-more/read-more.component.d.ts +14 -14
  254. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts +67 -67
  255. package/lib/components/search-employer/search-employer.component.d.ts +37 -36
  256. package/lib/components/search-employer/search-employer.component.d.ts.map +1 -1
  257. package/lib/components/select/select.component.d.ts +55 -55
  258. package/lib/components/ssn/ssn.component.d.ts +11 -11
  259. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +22 -22
  260. package/lib/components/test/test.component.d.ts +8 -8
  261. package/lib/components/user-login/user-login.component.d.ts +48 -48
  262. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +59 -59
  263. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts +45 -45
  264. package/lib/directives/auto-focus/auto-focus.directive.d.ts +12 -12
  265. package/lib/directives/caps-lock.directive.d.ts +11 -11
  266. package/lib/directives/required-roles/required-roles.directive.d.ts +14 -14
  267. package/lib/enums/EmailStatusEnum.d.ts +7 -7
  268. package/lib/guards/auth.guard.d.ts +28 -28
  269. package/lib/guards/auth.guard.d.ts.map +1 -1
  270. package/lib/guards/no-login/no-login.guard.d.ts +11 -11
  271. package/lib/guards/no-login/no-login.guard.d.ts.map +1 -1
  272. package/lib/interceptors/error-interceptor/http-error-interceptor.d.ts +22 -22
  273. package/lib/interceptors/header-interceptor/http-header.interceptor.d.ts +21 -21
  274. package/lib/interceptors/header-interceptor/http-header.interceptor.d.ts.map +1 -1
  275. package/lib/models/AddressComponentModel.d.ts +12 -12
  276. package/lib/models/BankDetailsComponentModel.d.ts +11 -11
  277. package/lib/models/BankDetailsModel.d.ts +4 -4
  278. package/lib/models/CinRequalificationCriteriaModel.d.ts +10 -10
  279. package/lib/models/EmployerDetailSearchResult.d.ts +47 -47
  280. package/lib/models/ErrorModel.d.ts +6 -6
  281. package/lib/models/FileModel.d.ts +4 -4
  282. package/lib/models/LibConstants.d.ts +112 -112
  283. package/lib/models/NewsAndAnnouncementModel.d.ts +5 -5
  284. package/lib/models/NotificationModel.d.ts +10 -10
  285. package/lib/models/OtpAuthModel.d.ts +6 -6
  286. package/lib/models/PaymentComponentModel.d.ts +7 -7
  287. package/lib/models/RequalifyLiftPageModel.d.ts +11 -11
  288. package/lib/models/SsaVerificationModel.d.ts +8 -8
  289. package/lib/models/TrendModel.d.ts +13 -13
  290. package/lib/models/UserDetailsModel.d.ts +9 -9
  291. package/lib/models/UserModel.d.ts +46 -46
  292. package/lib/models/case/CaseAttachmentModel.d.ts +5 -5
  293. package/lib/models/claimant/ClaimantModel.d.ts +22 -22
  294. package/lib/models/claimant/JobResultsData.d.ts +7 -7
  295. package/lib/models/claimant/MatchingJobs.d.ts +12 -12
  296. package/lib/models/claimant/ResetPasswordModel.d.ts +8 -8
  297. package/lib/models/cmp/CaseCoreModel.d.ts +20 -20
  298. package/lib/models/cmp/ComplaintCategoryModel.d.ts +8 -8
  299. package/lib/models/cmp/ComplaintCategoryOutputModel.d.ts +5 -5
  300. package/lib/models/cmp/ContactUsModel.d.ts +22 -22
  301. package/lib/models/cmp/EmailTemplateModel.d.ts +6 -6
  302. package/lib/models/cmp/contactUsInqueryModel.d.ts +46 -46
  303. package/lib/models/cmp/messageRourceModel.d.ts +5 -5
  304. package/lib/models/dashboard-model.d.ts +43 -43
  305. package/lib/models/dependent.model.d.ts +11 -18
  306. package/lib/models/dependent.model.d.ts.map +1 -1
  307. package/lib/models/questionnaire/ClaimAppEmpRequestModel.d.ts +8 -8
  308. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts +16 -16
  309. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +151 -151
  310. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts +16 -16
  311. package/lib/models/questionnaire/ComboModel.d.ts +85 -85
  312. package/lib/models/questionnaire/ElementsModel.d.ts +68 -68
  313. package/lib/models/questionnaire/EmployerDetailSearchResult.d.ts +17 -17
  314. package/lib/models/questionnaire/EmployerWagesModel.d.ts +4 -4
  315. package/lib/models/questionnaire/FBConfigModel.d.ts +11 -11
  316. package/lib/models/questionnaire/KeyValueModel.d.ts +10 -10
  317. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts +10 -10
  318. package/lib/models/questionnaire/LoaderModel.d.ts +4 -4
  319. package/lib/models/questionnaire/PollingStatusModel.d.ts +6 -6
  320. package/lib/models/questionnaire/QtrYearEmployerWageModel.d.ts +8 -8
  321. package/lib/models/questionnaire/QuestionnaireQueryModel.d.ts +23 -23
  322. package/lib/models/questionnaire/QuestionnaireReturnModel.d.ts +20 -20
  323. package/lib/models/questionnaire/QuestionnaireSaveModel.d.ts +24 -24
  324. package/lib/models/questionnaire/RequalifyLiftIssuesModel.d.ts +13 -13
  325. package/lib/models/questionnaire/ServiceActionResponseModel.d.ts +6 -6
  326. package/lib/models/questionnaire/StatusModel.d.ts +15 -15
  327. package/lib/models/questionnaire/SuccessPageElement.d.ts +8 -8
  328. package/lib/models/questionnaire/UI512AResponseModel.d.ts +12 -12
  329. package/lib/models/questionnaire/ValidationModel.d.ts +17 -17
  330. package/lib/ngx-reusa-app-lib.component.d.ts +8 -8
  331. package/lib/ngx-reusa-app-lib.module.d.ts +148 -145
  332. package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -1
  333. package/lib/ngx-reusa-app-lib.service.d.ts +6 -6
  334. package/lib/pages/BasePage.d.ts +26 -26
  335. package/lib/pages/common/accessibility-policy/accessibility-policy.page.d.ts +11 -11
  336. package/lib/pages/common/change-password/change-password.page.d.ts +40 -40
  337. package/lib/pages/common/landing/landing.component.d.ts +24 -24
  338. package/lib/pages/common/landing2/landing2.component.d.ts +30 -30
  339. package/lib/pages/common/login/login.component.d.ts +64 -64
  340. package/lib/pages/common/not-found/not-found.page.d.ts +8 -8
  341. package/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.d.ts +11 -11
  342. package/lib/pages/common/security-policy/security-policy.page.d.ts +11 -11
  343. package/lib/pages/common/unauthorized/unauthorized.page.d.ts +8 -8
  344. package/lib/pages/popovers/language/language.page.d.ts +16 -16
  345. package/lib/pages/popovers/my-notifications/my-notifications.page.d.ts +21 -21
  346. package/lib/pages/popovers/my-profile/my-profile.page.d.ts +20 -20
  347. package/lib/pages/popovers/user-search/user-search.component.d.ts +31 -31
  348. package/lib/pipes/filter.pipe.d.ts +7 -7
  349. package/lib/pipes/mask/mask.email.pipe.d.ts +10 -10
  350. package/lib/pipes/proper-case/proper-case.pipe.d.ts +8 -8
  351. package/lib/pipes/translate/dynamic-translate.pipe.d.ts +10 -10
  352. package/lib/pipes/trust-html/trust-html.pipe.d.ts +10 -10
  353. package/lib/services/base-service.d.ts +92 -92
  354. package/lib/services/captcha/captcha.service.d.ts +15 -15
  355. package/lib/services/case-service/case.service.d.ts +19 -19
  356. package/lib/services/chatbot/chatbot.service.d.ts +60 -60
  357. package/lib/services/chatbot/script.const.d.ts +15 -15
  358. package/lib/services/claimant/claimant.service.d.ts +17 -17
  359. package/lib/services/claimant-context/claimant-context.service.d.ts +18 -18
  360. package/lib/services/claimant-context/claimant-context.service.d.ts.map +1 -1
  361. package/lib/services/claimant-service/claimant.service.d.ts +19 -19
  362. package/lib/services/claims/claims.service.d.ts +39 -39
  363. package/lib/services/cmp-service/cmp.service.d.ts +33 -33
  364. package/lib/services/dms-service/dms.service.d.ts +23 -23
  365. package/lib/services/fpjs/fingerprint.service.d.ts +18 -18
  366. package/lib/services/google-analytics/google-analytics.service.d.ts +8 -8
  367. package/lib/services/help/help.service.d.ts +25 -25
  368. package/lib/services/help/help.service.d.ts.map +1 -1
  369. package/lib/services/idle/idle.service.d.ts +43 -43
  370. package/lib/services/logger/logger.service.d.ts +31 -31
  371. package/lib/services/logger/logger.service.d.ts.map +1 -1
  372. package/lib/services/login/login.service.d.ts +75 -75
  373. package/lib/services/login/login.service.d.ts.map +1 -1
  374. package/lib/services/maintenance/maintenance.service.d.ts +15 -15
  375. package/lib/services/notification/notification.service.d.ts +38 -38
  376. package/lib/services/questionnaire/questionnaire.service.d.ts +35 -35
  377. package/lib/services/questionnaire/validation.service.d.ts +81 -81
  378. package/lib/services/security-service/security.service.d.ts +14 -14
  379. package/lib/services/tour/tour.service.d.ts +24 -24
  380. package/lib/services/util/util.service.d.ts +190 -190
  381. package/lib/validations/AppRegex.d.ts +43 -43
  382. package/lib/validations/AppValidators.d.ts +53 -53
  383. package/package.json +6 -11
  384. package/public-api.d.ts +121 -121
  385. package/esm2020/lib/components/add-employer/add-employer.component.mjs +0 -3099
  386. package/esm2020/lib/components/add-participant/add-participant.component.mjs +0 -396
  387. package/esm2020/lib/components/add-payment/add-payment.component.mjs +0 -186
  388. package/esm2020/lib/components/address/address.component.mjs +0 -480
  389. package/esm2020/lib/components/bank-details/bank-details.component.mjs +0 -275
  390. package/esm2020/lib/components/captcha/captcha.component.mjs +0 -180
  391. package/esm2020/lib/components/card/card.component.mjs +0 -54
  392. package/esm2020/lib/components/contact-us/contact-us.component.mjs +0 -1004
  393. package/esm2020/lib/components/content/content.component.mjs +0 -60
  394. package/esm2020/lib/components/correspondence-download/correspondence-download.component.mjs +0 -82
  395. package/esm2020/lib/components/dashboard-card/dashboard-card.component.mjs +0 -219
  396. package/esm2020/lib/components/dependent-grid/dependent-grid.component.mjs +0 -297
  397. package/esm2020/lib/components/disclosure/disclosure.component.mjs +0 -59
  398. package/esm2020/lib/components/dropdown/dropdown.component.mjs +0 -1552
  399. package/esm2020/lib/components/email-update/email-update.component.mjs +0 -287
  400. package/esm2020/lib/components/employer-grid/employer-grid.component.mjs +0 -800
  401. package/esm2020/lib/components/error/error.component.mjs +0 -85
  402. package/esm2020/lib/components/fav-menu/fav-menu.component.mjs +0 -163
  403. package/esm2020/lib/components/file-uploader/file-uploader.component.mjs +0 -317
  404. package/esm2020/lib/components/footer/footer.component.mjs +0 -337
  405. package/esm2020/lib/components/header/header.component.mjs +0 -566
  406. package/esm2020/lib/components/help/help.component.mjs +0 -48
  407. package/esm2020/lib/components/idle-detector/idle-detector.component.mjs +0 -64
  408. package/esm2020/lib/components/job-search-result-page/job-search-result-page.component.mjs +0 -209
  409. package/esm2020/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +0 -192
  410. package/esm2020/lib/components/maintenance-detector/maintenance-detector.component.mjs +0 -42
  411. package/esm2020/lib/components/mask/mask.component.mjs +0 -48
  412. package/esm2020/lib/components/menu/menu.component.mjs +0 -430
  413. package/esm2020/lib/components/mfa/mfa.component.mjs +0 -451
  414. package/esm2020/lib/components/mfa-popup/mfa-popup.component.mjs +0 -49
  415. package/esm2020/lib/components/money-expect/money-expect.component.mjs +0 -89
  416. package/esm2020/lib/components/msg/msg.component.mjs +0 -48
  417. package/esm2020/lib/components/news/news.component.mjs +0 -89
  418. package/esm2020/lib/components/overlay-info/overlay-info.component.mjs +0 -235
  419. package/esm2020/lib/components/page/page.component.mjs +0 -138
  420. package/esm2020/lib/components/profile/profile.component.mjs +0 -182
  421. package/esm2020/lib/components/profile-redirect/profile-redirect.component.mjs +0 -62
  422. package/esm2020/lib/components/questionnaire/AppValidators.mjs +0 -523
  423. package/esm2020/lib/components/questionnaire/account-success/account-success.page.mjs +0 -259
  424. package/esm2020/lib/components/questionnaire/common-success/common-success.page.mjs +0 -483
  425. package/esm2020/lib/components/questionnaire/dynamic-form-panel.component.mjs +0 -1137
  426. package/esm2020/lib/components/questionnaire/dynamic-form-question.component.mjs +0 -1948
  427. package/esm2020/lib/components/questionnaire/dynamic-form.component.mjs +0 -1257
  428. package/esm2020/lib/components/questionnaire/form-builder/form-builder.page.mjs +0 -240
  429. package/esm2020/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +0 -259
  430. package/esm2020/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +0 -260
  431. package/esm2020/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +0 -703
  432. package/esm2020/lib/components/search-employer/search-employer.component.mjs +0 -142
  433. package/esm2020/lib/components/select/select.component.mjs +0 -153
  434. package/esm2020/lib/components/ssn/ssn.component.mjs +0 -43
  435. package/esm2020/lib/components/ssn-reverify/ssn-reverify.component.mjs +0 -150
  436. package/esm2020/lib/components/test/test.component.mjs +0 -18
  437. package/esm2020/lib/components/user-login/user-login.component.mjs +0 -401
  438. package/esm2020/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +0 -445
  439. package/esm2020/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +0 -308
  440. package/esm2020/lib/guards/no-login/no-login.guard.mjs +0 -21
  441. package/esm2020/lib/models/RequalifyLiftPageModel.mjs +0 -11
  442. package/esm2020/lib/models/cmp/CaseCoreModel.mjs +0 -3
  443. package/esm2020/lib/models/cmp/ContactUsModel.mjs +0 -3
  444. package/esm2020/lib/models/cmp/contactUsInqueryModel.mjs +0 -7
  445. package/esm2020/lib/models/dashboard-model.mjs +0 -3
  446. package/esm2020/lib/models/dependent.model.mjs +0 -8
  447. package/esm2020/lib/models/questionnaire/ComboModel.mjs +0 -337
  448. package/esm2020/lib/models/questionnaire/RequalifyLiftIssuesModel.mjs +0 -3
  449. package/esm2020/lib/models/questionnaire/StatusModel.mjs +0 -6
  450. package/esm2020/lib/models/questionnaire/UI512AResponseModel.mjs +0 -3
  451. package/esm2020/lib/ngx-reusa-app-lib.component.mjs +0 -22
  452. package/esm2020/lib/ngx-reusa-app-lib.module.mjs +0 -390
  453. package/esm2020/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +0 -80
  454. package/esm2020/lib/pages/common/change-password/change-password.page.mjs +0 -477
  455. package/esm2020/lib/pages/common/landing/landing.component.mjs +0 -207
  456. package/esm2020/lib/pages/common/landing2/landing2.component.mjs +0 -244
  457. package/esm2020/lib/pages/common/login/login.component.mjs +0 -542
  458. package/esm2020/lib/pages/common/not-found/not-found.page.mjs +0 -23
  459. package/esm2020/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +0 -305
  460. package/esm2020/lib/pages/common/security-policy/security-policy.page.mjs +0 -60
  461. package/esm2020/lib/pages/common/unauthorized/unauthorized.page.mjs +0 -23
  462. package/esm2020/lib/pages/popovers/language/language.page.mjs +0 -60
  463. package/esm2020/lib/pages/popovers/my-notifications/my-notifications.page.mjs +0 -205
  464. package/esm2020/lib/pages/popovers/my-profile/my-profile.page.mjs +0 -129
  465. package/esm2020/lib/pages/popovers/user-search/user-search.component.mjs +0 -253
  466. package/esm2020/lib/services/chatbot/script.const.mjs +0 -42
  467. package/esm2020/lib/services/claimant-context/claimant-context.service.mjs +0 -47
  468. package/esm2020/lib/services/login/login.service.mjs +0 -330
  469. package/esm2020/lib/validations/AppRegex.mjs +0 -45
  470. package/fesm2015/reusa-ngx-reusa-app-lib.mjs +0 -30728
  471. package/fesm2015/reusa-ngx-reusa-app-lib.mjs.map +0 -1
  472. package/fesm2020/reusa-ngx-reusa-app-lib.mjs.map +0 -1
@@ -0,0 +1,970 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { Validators, FormGroup, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { ComplaintCategoryOutputModel } from '../../models/cmp/ComplaintCategoryOutputModel';
4
+ import { ChoicesModel, ContactUsInqueryModel } from '../../models/cmp/contactUsInqueryModel';
5
+ import { AppRegex } from '../../validations/AppRegex';
6
+ import { AppValidators } from '../../validations/AppValidators';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/forms";
9
+ import * as i2 from "../../services/case-service/case.service";
10
+ import * as i3 from "../../services/cmp-service/cmp.service";
11
+ import * as i4 from "../../services/security-service/security.service";
12
+ import * as i5 from "../../services/util/util.service";
13
+ import * as i6 from "../../services/logger/logger.service";
14
+ import * as i7 from "@ionic/angular";
15
+ import * as i8 from "@angular/common";
16
+ import * as i9 from "primeng/inputtext";
17
+ import * as i10 from "primeng/inputmask";
18
+ import * as i11 from "primeng/selectbutton";
19
+ import * as i12 from "primeng/inputnumber";
20
+ import * as i13 from "primeng/inputtextarea";
21
+ import * as i14 from "primeng/dropdown";
22
+ import * as i15 from "../error/error.component";
23
+ import * as i16 from "../captcha/captcha.component";
24
+ import * as i17 from "../address/address.component";
25
+ import * as i18 from "@ngx-translate/core";
26
+ const _c0 = ["contactFormDirective"];
27
+ function ContactUsComponent_h1_0_Template(rf, ctx) { if (rf & 1) {
28
+ i0.ɵɵelementStart(0, "h1", 4);
29
+ i0.ɵɵtext(1);
30
+ i0.ɵɵpipe(2, "translate");
31
+ i0.ɵɵelementEnd();
32
+ } if (rf & 2) {
33
+ i0.ɵɵadvance(1);
34
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "contact.us.pageTitle"));
35
+ } }
36
+ function ContactUsComponent_div_1_p_2_Template(rf, ctx) { if (rf & 1) {
37
+ i0.ɵɵelementStart(0, "p", 31);
38
+ i0.ɵɵtext(1);
39
+ i0.ɵɵpipe(2, "translate");
40
+ i0.ɵɵelementEnd();
41
+ } if (rf & 2) {
42
+ i0.ɵɵadvance(1);
43
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "contact.us.pageHeader"), " ");
44
+ } }
45
+ const _c1 = () => ({ required: "required" });
46
+ function ContactUsComponent_div_1_div_26_Template(rf, ctx) { if (rf & 1) {
47
+ const _r20 = i0.ɵɵgetCurrentView();
48
+ i0.ɵɵelementStart(0, "div", 32)(1, "label", 33);
49
+ i0.ɵɵtext(2);
50
+ i0.ɵɵpipe(3, "translate");
51
+ i0.ɵɵelementEnd();
52
+ i0.ɵɵelement(4, "br");
53
+ i0.ɵɵelementStart(5, "p-inputMask", 34);
54
+ i0.ɵɵlistener("onFocus", function ContactUsComponent_div_1_div_26_Template_p_inputMask_onFocus_5_listener() { i0.ɵɵrestoreView(_r20); const ctx_r19 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r19.inputType = "text"); })("onBlur", function ContactUsComponent_div_1_div_26_Template_p_inputMask_onBlur_5_listener() { i0.ɵɵrestoreView(_r20); const ctx_r21 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r21.inputType = "password"); });
55
+ i0.ɵɵelementEnd();
56
+ i0.ɵɵelement(6, "app-error", 13);
57
+ i0.ɵɵelementEnd();
58
+ } if (rf & 2) {
59
+ i0.ɵɵnextContext();
60
+ const _r6 = i0.ɵɵreference(4);
61
+ const ctx_r7 = i0.ɵɵnextContext();
62
+ i0.ɵɵadvance(2);
63
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 7, "contact.us.ssn"));
64
+ i0.ɵɵadvance(3);
65
+ i0.ɵɵproperty("type", ctx_r7.inputType);
66
+ i0.ɵɵadvance(1);
67
+ i0.ɵɵclassMap("app-grid");
68
+ i0.ɵɵproperty("field", ctx_r7.ssn)("form", _r6)("errDef", i0.ɵɵpureFunction0(9, _c1));
69
+ } }
70
+ function ContactUsComponent_div_1_div_27_Template(rf, ctx) { if (rf & 1) {
71
+ i0.ɵɵelementStart(0, "div", 32)(1, "label", 35);
72
+ i0.ɵɵtext(2);
73
+ i0.ɵɵpipe(3, "translate");
74
+ i0.ɵɵelementEnd();
75
+ i0.ɵɵelement(4, "br")(5, "p-inputNumber", 36);
76
+ i0.ɵɵelementEnd();
77
+ } if (rf & 2) {
78
+ i0.ɵɵadvance(2);
79
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "contact.us.claimantID"));
80
+ i0.ɵɵadvance(3);
81
+ i0.ɵɵproperty("useGrouping", false);
82
+ } }
83
+ function ContactUsComponent_div_1_div_28_Template(rf, ctx) { if (rf & 1) {
84
+ const _r23 = i0.ɵɵgetCurrentView();
85
+ i0.ɵɵelementStart(0, "div", 14)(1, "label", 37);
86
+ i0.ɵɵtext(2);
87
+ i0.ɵɵpipe(3, "translate");
88
+ i0.ɵɵelementEnd();
89
+ i0.ɵɵelement(4, "br");
90
+ i0.ɵɵelementStart(5, "p-inputMask", 38);
91
+ i0.ɵɵlistener("onFocus", function ContactUsComponent_div_1_div_28_Template_p_inputMask_onFocus_5_listener() { i0.ɵɵrestoreView(_r23); const ctx_r22 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r22.inputType = "text"); })("onBlur", function ContactUsComponent_div_1_div_28_Template_p_inputMask_onBlur_5_listener() { i0.ɵɵrestoreView(_r23); const ctx_r24 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r24.inputType = "password"); });
92
+ i0.ɵɵelementEnd();
93
+ i0.ɵɵelement(6, "app-error", 13);
94
+ i0.ɵɵelementEnd();
95
+ } if (rf & 2) {
96
+ i0.ɵɵnextContext();
97
+ const _r6 = i0.ɵɵreference(4);
98
+ const ctx_r9 = i0.ɵɵnextContext();
99
+ i0.ɵɵadvance(2);
100
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 7, "contact.us.ean"));
101
+ i0.ɵɵadvance(3);
102
+ i0.ɵɵproperty("type", ctx_r9.inputType);
103
+ i0.ɵɵadvance(1);
104
+ i0.ɵɵclassMap("app-grid");
105
+ i0.ɵɵproperty("field", ctx_r9.ean)("form", _r6)("errDef", i0.ɵɵpureFunction0(9, _c1));
106
+ } }
107
+ function ContactUsComponent_div_1_div_29_Template(rf, ctx) { if (rf & 1) {
108
+ const _r26 = i0.ɵɵgetCurrentView();
109
+ i0.ɵɵelementStart(0, "div", 14)(1, "label", 39);
110
+ i0.ɵɵtext(2);
111
+ i0.ɵɵpipe(3, "translate");
112
+ i0.ɵɵelementEnd();
113
+ i0.ɵɵelement(4, "br");
114
+ i0.ɵɵelementStart(5, "p-inputMask", 40);
115
+ i0.ɵɵlistener("onFocus", function ContactUsComponent_div_1_div_29_Template_p_inputMask_onFocus_5_listener() { i0.ɵɵrestoreView(_r26); const ctx_r25 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r25.inputType = "text"); })("onBlur", function ContactUsComponent_div_1_div_29_Template_p_inputMask_onBlur_5_listener() { i0.ɵɵrestoreView(_r26); const ctx_r27 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r27.inputType = "password"); });
116
+ i0.ɵɵelementEnd();
117
+ i0.ɵɵelement(6, "app-error", 13);
118
+ i0.ɵɵelementEnd();
119
+ } if (rf & 2) {
120
+ i0.ɵɵnextContext();
121
+ const _r6 = i0.ɵɵreference(4);
122
+ const ctx_r10 = i0.ɵɵnextContext();
123
+ i0.ɵɵadvance(2);
124
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 7, "contact.us.fein"));
125
+ i0.ɵɵadvance(3);
126
+ i0.ɵɵproperty("type", ctx_r10.inputType);
127
+ i0.ɵɵadvance(1);
128
+ i0.ɵɵclassMap("app-grid");
129
+ i0.ɵɵproperty("field", ctx_r10.fein)("form", _r6)("errDef", i0.ɵɵpureFunction0(9, _c1));
130
+ } }
131
+ function ContactUsComponent_div_1_div_30_Template(rf, ctx) { if (rf & 1) {
132
+ i0.ɵɵelementStart(0, "div", 10)(1, "label", 41);
133
+ i0.ɵɵtext(2);
134
+ i0.ɵɵpipe(3, "translate");
135
+ i0.ɵɵelementEnd();
136
+ i0.ɵɵelement(4, "br")(5, "p-dropdown", 42)(6, "app-error", 13);
137
+ i0.ɵɵelementEnd();
138
+ } if (rf & 2) {
139
+ i0.ɵɵnextContext();
140
+ const _r6 = i0.ɵɵreference(4);
141
+ const ctx_r11 = i0.ɵɵnextContext();
142
+ i0.ɵɵadvance(2);
143
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 8, "contact.us.selectedReason"));
144
+ i0.ɵɵadvance(3);
145
+ i0.ɵɵproperty("options", ctx_r11.activeComplaintCategory)("autoDisplayFirst", false);
146
+ i0.ɵɵadvance(1);
147
+ i0.ɵɵclassMap("app-grid");
148
+ i0.ɵɵproperty("field", ctx_r11.selectedReason)("form", _r6)("errDef", i0.ɵɵpureFunction0(10, _c1));
149
+ } }
150
+ function ContactUsComponent_div_1_div_60_Template(rf, ctx) { if (rf & 1) {
151
+ i0.ɵɵelementStart(0, "div", 10);
152
+ i0.ɵɵelement(1, "app-captcha", 43)(2, "app-error", 13);
153
+ i0.ɵɵelementEnd();
154
+ } if (rf & 2) {
155
+ i0.ɵɵnextContext();
156
+ const _r6 = i0.ɵɵreference(4);
157
+ const ctx_r12 = i0.ɵɵnextContext();
158
+ i0.ɵɵadvance(2);
159
+ i0.ɵɵclassMap("app-grid");
160
+ i0.ɵɵproperty("field", ctx_r12.captcha)("form", _r6)("errDef", i0.ɵɵpureFunction0(5, _c1));
161
+ } }
162
+ function ContactUsComponent_div_1_div_61_Template(rf, ctx) { if (rf & 1) {
163
+ const _r29 = i0.ɵɵgetCurrentView();
164
+ i0.ɵɵelementStart(0, "div", 32)(1, "label", 44);
165
+ i0.ɵɵtext(2);
166
+ i0.ɵɵpipe(3, "translate");
167
+ i0.ɵɵelementEnd();
168
+ i0.ɵɵelementStart(4, "p-dropdown", 45);
169
+ i0.ɵɵlistener("onChange", function ContactUsComponent_div_1_div_61_Template_p_dropdown_onChange_4_listener($event) { i0.ɵɵrestoreView(_r29); const ctx_r28 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r28.fetchUnitsBasedOnDepType($event)); });
170
+ i0.ɵɵelementEnd();
171
+ i0.ɵɵelement(5, "app-error", 13);
172
+ i0.ɵɵelementEnd();
173
+ } if (rf & 2) {
174
+ i0.ɵɵnextContext();
175
+ const _r6 = i0.ɵɵreference(4);
176
+ const ctx_r13 = i0.ɵɵnextContext();
177
+ i0.ɵɵadvance(2);
178
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 8, "contact.us.division"));
179
+ i0.ɵɵadvance(2);
180
+ i0.ɵɵproperty("options", ctx_r13.allDepartments)("autoDisplayFirst", false);
181
+ i0.ɵɵadvance(1);
182
+ i0.ɵɵclassMap("app-grid");
183
+ i0.ɵɵproperty("field", ctx_r13.division)("form", _r6)("errDef", i0.ɵɵpureFunction0(10, _c1));
184
+ } }
185
+ function ContactUsComponent_div_1_div_62_Template(rf, ctx) { if (rf & 1) {
186
+ const _r31 = i0.ɵɵgetCurrentView();
187
+ i0.ɵɵelementStart(0, "div", 32)(1, "label", 46);
188
+ i0.ɵɵtext(2);
189
+ i0.ɵɵpipe(3, "translate");
190
+ i0.ɵɵelementEnd();
191
+ i0.ɵɵelementStart(4, "p-dropdown", 47);
192
+ i0.ɵɵlistener("onChange", function ContactUsComponent_div_1_div_62_Template_p_dropdown_onChange_4_listener($event) { i0.ɵɵrestoreView(_r31); const ctx_r30 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r30.fetchUsersBasedOnUnit($event)); });
193
+ i0.ɵɵelementEnd();
194
+ i0.ɵɵelement(5, "app-error", 13);
195
+ i0.ɵɵelementEnd();
196
+ } if (rf & 2) {
197
+ i0.ɵɵnextContext();
198
+ const _r6 = i0.ɵɵreference(4);
199
+ const ctx_r14 = i0.ɵɵnextContext();
200
+ i0.ɵɵadvance(2);
201
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 8, "contact.us.unit"));
202
+ i0.ɵɵadvance(2);
203
+ i0.ɵɵproperty("options", ctx_r14.unitsBasedOnDept)("autoDisplayFirst", false);
204
+ i0.ɵɵadvance(1);
205
+ i0.ɵɵclassMap("app-grid");
206
+ i0.ɵɵproperty("field", ctx_r14.unit)("form", _r6)("errDef", i0.ɵɵpureFunction0(10, _c1));
207
+ } }
208
+ function ContactUsComponent_div_1_div_63_Template(rf, ctx) { if (rf & 1) {
209
+ const _r33 = i0.ɵɵgetCurrentView();
210
+ i0.ɵɵelementStart(0, "div", 32)(1, "label", 48);
211
+ i0.ɵɵtext(2);
212
+ i0.ɵɵpipe(3, "translate");
213
+ i0.ɵɵelementEnd();
214
+ i0.ɵɵelement(4, "br");
215
+ i0.ɵɵelementStart(5, "p-dropdown", 49);
216
+ i0.ɵɵlistener("onChange", function ContactUsComponent_div_1_div_63_Template_p_dropdown_onChange_5_listener($event) { i0.ɵɵrestoreView(_r33); const ctx_r32 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r32.fetchUsersBasedOnRoles($event)); });
217
+ i0.ɵɵelementEnd();
218
+ i0.ɵɵelement(6, "app-error", 13);
219
+ i0.ɵɵelementEnd();
220
+ } if (rf & 2) {
221
+ i0.ɵɵnextContext();
222
+ const _r6 = i0.ɵɵreference(4);
223
+ const ctx_r15 = i0.ɵɵnextContext();
224
+ i0.ɵɵadvance(2);
225
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 8, "contact.us.generalAssignment"));
226
+ i0.ɵɵadvance(3);
227
+ i0.ɵɵproperty("options", ctx_r15.allRoles)("autoDisplayFirst", false);
228
+ i0.ɵɵadvance(1);
229
+ i0.ɵɵclassMap("app-grid");
230
+ i0.ɵɵproperty("field", ctx_r15.generalAssignment)("form", _r6)("errDef", i0.ɵɵpureFunction0(10, _c1));
231
+ } }
232
+ function ContactUsComponent_div_1_div_64_Template(rf, ctx) { if (rf & 1) {
233
+ i0.ɵɵelementStart(0, "div", 32)(1, "label", 50);
234
+ i0.ɵɵtext(2);
235
+ i0.ɵɵpipe(3, "translate");
236
+ i0.ɵɵelementEnd();
237
+ i0.ɵɵelement(4, "br")(5, "p-dropdown", 51)(6, "app-error", 13);
238
+ i0.ɵɵelementEnd();
239
+ } if (rf & 2) {
240
+ i0.ɵɵnextContext();
241
+ const _r6 = i0.ɵɵreference(4);
242
+ const ctx_r16 = i0.ɵɵnextContext();
243
+ i0.ɵɵadvance(2);
244
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 8, "contact.us.assignCaseTo"));
245
+ i0.ɵɵadvance(3);
246
+ i0.ɵɵproperty("options", ctx_r16.usersFLname)("autoDisplayFirst", false);
247
+ i0.ɵɵadvance(1);
248
+ i0.ɵɵclassMap("app-grid");
249
+ i0.ɵɵproperty("field", ctx_r16.assignCaseTo)("form", _r6)("errDef", i0.ɵɵpureFunction0(10, _c1));
250
+ } }
251
+ function ContactUsComponent_div_1_div_65_Template(rf, ctx) { if (rf & 1) {
252
+ i0.ɵɵelementStart(0, "div", 14)(1, "label", 52);
253
+ i0.ɵɵtext(2);
254
+ i0.ɵɵpipe(3, "translate");
255
+ i0.ɵɵelementEnd();
256
+ i0.ɵɵelement(4, "br")(5, "p-dropdown", 53)(6, "app-error", 13);
257
+ i0.ɵɵelementEnd();
258
+ } if (rf & 2) {
259
+ i0.ɵɵnextContext();
260
+ const _r6 = i0.ɵɵreference(4);
261
+ const ctx_r17 = i0.ɵɵnextContext();
262
+ i0.ɵɵadvance(2);
263
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 8, "contact.us.msgGeneratedThrough"));
264
+ i0.ɵɵadvance(3);
265
+ i0.ɵɵproperty("options", ctx_r17.msgGeneratedThroughList)("autoDisplayFirst", false);
266
+ i0.ɵɵadvance(1);
267
+ i0.ɵɵclassMap("app-grid");
268
+ i0.ɵɵproperty("field", ctx_r17.generatedThrough)("form", _r6)("errDef", i0.ɵɵpureFunction0(10, _c1));
269
+ } }
270
+ function ContactUsComponent_div_1_div_66_Template(rf, ctx) { if (rf & 1) {
271
+ i0.ɵɵelementStart(0, "div", 10)(1, "label", 54);
272
+ i0.ɵɵtext(2);
273
+ i0.ɵɵpipe(3, "translate");
274
+ i0.ɵɵelementEnd();
275
+ i0.ɵɵelement(4, "br")(5, "p-dropdown", 55);
276
+ i0.ɵɵelementEnd();
277
+ } if (rf & 2) {
278
+ const ctx_r18 = i0.ɵɵnextContext(2);
279
+ i0.ɵɵadvance(2);
280
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 3, "contact.us.close"));
281
+ i0.ɵɵadvance(3);
282
+ i0.ɵɵproperty("options", ctx_r18.allCloseReasons)("autoDisplayFirst", false);
283
+ } }
284
+ const _c2 = () => ({ required: "required", email: "Enter a valid email" });
285
+ function ContactUsComponent_div_1_Template(rf, ctx) { if (rf & 1) {
286
+ const _r35 = i0.ɵɵgetCurrentView();
287
+ i0.ɵɵelementStart(0, "div")(1, "span", 5);
288
+ i0.ɵɵtemplate(2, ContactUsComponent_div_1_p_2_Template, 3, 3, "p", 6);
289
+ i0.ɵɵelementEnd();
290
+ i0.ɵɵelementStart(3, "form", 7, 8);
291
+ i0.ɵɵlistener("ngSubmit", function ContactUsComponent_div_1_Template_form_ngSubmit_3_listener() { i0.ɵɵrestoreView(_r35); const ctx_r34 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r34.submitContactUs); });
292
+ i0.ɵɵelementStart(5, "div", 9)(6, "div", 10)(7, "label", 11);
293
+ i0.ɵɵtext(8);
294
+ i0.ɵɵpipe(9, "translate");
295
+ i0.ɵɵelementEnd();
296
+ i0.ɵɵelementStart(10, "p-selectButton", 12);
297
+ i0.ɵɵlistener("onOptionClick", function ContactUsComponent_div_1_Template_p_selectButton_onOptionClick_10_listener($event) { i0.ɵɵrestoreView(_r35); const ctx_r36 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r36.activeUserType($event)); });
298
+ i0.ɵɵelementEnd();
299
+ i0.ɵɵelement(11, "app-error", 13);
300
+ i0.ɵɵelementEnd();
301
+ i0.ɵɵelementStart(12, "div", 14)(13, "label", 15);
302
+ i0.ɵɵtext(14);
303
+ i0.ɵɵpipe(15, "translate");
304
+ i0.ɵɵelementEnd();
305
+ i0.ɵɵelement(16, "br")(17, "input", 16)(18, "app-error", 13);
306
+ i0.ɵɵelementEnd();
307
+ i0.ɵɵelementStart(19, "div", 14)(20, "label", 17);
308
+ i0.ɵɵtext(21);
309
+ i0.ɵɵpipe(22, "translate");
310
+ i0.ɵɵelementEnd();
311
+ i0.ɵɵelement(23, "br")(24, "input", 18)(25, "app-error", 13);
312
+ i0.ɵɵelementEnd();
313
+ i0.ɵɵtemplate(26, ContactUsComponent_div_1_div_26_Template, 7, 10, "div", 19)(27, ContactUsComponent_div_1_div_27_Template, 6, 4, "div", 19)(28, ContactUsComponent_div_1_div_28_Template, 7, 10, "div", 20)(29, ContactUsComponent_div_1_div_29_Template, 7, 10, "div", 20)(30, ContactUsComponent_div_1_div_30_Template, 7, 11, "div", 21);
314
+ i0.ɵɵelementStart(31, "div", 10)(32, "label", 22);
315
+ i0.ɵɵtext(33);
316
+ i0.ɵɵpipe(34, "translate");
317
+ i0.ɵɵelementEnd();
318
+ i0.ɵɵelement(35, "br")(36, "textarea", 23)(37, "br")(38, "app-error", 13);
319
+ i0.ɵɵelementStart(39, "small");
320
+ i0.ɵɵtext(40);
321
+ i0.ɵɵpipe(41, "translate");
322
+ i0.ɵɵelementEnd()();
323
+ i0.ɵɵelementStart(42, "div", 10)(43, "label", 24);
324
+ i0.ɵɵtext(44);
325
+ i0.ɵɵpipe(45, "translate");
326
+ i0.ɵɵelementEnd();
327
+ i0.ɵɵelement(46, "input", 25)(47, "app-error", 13);
328
+ i0.ɵɵelementEnd();
329
+ i0.ɵɵelementStart(48, "div", 14)(49, "label", 26);
330
+ i0.ɵɵtext(50);
331
+ i0.ɵɵpipe(51, "translate");
332
+ i0.ɵɵelementEnd();
333
+ i0.ɵɵelement(52, "p-inputMask", 27);
334
+ i0.ɵɵelementEnd();
335
+ i0.ɵɵelementStart(53, "div", 14)(54, "label", 28);
336
+ i0.ɵɵtext(55);
337
+ i0.ɵɵpipe(56, "translate");
338
+ i0.ɵɵelementEnd();
339
+ i0.ɵɵelement(57, "p-inputMask", 29);
340
+ i0.ɵɵelementEnd();
341
+ i0.ɵɵelementStart(58, "div", 10);
342
+ i0.ɵɵelement(59, "app-address", 30);
343
+ i0.ɵɵelementEnd();
344
+ i0.ɵɵtemplate(60, ContactUsComponent_div_1_div_60_Template, 3, 6, "div", 21)(61, ContactUsComponent_div_1_div_61_Template, 6, 11, "div", 19)(62, ContactUsComponent_div_1_div_62_Template, 6, 11, "div", 19)(63, ContactUsComponent_div_1_div_63_Template, 7, 11, "div", 19)(64, ContactUsComponent_div_1_div_64_Template, 7, 11, "div", 19)(65, ContactUsComponent_div_1_div_65_Template, 7, 11, "div", 20)(66, ContactUsComponent_div_1_div_66_Template, 6, 5, "div", 21);
345
+ i0.ɵɵelementEnd()()();
346
+ } if (rf & 2) {
347
+ const _r6 = i0.ɵɵreference(4);
348
+ const ctx_r1 = i0.ɵɵnextContext();
349
+ i0.ɵɵadvance(2);
350
+ i0.ɵɵproperty("ngIf", ctx_r1.isNewCase);
351
+ i0.ɵɵadvance(1);
352
+ i0.ɵɵproperty("formGroup", ctx_r1.contactUsForm);
353
+ i0.ɵɵadvance(5);
354
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(9, 49, "contact.us.userType"));
355
+ i0.ɵɵadvance(2);
356
+ i0.ɵɵproperty("options", ctx_r1.type);
357
+ i0.ɵɵadvance(1);
358
+ i0.ɵɵclassMap("app-grid");
359
+ i0.ɵɵproperty("field", ctx_r1.userType)("form", _r6)("errDef", i0.ɵɵpureFunction0(65, _c1));
360
+ i0.ɵɵadvance(3);
361
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(15, 51, "contact.us.firstname"));
362
+ i0.ɵɵadvance(4);
363
+ i0.ɵɵclassMap("app-grid");
364
+ i0.ɵɵproperty("field", ctx_r1.firstName)("form", _r6)("errDef", i0.ɵɵpureFunction0(66, _c1));
365
+ i0.ɵɵadvance(3);
366
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(22, 53, "contact.us.lastName"));
367
+ i0.ɵɵadvance(4);
368
+ i0.ɵɵclassMap("app-grid");
369
+ i0.ɵɵproperty("field", ctx_r1.lastName)("form", _r6)("errDef", i0.ɵɵpureFunction0(67, _c1));
370
+ i0.ɵɵadvance(1);
371
+ i0.ɵɵproperty("ngIf", ctx_r1.userType.value == "CLMT");
372
+ i0.ɵɵadvance(1);
373
+ i0.ɵɵproperty("ngIf", ctx_r1.userType.value == "CLMT");
374
+ i0.ɵɵadvance(1);
375
+ i0.ɵɵproperty("ngIf", ctx_r1.userType.value == "EMPR");
376
+ i0.ɵɵadvance(1);
377
+ i0.ɵɵproperty("ngIf", ctx_r1.userType.value == "EMPR");
378
+ i0.ɵɵadvance(1);
379
+ i0.ɵɵproperty("ngIf", ctx_r1.userType.value == "CLMT" || ctx_r1.userType.value == "EMPR");
380
+ i0.ɵɵadvance(3);
381
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(34, 55, "contact.us.issue"));
382
+ i0.ɵɵadvance(5);
383
+ i0.ɵɵclassMap("app-grid");
384
+ i0.ɵɵproperty("field", ctx_r1.issue)("form", _r6)("errDef", i0.ɵɵpureFunction0(68, _c1));
385
+ i0.ɵɵadvance(2);
386
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(41, 57, "contact.us.issueNotes"));
387
+ i0.ɵɵadvance(4);
388
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(45, 59, "contact.us.email"));
389
+ i0.ɵɵadvance(3);
390
+ i0.ɵɵclassMap("app-grid");
391
+ i0.ɵɵproperty("field", ctx_r1.email)("form", _r6)("errDef", i0.ɵɵpureFunction0(69, _c2));
392
+ i0.ɵɵadvance(3);
393
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(51, 61, "contact.us.phone"));
394
+ i0.ɵɵadvance(5);
395
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(56, 63, "contact.us.altPhone"));
396
+ i0.ɵɵadvance(4);
397
+ i0.ɵɵproperty("fromPopup", true);
398
+ i0.ɵɵadvance(1);
399
+ i0.ɵɵproperty("ngIf", !ctx_r1.isCsr);
400
+ i0.ɵɵadvance(1);
401
+ i0.ɵɵproperty("ngIf", ctx_r1.isCsr);
402
+ i0.ɵɵadvance(1);
403
+ i0.ɵɵproperty("ngIf", ctx_r1.isCsr);
404
+ i0.ɵɵadvance(1);
405
+ i0.ɵɵproperty("ngIf", ctx_r1.isCsr);
406
+ i0.ɵɵadvance(1);
407
+ i0.ɵɵproperty("ngIf", ctx_r1.isCsr);
408
+ i0.ɵɵadvance(1);
409
+ i0.ɵɵproperty("ngIf", ctx_r1.isCsr);
410
+ i0.ɵɵadvance(1);
411
+ i0.ɵɵproperty("ngIf", ctx_r1.isCsr && ctx_r1.selectedCase);
412
+ } }
413
+ function ContactUsComponent_div_2_div_1_Template(rf, ctx) { if (rf & 1) {
414
+ i0.ɵɵelementStart(0, "div")(1, "ion-row")(2, "ion-col", 56);
415
+ i0.ɵɵtext(3);
416
+ i0.ɵɵpipe(4, "translate");
417
+ i0.ɵɵelementStart(5, "span", 57);
418
+ i0.ɵɵtext(6);
419
+ i0.ɵɵelementEnd()()();
420
+ i0.ɵɵelementStart(7, "ion-row")(8, "ion-col", 58);
421
+ i0.ɵɵelement(9, "ion-icon", 59);
422
+ i0.ɵɵelementEnd()();
423
+ i0.ɵɵelementStart(10, "ion-row")(11, "ion-col", 60);
424
+ i0.ɵɵtext(12);
425
+ i0.ɵɵpipe(13, "translate");
426
+ i0.ɵɵelementEnd()()();
427
+ } if (rf & 2) {
428
+ const ctx_r37 = i0.ɵɵnextContext(2);
429
+ i0.ɵɵadvance(3);
430
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 3, "contact.us.successMsg"), "");
431
+ i0.ɵɵadvance(3);
432
+ i0.ɵɵtextInterpolate(ctx_r37.caseNo);
433
+ i0.ɵɵadvance(6);
434
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(13, 5, "contact.us.contactAgain"), " ");
435
+ } }
436
+ function ContactUsComponent_div_2_div_2_Template(rf, ctx) { if (rf & 1) {
437
+ i0.ɵɵelementStart(0, "div")(1, "ion-row")(2, "ion-col", 56);
438
+ i0.ɵɵtext(3);
439
+ i0.ɵɵpipe(4, "translate");
440
+ i0.ɵɵelementEnd()()();
441
+ } if (rf & 2) {
442
+ i0.ɵɵadvance(3);
443
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 1, "contact.us.failedMsg"), " ");
444
+ } }
445
+ function ContactUsComponent_div_2_Template(rf, ctx) { if (rf & 1) {
446
+ i0.ɵɵelementStart(0, "div");
447
+ i0.ɵɵtemplate(1, ContactUsComponent_div_2_div_1_Template, 14, 7, "div", 1)(2, ContactUsComponent_div_2_div_2_Template, 5, 3, "div", 1);
448
+ i0.ɵɵelementEnd();
449
+ } if (rf & 2) {
450
+ const ctx_r2 = i0.ɵɵnextContext();
451
+ i0.ɵɵadvance(1);
452
+ i0.ɵɵproperty("ngIf", ctx_r2.submitSuccess);
453
+ i0.ɵɵadvance(1);
454
+ i0.ɵɵproperty("ngIf", !ctx_r2.submitSuccess);
455
+ } }
456
+ function ContactUsComponent_ion_button_4_Template(rf, ctx) { if (rf & 1) {
457
+ const _r40 = i0.ɵɵgetCurrentView();
458
+ i0.ɵɵelementStart(0, "ion-button", 61);
459
+ i0.ɵɵlistener("click", function ContactUsComponent_ion_button_4_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r40); const ctx_r39 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r39.submitContactUs(ctx_r39.contactUsForm)); });
460
+ i0.ɵɵtext(1, "Submit ");
461
+ i0.ɵɵelementEnd();
462
+ } }
463
+ function ContactUsComponent_ion_button_5_Template(rf, ctx) { if (rf & 1) {
464
+ const _r42 = i0.ɵɵgetCurrentView();
465
+ i0.ɵɵelementStart(0, "ion-button", 61);
466
+ i0.ɵɵlistener("click", function ContactUsComponent_ion_button_5_Template_ion_button_click_0_listener($event) { i0.ɵɵrestoreView(_r42); const ctx_r41 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r41.emitHide($event)); });
467
+ i0.ɵɵtext(1, " Close ");
468
+ i0.ɵɵelementEnd();
469
+ } }
470
+ export class ContactUsComponent {
471
+ constructor(formBuilder, caseService, cmpService, securityService, util, loggerService) {
472
+ this.formBuilder = formBuilder;
473
+ this.caseService = caseService;
474
+ this.cmpService = cmpService;
475
+ this.securityService = securityService;
476
+ this.util = util;
477
+ this.loggerService = loggerService;
478
+ this.allRoles = [];
479
+ this.usersFLname = [];
480
+ this.isCsr = false;
481
+ this.isNewCase = true;
482
+ this.modelCancel = new EventEmitter();
483
+ this.success = new EventEmitter();
484
+ this.updateSuccess = new EventEmitter();
485
+ this.onHide = new EventEmitter();
486
+ this.onLoad = new EventEmitter();
487
+ this.showSuccess = false;
488
+ this.display = true;
489
+ this.submitSuccess = false;
490
+ this.inputType = 'text';
491
+ this.type = [
492
+ { text: 'a claimant', value: 'CLMT' },
493
+ { text: 'an employer', value: 'EMPR' }
494
+ ];
495
+ this.onChange = (value) => {
496
+ };
497
+ this.onTouch = () => {
498
+ };
499
+ }
500
+ writeValue(value) {
501
+ }
502
+ registerOnChange(fn) {
503
+ this.onChange = fn;
504
+ }
505
+ registerOnTouched(fn) {
506
+ this.onTouch = fn;
507
+ }
508
+ setDisabledState(isDisabled) {
509
+ throw new Error('Method not implemented.');
510
+ }
511
+ ngOnInit() {
512
+ this.contactUsForm = this.formBuilder.group({
513
+ 'userType': [null, Validators.required],
514
+ 'firstName': [null, Validators.required],
515
+ 'lastName': [null, Validators.required],
516
+ 'ssn': [null],
517
+ 'claimantId': [null],
518
+ 'ean': [null],
519
+ 'fein': [null],
520
+ 'selectedReason': [null, Validators.required],
521
+ 'issue': [null, Validators.required],
522
+ 'email': [null, [Validators.required, AppValidators.match(AppRegex.EMAIL_REGEX, { email: true })]],
523
+ 'phone': [null],
524
+ 'altPhone': [null],
525
+ 'address': [null],
526
+ 'division': [null],
527
+ 'unit': [null],
528
+ 'generalAssignment': [null],
529
+ 'assignCaseTo': [null],
530
+ 'closeCaseReason': [null],
531
+ 'generatedThrough': [null],
532
+ 'captcha': [null, Validators.required]
533
+ });
534
+ this.selectButtonValidation();
535
+ this.selectCSRvalidation();
536
+ this.getComplaintCategory();
537
+ this.fetchMstDepartments();
538
+ this.fetchMstAllUnits();
539
+ this.fetchMstCaseCloseReasons();
540
+ this.getAllRoles();
541
+ this.getMsgGeneratedThrough();
542
+ if (this.selectedCase && this.isCsr == true) {
543
+ this.loadPreSavedContactUsDetails();
544
+ }
545
+ }
546
+ loadPreSavedContactUsDetails() {
547
+ this.loggerService.debug("selected case : ", this.selectedCase);
548
+ this.cmpService.fetchInquiryDetailsByInquiryId(this.selectedCase.caseNumber).subscribe(res => {
549
+ this.loggerService.info(res);
550
+ this.contactUsForm.patchValue(res);
551
+ this.userType.setValue(res["userType"].value);
552
+ this.division.setValue(this.allDepartments.filter(c => c.key == this.selectedCase.department.key)[0]);
553
+ this.generalAssignment.setValue(this.allRoles.filter(c => c.value == this.selectedCase.level.text)[0]);
554
+ if (res["userType"].value === 'EMPR') {
555
+ this.activeComplaintCategory = this.complaintCategoryRetrivedListEmpr;
556
+ this.selectButtonValidation();
557
+ }
558
+ else if (res["userType"].value === 'CLMT') {
559
+ this.activeComplaintCategory = this.complaintCategoryRetrivedListClmt;
560
+ this.selectButtonValidation();
561
+ }
562
+ this.selectedReason.setValue(this.activeComplaintCategory.filter(c => c.complaintCategoryId == res.complaintCategory)[0]);
563
+ this.selectedDepType = this.division.value.key;
564
+ this.getUnitsBasedOnDepSelected();
565
+ if (this.selectedCase.unit != null) {
566
+ this.unit.setValue(this.unitsBasedOnDept.filter(c => c.key == this.selectedCase.unit.key)[0]);
567
+ this.selectedUnit = this.unit.value.key;
568
+ }
569
+ this.selectedRole = this.generalAssignment.value.type;
570
+ this.getUsersBasedOnDeptAndRole();
571
+ if (this.selectedCase.closeCaseReason != null) {
572
+ this.closeCaseReason.setValue(this.allCloseReasons.filter(c => c.key == this.selectedCase.closeCaseReason.value)[0]);
573
+ }
574
+ if (res.generatedThrough != null) {
575
+ this.generatedThrough.setValue(this.msgGeneratedThroughList.filter(c => c.key == res.generatedThrough.value)[0]);
576
+ }
577
+ this.onLoad.emit(res);
578
+ }, err => {
579
+ this.loggerService.error("Unable to fetch inquiry details.");
580
+ });
581
+ }
582
+ emitHide(event) {
583
+ this.onHide.emit(event);
584
+ this.display = false;
585
+ this.showSuccess = false;
586
+ }
587
+ selectButtonValidation() {
588
+ this.userType.valueChanges.subscribe(val => {
589
+ if (val === 'CLMT') {
590
+ this.util.setRequiredValidator(this.ssn);
591
+ this.util.clearValidation(this.ean);
592
+ this.util.clearValidation(this.fein);
593
+ }
594
+ if (val === 'EMPR') {
595
+ this.util.clearValidation(this.ssn);
596
+ this.util.setRequiredValidator(this.ean);
597
+ this.util.setRequiredValidator(this.fein);
598
+ }
599
+ });
600
+ }
601
+ selectCSRvalidation() {
602
+ if (this.isCsr) {
603
+ this.util.setRequiredValidator(this.division);
604
+ this.util.setRequiredValidator(this.unit);
605
+ this.util.setRequiredValidator(this.generalAssignment);
606
+ this.util.setRequiredValidator(this.assignCaseTo);
607
+ this.util.setRequiredValidator(this.generatedThrough);
608
+ this.util.clearValidation(this.captcha);
609
+ }
610
+ }
611
+ submitContactUs(input) {
612
+ if (!this.contactUsForm.valid) {
613
+ this.validateAllFormFields(this.contactUsForm);
614
+ }
615
+ else {
616
+ let contactUsInquiryModel = new ContactUsInqueryModel();
617
+ contactUsInquiryModel.inquiryBy = this.userType.value;
618
+ contactUsInquiryModel.firstName = this.firstName.value;
619
+ contactUsInquiryModel.lastName = this.lastName.value;
620
+ contactUsInquiryModel.ssn = this.ssn.value;
621
+ contactUsInquiryModel.claimantId = this.claimantId.value;
622
+ contactUsInquiryModel.ean = this.ean.value;
623
+ contactUsInquiryModel.fein = this.fein.value;
624
+ let choiceModel = new ComplaintCategoryOutputModel();
625
+ choiceModel.text = this.selectedReason.value.description;
626
+ choiceModel.value = this.selectedReason.value.complaintCategoryId;
627
+ contactUsInquiryModel.complaintCategory = choiceModel;
628
+ contactUsInquiryModel.question = this.issue.value;
629
+ contactUsInquiryModel.email = this.email.value;
630
+ contactUsInquiryModel.phone = this.phone.value;
631
+ contactUsInquiryModel.altPhone = this.altPhone.value;
632
+ contactUsInquiryModel.streetAddress = this.address.value?.streetAddress;
633
+ contactUsInquiryModel.optionalAddress = this.address.value?.optionalAddress;
634
+ contactUsInquiryModel.city = this.address.value?.city;
635
+ contactUsInquiryModel.state = this.address.value?.state?.value;
636
+ contactUsInquiryModel.zip = this.address.value?.zip;
637
+ contactUsInquiryModel.country = this.address.value?.country.value;
638
+ if (this.isCsr === false) {
639
+ let choiceModel = new ChoicesModel();
640
+ choiceModel.text = "Self service";
641
+ choiceModel.value = "SELF";
642
+ contactUsInquiryModel.generatedThrough = choiceModel;
643
+ }
644
+ if (this.isCsr === true) {
645
+ let choiceModel3 = new ChoicesModel();
646
+ choiceModel3.text = this.division.value.value;
647
+ choiceModel3.value = this.division.value.key;
648
+ contactUsInquiryModel.division = choiceModel3;
649
+ let choiceModel6 = new ChoicesModel();
650
+ choiceModel6.text = this.unit.value.value;
651
+ choiceModel6.value = this.unit.value.key;
652
+ contactUsInquiryModel.unit = choiceModel6;
653
+ let choiceModel = new ChoicesModel();
654
+ choiceModel.text = this.generalAssignment.value.description;
655
+ choiceModel.value = this.generalAssignment.value.key;
656
+ contactUsInquiryModel.caseOwnerGroupKey = choiceModel;
657
+ let choiceModel2 = new ChoicesModel();
658
+ choiceModel2.text = this.assignCaseTo.value.text;
659
+ choiceModel2.value = this.assignCaseTo.value.value;
660
+ contactUsInquiryModel.assignCaseTo = choiceModel2;
661
+ if (this.closeCaseReason.value != null) {
662
+ let choiceModel4 = new ChoicesModel();
663
+ choiceModel4.text = this.closeCaseReason.value.description;
664
+ choiceModel4.value = this.closeCaseReason.value.key;
665
+ contactUsInquiryModel.closeCaseReason = choiceModel4;
666
+ }
667
+ if (this.generatedThrough.value != null) {
668
+ let choiceModel5 = new ChoicesModel();
669
+ choiceModel5.text = this.generatedThrough.value.description;
670
+ choiceModel5.value = this.generatedThrough.value.key;
671
+ contactUsInquiryModel.generatedThrough = choiceModel5;
672
+ }
673
+ }
674
+ this.success.emit(this.contactUsForm);
675
+ if (this.selectedCase && this.selectedCase.caseNumber) {
676
+ this.loggerService.debug('update called = ', this.selectedCase.caseNumber);
677
+ contactUsInquiryModel.inquiryId = this.selectedCase.caseNumber;
678
+ this.util.showLoader().then(() => {
679
+ this.cmpService.updateInquiryData(contactUsInquiryModel, this.selectedCase.caseNumber)
680
+ .subscribe(res => {
681
+ this.responseCall = res;
682
+ this.caseNo = this.responseCall.inquiryId;
683
+ this.util.success(this.responseCall["msg"]);
684
+ this.util.hideLoader();
685
+ }, err => {
686
+ this.util.errorHandler(err);
687
+ this.loggerService.error("err", err);
688
+ this.util.hideLoader();
689
+ });
690
+ });
691
+ }
692
+ else {
693
+ this.loggerService.debug("creating new case");
694
+ if (this.isCsr === true) {
695
+ this.util.showLoader().then(() => {
696
+ this.cmpService.submitQueryForCSR(contactUsInquiryModel)
697
+ .subscribe(res => {
698
+ this.processSubmitQueryResponse(res);
699
+ }, err => {
700
+ this.processSubmitQueryErrorResponse(err);
701
+ });
702
+ });
703
+ }
704
+ else {
705
+ this.util.showLoader().then(() => {
706
+ this.cmpService.submitQuery(contactUsInquiryModel)
707
+ .subscribe(res => {
708
+ this.processSubmitQueryResponse(res);
709
+ }, err => {
710
+ this.processSubmitQueryErrorResponse(err);
711
+ });
712
+ });
713
+ }
714
+ }
715
+ }
716
+ }
717
+ processSubmitQueryErrorResponse(err) {
718
+ this.showSuccess = false;
719
+ this.loggerService.error("err", err);
720
+ if (this.isCsr === true) {
721
+ this.updateSuccess.emit("true");
722
+ }
723
+ this.util.hideLoader();
724
+ }
725
+ processSubmitQueryResponse(res) {
726
+ this.responseCall = res;
727
+ this.caseNo = this.responseCall.inquiryId;
728
+ if (this.caseNo != "0") {
729
+ this.loggerService.info('Submit contact us case No:', this.caseNo);
730
+ this.showSuccess = true;
731
+ this.submitSuccess = true;
732
+ if (this.isCsr === true) {
733
+ this.updateSuccess.emit("true");
734
+ }
735
+ this.util.hideLoader();
736
+ }
737
+ else {
738
+ this.loggerService.error('failed to submit contact us case');
739
+ this.showSuccess = true;
740
+ if (this.isCsr === true) {
741
+ this.updateSuccess.emit("true");
742
+ }
743
+ this.util.hideLoader();
744
+ }
745
+ }
746
+ validateAllFormFields(formGroup) {
747
+ Object.keys(formGroup.controls).forEach(field => {
748
+ const control = formGroup.get(field);
749
+ if (control instanceof FormControl) {
750
+ control.markAsDirty({ onlySelf: true });
751
+ }
752
+ else if (control instanceof FormGroup) {
753
+ this.validateAllFormFields(control);
754
+ }
755
+ });
756
+ }
757
+ getComplaintCategory() {
758
+ this.cmpService.getComplaintCategory().subscribe((res) => {
759
+ this.complaintCategoryRetrivedList = res;
760
+ this.complaintCategoryRetrivedListEmpr = res.filter(r => r.type === "EMPR");
761
+ this.complaintCategoryRetrivedListClmt = res.filter(r => r.type === "CLMT");
762
+ });
763
+ }
764
+ activeUserType(event) {
765
+ let currentValue = event.option.value;
766
+ if (currentValue === 'EMPR') {
767
+ this.activeComplaintCategory = this.complaintCategoryRetrivedListEmpr;
768
+ this.selectButtonValidation();
769
+ }
770
+ else if (currentValue === 'CLMT') {
771
+ this.activeComplaintCategory = this.complaintCategoryRetrivedListClmt;
772
+ this.selectButtonValidation();
773
+ }
774
+ }
775
+ selectDepartmentBasedOnCategory(event) {
776
+ let currentValue = event.value;
777
+ let depId = currentValue.departmentUnitId;
778
+ let searched_dep = this.allDepartments.filter(dep => dep.key == depId)[0];
779
+ this.division.setValue(searched_dep);
780
+ this.selectedDepType = this.division.value.type;
781
+ }
782
+ fetchUnitsBasedOnDepType(event) {
783
+ let deptId = event.value.key;
784
+ if (this.allUnits != null) {
785
+ this.unitsBasedOnDept = this.allUnits.filter(s => s.type == deptId);
786
+ }
787
+ }
788
+ getUnitsBasedOnDepSelected() {
789
+ if (this.allUnits != null && this.selectedDepType != null) {
790
+ this.unitsBasedOnDept = this.allUnits.filter(s => s.type == this.selectedDepType);
791
+ }
792
+ }
793
+ fetchUsersBasedOnUnit(event) {
794
+ this.selectedUnit = event.value.key;
795
+ if (this.selectedRole != null) {
796
+ this.getUsersBasedOnDeptAndRole();
797
+ }
798
+ }
799
+ fetchUsersBasedOnRoles(event) {
800
+ this.selectedRole = event.value.type;
801
+ if (this.selectedUnit != null) {
802
+ this.getUsersBasedOnDeptAndRole();
803
+ }
804
+ }
805
+ getUsersBasedOnDeptAndRole() {
806
+ this.usersFLname = [];
807
+ this.loggerService.debug('fetching users for unit : ', this.selectedUnit, 'and role ', this.selectedRole);
808
+ if (this.selectedUnit == null || this.selectedRole == null) {
809
+ return;
810
+ }
811
+ this.securityService.getUserUnitIdRoleId(this.selectedUnit, this.selectedRole).subscribe(res => {
812
+ this.users = res;
813
+ this.loggerService.debug(this.users);
814
+ if (this.users) {
815
+ this.users.forEach((e) => {
816
+ let temp = new ChoicesModel();
817
+ temp.text = (e.firstName + ' ' + e.lastName + ' (' + e.userId + ')');
818
+ //temp.text=e.firstName + ' ' + e.lastName;
819
+ temp.value = e.userId;
820
+ this.usersFLname.push(temp);
821
+ });
822
+ if (this.selectedCase.assignedTouser != null) {
823
+ this.assignCaseTo.setValue(this.usersFLname.filter(c => c.value == this.selectedCase.assignedTouser.value)[0]);
824
+ }
825
+ }
826
+ }, err => {
827
+ this.loggerService.info("No user configured for this role");
828
+ });
829
+ }
830
+ fetchMstDepartments() {
831
+ return this.caseService.fetchMstDepartments().subscribe((res) => {
832
+ this.allDepartments = res;
833
+ });
834
+ }
835
+ fetchMstAllUnits() {
836
+ return this.caseService.fetchMstAllUnits().subscribe((res) => {
837
+ this.allUnits = res;
838
+ });
839
+ }
840
+ fetchMstCaseCloseReasons() {
841
+ return this.caseService.fetchMstCaseCloseReasons().subscribe((res) => {
842
+ this.allCloseReasons = res;
843
+ });
844
+ }
845
+ getAllRoles() {
846
+ return this.caseService.getMstOwnerGroups().subscribe((res) => {
847
+ this.allRoles = res;
848
+ });
849
+ }
850
+ getMsgGeneratedThrough() {
851
+ return this.cmpService.getMsgGeneratedThrough().subscribe((res) => {
852
+ this.msgGeneratedThroughList = res;
853
+ });
854
+ }
855
+ get userType() {
856
+ return this.contactUsForm.controls['userType'];
857
+ }
858
+ get firstName() {
859
+ return this.contactUsForm.controls['firstName'];
860
+ }
861
+ get lastName() {
862
+ return this.contactUsForm.controls['lastName'];
863
+ }
864
+ get ssn() {
865
+ return this.contactUsForm.controls['ssn'];
866
+ }
867
+ get claimantId() {
868
+ return this.contactUsForm.controls['claimantId'];
869
+ }
870
+ get ean() {
871
+ return this.contactUsForm.controls['ean'];
872
+ }
873
+ get fein() {
874
+ return this.contactUsForm.controls['fein'];
875
+ }
876
+ get selectedReason() {
877
+ return this.contactUsForm.controls['selectedReason'];
878
+ }
879
+ get issue() {
880
+ return this.contactUsForm.controls['issue'];
881
+ }
882
+ get email() {
883
+ return this.contactUsForm.controls['email'];
884
+ }
885
+ get phone() {
886
+ return this.contactUsForm.controls['phone'];
887
+ }
888
+ get altPhone() {
889
+ return this.contactUsForm.controls['altPhone'];
890
+ }
891
+ get address() {
892
+ return this.contactUsForm.controls['address'];
893
+ }
894
+ get captcha() {
895
+ return this.contactUsForm.controls['captcha'];
896
+ }
897
+ get division() {
898
+ return this.contactUsForm.controls['division'];
899
+ }
900
+ get unit() {
901
+ return this.contactUsForm.controls['unit'];
902
+ }
903
+ get generalAssignment() {
904
+ return this.contactUsForm.controls['generalAssignment'];
905
+ }
906
+ get assignCaseTo() {
907
+ return this.contactUsForm.controls['assignCaseTo'];
908
+ }
909
+ get closeCaseReason() {
910
+ return this.contactUsForm.controls['closeCaseReason'];
911
+ }
912
+ get generatedThrough() {
913
+ return this.contactUsForm.controls['generatedThrough'];
914
+ }
915
+ static { this.ɵfac = function ContactUsComponent_Factory(t) { return new (t || ContactUsComponent)(i0.ɵɵdirectiveInject(i1.UntypedFormBuilder), i0.ɵɵdirectiveInject(i2.CaseService), i0.ɵɵdirectiveInject(i3.CmpService), i0.ɵɵdirectiveInject(i4.SecurityService), i0.ɵɵdirectiveInject(i5.UtilService), i0.ɵɵdirectiveInject(i6.LoggerService)); }; }
916
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ContactUsComponent, selectors: [["app-contact-us"]], viewQuery: function ContactUsComponent_Query(rf, ctx) { if (rf & 1) {
917
+ i0.ɵɵviewQuery(_c0, 5);
918
+ } if (rf & 2) {
919
+ let _t;
920
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contactFormDirective = _t.first);
921
+ } }, inputs: { isCsr: "isCsr", isNewCase: "isNewCase", selectedCase: "selectedCase" }, outputs: { modelCancel: "modelCancel", success: "success", updateSuccess: "updateSuccess", onHide: "onHide", onLoad: "onLoad" }, features: [i0.ɵɵProvidersFeature([{
922
+ provide: NG_VALUE_ACCESSOR,
923
+ useExisting: ContactUsComponent,
924
+ multi: true
925
+ }])], decls: 6, vars: 5, consts: [["class", "contactUsPageTitle", 4, "ngIf"], [4, "ngIf"], [1, "field", "col-12", "ion-text-right"], ["shape", "round", "type", "submit", "color", "primary", 3, "click", 4, "ngIf"], [1, "contactUsPageTitle"], [2, "font-family", "var(--app-font-light)"], ["class", "contactUsPageHeader", 4, "ngIf"], [3, "formGroup", "ngSubmit"], ["contactFormDirective", "ngForm"], [1, "p-fluid", "grid"], [1, "field", "col-12"], ["for", "type"], ["formControlName", "userType", "optionLabel", "text", "optionValue", "value", 3, "options", "onOptionClick"], [3, "field", "form", "errDef"], [1, "field", "col-12", "md:col-6"], ["for", "firstName"], ["type", "text", "pInputText", "", "formControlName", "firstName", "maxlength", "30"], ["for", "lastName"], ["type", "text", "pInputText", "", "formControlName", "lastName", "maxlength", "30"], ["class", "field col-6", 4, "ngIf"], ["class", "field col-12 md:col-6", 4, "ngIf"], ["class", "field col-12", 4, "ngIf"], ["for", "issue"], ["pInputTextarea", "", "formControlName", "issue", "maxlength", "500"], ["for", "email"], ["type", "text", "pInputText", "", "formControlName", "email", "maxlength", "100"], ["for", "phone"], ["mask", "(999) 999-9999", "formControlName", "phone", "placeholder", "(999) 999-9999", "unmask", "true"], ["for", "altPhone"], ["mask", "(999) 999-9999", "formControlName", "altPhone", "placeholder", "(999) 999-9999", "unmask", "true"], ["formControlName", "address", 3, "fromPopup"], [1, "contactUsPageHeader"], [1, "field", "col-6"], ["for", "ssn"], ["mask", "9999", "formControlName", "ssn", 3, "type", "onFocus", "onBlur"], ["for", "claimantId"], ["formControlName", "claimantId", "mode", "decimal", "inputId", "claimantId", "placeholder", "optional", "maxlength", "8", 3, "useGrouping"], ["for", "ean"], ["mask", "9999999999", "formControlName", "ean", 3, "type", "onFocus", "onBlur"], ["for", "fein"], ["mask", "999999999", "formControlName", "fein", 3, "type", "onFocus", "onBlur"], ["for", "selectedReason"], ["formControlName", "selectedReason", "placeholder", "Select category", "optionLabel", "description", "appendTo", "body", 1, "queryCategory", 3, "options", "autoDisplayFirst"], ["formControlName", "captcha"], ["for", "division"], ["formControlName", "division", "placeholder", "Select Department", "optionLabel", "value", "appendTo", "body", 1, "roleName", 3, "options", "autoDisplayFirst", "onChange"], ["for", "unit"], ["formControlName", "unit", "placeholder", "Select Unit", "optionLabel", "value", "appendTo", "body", 1, "roleName", 3, "options", "autoDisplayFirst", "onChange"], ["for", "generalAssignment"], ["formControlName", "generalAssignment", "placeholder", "Select Assignment", "optionLabel", "value", "appendTo", "body", 3, "options", "autoDisplayFirst", "onChange"], ["for", "assignCaseTo"], ["formControlName", "assignCaseTo", "placeholder", "Assign Case To", "optionLabel", "text", "appendTo", "body", 3, "options", "autoDisplayFirst"], ["for", "generatedThrough"], ["formControlName", "generatedThrough", "placeholder", "Message generated through", "optionLabel", "description", "appendTo", "body", 3, "options", "autoDisplayFirst"], ["for", "closeCaseReason"], ["formControlName", "closeCaseReason", "placeholder", "Select Reason", "optionLabel", "description", "appendTo", "body", "showClear", "true", 1, "queryCategory", 3, "options", "autoDisplayFirst"], [1, "ion-text-left", "text-lg", 2, "font-family", "var(--app-font-light)"], [2, "font-weight", "bold", "color", "var(--ion-color-primary)"], [1, "ion-text-center"], ["name", "checkmark-circle", 1, "zoomin", "animation-duration-1000", 2, "font-size", "80px", "color", "var(--ion-color-green)"], [1, "ion-text-left", "text-lg", "contactUsPageHeader"], ["shape", "round", "type", "submit", "color", "primary", 3, "click"]], template: function ContactUsComponent_Template(rf, ctx) { if (rf & 1) {
926
+ i0.ɵɵtemplate(0, ContactUsComponent_h1_0_Template, 3, 3, "h1", 0)(1, ContactUsComponent_div_1_Template, 67, 70, "div", 1)(2, ContactUsComponent_div_2_Template, 3, 2, "div", 1);
927
+ i0.ɵɵelementStart(3, "div", 2);
928
+ i0.ɵɵtemplate(4, ContactUsComponent_ion_button_4_Template, 2, 0, "ion-button", 3)(5, ContactUsComponent_ion_button_5_Template, 2, 0, "ion-button", 3);
929
+ i0.ɵɵelementEnd();
930
+ } if (rf & 2) {
931
+ i0.ɵɵproperty("ngIf", ctx.isNewCase);
932
+ i0.ɵɵadvance(1);
933
+ i0.ɵɵproperty("ngIf", !ctx.showSuccess);
934
+ i0.ɵɵadvance(1);
935
+ i0.ɵɵproperty("ngIf", ctx.showSuccess);
936
+ i0.ɵɵadvance(2);
937
+ i0.ɵɵproperty("ngIf", !ctx.showSuccess && !ctx.isCsr);
938
+ i0.ɵɵadvance(1);
939
+ i0.ɵɵproperty("ngIf", !ctx.isCsr);
940
+ } }, dependencies: [i7.IonButton, i7.IonCol, i7.IonIcon, i7.IonRow, i8.NgIf, i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.MaxLengthValidator, i1.FormGroupDirective, i1.FormControlName, i9.InputText, i10.InputMask, i11.SelectButton, i12.InputNumber, i13.InputTextarea, i14.Dropdown, i15.ErrorComponent, i16.CaptchaComponent, i17.AddressComponent, i18.TranslatePipe], styles: ["ion-col[_ngcontent-%COMP%]{padding-left:0}div[_ngcontent-%COMP%]{margin-bottom:0!important}.error[_ngcontent-%COMP%]{color:var(--ion-color-danger)}[_nghost-%COMP%] .p-fluid .p-dropdown .p-dropdown-label{white-space:wrap!important}.contactUsPageTitle[_ngcontent-%COMP%]{color:#000;margin-top:0}.contactUsPageHeader[_ngcontent-%COMP%]{font-weight:500;color:#000}"] }); }
941
+ }
942
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContactUsComponent, [{
943
+ type: Component,
944
+ args: [{ selector: 'app-contact-us', providers: [{
945
+ provide: NG_VALUE_ACCESSOR,
946
+ useExisting: ContactUsComponent,
947
+ multi: true
948
+ }], template: "<h1 class=\"contactUsPageTitle\" \n*ngIf=\"isNewCase\">{{'contact.us.pageTitle' | translate}}</h1>\n\n<div *ngIf=\"!showSuccess\">\n <span style=\"font-family: var(--app-font-light)\">\n <p *ngIf=\"isNewCase\" class=\"contactUsPageHeader\" >\n {{'contact.us.pageHeader' | translate}}\n </p>\n </span>\n <form [formGroup]=\"contactUsForm\" #contactFormDirective=\"ngForm\" (ngSubmit)=\"submitContactUs\">\n <div class=\"p-fluid grid\">\n <div class=\"field col-12\">\n <label for=\"type\">{{\"contact.us.userType\"| translate}}</label>\n <p-selectButton [options]=\"type\" formControlName=\"userType\" optionLabel=\"text\" optionValue=\"value\"\n (onOptionClick)=\"activeUserType($event)\">\n </p-selectButton>\n <app-error [class]=\"'app-grid'\" [field]='userType' [form]=\"contactFormDirective\" [errDef]=\"{ \n required: 'required'\n }\"></app-error>\n </div>\n <div class=\"field col-12 md:col-6\">\n <label for=\"firstName\">{{\"contact.us.firstname\"| translate}}</label><br />\n <input type=\"text\" pInputText formControlName=\"firstName\" maxlength=\"30\" />\n <app-error [class]=\"'app-grid'\" [field]='firstName' [form]=\"contactFormDirective\" [errDef]=\"{ \n required: 'required'\n }\"></app-error>\n </div>\n <div class=\"field col-12 md:col-6\">\n <label for=\"lastName\">{{'contact.us.lastName'| translate}}</label><br />\n <input type=\"text\" pInputText formControlName=\"lastName\" maxlength=\"30\" />\n <app-error [class]=\"'app-grid'\" [field]='lastName' [form]=\"contactFormDirective\" [errDef]=\"{ \n required: 'required'\n }\"></app-error>\n </div>\n <div class=\"field col-6\" *ngIf=\"userType.value=='CLMT'\">\n <label for=\"ssn\">{{'contact.us.ssn'| translate}}</label><br />\n <p-inputMask mask=\"9999\" formControlName=\"ssn\" (onFocus)=\"inputType='text'\" (onBlur)=\"inputType='password'\"\n [type]=\"inputType\"></p-inputMask>\n <app-error [class]=\"'app-grid'\" [field]='ssn' [form]=\"contactFormDirective\" [errDef]=\"{ \n required: 'required'\n }\"></app-error>\n </div>\n <div class=\"field col-6\" *ngIf=\"userType.value=='CLMT'\">\n <label for=\"claimantId\">{{'contact.us.claimantID'| translate}}</label><br />\n <p-inputNumber formControlName=\"claimantId\" mode=\"decimal\" inputId=\"claimantId\" [useGrouping]=\"false\"\n placeholder=\"optional\" maxlength=\"8\"> </p-inputNumber>\n </div>\n <div class=\"field col-12 md:col-6\" *ngIf=\"userType.value=='EMPR'\">\n <label for=\"ean\">{{'contact.us.ean'| translate}}</label><br />\n <p-inputMask mask=\"9999999999\" formControlName=\"ean\" (onFocus)=\"inputType='text'\"\n (onBlur)=\"inputType='password'\" [type]=\"inputType\"></p-inputMask>\n <app-error [class]=\"'app-grid'\" [field]='ean' [form]=\"contactFormDirective\" [errDef]=\"{ \n required: 'required'\n }\"></app-error>\n </div>\n <div class=\"field col-12 md:col-6\" *ngIf=\"userType.value=='EMPR'\">\n <label for=\"fein\">{{'contact.us.fein'| translate}}</label><br />\n <p-inputMask mask=\"999999999\" formControlName=\"fein\" (onFocus)=\"inputType='text'\"\n (onBlur)=\"inputType='password'\" [type]=\"inputType\"></p-inputMask>\n <app-error [class]=\"'app-grid'\" [field]='fein' [form]=\"contactFormDirective\" [errDef]=\"{ \n required: 'required'\n }\"></app-error>\n </div>\n\n <div class=\"field col-12\" *ngIf=\"userType.value=='CLMT' || userType.value=='EMPR'\">\n <label for=\"selectedReason\">{{'contact.us.selectedReason'| translate}}</label><br />\n <p-dropdown [options]=\"activeComplaintCategory\" formControlName=\"selectedReason\" placeholder=\"Select category\"\n optionLabel=\"description\" [autoDisplayFirst]=\"false\" class=\"queryCategory\" appendTo=\"body\">\n </p-dropdown>\n <app-error [class]=\"'app-grid'\" [field]='selectedReason' [form]=\"contactFormDirective\" [errDef]=\"{ \n required: 'required'\n }\"></app-error>\n </div>\n <div class=\"field col-12\">\n <label for=\"issue\">{{'contact.us.issue'| translate}}</label><br />\n <textarea pInputTextarea formControlName=\"issue\" maxlength=\"500\"></textarea><br />\n <app-error [class]=\"'app-grid'\" [field]='issue' [form]=\"contactFormDirective\" [errDef]=\"{ \n required: 'required'\n }\"></app-error>\n <small>{{'contact.us.issueNotes'| translate}}</small>\n \n </div>\n\n <div class=\"field col-12\">\n <label for=\"email\">{{'contact.us.email'| translate}}</label>\n <input type=\"text\" pInputText formControlName=\"email\" maxlength=\"100\" />\n <app-error [class]=\"'app-grid'\" [field]='email' [form]=\"contactFormDirective\" [errDef]=\"{ \n required: 'required', email: 'Enter a valid email'\n }\"></app-error>\n </div>\n <div class=\"field col-12 md:col-6\">\n <label for=\"phone\">{{'contact.us.phone'| translate}}</label>\n <p-inputMask mask=\"(999) 999-9999\" formControlName=\"phone\" placeholder=\"(999) 999-9999\" unmask=\"true\">\n </p-inputMask>\n </div>\n <div class=\"field col-12 md:col-6\">\n <label for=\"altPhone\">{{'contact.us.altPhone'| translate}}</label>\n <p-inputMask mask=\"(999) 999-9999\" formControlName=\"altPhone\" placeholder=\"(999) 999-9999\" unmask=\"true\">\n </p-inputMask>\n </div>\n <div class=\"field col-12\">\n <app-address [fromPopup]=\"true\" formControlName=\"address\"></app-address>\n </div>\n <div class=\"field col-12\" *ngIf=\"!isCsr\">\n <app-captcha formControlName=\"captcha\"></app-captcha>\n <app-error [class]=\"'app-grid'\" [field]='captcha' [form]=\"contactFormDirective\" [errDef]=\"{ \n required: 'required'\n }\"></app-error>\n </div>\n\n <div class=\"field col-6\" *ngIf=\"isCsr\">\n <label for=\"division\">{{'contact.us.division'| translate}}</label>\n <p-dropdown [options]=\"allDepartments\" formControlName=\"division\" placeholder=\"Select Department\"\n optionLabel=\"value\" [autoDisplayFirst]=\"false\" class=\"roleName\" appendTo=\"body\" (onChange)=\"fetchUnitsBasedOnDepType($event)\">\n </p-dropdown>\n <app-error [class]=\"'app-grid'\" [field]='division' [form]=\"contactFormDirective\" [errDef]=\"{ \n required: 'required'\n }\"></app-error>\n </div>\n <div class=\"field col-6\" *ngIf=\"isCsr\">\n <label for=\"unit\">{{'contact.us.unit'| translate}}</label>\n <p-dropdown [options]=\"unitsBasedOnDept\" formControlName=\"unit\" placeholder=\"Select Unit\"\n optionLabel=\"value\" [autoDisplayFirst]=\"false\" class=\"roleName\" appendTo=\"body\" (onChange)=\"fetchUsersBasedOnUnit($event)\">\n </p-dropdown>\n <app-error [class]=\"'app-grid'\" [field]='unit' [form]=\"contactFormDirective\" [errDef]=\"{ \n required: 'required'\n }\"></app-error>\n </div>\n <div class=\"field col-6\" *ngIf=\"isCsr\">\n <label for=\"generalAssignment\">{{'contact.us.generalAssignment'| translate}}</label><br />\n <p-dropdown [options]=\"allRoles\" formControlName=\"generalAssignment\" (onChange)=\"fetchUsersBasedOnRoles($event)\"\n placeholder=\"Select Assignment\" optionLabel=\"value\" [autoDisplayFirst]=\"false\" \n appendTo=\"body\"></p-dropdown>\n <app-error [class]=\"'app-grid'\" [field]='generalAssignment' [form]=\"contactFormDirective\" [errDef]=\"{ \n required: 'required'\n }\"></app-error>\n </div>\n <div class=\"field col-6\" *ngIf=\"isCsr\">\n <label for=\"assignCaseTo\">{{\"contact.us.assignCaseTo\"| translate}}</label><br />\n <p-dropdown [options]=\"usersFLname\" formControlName=\"assignCaseTo\"\n placeholder=\"Assign Case To\" [autoDisplayFirst]=\"false\" optionLabel=\"text\" \n appendTo=\"body\"></p-dropdown>\n <app-error [class]=\"'app-grid'\" [field]='assignCaseTo' [form]=\"contactFormDirective\" [errDef]=\"{ \n required: 'required'\n }\"></app-error>\n </div> \n <div class=\"field col-12 md:col-6\" *ngIf=\"isCsr\">\n <label for=\"generatedThrough\">{{\"contact.us.msgGeneratedThrough\"| translate}}</label><br />\n <p-dropdown [options]=\"msgGeneratedThroughList\" formControlName=\"generatedThrough\"\n placeholder=\"Message generated through\" [autoDisplayFirst]=\"false\" optionLabel=\"description\" \n appendTo=\"body\"></p-dropdown>\n <app-error [class]=\"'app-grid'\" [field]='generatedThrough' [form]=\"contactFormDirective\" [errDef]=\"{ \n required: 'required'\n }\"></app-error>\n </div> \n <div class=\"field col-12\" *ngIf=\"isCsr && selectedCase\">\n <label for=\"closeCaseReason\">{{\"contact.us.close\"| translate}}</label><br />\n <p-dropdown [options]=\"allCloseReasons\" formControlName=\"closeCaseReason\" class=\"queryCategory\"\n placeholder=\"Select Reason\" [autoDisplayFirst]=\"false\" optionLabel=\"description\" \n appendTo=\"body\" showClear=\"true\"></p-dropdown>\n </div>\n \n </div>\n </form>\n</div>\n<div *ngIf=\"showSuccess\">\n <div *ngIf=\"submitSuccess\">\n <ion-row>\n <ion-col class=\"ion-text-left text-lg\" style=\"font-family: var(--app-font-light)\">\n {{'contact.us.successMsg'| translate}}<span\n style=\"font-weight: bold; color: var(--ion-color-primary);\">{{caseNo}}</span>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col class=\"ion-text-center\">\n <ion-icon name=\"checkmark-circle\" style=\"font-size: 80px; color: var(--ion-color-green);\"\n class=\"zoomin animation-duration-1000\"></ion-icon>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col class=\"ion-text-left text-lg contactUsPageHeader\">\n {{'contact.us.contactAgain'| translate}}\n </ion-col>\n </ion-row>\n </div>\n <div *ngIf=\"!submitSuccess\">\n <ion-row>\n <ion-col class=\"ion-text-left text-lg\" style=\"font-family: var(--app-font-light)\">\n {{'contact.us.failedMsg'| translate}}\n </ion-col>\n </ion-row>\n </div>\n</div>\n\n<div class=\"field col-12 ion-text-right\">\n <ion-button *ngIf=\"!showSuccess && !isCsr\" shape=\"round\" type=\"submit\" color=\"primary\" \n (click)=\"submitContactUs(contactUsForm)\">Submit\n </ion-button>\n <ion-button *ngIf=\"!isCsr\" shape=\"round\" type=\"submit\" color=\"primary\" (click)=\"emitHide($event)\">\n Close\n </ion-button>\n</div>", styles: ["ion-col{padding-left:0}div{margin-bottom:0!important}.error{color:var(--ion-color-danger)}:host ::ng-deep .p-fluid .p-dropdown .p-dropdown-label{white-space:wrap!important}.contactUsPageTitle{color:#000;margin-top:0}.contactUsPageHeader{font-weight:500;color:#000}\n"] }]
949
+ }], () => [{ type: i1.UntypedFormBuilder }, { type: i2.CaseService }, { type: i3.CmpService }, { type: i4.SecurityService }, { type: i5.UtilService }, { type: i6.LoggerService }], { isCsr: [{
950
+ type: Input
951
+ }], isNewCase: [{
952
+ type: Input
953
+ }], selectedCase: [{
954
+ type: Input
955
+ }], modelCancel: [{
956
+ type: Output
957
+ }], success: [{
958
+ type: Output
959
+ }], updateSuccess: [{
960
+ type: Output
961
+ }], onHide: [{
962
+ type: Output
963
+ }], onLoad: [{
964
+ type: Output
965
+ }], contactFormDirective: [{
966
+ type: ViewChild,
967
+ args: ['contactFormDirective', { static: false }]
968
+ }] }); })();
969
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ContactUsComponent, { className: "ContactUsComponent" }); })();
970
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC11cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29udGFjdC11cy9jb250YWN0LXVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9jb250YWN0LXVzL2NvbnRhY3QtdXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFvQixVQUFVLEVBQThCLFNBQVMsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0osT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDN0YsT0FBTyxFQUFFLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBTzdGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNiaEUsNkJBQ2tCO0lBQUEsWUFBc0M7O0lBQUEsaUJBQUs7O0lBQTNDLGVBQXNDO0lBQXRDLGtFQUFzQzs7O0lBSXBELDZCQUFrRDtJQUNsRCxZQUNBOztJQUFBLGlCQUFJOztJQURKLGVBQ0E7SUFEQSw4RUFDQTs7Ozs7SUEyQkUsK0JBQXdELGdCQUFBO0lBQ3JDLFlBQStCOztJQUFBLGlCQUFRO0lBQUEscUJBQU07SUFDOUQsdUNBQ3FCO0lBRDBCLHFOQUFxQixNQUFNLEtBQUMsc01BQXFCLFVBQVUsS0FBL0I7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OztrRkEvQ3pDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgVW50eXBlZEZvcm1CdWlsZGVyLCBOZ0Zvcm0sIEZvcm1Hcm91cCwgRm9ybUNvbnRyb2wsIE5HX1ZBTFVFX0FDQ0VTU09SLCBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENhc2VDb3JlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvY21wL0Nhc2VDb3JlTW9kZWwnO1xuaW1wb3J0IHsgQ29tcGxhaW50Q2F0ZWdvcnlNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9jbXAvQ29tcGxhaW50Q2F0ZWdvcnlNb2RlbCc7XG5pbXBvcnQgeyBDb21wbGFpbnRDYXRlZ29yeU91dHB1dE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NtcC9Db21wbGFpbnRDYXRlZ29yeU91dHB1dE1vZGVsJztcbmltcG9ydCB7IENob2ljZXNNb2RlbCwgQ29udGFjdFVzSW5xdWVyeU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NtcC9jb250YWN0VXNJbnF1ZXJ5TW9kZWwnO1xuaW1wb3J0IHsgS2V5VmFsdWVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0tleVZhbHVlTW9kZWwnO1xuaW1wb3J0IHsgQ2FzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYXNlLXNlcnZpY2UvY2FzZS5zZXJ2aWNlJztcbmltcG9ydCB7IENtcFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jbXAtc2VydmljZS9jbXAuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNlY3VyaXR5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NlY3VyaXR5LXNlcnZpY2Uvc2VjdXJpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcFJlZ2V4IH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbnMvQXBwUmVnZXgnO1xuaW1wb3J0IHsgQXBwVmFsaWRhdG9ycyB9IGZyb20gJy4uLy4uL3ZhbGlkYXRpb25zL0FwcFZhbGlkYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY29udGFjdC11cycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250YWN0LXVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29udGFjdC11cy5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFt7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IENvbnRhY3RVc0NvbXBvbmVudCxcbiAgICBtdWx0aTogdHJ1ZVxuICB9XVxufSlcbmV4cG9ydCBjbGFzcyBDb250YWN0VXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICBwdWJsaWMgY29udGFjdFVzRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgcHVibGljIGNvbXBsYWludENhdGVnb3J5UmV0cml2ZWRMaXN0OiBDb21wbGFpbnRDYXRlZ29yeU1vZGVsW107XG4gIHB1YmxpYyBjb21wbGFpbnRDYXRlZ29yeVJldHJpdmVkTGlzdEVtcHI6IENvbXBsYWludENhdGVnb3J5TW9kZWxbXTtcbiAgcHVibGljIGNvbXBsYWludENhdGVnb3J5UmV0cml2ZWRMaXN0Q2xtdDogQ29tcGxhaW50Q2F0ZWdvcnlNb2RlbFtdO1xuICBwdWJsaWMgYWN0aXZlQ29tcGxhaW50Q2F0ZWdvcnk6IENvbXBsYWludENhdGVnb3J5TW9kZWxbXTtcbiAgcHVibGljIGNhc2VObzogc3RyaW5nO1xuICBwdWJsaWMgcmVzcG9uc2VDYWxsOiBhbnk7XG4gIHB1YmxpYyBhbGxEZXBhcnRtZW50czogS2V5VmFsdWVNb2RlbFtdO1xuICBwdWJsaWMgYWxsVW5pdHM6IEtleVZhbHVlTW9kZWxbXTtcbiAgcHVibGljIHVuaXRzQmFzZWRPbkRlcHQ6IEtleVZhbHVlTW9kZWxbXTtcbiAgcHVibGljIGFsbENsb3NlUmVhc29uczogS2V5VmFsdWVNb2RlbFtdO1xuICBwdWJsaWMgYWxsUm9sZXM6IEtleVZhbHVlTW9kZWxbXSA9IFtdO1xuICBwdWJsaWMgdXNlcnM6IGFueVtdO1xuICBwdWJsaWMgdXNlcnNGTG5hbWU6IEFycmF5PENob2ljZXNNb2RlbD4gPSBbXTtcbiAgcHVibGljIHVuaXRJRDogYW55O1xuICBwdWJsaWMgc2VsZWN0ZWREZXA6IGFueTtcbiAgcHVibGljIHNlbGVjdGVkRGVwVHlwZTogYW55O1xuICBwdWJsaWMgc2VsZWN0ZWRSb2xlOiBhbnk7XG4gIHB1YmxpYyBzZWxlY3RlZFVuaXQ6IGFueTtcbiAgcHVibGljIG1zZ0dlbmVyYXRlZFRocm91Z2hMaXN0OiBhbnk7XG5cbiAgQElucHV0KClcbiAgaXNDc3I6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBpc05ld0Nhc2UgOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBzZWxlY3RlZENhc2UgOiBDYXNlQ29yZU1vZGVsO1xuXG4gIEBPdXRwdXQoKVxuICBtb2RlbENhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAT3V0cHV0KClcbiAgc3VjY2VzczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIHVwZGF0ZVN1Y2Nlc3MgOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgb25IaWRlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgb25Mb2FkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAVmlld0NoaWxkKCdjb250YWN0Rm9ybURpcmVjdGl2ZScsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwdWJsaWMgY29udGFjdEZvcm1EaXJlY3RpdmU6IE5nRm9ybTtcblxuICBzaG93U3VjY2VzcyA9IGZhbHNlO1xuICBkaXNwbGF5OiBib29sZWFuID0gdHJ1ZTtcbiAgc3VibWl0U3VjY2VzcyA9IGZhbHNlO1xuICBpbnB1dFR5cGUgPSAndGV4dCc7XG5cbiAgdHlwZTogQ2hvaWNlc01vZGVsW10gPSBbXG4gICAgeyB0ZXh0OiAnYSBjbGFpbWFudCcsIHZhbHVlOiAnQ0xNVCcgfSxcbiAgICB7IHRleHQ6ICdhbiBlbXBsb3llcicsIHZhbHVlOiAnRU1QUicgfVxuICBdO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLCBwdWJsaWMgY2FzZVNlcnZpY2U6IENhc2VTZXJ2aWNlLCBwdWJsaWMgY21wU2VydmljZTogQ21wU2VydmljZSxcbiAgICBwdWJsaWMgc2VjdXJpdHlTZXJ2aWNlOiBTZWN1cml0eVNlcnZpY2UsIHB1YmxpYyB1dGlsOiBVdGlsU2VydmljZSwgcHVibGljIGxvZ2dlclNlcnZpY2U6IExvZ2dlclNlcnZpY2UpIHsgfVxuXG4gIHByaXZhdGUgb25DaGFuZ2U6IEZ1bmN0aW9uID0gKHZhbHVlOiBTdHJpbmcpID0+IHtcbiAgfTtcbiAgcHJpdmF0ZSBvblRvdWNoOiBGdW5jdGlvbiA9ICgpID0+IHtcbiAgfTtcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gIH1cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuXG4gIH1cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMub25Ub3VjaCA9IGZuXG4gIH1cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29udGFjdFVzRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgJ3VzZXJUeXBlJzogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgJ2ZpcnN0TmFtZSc6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICdsYXN0TmFtZSc6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICdzc24nOiBbbnVsbF0sXG4gICAgICAnY2xhaW1hbnRJZCc6IFtudWxsXSxcbiAgICAgICdlYW4nOiBbbnVsbF0sXG4gICAgICAnZmVpbic6IFtudWxsXSxcbiAgICAgICdzZWxlY3RlZFJlYXNvbic6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICdpc3N1ZSc6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICdlbWFpbCc6IFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgQXBwVmFsaWRhdG9ycy5tYXRjaChBcHBSZWdleC5FTUFJTF9SRUdFWCwgeyBlbWFpbDogdHJ1ZSB9KV1dLFxuICAgICAgJ3Bob25lJzogW251bGxdLFxuICAgICAgJ2FsdFBob25lJzogW251bGxdLFxuICAgICAgJ2FkZHJlc3MnOiBbbnVsbF0sXG4gICAgICAnZGl2aXNpb24nOiBbbnVsbF0sXG4gICAgICAndW5pdCc6IFtudWxsXSxcbiAgICAgICdnZW5lcmFsQXNzaWdubWVudCc6IFtudWxsXSxcbiAgICAgICdhc3NpZ25DYXNlVG8nOiBbbnVsbF0sXG4gICAgICAnY2xvc2VDYXNlUmVhc29uJzpbbnVsbF0sXG4gICAgICAnZ2VuZXJhdGVkVGhyb3VnaCc6W251bGxdLFxuICAgICAgJ2NhcHRjaGEnOiBbbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICB9KTtcbiAgICBcbiAgICB0aGlzLnNlbGVjdEJ1dHRvblZhbGlkYXRpb24oKTtcbiAgICB0aGlzLnNlbGVjdENTUnZhbGlkYXRpb24oKTtcbiAgICB0aGlzLmdldENvbXBsYWludENhdGVnb3J5KCk7XG4gICAgdGhpcy5mZXRjaE1zdERlcGFydG1lbnRzKCk7XG4gICAgdGhpcy5mZXRjaE1zdEFsbFVuaXRzKCk7XG4gICAgdGhpcy5mZXRjaE1zdENhc2VDbG9zZVJlYXNvbnMoKTtcbiAgICB0aGlzLmdldEFsbFJvbGVzKCk7XG4gICAgdGhpcy5nZXRNc2dHZW5lcmF0ZWRUaHJvdWdoKCk7XG5cbiAgICBpZih0aGlzLnNlbGVjdGVkQ2FzZSAmJiB0aGlzLmlzQ3NyID09IHRydWUpe1xuICAgICAgdGhpcy5sb2FkUHJlU2F2ZWRDb250YWN0VXNEZXRhaWxzKCk7XG4gICAgfVxuICB9XG5cbiAgbG9hZFByZVNhdmVkQ29udGFjdFVzRGV0YWlscygpe1xuICAgIHRoaXMubG9nZ2VyU2VydmljZS5kZWJ1ZyhcInNlbGVjdGVkIGNhc2UgOiBcIiwgdGhpcy5zZWxlY3RlZENhc2UpO1xuICAgIHRoaXMuY21wU2VydmljZS5mZXRjaElucXVpcnlEZXRhaWxzQnlJbnF1aXJ5SWQodGhpcy5zZWxlY3RlZENhc2UuY2FzZU51bWJlcikuc3Vic2NyaWJlKFxuICAgICAgcmVzID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmluZm8ocmVzKTtcbiAgICAgICAgdGhpcy5jb250YWN0VXNGb3JtLnBhdGNoVmFsdWUocmVzKTtcbiAgICAgICAgdGhpcy51c2VyVHlwZS5zZXRWYWx1ZShyZXNbXCJ1c2VyVHlwZVwiXS52YWx1ZSk7XG4gICAgICAgIHRoaXMuZGl2aXNpb24uc2V0VmFsdWUodGhpcy5hbGxEZXBhcnRtZW50cy5maWx0ZXIoYyA9PiBjLmtleSA9PSB0aGlzLnNlbGVjdGVkQ2FzZS5kZXBhcnRtZW50LmtleSlbMF0pO1xuICAgICAgICB0aGlzLmdlbmVyYWxBc3NpZ25tZW50LnNldFZhbHVlKHRoaXMuYWxsUm9sZXMuZmlsdGVyKGMgPT4gYy52YWx1ZSA9PSB0aGlzLnNlbGVjdGVkQ2FzZS5sZXZlbC50ZXh0KVswXSk7XG5cbiAgICAgICAgaWYgKHJlc1tcInVzZXJUeXBlXCJdLnZhbHVlID09PSAnRU1QUicpIHtcbiAgICAgICAgICB0aGlzLmFjdGl2ZUNvbXBsYWludENhdGVnb3J5ID0gdGhpcy5jb21wbGFpbnRDYXRlZ29yeVJldHJpdmVkTGlzdEVtcHI7XG4gICAgICAgICAgdGhpcy5zZWxlY3RCdXR0b25WYWxpZGF0aW9uKCk7XG4gICAgICAgIH0gZWxzZSBpZiAocmVzW1widXNlclR5cGVcIl0udmFsdWUgPT09ICdDTE1UJykge1xuICAgICAgICAgIHRoaXMuYWN0aXZlQ29tcGxhaW50Q2F0ZWdvcnkgPSB0aGlzLmNvbXBsYWludENhdGVnb3J5UmV0cml2ZWRMaXN0Q2xtdDtcbiAgICAgICAgICB0aGlzLnNlbGVjdEJ1dHRvblZhbGlkYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGVkUmVhc29uLnNldFZhbHVlKHRoaXMuYWN0aXZlQ29tcGxhaW50Q2F0ZWdvcnkuZmlsdGVyKGMgPT4gYy5jb21wbGFpbnRDYXRlZ29yeUlkID09IHJlcy5jb21wbGFpbnRDYXRlZ29yeSlbMF0pO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREZXBUeXBlID0gdGhpcy5kaXZpc2lvbi52YWx1ZS5rZXk7XG4gICAgICAgIHRoaXMuZ2V0VW5pdHNCYXNlZE9uRGVwU2VsZWN0ZWQoKTtcbiAgICAgICAgaWYodGhpcy5zZWxlY3RlZENhc2UudW5pdCAhPSBudWxsKXtcbiAgICAgICAgICB0aGlzLnVuaXQuc2V0VmFsdWUodGhpcy51bml0c0Jhc2VkT25EZXB0LmZpbHRlcihjID0+IGMua2V5ID09IHRoaXMuc2VsZWN0ZWRDYXNlLnVuaXQua2V5KVswXSk7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFVuaXQgPSB0aGlzLnVuaXQudmFsdWUua2V5O1xuICAgICAgICB9ICAgICAgIFxuICAgICAgICB0aGlzLnNlbGVjdGVkUm9sZSA9IHRoaXMuZ2VuZXJhbEFzc2lnbm1lbnQudmFsdWUudHlwZTtcbiAgICAgICAgdGhpcy5nZXRVc2Vyc0Jhc2VkT25EZXB0QW5kUm9sZSgpO1xuICAgICAgICBpZih0aGlzLnNlbGVjdGVkQ2FzZS5jbG9zZUNhc2VSZWFzb24gIT0gbnVsbCl7XG4gICAgICAgICAgdGhpcy5jbG9zZUNhc2VSZWFzb24uc2V0VmFsdWUodGhpcy5hbGxDbG9zZVJlYXNvbnMuZmlsdGVyKGMgPT4gYy5rZXkgPT0gdGhpcy5zZWxlY3RlZENhc2UuY2xvc2VDYXNlUmVhc29uLnZhbHVlKVswXSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZihyZXMuZ2VuZXJhdGVkVGhyb3VnaCAhPSBudWxsKXtcbiAgICAgICAgICB0aGlzLmdlbmVyYXRlZFRocm91Z2guc2V0VmFsdWUodGhpcy5tc2dHZW5lcmF0ZWRUaHJvdWdoTGlzdC5maWx0ZXIoYyA9PiBjLmtleSA9PSByZXMuZ2VuZXJhdGVkVGhyb3VnaC52YWx1ZSlbMF0pO1xuICAgICAgICB9XG4gICAgICBcblx0ICAgICAgdGhpcy5vbkxvYWQuZW1pdChyZXMpO1xuICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKFwiVW5hYmxlIHRvIGZldGNoIGlucXVpcnkgZGV0YWlscy5cIik7XG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgZW1pdEhpZGUoZXZlbnQpIHtcbiAgICB0aGlzLm9uSGlkZS5lbWl0KGV2ZW50KTtcbiAgICB0aGlzLmRpc3BsYXkgPSBmYWxzZTtcbiAgICB0aGlzLnNob3dTdWNjZXNzID0gZmFsc2U7XG4gIH1cblxuICBzZWxlY3RCdXR0b25WYWxpZGF0aW9uKCkge1xuICAgIHRoaXMudXNlclR5cGUudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xuXG4gICAgICBpZiAodmFsID09PSAnQ0xNVCcpIHtcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuc3NuKTtcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVhbik7XG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5mZWluKTtcbiAgICAgIH1cbiAgICAgIGlmICh2YWwgPT09ICdFTVBSJykge1xuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuc3NuKTtcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZWFuKTtcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZmVpbik7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHNlbGVjdENTUnZhbGlkYXRpb24oKSB7XG4gICAgaWYgKHRoaXMuaXNDc3IpIHtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmRpdmlzaW9uKTtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnVuaXQpO1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZ2VuZXJhbEFzc2lnbm1lbnQpO1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuYXNzaWduQ2FzZVRvKTtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmdlbmVyYXRlZFRocm91Z2gpO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmNhcHRjaGEpO1xuICAgIH1cbiAgfVxuXG4gIHN1Ym1pdENvbnRhY3RVcyhpbnB1dCA6IGFueSkge1xuICAgIGlmICghdGhpcy5jb250YWN0VXNGb3JtLnZhbGlkKSB7XG4gICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyh0aGlzLmNvbnRhY3RVc0Zvcm0pXG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBjb250YWN0VXNJbnF1aXJ5TW9kZWw6IENvbnRhY3RVc0lucXVlcnlNb2RlbCA9IG5ldyBDb250YWN0VXNJbnF1ZXJ5TW9kZWwoKTtcblxuICAgICAgY29udGFjdFVzSW5xdWlyeU1vZGVsLmlucXVpcnlCeSA9IHRoaXMudXNlclR5cGUudmFsdWU7XG4gICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwuZmlyc3ROYW1lID0gdGhpcy5maXJzdE5hbWUudmFsdWU7XG4gICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwubGFzdE5hbWUgPSB0aGlzLmxhc3ROYW1lLnZhbHVlO1xuICAgICAgY29udGFjdFVzSW5xdWlyeU1vZGVsLnNzbiA9IHRoaXMuc3NuLnZhbHVlO1xuICAgICAgY29udGFjdFVzSW5xdWlyeU1vZGVsLmNsYWltYW50SWQgPSB0aGlzLmNsYWltYW50SWQudmFsdWU7XG4gICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwuZWFuID0gdGhpcy5lYW4udmFsdWU7XG4gICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwuZmVpbiA9IHRoaXMuZmVpbi52YWx1ZTtcblxuICAgICAgbGV0IGNob2ljZU1vZGVsOiBDb21wbGFpbnRDYXRlZ29yeU91dHB1dE1vZGVsID0gbmV3IENvbXBsYWludENhdGVnb3J5T3V0cHV0TW9kZWwoKTtcbiAgICAgIGNob2ljZU1vZGVsLnRleHQgPSB0aGlzLnNlbGVjdGVkUmVhc29uLnZhbHVlLmRlc2NyaXB0aW9uO1xuICAgICAgY2hvaWNlTW9kZWwudmFsdWUgPSB0aGlzLnNlbGVjdGVkUmVhc29uLnZhbHVlLmNvbXBsYWludENhdGVnb3J5SWQ7XG4gICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwuY29tcGxhaW50Q2F0ZWdvcnkgPSBjaG9pY2VNb2RlbDtcblxuICAgICAgY29udGFjdFVzSW5xdWlyeU1vZGVsLnF1ZXN0aW9uID0gdGhpcy5pc3N1ZS52YWx1ZTtcbiAgICAgIGNvbnRhY3RVc0lucXVpcnlNb2RlbC5lbWFpbCA9IHRoaXMuZW1haWwudmFsdWU7XG4gICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwucGhvbmUgPSB0aGlzLnBob25lLnZhbHVlO1xuICAgICAgY29udGFjdFVzSW5xdWlyeU1vZGVsLmFsdFBob25lID0gdGhpcy5hbHRQaG9uZS52YWx1ZTtcbiAgICAgIGNvbnRhY3RVc0lucXVpcnlNb2RlbC5zdHJlZXRBZGRyZXNzID0gdGhpcy5hZGRyZXNzLnZhbHVlPy5zdHJlZXRBZGRyZXNzO1xuICAgICAgY29udGFjdFVzSW5xdWlyeU1vZGVsLm9wdGlvbmFsQWRkcmVzcyA9IHRoaXMuYWRkcmVzcy52YWx1ZT8ub3B0aW9uYWxBZGRyZXNzO1xuICAgICAgY29udGFjdFVzSW5xdWlyeU1vZGVsLmNpdHkgPSB0aGlzLmFkZHJlc3MudmFsdWU/LmNpdHk7XG4gICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwuc3RhdGUgPSB0aGlzLmFkZHJlc3MudmFsdWU/LnN0YXRlPy52YWx1ZTtcbiAgICAgIGNvbnRhY3RVc0lucXVpcnlNb2RlbC56aXAgPSB0aGlzLmFkZHJlc3MudmFsdWU/LnppcDtcbiAgICAgIGNvbnRhY3RVc0lucXVpcnlNb2RlbC5jb3VudHJ5ID0gdGhpcy5hZGRyZXNzLnZhbHVlPy5jb3VudHJ5LnZhbHVlO1xuXG4gICAgICBpZih0aGlzLmlzQ3NyID09PSBmYWxzZSl7XG4gICAgICAgIGxldCBjaG9pY2VNb2RlbDogQ2hvaWNlc01vZGVsID0gbmV3IENob2ljZXNNb2RlbCgpO1xuICAgICAgICBjaG9pY2VNb2RlbC50ZXh0ID0gXCJTZWxmIHNlcnZpY2VcIjtcbiAgICAgICAgY2hvaWNlTW9kZWwudmFsdWUgPSBcIlNFTEZcIjtcbiAgICAgICAgY29udGFjdFVzSW5xdWlyeU1vZGVsLmdlbmVyYXRlZFRocm91Z2ggPSBjaG9pY2VNb2RlbDtcbiAgICAgIH1cbiAgICAgIGlmKHRoaXMuaXNDc3IgPT09IHRydWUpe1xuICAgICAgICBsZXQgY2hvaWNlTW9kZWwzOiBDaG9pY2VzTW9kZWwgPSBuZXcgQ2hvaWNlc01vZGVsKCk7XG4gICAgICAgIGNob2ljZU1vZGVsMy50ZXh0ID0gdGhpcy5kaXZpc2lvbi52YWx1ZS52YWx1ZTtcbiAgICAgICAgY2hvaWNlTW9kZWwzLnZhbHVlID0gdGhpcy5kaXZpc2lvbi52YWx1ZS5rZXk7XG4gICAgICAgIGNvbnRhY3RVc0lucXVpcnlNb2RlbC5kaXZpc2lvbiA9IGNob2ljZU1vZGVsMztcblxuICAgICAgICBsZXQgY2hvaWNlTW9kZWw2OiBDaG9pY2VzTW9kZWwgPSBuZXcgQ2hvaWNlc01vZGVsKCk7XG4gICAgICAgIGNob2ljZU1vZGVsNi50ZXh0ID0gdGhpcy51bml0LnZhbHVlLnZhbHVlO1xuICAgICAgICBjaG9pY2VNb2RlbDYudmFsdWUgPSB0aGlzLnVuaXQudmFsdWUua2V5O1xuICAgICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwudW5pdCA9IGNob2ljZU1vZGVsNjtcblxuICAgICAgICBsZXQgY2hvaWNlTW9kZWw6IENob2ljZXNNb2RlbCA9IG5ldyBDaG9pY2VzTW9kZWwoKTtcbiAgICAgICAgY2hvaWNlTW9kZWwudGV4dCA9IHRoaXMuZ2VuZXJhbEFzc2lnbm1lbnQudmFsdWUuZGVzY3JpcHRpb247XG4gICAgICAgIGNob2ljZU1vZGVsLnZhbHVlID0gdGhpcy5nZW5lcmFsQXNzaWdubWVudC52YWx1ZS5rZXk7XG4gICAgICAgIGNvbnRhY3RVc0lucXVpcnlNb2RlbC5jYXNlT3duZXJHcm91cEtleSA9IGNob2ljZU1vZGVsO1xuXG4gICAgICAgIGxldCBjaG9pY2VNb2RlbDI6IENob2ljZXNNb2RlbCA9IG5ldyBDaG9pY2VzTW9kZWwoKTtcbiAgICAgICAgY2hvaWNlTW9kZWwyLnRleHQgPSB0aGlzLmFzc2lnbkNhc2VUby52YWx1ZS50ZXh0O1xuICAgICAgICBjaG9pY2VNb2RlbDIudmFsdWUgPSB0aGlzLmFzc2lnbkNhc2VUby52YWx1ZS52YWx1ZTtcbiAgICAgICAgY29udGFjdFVzSW5xdWlyeU1vZGVsLmFzc2lnbkNhc2VUbyA9IGNob2ljZU1vZGVsMjsgXG5cbiAgICAgICAgaWYodGhpcy5jbG9zZUNhc2VSZWFzb24udmFsdWUgIT0gbnVsbCl7XG4gICAgICAgICAgbGV0IGNob2ljZU1vZGVsNDogQ2hvaWNlc01vZGVsID0gbmV3IENob2ljZXNNb2RlbCgpO1xuICAgICAgICAgIGNob2ljZU1vZGVsNC50ZXh0ID0gdGhpcy5jbG9zZUNhc2VSZWFzb24udmFsdWUuZGVzY3JpcHRpb247XG4gICAgICAgICAgY2hvaWNlTW9kZWw0LnZhbHVlID0gdGhpcy5jbG9zZUNhc2VSZWFzb24udmFsdWUua2V5O1xuICAgICAgICAgIGNvbnRhY3RVc0lucXVpcnlNb2RlbC5jbG9zZUNhc2VSZWFzb24gPSBjaG9pY2VNb2RlbDQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZih0aGlzLmdlbmVyYXRlZFRocm91Z2gudmFsdWUgIT0gbnVsbCl7XG4gICAgICAgICAgbGV0IGNob2ljZU1vZGVsNTogQ2hvaWNlc01vZGVsID0gbmV3IENob2ljZXNNb2RlbCgpO1xuICAgICAgICAgIGNob2ljZU1vZGVsNS50ZXh0ID0gdGhpcy5nZW5lcmF0ZWRUaHJvdWdoLnZhbHVlLmRlc2NyaXB0aW9uO1xuICAgICAgICAgIGNob2ljZU1vZGVsNS52YWx1ZSA9IHRoaXMuZ2VuZXJhdGVkVGhyb3VnaC52YWx1ZS5rZXk7XG4gICAgICAgICAgY29udGFjdFVzSW5xdWlyeU1vZGVsLmdlbmVyYXRlZFRocm91Z2ggPSBjaG9pY2VNb2RlbDU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuc3VjY2Vzcy5lbWl0KHRoaXMuY29udGFjdFVzRm9ybSk7XG4gICAgICBpZih0aGlzLnNlbGVjdGVkQ2FzZSAmJiB0aGlzLnNlbGVjdGVkQ2FzZS5jYXNlTnVtYmVyKXtcbiAgICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmRlYnVnKCd1cGRhdGUgY2FsbGVkID0gJywgdGhpcy5zZWxlY3RlZENhc2UuY2FzZU51bWJlcik7XG4gICAgICAgIGNvbnRhY3RVc0lucXVpcnlNb2RlbC5pbnF1aXJ5SWQgPSB0aGlzLnNlbGVjdGVkQ2FzZS5jYXNlTnVtYmVyO1xuICAgICAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmNtcFNlcnZpY2UudXBkYXRlSW5xdWlyeURhdGEoY29udGFjdFVzSW5xdWlyeU1vZGVsLCB0aGlzLnNlbGVjdGVkQ2FzZS5jYXNlTnVtYmVyKVxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+e1xuICAgICAgICAgICAgdGhpcy5yZXNwb25zZUNhbGwgPSByZXM7XG4gICAgICAgICAgICB0aGlzLmNhc2VObyA9IHRoaXMucmVzcG9uc2VDYWxsLmlucXVpcnlJZDtcbiAgICAgICAgICAgIHRoaXMudXRpbC5zdWNjZXNzKHRoaXMucmVzcG9uc2VDYWxsW1wibXNnXCJdKTtcbiAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgICAgICB9KVxuICAgICAgICB9KTtcblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmRlYnVnKFwiY3JlYXRpbmcgbmV3IGNhc2VcIik7XG4gICAgICAgIGlmKHRoaXMuaXNDc3IgPT09IHRydWUpe1xuICAgICAgICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNtcFNlcnZpY2Uuc3VibWl0UXVlcnlGb3JDU1IoY29udGFjdFVzSW5xdWlyeU1vZGVsKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzU3VibWl0UXVlcnlSZXNwb25zZShyZXMpO1xuICAgICAgICAgICAgICB9LCBlcnIgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc1N1Ym1pdFF1ZXJ5RXJyb3JSZXNwb25zZShlcnIpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jbXBTZXJ2aWNlLnN1Ym1pdFF1ZXJ5KGNvbnRhY3RVc0lucXVpcnlNb2RlbClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzU3VibWl0UXVlcnlSZXNwb25zZShyZXMpO1xuICAgICAgICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzU3VibWl0UXVlcnlFcnJvclJlc3BvbnNlKGVycik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSAgIFxuICAgICAgfVxuICAgIH1cbiAgfVxuICBwcm9jZXNzU3VibWl0UXVlcnlFcnJvclJlc3BvbnNlKGVycjogYW55KSB7XG4gICAgdGhpcy5zaG93U3VjY2VzcyA9IGZhbHNlO1xuICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcImVyclwiLCBlcnIpO1xuICAgIGlmKHRoaXMuaXNDc3IgPT09IHRydWUpIHtcbiAgICAgIHRoaXMudXBkYXRlU3VjY2Vzcy5lbWl0KFwidHJ1ZVwiKTtcbiAgICB9XG4gICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgfVxuICBwcm9jZXNzU3VibWl0UXVlcnlSZXNwb25zZShyZXM6IGFueSkge1xuICAgIHRoaXMucmVzcG9uc2VDYWxsID0gcmVzO1xuICAgIHRoaXMuY2FzZU5vID0gdGhpcy5yZXNwb25zZUNhbGwuaW5xdWlyeUlkO1xuXG4gICAgaWYgKHRoaXMuY2FzZU5vICE9IFwiMFwiKSB7XG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuaW5mbygnU3VibWl0IGNvbnRhY3QgdXMgY2FzZSBObzonLCB0aGlzLmNhc2VObyk7XG4gICAgICB0aGlzLnNob3dTdWNjZXNzID0gdHJ1ZTtcbiAgICAgIHRoaXMuc3VibWl0U3VjY2VzcyA9IHRydWU7XG4gICAgICBpZih0aGlzLmlzQ3NyID09PSB0cnVlKSB7XG4gICAgICAgIHRoaXMudXBkYXRlU3VjY2Vzcy5lbWl0KFwidHJ1ZVwiKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcignZmFpbGVkIHRvIHN1Ym1pdCBjb250YWN0IHVzIGNhc2UnKTtcbiAgICAgIHRoaXMuc2hvd1N1Y2Nlc3MgPSB0cnVlO1xuICAgICAgaWYodGhpcy5pc0NzciA9PT0gdHJ1ZSkge1xuICAgICAgICB0aGlzLnVwZGF0ZVN1Y2Nlc3MuZW1pdChcInRydWVcIik7XG4gICAgICB9XG4gICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlQWxsRm9ybUZpZWxkcyhmb3JtR3JvdXA6IEZvcm1Hcm91cCkge1xuICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaChmaWVsZCA9PiB7XG5cbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZpZWxkKTtcbiAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKGNvbnRyb2wpO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBnZXRDb21wbGFpbnRDYXRlZ29yeSgpIHtcbiAgICB0aGlzLmNtcFNlcnZpY2UuZ2V0Q29tcGxhaW50Q2F0ZWdvcnkoKS5zdWJzY3JpYmUoKHJlczogQ29tcGxhaW50Q2F0ZWdvcnlNb2RlbFtdKSA9PiB7XG4gICAgICB0aGlzLmNvbXBsYWludENhdGVnb3J5UmV0cml2ZWRMaXN0ID0gcmVzO1xuICAgICAgdGhpcy5jb21wbGFpbnRDYXRlZ29yeVJldHJpdmVkTGlzdEVtcHIgPSByZXMuZmlsdGVyKHIgPT4gci50eXBlID09PSBcIkVNUFJcIik7XG4gICAgICB0aGlzLmNvbXBsYWludENhdGVnb3J5UmV0cml2ZWRMaXN0Q2xtdCA9IHJlcy5maWx0ZXIociA9PiByLnR5cGUgPT09IFwiQ0xNVFwiKTtcbiAgICB9KVxuICB9XG5cblxuICBhY3RpdmVVc2VyVHlwZShldmVudCkge1xuICAgIGxldCBjdXJyZW50VmFsdWUgPSBldmVudC5vcHRpb24udmFsdWU7XG4gICAgaWYgKGN1cnJlbnRWYWx1ZSA9PT0gJ0VNUFInKSB7XG4gICAgICB0aGlzLmFjdGl2ZUNvbXBsYWludENhdGVnb3J5ID0gdGhpcy5jb21wbGFpbnRDYXRlZ29yeVJldHJpdmVkTGlzdEVtcHI7XG4gICAgICB0aGlzLnNlbGVjdEJ1dHRvblZhbGlkYXRpb24oKTtcbiAgICB9IGVsc2UgaWYgKGN1cnJlbnRWYWx1ZSA9PT0gJ0NMTVQnKSB7XG4gICAgICB0aGlzLmFjdGl2ZUNvbXBsYWludENhdGVnb3J5ID0gdGhpcy5jb21wbGFpbnRDYXRlZ29yeVJldHJpdmVkTGlzdENsbXQ7XG4gICAgICB0aGlzLnNlbGVjdEJ1dHRvblZhbGlkYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3REZXBhcnRtZW50QmFzZWRPbkNhdGVnb3J5KGV2ZW50KSB7XG4gICAgbGV0IGN1cnJlbnRWYWx1ZSA9IGV2ZW50LnZhbHVlO1xuICAgIGxldCBkZXBJZCA9IGN1cnJlbnRWYWx1ZS5kZXBhcnRtZW50VW5pdElkO1xuICAgIGxldCBzZWFyY2hlZF9kZXAgPSB0aGlzLmFsbERlcGFydG1lbnRzLmZpbHRlcihkZXAgPT4gZGVwLmtleSA9PSBkZXBJZClbMF07XG4gICAgdGhpcy5kaXZpc2lvbi5zZXRWYWx1ZShzZWFyY2hlZF9kZXApO1xuICAgIHRoaXMuc2VsZWN0ZWREZXBUeXBlID0gdGhpcy5kaXZpc2lvbi52YWx1ZS50eXBlO1xuICB9XG5cbiAgZmV0Y2hVbml0c0Jhc2VkT25EZXBUeXBlKGV2ZW50KSB7XG4gICAgbGV0IGRlcHRJZCA9IGV2ZW50LnZhbHVlLmtleTtcbiAgICBpZiAodGhpcy5hbGxVbml0cyAhPSBudWxsKSB7XG4gICAgICB0aGlzLnVuaXRzQmFzZWRPbkRlcHQgPSB0aGlzLmFsbFVuaXRzLmZpbHRlcihzID0+IHMudHlwZSA9PSBkZXB0SWQpO1xuICAgIH1cbiAgfVxuXG4gIGdldFVuaXRzQmFzZWRPbkRlcFNlbGVjdGVkKCkge1xuICAgIGlmICh0aGlzLmFsbFVuaXRzICE9IG51bGwgJiYgdGhpcy5zZWxlY3RlZERlcFR5cGUgIT0gbnVsbCkge1xuICAgICAgdGhpcy51bml0c0Jhc2VkT25EZXB0ID0gdGhpcy5hbGxVbml0cy5maWx0ZXIocyA9PiBzLnR5cGUgPT0gdGhpcy5zZWxlY3RlZERlcFR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIGZldGNoVXNlcnNCYXNlZE9uVW5pdChldmVudCkge1xuICAgIHRoaXMuc2VsZWN0ZWRVbml0ID0gZXZlbnQudmFsdWUua2V5O1xuICAgIGlmICh0aGlzLnNlbGVjdGVkUm9sZSAhPSBudWxsKSB7XG4gICAgICB0aGlzLmdldFVzZXJzQmFzZWRPbkRlcHRBbmRSb2xlKCk7XG4gICAgfVxuICB9XG5cbiAgZmV0Y2hVc2Vyc0Jhc2VkT25Sb2xlcyhldmVudCkge1xuICAgIHRoaXMuc2VsZWN0ZWRSb2xlID0gZXZlbnQudmFsdWUudHlwZTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFVuaXQgIT0gbnVsbCkge1xuICAgICAgdGhpcy5nZXRVc2Vyc0Jhc2VkT25EZXB0QW5kUm9sZSgpO1xuICAgIH1cbiAgfVxuXG4gIGdldFVzZXJzQmFzZWRPbkRlcHRBbmRSb2xlKCkge1xuICAgIHRoaXMudXNlcnNGTG5hbWUgPSBbXTtcbiAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZGVidWcoJ2ZldGNoaW5nIHVzZXJzIGZvciB1bml0IDogJywgdGhpcy5zZWxlY3RlZFVuaXQgLCAnYW5kIHJvbGUgJywgdGhpcy5zZWxlY3RlZFJvbGUpO1xuICAgIGlmKHRoaXMuc2VsZWN0ZWRVbml0ID09IG51bGwgfHwgdGhpcy5zZWxlY3RlZFJvbGUgPT0gbnVsbCl7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2VjdXJpdHlTZXJ2aWNlLmdldFVzZXJVbml0SWRSb2xlSWQodGhpcy5zZWxlY3RlZFVuaXQsIHRoaXMuc2VsZWN0ZWRSb2xlKS5zdWJzY3JpYmUoXG4gICAgICByZXMgPT4ge1xuICAgICAgdGhpcy51c2VycyA9IHJlcztcbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5kZWJ1Zyh0aGlzLnVzZXJzKTtcbiAgICAgIGlmKHRoaXMudXNlcnMpe1xuICAgICAgICB0aGlzLnVzZXJzLmZvckVhY2goKGUpID0+IHtcbiAgICAgICAgICBsZXQgdGVtcDogQ2hvaWNlc01vZGVsICA9IG5ldyBDaG9pY2VzTW9kZWwoKTtcbiAgICAgICAgICB0ZW1wLnRleHQ9KGUuZmlyc3ROYW1lICsgJyAnICsgZS5sYXN0TmFtZSArICcgKCcrIGUudXNlcklkICsnKScpO1xuICAgICAgICAgIC8vdGVtcC50ZXh0PWUuZmlyc3ROYW1lICsgJyAnICsgZS5sYXN0TmFtZTtcbiAgICAgICAgICB0ZW1wLnZhbHVlID0gZS51c2VySWQ7XG4gICAgICAgICAgdGhpcy51c2Vyc0ZMbmFtZS5wdXNoKHRlbXApO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYodGhpcy5zZWxlY3RlZENhc2UuYXNzaWduZWRUb3VzZXIgIT0gbnVsbCl7XG4gICAgICAgICAgdGhpcy5hc3NpZ25DYXNlVG8uc2V0VmFsdWUodGhpcy51c2Vyc0ZMbmFtZS5maWx0ZXIoYyA9PiBjLnZhbHVlID09IHRoaXMuc2VsZWN0ZWRDYXNlLmFzc2lnbmVkVG91c2VyLnZhbHVlKVswXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBlcnIgPT4ge1xuICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmluZm8oXCJObyB1c2VyIGNvbmZpZ3VyZWQgZm9yIHRoaXMgcm9sZVwiKTtcbiAgICB9KTtcbiAgfVxuXG4gIGZldGNoTXN0RGVwYXJ0bWVudHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2FzZVNlcnZpY2UuZmV0Y2hNc3REZXBhcnRtZW50cygpLnN1YnNjcmliZSgocmVzOiBhbnlbXSkgPT4ge1xuICAgICAgdGhpcy5hbGxEZXBhcnRtZW50cyA9IHJlcztcbiAgICB9KTtcbiAgfVxuXG4gIGZldGNoTXN0QWxsVW5pdHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2FzZVNlcnZpY2UuZmV0Y2hNc3RBbGxVbml0cygpLnN1YnNjcmliZSgocmVzOiBhbnlbXSkgPT4ge1xuICAgICAgdGhpcy5hbGxVbml0cyA9IHJlcztcbiAgICB9KTtcbiAgfVxuXG4gIGZldGNoTXN0Q2FzZUNsb3NlUmVhc29ucygpIHtcbiAgICByZXR1cm4gdGhpcy5jYXNlU2VydmljZS5mZXRjaE1zdENhc2VDbG9zZVJlYXNvbnMoKS5zdWJzY3JpYmUoKHJlczogYW55W10pID0+IHtcbiAgICAgIHRoaXMuYWxsQ2xvc2VSZWFzb25zID0gcmVzO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0QWxsUm9sZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2FzZVNlcnZpY2UuZ2V0TXN0T3duZXJHcm91cHMoKS5zdWJzY3JpYmUoKHJlczogYW55W10pID0+IHtcbiAgICAgIHRoaXMuYWxsUm9sZXMgPSByZXM7XG4gICAgfSk7XG4gIH1cblxuICBnZXRNc2dHZW5lcmF0ZWRUaHJvdWdoKCkge1xuICAgIHJldHVybiB0aGlzLmNtcFNlcnZpY2UuZ2V0TXNnR2VuZXJhdGVkVGhyb3VnaCgpLnN1YnNjcmliZSgocmVzOiBhbnlbXSkgPT4ge1xuICAgICAgdGhpcy5tc2dHZW5lcmF0ZWRUaHJvdWdoTGlzdCA9IHJlcztcbiAgICB9KTtcbiAgfVxuXG4gIGdldCB1c2VyVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250YWN0VXNGb3JtLmNvbnRyb2xzWyd1c2VyVHlwZSddO1xuICB9XG5cbiAgZ2V0IGZpcnN0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250YWN0VXNGb3JtLmNvbnRyb2xzWydmaXJzdE5hbWUnXTtcbiAgfVxuXG4gIGdldCBsYXN0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250YWN0VXNGb3JtLmNvbnRyb2xzWydsYXN0TmFtZSddO1xuICB9XG5cbiAgZ2V0IHNzbigpIHtcbiAgICByZXR1cm4gdGhpcy5jb250YWN0VXNGb3JtLmNvbnRyb2xzWydzc24nXTtcbiAgfVxuXG4gIGdldCBjbGFpbWFudElkKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRhY3RVc0Zvcm0uY29udHJvbHNbJ2NsYWltYW50SWQnXTtcbiAgfVxuXG4gIGdldCBlYW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGFjdFVzRm9ybS5jb250cm9sc1snZWFuJ107XG4gIH1cblxuICBnZXQgZmVpbigpIHtcbiAgICByZXR1cm4gdGhpcy5jb250YWN0VXNGb3JtLmNvbnRyb2xzWydmZWluJ107XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRSZWFzb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGFjdFVzRm9ybS5jb250cm9sc1snc2VsZWN0ZWRSZWFzb24nXTtcbiAgfVxuXG4gIGdldCBpc3N1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250YWN0VXNGb3JtLmNvbnRyb2xzWydpc3N1ZSddO1xuICB9XG5cbiAgZ2V0IGVtYWlsKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRhY3RVc0Zvcm0uY29udHJvbHNbJ2VtYWlsJ107XG4gIH1cblxuICBnZXQgcGhvbmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGFjdFVzRm9ybS5jb250cm9sc1sncGhvbmUnXTtcbiAgfVxuXG4gIGdldCBhbHRQaG9uZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250YWN0VXNGb3JtLmNvbnRyb2xzWydhbHRQaG9uZSddO1xuICB9XG5cbiAgZ2V0IGFkZHJlc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGFjdFVzRm9ybS5jb250cm9sc1snYWRkcmVzcyddO1xuICB9XG5cbiAgZ2V0IGNhcHRjaGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGFjdFVzRm9ybS5jb250cm9sc1snY2FwdGNoYSddO1xuICB9XG5cbiAgZ2V0IGRpdmlzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRhY3RVc0Zvcm0uY29udHJvbHNbJ2RpdmlzaW9uJ107XG4gIH1cblxuICBnZXQgdW5pdCgpe1xuICAgIHJldHVybiB0aGlzLmNvbnRhY3RVc0Zvcm0uY29udHJvbHNbJ3VuaXQnXTtcbiAgfVxuXG4gIGdldCBnZW5lcmFsQXNzaWdubWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250YWN0VXNGb3JtLmNvbnRyb2xzWydnZW5lcmFsQXNzaWdubWVudCddO1xuICB9XG5cbiAgZ2V0IGFzc2lnbkNhc2VUbygpIHtcbiAgICByZXR1cm4gdGhpcy5jb250YWN0VXNGb3JtLmNvbnRyb2xzWydhc3NpZ25DYXNlVG8nXTtcbiAgfVxuXG4gIGdldCBjbG9zZUNhc2VSZWFzb24oKXtcbiAgICByZXR1cm4gdGhpcy5jb250YWN0VXNGb3JtLmNvbnRyb2xzWydjbG9zZUNhc2VSZWFzb24nXTtcbiAgfVxuXG4gIGdldCBnZW5lcmF0ZWRUaHJvdWdoKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRhY3RVc0Zvcm0uY29udHJvbHNbJ2dlbmVyYXRlZFRocm91Z2gnXTtcbiAgfVxufVxuXG5cblxuXG5cbiIsIjxoMSBjbGFzcz1cImNvbnRhY3RVc1BhZ2VUaXRsZVwiICBcbipuZ0lmPVwiaXNOZXdDYXNlXCI+e3snY29udGFjdC51cy5wYWdlVGl0bGUnIHwgdHJhbnNsYXRlfX08L2gxPlxuXG48ZGl2ICpuZ0lmPVwiIXNob3dTdWNjZXNzXCI+XG4gIDxzcGFuIHN0eWxlPVwiZm9udC1mYW1pbHk6IHZhcigtLWFwcC1mb250LWxpZ2h0KVwiPlxuICAgIDxwICpuZ0lmPVwiaXNOZXdDYXNlXCIgY2xhc3M9XCJjb250YWN0VXNQYWdlSGVhZGVyXCIgPlxuICAgIHt7J2NvbnRhY3QudXMucGFnZUhlYWRlcicgfCB0cmFuc2xhdGV9fVxuICAgIDwvcD5cbiAgPC9zcGFuPlxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImNvbnRhY3RVc0Zvcm1cIiAjY29udGFjdEZvcm1EaXJlY3RpdmU9XCJuZ0Zvcm1cIiAobmdTdWJtaXQpPVwic3VibWl0Q29udGFjdFVzXCI+XG4gICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgZ3JpZFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMlwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwidHlwZVwiPnt7XCJjb250YWN0LnVzLnVzZXJUeXBlXCJ8IHRyYW5zbGF0ZX19PC9sYWJlbD5cbiAgICAgICAgPHAtc2VsZWN0QnV0dG9uIFtvcHRpb25zXT1cInR5cGVcIiBmb3JtQ29udHJvbE5hbWU9XCJ1c2VyVHlwZVwiIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIlxuICAgICAgICAgIChvbk9wdGlvbkNsaWNrKT1cImFjdGl2ZVVzZXJUeXBlKCRldmVudClcIj5cbiAgICAgICAgPC9wLXNlbGVjdEJ1dHRvbj5cbiAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3VzZXJUeXBlJyBbZm9ybV09XCJjb250YWN0Rm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcbiAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyIG1kOmNvbC02XCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJmaXJzdE5hbWVcIj57e1wiY29udGFjdC51cy5maXJzdG5hbWVcInwgdHJhbnNsYXRlfX08L2xhYmVsPjxiciAvPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IGZvcm1Db250cm9sTmFtZT1cImZpcnN0TmFtZVwiIG1heGxlbmd0aD1cIjMwXCIgLz5cbiAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZpcnN0TmFtZScgW2Zvcm1dPVwiY29udGFjdEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXG4gICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xuICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtNlwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwibGFzdE5hbWVcIj57eydjb250YWN0LnVzLmxhc3ROYW1lJ3wgdHJhbnNsYXRlfX08L2xhYmVsPjxiciAvPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IGZvcm1Db250cm9sTmFtZT1cImxhc3ROYW1lXCIgbWF4bGVuZ3RoPVwiMzBcIiAvPlxuICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nbGFzdE5hbWUnIFtmb3JtXT1cImNvbnRhY3RGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxuICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcbiAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtNlwiICpuZ0lmPVwidXNlclR5cGUudmFsdWU9PSdDTE1UJ1wiPlxuICAgICAgICA8bGFiZWwgZm9yPVwic3NuXCI+e3snY29udGFjdC51cy5zc24nfCB0cmFuc2xhdGV9fTwvbGFiZWw+PGJyIC8+XG4gICAgICAgIDxwLWlucHV0TWFzayBtYXNrPVwiOTk5OVwiIGZvcm1Db250cm9sTmFtZT1cInNzblwiIChvbkZvY3VzKT1cImlucHV0VHlwZT0ndGV4dCdcIiAob25CbHVyKT1cImlucHV0VHlwZT0ncGFzc3dvcmQnXCJcbiAgICAgICAgICBbdHlwZV09XCJpbnB1dFR5cGVcIj48L3AtaW5wdXRNYXNrPlxuICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc3NuJyBbZm9ybV09XCJjb250YWN0Rm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcbiAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTZcIiAqbmdJZj1cInVzZXJUeXBlLnZhbHVlPT0nQ0xNVCdcIj5cbiAgICAgICAgPGxhYmVsIGZvcj1cImNsYWltYW50SWRcIj57eydjb250YWN0LnVzLmNsYWltYW50SUQnfCB0cmFuc2xhdGV9fTwvbGFiZWw+PGJyIC8+XG4gICAgICAgIDxwLWlucHV0TnVtYmVyIGZvcm1Db250cm9sTmFtZT1cImNsYWltYW50SWRcIiBtb2RlPVwiZGVjaW1hbFwiIGlucHV0SWQ9XCJjbGFpbWFudElkXCIgW3VzZUdyb3VwaW5nXT1cImZhbHNlXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIm9wdGlvbmFsXCIgbWF4bGVuZ3RoPVwiOFwiPiA8L3AtaW5wdXROdW1iZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTZcIiAqbmdJZj1cInVzZXJUeXBlLnZhbHVlPT0nRU1QUidcIj5cbiAgICAgICAgPGxhYmVsIGZvcj1cImVhblwiPnt7J2NvbnRhY3QudXMuZWFuJ3wgdHJhbnNsYXRlfX08L2xhYmVsPjxiciAvPlxuICAgICAgICA8cC1pbnB1dE1hc2sgbWFzaz1cIjk5OTk5OTk5OTlcIiBmb3JtQ29udHJvbE5hbWU9XCJlYW5cIiAob25Gb2N1cyk9XCJpbnB1dFR5cGU9J3RleHQnXCJcbiAgICAgICAgICAob25CbHVyKT1cImlucHV0VHlwZT0ncGFzc3dvcmQnXCIgW3R5cGVdPVwiaW5wdXRUeXBlXCI+PC9wLWlucHV0TWFzaz5cbiAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VhbicgW2Zvcm1dPVwiY29udGFjdEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXG4gICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xuICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtNlwiICpuZ0lmPVwidXNlclR5cGUudmFsdWU9PSdFTVBSJ1wiPlxuICAgICAgICA8bGFiZWwgZm9yPVwiZmVpblwiPnt7J2NvbnRhY3QudXMuZmVpbid8IHRyYW5zbGF0ZX19PC9sYWJlbD48YnIgLz5cbiAgICAgICAgPHAtaW5wdXRNYXNrIG1hc2s9XCI5OTk5OTk5OTlcIiBmb3JtQ29udHJvbE5hbWU9XCJmZWluXCIgKG9uRm9jdXMpPVwiaW5wdXRUeXBlPSd0ZXh0J1wiXG4gICAgICAgICAgKG9uQmx1cik9XCJpbnB1dFR5cGU9J3Bhc3N3b3JkJ1wiIFt0eXBlXT1cImlucHV0VHlwZVwiPjwvcC1pbnB1dE1hc2s+XG4gICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdmZWluJyBbZm9ybV09XCJjb250YWN0Rm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcbiAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTJcIiAqbmdJZj1cInVzZXJUeXBlLnZhbHVlPT0nQ0xNVCcgfHwgdXNlclR5cGUudmFsdWU9PSdFTVBSJ1wiPlxuICAgICAgICA8bGFiZWwgZm9yPVwic2VsZWN0ZWRSZWFzb25cIj57eydjb250YWN0LnVzLnNlbGVjdGVkUmVhc29uJ3wgdHJhbnNsYXRlfX08L2xhYmVsPjxiciAvPlxuICAgICAgICA8cC1kcm9wZG93biBbb3B0aW9uc109XCJhY3RpdmVDb21wbGFpbnRDYXRlZ29yeVwiIGZvcm1Db250cm9sTmFtZT1cInNlbGVjdGVkUmVhc29uXCIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgY2F0ZWdvcnlcIlxuICAgICAgICAgIG9wdGlvbkxhYmVsPVwiZGVzY3JpcHRpb25cIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGNsYXNzPVwicXVlcnlDYXRlZ29yeVwiIGFwcGVuZFRvPVwiYm9keVwiPlxuICAgICAgICA8L3AtZHJvcGRvd24+XG4gICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZWxlY3RlZFJlYXNvbicgW2Zvcm1dPVwiY29udGFjdEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXG4gICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xuICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMlwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwiaXNzdWVcIj57eydjb250YWN0LnVzLmlzc3VlJ3wgdHJhbnNsYXRlfX08L2xhYmVsPjxiciAvPlxuICAgICAgICA8dGV4dGFyZWEgcElucHV0VGV4dGFyZWEgZm9ybUNvbnRyb2xOYW1lPVwiaXNzdWVcIiBtYXhsZW5ndGg9XCI1MDBcIj48L3RleHRhcmVhPjxiciAvPlxuICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0naXNzdWUnIFtmb3JtXT1cImNvbnRhY3RGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxuICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcbiAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XG4gICAgICAgICAgPHNtYWxsPnt7J2NvbnRhY3QudXMuaXNzdWVOb3Rlcyd8IHRyYW5zbGF0ZX19PC9zbWFsbD5cbiAgICAgICAgXG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMlwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwiZW1haWxcIj57eydjb250YWN0LnVzLmVtYWlsJ3wgdHJhbnNsYXRlfX08L2xhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCIgbWF4bGVuZ3RoPVwiMTAwXCIgLz5cbiAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VtYWlsJyBbZm9ybV09XCJjb250YWN0Rm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcbiAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnLCBlbWFpbDogJ0VudGVyIGEgdmFsaWQgZW1haWwnXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyIG1kOmNvbC02XCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJwaG9uZVwiPnt7J2NvbnRhY3QudXMucGhvbmUnfCB0cmFuc2xhdGV9fTwvbGFiZWw+XG4gICAgICAgIDxwLWlucHV0TWFzayBtYXNrPVwiKDk5OSkgOTk5LTk5OTlcIiBmb3JtQ29udHJvbE5hbWU9XCJwaG9uZVwiIHBsYWNlaG9sZGVyPVwiKDk5OSkgOTk5LTk5OTlcIiB1bm1hc2s9XCJ0cnVlXCI+XG4gICAgICAgIDwvcC1pbnB1dE1hc2s+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTZcIj5cbiAgICAgICAgPGxhYmVsIGZvcj1cImFsdFBob25lXCI+e3snY29udGFjdC51cy5hbHRQaG9uZSd8IHRyYW5zbGF0ZX19PC9sYWJlbD5cbiAgICAgICAgPHAtaW5wdXRNYXNrIG1hc2s9XCIoOTk5KSA5OTktOTk5OVwiIGZvcm1Db250cm9sTmFtZT1cImFsdFBob25lXCIgcGxhY2Vob2xkZXI9XCIoOTk5KSA5OTktOTk5OVwiIHVubWFzaz1cInRydWVcIj5cbiAgICAgICAgPC9wLWlucHV0TWFzaz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMlwiPlxuICAgICAgICA8YXBwLWFkZHJlc3MgW2Zyb21Qb3B1cF09XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwiYWRkcmVzc1wiPjwvYXBwLWFkZHJlc3M+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTJcIiAqbmdJZj1cIiFpc0NzclwiPlxuICAgICAgICA8YXBwLWNhcHRjaGEgZm9ybUNvbnRyb2xOYW1lPVwiY2FwdGNoYVwiPjwvYXBwLWNhcHRjaGE+XG4gICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdjYXB0Y2hhJyBbZm9ybV09XCJjb250YWN0Rm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcbiAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtNlwiICpuZ0lmPVwiaXNDc3JcIj5cbiAgICAgICAgPGxhYmVsIGZvcj1cImRpdmlzaW9uXCI+e3snY29udGFjdC51cy5kaXZpc2lvbid8IHRyYW5zbGF0ZX19PC9sYWJlbD5cbiAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwiYWxsRGVwYXJ0bWVudHNcIiBmb3JtQ29udHJvbE5hbWU9XCJkaXZpc2lvblwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IERlcGFydG1lbnRcIlxuICAgICAgICAgIG9wdGlvbkxhYmVsPVwidmFsdWVcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGNsYXNzPVwicm9sZU5hbWVcIiBhcHBlbmRUbz1cImJvZHlcIiAob25DaGFuZ2UpPVwiZmV0Y2hVbml0c0Jhc2VkT25EZXBUeXBlKCRldmVudClcIj5cbiAgICAgICAgPC9wLWRyb3Bkb3duPlxuICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZGl2aXNpb24nIFtmb3JtXT1cImNvbnRhY3RGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxuICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcbiAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtNlwiICpuZ0lmPVwiaXNDc3JcIj5cbiAgICAgICAgPGxhYmVsIGZvcj1cInVuaXRcIj57eydjb250YWN0LnVzLnVuaXQnfCB0cmFuc2xhdGV9fTwvbGFiZWw+XG4gICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cInVuaXRzQmFzZWRPbkRlcHRcIiBmb3JtQ29udHJvbE5hbWU9XCJ1bml0XCIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgVW5pdFwiXG4gICAgICAgICAgb3B0aW9uTGFiZWw9XCJ2YWx1ZVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgY2xhc3M9XCJyb2xlTmFtZVwiIGFwcGVuZFRvPVwiYm9keVwiIChvbkNoYW5nZSk9XCJmZXRjaFVzZXJzQmFzZWRPblVuaXQoJGV2ZW50KVwiPlxuICAgICAgICA8L3AtZHJvcGRvd24+XG4gICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd1bml0JyBbZm9ybV09XCJjb250YWN0Rm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcbiAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTZcIiAqbmdJZj1cImlzQ3NyXCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJnZW5lcmFsQXNzaWdubWVudFwiPnt7J2NvbnRhY3QudXMuZ2VuZXJhbEFzc2lnbm1lbnQnfCB0cmFuc2xhdGV9fTwvbGFiZWw+PGJyIC8+XG4gICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cImFsbFJvbGVzXCIgZm9ybUNvbnRyb2xOYW1lPVwiZ2VuZXJhbEFzc2lnbm1lbnRcIiAob25DaGFuZ2UpPVwiZmV0Y2hVc2Vyc0Jhc2VkT25Sb2xlcygkZXZlbnQpXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBBc3NpZ25tZW50XCIgb3B0aW9uTGFiZWw9XCJ2YWx1ZVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgXG4gICAgICAgICAgYXBwZW5kVG89XCJib2R5XCI+PC9wLWRyb3Bkb3duPlxuICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZ2VuZXJhbEFzc2lnbm1lbnQnIFtmb3JtXT1cImNvbnRhY3RGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxuICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcbiAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtNlwiICpuZ0lmPVwiaXNDc3JcIj5cbiAgICAgICAgPGxhYmVsIGZvcj1cImFzc2lnbkNhc2VUb1wiPnt7XCJjb250YWN0LnVzLmFzc2lnbkNhc2VUb1wifCB0cmFuc2xhdGV9fTwvbGFiZWw+PGJyIC8+XG4gICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cInVzZXJzRkxuYW1lXCIgZm9ybUNvbnRyb2xOYW1lPVwiYXNzaWduQ2FzZVRvXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIkFzc2lnbiBDYXNlIFRvXCIgIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgXG4gICAgICAgICAgYXBwZW5kVG89XCJib2R5XCI+PC9wLWRyb3Bkb3duPlxuICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nYXNzaWduQ2FzZVRvJyBbZm9ybV09XCJjb250YWN0Rm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcbiAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxuICAgICAgPC9kaXY+ICAgIFxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtNlwiICpuZ0lmPVwiaXNDc3JcIj5cbiAgICAgICAgPGxhYmVsIGZvcj1cImdlbmVyYXRlZFRocm91Z2hcIj57e1wiY29udGFjdC51cy5tc2dHZW5lcmF0ZWRUaHJvdWdoXCJ8IHRyYW5zbGF0ZX19PC9sYWJlbD48YnIgLz5cbiAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwibXNnR2VuZXJhdGVkVGhyb3VnaExpc3RcIiBmb3JtQ29udHJvbE5hbWU9XCJnZW5lcmF0ZWRUaHJvdWdoXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIk1lc3NhZ2UgZ2VuZXJhdGVkIHRocm91Z2hcIiAgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBvcHRpb25MYWJlbD1cImRlc2NyaXB0aW9uXCIgXG4gICAgICAgICAgYXBwZW5kVG89XCJib2R5XCI+PC9wLWRyb3Bkb3duPlxuICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZ2VuZXJhdGVkVGhyb3VnaCcgW2Zvcm1dPVwiY29udGFjdEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXG4gICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xuICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cbiAgICAgIDwvZGl2PiBcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTJcIiAqbmdJZj1cImlzQ3NyICYmIHNlbGVjdGVkQ2FzZVwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJjbG9zZUNhc2VSZWFzb25cIj57e1wiY29udGFjdC51cy5jbG9zZVwifCB0cmFuc2xhdGV9fTwvbGFiZWw+PGJyIC8+XG4gICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwiYWxsQ2xvc2VSZWFzb25zXCIgZm9ybUNvbnRyb2xOYW1lPVwiY2xvc2VDYXNlUmVhc29uXCIgY2xhc3M9XCJxdWVyeUNhdGVnb3J5XCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IFJlYXNvblwiICBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIG9wdGlvbkxhYmVsPVwiZGVzY3JpcHRpb25cIiBcbiAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIHNob3dDbGVhcj1cInRydWVcIj48L3AtZHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICAgICBcbiAgICA8L2Rpdj5cbiAgPC9mb3JtPlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwic2hvd1N1Y2Nlc3NcIj5cbiAgPGRpdiAqbmdJZj1cInN1Ym1pdFN1Y2Nlc3NcIj5cbiAgICA8aW9uLXJvdz5cbiAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtbGVmdCB0ZXh0LWxnXCIgc3R5bGU9XCJmb250LWZhbWlseTogdmFyKC0tYXBwLWZvbnQtbGlnaHQpXCI+XG4gICAgICB7eydjb250YWN0LnVzLnN1Y2Nlc3NNc2cnfCB0cmFuc2xhdGV9fTxzcGFuXG4gICAgICAgICAgc3R5bGU9XCJmb250LXdlaWdodDogYm9sZDsgY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcIj57e2Nhc2VOb319PC9zcGFuPlxuICAgICAgPC9pb24tY29sPlxuICAgIDwvaW9uLXJvdz5cbiAgICA8aW9uLXJvdz5cbiAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtY2VudGVyXCI+XG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hlY2ttYXJrLWNpcmNsZVwiIHN0eWxlPVwiZm9udC1zaXplOiA4MHB4OyBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWdyZWVuKTtcIlxuICAgICAgICAgIGNsYXNzPVwiem9vbWluIGFuaW1hdGlvbi1kdXJhdGlvbi0xMDAwXCI+PC9pb24taWNvbj5cbiAgICAgIDwvaW9uLWNvbD5cbiAgICA8L2lvbi1yb3c+XG4gICAgPGlvbi1yb3c+XG4gICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LWxlZnQgdGV4dC1sZyBjb250YWN0VXNQYWdlSGVhZGVyXCI+XG4gICAgICAgIHt7J2NvbnRhY3QudXMuY29udGFjdEFnYWluJ3wgdHJhbnNsYXRlfX1cbiAgICAgIDwvaW9uLWNvbD5cbiAgICA8L2lvbi1yb3c+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiIXN1Ym1pdFN1Y2Nlc3NcIj5cbiAgICA8aW9uLXJvdz5cbiAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtbGVmdCB0ZXh0LWxnXCIgc3R5bGU9XCJmb250LWZhbWlseTogdmFyKC0tYXBwLWZvbnQtbGlnaHQpXCI+XG4gICAgICAgIHt7J2NvbnRhY3QudXMuZmFpbGVkTXNnJ3wgdHJhbnNsYXRlfX1cbiAgICAgIDwvaW9uLWNvbD5cbiAgICA8L2lvbi1yb3c+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgaW9uLXRleHQtcmlnaHRcIj5cbiAgPGlvbi1idXR0b24gKm5nSWY9XCIhc2hvd1N1Y2Nlc3MgJiYgIWlzQ3NyXCIgc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiBjb2xvcj1cInByaW1hcnlcIiBcbiAgKGNsaWNrKT1cInN1Ym1pdENvbnRhY3RVcyhjb250YWN0VXNGb3JtKVwiPlN1Ym1pdFxuICA8L2lvbi1idXR0b24+XG4gIDxpb24tYnV0dG9uICpuZ0lmPVwiIWlzQ3NyXCIgc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiZW1pdEhpZGUoJGV2ZW50KVwiPlxuICAgIENsb3NlXG4gIDwvaW9uLWJ1dHRvbj5cbjwvZGl2PiJdfQ==