@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,560 +0,0 @@
1
- import { Component, EventEmitter, Output, ViewChildren, Input, ViewChild } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR, Validators } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/forms";
5
- import * as i2 from "@ionic/angular";
6
- import * as i3 from "@angular/common";
7
- import * as i4 from "primeng/api";
8
- import * as i5 from "primeng/tooltip";
9
- import * as i6 from "primeng/table";
10
- import * as i7 from "primeng/card";
11
- import * as i8 from "@fortawesome/angular-fontawesome";
12
- import * as i9 from "primeng/dropdown";
13
- import * as i10 from "../overlay-info/overlay-info.component";
14
- const _c0 = ["uploadFileFormDirective"];
15
- const _c1 = ["fileInput"];
16
- function ProofOfDocumentUploadComponent_form_0_section_2_div_2_Template(rf, ctx) { if (rf & 1) {
17
- i0.ɵɵelement(0, "div");
18
- } }
19
- function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_3_ng_template_0_div_5_Template(rf, ctx) { if (rf & 1) {
20
- i0.ɵɵelementStart(0, "div", 14);
21
- i0.ɵɵelement(1, "app-overlay-info", 15);
22
- i0.ɵɵelementEnd();
23
- } if (rf & 2) {
24
- const ctx_r12 = i0.ɵɵnextContext(5);
25
- i0.ɵɵadvance(1);
26
- i0.ɵɵproperty("overlayText", ctx_r12.iconInfo);
27
- } }
28
- function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_3_ng_template_0_Template(rf, ctx) { if (rf & 1) {
29
- i0.ɵɵelementStart(0, "tr")(1, "th");
30
- i0.ɵɵtext(2, "Document Name");
31
- i0.ɵɵelementEnd();
32
- i0.ɵɵelementStart(3, "th", 12);
33
- i0.ɵɵtext(4, " Document Type ");
34
- i0.ɵɵtemplate(5, ProofOfDocumentUploadComponent_form_0_section_2_ng_template_3_ng_template_0_div_5_Template, 2, 1, "div", 13);
35
- i0.ɵɵelementEnd();
36
- i0.ɵɵelement(6, "th");
37
- i0.ɵɵelementEnd();
38
- } if (rf & 2) {
39
- const ctx_r11 = i0.ɵɵnextContext(4);
40
- i0.ɵɵadvance(5);
41
- i0.ɵɵproperty("ngIf", ctx_r11.proofOfAnything);
42
- } }
43
- function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_3_Template(rf, ctx) { if (rf & 1) {
44
- i0.ɵɵtemplate(0, ProofOfDocumentUploadComponent_form_0_section_2_ng_template_3_ng_template_0_Template, 7, 1, "ng-template", 11);
45
- } }
46
- function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_5_ng_template_0_div_3_Template(rf, ctx) { if (rf & 1) {
47
- i0.ɵɵelementStart(0, "div", 14);
48
- i0.ɵɵelement(1, "app-overlay-info", 16);
49
- i0.ɵɵelementEnd();
50
- } if (rf & 2) {
51
- const ctx_r14 = i0.ɵɵnextContext(5);
52
- i0.ɵɵadvance(1);
53
- i0.ɵɵproperty("overlayText", ctx_r14.iconInfo);
54
- } }
55
- function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_5_ng_template_0_Template(rf, ctx) { if (rf & 1) {
56
- i0.ɵɵelementStart(0, "tr")(1, "th", 12);
57
- i0.ɵɵtext(2, " Document Name ");
58
- i0.ɵɵtemplate(3, ProofOfDocumentUploadComponent_form_0_section_2_ng_template_5_ng_template_0_div_3_Template, 2, 1, "div", 13);
59
- i0.ɵɵelementEnd();
60
- i0.ɵɵelement(4, "th")(5, "th");
61
- i0.ɵɵelementEnd();
62
- } if (rf & 2) {
63
- const ctx_r13 = i0.ɵɵnextContext(4);
64
- i0.ɵɵadvance(3);
65
- i0.ɵɵproperty("ngIf", ctx_r13.proofOfAnything);
66
- } }
67
- function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_5_Template(rf, ctx) { if (rf & 1) {
68
- i0.ɵɵtemplate(0, ProofOfDocumentUploadComponent_form_0_section_2_ng_template_5_ng_template_0_Template, 6, 1, "ng-template", 11);
69
- } }
70
- const _c2 = () => ({ "width": "90%" });
71
- const _c3 = a0 => ({ "ng-invalid": a0 });
72
- function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_7_td_4_Template(rf, ctx) { if (rf & 1) {
73
- const _r20 = i0.ɵɵgetCurrentView();
74
- i0.ɵɵelementStart(0, "td")(1, "p-dropdown", 22);
75
- i0.ɵɵlistener("ngModelChange", function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_7_td_4_Template_p_dropdown_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r20); const fileObjectQueue_r15 = i0.ɵɵnextContext().$implicit; return i0.ɵɵresetView(fileObjectQueue_r15.selectedDocumentType = $event); })("onChange", function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_7_td_4_Template_p_dropdown_onChange_1_listener($event) { i0.ɵɵrestoreView(_r20); const fileObjectQueue_r15 = i0.ɵɵnextContext().$implicit; const ctx_r21 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r21.changeDocType(fileObjectQueue_r15, $event)); })("onClear", function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_7_td_4_Template_p_dropdown_onClear_1_listener() { i0.ɵɵrestoreView(_r20); const fileObjectQueue_r15 = i0.ɵɵnextContext().$implicit; const ctx_r23 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r23.clearDocType(fileObjectQueue_r15)); });
76
- i0.ɵɵelementEnd()();
77
- } if (rf & 2) {
78
- const ctx_r25 = i0.ɵɵnextContext();
79
- const fileObjectQueue_r15 = ctx_r25.$implicit;
80
- const rowIndex_r16 = ctx_r25.rowIndex;
81
- const ctx_r17 = i0.ɵɵnextContext(3);
82
- let tmp_4_0;
83
- i0.ɵɵadvance(1);
84
- i0.ɵɵstyleMap(i0.ɵɵpureFunction0(6, _c2));
85
- i0.ɵɵproperty("options", ctx_r17.docTypeDropdown)("ngModel", fileObjectQueue_r15.selectedDocumentType)("showClear", true)("ngClass", i0.ɵɵpureFunction1(7, _c3, (tmp_4_0 = ctx_r17.tableRows.controls[rowIndex_r16].get("docType")) == null ? null : tmp_4_0.invalid));
86
- } }
87
- function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_7_Template(rf, ctx) { if (rf & 1) {
88
- const _r27 = i0.ɵɵgetCurrentView();
89
- i0.ɵɵelementContainerStart(0, 17);
90
- i0.ɵɵelementStart(1, "tr", 18)(2, "td");
91
- i0.ɵɵtext(3);
92
- i0.ɵɵelementEnd();
93
- i0.ɵɵtemplate(4, ProofOfDocumentUploadComponent_form_0_section_2_ng_template_7_td_4_Template, 2, 9, "td", 4);
94
- i0.ɵɵelementStart(5, "td", 19)(6, "ion-button", 20);
95
- i0.ɵɵlistener("click", function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_7_Template_ion_button_click_6_listener() { const restoredCtx = i0.ɵɵrestoreView(_r27); const fileObjectQueue_r15 = restoredCtx.$implicit; const ctx_r26 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r26.removeFromQueue(fileObjectQueue_r15)); });
96
- i0.ɵɵelement(7, "ion-icon", 21);
97
- i0.ɵɵelementEnd()()();
98
- i0.ɵɵelementContainerEnd();
99
- } if (rf & 2) {
100
- const fileObjectQueue_r15 = ctx.$implicit;
101
- const rowIndex_r16 = ctx.rowIndex;
102
- const ctx_r9 = i0.ɵɵnextContext(3);
103
- i0.ɵɵadvance(1);
104
- i0.ɵɵproperty("formGroupName", rowIndex_r16);
105
- i0.ɵɵadvance(2);
106
- i0.ɵɵtextInterpolate(fileObjectQueue_r15 == null ? null : fileObjectQueue_r15.fileName);
107
- i0.ɵɵadvance(1);
108
- i0.ɵɵproperty("ngIf", ctx_r9.docType.length > 0);
109
- } }
110
- const _c4 = () => ["fal", "plus"];
111
- function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_8_tr_0_td_1_Template(rf, ctx) { if (rf & 1) {
112
- const _r33 = i0.ɵɵgetCurrentView();
113
- i0.ɵɵelementStart(0, "td", 24)(1, "div", 25)(2, "b");
114
- i0.ɵɵtext(3, "+ Add");
115
- i0.ɵɵelementEnd();
116
- i0.ɵɵtext(4, " document");
117
- i0.ɵɵelementEnd();
118
- i0.ɵɵelementStart(5, "input", 26, 27);
119
- i0.ɵɵlistener("change", function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_8_tr_0_td_1_Template_input_change_5_listener($event) { i0.ɵɵrestoreView(_r33); const ctx_r32 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r32.addToQueue($event)); });
120
- i0.ɵɵelementEnd();
121
- i0.ɵɵelementStart(7, "ion-button", 28);
122
- i0.ɵɵlistener("click", function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_8_tr_0_td_1_Template_ion_button_click_7_listener() { i0.ɵɵrestoreView(_r33); const _r31 = i0.ɵɵreference(6); return i0.ɵɵresetView(_r31.click()); });
123
- i0.ɵɵelement(8, "fa-icon", 29);
124
- i0.ɵɵelementEnd()();
125
- } if (rf & 2) {
126
- const ctx_r29 = i0.ɵɵnextContext(5);
127
- i0.ɵɵadvance(5);
128
- i0.ɵɵproperty("accept", ctx_r29.allowedFileType);
129
- i0.ɵɵadvance(3);
130
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(2, _c4));
131
- } }
132
- function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_8_tr_0_td_2_Template(rf, ctx) { if (rf & 1) {
133
- const _r37 = i0.ɵɵgetCurrentView();
134
- i0.ɵɵelementStart(0, "td", 24)(1, "div", 25)(2, "b");
135
- i0.ɵɵtext(3, "+ Add");
136
- i0.ɵɵelementEnd();
137
- i0.ɵɵtext(4, " any other document");
138
- i0.ɵɵelementEnd();
139
- i0.ɵɵelementStart(5, "input", 26, 27);
140
- i0.ɵɵlistener("change", function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_8_tr_0_td_2_Template_input_change_5_listener($event) { i0.ɵɵrestoreView(_r37); const ctx_r36 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r36.addToQueue($event)); });
141
- i0.ɵɵelementEnd();
142
- i0.ɵɵelementStart(7, "ion-button", 28);
143
- i0.ɵɵlistener("click", function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_8_tr_0_td_2_Template_ion_button_click_7_listener() { i0.ɵɵrestoreView(_r37); const _r35 = i0.ɵɵreference(6); return i0.ɵɵresetView(_r35.click()); });
144
- i0.ɵɵelement(8, "fa-icon", 29);
145
- i0.ɵɵelementEnd()();
146
- } if (rf & 2) {
147
- const ctx_r30 = i0.ɵɵnextContext(5);
148
- i0.ɵɵadvance(5);
149
- i0.ɵɵproperty("accept", ctx_r30.allowedFileType);
150
- i0.ɵɵadvance(3);
151
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(2, _c4));
152
- } }
153
- function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_8_tr_0_Template(rf, ctx) { if (rf & 1) {
154
- i0.ɵɵelementStart(0, "tr");
155
- i0.ɵɵtemplate(1, ProofOfDocumentUploadComponent_form_0_section_2_ng_template_8_tr_0_td_1_Template, 9, 3, "td", 23)(2, ProofOfDocumentUploadComponent_form_0_section_2_ng_template_8_tr_0_td_2_Template, 9, 3, "td", 23);
156
- i0.ɵɵelement(3, "td")(4, "td");
157
- i0.ɵɵelementEnd();
158
- } if (rf & 2) {
159
- const ctx_r28 = i0.ɵɵnextContext(4);
160
- i0.ɵɵadvance(1);
161
- i0.ɵɵproperty("ngIf", ctx_r28.fileObjectQueue.length == 0);
162
- i0.ɵɵadvance(1);
163
- i0.ɵɵproperty("ngIf", ctx_r28.fileObjectQueue.length > 0);
164
- } }
165
- function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_8_Template(rf, ctx) { if (rf & 1) {
166
- i0.ɵɵtemplate(0, ProofOfDocumentUploadComponent_form_0_section_2_ng_template_8_tr_0_Template, 5, 2, "tr", 4);
167
- } if (rf & 2) {
168
- const ctx_r10 = i0.ɵɵnextContext(3);
169
- i0.ɵɵproperty("ngIf", ctx_r10.proofOfAnything);
170
- } }
171
- function ProofOfDocumentUploadComponent_form_0_section_2_Template(rf, ctx) { if (rf & 1) {
172
- i0.ɵɵelementStart(0, "section")(1, "p-table", 5);
173
- i0.ɵɵtemplate(2, ProofOfDocumentUploadComponent_form_0_section_2_div_2_Template, 1, 0, "div", 6)(3, ProofOfDocumentUploadComponent_form_0_section_2_ng_template_3_Template, 1, 0, "ng-template", null, 7, i0.ɵɵtemplateRefExtractor)(5, ProofOfDocumentUploadComponent_form_0_section_2_ng_template_5_Template, 1, 0, "ng-template", null, 8, i0.ɵɵtemplateRefExtractor)(7, ProofOfDocumentUploadComponent_form_0_section_2_ng_template_7_Template, 8, 3, "ng-template", 9)(8, ProofOfDocumentUploadComponent_form_0_section_2_ng_template_8_Template, 1, 1, "ng-template", 10);
174
- i0.ɵɵelementEnd()();
175
- } if (rf & 2) {
176
- const _r6 = i0.ɵɵreference(4);
177
- const _r8 = i0.ɵɵreference(6);
178
- const ctx_r3 = i0.ɵɵnextContext(2);
179
- i0.ɵɵadvance(1);
180
- i0.ɵɵproperty("value", ctx_r3.fileObjectQueue)("loading", ctx_r3.showProgress);
181
- i0.ɵɵadvance(1);
182
- i0.ɵɵproperty("ngIf", ctx_r3.docType.length > 0)("ngIfThen", _r6)("ngIfElse", _r8);
183
- } }
184
- function ProofOfDocumentUploadComponent_form_0_Template(rf, ctx) { if (rf & 1) {
185
- i0.ɵɵelementStart(0, "form", 2, 3);
186
- i0.ɵɵtemplate(2, ProofOfDocumentUploadComponent_form_0_section_2_Template, 9, 5, "section", 4);
187
- i0.ɵɵelementEnd();
188
- } if (rf & 2) {
189
- const ctx_r0 = i0.ɵɵnextContext();
190
- i0.ɵɵproperty("formGroup", ctx_r0.formArray);
191
- i0.ɵɵadvance(2);
192
- i0.ɵɵproperty("ngIf", ctx_r0.context != "signature" && ctx_r0.context != "uploadZipCodes");
193
- } }
194
- function ProofOfDocumentUploadComponent_ul_1_li_1_ng_template_2_div_5_Template(rf, ctx) { if (rf & 1) {
195
- const _r53 = i0.ɵɵgetCurrentView();
196
- i0.ɵɵelementStart(0, "div", 39);
197
- i0.ɵɵelement(1, "i", 40);
198
- i0.ɵɵelementStart(2, "input", 41, 27);
199
- i0.ɵɵlistener("change", function ProofOfDocumentUploadComponent_ul_1_li_1_ng_template_2_div_5_Template_input_change_2_listener($event) { i0.ɵɵrestoreView(_r53); const employer_r40 = i0.ɵɵnextContext(2).$implicit; const ctx_r51 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r51.addFileToEmployerData($event, employer_r40)); });
200
- i0.ɵɵelementEnd();
201
- i0.ɵɵelementStart(4, "ion-button", 42);
202
- i0.ɵɵlistener("click", function ProofOfDocumentUploadComponent_ul_1_li_1_ng_template_2_div_5_Template_ion_button_click_4_listener() { i0.ɵɵrestoreView(_r53); const _r50 = i0.ɵɵreference(3); return i0.ɵɵresetView(_r50.click()); });
203
- i0.ɵɵtext(5, " Upload ");
204
- i0.ɵɵelementEnd();
205
- i0.ɵɵelementStart(6, "label", 43);
206
- i0.ɵɵtext(7);
207
- i0.ɵɵelementEnd()();
208
- } if (rf & 2) {
209
- const ctx_r48 = i0.ɵɵnextContext(4);
210
- i0.ɵɵadvance(2);
211
- i0.ɵɵproperty("accept", ctx_r48.allowedFileType);
212
- i0.ɵɵadvance(5);
213
- i0.ɵɵtextInterpolate1(" ", ctx_r48.iconInfo, " ");
214
- } }
215
- function ProofOfDocumentUploadComponent_ul_1_li_1_ng_template_2_div_6_Template(rf, ctx) { if (rf & 1) {
216
- const _r57 = i0.ɵɵgetCurrentView();
217
- i0.ɵɵelementStart(0, "div")(1, "div", 44)(2, "div", 45)(3, "span");
218
- i0.ɵɵelement(4, "i", 46);
219
- i0.ɵɵtext(5);
220
- i0.ɵɵelementEnd();
221
- i0.ɵɵelementStart(6, "ion-button", 47);
222
- i0.ɵɵlistener("click", function ProofOfDocumentUploadComponent_ul_1_li_1_ng_template_2_div_6_Template_ion_button_click_6_listener() { i0.ɵɵrestoreView(_r57); const employer_r40 = i0.ɵɵnextContext(2).$implicit; const ctx_r55 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r55.removeFileFromEmployerData(employer_r40)); });
223
- i0.ɵɵelement(7, "ion-icon", 21);
224
- i0.ɵɵelementEnd()()()();
225
- } if (rf & 2) {
226
- const employer_r40 = i0.ɵɵnextContext(2).$implicit;
227
- i0.ɵɵadvance(5);
228
- i0.ɵɵtextInterpolate1("", employer_r40.file.fileName, " ");
229
- } }
230
- function ProofOfDocumentUploadComponent_ul_1_li_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
231
- i0.ɵɵelementStart(0, "ion-row")(1, "ion-col", 35)(2, "h4", 36);
232
- i0.ɵɵtext(3);
233
- i0.ɵɵelementEnd()()();
234
- i0.ɵɵelementStart(4, "div", 37);
235
- i0.ɵɵtemplate(5, ProofOfDocumentUploadComponent_ul_1_li_1_ng_template_2_div_5_Template, 8, 2, "div", 38)(6, ProofOfDocumentUploadComponent_ul_1_li_1_ng_template_2_div_6_Template, 8, 1, "div", 4);
236
- i0.ɵɵelementEnd();
237
- } if (rf & 2) {
238
- const employer_r40 = i0.ɵɵnextContext().$implicit;
239
- i0.ɵɵadvance(3);
240
- i0.ɵɵtextInterpolate(employer_r40.employerName);
241
- i0.ɵɵadvance(2);
242
- i0.ɵɵproperty("ngIf", !employer_r40.file);
243
- i0.ɵɵadvance(1);
244
- i0.ɵɵproperty("ngIf", employer_r40.file);
245
- } }
246
- function ProofOfDocumentUploadComponent_ul_1_li_1_Template(rf, ctx) { if (rf & 1) {
247
- i0.ɵɵelementStart(0, "li", 32)(1, "p-card", 33);
248
- i0.ɵɵtemplate(2, ProofOfDocumentUploadComponent_ul_1_li_1_ng_template_2_Template, 7, 3, "ng-template", 34);
249
- i0.ɵɵelementEnd()();
250
- } }
251
- function ProofOfDocumentUploadComponent_ul_1_Template(rf, ctx) { if (rf & 1) {
252
- i0.ɵɵelementStart(0, "ul", 30);
253
- i0.ɵɵtemplate(1, ProofOfDocumentUploadComponent_ul_1_li_1_Template, 3, 0, "li", 31);
254
- i0.ɵɵelementEnd();
255
- } if (rf & 2) {
256
- const ctx_r1 = i0.ɵɵnextContext();
257
- i0.ɵɵadvance(1);
258
- i0.ɵɵproperty("ngForOf", ctx_r1.employerDataModel);
259
- } }
260
- export class ProofOfDocumentUploadComponent {
261
- constructor(formBuilder, toastController) {
262
- this.formBuilder = formBuilder;
263
- this.toastController = toastController;
264
- this.showProgress = false;
265
- this.upload = new EventEmitter();
266
- this.files = new EventEmitter();
267
- this.uploadEmployerFile = new EventEmitter();
268
- this.docForm = new EventEmitter();
269
- this.queue = [];
270
- this.fileObjectQueue = [];
271
- this.mapOfFiles = new Map();
272
- this.multiple = false;
273
- this.proofOfAnything = false;
274
- this.showSeparateAttachButton = false;
275
- this.docUploadModel = null;
276
- this.selectedDocumentType = null;
277
- this.expandedRows = {};
278
- this.onChange = () => {
279
- };
280
- }
281
- get uploadFileCtrl() {
282
- return this.uploadFileForm.controls['uploadFileCtrl'];
283
- }
284
- ngOnInit() {
285
- this.formArray = this.formBuilder.group({
286
- tableRowArray: this.formBuilder.array([])
287
- });
288
- this.docForm.emit(this.formArray);
289
- if (this.docType.length > 0) {
290
- this.docTypeDropdown = this.docType.map((i) => ({
291
- label: i.docDescription,
292
- value: i,
293
- disabled: false
294
- }));
295
- }
296
- this.fileTypes = this.allowedFileType.split(',');
297
- }
298
- writeValue() {
299
- }
300
- registerOnChange(fn) {
301
- this.onChange = fn;
302
- }
303
- registerOnTouched() {
304
- }
305
- ngOnChanges() {
306
- }
307
- get tableRows() {
308
- return this.formArray.get('tableRowArray');
309
- }
310
- checkFileType(file, approvedFileType) {
311
- for (let type of approvedFileType) {
312
- if (file.type === type) {
313
- return true;
314
- }
315
- }
316
- return false;
317
- }
318
- async addToQueue(event) {
319
- let curUpldFileLen = event.target.files.length;
320
- let preUpldFileLen = this.fileObjectQueue.length;
321
- console.log('curUpldFileLen = ', curUpldFileLen);
322
- console.log('preUpldFileLen = ', preUpldFileLen);
323
- console.log('this.docUploadModel.totalDocs == ', this.docUploadModel.totalDocs);
324
- if (this.docUploadModel.totalDocs !== null && (curUpldFileLen + preUpldFileLen) > this.docUploadModel.totalDocs) {
325
- this.error("You can not upload more than " + this.docUploadModel.totalDocs + " file(s).");
326
- return;
327
- }
328
- this.showProgress = true;
329
- for (var i = 0; i < event.target.files.length; i++) {
330
- const file = event.target.files[i];
331
- let encoded;
332
- console.log('size = ', this.getSizeInMB(file?.size));
333
- if (this.fileObjectQueue.some(e => e.fileName === file.name)) {
334
- this.error('Document with the same file name already exists.');
335
- this.showProgress = false;
336
- return;
337
- }
338
- if (this.docUploadModel.size !== null && this.getSizeInMB(file?.size) > this.docUploadModel.size) {
339
- this.error('File size can not be more than ' + this.docUploadModel.size + ' MB.');
340
- this.showProgress = false;
341
- return;
342
- }
343
- if (!this.checkFileType(file, this.fileTypes)) {
344
- this.error('File type not allowed');
345
- this.showProgress = false;
346
- return;
347
- }
348
- if (file) {
349
- encoded = await toBase64(file);
350
- }
351
- const fileObject = new FileObject(this.selectedDocumentType?.docType, this.selectedDocumentType?.docDescription, file.name, file.type, encoded);
352
- var uploadFileForm = this.formBuilder.group({});
353
- if (this.docType.length > 0) {
354
- uploadFileForm = this.formBuilder.group({
355
- 'docType': [null, Validators.required]
356
- });
357
- }
358
- this.tableRows.push(uploadFileForm);
359
- this.fileObjectQueue.push(fileObject);
360
- this.upload.emit(this.fileObjectQueue);
361
- }
362
- event.target.value = '';
363
- this.showProgress = false;
364
- }
365
- async addFileToEmployerData(event, employer) {
366
- for (var i = 0; i < event.target.files.length; i++) {
367
- const file = event.target.files[i];
368
- let encoded;
369
- if (this.docUploadModel.size !== null && this.getSizeInMB(file?.size) > this.docUploadModel.size) {
370
- this.error('File size can not be more than ' + this.docUploadModel.size + ' MB.');
371
- this.showProgress = false;
372
- return;
373
- }
374
- if (!this.checkFileType(file, this.fileTypes)) {
375
- this.error('File type not allowed');
376
- this.showProgress = false;
377
- return;
378
- }
379
- if (file) {
380
- encoded = await toBase64(file);
381
- }
382
- const fileObject = new FileObject(this.selectedDocumentType?.docType, this.selectedDocumentType?.docDescription, file.name, file.type, encoded, employer.recordId, employer.employerName);
383
- employer.file = fileObject;
384
- this.uploadEmployerFile.emit(this.employerDataModel);
385
- }
386
- event.target.value = '';
387
- this.showProgress = false;
388
- }
389
- removeFileFromEmployerData(employer) {
390
- employer.file = null;
391
- this.uploadEmployerFile.emit(this.employerDataModel);
392
- }
393
- removeFromQueue(fileToRemove) {
394
- let index;
395
- for (var i = 0; i < this.fileObjectQueue.length; i++) {
396
- if (this.fileObjectQueue[i].fileName === fileToRemove.fileName) {
397
- index = i;
398
- }
399
- }
400
- for (var i = 0; i < this.docTypeDropdown.length; i++) {
401
- if (this.docTypeDropdown[i].value.docType === fileToRemove.docType) {
402
- this.docTypeDropdown[i].disabled = false;
403
- }
404
- }
405
- this.showProgress = true;
406
- this.fileObjectQueue.splice(index, 1);
407
- this.tableRows.removeAt(index);
408
- this.mapOfFiles.delete(fileToRemove);
409
- this.showProgress = false;
410
- this.upload.emit(Array.from(this.mapOfFiles.values()));
411
- this.files.emit(this.mapOfFiles);
412
- }
413
- changeDocType(file, event) {
414
- console.log("166 changeDocType");
415
- if (event.value === null) {
416
- return;
417
- }
418
- let index;
419
- let prevSelectedDoc;
420
- for (var i = 0; i < this.fileObjectQueue.length; i++) {
421
- if (this.fileObjectQueue[i].fileName === file.fileName) {
422
- index = i;
423
- prevSelectedDoc = this.fileObjectQueue[index].docType;
424
- }
425
- }
426
- this.fileObjectQueue[index].docType = event.value.docType;
427
- this.fileObjectQueue[index].name = event.value.docDescription;
428
- for (var i = 0; i < this.docTypeDropdown.length; i++) {
429
- if (event.value.docType === this.docTypeDropdown[i].value.docType) {
430
- this.docTypeDropdown[i].disabled = true;
431
- }
432
- else if (this.docTypeDropdown[i].value.docType === prevSelectedDoc) {
433
- this.docTypeDropdown[i].disabled = false;
434
- }
435
- }
436
- }
437
- clearDocType(file) {
438
- let index;
439
- let prevSelectedDoc;
440
- for (var i = 0; i < this.fileObjectQueue.length; i++) {
441
- if (this.fileObjectQueue[i].fileName === file.fileName) {
442
- index = i;
443
- prevSelectedDoc = this.fileObjectQueue[index].docType;
444
- }
445
- }
446
- this.fileObjectQueue[index].docType = null;
447
- this.fileObjectQueue[index].name = null;
448
- for (var i = 0; i < this.docTypeDropdown.length; i++) {
449
- if (this.docTypeDropdown[i].value.docType === prevSelectedDoc) {
450
- this.docTypeDropdown[i].disabled = false;
451
- }
452
- }
453
- }
454
- updateQueueWithType(fileObject) {
455
- console.log("166 updateQueueWithType");
456
- for (var i = 0; i < this.fileObjectQueue.length; i++) {
457
- if (this.fileObjectQueue[i].fileName === fileObject.fileName) {
458
- this.fileObjectQueue[i].docType = this.selectedDocumentType.docType;
459
- }
460
- }
461
- }
462
- async presentToast(msg, color) {
463
- const toast = await this.toastController.create({
464
- message: msg,
465
- duration: 5000,
466
- color: color,
467
- position: 'bottom'
468
- });
469
- toast.present();
470
- }
471
- success(msg) {
472
- this.presentToast(msg, 'primary');
473
- }
474
- error(msg) {
475
- this.presentToast(msg, 'danger');
476
- }
477
- getSizeInMB(num) {
478
- return num / 1024 / 1024;
479
- }
480
- static { this.ɵfac = function ProofOfDocumentUploadComponent_Factory(t) { return new (t || ProofOfDocumentUploadComponent)(i0.ɵɵdirectiveInject(i1.UntypedFormBuilder), i0.ɵɵdirectiveInject(i2.ToastController)); }; }
481
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ProofOfDocumentUploadComponent, selectors: [["app-proof-of-document-upload"]], viewQuery: function ProofOfDocumentUploadComponent_Query(rf, ctx) { if (rf & 1) {
482
- i0.ɵɵviewQuery(_c0, 5);
483
- i0.ɵɵviewQuery(_c1, 5);
484
- } if (rf & 2) {
485
- let _t;
486
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.uploadFileFormDirective = _t.first);
487
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.fileInput = _t);
488
- } }, inputs: { allowedFileType: "allowedFileType", multiple: "multiple", proofOfAnything: "proofOfAnything", context: "context", showSeparateAttachButton: "showSeparateAttachButton", docUploadModel: "docUploadModel", selectedDocumentType: "selectedDocumentType", docType: "docType", iconInfo: "iconInfo", employerDataModel: "employerDataModel" }, outputs: { upload: "upload", files: "files", uploadEmployerFile: "uploadEmployerFile", docForm: "docForm" }, features: [i0.ɵɵProvidersFeature([{
489
- provide: NG_VALUE_ACCESSOR,
490
- useExisting: ProofOfDocumentUploadComponent,
491
- multi: true
492
- }]), i0.ɵɵNgOnChangesFeature], decls: 2, vars: 2, consts: [[3, "formGroup", 4, "ngIf"], ["class", "no-bullets gap-3", 4, "ngIf"], [3, "formGroup"], ["uploadFileFormDirective", "ngForm"], [4, "ngIf"], ["dataKey", "fileName", "responsiveLayout", "scroll", 3, "value", "loading"], [4, "ngIf", "ngIfThen", "ngIfElse"], ["showDocTypeHeading", ""], ["removeDocTypeHeading", ""], ["pTemplate", "body"], ["pTemplate", "footer"], ["pTemplate", "header"], [1, "flex", "flex-row", "align-items-center"], ["class", "pl-1", 4, "ngIf"], [1, "pl-1"], [2, "margin-top", "2px", "margin-left", "6px", 3, "overlayText"], [3, "overlayText"], ["formArrayName", "tableRowArray"], [3, "formGroupName"], [1, "ion-text-right", 2, "padding-right", "unset"], ["shape", "round", "fill", "outline", "size", "small", "pTooltip", "Remove", "tooltipPosition", "bottom", 1, "ion-padding-left", 3, "click"], ["name", "trash-outline"], ["formControlName", "docType", "optionLabel", "label", "optionValue", "value", "placeholder", "Select a Document Type", "appendTo", "body", 1, "ng-invalid", "ng-dirty", 3, "options", "ngModel", "showClear", "ngClass", "ngModelChange", "onChange", "onClear"], ["class", "file-input-container flex flex-row align-items-center", 4, "ngIf"], [1, "file-input-container", "flex", "flex-row", "align-items-center"], [1, "pr-1"], ["type", "file", 3, "accept", "change"], ["fileInput", ""], ["aria-label", "Add Files", "fill", "outline", "size", "small", 1, "action-button", 3, "click"], [1, "action-icon", 3, "icon"], [1, "no-bullets", "gap-3"], ["class", "pb-3", 4, "ngFor", "ngForOf"], [1, "pb-3"], [1, "pb-2", "gap-3"], ["class", "p-3", "pTemplate", "content"], [1, "flex", "flex-row", "align-items-center", "gap-1"], ["stlye", "margin: 0", 1, "m-0"], [1, "flex", "align-items-center", "justify-content-center", "flex-column", "border-2", "border-dashed", "border-400", "rounded-sm", "p-2"], ["class", "flex align-items-center justify-content-center flex-column", 4, "ngIf"], [1, "flex", "align-items-center", "justify-content-center", "flex-column"], [1, "pi", "pi-upload", "border-2", "border-circle", "p-2", "m-2", "text-xl", "text-400"], ["id", "employerWorkSearchFileInput", "type", "file", 2, "display", "none", 3, "accept", "change"], ["aria-label", "Add Files", "fill", "outline", "size", "small", 1, "action-button", 2, "float", "inline-end", 3, "click"], [1, "pt-4", 2, "font-size", "12px"], [1, "flex", "align-items-center", "justify-content-center", "flex-column", "p-0", "sm:p-2", "gap-5"], [1, "card", "m-0", "px-6", "flex", "align-items-center", "justify-content-center", "flex-column", "gap-2"], [1, "pi", "pi-file", 2, "color", "#4478AA"], ["aria-label", "Remove Files", "fill", "outline", "size", "small", "pTooltip", "Remove", "tooltipPosition", "bottom", 1, "ion-padding-left", 2, "float", "inline-end", 3, "click"]], template: function ProofOfDocumentUploadComponent_Template(rf, ctx) { if (rf & 1) {
493
- i0.ɵɵtemplate(0, ProofOfDocumentUploadComponent_form_0_Template, 3, 2, "form", 0)(1, ProofOfDocumentUploadComponent_ul_1_Template, 2, 1, "ul", 1);
494
- } if (rf & 2) {
495
- i0.ɵɵproperty("ngIf", !ctx.employerDataModel);
496
- i0.ɵɵadvance(1);
497
- i0.ɵɵproperty("ngIf", ctx.employerDataModel);
498
- } }, dependencies: [i2.IonButton, i2.IonCol, i2.IonIcon, i2.IonRow, i3.NgClass, i3.NgForOf, i3.NgIf, i4.PrimeTemplate, i5.Tooltip, i1.ɵNgNoValidate, i1.NgControlStatus, i1.NgControlStatusGroup, i1.FormGroupDirective, i1.FormControlName, i1.FormGroupName, i1.FormArrayName, i6.Table, i7.Card, i8.FaIconComponent, i9.Dropdown, i10.OverlayInfoComponent], styles: [".file-input-container[_ngcontent-%COMP%]{text-align:right}.file-input-container[_ngcontent-%COMP%] input[type=file][_ngcontent-%COMP%]{display:none}.file-input-container[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{border:1px solid #ccc;padding:6px 12px;cursor:pointer}.upload-input-container[_ngcontent-%COMP%] input[type=file][_ngcontent-%COMP%]{display:none}.upload-input-container[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{border:1px solid #ccc;cursor:pointer}[_nghost-%COMP%] .p-datatable .p-datatable-thead>tr>th{background:#fff!important;background-color:#fff!important}ol[_ngcontent-%COMP%], ul[_ngcontent-%COMP%]{list-style:none}ul[_ngcontent-%COMP%]{list-style-type:square}li[_ngcontent-%COMP%]{color:var(--ion-color-grey)}.ng-invalid[_ngcontent-%COMP%]{border-color:#f44336}.seperate-row[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:not(:first-child):not(:last-child){border-left:none;border-right:none}.seperate-row[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-child{border-right:none}.seperate-row[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:last-child{border-left:none;padding:1rem .55rem;padding-right:20px}.seperate-row[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border:1px solid #e4e4e4;font-family:\"Open Sans, Light\";font-size:26px;padding:1rem .55rem}.no-bullets[_ngcontent-%COMP%]{list-style-type:none;padding-left:0}[_nghost-%COMP%] .remove-header .p-fileupload-buttonbar{display:none}[_nghost-%COMP%] .remove-header .p-fileupload-content{border-top-right-radius:4px;border-top-left-radius:4px;padding:1rem}[_nghost-%COMP%] .p-card .p-card-body .p-card-content{padding:1rem!important}.border-400[_ngcontent-%COMP%]{border-color:#4478aa!important;border-radius:6px}"] }); }
499
- }
500
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ProofOfDocumentUploadComponent, [{
501
- type: Component,
502
- args: [{ selector: 'app-proof-of-document-upload', providers: [{
503
- provide: NG_VALUE_ACCESSOR,
504
- useExisting: ProofOfDocumentUploadComponent,
505
- multi: true
506
- }], template: "<form [formGroup]=\"formArray\" #uploadFileFormDirective=\"ngForm\" *ngIf=\"!employerDataModel\">\r\n <section *ngIf=\"this.context != 'signature' && this.context !='uploadZipCodes'\">\r\n <p-table dataKey=\"fileName\" [value]=\"fileObjectQueue\" responsiveLayout=\"scroll\" [loading]=\"showProgress\">\r\n <div *ngIf = \"docType.length > 0; then showDocTypeHeading; else removeDocTypeHeading\" ></div>\r\n <ng-template #showDocTypeHeading>\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th>Document Name</th>\r\n <th class=\"flex flex-row align-items-center\">\r\n Document Type\r\n <div *ngIf=\"proofOfAnything\" class=\"pl-1\">\r\n <app-overlay-info [overlayText]=\"iconInfo\" style=\"margin-top: 2px; margin-left: 6px; \"></app-overlay-info>\r\n </div>\r\n </th>\r\n <th></th>\r\n </tr>\r\n </ng-template>\r\n </ng-template>\r\n <ng-template #removeDocTypeHeading>\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th class=\"flex flex-row align-items-center\">\r\n Document Name\r\n <div *ngIf=\"proofOfAnything\" class=\"pl-1\">\r\n <app-overlay-info [overlayText]=\"iconInfo\"></app-overlay-info>\r\n </div>\r\n </th>\r\n <th></th>\r\n <th></th>\r\n </tr>\r\n </ng-template>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-fileObjectQueue let-rowIndex=\"rowIndex\">\r\n <ng-container formArrayName=\"tableRowArray\">\r\n <tr [formGroupName]=\"rowIndex\">\r\n <td>{{ fileObjectQueue?.fileName }}</td>\r\n <td *ngIf=\"docType.length > 0\">\r\n <p-dropdown [options]=\"docTypeDropdown\" formControlName=\"docType\" [(ngModel)]=\"fileObjectQueue.selectedDocumentType\" \r\n (onChange)=\"changeDocType(fileObjectQueue,$event)\" \r\n optionLabel=\"label\" optionValue=\"value\" placeholder=\"Select a Document Type\" appendTo=body\r\n [style]=\"{'width':'90%'}\"\r\n class=\"ng-invalid ng-dirty\"\r\n [showClear]=\"true\"\r\n (onClear)=\"clearDocType(fileObjectQueue)\"\r\n [ngClass]=\"{'ng-invalid':tableRows.controls[rowIndex].get('docType')?.invalid}\"/>\r\n </td>\r\n <td class=\"ion-text-right\" style=\"padding-right: unset\">\r\n <ion-button shape=\"round\" fill=\"outline\" size=\"small\" pTooltip=\"Remove\" (click)=\"removeFromQueue(fileObjectQueue)\"\r\n tooltipPosition=\"bottom\" class=\"ion-padding-left\">\r\n <ion-icon name=\"trash-outline\"></ion-icon>\r\n </ion-button>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n \r\n </ng-template>\r\n <ng-template pTemplate=\"footer\"> \r\n <tr *ngIf=\"proofOfAnything\">\r\n <td *ngIf=\"fileObjectQueue.length == 0\" class=\"file-input-container flex flex-row align-items-center\">\r\n <div class=\"pr-1\"><b>+ Add</b> document</div >\r\n <input type=\"file\" #fileInput [accept]=\"allowedFileType\"\r\n (change)=\"addToQueue($event)\" />\r\n <ion-button aria-label=\"Add Files\" (click)=\"fileInput.click()\" fill=\"outline\" size=\"small\" class=\"action-button\">\r\n <fa-icon [icon]=\"['fal', 'plus']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n </td>\r\n <td *ngIf=\"fileObjectQueue.length > 0\" class=\"file-input-container flex flex-row align-items-center\">\r\n <div class=\"pr-1\"><b>+ Add</b> any other document</div >\r\n <input type=\"file\" #fileInput [accept]=\"allowedFileType\"\r\n (change)=\"addToQueue($event)\" />\r\n <ion-button aria-label=\"Add Files\" (click)=\"fileInput.click()\" fill=\"outline\" size=\"small\" class=\"action-button\">\r\n <fa-icon [icon]=\"['fal', 'plus']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n </td>\r\n <td></td>\r\n <td >\r\n \r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </section>\r\n </form>\r\n <ul *ngIf=\"employerDataModel\" class=\"no-bullets gap-3\">\r\n <li class=\"pb-3\" *ngFor=\"let employer of employerDataModel; let i = index\">\r\n <p-card class=\"pb-2 gap-3\">\r\n <ng-template class=\"p-3\" pTemplate=\"content\" let-files let-uploadedFiles=\"uploadedFiles\" let-removeFileCallback=\"removeFileCallback\" let-removeUploadedFileCallback=\"removeUploadedFileCallback\" let-chooseCallback=\"chooseCallback\">\r\n \r\n <ion-row>\r\n <ion-col class=\"flex flex-row align-items-center gap-1\">\r\n <h4 class=\"m-0\" stlye=\"margin: 0\">{{employer.employerName}}</h4>\r\n </ion-col>\r\n </ion-row>\r\n <div class=\"flex align-items-center justify-content-center flex-column border-2 border-dashed border-400 rounded-sm p-2\">\r\n <div *ngIf=\"!employer.file\" class=\"flex align-items-center justify-content-center flex-column\">\r\n <i class=\"pi pi-upload border-2 border-circle p-2 m-2 text-xl text-400\"></i>\r\n <input id=\"employerWorkSearchFileInput\" type=\"file\" #fileInput [accept]=\"allowedFileType\"\r\n (change)=\"addFileToEmployerData($event,employer)\" style=\"display: none\" />\r\n <ion-button aria-label=\"Add Files\" (click)=\"fileInput.click()\" fill=\"outline\" size=\"small\" class=\"action-button\" style=\"float:inline-end\">\r\n Upload\r\n </ion-button>\r\n <label class=\"pt-4\" style=\"font-size: 12px;\">\r\n {{iconInfo}}\r\n </label>\r\n </div>\r\n <div *ngIf=\"employer.file\">\r\n\r\n <div class=\"flex align-items-center justify-content-center flex-column p-0 sm:p-2 gap-5\">\r\n <div\r\n class=\"card m-0 px-6 flex align-items-center justify-content-center flex-column gap-2\"\r\n > \r\n <span>\r\n <i class=\"pi pi-file\" style=\"color: #4478AA\"></i>{{ employer.file.fileName }}\r\n </span>\r\n <ion-button aria-label=\"Remove Files\" fill=\"outline\" size=\"small\" pTooltip=\"Remove\" (click)=\"removeFileFromEmployerData(employer)\"\r\n tooltipPosition=\"bottom\" class=\"ion-padding-left\" style=\"float: inline-end\">\r\n <ion-icon name=\"trash-outline\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n\r\n \r\n </ng-template>\r\n </p-card>\r\n </li>\r\n </ul>", styles: [".file-input-container{text-align:right}.file-input-container input[type=file]{display:none}.file-input-container label{border:1px solid #ccc;padding:6px 12px;cursor:pointer}.upload-input-container input[type=file]{display:none}.upload-input-container label{border:1px solid #ccc;cursor:pointer}:host ::ng-deep .p-datatable .p-datatable-thead>tr>th{background:#fff!important;background-color:#fff!important}ol,ul{list-style:none}ul{list-style-type:square}li{color:var(--ion-color-grey)}.ng-invalid{border-color:#f44336}.seperate-row td:not(:first-child):not(:last-child){border-left:none;border-right:none}.seperate-row td:first-child{border-right:none}.seperate-row td:last-child{border-left:none;padding:1rem .55rem;padding-right:20px}.seperate-row td{border:1px solid #e4e4e4;font-family:\"Open Sans, Light\";font-size:26px;padding:1rem .55rem}.no-bullets{list-style-type:none;padding-left:0}:host ::ng-deep .remove-header .p-fileupload-buttonbar{display:none}:host ::ng-deep .remove-header .p-fileupload-content{border-top-right-radius:4px;border-top-left-radius:4px;padding:1rem}:host ::ng-deep .p-card .p-card-body .p-card-content{padding:1rem!important}.border-400{border-color:#4478aa!important;border-radius:6px}\n"] }]
507
- }], () => [{ type: i1.UntypedFormBuilder }, { type: i2.ToastController }], { uploadFileFormDirective: [{
508
- type: ViewChild,
509
- args: ['uploadFileFormDirective', { static: false }]
510
- }], upload: [{
511
- type: Output
512
- }], files: [{
513
- type: Output
514
- }], uploadEmployerFile: [{
515
- type: Output
516
- }], docForm: [{
517
- type: Output
518
- }], fileInput: [{
519
- type: ViewChildren,
520
- args: ['fileInput']
521
- }], allowedFileType: [{
522
- type: Input
523
- }], multiple: [{
524
- type: Input
525
- }], proofOfAnything: [{
526
- type: Input
527
- }], context: [{
528
- type: Input
529
- }], showSeparateAttachButton: [{
530
- type: Input
531
- }], docUploadModel: [{
532
- type: Input
533
- }], selectedDocumentType: [{
534
- type: Input
535
- }], docType: [{
536
- type: Input
537
- }], iconInfo: [{
538
- type: Input
539
- }], employerDataModel: [{
540
- type: Input
541
- }] }); })();
542
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ProofOfDocumentUploadComponent, { className: "ProofOfDocumentUploadComponent", filePath: "lib\\components\\proof-of-document-upload\\proof-of-document-upload.component.ts", lineNumber: 20 }); })();
543
- const toBase64 = file => new Promise((resolve, reject) => {
544
- const reader = new FileReader();
545
- reader.readAsDataURL(file);
546
- reader.onload = () => resolve(reader.result);
547
- reader.onerror = reject;
548
- });
549
- export class FileObject {
550
- constructor(docType, name, fileName, contentType, fileInBased64, recordId, employerName) {
551
- this.docType = docType;
552
- this.name = name;
553
- this.fileName = fileName;
554
- this.contentType = contentType;
555
- this.fileInBased64 = fileInBased64;
556
- this.recordId = recordId;
557
- this.employerName = employerName;
558
- }
559
- }
560
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvb2Ytb2YtZG9jdW1lbnQtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9wcm9vZi1vZi1kb2N1bWVudC11cGxvYWQvcHJvb2Ytb2YtZG9jdW1lbnQtdXBsb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9wcm9vZi1vZi1kb2N1bWVudC11cGxvYWQvcHJvb2Ytb2YtZG9jdW1lbnQtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUE0QixTQUFTLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDL0ksT0FBTyxFQUFpRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0lDRXhILHNCQUE2Rjs7O0lBT3JGLCtCQUEwQztJQUN4Qyx1Q0FBMEc7SUFDNUcsaUJBQU07OztJQURjLGVBQXdCO0lBQXhCLDhDQUF3Qjs7O0lBTGhELDBCQUFJLFNBQUE7SUFDRSw2QkFBYTtJQUFBLGlCQUFLO0lBQ3RCLDhCQUE2QztJQUMzQywrQkFDQTtJQUFBLDZIQUVNO0lBQ1IsaUJBQUs7SUFDTCxxQkFBUztJQUNYLGlCQUFLOzs7SUFMSyxlQUFxQjtJQUFyQiw4Q0FBcUI7OztJQUxqQywrSEFXYzs7O0lBT1IsK0JBQTBDO0lBQ3hDLHVDQUE4RDtJQUNoRSxpQkFBTTs7O0lBRGMsZUFBd0I7SUFBeEIsOENBQXdCOzs7SUFKaEQsMEJBQUksYUFBQTtJQUVBLCtCQUNBO0lBQUEsNkhBRU07SUFDUixpQkFBSztJQUNMLHFCQUFTLFNBQUE7SUFFWCxp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QUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZHJlbiwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBFbGVtZW50UmVmICB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsVW50eXBlZEZvcm1BcnJheSwgTmdGb3JtLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XHJcbmltcG9ydCB7IENhcHRjaGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FwdGNoYS9jYXB0Y2hhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDbGFpbWFudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jbGFpbWFudC1zZXJ2aWNlL2NsYWltYW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb2FzdENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IERvY1R5cGVVcGxvYWQsIERvY1VwbG9hZE1vZGVsLCBEb2NUeXBlRHJvcGRvd25PcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvZmlsZXVwbG9hZC9Eb2NVcGxvYWRNb2RlbCc7XHJcbmltcG9ydCB7IEVtcGxveWVyRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpbGV1cGxvYWQvRW1wbG95ZXJEYXRhTW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcHJvb2Ytb2YtZG9jdW1lbnQtdXBsb2FkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcHJvb2Ytb2YtZG9jdW1lbnQtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vcHJvb2Ytb2YtZG9jdW1lbnQtdXBsb2FkLmNvbXBvbmVudC5zY3NzJyxcclxuICBwcm92aWRlcnM6IFt7XHJcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgIHVzZUV4aXN0aW5nOiBQcm9vZk9mRG9jdW1lbnRVcGxvYWRDb21wb25lbnQsXHJcbiAgICBtdWx0aTogdHJ1ZVxyXG4gIH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9vZk9mRG9jdW1lbnRVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcblxyXG4gIHB1YmxpYyBzaG93UHJvZ3Jlc3MgPSBmYWxzZTtcclxuXHJcbiAgQFZpZXdDaGlsZCgndXBsb2FkRmlsZUZvcm1EaXJlY3RpdmUnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBwdWJsaWMgdXBsb2FkRmlsZUZvcm1EaXJlY3RpdmU6IE5nRm9ybTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgdXBsb2FkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZmlsZXM6IEV2ZW50RW1pdHRlcjxNYXA8RmlsZSwgc3RyaW5nPj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHVwbG9hZEVtcGxveWVyRmlsZTogRXZlbnRFbWl0dGVyPEVtcGxveWVyRGF0YU1vZGVsW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KCkgXHJcbiAgZG9jRm9ybTogRXZlbnRFbWl0dGVyPFVudHlwZWRGb3JtR3JvdXA+ID0gbmV3IEV2ZW50RW1pdHRlcjxVbnR5cGVkRm9ybUdyb3VwPigpO1xyXG5cclxuICBAVmlld0NoaWxkcmVuKCdmaWxlSW5wdXQnKSBmaWxlSW5wdXQ7XHJcbiAgXHJcbiAgcXVldWU6IEZpbGVbXSA9IFtdO1xyXG5cclxuICBmaWxlT2JqZWN0UXVldWU6IEZpbGVPYmplY3RbXSA9IFtdO1xyXG5cclxuICBtYXBPZkZpbGVzOiBNYXA8RmlsZSwgc3RyaW5nPiA9IG5ldyBNYXAoKTtcclxuXHJcbiAgQElucHV0KClcclxuICBhbGxvd2VkRmlsZVR5cGU6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHByb29mT2ZBbnl0aGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGNvbnRleHQ6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBzaG93U2VwYXJhdGVBdHRhY2hCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBkb2NVcGxvYWRNb2RlbDogRG9jVXBsb2FkTW9kZWwgPSBudWxsO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGVkRG9jdW1lbnRUeXBlOiBEb2NUeXBlVXBsb2FkID0gbnVsbDtcclxuXHJcbiAgQElucHV0KClcclxuICBkb2NUeXBlOkRvY1R5cGVVcGxvYWRbXSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgQElucHV0KClcclxuICBpY29uSW5mbzpzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGVtcGxveWVyRGF0YU1vZGVsIDogRW1wbG95ZXJEYXRhTW9kZWxbXTtcclxuICBkb2NUeXBlRHJvcGRvd246IERvY1R5cGVEcm9wZG93bk9wdGlvbltdIHwgdW5kZWZpbmVkO1xyXG5cclxuICBwdWJsaWMgdXBsb2FkRmlsZUZvcm06IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgZm9ybUFycmF5OiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIGltYWdlSHRtbDogc3RyaW5nO1xyXG4gIGRvY3VtZW50VHlwZXM6IERvY1R5cGVVcGxvYWRbXSB8IHVuZGVmaW5lZDtcclxuICBmaWxlVHlwZXM6IHN0cmluZ1tdO1xyXG4gIGV4cGFuZGVkUm93czogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIsIFxyXG4gICAgcHVibGljIHRvYXN0Q29udHJvbGxlcjogVG9hc3RDb250cm9sbGVyKSB7XHJcbiAgICAgXHJcbiAgfVxyXG5cclxuICBnZXQgdXBsb2FkRmlsZUN0cmwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy51cGxvYWRGaWxlRm9ybS5jb250cm9sc1sndXBsb2FkRmlsZUN0cmwnXTtcclxuICB9XHJcblxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZm9ybUFycmF5ID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgIHRhYmxlUm93QXJyYXk6IHRoaXMuZm9ybUJ1aWxkZXIuYXJyYXkoW1xyXG4gICAgICBdKVxyXG4gICAgfSlcclxuICAgIHRoaXMuZG9jRm9ybS5lbWl0KHRoaXMuZm9ybUFycmF5KTtcclxuICAgIGlmICh0aGlzLmRvY1R5cGUubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmRvY1R5cGVEcm9wZG93biA9IHRoaXMuZG9jVHlwZS5tYXAoKGkpID0+ICh7XHJcbiAgICAgICAgbGFiZWw6IGkuZG9jRGVzY3JpcHRpb24sXHJcbiAgICAgICAgdmFsdWU6IGksXHJcbiAgICAgICAgZGlzYWJsZWQ6IGZhbHNlXHJcbiAgICAgIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZpbGVUeXBlcyA9IHRoaXMuYWxsb3dlZEZpbGVUeXBlLnNwbGl0KCcsJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uQ2hhbmdlOiBGdW5jdGlvbiA9ICgpID0+IHtcclxuXHJcbiAgfTtcclxuICB3cml0ZVZhbHVlKCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBnZXQgdGFibGVSb3dzKCk6IFVudHlwZWRGb3JtQXJyYXkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybUFycmF5LmdldCgndGFibGVSb3dBcnJheScpIGFzIFVudHlwZWRGb3JtQXJyYXk7XHJcbiAgfVxyXG5cclxuICBjaGVja0ZpbGVUeXBlKGZpbGU6RmlsZSwgYXBwcm92ZWRGaWxlVHlwZTpzdHJpbmdbXSk6Ym9vbGVhbntcclxuICAgIGZvcihsZXQgdHlwZSBvZiBhcHByb3ZlZEZpbGVUeXBlKXtcclxuICAgICAgaWYoZmlsZS50eXBlPT09dHlwZSl7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgXHJcbiAgYXN5bmMgYWRkVG9RdWV1ZShldmVudCkge1xyXG4gICAgbGV0IGN1clVwbGRGaWxlTGVuOiBudW1iZXIgPSBldmVudC50YXJnZXQuZmlsZXMubGVuZ3RoO1xyXG4gICAgbGV0IHByZVVwbGRGaWxlTGVuOiBudW1iZXIgPSB0aGlzLmZpbGVPYmplY3RRdWV1ZS5sZW5ndGg7XHJcbiAgICBjb25zb2xlLmxvZygnY3VyVXBsZEZpbGVMZW4gPSAnLCBjdXJVcGxkRmlsZUxlbik7XHJcbiAgICBjb25zb2xlLmxvZygncHJlVXBsZEZpbGVMZW4gPSAnLCBwcmVVcGxkRmlsZUxlbik7XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5kb2NVcGxvYWRNb2RlbC50b3RhbERvY3MgPT0gJywgdGhpcy5kb2NVcGxvYWRNb2RlbC50b3RhbERvY3MpO1xyXG4gICAgaWYgKHRoaXMuZG9jVXBsb2FkTW9kZWwudG90YWxEb2NzIT09bnVsbCAmJihjdXJVcGxkRmlsZUxlbiArIHByZVVwbGRGaWxlTGVuKSA+IHRoaXMuZG9jVXBsb2FkTW9kZWwudG90YWxEb2NzKSB7XHJcbiAgICAgIHRoaXMuZXJyb3IoXCJZb3UgY2FuIG5vdCB1cGxvYWQgbW9yZSB0aGFuIFwiICsgdGhpcy5kb2NVcGxvYWRNb2RlbC50b3RhbERvY3MgKyBcIiBmaWxlKHMpLlwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2hvd1Byb2dyZXNzID0gdHJ1ZTtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXZlbnQudGFyZ2V0LmZpbGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGZpbGU6IEZpbGUgPSBldmVudC50YXJnZXQuZmlsZXNbaV07XHJcbiAgICAgIGxldCBlbmNvZGVkO1xyXG4gICAgICBjb25zb2xlLmxvZygnc2l6ZSA9ICcsIHRoaXMuZ2V0U2l6ZUluTUIoZmlsZT8uc2l6ZSkpXHJcbiAgICAgIGlmKHRoaXMuZmlsZU9iamVjdFF1ZXVlLnNvbWUoZT0+ZS5maWxlTmFtZT09PSBmaWxlLm5hbWUpKXtcclxuICAgICAgICB0aGlzLmVycm9yKCdEb2N1bWVudCB3aXRoIHRoZSBzYW1lIGZpbGUgbmFtZSBhbHJlYWR5IGV4aXN0cy4nKTtcclxuICAgICAgICB0aGlzLnNob3dQcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5kb2NVcGxvYWRNb2RlbC5zaXplIT09bnVsbCAmJiB0aGlzLmdldFNpemVJbk1CKGZpbGU/LnNpemUpID4gdGhpcy5kb2NVcGxvYWRNb2RlbC5zaXplKSB7XHJcbiAgICAgICAgdGhpcy5lcnJvcignRmlsZSBzaXplIGNhbiBub3QgYmUgbW9yZSB0aGFuICcgKyB0aGlzLmRvY1VwbG9hZE1vZGVsLnNpemUgKyAnIE1CLicpO1xyXG4gICAgICAgIHRoaXMuc2hvd1Byb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKCF0aGlzLmNoZWNrRmlsZVR5cGUoZmlsZSx0aGlzLmZpbGVUeXBlcykpe1xyXG4gICAgICAgIHRoaXMuZXJyb3IoJ0ZpbGUgdHlwZSBub3QgYWxsb3dlZCcpO1xyXG4gICAgICAgIHRoaXMuc2hvd1Byb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChmaWxlKSB7XHJcbiAgICAgICAgZW5jb2RlZCA9IGF3YWl0IHRvQmFzZTY0KGZpbGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGZpbGVPYmplY3QgPSBuZXcgRmlsZU9iamVjdCh0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlPy5kb2NUeXBlLHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGU/LmRvY0Rlc2NyaXB0aW9uLCBmaWxlLm5hbWUsIGZpbGUudHlwZSwgZW5jb2RlZCk7XHJcbiAgICAgIHZhciB1cGxvYWRGaWxlRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe30pO1xyXG4gICAgICBpZiAodGhpcy5kb2NUeXBlLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB1cGxvYWRGaWxlRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICAgICAgJ2RvY1R5cGUnOiBbbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF1cclxuICAgICAgICB9KTtcclxuICAgICAgfSAgIFxyXG4gICAgICB0aGlzLnRhYmxlUm93cy5wdXNoKHVwbG9hZEZpbGVGb3JtKVxyXG4gICAgICB0aGlzLmZpbGVPYmplY3RRdWV1ZS5wdXNoKGZpbGVPYmplY3QpO1xyXG4gICAgIFxyXG4gICAgICB0aGlzLnVwbG9hZC5lbWl0KHRoaXMuZmlsZU9iamVjdFF1ZXVlKTtcclxuICAgIH1cclxuICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5zaG93UHJvZ3Jlc3MgPSBmYWxzZTtcclxuXHJcbiAgfVxyXG5cclxuICBhc3luYyBhZGRGaWxlVG9FbXBsb3llckRhdGEoZXZlbnQsZW1wbG95ZXIpe1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudC50YXJnZXQuZmlsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgZmlsZTogRmlsZSA9IGV2ZW50LnRhcmdldC5maWxlc1tpXTtcclxuICAgICAgbGV0IGVuY29kZWQ7XHJcbiAgICAgIGlmICh0aGlzLmRvY1VwbG9hZE1vZGVsLnNpemUhPT1udWxsICYmIHRoaXMuZ2V0U2l6ZUluTUIoZmlsZT8uc2l6ZSkgPiB0aGlzLmRvY1VwbG9hZE1vZGVsLnNpemUpIHtcclxuICAgICAgICB0aGlzLmVycm9yKCdGaWxlIHNpemUgY2FuIG5vdCBiZSBtb3JlIHRoYW4gJyArIHRoaXMuZG9jVXBsb2FkTW9kZWwuc2l6ZSArICcgTUIuJyk7XHJcbiAgICAgICAgdGhpcy5zaG93UHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaWYoIXRoaXMuY2hlY2tGaWxlVHlwZShmaWxlLHRoaXMuZmlsZVR5cGVzKSl7XHJcbiAgICAgICAgdGhpcy5lcnJvcignRmlsZSB0eXBlIG5vdCBhbGxvd2VkJyk7XHJcbiAgICAgICAgdGhpcy5zaG93UHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGZpbGUpIHtcclxuICAgICAgICBlbmNvZGVkID0gYXdhaXQgdG9CYXNlNjQoZmlsZSk7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgZmlsZU9iamVjdCA9IG5ldyBGaWxlT2JqZWN0KHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGU/LmRvY1R5cGUsdGhpcy5zZWxlY3RlZERvY3VtZW50VHlwZT8uZG9jRGVzY3JpcHRpb24sIGZpbGUubmFtZSwgZmlsZS50eXBlLCBlbmNvZGVkLGVtcGxveWVyLnJlY29yZElkLCBlbXBsb3llci5lbXBsb3llck5hbWUpOyAgICAgIFxyXG4gICAgICBlbXBsb3llci5maWxlID0gZmlsZU9iamVjdFxyXG4gICAgICB0aGlzLnVwbG9hZEVtcGxveWVyRmlsZS5lbWl0KHRoaXMuZW1wbG95ZXJEYXRhTW9kZWwpO1xyXG4gICAgfVxyXG4gICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gJyc7XHJcbiAgICB0aGlzLnNob3dQcm9ncmVzcyA9IGZhbHNlO1xyXG4gIH1cclxuICBcclxuICByZW1vdmVGaWxlRnJvbUVtcGxveWVyRGF0YShlbXBsb3llcil7XHJcbiAgICBlbXBsb3llci5maWxlID0gbnVsbFxyXG4gICAgdGhpcy51cGxvYWRFbXBsb3llckZpbGUuZW1pdCh0aGlzLmVtcGxveWVyRGF0YU1vZGVsKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUZyb21RdWV1ZShmaWxlVG9SZW1vdmUpIHtcclxuICAgIGxldCBpbmRleDtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5maWxlT2JqZWN0UXVldWUubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKHRoaXMuZmlsZU9iamVjdFF1ZXVlW2ldLmZpbGVOYW1lID09PSBmaWxlVG9SZW1vdmUuZmlsZU5hbWUpIHtcclxuICAgICAgICBpbmRleCA9IGk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHRoaXMuZG9jVHlwZURyb3Bkb3duLmxlbmd0aDsgaSsrKXtcclxuICAgICAgaWYodGhpcy5kb2NUeXBlRHJvcGRvd25baV0udmFsdWUuZG9jVHlwZT09PWZpbGVUb1JlbW92ZS5kb2NUeXBlKXtcclxuICAgICAgICAgdGhpcy5kb2NUeXBlRHJvcGRvd25baV0uZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgIH1cclxuICAgICB9XHJcbiAgICB0aGlzLnNob3dQcm9ncmVzcyA9IHRydWU7XHJcbiAgICB0aGlzLmZpbGVPYmplY3RRdWV1ZS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgdGhpcy50YWJsZVJvd3MucmVtb3ZlQXQoaW5kZXgpO1xyXG4gICAgdGhpcy5tYXBPZkZpbGVzLmRlbGV0ZShmaWxlVG9SZW1vdmUpO1xyXG4gICAgdGhpcy5zaG93UHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgIHRoaXMudXBsb2FkLmVtaXQoQXJyYXkuZnJvbSh0aGlzLm1hcE9mRmlsZXMudmFsdWVzKCkpKTtcclxuICAgIHRoaXMuZmlsZXMuZW1pdCh0aGlzLm1hcE9mRmlsZXMpO1xyXG5cclxuICB9XHJcblxyXG4gIGNoYW5nZURvY1R5cGUoZmlsZSxldmVudCl7XHJcblx0XHQgIGNvbnNvbGUubG9nKFwiMTY2IGNoYW5nZURvY1R5cGVcIik7XHJcbiAgICBpZihldmVudC52YWx1ZSA9PT0gbnVsbCl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBpbmRleDtcclxuICAgIGxldCBwcmV2U2VsZWN0ZWREb2MgOiBzdHJpbmc7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZmlsZU9iamVjdFF1ZXVlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICh0aGlzLmZpbGVPYmplY3RRdWV1ZVtpXS5maWxlTmFtZSA9PT0gZmlsZS5maWxlTmFtZSkge1xyXG4gICAgICAgIGluZGV4ID0gaTtcclxuICAgICAgICBwcmV2U2VsZWN0ZWREb2MgPSB0aGlzLmZpbGVPYmplY3RRdWV1ZVtpbmRleF0uZG9jVHlwZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5maWxlT2JqZWN0UXVldWVbaW5kZXhdLmRvY1R5cGUgPSBldmVudC52YWx1ZS5kb2NUeXBlO1xyXG4gICAgdGhpcy5maWxlT2JqZWN0UXVldWVbaW5kZXhdLm5hbWUgPSBldmVudC52YWx1ZS5kb2NEZXNjcmlwdGlvbjtcclxuXHJcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgdGhpcy5kb2NUeXBlRHJvcGRvd24ubGVuZ3RoOyBpKyspe1xyXG4gICAgICBpZihldmVudC52YWx1ZS5kb2NUeXBlPT09dGhpcy5kb2NUeXBlRHJvcGRvd25baV0udmFsdWUuZG9jVHlwZSl7XHJcbiAgICAgICAgdGhpcy5kb2NUeXBlRHJvcGRvd25baV0uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICB9ZWxzZSBpZih0aGlzLmRvY1R5cGVEcm9wZG93bltpXS52YWx1ZS5kb2NUeXBlPT09cHJldlNlbGVjdGVkRG9jKXtcclxuICAgICAgICB0aGlzLmRvY1R5cGVEcm9wZG93bltpXS5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcbiAgY2xlYXJEb2NUeXBlKGZpbGUpe1xyXG4gICAgbGV0IGluZGV4O1xyXG4gICAgbGV0IHByZXZTZWxlY3RlZERvYyA6IHN0cmluZztcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5maWxlT2JqZWN0UXVldWUubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKHRoaXMuZmlsZU9iamVjdFF1ZXVlW2ldLmZpbGVOYW1lID09PSBmaWxlLmZpbGVOYW1lKSB7XHJcbiAgICAgICAgaW5kZXggPSBpO1xyXG4gICAgICAgIHByZXZTZWxlY3RlZERvYyA9IHRoaXMuZmlsZU9iamVjdFF1ZXVlW2luZGV4XS5kb2NUeXBlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmZpbGVPYmplY3RRdWV1ZVtpbmRleF0uZG9jVHlwZSA9bnVsbDtcclxuICAgIHRoaXMuZmlsZU9iamVjdFF1ZXVlW2luZGV4XS5uYW1lID0gbnVsbDtcclxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCB0aGlzLmRvY1R5cGVEcm9wZG93bi5sZW5ndGg7IGkrKyl7XHJcbiAgICAgaWYodGhpcy5kb2NUeXBlRHJvcGRvd25baV0udmFsdWUuZG9jVHlwZT09PXByZXZTZWxlY3RlZERvYyl7XHJcbiAgICAgICAgdGhpcy5kb2NUeXBlRHJvcGRvd25baV0uZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICB1cGRhdGVRdWV1ZVdpdGhUeXBlKGZpbGVPYmplY3QpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiMTY2IHVwZGF0ZVF1ZXVlV2l0aFR5cGVcIik7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZmlsZU9iamVjdFF1ZXVlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICh0aGlzLmZpbGVPYmplY3RRdWV1ZVtpXS5maWxlTmFtZSA9PT0gZmlsZU9iamVjdC5maWxlTmFtZSkge1xyXG4gICAgICAgIHRoaXMuZmlsZU9iamVjdFF1ZXVlW2ldLmRvY1R5cGUgPSB0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlLmRvY1R5cGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gIH1cclxuXHJcbiAgYXN5bmMgcHJlc2VudFRvYXN0KG1zZywgY29sb3IpIHtcclxuICAgIGNvbnN0IHRvYXN0ID0gYXdhaXQgdGhpcy50b2FzdENvbnRyb2xsZXIuY3JlYXRlKHtcclxuICAgICAgbWVzc2FnZTogbXNnLFxyXG4gICAgICBkdXJhdGlvbjogNTAwMCxcclxuICAgICAgY29sb3I6IGNvbG9yLFxyXG4gICAgICBwb3NpdGlvbjogJ2JvdHRvbSdcclxuICAgIH0pO1xyXG4gICAgdG9hc3QucHJlc2VudCgpO1xyXG4gIH1cclxuXHJcbiAgc3VjY2Vzcyhtc2cpIHtcclxuICAgIHRoaXMucHJlc2VudFRvYXN0KG1zZywgJ3ByaW1hcnknKTtcclxuICB9XHJcblxyXG4gIGVycm9yKG1zZykge1xyXG4gICAgdGhpcy5wcmVzZW50VG9hc3QobXNnLCAnZGFuZ2VyJyk7XHJcbiAgfVxyXG5cclxuICBnZXRTaXplSW5NQihudW06IG51bWJlcikge1xyXG4gICAgcmV0dXJuIG51bSAvIDEwMjQgLyAxMDI0XHJcbiAgfVxyXG4gIFxyXG59XHJcblxyXG5jb25zdCB0b0Jhc2U2NCA9IGZpbGUgPT4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHJlc29sdmUocmVhZGVyLnJlc3VsdCk7XHJcbiAgcmVhZGVyLm9uZXJyb3IgPSByZWplY3Q7XHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgRmlsZU9iamVjdCB7XHJcbiAgZmlsZTogRmlsZTtcclxuICBkb2NUeXBlOiBzdHJpbmc7XHJcbiAgZmlsZU5hbWU6IHN0cmluZztcclxuICBjb250ZW50VHlwZTogc3RyaW5nO1xyXG4gIGZpbGVJbkJhc2VkNjQ6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcblx0cmVjb3JkSWQ/OiBzdHJpbmc7XHJcbiAgZW1wbG95ZXJOYW1lPzogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihkb2NUeXBlOiBzdHJpbmcsbmFtZTogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nLCBjb250ZW50VHlwZTogc3RyaW5nLCBmaWxlSW5CYXNlZDY0OiBzdHJpbmcsIHJlY29yZElkPzpzdHJpbmcsIGVtcGxveWVyTmFtZT86c3RyaW5nKSB7XHJcbiAgICB0aGlzLmRvY1R5cGUgPSBkb2NUeXBlO1xyXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgIHRoaXMuZmlsZU5hbWUgPSBmaWxlTmFtZTtcclxuICAgIHRoaXMuY29udGVudFR5cGUgPSBjb250ZW50VHlwZTtcclxuICAgIHRoaXMuZmlsZUluQmFzZWQ2NCA9IGZpbGVJbkJhc2VkNjQ7XHJcbiAgICB0aGlzLnJlY29yZElkID0gcmVjb3JkSWQ7XHJcbiAgICB0aGlzLmVtcGxveWVyTmFtZSA9IGVtcGxveWVyTmFtZTsgXHJcbiAgfVxyXG59XHJcblxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1BcnJheVwiICN1cGxvYWRGaWxlRm9ybURpcmVjdGl2ZT1cIm5nRm9ybVwiICpuZ0lmPVwiIWVtcGxveWVyRGF0YU1vZGVsXCI+XHJcbiAgICA8c2VjdGlvbiAqbmdJZj1cInRoaXMuY29udGV4dCAhPSAnc2lnbmF0dXJlJyAmJiB0aGlzLmNvbnRleHQgIT0ndXBsb2FkWmlwQ29kZXMnXCI+XHJcbiAgICA8cC10YWJsZSBkYXRhS2V5PVwiZmlsZU5hbWVcIiBbdmFsdWVdPVwiZmlsZU9iamVjdFF1ZXVlXCIgcmVzcG9uc2l2ZUxheW91dD1cInNjcm9sbFwiIFtsb2FkaW5nXT1cInNob3dQcm9ncmVzc1wiPlxyXG4gICAgICA8ZGl2ICpuZ0lmID0gXCJkb2NUeXBlLmxlbmd0aCA+IDA7IHRoZW4gc2hvd0RvY1R5cGVIZWFkaW5nOyBlbHNlIHJlbW92ZURvY1R5cGVIZWFkaW5nXCIgPjwvZGl2PlxyXG4gICAgICA8bmctdGVtcGxhdGUgI3Nob3dEb2NUeXBlSGVhZGluZz5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgIDx0aD5Eb2N1bWVudCBOYW1lPC90aD5cclxuICAgICAgICAgICAgPHRoIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICBEb2N1bWVudCBUeXBlXHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInByb29mT2ZBbnl0aGluZ1wiIGNsYXNzPVwicGwtMVwiPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cImljb25JbmZvXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAycHg7IG1hcmdpbi1sZWZ0OiA2cHg7IFwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgPHRoPjwvdGg+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjcmVtb3ZlRG9jVHlwZUhlYWRpbmc+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG4gICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICA8dGggY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIERvY3VtZW50IE5hbWVcclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicHJvb2ZPZkFueXRoaW5nXCIgY2xhc3M9XCJwbC0xXCI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwiaWNvbkluZm9cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgIDx0aD48L3RoPlxyXG4gICAgICAgICAgICA8dGg+PC90aD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtZmlsZU9iamVjdFF1ZXVlIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBmb3JtQXJyYXlOYW1lPVwidGFibGVSb3dBcnJheVwiPlxyXG4gICAgICAgICAgPHRyIFtmb3JtR3JvdXBOYW1lXT1cInJvd0luZGV4XCI+XHJcbiAgICAgICAgICAgIDx0ZD57eyBmaWxlT2JqZWN0UXVldWU/LmZpbGVOYW1lIH19PC90ZD5cclxuICAgICAgICAgICAgPHRkICpuZ0lmPVwiZG9jVHlwZS5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwiZG9jVHlwZURyb3Bkb3duXCIgZm9ybUNvbnRyb2xOYW1lPVwiZG9jVHlwZVwiIFsobmdNb2RlbCldPVwiZmlsZU9iamVjdFF1ZXVlLnNlbGVjdGVkRG9jdW1lbnRUeXBlXCIgXHJcbiAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cImNoYW5nZURvY1R5cGUoZmlsZU9iamVjdFF1ZXVlLCRldmVudClcIiBcclxuICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cImxhYmVsXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IGEgRG9jdW1lbnQgVHlwZVwiIGFwcGVuZFRvPWJvZHlcclxuICAgICAgICAgICAgICBbc3R5bGVdPVwieyd3aWR0aCc6JzkwJSd9XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cIm5nLWludmFsaWQgbmctZGlydHlcIlxyXG4gICAgICAgICAgICAgIFtzaG93Q2xlYXJdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgKG9uQ2xlYXIpPVwiY2xlYXJEb2NUeXBlKGZpbGVPYmplY3RRdWV1ZSlcIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnbmctaW52YWxpZCc6dGFibGVSb3dzLmNvbnRyb2xzW3Jvd0luZGV4XS5nZXQoJ2RvY1R5cGUnKT8uaW52YWxpZH1cIi8+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImlvbi10ZXh0LXJpZ2h0XCIgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OiB1bnNldFwiPlxyXG4gICAgICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiBmaWxsPVwib3V0bGluZVwiIHNpemU9XCJzbWFsbFwiIHBUb29sdGlwPVwiUmVtb3ZlXCIgKGNsaWNrKT1cInJlbW92ZUZyb21RdWV1ZShmaWxlT2JqZWN0UXVldWUpXCJcclxuICAgICAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIGNsYXNzPVwiaW9uLXBhZGRpbmctbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJ0cmFzaC1vdXRsaW5lXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIFxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+IFxyXG4gICAgICAgIDx0ciAqbmdJZj1cInByb29mT2ZBbnl0aGluZ1wiPlxyXG4gICAgICAgICAgPHRkICpuZ0lmPVwiZmlsZU9iamVjdFF1ZXVlLmxlbmd0aCA9PSAwXCIgY2xhc3M9XCJmaWxlLWlucHV0LWNvbnRhaW5lciBmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHItMVwiPjxiPisgQWRkPC9iPiBkb2N1bWVudDwvZGl2ID5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgI2ZpbGVJbnB1dCBbYWNjZXB0XT1cImFsbG93ZWRGaWxlVHlwZVwiXHJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImFkZFRvUXVldWUoJGV2ZW50KVwiIC8+XHJcbiAgICAgICAgICAgICAgPGlvbi1idXR0b24gYXJpYS1sYWJlbD1cIkFkZCBGaWxlc1wiIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiIGZpbGw9XCJvdXRsaW5lXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICdwbHVzJ11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8dGQgKm5nSWY9XCJmaWxlT2JqZWN0UXVldWUubGVuZ3RoID4gMFwiIGNsYXNzPVwiZmlsZS1pbnB1dC1jb250YWluZXIgZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByLTFcIj48Yj4rIEFkZDwvYj4gYW55IG90aGVyIGRvY3VtZW50PC9kaXYgPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cImZpbGVcIiAjZmlsZUlucHV0IFthY2NlcHRdPVwiYWxsb3dlZEZpbGVUeXBlXCJcclxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiYWRkVG9RdWV1ZSgkZXZlbnQpXCIgLz5cclxuICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiQWRkIEZpbGVzXCIgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCIgZmlsbD1cIm91dGxpbmVcIiBzaXplPVwic21hbGxcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIj5cclxuICAgICAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3BsdXMnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDx0ZD48L3RkPlxyXG4gICAgICAgICAgPHRkID5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvcC10YWJsZT5cclxuICA8L3NlY3Rpb24+XHJcbiAgPC9mb3JtPlxyXG4gIDx1bCAqbmdJZj1cImVtcGxveWVyRGF0YU1vZGVsXCIgY2xhc3M9XCJuby1idWxsZXRzIGdhcC0zXCI+XHJcbiAgICA8bGkgY2xhc3M9XCJwYi0zXCIgKm5nRm9yPVwibGV0IGVtcGxveWVyIG9mIGVtcGxveWVyRGF0YU1vZGVsOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgIDxwLWNhcmQgY2xhc3M9XCJwYi0yIGdhcC0zXCI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBjbGFzcz1cInAtM1wiIHBUZW1wbGF0ZT1cImNvbnRlbnRcIiBsZXQtZmlsZXMgbGV0LXVwbG9hZGVkRmlsZXM9XCJ1cGxvYWRlZEZpbGVzXCIgbGV0LXJlbW92ZUZpbGVDYWxsYmFjaz1cInJlbW92ZUZpbGVDYWxsYmFja1wiIGxldC1yZW1vdmVVcGxvYWRlZEZpbGVDYWxsYmFjaz1cInJlbW92ZVVwbG9hZGVkRmlsZUNhbGxiYWNrXCIgbGV0LWNob29zZUNhbGxiYWNrPVwiY2hvb3NlQ2FsbGJhY2tcIj5cclxuICAgICAgICBcclxuICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzPVwibS0wXCIgc3RseWU9XCJtYXJnaW46IDBcIj57e2VtcGxveWVyLmVtcGxveWVyTmFtZX19PC9oND5cclxuICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgZmxleC1jb2x1bW4gYm9yZGVyLTIgYm9yZGVyLWRhc2hlZCBib3JkZXItNDAwIHJvdW5kZWQtc20gcC0yXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhZW1wbG95ZXIuZmlsZVwiIGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLXVwbG9hZCBib3JkZXItMiBib3JkZXItY2lyY2xlIHAtMiBtLTIgdGV4dC14bCB0ZXh0LTQwMFwiPjwvaT5cclxuICAgICAgICAgICAgPGlucHV0IGlkPVwiZW1wbG95ZXJXb3JrU2VhcmNoRmlsZUlucHV0XCIgdHlwZT1cImZpbGVcIiAjZmlsZUlucHV0IFthY2NlcHRdPVwiYWxsb3dlZEZpbGVUeXBlXCJcclxuICAgICAgICAgICAgKGNoYW5nZSk9XCJhZGRGaWxlVG9FbXBsb3llckRhdGEoJGV2ZW50LGVtcGxveWVyKVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiIC8+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJBZGQgRmlsZXNcIiAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIiBmaWxsPVwib3V0bGluZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiIHN0eWxlPVwiZmxvYXQ6aW5saW5lLWVuZFwiPlxyXG4gICAgICAgICAgICAgIFVwbG9hZFxyXG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInB0LTRcIiBzdHlsZT1cImZvbnQtc2l6ZTogMTJweDtcIj5cclxuICAgICAgICAgICAgICB7e2ljb25JbmZvfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImVtcGxveWVyLmZpbGVcIj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGZsZXgtY29sdW1uIHAtMCBzbTpwLTIgZ2FwLTVcIj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNhcmQgbS0wIHB4LTYgZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LWNvbHVtbiBnYXAtMlwiXHJcbiAgICAgICAgICAgICAgPiBcclxuICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWZpbGVcIiBzdHlsZT1cImNvbG9yOiAjNDQ3OEFBXCI+PC9pPnt7IGVtcGxveWVyLmZpbGUuZmlsZU5hbWUgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJSZW1vdmUgRmlsZXNcIiBmaWxsPVwib3V0bGluZVwiIHNpemU9XCJzbWFsbFwiIHBUb29sdGlwPVwiUmVtb3ZlXCIgKGNsaWNrKT1cInJlbW92ZUZpbGVGcm9tRW1wbG95ZXJEYXRhKGVtcGxveWVyKVwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBjbGFzcz1cImlvbi1wYWRkaW5nLWxlZnRcIiBzdHlsZT1cImZsb2F0OiBpbmxpbmUtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwidHJhc2gtb3V0bGluZVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcblxyXG4gICAgICBcclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9wLWNhcmQ+XHJcbiAgICA8L2xpPlxyXG4gIDwvdWw+Il19