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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (545) hide show
  1. package/esm2022/lib/components/add-employer/add-employer.component.mjs +1324 -2394
  2. package/esm2022/lib/components/add-participant/add-participant.component.mjs +105 -159
  3. package/esm2022/lib/components/add-payment/add-payment.component.mjs +53 -59
  4. package/esm2022/lib/components/address/address.component.mjs +152 -287
  5. package/esm2022/lib/components/bank-details/bank-details.component.mjs +219 -79
  6. package/esm2022/lib/components/contact-us/contact-us.component.mjs +43 -17
  7. package/esm2022/lib/components/correspondence-download/correspondence-download.component.mjs +9 -3
  8. package/esm2022/lib/components/dashboard-card/dashboard-card.component.mjs +4 -32
  9. package/esm2022/lib/components/dependent-grid/dependent-grid.component.mjs +15 -30
  10. package/esm2022/lib/components/disclosure/disclosure.component.mjs +1 -1
  11. package/esm2022/lib/components/dropdown/dropdown.component.mjs +4 -4
  12. package/esm2022/lib/components/dropdown/dropdown.interface.mjs +1 -1
  13. package/esm2022/lib/components/email-update/email-update.component.mjs +140 -63
  14. package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +574 -422
  15. package/esm2022/lib/components/error/error.component.mjs +5 -22
  16. package/esm2022/lib/components/fav-menu/fav-menu.component.mjs +1 -1
  17. package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +49 -178
  18. package/esm2022/lib/components/footer/footer.component.mjs +101 -112
  19. package/esm2022/lib/components/header/header.component.mjs +174 -440
  20. package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +36 -25
  21. package/esm2022/lib/components/info/info.component.mjs +12 -4
  22. package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +22 -16
  23. package/esm2022/lib/components/job-title/job-title.component.mjs +97 -92
  24. package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +513 -143
  25. package/esm2022/lib/components/lexis-nexis/lexis-nexis.component.mjs +402 -0
  26. package/esm2022/lib/components/link/link.component.mjs +1 -1
  27. package/esm2022/lib/components/menu/menu.component.mjs +100 -68
  28. package/esm2022/lib/components/mfa/mfa.component.mjs +288 -158
  29. package/esm2022/lib/components/mfa-popup/mfa-popup.component.mjs +18 -11
  30. package/esm2022/lib/components/mfa2/mfa2.component.mjs +285 -0
  31. package/esm2022/lib/components/money-expect/money-expect.component.mjs +54 -158
  32. package/esm2022/lib/components/profile/profile.component.mjs +353 -749
  33. package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +38 -108
  34. package/esm2022/lib/components/questionnaire/AppValidators.mjs +47 -296
  35. package/esm2022/lib/components/questionnaire/account-success/account-success.page.mjs +65 -110
  36. package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +173 -377
  37. package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +95 -76
  38. package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +1153 -877
  39. package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +699 -208
  40. package/esm2022/lib/components/questionnaire/form-builder/form-builder.page.mjs +22 -28
  41. package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +41 -128
  42. package/esm2022/lib/components/questionnaire/question-control.service.mjs +1 -2
  43. package/esm2022/lib/components/questionnaire/question.service.mjs +7 -5
  44. package/esm2022/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +29 -15
  45. package/esm2022/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +237 -497
  46. package/esm2022/lib/components/search-employer/search-employer.component.mjs +30 -155
  47. package/esm2022/lib/components/security-question/security-question.component.mjs +199 -0
  48. package/esm2022/lib/components/select/select.component.mjs +10 -5
  49. package/esm2022/lib/components/sign-ssn/sign-ssn.component.mjs +3 -3
  50. package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +72 -52
  51. package/esm2022/lib/components/user-login/user-login.component.mjs +360 -139
  52. package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +387 -655
  53. package/esm2022/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +61 -125
  54. package/esm2022/lib/guards/auth.guard.mjs +2 -50
  55. package/esm2022/lib/guards/no-login/no-login.guard.mjs +1 -1
  56. package/esm2022/lib/interceptors/error-interceptor/http-error-interceptor.mjs +3 -51
  57. package/esm2022/lib/interceptors/header-interceptor/http-header.interceptor.mjs +1 -1
  58. package/esm2022/lib/models/EmployerDetailSearchResult.mjs +1 -1
  59. package/esm2022/lib/models/LexisNexisAccountCreationModel.mjs +2 -0
  60. package/esm2022/lib/models/LexisNexisAuthSelectionRequestModel.mjs +2 -0
  61. package/esm2022/lib/models/LexisNexisAuthSelectionResponseModel.mjs +2 -0
  62. package/esm2022/lib/models/LexisNexisEnabledResponseModel.mjs +2 -0
  63. package/esm2022/lib/models/LexisNexisResponseModel.mjs +3 -0
  64. package/esm2022/lib/models/LibConstants.mjs +6 -45
  65. package/esm2022/lib/models/OtpAuthModel.mjs +1 -1
  66. package/esm2022/lib/models/PartialEmploymentModel.mjs +3 -0
  67. package/esm2022/lib/models/PaymentComponentModel.mjs +1 -1
  68. package/esm2022/lib/models/SecurityQuestionModel.mjs +3 -0
  69. package/esm2022/lib/models/UserModel.mjs +1 -1
  70. package/esm2022/lib/models/dashboard-model.mjs +1 -1
  71. package/esm2022/lib/models/dependent.model.mjs +1 -1
  72. package/esm2022/lib/models/questionnaire/ClaimAppEmpResponseModel.mjs +1 -1
  73. package/esm2022/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +1 -2
  74. package/esm2022/lib/models/questionnaire/ClaimOnlyEmployerDataModel.mjs +1 -1
  75. package/esm2022/lib/models/questionnaire/ComboModel.mjs +653 -96
  76. package/esm2022/lib/models/questionnaire/ElementsModel.mjs +1 -1
  77. package/esm2022/lib/models/questionnaire/LegalDiscaimarModel.mjs +1 -1
  78. package/esm2022/lib/models/questionnaire/QuestionnaireSaveModel.mjs +1 -1
  79. package/esm2022/lib/models/questionnaire/StatusModel.mjs +1 -1
  80. package/esm2022/lib/ngx-reusa-app-lib.module.mjs +23 -135
  81. package/esm2022/lib/pages/BasePage.mjs +23 -4
  82. package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +18 -22
  83. package/esm2022/lib/pages/common/change-password/change-password.page.mjs +124 -142
  84. package/esm2022/lib/pages/common/landing/landing.component.mjs +8 -7
  85. package/esm2022/lib/pages/common/landing2/landing2.component.mjs +4 -4
  86. package/esm2022/lib/pages/common/login/login.component.mjs +13 -7
  87. package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +14 -14
  88. package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +5 -5
  89. package/esm2022/lib/pages/popovers/language/language.page.mjs +2 -1
  90. package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +4 -4
  91. package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +2 -7
  92. package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +2 -2
  93. package/esm2022/lib/services/base-service.mjs +1 -4
  94. package/esm2022/lib/services/chatbot/chatbot.service.mjs +2 -1
  95. package/esm2022/lib/services/claimant-service/claimant-usps-redirect.service.mjs +36 -0
  96. package/esm2022/lib/services/claimant-service/claimant.service.mjs +13 -7
  97. package/esm2022/lib/services/claims/claims.service.mjs +14 -105
  98. package/esm2022/lib/services/help/help.service.mjs +1 -1
  99. package/esm2022/lib/services/lexis-nexis/lexis.nexis.service.mjs +60 -0
  100. package/esm2022/lib/services/logger/logger.service.mjs +1 -1
  101. package/esm2022/lib/services/login/login.service.mjs +14 -29
  102. package/esm2022/lib/services/ovp/ovp.service.mjs +43 -0
  103. package/esm2022/lib/services/questionnaire/questionnaire.service.mjs +1 -4
  104. package/esm2022/lib/services/questionnaire/validation.service.mjs +1 -4
  105. package/esm2022/lib/services/security-service/security.service.mjs +6 -23
  106. package/esm2022/lib/services/util/util.service.mjs +5 -61
  107. package/esm2022/lib/services/weekly-cert/weekly-cert-v2.service.mjs +14 -186
  108. package/esm2022/lib/validations/AppRegex.mjs +3 -1
  109. package/esm2022/lib/validations/AppValidators.mjs +62 -78
  110. package/esm2022/public-api.mjs +5 -47
  111. package/fesm2022/reusa-ngx-reusa-app-lib.mjs +26939 -44815
  112. package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
  113. package/lib/components/add-employer/add-employer.component.d.ts +53 -137
  114. package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
  115. package/lib/components/add-participant/add-participant.component.d.ts +5 -11
  116. package/lib/components/add-participant/add-participant.component.d.ts.map +1 -1
  117. package/lib/components/add-payment/add-payment.component.d.ts +3 -9
  118. package/lib/components/add-payment/add-payment.component.d.ts.map +1 -1
  119. package/lib/components/address/address.component.d.ts +15 -42
  120. package/lib/components/address/address.component.d.ts.map +1 -1
  121. package/lib/components/bank-details/bank-details.component.d.ts +23 -1
  122. package/lib/components/bank-details/bank-details.component.d.ts.map +1 -1
  123. package/lib/components/contact-us/contact-us.component.d.ts +4 -1
  124. package/lib/components/contact-us/contact-us.component.d.ts.map +1 -1
  125. package/lib/components/correspondence-download/correspondence-download.component.d.ts.map +1 -1
  126. package/lib/components/dashboard-card/dashboard-card.component.d.ts.map +1 -1
  127. package/lib/components/email-update/email-update.component.d.ts +12 -1
  128. package/lib/components/email-update/email-update.component.d.ts.map +1 -1
  129. package/lib/components/employer-grid/employer-grid.component.d.ts +15 -25
  130. package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
  131. package/lib/components/error/error.component.d.ts +2 -3
  132. package/lib/components/error/error.component.d.ts.map +1 -1
  133. package/lib/components/file-uploader/file-uploader.component.d.ts +1 -5
  134. package/lib/components/file-uploader/file-uploader.component.d.ts.map +1 -1
  135. package/lib/components/footer/footer.component.d.ts.map +1 -1
  136. package/lib/components/header/header.component.d.ts +5 -17
  137. package/lib/components/header/header.component.d.ts.map +1 -1
  138. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +3 -1
  139. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts.map +1 -1
  140. package/lib/components/job-title/job-title.component.d.ts +23 -22
  141. package/lib/components/job-title/job-title.component.d.ts.map +1 -1
  142. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +6 -5
  143. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -1
  144. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts +59 -0
  145. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +1 -0
  146. package/lib/components/menu/menu.component.d.ts +12 -3
  147. package/lib/components/menu/menu.component.d.ts.map +1 -1
  148. package/lib/components/mfa/mfa.component.d.ts +19 -7
  149. package/lib/components/mfa/mfa.component.d.ts.map +1 -1
  150. package/lib/components/mfa-popup/mfa-popup.component.d.ts +8 -6
  151. package/lib/components/mfa-popup/mfa-popup.component.d.ts.map +1 -1
  152. package/lib/components/mfa2/mfa2.component.d.ts +48 -0
  153. package/lib/components/mfa2/mfa2.component.d.ts.map +1 -0
  154. package/lib/components/money-expect/money-expect.component.d.ts +4 -15
  155. package/lib/components/money-expect/money-expect.component.d.ts.map +1 -1
  156. package/lib/components/profile/profile.component.d.ts +49 -82
  157. package/lib/components/profile/profile.component.d.ts.map +1 -1
  158. package/lib/components/profile-redirect/profile-redirect.component.d.ts +2 -9
  159. package/lib/components/profile-redirect/profile-redirect.component.d.ts.map +1 -1
  160. package/lib/components/questionnaire/AppValidators.d.ts +0 -1
  161. package/lib/components/questionnaire/AppValidators.d.ts.map +1 -1
  162. package/lib/components/questionnaire/account-success/account-success.page.d.ts +10 -13
  163. package/lib/components/questionnaire/account-success/account-success.page.d.ts.map +1 -1
  164. package/lib/components/questionnaire/common-success/common-success.page.d.ts +1 -7
  165. package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
  166. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts +1 -3
  167. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts.map +1 -1
  168. package/lib/components/questionnaire/dynamic-form-question.component.d.ts +35 -33
  169. package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
  170. package/lib/components/questionnaire/dynamic-form.component.d.ts +34 -10
  171. package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
  172. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts +7 -0
  173. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts.map +1 -1
  174. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts +1 -7
  175. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts.map +1 -1
  176. package/lib/components/questionnaire/question-control.service.d.ts.map +1 -1
  177. package/lib/components/questionnaire/question.service.d.ts +1 -0
  178. package/lib/components/questionnaire/question.service.d.ts.map +1 -1
  179. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts +7 -1
  180. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts.map +1 -1
  181. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts +3 -11
  182. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts.map +1 -1
  183. package/lib/components/search-employer/search-employer.component.d.ts +4 -5
  184. package/lib/components/search-employer/search-employer.component.d.ts.map +1 -1
  185. package/lib/components/security-question/security-question.component.d.ts +37 -0
  186. package/lib/components/security-question/security-question.component.d.ts.map +1 -0
  187. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +5 -1
  188. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts.map +1 -1
  189. package/lib/components/user-login/user-login.component.d.ts +38 -5
  190. package/lib/components/user-login/user-login.component.d.ts.map +1 -1
  191. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +10 -27
  192. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -1
  193. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts +3 -9
  194. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts.map +1 -1
  195. package/lib/guards/auth.guard.d.ts.map +1 -1
  196. package/lib/interceptors/error-interceptor/http-error-interceptor.d.ts.map +1 -1
  197. package/lib/models/EmployerDetailSearchResult.d.ts +1 -4
  198. package/lib/models/EmployerDetailSearchResult.d.ts.map +1 -1
  199. package/lib/models/LexisNexisAccountCreationModel.d.ts +15 -0
  200. package/lib/models/LexisNexisAccountCreationModel.d.ts.map +1 -0
  201. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts +16 -0
  202. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts.map +1 -0
  203. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts +39 -0
  204. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts.map +1 -0
  205. package/lib/models/LexisNexisEnabledResponseModel.d.ts +5 -0
  206. package/lib/models/LexisNexisEnabledResponseModel.d.ts.map +1 -0
  207. package/lib/models/LexisNexisResponseModel.d.ts +7 -0
  208. package/lib/models/LexisNexisResponseModel.d.ts.map +1 -0
  209. package/lib/models/LibConstants.d.ts +1 -40
  210. package/lib/models/LibConstants.d.ts.map +1 -1
  211. package/lib/models/OtpAuthModel.d.ts +1 -0
  212. package/lib/models/OtpAuthModel.d.ts.map +1 -1
  213. package/lib/models/PartialEmploymentModel.d.ts +6 -0
  214. package/lib/models/PartialEmploymentModel.d.ts.map +1 -0
  215. package/lib/models/PaymentComponentModel.d.ts +1 -1
  216. package/lib/models/PaymentComponentModel.d.ts.map +1 -1
  217. package/lib/models/SecurityQuestionModel.d.ts +7 -0
  218. package/lib/models/SecurityQuestionModel.d.ts.map +1 -0
  219. package/lib/models/UserModel.d.ts +1 -0
  220. package/lib/models/UserModel.d.ts.map +1 -1
  221. package/lib/models/dashboard-model.d.ts +0 -22
  222. package/lib/models/dashboard-model.d.ts.map +1 -1
  223. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts +0 -3
  224. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts.map +1 -1
  225. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +4 -15
  226. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts.map +1 -1
  227. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts +1 -4
  228. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts.map +1 -1
  229. package/lib/models/questionnaire/ComboModel.d.ts +82 -14
  230. package/lib/models/questionnaire/ComboModel.d.ts.map +1 -1
  231. package/lib/models/questionnaire/ElementsModel.d.ts +1 -0
  232. package/lib/models/questionnaire/ElementsModel.d.ts.map +1 -1
  233. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts +0 -2
  234. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts.map +1 -1
  235. package/lib/models/questionnaire/QuestionnaireSaveModel.d.ts +1 -0
  236. package/lib/models/questionnaire/QuestionnaireSaveModel.d.ts.map +1 -1
  237. package/lib/models/questionnaire/StatusModel.d.ts +0 -1
  238. package/lib/models/questionnaire/StatusModel.d.ts.map +1 -1
  239. package/lib/ngx-reusa-app-lib.module.d.ts +86 -124
  240. package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -1
  241. package/lib/pages/BasePage.d.ts +6 -3
  242. package/lib/pages/BasePage.d.ts.map +1 -1
  243. package/lib/pages/common/change-password/change-password.page.d.ts +0 -3
  244. package/lib/pages/common/change-password/change-password.page.d.ts.map +1 -1
  245. package/lib/pages/common/login/login.component.d.ts.map +1 -1
  246. package/lib/pages/popovers/language/language.page.d.ts.map +1 -1
  247. package/lib/pages/popovers/my-profile/my-profile.page.d.ts.map +1 -1
  248. package/lib/services/base-service.d.ts +0 -12
  249. package/lib/services/base-service.d.ts.map +1 -1
  250. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts +16 -0
  251. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts.map +1 -0
  252. package/lib/services/claimant-service/claimant.service.d.ts +6 -5
  253. package/lib/services/claimant-service/claimant.service.d.ts.map +1 -1
  254. package/lib/services/claims/claims.service.d.ts +5 -39
  255. package/lib/services/claims/claims.service.d.ts.map +1 -1
  256. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts +26 -0
  257. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts.map +1 -0
  258. package/lib/services/login/login.service.d.ts +3 -5
  259. package/lib/services/login/login.service.d.ts.map +1 -1
  260. package/lib/services/ovp/ovp.service.d.ts +17 -0
  261. package/lib/services/ovp/ovp.service.d.ts.map +1 -0
  262. package/lib/services/questionnaire/questionnaire.service.d.ts +0 -1
  263. package/lib/services/questionnaire/questionnaire.service.d.ts.map +1 -1
  264. package/lib/services/questionnaire/validation.service.d.ts +0 -3
  265. package/lib/services/questionnaire/validation.service.d.ts.map +1 -1
  266. package/lib/services/security-service/security.service.d.ts +4 -12
  267. package/lib/services/security-service/security.service.d.ts.map +1 -1
  268. package/lib/services/util/util.service.d.ts +0 -6
  269. package/lib/services/util/util.service.d.ts.map +1 -1
  270. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts +5 -47
  271. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts.map +1 -1
  272. package/lib/validations/AppRegex.d.ts +2 -0
  273. package/lib/validations/AppRegex.d.ts.map +1 -1
  274. package/lib/validations/AppValidators.d.ts +24 -20
  275. package/lib/validations/AppValidators.d.ts.map +1 -1
  276. package/package.json +2 -2
  277. package/public-api.d.ts +4 -46
  278. package/public-api.d.ts.map +1 -1
  279. package/esm2022/lib/components/add-wage/add-wage.component.mjs +0 -161
  280. package/esm2022/lib/components/address-popup/address-popup.component.mjs +0 -97
  281. package/esm2022/lib/components/address-suggestion/address-suggestion.component.mjs +0 -289
  282. package/esm2022/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.mjs +0 -245
  283. package/esm2022/lib/components/associate-ssn/associate-ssn.component.mjs +0 -203
  284. package/esm2022/lib/components/claim-info/claim-info.component.mjs +0 -408
  285. package/esm2022/lib/components/dua-request-page/dua-request-page.component.mjs +0 -596
  286. package/esm2022/lib/components/dua-request-popup/dua-request-popup.component.mjs +0 -356
  287. package/esm2022/lib/components/employer-info/employer-info.component.mjs +0 -319
  288. package/esm2022/lib/components/employer-pay/employer-pay.component.mjs +0 -238
  289. package/esm2022/lib/components/employer-pay-grid/employer-pay-grid.component.mjs +0 -302
  290. package/esm2022/lib/components/farm-usage/farm-usage.component.mjs +0 -172
  291. package/esm2022/lib/components/gross-earnings/gross-earnings.component.mjs +0 -201
  292. package/esm2022/lib/components/history-page/history-page.component.mjs +0 -571
  293. package/esm2022/lib/components/idme/idme.component.mjs +0 -84
  294. package/esm2022/lib/components/offline-add-employer/offline-add-employer.component.mjs +0 -3661
  295. package/esm2022/lib/components/offline-bank-details/offline-bank-details.component.mjs +0 -258
  296. package/esm2022/lib/components/offline-employer-grid/offline-employer-grid.component.mjs +0 -853
  297. package/esm2022/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.mjs +0 -251
  298. package/esm2022/lib/components/proof-of-anything/proof-of-anything.component.mjs +0 -261
  299. package/esm2022/lib/components/proof-of-document-upload/proof-of-document-upload.component.mjs +0 -560
  300. package/esm2022/lib/components/scrollable-text/scrollable-text.component.mjs +0 -25
  301. package/esm2022/lib/components/sms/sms.component.mjs +0 -336
  302. package/esm2022/lib/components/wage-calculator/wage-calculator.component.mjs +0 -527
  303. package/esm2022/lib/components/wage-grid/wage-grid.component.mjs +0 -274
  304. package/esm2022/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.mjs +0 -147
  305. package/esm2022/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.mjs +0 -167
  306. package/esm2022/lib/components/weekly-certification/weekly-certification.component.mjs +0 -828
  307. package/esm2022/lib/components/weekly-confirmation/confirmation.component.mjs +0 -129
  308. package/esm2022/lib/components/weekly-interim-confirmation/interim-confirmation.component.mjs +0 -136
  309. package/esm2022/lib/components/weekly-summary-v2/summary.component-v2.mjs +0 -72
  310. package/esm2022/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.mjs +0 -50
  311. package/esm2022/lib/components/weekly-work-search-counter/work-search-counter.component.mjs +0 -92
  312. package/esm2022/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.mjs +0 -1190
  313. package/esm2022/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.mjs +0 -690
  314. package/esm2022/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.mjs +0 -524
  315. package/esm2022/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.mjs +0 -394
  316. package/esm2022/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.mjs +0 -640
  317. package/esm2022/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.mjs +0 -33
  318. package/esm2022/lib/enums/AddressValidationResponseEnum.mjs +0 -9
  319. package/esm2022/lib/enums/AddressValidationSourceFunctionEnum.mjs +0 -5
  320. package/esm2022/lib/models/ActiveClaimModel.mjs +0 -3
  321. package/esm2022/lib/models/CountyModel.mjs +0 -3
  322. package/esm2022/lib/models/DuaAppDataModel.mjs +0 -3
  323. package/esm2022/lib/models/DuaRequestModel.mjs +0 -3
  324. package/esm2022/lib/models/DuaRetroWeeksComponentModel.mjs +0 -6
  325. package/esm2022/lib/models/EmployerInfoComponentModel.mjs +0 -4
  326. package/esm2022/lib/models/EmployerPayInfoModel.mjs +0 -6
  327. package/esm2022/lib/models/FarmUsageComponentModel.mjs +0 -2
  328. package/esm2022/lib/models/GrossEarningsModel.mjs +0 -3
  329. package/esm2022/lib/models/HelpConstants.mjs +0 -5
  330. package/esm2022/lib/models/LexisNexisOtpDetailsResponseModel.mjs +0 -3
  331. package/esm2022/lib/models/ReasonSeparationRequestModel.mjs +0 -3
  332. package/esm2022/lib/models/RetroWeeksModel.mjs +0 -3
  333. package/esm2022/lib/models/SecurityQuestionAnswerModel.mjs +0 -3
  334. package/esm2022/lib/models/SendOtpRequestModel.mjs +0 -3
  335. package/esm2022/lib/models/VerifyOtpRequestModel.mjs +0 -3
  336. package/esm2022/lib/models/WageCalculatorModel.mjs +0 -3
  337. package/esm2022/lib/models/WageInfoModel.mjs +0 -4
  338. package/esm2022/lib/models/addressValidation/AddressRecommendationModel.mjs +0 -3
  339. package/esm2022/lib/models/addressValidation/AddressValidationRequestComponentModel.mjs +0 -3
  340. package/esm2022/lib/models/addressValidation/AddressValidationResponseComponentModel.mjs +0 -3
  341. package/esm2022/lib/models/addressValidation/AddressValidationReturnComponentModel.mjs +0 -3
  342. package/esm2022/lib/models/combo-model.mjs +0 -343
  343. package/esm2022/lib/models/fileupload/DocUploadModel.mjs +0 -7
  344. package/esm2022/lib/models/fileupload/EmployerDataModel.mjs +0 -3
  345. package/esm2022/lib/models/fileupload/FileObject.mjs +0 -3
  346. package/esm2022/lib/models/fileupload/FileObjectArray.mjs +0 -7
  347. package/esm2022/lib/models/questionnaire/AppealParticipantModel.mjs +0 -8
  348. package/esm2022/lib/models/questionnaire/ScrollableTextModel.mjs +0 -3
  349. package/esm2022/lib/models/questionnaire/WbaHelperTextModel.mjs +0 -3
  350. package/esm2022/lib/models/weekly-cert/WorkSearchWaiverModel.mjs +0 -3
  351. package/esm2022/lib/models/weekly-cert/address-detail-model.mjs +0 -2
  352. package/esm2022/lib/models/weekly-cert/admin-leave-details-model.mjs +0 -7
  353. package/esm2022/lib/models/weekly-cert/employer-info-v2-model.mjs +0 -7
  354. package/esm2022/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.mjs +0 -6
  355. package/esm2022/lib/models/weekly-cert/weekly-certification-v2-model.mjs +0 -34
  356. package/esm2022/lib/models/weekly-cert/work-search-record-v2-model.mjs +0 -15
  357. package/esm2022/lib/models/weekly-cert/work-search-v2-model.mjs +0 -11
  358. package/esm2022/lib/pipes/format-worksearch/format-worksearch.pipe.mjs +0 -101
  359. package/esm2022/lib/services/address-validation-service/address-validation.service.mjs +0 -151
  360. package/esm2022/lib/services/appeal/appeal.service.mjs +0 -37
  361. package/esm2022/lib/services/birt-service/birt.service.mjs +0 -57
  362. package/esm2022/lib/services/employer/employer-service.mjs +0 -35
  363. package/esm2022/lib/services/event-service/event-service.mjs +0 -44
  364. package/esm2022/lib/services/offline-claims/offline-claims.service.mjs +0 -327
  365. package/esm2022/lib/services/weekly-cert/review.service.mjs +0 -101
  366. package/esm2022/lib/services/weekly-cert/weekly-cert.service.mjs +0 -37
  367. package/esm2022/lib/services/weekly-cert/work-search.service.mjs +0 -58
  368. package/lib/components/add-wage/add-wage.component.d.ts +0 -30
  369. package/lib/components/add-wage/add-wage.component.d.ts.map +0 -1
  370. package/lib/components/address-popup/address-popup.component.d.ts +0 -16
  371. package/lib/components/address-popup/address-popup.component.d.ts.map +0 -1
  372. package/lib/components/address-suggestion/address-suggestion.component.d.ts +0 -43
  373. package/lib/components/address-suggestion/address-suggestion.component.d.ts.map +0 -1
  374. package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts +0 -37
  375. package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts.map +0 -1
  376. package/lib/components/associate-ssn/associate-ssn.component.d.ts +0 -33
  377. package/lib/components/associate-ssn/associate-ssn.component.d.ts.map +0 -1
  378. package/lib/components/claim-info/claim-info.component.d.ts +0 -49
  379. package/lib/components/claim-info/claim-info.component.d.ts.map +0 -1
  380. package/lib/components/dua-request-page/dua-request-page.component.d.ts +0 -74
  381. package/lib/components/dua-request-page/dua-request-page.component.d.ts.map +0 -1
  382. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts +0 -61
  383. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts.map +0 -1
  384. package/lib/components/employer-info/employer-info.component.d.ts +0 -50
  385. package/lib/components/employer-info/employer-info.component.d.ts.map +0 -1
  386. package/lib/components/employer-pay/employer-pay.component.d.ts +0 -51
  387. package/lib/components/employer-pay/employer-pay.component.d.ts.map +0 -1
  388. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts +0 -43
  389. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts.map +0 -1
  390. package/lib/components/farm-usage/farm-usage.component.d.ts +0 -33
  391. package/lib/components/farm-usage/farm-usage.component.d.ts.map +0 -1
  392. package/lib/components/gross-earnings/gross-earnings.component.d.ts +0 -42
  393. package/lib/components/gross-earnings/gross-earnings.component.d.ts.map +0 -1
  394. package/lib/components/history-page/history-page.component.d.ts +0 -80
  395. package/lib/components/history-page/history-page.component.d.ts.map +0 -1
  396. package/lib/components/idme/idme.component.d.ts +0 -19
  397. package/lib/components/idme/idme.component.d.ts.map +0 -1
  398. package/lib/components/offline-add-employer/offline-add-employer.component.d.ts +0 -311
  399. package/lib/components/offline-add-employer/offline-add-employer.component.d.ts.map +0 -1
  400. package/lib/components/offline-bank-details/offline-bank-details.component.d.ts +0 -33
  401. package/lib/components/offline-bank-details/offline-bank-details.component.d.ts.map +0 -1
  402. package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts +0 -97
  403. package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts.map +0 -1
  404. package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts +0 -33
  405. package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts.map +0 -1
  406. package/lib/components/proof-of-anything/proof-of-anything.component.d.ts +0 -54
  407. package/lib/components/proof-of-anything/proof-of-anything.component.d.ts.map +0 -1
  408. package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts +0 -74
  409. package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts.map +0 -1
  410. package/lib/components/scrollable-text/scrollable-text.component.d.ts +0 -11
  411. package/lib/components/scrollable-text/scrollable-text.component.d.ts.map +0 -1
  412. package/lib/components/sms/sms.component.d.ts +0 -63
  413. package/lib/components/sms/sms.component.d.ts.map +0 -1
  414. package/lib/components/wage-calculator/wage-calculator.component.d.ts +0 -44
  415. package/lib/components/wage-calculator/wage-calculator.component.d.ts.map +0 -1
  416. package/lib/components/wage-grid/wage-grid.component.d.ts +0 -43
  417. package/lib/components/wage-grid/wage-grid.component.d.ts.map +0 -1
  418. package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts +0 -28
  419. package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts.map +0 -1
  420. package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts +0 -28
  421. package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts.map +0 -1
  422. package/lib/components/weekly-certification/weekly-certification.component.d.ts +0 -101
  423. package/lib/components/weekly-certification/weekly-certification.component.d.ts.map +0 -1
  424. package/lib/components/weekly-confirmation/confirmation.component.d.ts +0 -21
  425. package/lib/components/weekly-confirmation/confirmation.component.d.ts.map +0 -1
  426. package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts +0 -34
  427. package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts.map +0 -1
  428. package/lib/components/weekly-summary-v2/summary.component-v2.d.ts +0 -17
  429. package/lib/components/weekly-summary-v2/summary.component-v2.d.ts.map +0 -1
  430. package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts +0 -10
  431. package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts.map +0 -1
  432. package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts +0 -17
  433. package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts.map +0 -1
  434. package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts +0 -105
  435. package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts.map +0 -1
  436. package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts +0 -71
  437. package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts.map +0 -1
  438. package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts +0 -59
  439. package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts.map +0 -1
  440. package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts +0 -47
  441. package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts.map +0 -1
  442. package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts +0 -78
  443. package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts.map +0 -1
  444. package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts +0 -8
  445. package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts.map +0 -1
  446. package/lib/enums/AddressValidationResponseEnum.d.ts +0 -8
  447. package/lib/enums/AddressValidationResponseEnum.d.ts.map +0 -1
  448. package/lib/enums/AddressValidationSourceFunctionEnum.d.ts +0 -4
  449. package/lib/enums/AddressValidationSourceFunctionEnum.d.ts.map +0 -1
  450. package/lib/models/ActiveClaimModel.d.ts +0 -8
  451. package/lib/models/ActiveClaimModel.d.ts.map +0 -1
  452. package/lib/models/CountyModel.d.ts +0 -8
  453. package/lib/models/CountyModel.d.ts.map +0 -1
  454. package/lib/models/DuaAppDataModel.d.ts +0 -5
  455. package/lib/models/DuaAppDataModel.d.ts.map +0 -1
  456. package/lib/models/DuaRequestModel.d.ts +0 -10
  457. package/lib/models/DuaRequestModel.d.ts.map +0 -1
  458. package/lib/models/DuaRetroWeeksComponentModel.d.ts +0 -5
  459. package/lib/models/DuaRetroWeeksComponentModel.d.ts.map +0 -1
  460. package/lib/models/EmployerInfoComponentModel.d.ts +0 -9
  461. package/lib/models/EmployerInfoComponentModel.d.ts.map +0 -1
  462. package/lib/models/EmployerPayInfoModel.d.ts +0 -20
  463. package/lib/models/EmployerPayInfoModel.d.ts.map +0 -1
  464. package/lib/models/FarmUsageComponentModel.d.ts +0 -10
  465. package/lib/models/FarmUsageComponentModel.d.ts.map +0 -1
  466. package/lib/models/GrossEarningsModel.d.ts +0 -6
  467. package/lib/models/GrossEarningsModel.d.ts.map +0 -1
  468. package/lib/models/HelpConstants.d.ts +0 -5
  469. package/lib/models/HelpConstants.d.ts.map +0 -1
  470. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts +0 -7
  471. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts.map +0 -1
  472. package/lib/models/ReasonSeparationRequestModel.d.ts +0 -7
  473. package/lib/models/ReasonSeparationRequestModel.d.ts.map +0 -1
  474. package/lib/models/RetroWeeksModel.d.ts +0 -11
  475. package/lib/models/RetroWeeksModel.d.ts.map +0 -1
  476. package/lib/models/SecurityQuestionAnswerModel.d.ts +0 -7
  477. package/lib/models/SecurityQuestionAnswerModel.d.ts.map +0 -1
  478. package/lib/models/SendOtpRequestModel.d.ts +0 -12
  479. package/lib/models/SendOtpRequestModel.d.ts.map +0 -1
  480. package/lib/models/VerifyOtpRequestModel.d.ts +0 -8
  481. package/lib/models/VerifyOtpRequestModel.d.ts.map +0 -1
  482. package/lib/models/WageCalculatorModel.d.ts +0 -15
  483. package/lib/models/WageCalculatorModel.d.ts.map +0 -1
  484. package/lib/models/WageInfoModel.d.ts +0 -9
  485. package/lib/models/WageInfoModel.d.ts.map +0 -1
  486. package/lib/models/addressValidation/AddressRecommendationModel.d.ts +0 -12
  487. package/lib/models/addressValidation/AddressRecommendationModel.d.ts.map +0 -1
  488. package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts +0 -11
  489. package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts.map +0 -1
  490. package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts +0 -6
  491. package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts.map +0 -1
  492. package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts +0 -16
  493. package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts.map +0 -1
  494. package/lib/models/combo-model.d.ts +0 -42
  495. package/lib/models/combo-model.d.ts.map +0 -1
  496. package/lib/models/fileupload/DocUploadModel.d.ts +0 -22
  497. package/lib/models/fileupload/DocUploadModel.d.ts.map +0 -1
  498. package/lib/models/fileupload/EmployerDataModel.d.ts +0 -6
  499. package/lib/models/fileupload/EmployerDataModel.d.ts.map +0 -1
  500. package/lib/models/fileupload/FileObject.d.ts +0 -8
  501. package/lib/models/fileupload/FileObject.d.ts.map +0 -1
  502. package/lib/models/fileupload/FileObjectArray.d.ts +0 -8
  503. package/lib/models/fileupload/FileObjectArray.d.ts.map +0 -1
  504. package/lib/models/questionnaire/AppealParticipantModel.d.ts +0 -17
  505. package/lib/models/questionnaire/AppealParticipantModel.d.ts.map +0 -1
  506. package/lib/models/questionnaire/ScrollableTextModel.d.ts +0 -4
  507. package/lib/models/questionnaire/ScrollableTextModel.d.ts.map +0 -1
  508. package/lib/models/questionnaire/WbaHelperTextModel.d.ts +0 -4
  509. package/lib/models/questionnaire/WbaHelperTextModel.d.ts.map +0 -1
  510. package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts +0 -9
  511. package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts.map +0 -1
  512. package/lib/models/weekly-cert/address-detail-model.d.ts +0 -14
  513. package/lib/models/weekly-cert/address-detail-model.d.ts.map +0 -1
  514. package/lib/models/weekly-cert/admin-leave-details-model.d.ts +0 -15
  515. package/lib/models/weekly-cert/admin-leave-details-model.d.ts.map +0 -1
  516. package/lib/models/weekly-cert/employer-info-v2-model.d.ts +0 -27
  517. package/lib/models/weekly-cert/employer-info-v2-model.d.ts.map +0 -1
  518. package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts +0 -57
  519. package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts.map +0 -1
  520. package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts +0 -59
  521. package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts.map +0 -1
  522. package/lib/models/weekly-cert/work-search-record-v2-model.d.ts +0 -66
  523. package/lib/models/weekly-cert/work-search-record-v2-model.d.ts.map +0 -1
  524. package/lib/models/weekly-cert/work-search-v2-model.d.ts +0 -18
  525. package/lib/models/weekly-cert/work-search-v2-model.d.ts.map +0 -1
  526. package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts +0 -14
  527. package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts.map +0 -1
  528. package/lib/services/address-validation-service/address-validation.service.d.ts +0 -44
  529. package/lib/services/address-validation-service/address-validation.service.d.ts.map +0 -1
  530. package/lib/services/appeal/appeal.service.d.ts +0 -16
  531. package/lib/services/appeal/appeal.service.d.ts.map +0 -1
  532. package/lib/services/birt-service/birt.service.d.ts +0 -17
  533. package/lib/services/birt-service/birt.service.d.ts.map +0 -1
  534. package/lib/services/employer/employer-service.d.ts +0 -16
  535. package/lib/services/employer/employer-service.d.ts.map +0 -1
  536. package/lib/services/event-service/event-service.d.ts +0 -20
  537. package/lib/services/event-service/event-service.d.ts.map +0 -1
  538. package/lib/services/offline-claims/offline-claims.service.d.ts +0 -64
  539. package/lib/services/offline-claims/offline-claims.service.d.ts.map +0 -1
  540. package/lib/services/weekly-cert/review.service.d.ts +0 -23
  541. package/lib/services/weekly-cert/review.service.d.ts.map +0 -1
  542. package/lib/services/weekly-cert/weekly-cert.service.d.ts +0 -17
  543. package/lib/services/weekly-cert/weekly-cert.service.d.ts.map +0 -1
  544. package/lib/services/weekly-cert/work-search.service.d.ts +0 -26
  545. package/lib/services/weekly-cert/work-search.service.d.ts.map +0 -1
@@ -1,527 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { Validators } from '@angular/forms';
3
- import { WageCalculatorModel } from '../../models/WageCalculatorModel';
4
- import { ComboOption } from '../../models/questionnaire/ComboModel';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/forms";
7
- import * as i2 from "../../services/util/util.service";
8
- import * as i3 from "@ionic/angular";
9
- import * as i4 from "@angular/common";
10
- import * as i5 from "primeng/api";
11
- import * as i6 from "primeng/dialog";
12
- import * as i7 from "primeng/selectbutton";
13
- import * as i8 from "primeng/inputnumber";
14
- import * as i9 from "@fortawesome/angular-fontawesome";
15
- import * as i10 from "../error/error.component";
16
- import * as i11 from "../overlay-info/overlay-info.component";
17
- import * as i12 from "@ngx-translate/core";
18
- import * as i13 from "../../pipes/trust-html/trust-html.pipe";
19
- function WageCalculatorComponent_section_10_ion_col_16_Template(rf, ctx) { if (rf & 1) {
20
- i0.ɵɵelementStart(0, "ion-col", 1)(1, "ion-row")(2, "label");
21
- i0.ɵɵtext(3);
22
- i0.ɵɵelementEnd()();
23
- i0.ɵɵelementStart(4, "ion-row");
24
- i0.ɵɵelement(5, "p-inputNumber", 34);
25
- i0.ɵɵelementEnd();
26
- i0.ɵɵelementStart(6, "ion-row")(7, "ion-label");
27
- i0.ɵɵtext(8);
28
- i0.ɵɵelementEnd()()();
29
- } if (rf & 2) {
30
- const day_r5 = ctx.$implicit;
31
- let tmp_1_0;
32
- let tmp_7_0;
33
- i0.ɵɵproperty("formGroup", day_r5);
34
- i0.ɵɵadvance(3);
35
- i0.ɵɵtextInterpolate((tmp_1_0 = day_r5.get("label")) == null ? null : tmp_1_0.value);
36
- i0.ɵɵadvance(2);
37
- i0.ɵɵproperty("formControl", day_r5.get("hours"))("min", 0)("max", 24)("minFractionDigits", 1)("maxFractionDigits", 2);
38
- i0.ɵɵadvance(3);
39
- i0.ɵɵtextInterpolate((tmp_7_0 = day_r5.get("date")) == null ? null : tmp_7_0.value);
40
- } }
41
- const _c0 = "total hours must not be greater than 168 for the week";
42
- const _c1 = () => ({ totalHoursZero: "total hours must be greater than 0", hoursPerWeekExceeded: _c0 });
43
- const _c2 = () => ["fas", "xmark"];
44
- const _c3 = () => ({ required: "required" });
45
- const _c4 = () => ["fas", "equals"];
46
- const _c5 = () => ["fal", "plus"];
47
- function WageCalculatorComponent_section_10_Template(rf, ctx) { if (rf & 1) {
48
- i0.ɵɵelementStart(0, "section")(1, "ion-grid")(2, "ion-row")(3, "ion-col", 10)(4, "label");
49
- i0.ɵɵtext(5);
50
- i0.ɵɵpipe(6, "translate");
51
- i0.ɵɵelementEnd()();
52
- i0.ɵɵelement(7, "ion-col", 11);
53
- i0.ɵɵelementStart(8, "ion-col", 12)(9, "label")(10, "b");
54
- i0.ɵɵtext(11);
55
- i0.ɵɵpipe(12, "translate");
56
- i0.ɵɵelementEnd()()()();
57
- i0.ɵɵelementStart(13, "ion-row")(14, "ion-col", 13)(15, "ion-row");
58
- i0.ɵɵtemplate(16, WageCalculatorComponent_section_10_ion_col_16_Template, 9, 8, "ion-col", 14);
59
- i0.ɵɵelementEnd();
60
- i0.ɵɵelementStart(17, "ion-row")(18, "ion-col", 15);
61
- i0.ɵɵelement(19, "app-error", 7);
62
- i0.ɵɵelementEnd()()();
63
- i0.ɵɵelementStart(20, "ion-col", 16)(21, "b");
64
- i0.ɵɵtext(22, "= ");
65
- i0.ɵɵelementEnd()();
66
- i0.ɵɵelementStart(23, "ion-col", 17)(24, "b");
67
- i0.ɵɵtext(25);
68
- i0.ɵɵelementEnd()()()();
69
- i0.ɵɵelementStart(26, "ion-grid")(27, "ion-row");
70
- i0.ɵɵelement(28, "ion-col", 18);
71
- i0.ɵɵelementStart(29, "ion-col", 19)(30, "ion-row")(31, "label");
72
- i0.ɵɵtext(32);
73
- i0.ɵɵpipe(33, "translate");
74
- i0.ɵɵelementEnd()()();
75
- i0.ɵɵelement(34, "ion-col", 20)(35, "ion-col", 21);
76
- i0.ɵɵelementStart(36, "ion-col", 19)(37, "ion-row")(38, "label");
77
- i0.ɵɵtext(39);
78
- i0.ɵɵpipe(40, "translate");
79
- i0.ɵɵelementEnd()()()();
80
- i0.ɵɵelementStart(41, "ion-row");
81
- i0.ɵɵelement(42, "ion-col", 22);
82
- i0.ɵɵelementStart(43, "ion-col", 23);
83
- i0.ɵɵelement(44, "fa-icon", 24);
84
- i0.ɵɵelementEnd();
85
- i0.ɵɵelementStart(45, "ion-col", 19);
86
- i0.ɵɵelement(46, "p-inputNumber", 25);
87
- i0.ɵɵelementStart(47, "label", 26);
88
- i0.ɵɵtext(48);
89
- i0.ɵɵpipe(49, "translate");
90
- i0.ɵɵelementEnd();
91
- i0.ɵɵelement(50, "app-error", 7);
92
- i0.ɵɵelementEnd();
93
- i0.ɵɵelement(51, "ion-col", 27);
94
- i0.ɵɵelementStart(52, "ion-col", 23);
95
- i0.ɵɵelement(53, "fa-icon", 24);
96
- i0.ɵɵelementEnd();
97
- i0.ɵɵelementStart(54, "ion-col", 28)(55, "label");
98
- i0.ɵɵtext(56);
99
- i0.ɵɵpipe(57, "currency");
100
- i0.ɵɵelementEnd()()()();
101
- i0.ɵɵelementStart(58, "ion-grid")(59, "ion-row");
102
- i0.ɵɵelement(60, "ion-col", 18);
103
- i0.ɵɵelementStart(61, "ion-col", 19)(62, "ion-row")(63, "ion-label");
104
- i0.ɵɵtext(64);
105
- i0.ɵɵpipe(65, "translate");
106
- i0.ɵɵelementEnd()()();
107
- i0.ɵɵelement(66, "ion-col", 20)(67, "ion-col", 27);
108
- i0.ɵɵelementStart(68, "ion-col", 29)(69, "label");
109
- i0.ɵɵtext(70);
110
- i0.ɵɵpipe(71, "translate");
111
- i0.ɵɵelementEnd();
112
- i0.ɵɵelement(72, "app-overlay-info", 30);
113
- i0.ɵɵpipe(73, "trustHtml");
114
- i0.ɵɵpipe(74, "translate");
115
- i0.ɵɵelementEnd()();
116
- i0.ɵɵelementStart(75, "ion-row", 31);
117
- i0.ɵɵelement(76, "ion-col", 22);
118
- i0.ɵɵelementStart(77, "ion-col", 23);
119
- i0.ɵɵelement(78, "fa-icon", 24);
120
- i0.ɵɵelementEnd();
121
- i0.ɵɵelementStart(79, "ion-col", 19);
122
- i0.ɵɵelement(80, "p-inputNumber", 32)(81, "app-error", 7);
123
- i0.ɵɵelementEnd();
124
- i0.ɵɵelement(82, "ion-col", 33);
125
- i0.ɵɵelementStart(83, "ion-col", 23);
126
- i0.ɵɵelement(84, "fa-icon", 24);
127
- i0.ɵɵelementEnd();
128
- i0.ɵɵelementStart(85, "ion-col", 28);
129
- i0.ɵɵtext(86);
130
- i0.ɵɵpipe(87, "currency");
131
- i0.ɵɵelementEnd()()()();
132
- } if (rf & 2) {
133
- const ctx_r1 = i0.ɵɵnextContext();
134
- const _r0 = i0.ɵɵreference(2);
135
- i0.ɵɵadvance(5);
136
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 27, "wage.calculator.hours.worked"));
137
- i0.ɵɵadvance(6);
138
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(12, 29, "wage.calculator.total"));
139
- i0.ɵɵadvance(5);
140
- i0.ɵɵproperty("ngForOf", ctx_r1.daysFormArray.controls);
141
- i0.ɵɵadvance(3);
142
- i0.ɵɵproperty("field", ctx_r1.wageCalculatorForm.get("days"))("form", _r0)("errDef", i0.ɵɵpureFunction0(51, _c1));
143
- i0.ɵɵadvance(6);
144
- i0.ɵɵtextInterpolate(ctx_r1.calculateTotalHours());
145
- i0.ɵɵadvance(7);
146
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(33, 31, "wage.calculator.pay.rate"));
147
- i0.ɵɵadvance(7);
148
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(40, 33, "wage.calculator.earnings"));
149
- i0.ɵɵadvance(5);
150
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(52, _c2));
151
- i0.ɵɵadvance(2);
152
- i0.ɵɵproperty("formControl", ctx_r1.payRate);
153
- i0.ɵɵadvance(2);
154
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(49, 35, "wage.calculator.per.hour"));
155
- i0.ɵɵadvance(2);
156
- i0.ɵɵproperty("field", ctx_r1.wageCalculatorForm.get("payRate"))("form", _r0)("errDef", i0.ɵɵpureFunction0(53, _c3));
157
- i0.ɵɵadvance(3);
158
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(54, _c4));
159
- i0.ɵɵadvance(3);
160
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(57, 37, ctx_r1.calculateEarnings(), "USD"));
161
- i0.ɵɵadvance(8);
162
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(65, 40, "wage.calculator.other.pay"));
163
- i0.ɵɵadvance(6);
164
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(71, 42, "wage.calculator.gross.earnings"));
165
- i0.ɵɵadvance(2);
166
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind1(73, 44, i0.ɵɵpipeBind1(74, 46, "weeklies.v2.employment.rtw.info.popup.1000")));
167
- i0.ɵɵadvance(6);
168
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(55, _c5));
169
- i0.ɵɵadvance(2);
170
- i0.ɵɵproperty("formControl", ctx_r1.otherPay);
171
- i0.ɵɵadvance(1);
172
- i0.ɵɵproperty("field", ctx_r1.wageCalculatorForm.get("otherPay"))("form", _r0)("errDef", i0.ɵɵpureFunction0(56, _c3));
173
- i0.ɵɵadvance(3);
174
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(57, _c4));
175
- i0.ɵɵadvance(2);
176
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(87, 48, ctx_r1.calculateGrossEarnings(), "USD"));
177
- } }
178
- const _c6 = () => ({ required: "required", hoursPerWeekExceeded: _c0 });
179
- function WageCalculatorComponent_section_11_Template(rf, ctx) { if (rf & 1) {
180
- i0.ɵɵelementStart(0, "section")(1, "ion-grid")(2, "ion-row")(3, "ion-col", 35)(4, "label");
181
- i0.ɵɵtext(5);
182
- i0.ɵɵpipe(6, "translate");
183
- i0.ɵɵelementEnd();
184
- i0.ɵɵelement(7, "p-inputNumber", 36)(8, "app-error", 7);
185
- i0.ɵɵelementEnd()();
186
- i0.ɵɵelementStart(9, "ion-row")(10, "ion-col", 35)(11, "label");
187
- i0.ɵɵtext(12);
188
- i0.ɵɵpipe(13, "translate");
189
- i0.ɵɵelementEnd()();
190
- i0.ɵɵelement(14, "ion-col", 37);
191
- i0.ɵɵelementStart(15, "ion-col", 35)(16, "label", 38);
192
- i0.ɵɵtext(17);
193
- i0.ɵɵpipe(18, "translate");
194
- i0.ɵɵelementEnd()();
195
- i0.ɵɵelement(19, "ion-col", 37);
196
- i0.ɵɵelementStart(20, "ion-col", 19)(21, "label", 39);
197
- i0.ɵɵtext(22);
198
- i0.ɵɵpipe(23, "translate");
199
- i0.ɵɵelementEnd();
200
- i0.ɵɵelement(24, "app-overlay-info", 30);
201
- i0.ɵɵpipe(25, "trustHtml");
202
- i0.ɵɵpipe(26, "translate");
203
- i0.ɵɵelementEnd()();
204
- i0.ɵɵelementStart(27, "ion-row")(28, "ion-col", 35);
205
- i0.ɵɵelement(29, "p-inputNumber", 40)(30, "app-error", 7);
206
- i0.ɵɵelementEnd();
207
- i0.ɵɵelementStart(31, "ion-col", 23);
208
- i0.ɵɵelement(32, "fa-icon", 24);
209
- i0.ɵɵelementEnd();
210
- i0.ɵɵelementStart(33, "ion-col", 35);
211
- i0.ɵɵelement(34, "p-inputNumber", 40);
212
- i0.ɵɵelementEnd();
213
- i0.ɵɵelementStart(35, "ion-col", 23);
214
- i0.ɵɵelement(36, "fa-icon", 24);
215
- i0.ɵɵelementEnd();
216
- i0.ɵɵelementStart(37, "ion-col", 19)(38, "label", 41);
217
- i0.ɵɵtext(39);
218
- i0.ɵɵpipe(40, "currency");
219
- i0.ɵɵelementEnd()()()()();
220
- } if (rf & 2) {
221
- const ctx_r2 = i0.ɵɵnextContext();
222
- const _r0 = i0.ɵɵreference(2);
223
- i0.ɵɵadvance(5);
224
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 24, "wage.calculator.hours.worked"));
225
- i0.ɵɵadvance(2);
226
- i0.ɵɵproperty("formControl", ctx_r2.hoursWorked)("min", 0)("minFractionDigits", 1)("maxFractionDigits", 2);
227
- i0.ɵɵadvance(1);
228
- i0.ɵɵproperty("field", ctx_r2.wageCalculatorForm.get("hoursWorked"))("form", _r0)("errDef", i0.ɵɵpureFunction0(39, _c6));
229
- i0.ɵɵadvance(4);
230
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(13, 26, "wage.calculator.earnings"));
231
- i0.ɵɵadvance(5);
232
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(18, 28, "wage.calculator.other.pay"));
233
- i0.ɵɵadvance(5);
234
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(23, 30, "wage.calculator.gross.earnings"));
235
- i0.ɵɵadvance(2);
236
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind1(25, 32, i0.ɵɵpipeBind1(26, 34, "weeklies.v2.employment.rtw.info.popup.1000")));
237
- i0.ɵɵadvance(5);
238
- i0.ɵɵproperty("formControl", ctx_r2.earnings)("min", 0);
239
- i0.ɵɵadvance(1);
240
- i0.ɵɵclassMap("app-grid");
241
- i0.ɵɵproperty("field", ctx_r2.earnings)("form", _r0)("errDef", i0.ɵɵpureFunction0(40, _c3));
242
- i0.ɵɵadvance(2);
243
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(41, _c5));
244
- i0.ɵɵadvance(2);
245
- i0.ɵɵproperty("formControl", ctx_r2.otherPay)("min", 0);
246
- i0.ɵɵadvance(2);
247
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(42, _c4));
248
- i0.ɵɵadvance(3);
249
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(40, 36, ctx_r2.calculateGrossEarnings(), "USD"));
250
- } }
251
- function WageCalculatorComponent_ng_template_12_Template(rf, ctx) { if (rf & 1) {
252
- const _r8 = i0.ɵɵgetCurrentView();
253
- i0.ɵɵelementStart(0, "ion-button", 42);
254
- i0.ɵɵlistener("click", function WageCalculatorComponent_ng_template_12_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.onCancel()); });
255
- i0.ɵɵtext(1);
256
- i0.ɵɵpipe(2, "translate");
257
- i0.ɵɵelementEnd();
258
- i0.ɵɵelementStart(3, "ion-button", 43);
259
- i0.ɵɵlistener("click", function WageCalculatorComponent_ng_template_12_Template_ion_button_click_3_listener() { i0.ɵɵrestoreView(_r8); const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.onSave()); });
260
- i0.ɵɵtext(4);
261
- i0.ɵɵpipe(5, "translate");
262
- i0.ɵɵelementEnd();
263
- } if (rf & 2) {
264
- i0.ɵɵadvance(1);
265
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 2, "wage.calculator.cancel"));
266
- i0.ɵɵadvance(3);
267
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 4, "wage.calculator.save"));
268
- } }
269
- const _c7 = () => ({ width: "800px" });
270
- const _c8 = () => ({ "960px": "90vw", "640px": "100vw" });
271
- export class WageCalculatorComponent {
272
- constructor(formBuilder, util) {
273
- this.formBuilder = formBuilder;
274
- this.util = util;
275
- this.grossEarningsChange = new EventEmitter();
276
- this.totalHoursChange = new EventEmitter();
277
- this.saveClicked = new EventEmitter();
278
- this.cancelClicked = new EventEmitter();
279
- this.yesNoOption = ComboOption.YES_NO;
280
- this.isFirstTimeEntry = true;
281
- this.wageCalculatorForm = this.formBuilder.group({
282
- 'isPaidHourly': [null, Validators.required],
283
- 'hoursWorked': [null],
284
- 'payRate': [null],
285
- 'otherPay': [0.0],
286
- 'earnings': [null],
287
- 'grossEarnings': [0.0],
288
- 'days': this.formBuilder.array([])
289
- });
290
- }
291
- ngOnInit() {
292
- const daysArray = this.daysFormArray;
293
- if (this.wageCalculatorSavedData && this.wageCalculatorSavedData.days) {
294
- this.isFirstTimeEntry = false;
295
- this.wageCalculatorForm.patchValue({
296
- payRate: this.wageCalculatorSavedData.payRate,
297
- otherPay: this.wageCalculatorSavedData.otherPay,
298
- earnings: this.wageCalculatorSavedData.earnings || 0.00,
299
- grossEarnings: this.wageCalculatorSavedData.grossEarnings || 0.00,
300
- hoursWorked: this.wageCalculatorSavedData.hoursWorked,
301
- isPaidHourly: this.wageCalculatorSavedData.isPaidHourly
302
- });
303
- for (const d of this.wageCalculatorSavedData.days) {
304
- daysArray.push(this.formBuilder.group({
305
- label: d.label,
306
- date: d.date,
307
- hours: [d.hours]
308
- }));
309
- }
310
- }
311
- else {
312
- this.isFirstTimeEntry = true;
313
- this.satDate = this.util.getEnteredDateFromString(this.dynamicParam.saturday_date);
314
- this.sunDate = this.util.getEnteredDateFromString(this.dynamicParam.sunday_date);
315
- this.startDate = new Date(this.sunDate);
316
- while (this.startDate <= this.satDate) {
317
- daysArray.push(this.formBuilder.group({
318
- date: this.formatDate(this.startDate),
319
- label: this.startDate.toLocaleDateString('en-US', { weekday: 'short' }),
320
- hours: [null]
321
- }));
322
- this.startDate.setDate(this.startDate.getDate() + 1);
323
- }
324
- }
325
- this.updateGrossEarnings();
326
- this.hoursWorked.valueChanges.subscribe(val => {
327
- if (val) {
328
- if (val > 168) {
329
- this.wageCalculatorForm.controls['hoursWorked'].setErrors({ hoursPerWeekExceeded: true });
330
- }
331
- }
332
- });
333
- this.isPaidHourly.valueChanges.subscribe(val => {
334
- if (val) {
335
- if (val === 'N') {
336
- this.util.setRequiredValidator(this.hoursWorked);
337
- this.util.setRequiredValidator(this.earnings);
338
- this.util.clearValidation(this.payRate);
339
- this.payRate.setValue(null);
340
- this.otherPay.setValue(null);
341
- this.daysFormArray.controls.forEach((group) => {
342
- group.get('hours')?.setValue(null);
343
- });
344
- }
345
- else if (val === 'Y') {
346
- this.util.setRequiredValidator(this.payRate);
347
- this.util.clearValidation(this.hoursWorked);
348
- this.util.clearValidation(this.earnings);
349
- this.hoursWorked.setValue(null);
350
- this.earnings.setValue(null);
351
- this.otherPay.setValue(null);
352
- }
353
- }
354
- });
355
- }
356
- get isPaidHourly() {
357
- return this.wageCalculatorForm.controls['isPaidHourly'];
358
- }
359
- get hoursWorked() {
360
- return this.wageCalculatorForm.controls['hoursWorked'];
361
- }
362
- get payRate() {
363
- return this.wageCalculatorForm.controls['payRate'];
364
- }
365
- get otherPay() {
366
- return this.wageCalculatorForm.controls['otherPay'];
367
- }
368
- get earnings() {
369
- return this.wageCalculatorForm.controls['earnings'];
370
- }
371
- get daysFormArray() {
372
- return this.wageCalculatorForm.get('days');
373
- }
374
- formatDate(date) {
375
- const month = (date.getMonth() + 1).toString().padStart(2, '0');
376
- const day = date.getDate().toString().padStart(2, '0');
377
- return `${month}/${day}`;
378
- }
379
- calculateTotalHours() {
380
- const total = this.daysFormArray.controls.reduce((sum, ctrl) => {
381
- const hours = ctrl.get('hours')?.value || 0;
382
- return sum + hours;
383
- }, 0);
384
- this.totalHoursChange.emit(total);
385
- return total;
386
- }
387
- calculateEarnings() {
388
- return this.calculateTotalHours() * (this.payRate?.value || 0);
389
- }
390
- calculateGrossEarnings() {
391
- const earnings = this.isPaidHourly?.value === 'Y' ? this.calculateEarnings() : this.earnings?.value || 0;
392
- const total = earnings + (this.otherPay?.value || 0);
393
- this.wageCalculatorForm.patchValue({ grossEarnings: total });
394
- return total;
395
- }
396
- updateTotalHours() {
397
- if (this.isPaidHourly.value === 'N') {
398
- const total = this.hoursWorked.value;
399
- this.totalHoursChange.emit(total);
400
- }
401
- }
402
- updateGrossEarnings() {
403
- this.grossEarningsChange.emit(this.calculateGrossEarnings());
404
- }
405
- onSave() {
406
- this.updateGrossEarnings();
407
- const model = new WageCalculatorModel();
408
- model.payRate = this.payRate?.value;
409
- model.otherPay = this.otherPay?.value;
410
- model.earnings = this.earnings?.value;
411
- model.grossEarnings = this.wageCalculatorForm.get('grossEarnings')?.value;
412
- model.totalHours = this.calculateTotalHours();
413
- model.hoursWorked = this.hoursWorked?.value;
414
- model.isPaidHourly = this.isPaidHourly?.value;
415
- model.days = this.daysFormArray.controls.map(ctrl => ctrl.value);
416
- this.updateTotalHours();
417
- if (this.isPaidHourly.value === 'Y') {
418
- if (model.totalHours === 0) {
419
- this.wageCalculatorForm.controls['days'].setErrors({ totalHoursZero: true });
420
- }
421
- if (model.totalHours > 168) {
422
- this.wageCalculatorForm.controls['days'].setErrors({ hoursPerWeekExceeded: true });
423
- }
424
- }
425
- if (this.wageCalculatorForm.valid) {
426
- this.showCalculatorPopup = false;
427
- this.saveClicked.emit(model);
428
- }
429
- else {
430
- this.wageCalculatorForm.markAllAsTouched();
431
- }
432
- }
433
- onCancel() {
434
- if (this.isFirstTimeEntry) {
435
- // Case 1: New entry — reset everything
436
- this.daysFormArray.controls.forEach((group) => {
437
- group.get('hours')?.setValue(null);
438
- });
439
- this.wageCalculatorForm.patchValue({ grossEarnings: 0 });
440
- this.totalHoursChange.emit(0);
441
- this.grossEarningsChange.emit(0);
442
- }
443
- else {
444
- // Case 2: Editing existing data — restore original values
445
- this.daysFormArray.clear();
446
- for (const d of this.wageCalculatorSavedData.days) {
447
- this.daysFormArray.push(this.formBuilder.group({
448
- label: d.label,
449
- date: d.date,
450
- hours: [d.hours]
451
- }));
452
- }
453
- this.wageCalculatorForm.patchValue({
454
- payRate: this.wageCalculatorSavedData.payRate,
455
- otherPay: this.wageCalculatorSavedData.otherPay,
456
- earnings: this.wageCalculatorSavedData.earnings || 0.00,
457
- grossEarnings: this.wageCalculatorSavedData.grossEarnings || 0.00,
458
- hoursWorked: this.wageCalculatorSavedData.hoursWorked,
459
- isPaidHourly: this.wageCalculatorSavedData.isPaidHourly
460
- });
461
- // Correctly calculate total hours from saved data
462
- let totalHours = 0;
463
- if (this.wageCalculatorSavedData.isPaidHourly === 'Y') {
464
- totalHours = this.wageCalculatorSavedData.days.reduce((sum, d) => {
465
- return sum + (d.hours || 0);
466
- }, 0);
467
- }
468
- else {
469
- totalHours = this.wageCalculatorSavedData.hoursWorked || 0;
470
- }
471
- this.totalHoursChange.emit(totalHours);
472
- this.grossEarningsChange.emit(this.wageCalculatorSavedData.grossEarnings || 0);
473
- }
474
- this.showCalculatorPopup = false;
475
- this.cancelClicked.emit();
476
- }
477
- static { this.ɵfac = function WageCalculatorComponent_Factory(t) { return new (t || WageCalculatorComponent)(i0.ɵɵdirectiveInject(i1.UntypedFormBuilder), i0.ɵɵdirectiveInject(i2.UtilService)); }; }
478
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WageCalculatorComponent, selectors: [["app-wage-calculator"]], inputs: { dynamicParam: "dynamicParam", showCalculatorPopup: "showCalculatorPopup", wageCalculatorSavedData: "wageCalculatorSavedData" }, outputs: { grossEarningsChange: "grossEarningsChange", totalHoursChange: "totalHoursChange", saveClicked: "saveClicked", cancelClicked: "cancelClicked" }, decls: 13, vars: 20, consts: [["modal", "true", "appendTo", "body", "position", "top", 1, "help-page-slide", 3, "visible", "breakpoints"], [3, "formGroup"], ["wageCalculatorFormDirective", "ngForm"], [1, "ion-padding"], [1, "field"], ["for", "isPaidHourly"], ["optionLabel", "text", "optionValue", "value", 3, "options", "formControl"], [3, "field", "form", "errDef"], [4, "ngIf"], ["pTemplate", "footer"], ["size", "4"], ["size", "4.5"], ["size", "2.5"], ["size", "8", 1, "days-row"], [3, "formGroup", 4, "ngFor", "ngForOf"], ["size", "12"], ["size", "0.5", 2, "padding-top", "35px"], ["size", "3.5", 2, "padding-top", "35px"], ["size", "1.5"], ["size", "3"], ["size", "1", 1, "regular-view"], ["size", "4.5", "sizeXs", "4", 1, "mobile-view"], ["size", "0.5"], ["size", "1", 1, "center-icon"], [1, "action-icon", 3, "icon"], ["mode", "currency", "currency", "USD", "placeholder", "$0.00", 1, "custom-input-medium", 3, "formControl"], [2, "padding-left", "10px"], ["size", "3.5", 1, "mobile-view"], ["size", "3", 2, "padding-top", "15px"], ["size", "3", "sizeXs", "4"], [1, "overlay-info", 2, "padding-left", "8px", "padding-top", "3px", 3, "overlayText"], [2, "padding-bottom", "20px"], ["mode", "currency", "currency", "USD", 1, "custom-input-medium", 3, "formControl"], ["size", "3", 1, "mobile-view"], ["mode", "decimal", "placeholder", "0.00", 1, "custom-input-small", 3, "formControl", "min", "max", "minFractionDigits", "maxFractionDigits"], ["size", "3.5"], ["placeholder", "0.00", "mode", "decimal", 3, "formControl", "min", "minFractionDigits", "maxFractionDigits"], ["size", "1"], [2, "position", "absolute"], [1, "gross-mobile-view"], ["mode", "currency", "currency", "USD", "locale", "en-US", "placeholder", "$0.00", 3, "formControl", "min"], [2, "display", "block", "padding-top", "8px"], ["shape", "round", "fill", "outline", "type", "reset", 3, "click"], ["shape", "round", "type", "submit", 2, "padding-left", "40px", 3, "click"]], template: function WageCalculatorComponent_Template(rf, ctx) { if (rf & 1) {
479
- i0.ɵɵelementStart(0, "p-dialog", 0)(1, "form", 1, 2)(3, "ion-row", 3)(4, "div", 4)(5, "label", 5);
480
- i0.ɵɵtext(6);
481
- i0.ɵɵpipe(7, "translate");
482
- i0.ɵɵelementEnd();
483
- i0.ɵɵelement(8, "p-selectButton", 6)(9, "app-error", 7);
484
- i0.ɵɵelementEnd()();
485
- i0.ɵɵtemplate(10, WageCalculatorComponent_section_10_Template, 88, 58, "section", 8)(11, WageCalculatorComponent_section_11_Template, 41, 43, "section", 8);
486
- i0.ɵɵelementEnd();
487
- i0.ɵɵtemplate(12, WageCalculatorComponent_ng_template_12_Template, 6, 6, "ng-template", 9);
488
- i0.ɵɵelementEnd();
489
- } if (rf & 2) {
490
- const _r0 = i0.ɵɵreference(2);
491
- i0.ɵɵstyleMap(i0.ɵɵpureFunction0(17, _c7));
492
- i0.ɵɵproperty("visible", ctx.showCalculatorPopup)("breakpoints", i0.ɵɵpureFunction0(18, _c8));
493
- i0.ɵɵadvance(1);
494
- i0.ɵɵproperty("formGroup", ctx.wageCalculatorForm);
495
- i0.ɵɵadvance(5);
496
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(7, 15, "wage.calculator.paid.hourly"));
497
- i0.ɵɵadvance(2);
498
- i0.ɵɵproperty("options", ctx.yesNoOption)("formControl", ctx.isPaidHourly);
499
- i0.ɵɵadvance(1);
500
- i0.ɵɵclassMap("app-grid");
501
- i0.ɵɵproperty("field", ctx.isPaidHourly)("form", _r0)("errDef", i0.ɵɵpureFunction0(19, _c3));
502
- i0.ɵɵadvance(1);
503
- i0.ɵɵproperty("ngIf", ctx.isPaidHourly.value === "Y");
504
- i0.ɵɵadvance(1);
505
- i0.ɵɵproperty("ngIf", ctx.isPaidHourly.value === "N");
506
- } }, dependencies: [i3.IonButton, i3.IonCol, i3.IonGrid, i3.IonLabel, i3.IonRow, i4.NgForOf, i4.NgIf, i5.PrimeTemplate, i1.ɵNgNoValidate, i1.NgControlStatus, i1.NgControlStatusGroup, i1.FormControlDirective, i1.FormGroupDirective, i6.Dialog, i7.SelectButton, i8.InputNumber, i9.FaIconComponent, i10.ErrorComponent, i11.OverlayInfoComponent, i4.CurrencyPipe, i12.TranslatePipe, i13.TrustHtmlPipe], styles: [".day-header[_ngcontent-%COMP%]{text-align:center;font-weight:700}.mobile-view[_ngcontent-%COMP%]{display:none}.custom-input-small[_ngcontent-%COMP%] .p-inputnumber{width:58px!important}.custom-input-small[_ngcontent-%COMP%] .p-inputnumber input{width:58px!important}.custom-input-small[_ngcontent-%COMP%] .p-inputnumber span{max-width:58px!important;display:inline-block;overflow:hidden;text-overflow:ellipsis}.custom-input-medium[_ngcontent-%COMP%] .p-inputnumber{width:100px!important}.custom-input-medium[_ngcontent-%COMP%] .p-inputnumber input{width:100px!important}.custom-input-medium[_ngcontent-%COMP%] .p-inputnumber span{max-width:100px!important;display:inline-block;overflow:hidden;text-overflow:ellipsis}@media (min-width: 320px) and (max-width: 460px){ .p-inputtext{max-width:75px}.overlay-info[_ngcontent-%COMP%]{padding-left:57px!important;padding-top:3px}.gross-mobile-view[_ngcontent-%COMP%]{position:fixed;padding-left:10px}.mobile-view[_ngcontent-%COMP%]{display:block}.regular-view[_ngcontent-%COMP%]{display:none}}@media (min-width: 520px) and (max-width: 900px){ .p-inputtext{max-width:125px}}"] }); }
507
- }
508
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WageCalculatorComponent, [{
509
- type: Component,
510
- args: [{ selector: 'app-wage-calculator', template: "<p-dialog [visible]=\"showCalculatorPopup\" modal=\"true\" appendTo=\"body\"\r\n [breakpoints]=\"{'960px': '90vw', '640px': '100vw'}\" [style]=\"{width: '800px'}\" position=\"top\"\r\n class=\"help-page-slide\">\r\n <form [formGroup]=\"wageCalculatorForm\" #wageCalculatorFormDirective=\"ngForm\">\r\n <ion-row class=\"ion-padding\">\r\n <div class=\"field\">\r\n <label for=\"isPaidHourly\">{{'wage.calculator.paid.hourly'|translate}}</label>\r\n <p-selectButton [options]=\"yesNoOption\" [formControl]=\"isPaidHourly\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='isPaidHourly' [form]=\"wageCalculatorFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-row>\r\n\r\n <section *ngIf=\"isPaidHourly.value === 'Y'\">\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col size=\"4\">\r\n <label>{{'wage.calculator.hours.worked'|translate}}</label>\r\n </ion-col>\r\n <ion-col size=\"4.5\"></ion-col>\r\n <ion-col size=\"2.5\">\r\n <label><b>{{'wage.calculator.total'|translate}}</b></label>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"days-row\" size=\"8\">\r\n <ion-row>\r\n <ion-col *ngFor=\"let day of daysFormArray.controls; let i = index\" [formGroup]=\"day\">\r\n <ion-row>\r\n <label>{{ day.get('label')?.value }}</label>\r\n </ion-row>\r\n <ion-row>\r\n <p-inputNumber [formControl]=\"day.get('hours')\" mode=\"decimal\" placeholder=\"0.00\" [min]=\"0.00\" [max]=\"24.00\"\r\n class=\"custom-input-small\" [minFractionDigits]=\"1\" [maxFractionDigits]=\"2\">\r\n </p-inputNumber>\r\n </ion-row>\r\n <ion-row>\r\n <ion-label>{{ day.get('date')?.value }}</ion-label>\r\n </ion-row>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col size=\"12\">\r\n <app-error [field]=\"wageCalculatorForm.get('days')\" [form]=\"wageCalculatorFormDirective\"\r\n [errDef]=\"{ totalHoursZero: 'total hours must be greater than 0', hoursPerWeekExceeded: 'total hours must not be greater than 168 for the week' }\">\r\n </app-error>\r\n </ion-col>\r\n </ion-row>\r\n </ion-col>\r\n <ion-col size=\"0.5\" style=\"padding-top: 35px;\">\r\n <b>= </b>\r\n </ion-col>\r\n <ion-col size=\"3.5\" style=\"padding-top: 35px;\">\r\n <b>{{ calculateTotalHours() }}</b>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col size=\"1.5\"></ion-col>\r\n <ion-col size=\"3\">\r\n <ion-row>\r\n <label>{{'wage.calculator.pay.rate'|translate}}</label>\r\n </ion-row>\r\n </ion-col>\r\n <ion-col size=\"1\" class=\"regular-view\"></ion-col>\r\n <ion-col size=\"4.5\" sizeXs=\"4\" class=\"mobile-view\"></ion-col>\r\n <ion-col size=\"3\">\r\n <ion-row>\r\n <label>{{'wage.calculator.earnings'|translate}}</label>\r\n </ion-row>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col size=\"0.5\"></ion-col>\r\n <ion-col size=\"1\" class=\"center-icon\">\r\n <fa-icon [icon]=\"['fas','xmark']\" class=\"action-icon\"></fa-icon>\r\n </ion-col>\r\n <ion-col size=\"3\">\r\n <p-inputNumber [formControl]=\"payRate\" mode=\"currency\" currency=\"USD\"\r\n class=\"custom-input-medium\" placeholder=\"$0.00\"></p-inputNumber>\r\n <label style=\"padding-left: 10px;\">{{'wage.calculator.per.hour'|translate}}</label>\r\n <app-error [field]=\"wageCalculatorForm.get('payRate')\" [form]=\"wageCalculatorFormDirective\"\r\n [errDef]=\"{required: 'required'}\"></app-error>\r\n </ion-col>\r\n <ion-col size=\"3.5\" class=\"mobile-view\"></ion-col>\r\n <ion-col size=\"1\" class=\"center-icon\">\r\n <fa-icon [icon]=\"['fas','equals']\" class=\"action-icon\"></fa-icon>\r\n </ion-col>\r\n <ion-col size=\"3\" style=\"padding-top: 15px;\"><label>{{ calculateEarnings() | currency: 'USD'\r\n }}</label></ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col size=\"1.5\"></ion-col>\r\n <ion-col size=\"3\">\r\n <ion-row>\r\n <ion-label>{{'wage.calculator.other.pay'|translate}}</ion-label>\r\n </ion-row>\r\n </ion-col>\r\n <ion-col size=\"1\" class=\"regular-view\"></ion-col>\r\n <ion-col size=\"3.5\" class=\"mobile-view\"></ion-col>\r\n <ion-col size=\"3\" sizeXs=\"4\">\r\n <label>{{'wage.calculator.gross.earnings'|translate}}</label>\r\n <app-overlay-info\r\n [overlayText]=\"'weeklies.v2.employment.rtw.info.popup.1000' | translate | trustHtml\"\r\n style=\"padding-left: 8px; padding-top:3px\" class=\"overlay-info\"></app-overlay-info>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row style=\"padding-bottom: 20px;\">\r\n <ion-col size=\"0.5\"></ion-col>\r\n <ion-col size=\"1\" class=\"center-icon\">\r\n <fa-icon [icon]=\"['fal','plus']\" class=\"action-icon\"></fa-icon>\r\n </ion-col>\r\n <ion-col size=\"3\">\r\n <p-inputNumber [formControl]=\"otherPay\" mode=\"currency\" currency=\"USD\"\r\n class=\"custom-input-medium\"></p-inputNumber>\r\n <app-error [field]=\"wageCalculatorForm.get('otherPay')\" [form]=\"wageCalculatorFormDirective\"\r\n [errDef]=\"{required: 'required'}\"></app-error>\r\n </ion-col>\r\n <ion-col size=\"3\" class=\"mobile-view\"></ion-col>\r\n <ion-col size=\"1\" class=\"center-icon\">\r\n <fa-icon [icon]=\"['fas','equals']\" class=\"action-icon\"></fa-icon>\r\n </ion-col>\r\n <ion-col size=\"3\" style=\"padding-top: 15px;\">{{ calculateGrossEarnings() | currency: 'USD'\r\n }}</ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </section>\r\n\r\n <section *ngIf=\"isPaidHourly.value === 'N'\">\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col size=\"3.5\">\r\n <label>{{'wage.calculator.hours.worked'|translate}}</label>\r\n <p-inputNumber [formControl]=\"hoursWorked\" placeholder=\"0.00\" [min]=\"0.00\" mode=\"decimal\"\r\n [minFractionDigits]=\"1\" [maxFractionDigits]=\"2\"></p-inputNumber>\r\n <app-error [field]=\"wageCalculatorForm.get('hoursWorked')\" [form]=\"wageCalculatorFormDirective\"\r\n [errDef]=\"{required: 'required', hoursPerWeekExceeded: 'total hours must not be greater than 168 for the week'}\"></app-error>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col size=\"3.5\">\r\n <label>{{'wage.calculator.earnings'|translate}}</label>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col size=\"3.5\">\r\n <label style=\"position: absolute;\">{{'wage.calculator.other.pay'|translate}}</label>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col size=\"3\">\r\n <label class=\"gross-mobile-view\">{{'wage.calculator.gross.earnings'|translate}}</label>\r\n <app-overlay-info\r\n [overlayText]=\"'weeklies.v2.employment.rtw.info.popup.1000' | translate | trustHtml\"\r\n style=\"padding-left: 8px; padding-top:3px\" class=\"overlay-info\"></app-overlay-info>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col size=\"3.5\">\r\n <p-inputNumber [formControl]=\"earnings\" mode=\"currency\" currency=\"USD\" locale=\"en-US\"\r\n [min]=\"0.00\" placeholder=\"$0.00\"></p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='earnings' [form]=\"wageCalculatorFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </ion-col>\r\n <ion-col size=\"1\" class=\"center-icon\">\r\n <fa-icon [icon]=\"['fal','plus']\" class=\"action-icon\"></fa-icon>\r\n </ion-col>\r\n <ion-col size=\"3.5\">\r\n <p-inputNumber [formControl]=\"otherPay\" mode=\"currency\" currency=\"USD\" locale=\"en-US\"\r\n [min]=\"0.00\" placeholder=\"$0.00\"></p-inputNumber>\r\n </ion-col>\r\n <ion-col size=\"1\" class=\"center-icon\">\r\n <fa-icon [icon]=\"['fas','equals']\" class=\"action-icon\"></fa-icon>\r\n </ion-col>\r\n <ion-col size=\"3\">\r\n <label style=\"display: block; padding-top: 8px;\">{{ calculateGrossEarnings() | currency: 'USD'\r\n }}</label>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </section>\r\n\r\n\r\n </form>\r\n <ng-template pTemplate=\"footer\">\r\n <ion-button shape=\"round\" fill=\"outline\" type=\"reset\"\r\n (click)=\"onCancel()\">{{'wage.calculator.cancel'|translate}}</ion-button>\r\n <ion-button shape=\"round\" type=\"submit\" style=\"padding-left: 40px;\"\r\n (click)=\"onSave()\">{{'wage.calculator.save'|translate}}</ion-button>\r\n </ng-template>\r\n</p-dialog>", styles: [".day-header{text-align:center;font-weight:700}.mobile-view{display:none}.custom-input-small ::ng-deep .p-inputnumber{width:58px!important}.custom-input-small ::ng-deep .p-inputnumber input{width:58px!important}.custom-input-small ::ng-deep .p-inputnumber span{max-width:58px!important;display:inline-block;overflow:hidden;text-overflow:ellipsis}.custom-input-medium ::ng-deep .p-inputnumber{width:100px!important}.custom-input-medium ::ng-deep .p-inputnumber input{width:100px!important}.custom-input-medium ::ng-deep .p-inputnumber span{max-width:100px!important;display:inline-block;overflow:hidden;text-overflow:ellipsis}@media (min-width: 320px) and (max-width: 460px){::ng-deep .p-inputtext{max-width:75px}.overlay-info{padding-left:57px!important;padding-top:3px}.gross-mobile-view{position:fixed;padding-left:10px}.mobile-view{display:block}.regular-view{display:none}}@media (min-width: 520px) and (max-width: 900px){::ng-deep .p-inputtext{max-width:125px}}\n"] }]
511
- }], () => [{ type: i1.UntypedFormBuilder }, { type: i2.UtilService }], { dynamicParam: [{
512
- type: Input
513
- }], showCalculatorPopup: [{
514
- type: Input
515
- }], wageCalculatorSavedData: [{
516
- type: Input
517
- }], grossEarningsChange: [{
518
- type: Output
519
- }], totalHoursChange: [{
520
- type: Output
521
- }], saveClicked: [{
522
- type: Output
523
- }], cancelClicked: [{
524
- type: Output
525
- }] }); })();
526
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WageCalculatorComponent, { className: "WageCalculatorComponent", filePath: "lib\\components\\wage-calculator\\wage-calculator.component.ts", lineNumber: 14 }); })();
527
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FnZS1jYWxjdWxhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy93YWdlLWNhbGN1bGF0b3Ivd2FnZS1jYWxjdWxhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy93YWdlLWNhbGN1bGF0b3Ivd2FnZS1jYWxjdWxhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFvSixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc5TCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7SUN3QnhDLGtDQUFxRixjQUFBLFlBQUE7SUFFdEUsWUFBNkI7SUFBQSxpQkFBUSxFQUFBO0lBRWhELCtCQUFTO0lBQ0wsb0NBRWdCO0lBQ3BCLGlCQUFVO0lBQ1YsK0JBQVMsZ0JBQUE7SUFDTSxZQUE0QjtJQUFBLGlCQUFZLEVBQUEsRUFBQTs7Ozs7SUFWUSxrQ0FBaUI7SUFFckUsZUFBNkI7SUFBN0Isb0ZBQTZCO0lBR3JCLGVBQWdDO0lBQWhDLGlEQUFnQyxVQUFBLFdBQUEsd0JBQUEsd0JBQUE7SUFLcEMsZUFBNEI7SUFBNUIsbUZBQTRCOzs7Ozs7Ozs7SUF4Qm5FLCtCQUE0QyxlQUFBLGNBQUEsa0JBQUEsWUFBQTtJQUlyQixZQUE0Qzs7SUFBQSxpQkFBUSxFQUFBO0lBRS9ELDhCQUE4QjtJQUM5QixtQ0FBb0IsWUFBQSxTQUFB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QUFBLGlCQUFRO1lBQzdFLG9DQUN5QyxtQkFBQTtZQUk3QyxpQkFBTSxFQUFBO1lBR1Ysb0ZBc0hVLHVFQUFBO1lBeURkLGlCQUFPO1lBQ1AsMEZBS2M7WUFDbEIsaUJBQVc7OztZQXBNNkMsMENBQTBCO1lBRHhFLGlEQUErQiw0Q0FBQTtZQUcvQixlQUFnQztZQUFoQyxrREFBZ0M7WUFHQSxlQUEyQztZQUEzQywwRUFBMkM7WUFDckQsZUFBdUI7WUFBdkIseUNBQXVCLGlDQUFBO1lBRTVCLGVBQW9CO1lBQXBCLHlCQUFvQjtZQUFDLHdDQUFzQixhQUFBLHVDQUFBO1lBTXBELGVBQWdDO1lBQWhDLHFEQUFnQztZQXdIaEMsZUFBZ0M7WUFBaEMscURBQWdDOzs7aUZEMUhyQyx1QkFBdUI7Y0FMbkMsU0FBUzsyQkFDRSxxQkFBcUI7NkVBS3RCLFlBQVk7a0JBQXBCLEtBQUs7WUFDRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFDRyx1QkFBdUI7a0JBQS9CLEtBQUs7WUFDSSxtQkFBbUI7a0JBQTVCLE1BQU07WUFDRyxnQkFBZ0I7a0JBQXpCLE1BQU07WUFDRyxXQUFXO2tCQUFwQixNQUFNO1lBQ0csYUFBYTtrQkFBdEIsTUFBTTs7a0ZBUEksdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIE5nRm9ybSwgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBXYWdlQ2FsY3VsYXRvck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL1dhZ2VDYWxjdWxhdG9yTW9kZWwnO1xyXG5pbXBvcnQgeyBDb21ib09wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0NvbWJvTW9kZWwnO1xyXG5pbXBvcnQgeyBCYXNlUGFnZSB9IGZyb20gJy4uLy4uL3BhZ2VzL0Jhc2VQYWdlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXdhZ2UtY2FsY3VsYXRvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3dhZ2UtY2FsY3VsYXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vd2FnZS1jYWxjdWxhdG9yLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgV2FnZUNhbGN1bGF0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGR5bmFtaWNQYXJhbTogYW55O1xyXG4gIEBJbnB1dCgpIHNob3dDYWxjdWxhdG9yUG9wdXA6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgd2FnZUNhbGN1bGF0b3JTYXZlZERhdGE6IFdhZ2VDYWxjdWxhdG9yTW9kZWw7XHJcbiAgQE91dHB1dCgpIGdyb3NzRWFybmluZ3NDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICBAT3V0cHV0KCkgdG90YWxIb3Vyc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIEBPdXRwdXQoKSBzYXZlQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8V2FnZUNhbGN1bGF0b3JNb2RlbD4oKTtcclxuICBAT3V0cHV0KCkgY2FuY2VsQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgcHVibGljIHdhZ2VDYWxjdWxhdG9yRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBwdWJsaWMgeWVzTm9PcHRpb24gPSBDb21ib09wdGlvbi5ZRVNfTk87XHJcbiAgcHVibGljIHNhdERhdGU6IERhdGU7XHJcbiAgcHVibGljIHN1bkRhdGU6IERhdGU7XHJcbiAgcHVibGljIHN0YXJ0RGF0ZTogRGF0ZTtcclxuICBwdWJsaWMgaXNGaXJzdFRpbWVFbnRyeTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLCBwdWJsaWMgdXRpbDogVXRpbFNlcnZpY2UpIHtcclxuICAgIHRoaXMud2FnZUNhbGN1bGF0b3JGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICdpc1BhaWRIb3VybHknOiBbbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICdob3Vyc1dvcmtlZCc6IFtudWxsXSxcclxuICAgICAgJ3BheVJhdGUnOiBbbnVsbF0sXHJcbiAgICAgICdvdGhlclBheSc6IFswLjBdLFxyXG4gICAgICAnZWFybmluZ3MnOiBbbnVsbF0sXHJcbiAgICAgICdncm9zc0Vhcm5pbmdzJzogWzAuMF0sXHJcbiAgICAgICdkYXlzJzogdGhpcy5mb3JtQnVpbGRlci5hcnJheShbXSlcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgY29uc3QgZGF5c0FycmF5ID0gdGhpcy5kYXlzRm9ybUFycmF5O1xyXG4gICAgaWYgKHRoaXMud2FnZUNhbGN1bGF0b3JTYXZlZERhdGEgJiYgdGhpcy53YWdlQ2FsY3VsYXRvclNhdmVkRGF0YS5kYXlzKSB7XHJcbiAgICAgIHRoaXMuaXNGaXJzdFRpbWVFbnRyeSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLndhZ2VDYWxjdWxhdG9yRm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgICBwYXlSYXRlOiB0aGlzLndhZ2VDYWxjdWxhdG9yU2F2ZWREYXRhLnBheVJhdGUsXHJcbiAgICAgICAgb3RoZXJQYXk6IHRoaXMud2FnZUNhbGN1bGF0b3JTYXZlZERhdGEub3RoZXJQYXksXHJcbiAgICAgICAgZWFybmluZ3M6IHRoaXMud2FnZUNhbGN1bGF0b3JTYXZlZERhdGEuZWFybmluZ3MgfHwgMC4wMCxcclxuICAgICAgICBncm9zc0Vhcm5pbmdzOiB0aGlzLndhZ2VDYWxjdWxhdG9yU2F2ZWREYXRhLmdyb3NzRWFybmluZ3MgfHwgMC4wMCxcclxuICAgICAgICBob3Vyc1dvcmtlZDogdGhpcy53YWdlQ2FsY3VsYXRvclNhdmVkRGF0YS5ob3Vyc1dvcmtlZCxcclxuICAgICAgICBpc1BhaWRIb3VybHk6IHRoaXMud2FnZUNhbGN1bGF0b3JTYXZlZERhdGEuaXNQYWlkSG91cmx5XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgZm9yIChjb25zdCBkIG9mIHRoaXMud2FnZUNhbGN1bGF0b3JTYXZlZERhdGEuZGF5cykge1xyXG4gICAgICAgIGRheXNBcnJheS5wdXNoKHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICAgICAgbGFiZWw6IGQubGFiZWwsXHJcbiAgICAgICAgICBkYXRlOiBkLmRhdGUsXHJcbiAgICAgICAgICBob3VyczogW2QuaG91cnNdXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlzRmlyc3RUaW1lRW50cnkgPSB0cnVlO1xyXG4gICAgICB0aGlzLnNhdERhdGUgPSB0aGlzLnV0aWwuZ2V0RW50ZXJlZERhdGVGcm9tU3RyaW5nKHRoaXMuZHluYW1pY1BhcmFtLnNhdHVyZGF5X2RhdGUpO1xyXG4gICAgICB0aGlzLnN1bkRhdGUgPSB0aGlzLnV0aWwuZ2V0RW50ZXJlZERhdGVGcm9tU3RyaW5nKHRoaXMuZHluYW1pY1BhcmFtLnN1bmRheV9kYXRlKTtcclxuICAgICAgdGhpcy5zdGFydERhdGUgPSBuZXcgRGF0ZSh0aGlzLnN1bkRhdGUpO1xyXG5cclxuICAgICAgd2hpbGUgKHRoaXMuc3RhcnREYXRlIDw9IHRoaXMuc2F0RGF0ZSkge1xyXG4gICAgICAgIGRheXNBcnJheS5wdXNoKHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICAgICAgZGF0ZTogdGhpcy5mb3JtYXREYXRlKHRoaXMuc3RhcnREYXRlKSxcclxuICAgICAgICAgIGxhYmVsOiB0aGlzLnN0YXJ0RGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoJ2VuLVVTJywgeyB3ZWVrZGF5OiAnc2hvcnQnIH0pLFxyXG4gICAgICAgICAgaG91cnM6IFtudWxsXVxyXG4gICAgICAgIH0pKTtcclxuICAgICAgICB0aGlzLnN0YXJ0RGF0ZS5zZXREYXRlKHRoaXMuc3RhcnREYXRlLmdldERhdGUoKSArIDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnVwZGF0ZUdyb3NzRWFybmluZ3MoKTtcclxuICAgIHRoaXMuaG91cnNXb3JrZWQudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xyXG4gICAgICBpZih2YWwpe1xyXG4gICAgICAgIGlmKHZhbCA+IDE2OCl7XHJcbiAgICAgICAgICB0aGlzLndhZ2VDYWxjdWxhdG9yRm9ybS5jb250cm9sc1snaG91cnNXb3JrZWQnXS5zZXRFcnJvcnMoeyBob3Vyc1BlcldlZWtFeGNlZWRlZDogdHJ1ZSB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICB0aGlzLmlzUGFpZEhvdXJseS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XHJcbiAgICAgIGlmICh2YWwpIHtcclxuICAgICAgICBpZiAodmFsID09PSAnTicpIHtcclxuICAgICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmhvdXJzV29ya2VkKTtcclxuICAgICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmVhcm5pbmdzKTtcclxuICAgICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5wYXlSYXRlKTtcclxuICAgICAgICAgIHRoaXMucGF5UmF0ZS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgICAgIHRoaXMub3RoZXJQYXkuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgICAgICB0aGlzLmRheXNGb3JtQXJyYXkuY29udHJvbHMuZm9yRWFjaCgoZ3JvdXA6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xyXG4gICAgICAgICAgICBncm91cC5nZXQoJ2hvdXJzJyk/LnNldFZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh2YWwgPT09ICdZJykge1xyXG4gICAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMucGF5UmF0ZSk7XHJcbiAgICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuaG91cnNXb3JrZWQpO1xyXG4gICAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVhcm5pbmdzKTtcclxuICAgICAgICAgIHRoaXMuaG91cnNXb3JrZWQuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgICAgICB0aGlzLmVhcm5pbmdzLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgdGhpcy5vdGhlclBheS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzUGFpZEhvdXJseSgpIHtcclxuICAgIHJldHVybiB0aGlzLndhZ2VDYWxjdWxhdG9yRm9ybS5jb250cm9sc1snaXNQYWlkSG91cmx5J107XHJcbiAgfVxyXG5cclxuICBnZXQgaG91cnNXb3JrZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy53YWdlQ2FsY3VsYXRvckZvcm0uY29udHJvbHNbJ2hvdXJzV29ya2VkJ107XHJcbiAgfVxyXG5cclxuICBnZXQgcGF5UmF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLndhZ2VDYWxjdWxhdG9yRm9ybS5jb250cm9sc1sncGF5UmF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG90aGVyUGF5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMud2FnZUNhbGN1bGF0b3JGb3JtLmNvbnRyb2xzWydvdGhlclBheSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVhcm5pbmdzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMud2FnZUNhbGN1bGF0b3JGb3JtLmNvbnRyb2xzWydlYXJuaW5ncyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRheXNGb3JtQXJyYXkoKTogRm9ybUFycmF5IHtcclxuICAgIHJldHVybiB0aGlzLndhZ2VDYWxjdWxhdG9yRm9ybS5nZXQoJ2RheXMnKSBhcyBGb3JtQXJyYXk7XHJcbiAgfVxyXG5cclxuICBmb3JtYXREYXRlKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgbW9udGggPSAoZGF0ZS5nZXRNb250aCgpICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgY29uc3QgZGF5ID0gZGF0ZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgcmV0dXJuIGAke21vbnRofS8ke2RheX1gO1xyXG4gIH1cclxuXHJcbiAgY2FsY3VsYXRlVG90YWxIb3VycygpOiBudW1iZXIge1xyXG4gICAgY29uc3QgdG90YWwgPSB0aGlzLmRheXNGb3JtQXJyYXkuY29udHJvbHMucmVkdWNlKChzdW0sIGN0cmwpID0+IHtcclxuICAgICAgY29uc3QgaG91cnMgPSBjdHJsLmdldCgnaG91cnMnKT8udmFsdWUgfHwgMDtcclxuICAgICAgcmV0dXJuIHN1bSArIGhvdXJzO1xyXG4gICAgfSwgMCk7XHJcbiAgICB0aGlzLnRvdGFsSG91cnNDaGFuZ2UuZW1pdCh0b3RhbCk7XHJcbiAgICByZXR1cm4gdG90YWw7XHJcbiAgfVxyXG5cclxuICBjYWxjdWxhdGVFYXJuaW5ncygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY2FsY3VsYXRlVG90YWxIb3VycygpICogKHRoaXMucGF5UmF0ZT8udmFsdWUgfHwgMCk7XHJcbiAgfVxyXG5cclxuICBjYWxjdWxhdGVHcm9zc0Vhcm5pbmdzKCk6IG51bWJlciB7XHJcbiAgICBjb25zdCBlYXJuaW5ncyA9IHRoaXMuaXNQYWlkSG91cmx5Py52YWx1ZSA9PT0gJ1knID8gdGhpcy5jYWxjdWxhdGVFYXJuaW5ncygpIDogdGhpcy5lYXJuaW5ncz8udmFsdWUgfHwgMDtcclxuICAgIGNvbnN0IHRvdGFsID0gZWFybmluZ3MgKyAodGhpcy5vdGhlclBheT8udmFsdWUgfHwgMCk7XHJcbiAgICB0aGlzLndhZ2VDYWxjdWxhdG9yRm9ybS5wYXRjaFZhbHVlKHsgZ3Jvc3NFYXJuaW5nczogdG90YWwgfSk7XHJcbiAgICByZXR1cm4gdG90YWw7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVUb3RhbEhvdXJzKCkge1xyXG4gICAgaWYgKHRoaXMuaXNQYWlkSG91cmx5LnZhbHVlID09PSAnTicpIHtcclxuICAgICAgY29uc3QgdG90YWwgPSB0aGlzLmhvdXJzV29ya2VkLnZhbHVlO1xyXG4gICAgICB0aGlzLnRvdGFsSG91cnNDaGFuZ2UuZW1pdCh0b3RhbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVHcm9zc0Vhcm5pbmdzKCkge1xyXG4gICAgdGhpcy5ncm9zc0Vhcm5pbmdzQ2hhbmdlLmVtaXQodGhpcy5jYWxjdWxhdGVHcm9zc0Vhcm5pbmdzKCkpO1xyXG4gIH1cclxuXHJcbiAgb25TYXZlKCkge1xyXG4gICAgdGhpcy51cGRhdGVHcm9zc0Vhcm5pbmdzKCk7XHJcbiAgICBjb25zdCBtb2RlbCA9IG5ldyBXYWdlQ2FsY3VsYXRvck1vZGVsKCk7XHJcbiAgICBtb2RlbC5wYXlSYXRlID0gdGhpcy5wYXlSYXRlPy52YWx1ZTtcclxuICAgIG1vZGVsLm90aGVyUGF5ID0gdGhpcy5vdGhlclBheT8udmFsdWU7XHJcbiAgICBtb2RlbC5lYXJuaW5ncyA9IHRoaXMuZWFybmluZ3M/LnZhbHVlO1xyXG4gICAgbW9kZWwuZ3Jvc3NFYXJuaW5ncyA9IHRoaXMud2FnZUNhbGN1bGF0b3JGb3JtLmdldCgnZ3Jvc3NFYXJuaW5ncycpPy52YWx1ZTtcclxuICAgIG1vZGVsLnRvdGFsSG91cnMgPSB0aGlzLmNhbGN1bGF0ZVRvdGFsSG91cnMoKTtcclxuICAgIG1vZGVsLmhvdXJzV29ya2VkID0gdGhpcy5ob3Vyc1dvcmtlZD8udmFsdWU7XHJcbiAgICBtb2RlbC5pc1BhaWRIb3VybHkgPSB0aGlzLmlzUGFpZEhvdXJseT8udmFsdWU7XHJcbiAgICBtb2RlbC5kYXlzID0gdGhpcy5kYXlzRm9ybUFycmF5LmNvbnRyb2xzLm1hcChjdHJsID0+IGN0cmwudmFsdWUpO1xyXG4gICAgdGhpcy51cGRhdGVUb3RhbEhvdXJzKCk7XHJcbiAgICBpZih0aGlzLmlzUGFpZEhvdXJseS52YWx1ZSA9PT0gJ1knKSB7XHJcbiAgICAgIGlmKG1vZGVsLnRvdGFsSG91cnMgPT09IDApe1xyXG4gICAgICAgIHRoaXMud2FnZUNhbGN1bGF0b3JGb3JtLmNvbnRyb2xzWydkYXlzJ10uc2V0RXJyb3JzKHsgdG90YWxIb3Vyc1plcm86IHRydWUgfSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYobW9kZWwudG90YWxIb3VycyA+IDE2OCl7XHJcbiAgICAgICAgdGhpcy53YWdlQ2FsY3VsYXRvckZvcm0uY29udHJvbHNbJ2RheXMnXS5zZXRFcnJvcnMoeyBob3Vyc1BlcldlZWtFeGNlZWRlZDogdHJ1ZSB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMud2FnZUNhbGN1bGF0b3JGb3JtLnZhbGlkKSB7XHJcbiAgICAgIHRoaXMuc2hvd0NhbGN1bGF0b3JQb3B1cCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnNhdmVDbGlja2VkLmVtaXQobW9kZWwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy53YWdlQ2FsY3VsYXRvckZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DYW5jZWwoKSB7XHJcbiAgICBpZiAodGhpcy5pc0ZpcnN0VGltZUVudHJ5KSB7XHJcbiAgICAgIC8vIENhc2UgMTogTmV3IGVudHJ5IOKAlCByZXNldCBldmVyeXRoaW5nXHJcbiAgICAgIHRoaXMuZGF5c0Zvcm1BcnJheS5jb250cm9scy5mb3JFYWNoKChncm91cDogQWJzdHJhY3RDb250cm9sKSA9PiB7XHJcbiAgICAgICAgZ3JvdXAuZ2V0KCdob3VycycpPy5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMud2FnZUNhbGN1bGF0b3JGb3JtLnBhdGNoVmFsdWUoeyBncm9zc0Vhcm5pbmdzOiAwIH0pO1xyXG5cclxuICAgICAgdGhpcy50b3RhbEhvdXJzQ2hhbmdlLmVtaXQoMCk7XHJcbiAgICAgIHRoaXMuZ3Jvc3NFYXJuaW5nc0NoYW5nZS5lbWl0KDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gQ2FzZSAyOiBFZGl0aW5nIGV4aXN0aW5nIGRhdGEg4oCUIHJlc3RvcmUgb3JpZ2luYWwgdmFsdWVzXHJcbiAgICAgIHRoaXMuZGF5c0Zvcm1BcnJheS5jbGVhcigpO1xyXG5cclxuICAgICAgZm9yIChjb25zdCBkIG9mIHRoaXMud2FnZUNhbGN1bGF0b3JTYXZlZERhdGEuZGF5cykge1xyXG4gICAgICAgIHRoaXMuZGF5c0Zvcm1BcnJheS5wdXNoKHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICAgICAgbGFiZWw6IGQubGFiZWwsXHJcbiAgICAgICAgICBkYXRlOiBkLmRhdGUsXHJcbiAgICAgICAgICBob3VyczogW2QuaG91cnNdXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLndhZ2VDYWxjdWxhdG9yRm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgICBwYXlSYXRlOiB0aGlzLndhZ2VDYWxjdWxhdG9yU2F2ZWREYXRhLnBheVJhdGUsXHJcbiAgICAgICAgb3RoZXJQYXk6IHRoaXMud2FnZUNhbGN1bGF0b3JTYXZlZERhdGEub3RoZXJQYXksXHJcbiAgICAgICAgZWFybmluZ3M6IHRoaXMud2FnZUNhbGN1bGF0b3JTYXZlZERhdGEuZWFybmluZ3MgfHwgMC4wMCxcclxuICAgICAgICBncm9zc0Vhcm5pbmdzOiB0aGlzLndhZ2VDYWxjdWxhdG9yU2F2ZWREYXRhLmdyb3NzRWFybmluZ3MgfHwgMC4wMCxcclxuICAgICAgICBob3Vyc1dvcmtlZDogdGhpcy53YWdlQ2FsY3VsYXRvclNhdmVkRGF0YS5ob3Vyc1dvcmtlZCxcclxuICAgICAgICBpc1BhaWRIb3VybHk6IHRoaXMud2FnZUNhbGN1bGF0b3JTYXZlZERhdGEuaXNQYWlkSG91cmx5XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgLy8gQ29ycmVjdGx5IGNhbGN1bGF0ZSB0b3RhbCBob3VycyBmcm9tIHNhdmVkIGRhdGFcclxuICAgICAgbGV0IHRvdGFsSG91cnMgPSAwO1xyXG4gICAgICBpZiAodGhpcy53YWdlQ2FsY3VsYXRvclNhdmVkRGF0YS5pc1BhaWRIb3VybHkgPT09ICdZJykge1xyXG4gICAgICAgIHRvdGFsSG91cnMgPSB0aGlzLndhZ2VDYWxjdWxhdG9yU2F2ZWREYXRhLmRheXMucmVkdWNlKChzdW0sIGQpID0+IHtcclxuICAgICAgICAgIHJldHVybiBzdW0gKyAoZC5ob3VycyB8fCAwKTtcclxuICAgICAgICB9LCAwKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0b3RhbEhvdXJzID0gdGhpcy53YWdlQ2FsY3VsYXRvclNhdmVkRGF0YS5ob3Vyc1dvcmtlZCB8fCAwO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnRvdGFsSG91cnNDaGFuZ2UuZW1pdCh0b3RhbEhvdXJzKTtcclxuICAgICAgdGhpcy5ncm9zc0Vhcm5pbmdzQ2hhbmdlLmVtaXQodGhpcy53YWdlQ2FsY3VsYXRvclNhdmVkRGF0YS5ncm9zc0Vhcm5pbmdzIHx8IDApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2hvd0NhbGN1bGF0b3JQb3B1cCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYW5jZWxDbGlja2VkLmVtaXQoKTtcclxuICB9XHJcbn1cclxuIiwiPHAtZGlhbG9nIFt2aXNpYmxlXT1cInNob3dDYWxjdWxhdG9yUG9wdXBcIiBtb2RhbD1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgW2JyZWFrcG9pbnRzXT1cInsnOTYwcHgnOiAnOTB2dycsICc2NDBweCc6ICcxMDB2dyd9XCIgW3N0eWxlXT1cInt3aWR0aDogJzgwMHB4J31cIiBwb3NpdGlvbj1cInRvcFwiXHJcbiAgICBjbGFzcz1cImhlbHAtcGFnZS1zbGlkZVwiPlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJ3YWdlQ2FsY3VsYXRvckZvcm1cIiAjd2FnZUNhbGN1bGF0b3JGb3JtRGlyZWN0aXZlPVwibmdGb3JtXCI+XHJcbiAgICAgICAgPGlvbi1yb3cgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpc1BhaWRIb3VybHlcIj57eyd3YWdlLmNhbGN1bGF0b3IucGFpZC5ob3VybHknfHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBbb3B0aW9uc109XCJ5ZXNOb09wdGlvblwiIFtmb3JtQ29udHJvbF09XCJpc1BhaWRIb3VybHlcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2lzUGFpZEhvdXJseScgW2Zvcm1dPVwid2FnZUNhbGN1bGF0b3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2lvbi1yb3c+XHJcblxyXG4gICAgICAgIDxzZWN0aW9uICpuZ0lmPVwiaXNQYWlkSG91cmx5LnZhbHVlID09PSAnWSdcIj5cclxuICAgICAgICAgICAgPGlvbi1ncmlkPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7J3dhZ2UuY2FsY3VsYXRvci5ob3Vycy53b3JrZWQnfHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjQuNVwiPjwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMi41XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD48Yj57eyd3YWdlLmNhbGN1bGF0b3IudG90YWwnfHRyYW5zbGF0ZX19PC9iPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJkYXlzLXJvd1wiIHNpemU9XCI4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgKm5nRm9yPVwibGV0IGRheSBvZiBkYXlzRm9ybUFycmF5LmNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCIgW2Zvcm1Hcm91cF09XCJkYXlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7IGRheS5nZXQoJ2xhYmVsJyk/LnZhbHVlIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIFtmb3JtQ29udHJvbF09XCJkYXkuZ2V0KCdob3VycycpXCIgbW9kZT1cImRlY2ltYWxcIiBwbGFjZWhvbGRlcj1cIjAuMDBcIiBbbWluXT1cIjAuMDBcIiBbbWF4XT1cIjI0LjAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3VzdG9tLWlucHV0LXNtYWxsXCIgW21pbkZyYWN0aW9uRGlnaXRzXT1cIjFcIiBbbWF4RnJhY3Rpb25EaWdpdHNdPVwiMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWxhYmVsPnt7IGRheS5nZXQoJ2RhdGUnKT8udmFsdWUgfX08L2lvbi1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmaWVsZF09XCJ3YWdlQ2FsY3VsYXRvckZvcm0uZ2V0KCdkYXlzJylcIiBbZm9ybV09XCJ3YWdlQ2FsY3VsYXRvckZvcm1EaXJlY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXJyRGVmXT1cInsgdG90YWxIb3Vyc1plcm86ICd0b3RhbCBob3VycyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwJywgaG91cnNQZXJXZWVrRXhjZWVkZWQ6ICd0b3RhbCBob3VycyBtdXN0IG5vdCBiZSBncmVhdGVyIHRoYW4gMTY4IGZvciB0aGUgd2VlaycgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIwLjVcIiBzdHlsZT1cInBhZGRpbmctdG9wOiAzNXB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Yj49IDwvYj5cclxuICAgICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjMuNVwiIHN0eWxlPVwicGFkZGluZy10b3A6IDM1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxiPnt7IGNhbGN1bGF0ZVRvdGFsSG91cnMoKSB9fTwvYj5cclxuICAgICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDwvaW9uLWdyaWQ+XHJcblxyXG4gICAgICAgICAgICA8aW9uLWdyaWQ+XHJcbiAgICAgICAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMS41XCI+PC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7J3dhZ2UuY2FsY3VsYXRvci5wYXkucmF0ZSd8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxXCIgY2xhc3M9XCJyZWd1bGFyLXZpZXdcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjQuNVwiIHNpemVYcz1cIjRcIiBjbGFzcz1cIm1vYmlsZS12aWV3XCI+PC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7J3dhZ2UuY2FsY3VsYXRvci5lYXJuaW5ncyd8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjAuNVwiPjwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMVwiIGNsYXNzPVwiY2VudGVyLWljb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYXMnLCd4bWFyayddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgW2Zvcm1Db250cm9sXT1cInBheVJhdGVcIiBtb2RlPVwiY3VycmVuY3lcIiBjdXJyZW5jeT1cIlVTRFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImN1c3RvbS1pbnB1dC1tZWRpdW1cIiBwbGFjZWhvbGRlcj1cIiQwLjAwXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDEwcHg7XCI+e3snd2FnZS5jYWxjdWxhdG9yLnBlci5ob3VyJ3x0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2ZpZWxkXT1cIndhZ2VDYWxjdWxhdG9yRm9ybS5nZXQoJ3BheVJhdGUnKVwiIFtmb3JtXT1cIndhZ2VDYWxjdWxhdG9yRm9ybURpcmVjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXJyRGVmXT1cIntyZXF1aXJlZDogJ3JlcXVpcmVkJ31cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjMuNVwiIGNsYXNzPVwibW9iaWxlLXZpZXdcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIiBjbGFzcz1cImNlbnRlci1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFzJywnZXF1YWxzJ11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiM1wiIHN0eWxlPVwicGFkZGluZy10b3A6IDE1cHg7XCI+PGxhYmVsPnt7IGNhbGN1bGF0ZUVhcm5pbmdzKCkgfCBjdXJyZW5jeTogJ1VTRCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9sYWJlbD48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDwvaW9uLWdyaWQ+XHJcblxyXG4gICAgICAgICAgICA8aW9uLWdyaWQ+XHJcbiAgICAgICAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMS41XCI+PC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1sYWJlbD57eyd3YWdlLmNhbGN1bGF0b3Iub3RoZXIucGF5J3x0cmFuc2xhdGV9fTwvaW9uLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxXCIgY2xhc3M9XCJyZWd1bGFyLXZpZXdcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjMuNVwiIGNsYXNzPVwibW9iaWxlLXZpZXdcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjNcIiBzaXplWHM9XCI0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eyd3YWdlLmNhbGN1bGF0b3IuZ3Jvc3MuZWFybmluZ3MnfHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1vdmVybGF5LWluZm9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvdmVybGF5VGV4dF09XCInd2Vla2xpZXMudjIuZW1wbG95bWVudC5ydHcuaW5mby5wb3B1cC4xMDAwJyB8IHRyYW5zbGF0ZSB8IHRydXN0SHRtbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIiBjbGFzcz1cIm92ZXJsYXktaW5mb1wiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICA8aW9uLXJvdyBzdHlsZT1cInBhZGRpbmctYm90dG9tOiAyMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIwLjVcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIiBjbGFzcz1cImNlbnRlci1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywncGx1cyddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgW2Zvcm1Db250cm9sXT1cIm90aGVyUGF5XCIgbW9kZT1cImN1cnJlbmN5XCIgY3VycmVuY3k9XCJVU0RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjdXN0b20taW5wdXQtbWVkaXVtXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmaWVsZF09XCJ3YWdlQ2FsY3VsYXRvckZvcm0uZ2V0KCdvdGhlclBheScpXCIgW2Zvcm1dPVwid2FnZUNhbGN1bGF0b3JGb3JtRGlyZWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJEZWZdPVwie3JlcXVpcmVkOiAncmVxdWlyZWQnfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiM1wiIGNsYXNzPVwibW9iaWxlLXZpZXdcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIiBjbGFzcz1cImNlbnRlci1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFzJywnZXF1YWxzJ11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiM1wiIHN0eWxlPVwicGFkZGluZy10b3A6IDE1cHg7XCI+e3sgY2FsY3VsYXRlR3Jvc3NFYXJuaW5ncygpIHwgY3VycmVuY3k6ICdVU0QnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8L2lvbi1ncmlkPlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgPHNlY3Rpb24gKm5nSWY9XCJpc1BhaWRIb3VybHkudmFsdWUgPT09ICdOJ1wiPlxyXG4gICAgICAgICAgICA8aW9uLWdyaWQ+XHJcbiAgICAgICAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMy41XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eyd3YWdlLmNhbGN1bGF0b3IuaG91cnMud29ya2VkJ3x0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIFtmb3JtQ29udHJvbF09XCJob3Vyc1dvcmtlZFwiIHBsYWNlaG9sZGVyPVwiMC4wMFwiIFttaW5dPVwiMC4wMFwiIG1vZGU9XCJkZWNpbWFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5GcmFjdGlvbkRpZ2l0c109XCIxXCIgW21heEZyYWN0aW9uRGlnaXRzXT1cIjJcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2ZpZWxkXT1cIndhZ2VDYWxjdWxhdG9yRm9ybS5nZXQoJ2hvdXJzV29ya2VkJylcIiBbZm9ybV09XCJ3YWdlQ2FsY3VsYXRvckZvcm1EaXJlY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VyckRlZl09XCJ7cmVxdWlyZWQ6ICdyZXF1aXJlZCcsIGhvdXJzUGVyV2Vla0V4Y2VlZGVkOiAndG90YWwgaG91cnMgbXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuIDE2OCBmb3IgdGhlIHdlZWsnfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIzLjVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7J3dhZ2UuY2FsY3VsYXRvci5lYXJuaW5ncyd8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMVwiPjwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMy41XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTtcIj57eyd3YWdlLmNhbGN1bGF0b3Iub3RoZXIucGF5J3x0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxXCI+PC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdyb3NzLW1vYmlsZS12aWV3XCI+e3snd2FnZS5jYWxjdWxhdG9yLmdyb3NzLmVhcm5pbmdzJ3x0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3ZlcmxheVRleHRdPVwiJ3dlZWtsaWVzLnYyLmVtcGxveW1lbnQucnR3LmluZm8ucG9wdXAuMTAwMCcgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6M3B4XCIgY2xhc3M9XCJvdmVybGF5LWluZm9cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjMuNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciAgW2Zvcm1Db250cm9sXT1cImVhcm5pbmdzXCIgbW9kZT1cImN1cnJlbmN5XCIgY3VycmVuY3k9XCJVU0RcIiBsb2NhbGU9XCJlbi1VU1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cIjAuMDBcIiBwbGFjZWhvbGRlcj1cIiQwLjAwXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZWFybmluZ3MnIFtmb3JtXT1cIndhZ2VDYWxjdWxhdG9yRm9ybURpcmVjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxXCIgY2xhc3M9XCJjZW50ZXItaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsJ3BsdXMnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIzLjVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgW2Zvcm1Db250cm9sXT1cIm90aGVyUGF5XCIgbW9kZT1cImN1cnJlbmN5XCIgY3VycmVuY3k9XCJVU0RcIiBsb2NhbGU9XCJlbi1VU1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cIjAuMDBcIiBwbGFjZWhvbGRlcj1cIiQwLjAwXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMVwiIGNsYXNzPVwiY2VudGVyLWljb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYXMnLCdlcXVhbHMnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT1cImRpc3BsYXk6IGJsb2NrOyBwYWRkaW5nLXRvcDogOHB4O1wiPnt7IGNhbGN1bGF0ZUdyb3NzRWFybmluZ3MoKSB8IGN1cnJlbmN5OiAnVVNEJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPC9pb24tZ3JpZD5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcblxyXG5cclxuICAgIDwvZm9ybT5cclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmb290ZXJcIj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgZmlsbD1cIm91dGxpbmVcIiB0eXBlPVwicmVzZXRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25DYW5jZWwoKVwiPnt7J3dhZ2UuY2FsY3VsYXRvci5jYW5jZWwnfHRyYW5zbGF0ZX19PC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDQwcHg7XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2F2ZSgpXCI+e3snd2FnZS5jYWxjdWxhdG9yLnNhdmUnfHRyYW5zbGF0ZX19PC9pb24tYnV0dG9uPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9wLWRpYWxvZz4iXX0=