@reusa/ngx-reusa-app-lib 0.0.1320 → 0.0.1321

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (589) hide show
  1. package/README.md +46 -46
  2. package/esm2022/lib/annimations/app-animations.mjs +1 -1
  3. package/esm2022/lib/components/add-employer/add-employer.component.mjs +2404 -1286
  4. package/esm2022/lib/components/add-participant/add-participant.component.mjs +159 -105
  5. package/esm2022/lib/components/add-payment/add-payment.component.mjs +59 -53
  6. package/esm2022/lib/components/add-wage/add-wage.component.mjs +161 -0
  7. package/esm2022/lib/components/address/address.component.mjs +285 -150
  8. package/esm2022/lib/components/address-popup/address-popup.component.mjs +97 -0
  9. package/esm2022/lib/components/address-suggestion/address-suggestion.component.mjs +289 -0
  10. package/esm2022/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.mjs +245 -0
  11. package/esm2022/lib/components/associate-ssn/associate-ssn.component.mjs +203 -0
  12. package/esm2022/lib/components/bank-details/bank-details.component.mjs +79 -219
  13. package/esm2022/lib/components/captcha/captcha.component.mjs +6 -6
  14. package/esm2022/lib/components/card/card.component.mjs +1 -1
  15. package/esm2022/lib/components/claim-info/claim-info.component.mjs +408 -0
  16. package/esm2022/lib/components/contact-us/contact-us.component.mjs +17 -43
  17. package/esm2022/lib/components/content/content.component.mjs +1 -1
  18. package/esm2022/lib/components/correspondence-download/correspondence-download.component.mjs +3 -9
  19. package/esm2022/lib/components/dashboard-card/dashboard-card.component.mjs +32 -4
  20. package/esm2022/lib/components/dependent-grid/dependent-grid.component.mjs +30 -15
  21. package/esm2022/lib/components/disclosure/disclosure.component.mjs +1 -1
  22. package/esm2022/lib/components/dropdown/dropdown.component.mjs +4 -4
  23. package/esm2022/lib/components/dropdown/dropdown.interface.mjs +1 -1
  24. package/esm2022/lib/components/dua-request-page/dua-request-page.component.mjs +596 -0
  25. package/esm2022/lib/components/dua-request-popup/dua-request-popup.component.mjs +356 -0
  26. package/esm2022/lib/components/email-update/email-update.component.mjs +63 -140
  27. package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +363 -560
  28. package/esm2022/lib/components/employer-info/employer-info.component.mjs +319 -0
  29. package/esm2022/lib/components/employer-pay/employer-pay.component.mjs +238 -0
  30. package/esm2022/lib/components/employer-pay-grid/employer-pay-grid.component.mjs +302 -0
  31. package/esm2022/lib/components/error/error.component.mjs +22 -5
  32. package/esm2022/lib/components/farm-usage/farm-usage.component.mjs +172 -0
  33. package/esm2022/lib/components/fav-menu/fav-menu.component.mjs +1 -1
  34. package/esm2022/lib/components/file-download/file-download.component.mjs +1 -1
  35. package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +178 -49
  36. package/esm2022/lib/components/footer/footer.component.mjs +94 -83
  37. package/esm2022/lib/components/gross-earnings/gross-earnings.component.mjs +201 -0
  38. package/esm2022/lib/components/header/header.component.mjs +440 -174
  39. package/esm2022/lib/components/help/help.component.mjs +1 -1
  40. package/esm2022/lib/components/history-page/history-page.component.mjs +571 -0
  41. package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +25 -36
  42. package/esm2022/lib/components/idme/idme.component.mjs +84 -0
  43. package/esm2022/lib/components/info/info.component.mjs +4 -12
  44. package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +16 -22
  45. package/esm2022/lib/components/job-title/job-title.component.mjs +92 -97
  46. package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +143 -513
  47. package/esm2022/lib/components/link/link.component.mjs +1 -1
  48. package/esm2022/lib/components/maintenance-detector/maintenance-detector.component.mjs +1 -1
  49. package/esm2022/lib/components/mask/mask.component.mjs +1 -1
  50. package/esm2022/lib/components/menu/menu.component.mjs +69 -100
  51. package/esm2022/lib/components/mfa/mfa.component.mjs +158 -287
  52. package/esm2022/lib/components/mfa-popup/mfa-popup.component.mjs +11 -18
  53. package/esm2022/lib/components/money-expect/money-expect.component.mjs +158 -54
  54. package/esm2022/lib/components/msg/msg.component.mjs +1 -1
  55. package/esm2022/lib/components/news/news.component.mjs +1 -1
  56. package/esm2022/lib/components/offline-add-employer/offline-add-employer.component.mjs +3661 -0
  57. package/esm2022/lib/components/offline-bank-details/offline-bank-details.component.mjs +258 -0
  58. package/esm2022/lib/components/offline-employer-grid/offline-employer-grid.component.mjs +853 -0
  59. package/esm2022/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.mjs +251 -0
  60. package/esm2022/lib/components/overlay-info/overlay-info.component.mjs +1 -1
  61. package/esm2022/lib/components/page/page.component.mjs +1 -1
  62. package/esm2022/lib/components/profile/profile.component.mjs +717 -353
  63. package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +108 -38
  64. package/esm2022/lib/components/proof-of-anything/proof-of-anything.component.mjs +261 -0
  65. package/esm2022/lib/components/proof-of-document-upload/proof-of-document-upload.component.mjs +560 -0
  66. package/esm2022/lib/components/questionnaire/AppValidators.mjs +296 -47
  67. package/esm2022/lib/components/questionnaire/FbConstants.mjs +1 -1
  68. package/esm2022/lib/components/questionnaire/account-success/account-success.page.mjs +110 -65
  69. package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +377 -173
  70. package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +76 -95
  71. package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +855 -1122
  72. package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +207 -667
  73. package/esm2022/lib/components/questionnaire/form-builder/form-builder.page.mjs +28 -22
  74. package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +116 -32
  75. package/esm2022/lib/components/questionnaire/question-base.mjs +1 -1
  76. package/esm2022/lib/components/questionnaire/question-control.service.mjs +2 -1
  77. package/esm2022/lib/components/questionnaire/question.service.mjs +5 -7
  78. package/esm2022/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +15 -29
  79. package/esm2022/lib/components/read-more/read-more.component.mjs +6 -6
  80. package/esm2022/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +491 -237
  81. package/esm2022/lib/components/scrollable-text/scrollable-text.component.mjs +25 -0
  82. package/esm2022/lib/components/search-employer/search-employer.component.mjs +155 -30
  83. package/esm2022/lib/components/select/select.component.mjs +5 -10
  84. package/esm2022/lib/components/sign-ssn/sign-ssn.component.mjs +3 -3
  85. package/esm2022/lib/components/sms/sms.component.mjs +336 -0
  86. package/esm2022/lib/components/ssn/ssn.component.mjs +1 -1
  87. package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +52 -72
  88. package/esm2022/lib/components/test/test.component.mjs +1 -1
  89. package/esm2022/lib/components/user-login/user-login.component.mjs +139 -357
  90. package/esm2022/lib/components/wage-calculator/wage-calculator.component.mjs +527 -0
  91. package/esm2022/lib/components/wage-grid/wage-grid.component.mjs +274 -0
  92. package/esm2022/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.mjs +147 -0
  93. package/esm2022/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.mjs +167 -0
  94. package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +613 -237
  95. package/esm2022/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +114 -59
  96. package/esm2022/lib/components/weekly-certification/weekly-certification.component.mjs +806 -0
  97. package/esm2022/lib/components/weekly-confirmation/confirmation.component.mjs +129 -0
  98. package/esm2022/lib/components/weekly-interim-confirmation/interim-confirmation.component.mjs +136 -0
  99. package/esm2022/lib/components/weekly-summary-v2/summary.component-v2.mjs +72 -0
  100. package/esm2022/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.mjs +50 -0
  101. package/esm2022/lib/components/weekly-work-search-counter/work-search-counter.component.mjs +92 -0
  102. package/esm2022/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.mjs +1190 -0
  103. package/esm2022/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.mjs +685 -0
  104. package/esm2022/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.mjs +524 -0
  105. package/esm2022/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.mjs +394 -0
  106. package/esm2022/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.mjs +640 -0
  107. package/esm2022/lib/directives/auto-focus/auto-focus.directive.mjs +1 -1
  108. package/esm2022/lib/directives/caps-lock.directive.mjs +1 -1
  109. package/esm2022/lib/directives/required-roles/required-roles.directive.mjs +1 -1
  110. package/esm2022/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.mjs +33 -0
  111. package/esm2022/lib/enums/AddressValidationResponseEnum.mjs +9 -0
  112. package/esm2022/lib/enums/AddressValidationSourceFunctionEnum.mjs +5 -0
  113. package/esm2022/lib/enums/EmailStatusEnum.mjs +1 -1
  114. package/esm2022/lib/guards/auth.guard.mjs +50 -2
  115. package/esm2022/lib/guards/no-login/no-login.guard.mjs +1 -1
  116. package/esm2022/lib/interceptors/error-interceptor/http-error-interceptor.mjs +51 -3
  117. package/esm2022/lib/interceptors/header-interceptor/http-header.interceptor.mjs +1 -1
  118. package/esm2022/lib/models/ActiveClaimModel.mjs +3 -0
  119. package/esm2022/lib/models/CountyModel.mjs +3 -0
  120. package/esm2022/lib/models/DuaAppDataModel.mjs +3 -0
  121. package/esm2022/lib/models/DuaRequestModel.mjs +3 -0
  122. package/esm2022/lib/models/DuaRetroWeeksComponentModel.mjs +6 -0
  123. package/esm2022/lib/models/EmployerDetailSearchResult.mjs +1 -1
  124. package/esm2022/lib/models/EmployerInfoComponentModel.mjs +4 -0
  125. package/esm2022/lib/models/EmployerPayInfoModel.mjs +6 -0
  126. package/esm2022/lib/models/ErrorModel.mjs +1 -1
  127. package/esm2022/lib/models/FarmUsageComponentModel.mjs +2 -0
  128. package/esm2022/lib/models/FileModel.mjs +1 -1
  129. package/esm2022/lib/models/GrossEarningsModel.mjs +3 -0
  130. package/esm2022/lib/models/HelpConstants.mjs +5 -0
  131. package/esm2022/lib/models/LexisNexisOtpDetailsResponseModel.mjs +3 -0
  132. package/esm2022/lib/models/LibConstants.mjs +45 -6
  133. package/esm2022/lib/models/NotificationModel.mjs +1 -1
  134. package/esm2022/lib/models/OtpAuthModel.mjs +1 -1
  135. package/esm2022/lib/models/PaymentComponentModel.mjs +1 -1
  136. package/esm2022/lib/models/ReasonSeparationRequestModel.mjs +3 -0
  137. package/esm2022/lib/models/RetroWeeksModel.mjs +3 -0
  138. package/esm2022/lib/models/SecurityQuestionAnswerModel.mjs +3 -0
  139. package/esm2022/lib/models/SendOtpRequestModel.mjs +3 -0
  140. package/esm2022/lib/models/TrendModel.mjs +1 -1
  141. package/esm2022/lib/models/UserDetailsModel.mjs +1 -1
  142. package/esm2022/lib/models/UserModel.mjs +1 -1
  143. package/esm2022/lib/models/VerifyOtpRequestModel.mjs +3 -0
  144. package/esm2022/lib/models/WageCalculatorModel.mjs +3 -0
  145. package/esm2022/lib/models/WageInfoModel.mjs +4 -0
  146. package/esm2022/lib/models/addressValidation/AddressRecommendationModel.mjs +3 -0
  147. package/esm2022/lib/models/addressValidation/AddressValidationRequestComponentModel.mjs +3 -0
  148. package/esm2022/lib/models/addressValidation/AddressValidationResponseComponentModel.mjs +3 -0
  149. package/esm2022/lib/models/addressValidation/AddressValidationReturnComponentModel.mjs +3 -0
  150. package/esm2022/lib/models/claimant/ClaimantModel.mjs +1 -1
  151. package/esm2022/lib/models/claimant/JobResultsData.mjs +1 -1
  152. package/esm2022/lib/models/claimant/MatchingJobs.mjs +1 -1
  153. package/esm2022/lib/models/claimant/ResetPasswordModel.mjs +1 -1
  154. package/esm2022/lib/models/combo-model.mjs +343 -0
  155. package/esm2022/lib/models/dashboard-model.mjs +1 -1
  156. package/esm2022/lib/models/dependent.model.mjs +1 -1
  157. package/esm2022/lib/models/fileupload/DocUploadModel.mjs +7 -0
  158. package/esm2022/lib/models/fileupload/EmployerDataModel.mjs +3 -0
  159. package/esm2022/lib/models/fileupload/FileObject.mjs +3 -0
  160. package/esm2022/lib/models/fileupload/FileObjectArray.mjs +7 -0
  161. package/esm2022/lib/models/questionnaire/AppealParticipantModel.mjs +8 -0
  162. package/esm2022/lib/models/questionnaire/ClaimAppEmpResponseModel.mjs +1 -1
  163. package/esm2022/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +2 -1
  164. package/esm2022/lib/models/questionnaire/ClaimOnlyEmployerDataModel.mjs +1 -1
  165. package/esm2022/lib/models/questionnaire/ComboModel.mjs +96 -653
  166. package/esm2022/lib/models/questionnaire/ElementsModel.mjs +1 -1
  167. package/esm2022/lib/models/questionnaire/KeyValueModel.mjs +1 -1
  168. package/esm2022/lib/models/questionnaire/LegalDiscaimarModel.mjs +1 -1
  169. package/esm2022/lib/models/questionnaire/ScrollableTextModel.mjs +3 -0
  170. package/esm2022/lib/models/questionnaire/StatusModel.mjs +1 -1
  171. package/esm2022/lib/models/questionnaire/WbaHelperTextModel.mjs +3 -0
  172. package/esm2022/lib/models/weekly-cert/WorkSearchWaiverModel.mjs +3 -0
  173. package/esm2022/lib/models/weekly-cert/address-detail-model.mjs +2 -0
  174. package/esm2022/lib/models/weekly-cert/admin-leave-details-model.mjs +7 -0
  175. package/esm2022/lib/models/weekly-cert/employer-info-v2-model.mjs +7 -0
  176. package/esm2022/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.mjs +6 -0
  177. package/esm2022/lib/models/weekly-cert/weekly-certification-v2-model.mjs +34 -0
  178. package/esm2022/lib/models/weekly-cert/work-search-record-v2-model.mjs +15 -0
  179. package/esm2022/lib/models/weekly-cert/work-search-v2-model.mjs +11 -0
  180. package/esm2022/lib/ngx-reusa-app-lib.component.mjs +5 -5
  181. package/esm2022/lib/ngx-reusa-app-lib.module.mjs +135 -23
  182. package/esm2022/lib/ngx-reusa-app-lib.service.mjs +1 -1
  183. package/esm2022/lib/pages/BasePage.mjs +4 -23
  184. package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +22 -18
  185. package/esm2022/lib/pages/common/change-password/change-password.page.mjs +142 -124
  186. package/esm2022/lib/pages/common/landing/landing.component.mjs +7 -8
  187. package/esm2022/lib/pages/common/landing2/landing2.component.mjs +4 -4
  188. package/esm2022/lib/pages/common/login/login.component.mjs +7 -11
  189. package/esm2022/lib/pages/common/not-found/not-found.page.mjs +1 -1
  190. package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +14 -14
  191. package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +5 -5
  192. package/esm2022/lib/pages/common/unauthorized/unauthorized.page.mjs +1 -1
  193. package/esm2022/lib/pages/popovers/language/language.page.mjs +1 -2
  194. package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +4 -4
  195. package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +7 -2
  196. package/esm2022/lib/pages/popovers/user-search/user-search.component.mjs +1 -1
  197. package/esm2022/lib/pipes/filter.pipe.mjs +1 -1
  198. package/esm2022/lib/pipes/format-worksearch/format-worksearch.pipe.mjs +101 -0
  199. package/esm2022/lib/pipes/mask/mask.email.pipe.mjs +1 -1
  200. package/esm2022/lib/pipes/proper-case/proper-case.pipe.mjs +1 -1
  201. package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +2 -2
  202. package/esm2022/lib/pipes/trust-html/trust-html.pipe.mjs +1 -1
  203. package/esm2022/lib/services/address-validation-service/address-validation.service.mjs +151 -0
  204. package/esm2022/lib/services/appeal/appeal.service.mjs +37 -0
  205. package/esm2022/lib/services/base-service.mjs +4 -1
  206. package/esm2022/lib/services/birt-service/birt.service.mjs +57 -0
  207. package/esm2022/lib/services/captcha/captcha.service.mjs +1 -1
  208. package/esm2022/lib/services/chatbot/chatbot.service.mjs +1 -2
  209. package/esm2022/lib/services/chatbot/script.const.mjs +1 -1
  210. package/esm2022/lib/services/claimant/claimant.service.mjs +1 -1
  211. package/esm2022/lib/services/claimant-service/claimant.service.mjs +7 -13
  212. package/esm2022/lib/services/claims/claims.service.mjs +102 -14
  213. package/esm2022/lib/services/dms-service/dms.service.mjs +1 -1
  214. package/esm2022/lib/services/employer/employer-service.mjs +35 -0
  215. package/esm2022/lib/services/event-service/event-service.mjs +44 -0
  216. package/esm2022/lib/services/fpjs/fingerprint.service.mjs +1 -1
  217. package/esm2022/lib/services/google-analytics/google-analytics.service.mjs +1 -1
  218. package/esm2022/lib/services/help/help.service.mjs +1 -1
  219. package/esm2022/lib/services/idle/idle.service.mjs +1 -1
  220. package/esm2022/lib/services/logger/logger.service.mjs +1 -1
  221. package/esm2022/lib/services/login/login.service.mjs +29 -11
  222. package/esm2022/lib/services/maintenance/maintenance.service.mjs +1 -1
  223. package/esm2022/lib/services/notification/notification.service.mjs +1 -1
  224. package/esm2022/lib/services/offline-claims/offline-claims.service.mjs +327 -0
  225. package/esm2022/lib/services/questionnaire/questionnaire.service.mjs +4 -1
  226. package/esm2022/lib/services/questionnaire/validation.service.mjs +4 -1
  227. package/esm2022/lib/services/security-service/security.service.mjs +23 -6
  228. package/esm2022/lib/services/tour/tour.service.mjs +1 -1
  229. package/esm2022/lib/services/util/util.service.mjs +61 -5
  230. package/esm2022/lib/services/weekly-cert/review.service.mjs +101 -0
  231. package/esm2022/lib/services/weekly-cert/weekly-cert-v2.service.mjs +186 -14
  232. package/esm2022/lib/services/weekly-cert/weekly-cert.service.mjs +37 -0
  233. package/esm2022/lib/services/weekly-cert/work-search.service.mjs +58 -0
  234. package/esm2022/lib/validations/AppRegex.mjs +1 -3
  235. package/esm2022/lib/validations/AppValidators.mjs +84 -31
  236. package/esm2022/public-api.mjs +47 -5
  237. package/fesm2022/reusa-ngx-reusa-app-lib.mjs +40573 -22575
  238. package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
  239. package/lib/components/add-employer/add-employer.component.d.ts +137 -50
  240. package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
  241. package/lib/components/add-participant/add-participant.component.d.ts +11 -5
  242. package/lib/components/add-participant/add-participant.component.d.ts.map +1 -1
  243. package/lib/components/add-payment/add-payment.component.d.ts +9 -3
  244. package/lib/components/add-payment/add-payment.component.d.ts.map +1 -1
  245. package/lib/components/add-wage/add-wage.component.d.ts +30 -0
  246. package/lib/components/add-wage/add-wage.component.d.ts.map +1 -0
  247. package/lib/components/address/address.component.d.ts +42 -15
  248. package/lib/components/address/address.component.d.ts.map +1 -1
  249. package/lib/components/address-popup/address-popup.component.d.ts +16 -0
  250. package/lib/components/address-popup/address-popup.component.d.ts.map +1 -0
  251. package/lib/components/address-suggestion/address-suggestion.component.d.ts +43 -0
  252. package/lib/components/address-suggestion/address-suggestion.component.d.ts.map +1 -0
  253. package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts +37 -0
  254. package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts.map +1 -0
  255. package/lib/components/associate-ssn/associate-ssn.component.d.ts +33 -0
  256. package/lib/components/associate-ssn/associate-ssn.component.d.ts.map +1 -0
  257. package/lib/components/bank-details/bank-details.component.d.ts +1 -23
  258. package/lib/components/bank-details/bank-details.component.d.ts.map +1 -1
  259. package/lib/components/claim-info/claim-info.component.d.ts +49 -0
  260. package/lib/components/claim-info/claim-info.component.d.ts.map +1 -0
  261. package/lib/components/contact-us/contact-us.component.d.ts +1 -4
  262. package/lib/components/contact-us/contact-us.component.d.ts.map +1 -1
  263. package/lib/components/correspondence-download/correspondence-download.component.d.ts.map +1 -1
  264. package/lib/components/dashboard-card/dashboard-card.component.d.ts.map +1 -1
  265. package/lib/components/dua-request-page/dua-request-page.component.d.ts +74 -0
  266. package/lib/components/dua-request-page/dua-request-page.component.d.ts.map +1 -0
  267. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts +61 -0
  268. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts.map +1 -0
  269. package/lib/components/email-update/email-update.component.d.ts +1 -12
  270. package/lib/components/email-update/email-update.component.d.ts.map +1 -1
  271. package/lib/components/employer-grid/employer-grid.component.d.ts +21 -14
  272. package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
  273. package/lib/components/employer-info/employer-info.component.d.ts +50 -0
  274. package/lib/components/employer-info/employer-info.component.d.ts.map +1 -0
  275. package/lib/components/employer-pay/employer-pay.component.d.ts +51 -0
  276. package/lib/components/employer-pay/employer-pay.component.d.ts.map +1 -0
  277. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts +43 -0
  278. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts.map +1 -0
  279. package/lib/components/error/error.component.d.ts +3 -2
  280. package/lib/components/error/error.component.d.ts.map +1 -1
  281. package/lib/components/farm-usage/farm-usage.component.d.ts +33 -0
  282. package/lib/components/farm-usage/farm-usage.component.d.ts.map +1 -0
  283. package/lib/components/file-uploader/file-uploader.component.d.ts +5 -1
  284. package/lib/components/file-uploader/file-uploader.component.d.ts.map +1 -1
  285. package/lib/components/footer/footer.component.d.ts.map +1 -1
  286. package/lib/components/gross-earnings/gross-earnings.component.d.ts +42 -0
  287. package/lib/components/gross-earnings/gross-earnings.component.d.ts.map +1 -0
  288. package/lib/components/header/header.component.d.ts +17 -5
  289. package/lib/components/header/header.component.d.ts.map +1 -1
  290. package/lib/components/history-page/history-page.component.d.ts +80 -0
  291. package/lib/components/history-page/history-page.component.d.ts.map +1 -0
  292. package/lib/components/idme/idme.component.d.ts +19 -0
  293. package/lib/components/idme/idme.component.d.ts.map +1 -0
  294. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +1 -3
  295. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts.map +1 -1
  296. package/lib/components/job-title/job-title.component.d.ts +22 -23
  297. package/lib/components/job-title/job-title.component.d.ts.map +1 -1
  298. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +5 -6
  299. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -1
  300. package/lib/components/menu/menu.component.d.ts +3 -12
  301. package/lib/components/menu/menu.component.d.ts.map +1 -1
  302. package/lib/components/mfa/mfa.component.d.ts +7 -19
  303. package/lib/components/mfa/mfa.component.d.ts.map +1 -1
  304. package/lib/components/mfa-popup/mfa-popup.component.d.ts +6 -8
  305. package/lib/components/mfa-popup/mfa-popup.component.d.ts.map +1 -1
  306. package/lib/components/money-expect/money-expect.component.d.ts +15 -4
  307. package/lib/components/money-expect/money-expect.component.d.ts.map +1 -1
  308. package/lib/components/offline-add-employer/offline-add-employer.component.d.ts +311 -0
  309. package/lib/components/offline-add-employer/offline-add-employer.component.d.ts.map +1 -0
  310. package/lib/components/offline-bank-details/offline-bank-details.component.d.ts +33 -0
  311. package/lib/components/offline-bank-details/offline-bank-details.component.d.ts.map +1 -0
  312. package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts +97 -0
  313. package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts.map +1 -0
  314. package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts +33 -0
  315. package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts.map +1 -0
  316. package/lib/components/profile/profile.component.d.ts +81 -49
  317. package/lib/components/profile/profile.component.d.ts.map +1 -1
  318. package/lib/components/profile-redirect/profile-redirect.component.d.ts +9 -2
  319. package/lib/components/profile-redirect/profile-redirect.component.d.ts.map +1 -1
  320. package/lib/components/proof-of-anything/proof-of-anything.component.d.ts +54 -0
  321. package/lib/components/proof-of-anything/proof-of-anything.component.d.ts.map +1 -0
  322. package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts +74 -0
  323. package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts.map +1 -0
  324. package/lib/components/questionnaire/AppValidators.d.ts +1 -0
  325. package/lib/components/questionnaire/AppValidators.d.ts.map +1 -1
  326. package/lib/components/questionnaire/account-success/account-success.page.d.ts +13 -10
  327. package/lib/components/questionnaire/account-success/account-success.page.d.ts.map +1 -1
  328. package/lib/components/questionnaire/common-success/common-success.page.d.ts +7 -1
  329. package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
  330. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts +3 -1
  331. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts.map +1 -1
  332. package/lib/components/questionnaire/dynamic-form-question.component.d.ts +31 -33
  333. package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
  334. package/lib/components/questionnaire/dynamic-form.component.d.ts +10 -34
  335. package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
  336. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts +0 -7
  337. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts.map +1 -1
  338. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts +7 -1
  339. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts.map +1 -1
  340. package/lib/components/questionnaire/question-control.service.d.ts.map +1 -1
  341. package/lib/components/questionnaire/question.service.d.ts +0 -1
  342. package/lib/components/questionnaire/question.service.d.ts.map +1 -1
  343. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts +1 -7
  344. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts.map +1 -1
  345. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts +11 -3
  346. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts.map +1 -1
  347. package/lib/components/scrollable-text/scrollable-text.component.d.ts +11 -0
  348. package/lib/components/scrollable-text/scrollable-text.component.d.ts.map +1 -0
  349. package/lib/components/search-employer/search-employer.component.d.ts +5 -4
  350. package/lib/components/search-employer/search-employer.component.d.ts.map +1 -1
  351. package/lib/components/sms/sms.component.d.ts +63 -0
  352. package/lib/components/sms/sms.component.d.ts.map +1 -0
  353. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +1 -5
  354. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts.map +1 -1
  355. package/lib/components/user-login/user-login.component.d.ts +5 -38
  356. package/lib/components/user-login/user-login.component.d.ts.map +1 -1
  357. package/lib/components/wage-calculator/wage-calculator.component.d.ts +44 -0
  358. package/lib/components/wage-calculator/wage-calculator.component.d.ts.map +1 -0
  359. package/lib/components/wage-grid/wage-grid.component.d.ts +43 -0
  360. package/lib/components/wage-grid/wage-grid.component.d.ts.map +1 -0
  361. package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts +28 -0
  362. package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts.map +1 -0
  363. package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts +28 -0
  364. package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts.map +1 -0
  365. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +27 -10
  366. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -1
  367. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts +9 -3
  368. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts.map +1 -1
  369. package/lib/components/weekly-certification/weekly-certification.component.d.ts +101 -0
  370. package/lib/components/weekly-certification/weekly-certification.component.d.ts.map +1 -0
  371. package/lib/components/weekly-confirmation/confirmation.component.d.ts +21 -0
  372. package/lib/components/weekly-confirmation/confirmation.component.d.ts.map +1 -0
  373. package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts +34 -0
  374. package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts.map +1 -0
  375. package/lib/components/weekly-summary-v2/summary.component-v2.d.ts +17 -0
  376. package/lib/components/weekly-summary-v2/summary.component-v2.d.ts.map +1 -0
  377. package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts +10 -0
  378. package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts.map +1 -0
  379. package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts +17 -0
  380. package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts.map +1 -0
  381. package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts +105 -0
  382. package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts.map +1 -0
  383. package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts +71 -0
  384. package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts.map +1 -0
  385. package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts +59 -0
  386. package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts.map +1 -0
  387. package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts +47 -0
  388. package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts.map +1 -0
  389. package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts +78 -0
  390. package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts.map +1 -0
  391. package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts +8 -0
  392. package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts.map +1 -0
  393. package/lib/enums/AddressValidationResponseEnum.d.ts +8 -0
  394. package/lib/enums/AddressValidationResponseEnum.d.ts.map +1 -0
  395. package/lib/enums/AddressValidationSourceFunctionEnum.d.ts +4 -0
  396. package/lib/enums/AddressValidationSourceFunctionEnum.d.ts.map +1 -0
  397. package/lib/guards/auth.guard.d.ts.map +1 -1
  398. package/lib/interceptors/error-interceptor/http-error-interceptor.d.ts.map +1 -1
  399. package/lib/models/ActiveClaimModel.d.ts +8 -0
  400. package/lib/models/ActiveClaimModel.d.ts.map +1 -0
  401. package/lib/models/CountyModel.d.ts +8 -0
  402. package/lib/models/CountyModel.d.ts.map +1 -0
  403. package/lib/models/DuaAppDataModel.d.ts +5 -0
  404. package/lib/models/DuaAppDataModel.d.ts.map +1 -0
  405. package/lib/models/DuaRequestModel.d.ts +10 -0
  406. package/lib/models/DuaRequestModel.d.ts.map +1 -0
  407. package/lib/models/DuaRetroWeeksComponentModel.d.ts +5 -0
  408. package/lib/models/DuaRetroWeeksComponentModel.d.ts.map +1 -0
  409. package/lib/models/EmployerDetailSearchResult.d.ts +4 -1
  410. package/lib/models/EmployerDetailSearchResult.d.ts.map +1 -1
  411. package/lib/models/EmployerInfoComponentModel.d.ts +9 -0
  412. package/lib/models/EmployerInfoComponentModel.d.ts.map +1 -0
  413. package/lib/models/EmployerPayInfoModel.d.ts +20 -0
  414. package/lib/models/EmployerPayInfoModel.d.ts.map +1 -0
  415. package/lib/models/FarmUsageComponentModel.d.ts +10 -0
  416. package/lib/models/FarmUsageComponentModel.d.ts.map +1 -0
  417. package/lib/models/GrossEarningsModel.d.ts +6 -0
  418. package/lib/models/GrossEarningsModel.d.ts.map +1 -0
  419. package/lib/models/HelpConstants.d.ts +5 -0
  420. package/lib/models/HelpConstants.d.ts.map +1 -0
  421. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts +7 -0
  422. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts.map +1 -0
  423. package/lib/models/LibConstants.d.ts +40 -1
  424. package/lib/models/LibConstants.d.ts.map +1 -1
  425. package/lib/models/PaymentComponentModel.d.ts +1 -1
  426. package/lib/models/PaymentComponentModel.d.ts.map +1 -1
  427. package/lib/models/ReasonSeparationRequestModel.d.ts +7 -0
  428. package/lib/models/ReasonSeparationRequestModel.d.ts.map +1 -0
  429. package/lib/models/RetroWeeksModel.d.ts +11 -0
  430. package/lib/models/RetroWeeksModel.d.ts.map +1 -0
  431. package/lib/models/SecurityQuestionAnswerModel.d.ts +7 -0
  432. package/lib/models/SecurityQuestionAnswerModel.d.ts.map +1 -0
  433. package/lib/models/SendOtpRequestModel.d.ts +12 -0
  434. package/lib/models/SendOtpRequestModel.d.ts.map +1 -0
  435. package/lib/models/VerifyOtpRequestModel.d.ts +8 -0
  436. package/lib/models/VerifyOtpRequestModel.d.ts.map +1 -0
  437. package/lib/models/WageCalculatorModel.d.ts +15 -0
  438. package/lib/models/WageCalculatorModel.d.ts.map +1 -0
  439. package/lib/models/WageInfoModel.d.ts +9 -0
  440. package/lib/models/WageInfoModel.d.ts.map +1 -0
  441. package/lib/models/addressValidation/AddressRecommendationModel.d.ts +12 -0
  442. package/lib/models/addressValidation/AddressRecommendationModel.d.ts.map +1 -0
  443. package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts +11 -0
  444. package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts.map +1 -0
  445. package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts +6 -0
  446. package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts.map +1 -0
  447. package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts +16 -0
  448. package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts.map +1 -0
  449. package/lib/models/combo-model.d.ts +42 -0
  450. package/lib/models/combo-model.d.ts.map +1 -0
  451. package/lib/models/dashboard-model.d.ts +22 -0
  452. package/lib/models/dashboard-model.d.ts.map +1 -1
  453. package/lib/models/fileupload/DocUploadModel.d.ts +22 -0
  454. package/lib/models/fileupload/DocUploadModel.d.ts.map +1 -0
  455. package/lib/models/fileupload/EmployerDataModel.d.ts +6 -0
  456. package/lib/models/fileupload/EmployerDataModel.d.ts.map +1 -0
  457. package/lib/models/fileupload/FileObject.d.ts +8 -0
  458. package/lib/models/fileupload/FileObject.d.ts.map +1 -0
  459. package/lib/models/fileupload/FileObjectArray.d.ts +8 -0
  460. package/lib/models/fileupload/FileObjectArray.d.ts.map +1 -0
  461. package/lib/models/questionnaire/AppealParticipantModel.d.ts +17 -0
  462. package/lib/models/questionnaire/AppealParticipantModel.d.ts.map +1 -0
  463. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts +3 -0
  464. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts.map +1 -1
  465. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +13 -4
  466. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts.map +1 -1
  467. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts +4 -1
  468. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts.map +1 -1
  469. package/lib/models/questionnaire/ComboModel.d.ts +14 -82
  470. package/lib/models/questionnaire/ComboModel.d.ts.map +1 -1
  471. package/lib/models/questionnaire/ElementsModel.d.ts +0 -1
  472. package/lib/models/questionnaire/ElementsModel.d.ts.map +1 -1
  473. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts +2 -0
  474. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts.map +1 -1
  475. package/lib/models/questionnaire/ScrollableTextModel.d.ts +4 -0
  476. package/lib/models/questionnaire/ScrollableTextModel.d.ts.map +1 -0
  477. package/lib/models/questionnaire/StatusModel.d.ts +1 -0
  478. package/lib/models/questionnaire/StatusModel.d.ts.map +1 -1
  479. package/lib/models/questionnaire/WbaHelperTextModel.d.ts +4 -0
  480. package/lib/models/questionnaire/WbaHelperTextModel.d.ts.map +1 -0
  481. package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts +9 -0
  482. package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts.map +1 -0
  483. package/lib/models/weekly-cert/address-detail-model.d.ts +14 -0
  484. package/lib/models/weekly-cert/address-detail-model.d.ts.map +1 -0
  485. package/lib/models/weekly-cert/admin-leave-details-model.d.ts +15 -0
  486. package/lib/models/weekly-cert/admin-leave-details-model.d.ts.map +1 -0
  487. package/lib/models/weekly-cert/employer-info-v2-model.d.ts +27 -0
  488. package/lib/models/weekly-cert/employer-info-v2-model.d.ts.map +1 -0
  489. package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts +57 -0
  490. package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts.map +1 -0
  491. package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts +59 -0
  492. package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts.map +1 -0
  493. package/lib/models/weekly-cert/work-search-record-v2-model.d.ts +66 -0
  494. package/lib/models/weekly-cert/work-search-record-v2-model.d.ts.map +1 -0
  495. package/lib/models/weekly-cert/work-search-v2-model.d.ts +18 -0
  496. package/lib/models/weekly-cert/work-search-v2-model.d.ts.map +1 -0
  497. package/lib/ngx-reusa-app-lib.module.d.ts +124 -86
  498. package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -1
  499. package/lib/pages/BasePage.d.ts +3 -6
  500. package/lib/pages/BasePage.d.ts.map +1 -1
  501. package/lib/pages/common/change-password/change-password.page.d.ts +3 -0
  502. package/lib/pages/common/change-password/change-password.page.d.ts.map +1 -1
  503. package/lib/pages/common/login/login.component.d.ts.map +1 -1
  504. package/lib/pages/popovers/language/language.page.d.ts.map +1 -1
  505. package/lib/pages/popovers/my-profile/my-profile.page.d.ts.map +1 -1
  506. package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts +14 -0
  507. package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts.map +1 -0
  508. package/lib/services/address-validation-service/address-validation.service.d.ts +44 -0
  509. package/lib/services/address-validation-service/address-validation.service.d.ts.map +1 -0
  510. package/lib/services/appeal/appeal.service.d.ts +16 -0
  511. package/lib/services/appeal/appeal.service.d.ts.map +1 -0
  512. package/lib/services/base-service.d.ts +12 -0
  513. package/lib/services/base-service.d.ts.map +1 -1
  514. package/lib/services/birt-service/birt.service.d.ts +17 -0
  515. package/lib/services/birt-service/birt.service.d.ts.map +1 -0
  516. package/lib/services/claimant-service/claimant.service.d.ts +5 -6
  517. package/lib/services/claimant-service/claimant.service.d.ts.map +1 -1
  518. package/lib/services/claims/claims.service.d.ts +38 -5
  519. package/lib/services/claims/claims.service.d.ts.map +1 -1
  520. package/lib/services/employer/employer-service.d.ts +16 -0
  521. package/lib/services/employer/employer-service.d.ts.map +1 -0
  522. package/lib/services/event-service/event-service.d.ts +20 -0
  523. package/lib/services/event-service/event-service.d.ts.map +1 -0
  524. package/lib/services/login/login.service.d.ts +5 -3
  525. package/lib/services/login/login.service.d.ts.map +1 -1
  526. package/lib/services/offline-claims/offline-claims.service.d.ts +64 -0
  527. package/lib/services/offline-claims/offline-claims.service.d.ts.map +1 -0
  528. package/lib/services/questionnaire/questionnaire.service.d.ts +1 -0
  529. package/lib/services/questionnaire/questionnaire.service.d.ts.map +1 -1
  530. package/lib/services/questionnaire/validation.service.d.ts +3 -0
  531. package/lib/services/questionnaire/validation.service.d.ts.map +1 -1
  532. package/lib/services/security-service/security.service.d.ts +12 -4
  533. package/lib/services/security-service/security.service.d.ts.map +1 -1
  534. package/lib/services/util/util.service.d.ts +6 -0
  535. package/lib/services/util/util.service.d.ts.map +1 -1
  536. package/lib/services/weekly-cert/review.service.d.ts +23 -0
  537. package/lib/services/weekly-cert/review.service.d.ts.map +1 -0
  538. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts +47 -5
  539. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts.map +1 -1
  540. package/lib/services/weekly-cert/weekly-cert.service.d.ts +17 -0
  541. package/lib/services/weekly-cert/weekly-cert.service.d.ts.map +1 -0
  542. package/lib/services/weekly-cert/work-search.service.d.ts +26 -0
  543. package/lib/services/weekly-cert/work-search.service.d.ts.map +1 -0
  544. package/lib/validations/AppRegex.d.ts +0 -2
  545. package/lib/validations/AppRegex.d.ts.map +1 -1
  546. package/lib/validations/AppValidators.d.ts +20 -14
  547. package/lib/validations/AppValidators.d.ts.map +1 -1
  548. package/package.json +2 -2
  549. package/public-api.d.ts +46 -4
  550. package/public-api.d.ts.map +1 -1
  551. package/esm2022/lib/components/lexis-nexis/lexis-nexis.component.mjs +0 -402
  552. package/esm2022/lib/components/mfa2/mfa2.component.mjs +0 -285
  553. package/esm2022/lib/components/security-question/security-question.component.mjs +0 -199
  554. package/esm2022/lib/models/LexisNexisAccountCreationModel.mjs +0 -2
  555. package/esm2022/lib/models/LexisNexisAuthSelectionRequestModel.mjs +0 -2
  556. package/esm2022/lib/models/LexisNexisAuthSelectionResponseModel.mjs +0 -2
  557. package/esm2022/lib/models/LexisNexisEnabledResponseModel.mjs +0 -2
  558. package/esm2022/lib/models/LexisNexisResponseModel.mjs +0 -3
  559. package/esm2022/lib/models/PartialEmploymentModel.mjs +0 -3
  560. package/esm2022/lib/models/SecurityQuestionModel.mjs +0 -3
  561. package/esm2022/lib/services/claimant-service/claimant-usps-redirect.service.mjs +0 -36
  562. package/esm2022/lib/services/lexis-nexis/lexis.nexis.service.mjs +0 -60
  563. package/esm2022/lib/services/ovp/ovp.service.mjs +0 -43
  564. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts +0 -59
  565. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +0 -1
  566. package/lib/components/mfa2/mfa2.component.d.ts +0 -48
  567. package/lib/components/mfa2/mfa2.component.d.ts.map +0 -1
  568. package/lib/components/security-question/security-question.component.d.ts +0 -37
  569. package/lib/components/security-question/security-question.component.d.ts.map +0 -1
  570. package/lib/models/LexisNexisAccountCreationModel.d.ts +0 -15
  571. package/lib/models/LexisNexisAccountCreationModel.d.ts.map +0 -1
  572. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts +0 -16
  573. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts.map +0 -1
  574. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts +0 -39
  575. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts.map +0 -1
  576. package/lib/models/LexisNexisEnabledResponseModel.d.ts +0 -5
  577. package/lib/models/LexisNexisEnabledResponseModel.d.ts.map +0 -1
  578. package/lib/models/LexisNexisResponseModel.d.ts +0 -7
  579. package/lib/models/LexisNexisResponseModel.d.ts.map +0 -1
  580. package/lib/models/PartialEmploymentModel.d.ts +0 -6
  581. package/lib/models/PartialEmploymentModel.d.ts.map +0 -1
  582. package/lib/models/SecurityQuestionModel.d.ts +0 -7
  583. package/lib/models/SecurityQuestionModel.d.ts.map +0 -1
  584. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts +0 -16
  585. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts.map +0 -1
  586. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts +0 -26
  587. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts.map +0 -1
  588. package/lib/services/ovp/ovp.service.d.ts +0 -17
  589. package/lib/services/ovp/ovp.service.d.ts.map +0 -1
@@ -2,12 +2,13 @@ import { Component, EventEmitter, Input, Output, ViewChildren } from "@angular/c
2
2
  import { combineLatest } from "rxjs";
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../../../services/questionnaire/questionnaire.service";
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/dialog";
9
- import * as i6 from "../render-questionnaire/render-questionnaire.page";
10
- import * as i7 from "@ngx-translate/core";
5
+ import * as i2 from "../../../services/logger/logger.service";
6
+ import * as i3 from "@ionic/angular";
7
+ import * as i4 from "@angular/common";
8
+ import * as i5 from "primeng/api";
9
+ import * as i6 from "primeng/dialog";
10
+ import * as i7 from "../render-questionnaire/render-questionnaire.page";
11
+ import * as i8 from "@ngx-translate/core";
11
12
  const _c0 = ["fbs"];
12
13
  function MultiQuestionnaireComponent_1_ng_template_0_Template(rf, ctx) { if (rf & 1) {
13
14
  i0.ɵɵelementStart(0, "span", 3);
@@ -57,7 +58,7 @@ function MultiQuestionnaireComponent_div_3_Template(rf, ctx) { if (rf & 1) {
57
58
  i0.ɵɵelementEnd()()()();
58
59
  } if (rf & 2) {
59
60
  i0.ɵɵadvance(4);
60
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 2, "common.response.saved"));
61
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 2, "Response saved successfully."));
61
62
  i0.ɵɵadvance(5);
62
63
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(10, 4, "Close"));
63
64
  } }
@@ -67,18 +68,18 @@ function MultiQuestionnaireComponent_div_4_Template(rf, ctx) { if (rf & 1) {
67
68
  i0.ɵɵelement(2, "ion-icon", 12);
68
69
  i0.ɵɵelementStart(3, "h1");
69
70
  i0.ɵɵtext(4);
70
- i0.ɵɵpipe(5, "translate");
71
71
  i0.ɵɵelementEnd()();
72
- i0.ɵɵelementStart(6, "ion-row", 9)(7, "ion-col", 10)(8, "ion-button", 11);
73
- i0.ɵɵlistener("click", function MultiQuestionnaireComponent_div_4_Template_ion_button_click_8_listener() { i0.ɵɵrestoreView(_r17); const ctx_r16 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r16.close()); });
74
- i0.ɵɵtext(9);
75
- i0.ɵɵpipe(10, "translate");
72
+ i0.ɵɵelementStart(5, "ion-row", 9)(6, "ion-col", 10)(7, "ion-button", 11);
73
+ i0.ɵɵlistener("click", function MultiQuestionnaireComponent_div_4_Template_ion_button_click_7_listener() { i0.ɵɵrestoreView(_r17); const ctx_r16 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r16.close()); });
74
+ i0.ɵɵtext(8);
75
+ i0.ɵɵpipe(9, "translate");
76
76
  i0.ɵɵelementEnd()()()();
77
77
  } if (rf & 2) {
78
+ const ctx_r3 = i0.ɵɵnextContext();
78
79
  i0.ɵɵadvance(4);
79
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 2, "common.response.not.saved"));
80
- i0.ɵɵadvance(5);
81
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(10, 4, "common.close"));
80
+ i0.ɵɵtextInterpolate(ctx_r3.errorText ? ctx_r3.errorText : "Could not save response. Please try again.");
81
+ i0.ɵɵadvance(4);
82
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(9, 2, "Close"));
82
83
  } }
83
84
  function MultiQuestionnaireComponent_p_footer_5_ion_button_3_Template(rf, ctx) { if (rf & 1) {
84
85
  const _r20 = i0.ɵɵgetCurrentView();
@@ -89,7 +90,7 @@ function MultiQuestionnaireComponent_p_footer_5_ion_button_3_Template(rf, ctx) {
89
90
  i0.ɵɵelementEnd();
90
91
  } if (rf & 2) {
91
92
  i0.ɵɵadvance(1);
92
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "common.close"));
93
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "Close"));
93
94
  } }
94
95
  function MultiQuestionnaireComponent_p_footer_5_Template(rf, ctx) { if (rf & 1) {
95
96
  const _r22 = i0.ɵɵgetCurrentView();
@@ -105,13 +106,14 @@ function MultiQuestionnaireComponent_p_footer_5_Template(rf, ctx) { if (rf & 1)
105
106
  i0.ɵɵadvance(3);
106
107
  i0.ɵɵproperty("ngIf", ctx_r4.showClose);
107
108
  i0.ɵɵadvance(2);
108
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 2, "common.submit"));
109
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 2, "Submit"));
109
110
  } }
110
111
  const _c1 = () => ({ width: "45vw", height: "inherit" });
111
112
  const _c2 = () => ({ "1200px": "660px", "992px": "660px", "768px": "660px", "576px": "100vw" });
112
113
  export class MultiQuestionnaireComponent {
113
- constructor(questionnaireService) {
114
+ constructor(questionnaireService, logger) {
114
115
  this.questionnaireService = questionnaireService;
116
+ this.logger = logger;
115
117
  this.showClose = true;
116
118
  this.autoSave = false;
117
119
  this.modelCancel = new EventEmitter();
@@ -124,6 +126,7 @@ export class MultiQuestionnaireComponent {
124
126
  this.showError = false;
125
127
  this.qeResponse = new Map();
126
128
  this.qeResponseSaveModel = new Map();
129
+ this.count = 0;
127
130
  }
128
131
  ngOnInit() {
129
132
  }
@@ -133,13 +136,30 @@ export class MultiQuestionnaireComponent {
133
136
  });
134
137
  }
135
138
  complete(event) {
136
- let qId = event.potentialIssueId || event.questionnaireId || event.questionnaireIds[0];
137
- this.qeResponseSaveModel.set(qId, event);
139
+ this.count = this.count + 1;
140
+ this.logger.debug("completed event in multi called...");
141
+ if (this.qeResponseSaveModel.get(event.questionnaireId) || this.qeResponseSaveModel.get(event.questionnaireIds[0])) {
142
+ this.qId = event.potentialIssueId;
143
+ let questionnaireArrayResponseModel = this.qeResponseSaveModel.get(event.questionnaireIds[0]);
144
+ let questionnaireResponseModel = this.qeResponseSaveModel.get(event.questionnaireId);
145
+ if (questionnaireResponseModel) {
146
+ this.qeResponseSaveModel.set(questionnaireResponseModel.potentialIssueId, questionnaireResponseModel);
147
+ this.qeResponseSaveModel.delete(event.questionnaireId);
148
+ }
149
+ else {
150
+ this.qeResponseSaveModel.set(questionnaireArrayResponseModel.potentialIssueId, questionnaireArrayResponseModel);
151
+ this.qeResponseSaveModel.delete(event.questionnaireIds[0]);
152
+ }
153
+ }
154
+ else {
155
+ this.qId = event.questionnaireId || event.questionnaireIds[0];
156
+ }
157
+ this.qeResponseSaveModel.set(this.qId, event);
138
158
  if (event.isScreenQuestionnaire) {
139
- this.qeResponse.set(qId, JSON.parse(event.screenQuestionnaireData[0]));
159
+ this.qeResponse.set(this.qId, JSON.parse(event.screenQuestionnaireData[0]));
140
160
  }
141
161
  else {
142
- this.qeResponse.set(qId, JSON.parse(event.data));
162
+ this.qeResponse.set(this.qId, JSON.parse(event.data));
143
163
  }
144
164
  if (this.qeResponseSaveModel.size == this.fbs.length) {
145
165
  this.qeDatas = [];
@@ -149,17 +169,34 @@ export class MultiQuestionnaireComponent {
149
169
  let hasScreenQuestionnaire = screenQuestionnaire.length > 0;
150
170
  let hasQuestionnaire = questionnaire.length > 0;
151
171
  if (hasScreenQuestionnaire && hasQuestionnaire) {
152
- combineLatest(this.saveQuestionnaires(questionnaire))
172
+ combineLatest(this.checkAndSaveAllQuestionnaires(questionnaire))
153
173
  .subscribe(res => {
154
174
  this.showResponse = true;
155
175
  this.closeAfterSuccess();
156
176
  }, err => {
177
+ if (err?.errorCode == '422') {
178
+ this.errorText = err.msg[0];
179
+ }
157
180
  this.showError = true;
158
181
  });
159
182
  }
160
183
  else if (hasScreenQuestionnaire) {
161
- screenQuestionnaire.forEach(q => this.saveScreenQuestionnaire(q));
162
- if (this.autoSave == false) {
184
+ if (this.autoSave) {
185
+ //Calls the backend save service endpoint and stores the data, Example: DUA
186
+ combineLatest(this.saveScreenQuestionnaireNew(screenQuestionnaire))
187
+ .subscribe(resp => {
188
+ console.log('inside screen qe', resp);
189
+ this.showResponse = true;
190
+ this.closeAfterSuccess();
191
+ }, err => {
192
+ if (err?.errorCode == '422') {
193
+ this.errorText = err.msg[0];
194
+ }
195
+ this.showError = true;
196
+ });
197
+ }
198
+ else {
199
+ //No direct saving to db, passes data to model. Example: Work Search Activities
163
200
  this.closeAfterSuccess();
164
201
  }
165
202
  }
@@ -169,17 +206,37 @@ export class MultiQuestionnaireComponent {
169
206
  this.showResponse = true;
170
207
  this.closeAfterSuccess();
171
208
  }, err => {
209
+ if (err?.errorCode == '422') {
210
+ this.errorText = err.msg[0];
211
+ }
172
212
  this.showError = true;
173
213
  });
174
214
  }
175
215
  }
176
216
  }
217
+ saveScreenQuestionnaireNew(screenQuestionnaire) {
218
+ this.logger.debug("save screenQuestionnaire : ", screenQuestionnaire);
219
+ let subscriptions = [];
220
+ screenQuestionnaire.forEach(q => {
221
+ if (this.autoSave) {
222
+ this.logger.debug('qe data is : ', JSON.parse(q.screenQuestionnaireData[0]));
223
+ this.qeResponse.set(this.qId, JSON.parse(q.screenQuestionnaireData[0]));
224
+ subscriptions.push(this.questionnaireService.saveScreenQuestionnaire(q));
225
+ }
226
+ });
227
+ return subscriptions;
228
+ }
177
229
  saveScreenQuestionnaire(qeScreenData) {
230
+ this.logger.debug('saveScreenQuestionnaire = ', qeScreenData);
178
231
  if (this.autoSave) {
179
232
  this.questionnaireService.saveScreenQuestionnaire(qeScreenData)
180
233
  .subscribe(res => {
234
+ this.logger.debug('save screen qe response = ', res);
181
235
  this.showResponse = true;
182
236
  }, err => {
237
+ if (err?.errorCode == '422') {
238
+ this.errorText = err.msg[0];
239
+ }
183
240
  this.showError = true;
184
241
  });
185
242
  }
@@ -190,18 +247,45 @@ export class MultiQuestionnaireComponent {
190
247
  close() {
191
248
  this.modelCancel.emit();
192
249
  }
250
+ checkAndSaveAllQuestionnaires(questionnaires) {
251
+ this.logger.debug("save questionnaires : ", questionnaires);
252
+ let subscriptions = [];
253
+ questionnaires.forEach(q => {
254
+ //this.qeResponse.set(this.qId, JSON.parse(q.data))
255
+ if (q.isScreenQuestionnaire) {
256
+ this.logger.debug('qe data for screen is : ', JSON.parse(q.data));
257
+ this.qeResponse.set(this.qId, JSON.parse(q.screenQuestionnaireData[0]));
258
+ }
259
+ else {
260
+ this.logger.debug('qe data is : ', JSON.parse(q.data));
261
+ this.qeResponse.set(this.qId, JSON.parse(q.data));
262
+ }
263
+ if (q.autoSave && q.isScreenQuestionnaire) {
264
+ //save data into screen specific table - use save method for code to follow
265
+ subscriptions.push(this.questionnaireService.saveScreenQuestionnaire(q));
266
+ }
267
+ else if (!q.isScreenQuestionnaire) {
268
+ //save data into Qe specific tables
269
+ subscriptions.push(this.questionnaireService.saveQuestionnaire(q));
270
+ }
271
+ });
272
+ return subscriptions;
273
+ }
193
274
  saveQuestionnaires(questionnaires) {
275
+ this.logger.debug("save questionnaires : ", questionnaires);
194
276
  let subscriptions = [];
195
277
  questionnaires.forEach(q => {
278
+ this.logger.debug('qe data is : ', JSON.parse(q.data));
196
279
  this.qeResponse.set(this.qId, JSON.parse(q.data));
197
280
  subscriptions.push(this.questionnaireService.saveQuestionnaire(q));
198
281
  });
199
282
  return subscriptions;
200
283
  }
201
284
  closeAfterSuccess() {
285
+ this.logger.debug('close after success called');
202
286
  this.onComplete.emit(this.qeResponse);
203
287
  }
204
- static { this.ɵfac = function MultiQuestionnaireComponent_Factory(t) { return new (t || MultiQuestionnaireComponent)(i0.ɵɵdirectiveInject(i1.QuestionnaireService)); }; }
288
+ static { this.ɵfac = function MultiQuestionnaireComponent_Factory(t) { return new (t || MultiQuestionnaireComponent)(i0.ɵɵdirectiveInject(i1.QuestionnaireService), i0.ɵɵdirectiveInject(i2.LoggerService)); }; }
205
289
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MultiQuestionnaireComponent, selectors: [["app-multi-questionnaire"]], viewQuery: function MultiQuestionnaireComponent_Query(rf, ctx) { if (rf & 1) {
206
290
  i0.ɵɵviewQuery(_c0, 5);
207
291
  } if (rf & 2) {
@@ -209,7 +293,7 @@ export class MultiQuestionnaireComponent {
209
293
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.fbs = _t);
210
294
  } }, inputs: { qeQueryModels: "qeQueryModels", showClose: "showClose", autoSave: "autoSave", formData: "formData", readonly: "readonly", header: "header", showQuestionNumber: "showQuestionNumber" }, outputs: { modelCancel: "modelCancel", onComplete: "onComplete" }, decls: 6, vars: 12, consts: [["appendTo", "body", "modal", "true", 3, "visible", "breakpoints", "showHeader"], [4, "ngIf"], ["pTemplate", "header"], [1, "fb-heading"], [4, "ngFor", "ngForOf"], [2, "display", "contents", 3, "queryModel", "hideHeader", "autoSave", "pageType", "hideFooter", "dynamicParam", "formData", "readonly", "multiMode", "questionNumber", "modelCancel", "onComplete"], ["fbs", ""], [1, "ion-text-center", "ion-padding-top"], ["name", "checkmark-circle", 2, "font-size", "80px", "color", "var(--ion-color-green)"], [1, "ion-padding"], [1, "ion-text-right"], ["shape", "round", "fill", "outline", "type", "reset", 3, "click"], ["name", "close-circle-outline", 2, "font-size", "80px", "color", "var(--ion-color-danger)"], ["shape", "round", "fill", "outline", "type", "reset", 3, "click", 4, "ngIf"], ["shape", "round", "fill", "solid", "type", "submit", 3, "click"]], template: function MultiQuestionnaireComponent_Template(rf, ctx) { if (rf & 1) {
211
295
  i0.ɵɵelementStart(0, "p-dialog", 0);
212
- i0.ɵɵtemplate(1, MultiQuestionnaireComponent_1_Template, 1, 0, null, 1)(2, MultiQuestionnaireComponent_div_2_Template, 2, 1, "div", 1)(3, MultiQuestionnaireComponent_div_3_Template, 11, 6, "div", 1)(4, MultiQuestionnaireComponent_div_4_Template, 11, 6, "div", 1)(5, MultiQuestionnaireComponent_p_footer_5_Template, 7, 4, "p-footer", 1);
296
+ i0.ɵɵtemplate(1, MultiQuestionnaireComponent_1_Template, 1, 0, null, 1)(2, MultiQuestionnaireComponent_div_2_Template, 2, 1, "div", 1)(3, MultiQuestionnaireComponent_div_3_Template, 11, 6, "div", 1)(4, MultiQuestionnaireComponent_div_4_Template, 10, 4, "div", 1)(5, MultiQuestionnaireComponent_p_footer_5_Template, 7, 4, "p-footer", 1);
213
297
  i0.ɵɵelementEnd();
214
298
  } if (rf & 2) {
215
299
  i0.ɵɵstyleMap(i0.ɵɵpureFunction0(10, _c1));
@@ -224,12 +308,12 @@ export class MultiQuestionnaireComponent {
224
308
  i0.ɵɵproperty("ngIf", ctx.showError);
225
309
  i0.ɵɵadvance(1);
226
310
  i0.ɵɵproperty("ngIf", !ctx.showResponse);
227
- } }, dependencies: [i2.IonButton, i2.IonCol, i2.IonIcon, i2.IonRow, i3.NgForOf, i3.NgIf, i4.Footer, i4.PrimeTemplate, i5.Dialog, i6.RenderQuestionnairePage, i7.TranslatePipe], styles: [".fb-heading[_ngcontent-%COMP%]{font-family:var(--app-font-light);color:var(--ion-color-medium-gray);font-size:36px;padding:10px 33px}"] }); }
311
+ } }, dependencies: [i3.IonButton, i3.IonCol, i3.IonIcon, i3.IonRow, i4.NgForOf, i4.NgIf, i5.Footer, i5.PrimeTemplate, i6.Dialog, i7.RenderQuestionnairePage, i8.TranslatePipe], styles: [".fb-heading[_ngcontent-%COMP%]{font-family:var(--app-font-light);color:var(--ion-color-medium-gray);font-size:36px;padding:10px 33px}"] }); }
228
312
  }
229
313
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MultiQuestionnaireComponent, [{
230
314
  type: Component,
231
- args: [{ selector: 'app-multi-questionnaire', template: "<p-dialog [visible]=\"isVisible\" appendTo=\"body\" [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\"\r\n [style]=\"{width: '45vw', height : 'inherit'}\" modal=\"true\" [showHeader]=\"header != null && header != undefined\">\r\n \r\n <ng-template pTemplate=\"header\" *ngIf=\"header\">\r\n <span class=\"fb-heading\">{{header}}</span>\r\n </ng-template>\r\n \r\n <div *ngIf=\"!showResponse\">\r\n <div *ngFor=\"let model of qeQueryModels; let isLast = last; index as i\">\r\n <app-questionnaire #fbs style=\"display: contents;\" (modelCancel)=\"close()\" \r\n [queryModel]=\"model\" (onComplete)=\"complete($event)\" [hideHeader]=\"true\" [autoSave]=\"autoSave ? (model.autoSave == true ? true : false) : (model.autoSave == true ? true : false)\" [pageType]=\"null\"\r\n [hideFooter]=\"true\" [dynamicParam]=\"model.dynamicParam\" [formData]=\"formData ? formData : model.data\" [readonly]=\"readonly\" [multiMode]=\"true\" [questionNumber]=\"showQuestionNumber ? (i+1) : null\"></app-questionnaire>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showResponse\">\r\n <div class=\"ion-text-center ion-padding-top\">\r\n <ion-icon name=\"checkmark-circle\" style=\"font-size: 80px; color: var(--ion-color-green);\"></ion-icon>\r\n <h1>{{'common.response.saved' | translate}}</h1>\r\n </div>\r\n <ion-row class=\"ion-padding\">\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button shape=\"round\" fill=\"outline\" (click)=\"close()\" type=\"reset\">{{'Close' | translate}}</ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </div>\r\n\r\n <div *ngIf=\"showError\">\r\n <div class=\"ion-text-center ion-padding-top\">\r\n <ion-icon name=\"close-circle-outline\" style=\"font-size: 80px; color: var(--ion-color-danger);\"></ion-icon>\r\n <h1>{{'common.response.not.saved' | translate}}</h1>\r\n </div>\r\n <ion-row class=\"ion-padding\">\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button shape=\"round\" fill=\"outline\" (click)=\"close()\" type=\"reset\">{{'common.close'| translate}}</ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </div>\r\n <p-footer *ngIf=\"!showResponse\">\r\n <ion-row>\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button shape=\"round\" fill=\"outline\" (click)=\"close()\" type=\"reset\" *ngIf=\"showClose\">{{'common.close'| translate}}</ion-button>\r\n <ion-button shape=\"round\" fill=\"solid\" type=\"submit\" (click)=\"submit()\">{{'common.submit'| translate}}</ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </p-footer>\r\n</p-dialog>", styles: [".fb-heading{font-family:var(--app-font-light);color:var(--ion-color-medium-gray);font-size:36px;padding:10px 33px}\n"] }]
232
- }], () => [{ type: i1.QuestionnaireService }], { fbs: [{
315
+ args: [{ selector: 'app-multi-questionnaire', template: "<p-dialog [visible]=\"isVisible\" appendTo=\"body\" [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\"\r\n [style]=\"{width: '45vw', height : 'inherit'}\" modal=\"true\" [showHeader]=\"header != null && header != undefined\">\r\n \r\n <ng-template pTemplate=\"header\" *ngIf=\"header\">\r\n <span class=\"fb-heading\">{{header}}</span>\r\n </ng-template>\r\n \r\n <div *ngIf=\"!showResponse\">\r\n <div *ngFor=\"let model of qeQueryModels; let isLast = last; index as i\">\r\n <app-questionnaire #fbs style=\"display: contents;\" (modelCancel)=\"close()\" \r\n [queryModel]=\"model\" (onComplete)=\"complete($event)\" [hideHeader]=\"true\" [autoSave]=\"autoSave ? (model.autoSave == true ? true : false) : (model.autoSave == true ? true : false)\" [pageType]=\"null\"\r\n [hideFooter]=\"true\" [dynamicParam]=\"model.dynamicParam\" [formData]=\"formData ? formData : model.data\" [readonly]=\"readonly\" [multiMode]=\"true\" [questionNumber]=\"showQuestionNumber ? (i+1) : null\"></app-questionnaire>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showResponse\">\r\n <div class=\"ion-text-center ion-padding-top\">\r\n <ion-icon name=\"checkmark-circle\" style=\"font-size: 80px; color: var(--ion-color-green);\"></ion-icon>\r\n <h1>{{'Response saved successfully.' | translate}}</h1>\r\n </div>\r\n <ion-row class=\"ion-padding\">\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button shape=\"round\" fill=\"outline\" (click)=\"close()\" type=\"reset\">{{'Close' | translate}}</ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </div>\r\n\r\n <div *ngIf=\"showError\">\r\n <div class=\"ion-text-center ion-padding-top\">\r\n <ion-icon name=\"close-circle-outline\" style=\"font-size: 80px; color: var(--ion-color-danger);\"></ion-icon>\r\n <h1>{{errorText ? errorText : 'Could not save response. Please try again.'}}</h1>\r\n </div>\r\n <ion-row class=\"ion-padding\">\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button shape=\"round\" fill=\"outline\" (click)=\"close()\" type=\"reset\">{{'Close' | translate}}</ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </div>\r\n <p-footer *ngIf=\"!showResponse\">\r\n <ion-row>\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button shape=\"round\" fill=\"outline\" (click)=\"close()\" type=\"reset\" *ngIf=\"showClose\">{{'Close' | translate}}</ion-button>\r\n <ion-button shape=\"round\" fill=\"solid\" type=\"submit\" (click)=\"submit()\">{{'Submit' | translate}}</ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </p-footer>\r\n</p-dialog>", styles: [".fb-heading{font-family:var(--app-font-light);color:var(--ion-color-medium-gray);font-size:36px;padding:10px 33px}\n"] }]
316
+ }], () => [{ type: i1.QuestionnaireService }, { type: i2.LoggerService }], { fbs: [{
233
317
  type: ViewChildren,
234
318
  args: ['fbs']
235
319
  }], qeQueryModels: [{
@@ -251,5 +335,5 @@ export class MultiQuestionnaireComponent {
251
335
  }], showQuestionNumber: [{
252
336
  type: Input
253
337
  }] }); })();
254
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MultiQuestionnaireComponent, { className: "MultiQuestionnaireComponent", filePath: "lib\\components\\questionnaire\\multi-questionnaire\\multi-questionnaire.component.ts", lineNumber: 13 }); })();
255
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktcXVlc3Rpb25uYWlyZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb25uYWlyZS9tdWx0aS1xdWVzdGlvbm5haXJlL211bHRpLXF1ZXN0aW9ubmFpcmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXN0aW9ubmFpcmUvbXVsdGktcXVlc3Rpb25uYWlyZS9tdWx0aS1xdWVzdGlvbm5haXJlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWEsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7O0lDRzdCLCtCQUF5QjtJQUFBLFlBQVU7SUFBQSxpQkFBTzs7O0lBQWpCLGVBQVU7SUFBVixtQ0FBVTs7O0lBRHZDLDhGQUVjOzs7O0lBR1YsMkJBQXdFLDhCQUFBO0lBQ2pCLHdNQUFlLGVBQUEsZUFBTyxDQUFBLElBQUMsK0xBQ3ZDLGVBQUEsd0JBQWdCLENBQUEsSUFEdUI7SUFFMEgsaUJBQW9CLEVBQUE7Ozs7O0lBRHhOLGVBQW9CO0lBQXBCLHFDQUFvQixvQkFBQSxtSEFBQSxrQkFBQSxvQkFBQSx1Q0FBQSwrREFBQSw2QkFBQSxtQkFBQSwrREFBQTs7O0lBSDVCLDJCQUEyQjtJQUN2QixtRkFJTTtJQUNWLGlCQUFNOzs7SUFMcUIsZUFBa0I7SUFBbEIsOENBQWtCOzs7O0lBTzdDLDJCQUEwQixhQUFBO0lBRWxCLDhCQUFxRztJQUNyRywwQkFBSTtJQUFBLFlBQXVDOztJQUFBLGlCQUFL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Q2pELGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckUsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7NEZBL0hVLDJCQUEyQjtvRUFBM0IsMkJBQTJCOzs7Ozs7WUNaMUMsbUNBQ29IO1lBRWhILHVFQUVjLCtEQUFBLGdFQUFBLGdFQUFBLHlFQUFBO1lBeUNsQixpQkFBVzs7WUE3Q1AsMENBQTZDO1lBRHZDLHVDQUFxQiw0Q0FBQSw2REFBQTtZQUdNLGVBQVk7WUFBWixpQ0FBWTtZQUl2QyxlQUFtQjtZQUFuQix3Q0FBbUI7WUFRbkIsZUFBa0I7WUFBbEIsdUNBQWtCO1lBWWxCLGVBQWU7WUFBZixvQ0FBZTtZQVdWLGVBQW1CO1lBQW5CLHdDQUFtQjs7O2lGRDFCbkIsMkJBQTJCO2NBTHpDLFNBQVM7MkJBQ0kseUJBQXlCO3FEQU1kLEdBQUc7a0JBQXZCLFlBQVk7bUJBQUMsS0FBSztZQUVWLGFBQWE7a0JBQXJCLEtBQUs7WUFFRyxTQUFTO2tCQUFqQixLQUFLO1lBRUcsUUFBUTtrQkFBaEIsS0FBSztZQUVHLFFBQVE7a0JBQWhCLEtBQUs7WUFFSyxXQUFXO2tCQUFyQixNQUFNO1lBRUcsVUFBVTtrQkFBbkIsTUFBTTtZQUVFLFFBQVE7a0JBQWhCLEtBQUs7WUFFRyxNQUFNO2tCQUFkLEtBQUs7WUFFRyxrQkFBa0I7a0JBQTFCLEtBQUs7O2tGQXBCSywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBRdWVzdGlvbm5haXJlUXVlcnlNb2RlbCB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9RdWVzdGlvbm5haXJlUXVlcnlNb2RlbFwiO1xyXG5pbXBvcnQgeyBRdWVzdGlvbm5haXJlU2F2ZU1vZGVsIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL1F1ZXN0aW9ubmFpcmVTYXZlTW9kZWxcIjtcclxuaW1wb3J0IHsgUXVlc3Rpb25uYWlyZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvcXVlc3Rpb25uYWlyZS9xdWVzdGlvbm5haXJlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUmVuZGVyUXVlc3Rpb25uYWlyZVBhZ2UgfSBmcm9tIFwiLi4vcmVuZGVyLXF1ZXN0aW9ubmFpcmUvcmVuZGVyLXF1ZXN0aW9ubmFpcmUucGFnZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1tdWx0aS1xdWVzdGlvbm5haXJlJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1xdWVzdGlvbm5haXJlLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL211bHRpLXF1ZXN0aW9ubmFpcmUuY29tcG9uZW50LnNjc3MnXVxyXG4gIH0pXHJcbiAgZXhwb3J0IGNsYXNzIE11bHRpUXVlc3Rpb25uYWlyZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgXHJcbiAgICBAVmlld0NoaWxkcmVuKCdmYnMnKSBmYnM6IFF1ZXJ5TGlzdDxSZW5kZXJRdWVzdGlvbm5haXJlUGFnZT47XHJcbiAgXHJcbiAgICBASW5wdXQoKSBxZVF1ZXJ5TW9kZWxzIDogUXVlc3Rpb25uYWlyZVF1ZXJ5TW9kZWxbXTtcclxuICBcclxuICAgIEBJbnB1dCgpIHNob3dDbG9zZSA6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIFxyXG4gICAgQElucHV0KCkgYXV0b1NhdmUgOiBib29sZWFuID0gZmFsc2U7XHJcbiAgXHJcbiAgICBASW5wdXQoKSBmb3JtRGF0YTogYW55O1xyXG4gIFxyXG4gICAgQE91dHB1dCgpICBtb2RlbENhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBcclxuICAgIEBPdXRwdXQoKSBvbkNvbXBsZXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIFxyXG4gICAgQElucHV0KCkgcmVhZG9ubHk6IEJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKSBoZWFkZXI6IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKSBzaG93UXVlc3Rpb25OdW1iZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBcclxuICBcclxuICAgIHFlRGF0YXMgOiBRdWVzdGlvbm5haXJlU2F2ZU1vZGVsW10gPSBbXTtcclxuICBcclxuICAgIGlzVmlzaWJsZSA6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIFxyXG4gICAgc2hvd1Jlc3BvbnNlIDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIFxyXG4gICAgc2hvd0Vycm9yIDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIFxyXG4gICAgZHluYW1pY1BhcmFtOmFueTtcclxuXHJcbiAgICBxZVJlc3BvbnNlIDogTWFwPG51bWJlciwgYW55PiA9IG5ldyBNYXAoKTtcclxuXHJcbiAgICBxZVJlc3BvbnNlU2F2ZU1vZGVsIDogTWFwPG51bWJlciwgUXVlc3Rpb25uYWlyZVNhdmVNb2RlbD4gPSBuZXcgTWFwKCk7XHJcblxyXG4gICAgcUlkIDogYW55O1xyXG4gICBcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBxdWVzdGlvbm5haXJlU2VydmljZSA6IFF1ZXN0aW9ubmFpcmVTZXJ2aWNlKSB7IFxyXG5cclxuICAgICBcclxuICAgIH1cclxuICBcclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgfVxyXG4gIFxyXG4gICAgc3VibWl0KCl7XHJcbiAgICAgIHRoaXMuZmJzLmZvckVhY2goZmIgPT4ge1xyXG4gICAgICAgIGZiLnN1Ym1pdCgpXHJcbiAgICAgIH0pO1xyXG4gICAgICBcclxuICAgIH1cclxuICBcclxuICAgIGNvbXBsZXRlKGV2ZW50IDogUXVlc3Rpb25uYWlyZVNhdmVNb2RlbCl7XHJcbiAgICAgIGxldCBxSWQgPSBldmVudC5wb3RlbnRpYWxJc3N1ZUlkIHx8IGV2ZW50LnF1ZXN0aW9ubmFpcmVJZCB8fCBldmVudC5xdWVzdGlvbm5haXJlSWRzWzBdO1xyXG5cclxuICAgICAgdGhpcy5xZVJlc3BvbnNlU2F2ZU1vZGVsLnNldChxSWQsIGV2ZW50KTtcclxuICAgICAgaWYoZXZlbnQuaXNTY3JlZW5RdWVzdGlvbm5haXJlKXtcclxuICAgICAgICB0aGlzLnFlUmVzcG9uc2Uuc2V0KHFJZCwgSlNPTi5wYXJzZShldmVudC5zY3JlZW5RdWVzdGlvbm5haXJlRGF0YVswXSkpO1xyXG4gICAgICB9ZWxzZSB7XHJcbiAgICAgICAgdGhpcy5xZVJlc3BvbnNlLnNldChxSWQsIEpTT04ucGFyc2UoZXZlbnQuZGF0YSkpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHRoaXMucWVSZXNwb25zZVNhdmVNb2RlbC5zaXplID09IHRoaXMuZmJzLmxlbmd0aCl7XHJcbiAgICAgICAgdGhpcy5xZURhdGFzID0gW107XHJcbiAgICAgICAgdGhpcy5xZVJlc3BvbnNlU2F2ZU1vZGVsLmZvckVhY2gociA9PiB0aGlzLnFlRGF0YXMucHVzaChyKSk7XHJcbiAgICAgICAgbGV0IHNjcmVlblF1ZXN0aW9ubmFpcmUgPSB0aGlzLnFlRGF0YXMuZmlsdGVyKHEgPT4gcS5pc1NjcmVlblF1ZXN0aW9ubmFpcmUgPT09IHRydWUpO1xyXG4gICAgICAgIGxldCBxdWVzdGlvbm5haXJlID0gdGhpcy5xZURhdGFzLmZpbHRlcihxID0+IHEuaXNTY3JlZW5RdWVzdGlvbm5haXJlICE9IHRydWUpO1xyXG4gICAgICAgIGxldCBoYXNTY3JlZW5RdWVzdGlvbm5haXJlID0gc2NyZWVuUXVlc3Rpb25uYWlyZS5sZW5ndGggPiAwO1xyXG4gICAgICAgIGxldCBoYXNRdWVzdGlvbm5haXJlID0gcXVlc3Rpb25uYWlyZS5sZW5ndGggPiAwO1xyXG5cclxuICAgICAgICBpZihoYXNTY3JlZW5RdWVzdGlvbm5haXJlICYmIGhhc1F1ZXN0aW9ubmFpcmUpe1xyXG4gICAgICAgICAgY29tYmluZUxhdGVzdCh0aGlzLnNhdmVRdWVzdGlvbm5haXJlcyhxdWVzdGlvbm5haXJlKSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zaG93UmVzcG9uc2UgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlQWZ0ZXJTdWNjZXNzKCk7XHJcbiAgICAgICAgICB9LCBlcnIgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNob3dFcnJvciA9IHRydWU7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH0gZWxzZSBpZihoYXNTY3JlZW5RdWVzdGlvbm5haXJlKSB7XHJcbiAgICAgICAgICBzY3JlZW5RdWVzdGlvbm5haXJlLmZvckVhY2gocSA9PiB0aGlzLnNhdmVTY3JlZW5RdWVzdGlvbm5haXJlKHEpKVxyXG4gICAgICAgICAgaWYodGhpcy5hdXRvU2F2ZSA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2VBZnRlclN1Y2Nlc3MoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYoaGFzUXVlc3Rpb25uYWlyZSkge1xyXG4gICAgICAgICAgY29tYmluZUxhdGVzdCh0aGlzLnNhdmVRdWVzdGlvbm5haXJlcyhxdWVzdGlvbm5haXJlKSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zaG93UmVzcG9uc2UgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlQWZ0ZXJTdWNjZXNzKCk7XHJcbiAgICAgICAgICB9LCBlcnIgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNob3dFcnJvciA9IHRydWU7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIFxyXG4gICAgc2F2ZVNjcmVlblF1ZXN0aW9ubmFpcmUocWVTY3JlZW5EYXRhOiBRdWVzdGlvbm5haXJlU2F2ZU1vZGVsKSB7XHJcbiAgICAgIGlmKHRoaXMuYXV0b1NhdmUpe1xyXG4gICAgICAgIHRoaXMucXVlc3Rpb25uYWlyZVNlcnZpY2Uuc2F2ZVNjcmVlblF1ZXN0aW9ubmFpcmUocWVTY3JlZW5EYXRhKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93UmVzcG9uc2UgPSB0cnVlO1xyXG4gICAgICAgICAgICB9LCBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd0Vycm9yID0gdHJ1ZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICBcclxuICAgIGhhbmRsZUVycm9yKGVycm9yKSB7XHJcbiAgICAgIHRoaXMuc2hvd0Vycm9yID0gdHJ1ZTtcclxuICAgIH1cclxuICBcclxuICAgIGNsb3NlKCl7XHJcbiAgICAgIHRoaXMubW9kZWxDYW5jZWwuZW1pdCgpO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgc2F2ZVF1ZXN0aW9ubmFpcmVzKHF1ZXN0aW9ubmFpcmVzIDogUXVlc3Rpb25uYWlyZVNhdmVNb2RlbFtdKXtcclxuICAgICAgbGV0IHN1YnNjcmlwdGlvbnMgPSBbXTtcclxuICAgICAgcXVlc3Rpb25uYWlyZXMuZm9yRWFjaCAocSA9PiB7XHJcbiAgICAgICAgdGhpcy5xZVJlc3BvbnNlLnNldCh0aGlzLnFJZCwgSlNPTi5wYXJzZShxLmRhdGEpKVxyXG4gICAgICAgIHN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnF1ZXN0aW9ubmFpcmVTZXJ2aWNlLnNhdmVRdWVzdGlvbm5haXJlKHEpKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBzdWJzY3JpcHRpb25zO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgY2xvc2VBZnRlclN1Y2Nlc3MoKXtcclxuICAgICAgdGhpcy5vbkNvbXBsZXRlLmVtaXQodGhpcy5xZVJlc3BvbnNlKTtcclxuICAgIH1cclxuICBcclxuICB9IiwiPHAtZGlhbG9nIFt2aXNpYmxlXT1cImlzVmlzaWJsZVwiIGFwcGVuZFRvPVwiYm9keVwiIFticmVha3BvaW50c109XCJ7JzEyMDBweCc6ICc2NjBweCcsICc5OTJweCc6ICc2NjBweCcsICc3NjhweCc6ICc2NjBweCcsICc1NzZweCc6ICcxMDB2dyd9XCJcclxuICAgIFtzdHlsZV09XCJ7d2lkdGg6ICc0NXZ3JywgaGVpZ2h0IDogJ2luaGVyaXQnfVwiIG1vZGFsPVwidHJ1ZVwiIFtzaG93SGVhZGVyXT1cImhlYWRlciAhPSBudWxsICYmIGhlYWRlciAhPSB1bmRlZmluZWRcIj5cclxuICAgIFxyXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiICpuZ0lmPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmYi1oZWFkaW5nXCI+e3toZWFkZXJ9fTwvc3Bhbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICBcclxuICAgIDxkaXYgKm5nSWY9XCIhc2hvd1Jlc3BvbnNlXCI+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbW9kZWwgb2YgcWVRdWVyeU1vZGVsczsgbGV0IGlzTGFzdCA9IGxhc3Q7IGluZGV4IGFzIGlcIj5cclxuICAgICAgICAgICAgPGFwcC1xdWVzdGlvbm5haXJlICNmYnMgc3R5bGU9XCJkaXNwbGF5OiBjb250ZW50cztcIiAobW9kZWxDYW5jZWwpPVwiY2xvc2UoKVwiIFxyXG4gICAgICAgICAgICBbcXVlcnlNb2RlbF09XCJtb2RlbFwiIChvbkNvbXBsZXRlKT1cImNvbXBsZXRlKCRldmVudClcIiBbaGlkZUhlYWRlcl09XCJ0cnVlXCIgW2F1dG9TYXZlXT1cImF1dG9TYXZlID8gKG1vZGVsLmF1dG9TYXZlID09IHRydWUgPyB0cnVlIDogZmFsc2UpIDogKG1vZGVsLmF1dG9TYXZlID09IHRydWUgPyB0cnVlIDogZmFsc2UpXCIgW3BhZ2VUeXBlXT1cIm51bGxcIlxyXG4gICAgICAgICAgICBbaGlkZUZvb3Rlcl09XCJ0cnVlXCIgW2R5bmFtaWNQYXJhbV09XCJtb2RlbC5keW5hbWljUGFyYW1cIiBbZm9ybURhdGFdPVwiZm9ybURhdGEgPyBmb3JtRGF0YSA6IG1vZGVsLmRhdGFcIiBbcmVhZG9ubHldPVwicmVhZG9ubHlcIiBbbXVsdGlNb2RlXT1cInRydWVcIiBbcXVlc3Rpb25OdW1iZXJdPVwic2hvd1F1ZXN0aW9uTnVtYmVyID8gKGkrMSkgOiBudWxsXCI+PC9hcHAtcXVlc3Rpb25uYWlyZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJzaG93UmVzcG9uc2VcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLXRleHQtY2VudGVyIGlvbi1wYWRkaW5nLXRvcFwiPlxyXG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZWNrbWFyay1jaXJjbGVcIiBzdHlsZT1cImZvbnQtc2l6ZTogODBweDsgY29sb3I6IHZhcigtLWlvbi1jb2xvci1ncmVlbik7XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgPGgxPnt7J2NvbW1vbi5yZXNwb25zZS5zYXZlZCcgfCB0cmFuc2xhdGV9fTwvaDE+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGlvbi1yb3cgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxyXG4gICAgICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgZmlsbD1cIm91dGxpbmVcIiAoY2xpY2spPVwiY2xvc2UoKVwiIHR5cGU9XCJyZXNldFwiPnt7J0Nsb3NlJyB8IHRyYW5zbGF0ZX19PC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgPC9pb24tcm93PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cInNob3dFcnJvclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXIgaW9uLXBhZGRpbmctdG9wXCI+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2xvc2UtY2lyY2xlLW91dGxpbmVcIiBzdHlsZT1cImZvbnQtc2l6ZTogODBweDsgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYW5nZXIpO1wiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgIDxoMT57eydjb21tb24ucmVzcG9uc2Uubm90LnNhdmVkJyB8IHRyYW5zbGF0ZX19PC9oMT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8aW9uLXJvdyBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XHJcbiAgICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJjbG9zZSgpXCIgdHlwZT1cInJlc2V0XCI+e3snY29tbW9uLmNsb3NlJ3wgdHJhbnNsYXRlfX08L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxwLWZvb3RlciAqbmdJZj1cIiFzaG93UmVzcG9uc2VcIj5cclxuICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cImNsb3NlKClcIiB0eXBlPVwicmVzZXRcIiAqbmdJZj1cInNob3dDbG9zZVwiPnt7J2NvbW1vbi5jbG9zZSd8IHRyYW5zbGF0ZX19PC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIGZpbGw9XCJzb2xpZFwiIHR5cGU9XCJzdWJtaXRcIiAoY2xpY2spPVwic3VibWl0KClcIj57eydjb21tb24uc3VibWl0J3wgdHJhbnNsYXRlfX08L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICA8L3AtZm9vdGVyPlxyXG48L3AtZGlhbG9nPiJdfQ==
338
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MultiQuestionnaireComponent, { className: "MultiQuestionnaireComponent", filePath: "lib\\components\\questionnaire\\multi-questionnaire\\multi-questionnaire.component.ts", lineNumber: 14 }); })();
339
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktcXVlc3Rpb25uYWlyZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb25uYWlyZS9tdWx0aS1xdWVzdGlvbm5haXJlL211bHRpLXF1ZXN0aW9ubmFpcmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXN0aW9ubmFpcmUvbXVsdGktcXVlc3Rpb25uYWlyZS9tdWx0aS1xdWVzdGlvbm5haXJlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWEsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7OztJQ0c3QiwrQkFBeUI7SUFBQSxZQUFVO0lBQUEsaUJBQU87OztJQUFqQixlQUFVO0lBQVYsbUNBQVU7OztJQUR2Qyw4RkFFYzs7OztJQUdWLDJCQUF3RSw4QkFBQTtJQUNqQix3TUFBZSxlQUFBLGVBQU8sQ0FBQSxJQUFDLCtMQUN2QyxlQUFBLHdCQUFnQixDQUFBLElBRHVCO0lBRTBILGlCQUFvQixFQUFBOzs7OztJQUR4TixlQUFvQjtJQUFwQixxQ0FBb0Isb0JBQUEsbUhBQUEsa0JBQUEsb0JBQUEsdUNBQUEsK0RBQUEsNkJBQUEsbUJBQUEsK0RBQUE7OztJQUg1QiwyQkFBMkI7SUFDdkIsbUZBSU07SUFDVixpQkFBTTs7O0lBTHFCLGVBQWtCO0lBQWxCLDhDQUFrQjs7OztJQU83QywyQkFBMEIsYUFBQTtJQUVsQiw4QkFBcUc7SUFDckcsMEJBQUk7SUFBQSxZQUE4Qzs7SUFBQSxpQkFB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QUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7NEZBL01VLDJCQUEyQjtvRUFBM0IsMkJBQTJCOzs7Ozs7WUNiMUMsbUNBQ29IO1lBRWhILHVFQUVjLCtEQUFBLGdFQUFBLGdFQUFBLHlFQUFBO1lBeUNsQixpQkFBVzs7WUE3Q1AsMENBQTZDO1lBRHZDLHVDQUFxQiw0Q0FBQSw2REFBQTtZQUdNLGVBQVk7WUFBWixpQ0FBWTtZQUl2QyxlQUFtQjtZQUFuQix3Q0FBbUI7WUFRbkIsZUFBa0I7WUFBbEIsdUNBQWtCO1lBWWxCLGVBQWU7WUFBZixvQ0FBZTtZQVdWLGVBQW1CO1lBQW5CLHdDQUFtQjs7O2lGRHpCbkIsMkJBQTJCO2NBTHpDLFNBQVM7MkJBQ0kseUJBQXlCO2lGQU1kLEdBQUc7a0JBQXZCLFlBQVk7bUJBQUMsS0FBSztZQUVWLGFBQWE7a0JBQXJCLEtBQUs7WUFFRyxTQUFTO2tCQUFqQixLQUFLO1lBRUcsUUFBUTtrQkFBaEIsS0FBSztZQUVHLFFBQVE7a0JBQWhCLEtBQUs7WUFFSyxXQUFXO2tCQUFyQixNQUFNO1lBRUcsVUFBVTtrQkFBbkIsTUFBTTtZQUVFLFFBQVE7a0JBQWhCLEtBQUs7WUFFRyxNQUFNO2tCQUFkLEtBQUs7WUFFRyxrQkFBa0I7a0JBQTFCLEtBQUs7O2tGQXBCSywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFF1ZXN0aW9ubmFpcmVRdWVyeU1vZGVsIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL1F1ZXN0aW9ubmFpcmVRdWVyeU1vZGVsXCI7XG5pbXBvcnQgeyBRdWVzdGlvbm5haXJlU2F2ZU1vZGVsIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL1F1ZXN0aW9ubmFpcmVTYXZlTW9kZWxcIjtcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUXVlc3Rpb25uYWlyZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvcXVlc3Rpb25uYWlyZS9xdWVzdGlvbm5haXJlLnNlcnZpY2VcIjtcbmltcG9ydCB7IFJlbmRlclF1ZXN0aW9ubmFpcmVQYWdlIH0gZnJvbSBcIi4uL3JlbmRlci1xdWVzdGlvbm5haXJlL3JlbmRlci1xdWVzdGlvbm5haXJlLnBhZ2VcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtbXVsdGktcXVlc3Rpb25uYWlyZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL211bHRpLXF1ZXN0aW9ubmFpcmUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL211bHRpLXF1ZXN0aW9ubmFpcmUuY29tcG9uZW50LnNjc3MnXVxuICB9KVxuICBleHBvcnQgY2xhc3MgTXVsdGlRdWVzdGlvbm5haXJlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgXG4gICAgQFZpZXdDaGlsZHJlbignZmJzJykgZmJzOiBRdWVyeUxpc3Q8UmVuZGVyUXVlc3Rpb25uYWlyZVBhZ2U+O1xuICBcbiAgICBASW5wdXQoKSBxZVF1ZXJ5TW9kZWxzIDogUXVlc3Rpb25uYWlyZVF1ZXJ5TW9kZWxbXTtcbiAgXG4gICAgQElucHV0KCkgc2hvd0Nsb3NlIDogYm9vbGVhbiA9IHRydWU7XG4gIFxuICAgIEBJbnB1dCgpIGF1dG9TYXZlIDogYm9vbGVhbiA9IGZhbHNlO1xuICBcbiAgICBASW5wdXQoKSBmb3JtRGF0YTogYW55O1xuICBcbiAgICBAT3V0cHV0KCkgIG1vZGVsQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBcbiAgICBAT3V0cHV0KCkgb25Db21wbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgXG4gICAgQElucHV0KCkgcmVhZG9ubHk6IEJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIGhlYWRlcjogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgc2hvd1F1ZXN0aW9uTnVtYmVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBlcnJvclRleHQgOiBzdHJpbmc7XG4gIFxuICAgIHFlRGF0YXMgOiBRdWVzdGlvbm5haXJlU2F2ZU1vZGVsW10gPSBbXTtcbiAgXG4gICAgaXNWaXNpYmxlIDogYm9vbGVhbiA9IHRydWU7XG4gIFxuICAgIHNob3dSZXNwb25zZSA6IGJvb2xlYW4gPSBmYWxzZTtcbiAgXG4gICAgc2hvd0Vycm9yIDogYm9vbGVhbiA9IGZhbHNlO1xuICBcbiAgICBkeW5hbWljUGFyYW06YW55O1xuXG4gICAgcWVSZXNwb25zZSA6IE1hcDxudW1iZXIsIGFueT4gPSBuZXcgTWFwKCk7XG5cbiAgICBxZVJlc3BvbnNlU2F2ZU1vZGVsIDogTWFwPG51bWJlciwgUXVlc3Rpb25uYWlyZVNhdmVNb2RlbD4gPSBuZXcgTWFwKCk7XG5cbiAgICBxSWQgOiBhbnk7XG5cbiAgICBjb3VudDogbnVtYmVyID0gMDtcbiAgIFxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBxdWVzdGlvbm5haXJlU2VydmljZSA6IFF1ZXN0aW9ubmFpcmVTZXJ2aWNlLCBwdWJsaWMgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlKSB7IFxuXG4gICAgIFxuICAgIH1cbiAgXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgfVxuICBcbiAgICBzdWJtaXQoKXtcbiAgICAgIHRoaXMuZmJzLmZvckVhY2goZmIgPT4ge1xuICAgICAgICBmYi5zdWJtaXQoKVxuICAgICAgfSk7XG4gICAgICBcbiAgICB9XG4gIFxuICAgIGNvbXBsZXRlKGV2ZW50IDogUXVlc3Rpb25uYWlyZVNhdmVNb2RlbCl7XG4gICAgICB0aGlzLmNvdW50ID0gdGhpcy5jb3VudCArIDE7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcImNvbXBsZXRlZCBldmVudCBpbiBtdWx0aSBjYWxsZWQuLi5cIik7XG4gICAgICBpZih0aGlzLnFlUmVzcG9uc2VTYXZlTW9kZWwuZ2V0KGV2ZW50LnF1ZXN0aW9ubmFpcmVJZCkgfHwgdGhpcy5xZVJlc3BvbnNlU2F2ZU1vZGVsLmdldChldmVudC5xdWVzdGlvbm5haXJlSWRzWzBdKSl7XG4gICAgICAgIHRoaXMucUlkID0gZXZlbnQucG90ZW50aWFsSXNzdWVJZDtcbiAgICAgICAgbGV0IHF1ZXN0aW9ubmFpcmVBcnJheVJlc3BvbnNlTW9kZWwgPSB0aGlzLnFlUmVzcG9uc2VTYXZlTW9kZWwuZ2V0KGV2ZW50LnF1ZXN0aW9ubmFpcmVJZHNbMF0pO1xuICAgICAgICBsZXQgcXVlc3Rpb25uYWlyZVJlc3BvbnNlTW9kZWwgPSB0aGlzLnFlUmVzcG9uc2VTYXZlTW9kZWwuZ2V0KGV2ZW50LnF1ZXN0aW9ubmFpcmVJZCk7XG4gICAgICAgIGlmKHF1ZXN0aW9ubmFpcmVSZXNwb25zZU1vZGVsKXtcbiAgICAgICAgICB0aGlzLnFlUmVzcG9uc2VTYXZlTW9kZWwuc2V0KHF1ZXN0aW9ubmFpcmVSZXNwb25zZU1vZGVsLnBvdGVudGlhbElzc3VlSWQsIHF1ZXN0aW9ubmFpcmVSZXNwb25zZU1vZGVsKTtcbiAgICAgICAgICB0aGlzLnFlUmVzcG9uc2VTYXZlTW9kZWwuZGVsZXRlKGV2ZW50LnF1ZXN0aW9ubmFpcmVJZCk7ICBcbiAgICAgICAgfSBlbHNle1xuICAgICAgICAgIHRoaXMucWVSZXNwb25zZVNhdmVNb2RlbC5zZXQocXVlc3Rpb25uYWlyZUFycmF5UmVzcG9uc2VNb2RlbC5wb3RlbnRpYWxJc3N1ZUlkLCBxdWVzdGlvbm5haXJlQXJyYXlSZXNwb25zZU1vZGVsKTtcbiAgICAgICAgICB0aGlzLnFlUmVzcG9uc2VTYXZlTW9kZWwuZGVsZXRlKGV2ZW50LnF1ZXN0aW9ubmFpcmVJZHNbMF0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2V7XG4gICAgICAgIHRoaXMucUlkID0gZXZlbnQucXVlc3Rpb25uYWlyZUlkIHx8IGV2ZW50LnF1ZXN0aW9ubmFpcmVJZHNbMF07XG4gICAgICB9XG4gICAgICB0aGlzLnFlUmVzcG9uc2VTYXZlTW9kZWwuc2V0KHRoaXMucUlkLCBldmVudCk7XG4gICAgICBpZihldmVudC5pc1NjcmVlblF1ZXN0aW9ubmFpcmUpe1xuICAgICAgICB0aGlzLnFlUmVzcG9uc2Uuc2V0KHRoaXMucUlkLCBKU09OLnBhcnNlKGV2ZW50LnNjcmVlblF1ZXN0aW9ubmFpcmVEYXRhWzBdKSk7XG4gICAgICB9ZWxzZSB7XG4gICAgICAgIHRoaXMucWVSZXNwb25zZS5zZXQodGhpcy5xSWQsIEpTT04ucGFyc2UoZXZlbnQuZGF0YSkpO1xuICAgICAgfVxuICAgICAgaWYodGhpcy5xZVJlc3BvbnNlU2F2ZU1vZGVsLnNpemUgPT0gdGhpcy5mYnMubGVuZ3RoKXtcbiAgICAgICAgdGhpcy5xZURhdGFzID0gW107XG4gICAgICAgIHRoaXMucWVSZXNwb25zZVNhdmVNb2RlbC5mb3JFYWNoKHIgPT4gdGhpcy5xZURhdGFzLnB1c2gocikpO1xuICAgICAgICBsZXQgc2NyZWVuUXVlc3Rpb25uYWlyZSA9IHRoaXMucWVEYXRhcy5maWx0ZXIocSA9PiBxLmlzU2NyZWVuUXVlc3Rpb25uYWlyZSA9PT0gdHJ1ZSk7XG4gICAgICAgIGxldCBxdWVzdGlvbm5haXJlID0gdGhpcy5xZURhdGFzLmZpbHRlcihxID0+IHEuaXNTY3JlZW5RdWVzdGlvbm5haXJlICE9IHRydWUpO1xuICAgICAgICBsZXQgaGFzU2NyZWVuUXVlc3Rpb25uYWlyZSA9IHNjcmVlblF1ZXN0aW9ubmFpcmUubGVuZ3RoID4gMDtcbiAgICAgICAgbGV0IGhhc1F1ZXN0aW9ubmFpcmUgPSBxdWVzdGlvbm5haXJlLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgaWYoaGFzU2NyZWVuUXVlc3Rpb25uYWlyZSAmJiBoYXNRdWVzdGlvbm5haXJlKXtcbiAgICAgICAgICBjb21iaW5lTGF0ZXN0KHRoaXMuY2hlY2tBbmRTYXZlQWxsUXVlc3Rpb25uYWlyZXMocXVlc3Rpb25uYWlyZSkpXG4gICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgdGhpcy5zaG93UmVzcG9uc2UgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5jbG9zZUFmdGVyU3VjY2VzcygpO1xuICAgICAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgICAgICBpZihlcnI/LmVycm9yQ29kZSA9PSAnNDIyJyl7XG4gICAgICAgICAgICAgIHRoaXMuZXJyb3JUZXh0ID0gZXJyLm1zZ1swXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2hvd0Vycm9yID0gdHJ1ZTtcbiAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2UgaWYoaGFzU2NyZWVuUXVlc3Rpb25uYWlyZSkge1xuICAgICAgICAgIGlmKHRoaXMuYXV0b1NhdmUpe1xuICAgICAgICAgICAgLy9DYWxscyB0aGUgYmFja2VuZCBzYXZlIHNlcnZpY2UgZW5kcG9pbnQgYW5kIHN0b3JlcyB0aGUgZGF0YSwgRXhhbXBsZTogRFVBXG4gICAgICAgICAgICBjb21iaW5lTGF0ZXN0KHRoaXMuc2F2ZVNjcmVlblF1ZXN0aW9ubmFpcmVOZXcoc2NyZWVuUXVlc3Rpb25uYWlyZSkpXG4gICAgICAgICAgLnN1YnNjcmliZShyZXNwID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdpbnNpZGUgc2NyZWVuIHFlJyxyZXNwKTtcbiAgICAgICAgICAgIHRoaXMuc2hvd1Jlc3BvbnNlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VBZnRlclN1Y2Nlc3MoKTtcbiAgICAgICAgICB9LCBlcnIgPT4ge1xuICAgICAgICAgICAgaWYoZXJyPy5lcnJvckNvZGUgPT0gJzQyMicpe1xuICAgICAgICAgICAgICB0aGlzLmVycm9yVGV4dCA9IGVyci5tc2dbMF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNob3dFcnJvciA9IHRydWU7XG4gICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZXtcbiAgICAgICAgICAgLy9ObyBkaXJlY3Qgc2F2aW5nIHRvIGRiLCBwYXNzZXMgZGF0YSB0byBtb2RlbC4gRXhhbXBsZTogV29yayBTZWFyY2ggQWN0aXZpdGllc1xuICAgICAgICAgICAgdGhpcy5jbG9zZUFmdGVyU3VjY2VzcygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmKGhhc1F1ZXN0aW9ubmFpcmUpIHtcbiAgICAgICAgICBjb21iaW5lTGF0ZXN0KHRoaXMuc2F2ZVF1ZXN0aW9ubmFpcmVzKHF1ZXN0aW9ubmFpcmUpKVxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd1Jlc3BvbnNlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VBZnRlclN1Y2Nlc3MoKTtcbiAgICAgICAgICB9LCBlcnIgPT4ge1xuICAgICAgICAgICAgaWYoZXJyPy5lcnJvckNvZGUgPT0gJzQyMicpe1xuICAgICAgICAgICAgICB0aGlzLmVycm9yVGV4dCA9IGVyci5tc2dbMF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNob3dFcnJvciA9IHRydWU7XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgXG4gICAgc2F2ZVNjcmVlblF1ZXN0aW9ubmFpcmVOZXcoc2NyZWVuUXVlc3Rpb25uYWlyZSA6IFF1ZXN0aW9ubmFpcmVTYXZlTW9kZWxbXSl7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcInNhdmUgc2NyZWVuUXVlc3Rpb25uYWlyZSA6IFwiLCBzY3JlZW5RdWVzdGlvbm5haXJlKTtcbiAgICAgIGxldCBzdWJzY3JpcHRpb25zID0gW107XG4gICAgICBzY3JlZW5RdWVzdGlvbm5haXJlLmZvckVhY2ggKHEgPT4ge1xuICAgICAgICBpZih0aGlzLmF1dG9TYXZlKXtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygncWUgZGF0YSBpcyA6ICcsIEpTT04ucGFyc2UocS5zY3JlZW5RdWVzdGlvbm5haXJlRGF0YVswXSkpO1xuICAgICAgICAgIHRoaXMucWVSZXNwb25zZS5zZXQodGhpcy5xSWQsIEpTT04ucGFyc2UocS5zY3JlZW5RdWVzdGlvbm5haXJlRGF0YVswXSkpXG4gICAgICAgICAgc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMucXVlc3Rpb25uYWlyZVNlcnZpY2Uuc2F2ZVNjcmVlblF1ZXN0aW9ubmFpcmUocSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBzdWJzY3JpcHRpb25zO1xuICAgIH1cblxuICAgIHNhdmVTY3JlZW5RdWVzdGlvbm5haXJlKHFlU2NyZWVuRGF0YTogUXVlc3Rpb25uYWlyZVNhdmVNb2RlbCkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3NhdmVTY3JlZW5RdWVzdGlvbm5haXJlID0gJywgcWVTY3JlZW5EYXRhKTtcbiAgICAgIGlmKHRoaXMuYXV0b1NhdmUpe1xuICAgICAgICB0aGlzLnF1ZXN0aW9ubmFpcmVTZXJ2aWNlLnNhdmVTY3JlZW5RdWVzdGlvbm5haXJlKHFlU2NyZWVuRGF0YSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3NhdmUgc2NyZWVuIHFlIHJlc3BvbnNlID0gJyxyZXMpO1xuICAgICAgICAgICAgICB0aGlzLnNob3dSZXNwb25zZSA9IHRydWU7XG4gICAgICAgICAgICB9LCBlcnIgPT4ge1xuICAgICAgICAgICAgICBpZihlcnI/LmVycm9yQ29kZSA9PSAnNDIyJyl7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvclRleHQgPSBlcnIubXNnWzBdO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRoaXMuc2hvd0Vycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgXG4gICAgaGFuZGxlRXJyb3IoZXJyb3IpIHtcbiAgICAgIHRoaXMuc2hvd0Vycm9yID0gdHJ1ZTtcbiAgICB9XG4gIFxuICAgIGNsb3NlKCl7XG4gICAgICB0aGlzLm1vZGVsQ2FuY2VsLmVtaXQoKTtcbiAgICB9XG4gIFxuICAgIGNoZWNrQW5kU2F2ZUFsbFF1ZXN0aW9ubmFpcmVzKHF1ZXN0aW9ubmFpcmVzIDogUXVlc3Rpb25uYWlyZVNhdmVNb2RlbFtdKXtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwic2F2ZSBxdWVzdGlvbm5haXJlcyA6IFwiLCBxdWVzdGlvbm5haXJlcyk7XG4gICAgICBsZXQgc3Vic2NyaXB0aW9ucyA9IFtdO1xuICAgICAgcXVlc3Rpb25uYWlyZXMuZm9yRWFjaCAocSA9PiB7IFxuICAgICAgICAvL3RoaXMucWVSZXNwb25zZS5zZXQodGhpcy5xSWQsIEpTT04ucGFyc2UocS5kYXRhKSlcbiAgICAgICAgaWYocS5pc1NjcmVlblF1ZXN0aW9ubmFpcmUpe1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdxZSBkYXRhIGZvciBzY3JlZW4gaXMgOiAnLCBKU09OLnBhcnNlKHEuZGF0YSkpO1xuICAgICAgICAgIHRoaXMucWVSZXNwb25zZS5zZXQodGhpcy5xSWQsIEpTT04ucGFyc2UocS5zY3JlZW5RdWVzdGlvbm5haXJlRGF0YVswXSkpO1xuICAgICAgICB9ZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3FlIGRhdGEgaXMgOiAnLCBKU09OLnBhcnNlKHEuZGF0YSkpO1xuICAgICAgICAgIHRoaXMucWVSZXNwb25zZS5zZXQodGhpcy5xSWQsIEpTT04ucGFyc2UocS5kYXRhKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYocS5hdXRvU2F2ZSAmJiBxLmlzU2NyZWVuUXVlc3Rpb25uYWlyZSl7XG4gICAgICAgICAgLy9zYXZlIGRhdGEgaW50byBzY3JlZW4gc3BlY2lmaWMgdGFibGUgLSB1c2Ugc2F2ZSBtZXRob2QgZm9yIGNvZGUgdG8gZm9sbG93XG4gICAgICAgICAgc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMucXVlc3Rpb25uYWlyZVNlcnZpY2Uuc2F2ZVNjcmVlblF1ZXN0aW9ubmFpcmUocSkpO1xuICAgICAgICB9IGVsc2UgaWYoIXEuaXNTY3JlZW5RdWVzdGlvbm5haXJlKXsgIFxuICAgICAgICAgIC8vc2F2ZSBkYXRhIGludG8gUWUgc3BlY2lmaWMgdGFibGVzICAgICAgXG4gICAgICAgICAgc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMucXVlc3Rpb25uYWlyZVNlcnZpY2Uuc2F2ZVF1ZXN0aW9ubmFpcmUocSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBzdWJzY3JpcHRpb25zO1xuICAgIH1cblxuICAgIHNhdmVRdWVzdGlvbm5haXJlcyhxdWVzdGlvbm5haXJlcyA6IFF1ZXN0aW9ubmFpcmVTYXZlTW9kZWxbXSl7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcInNhdmUgcXVlc3Rpb25uYWlyZXMgOiBcIiwgcXVlc3Rpb25uYWlyZXMpO1xuICAgICAgbGV0IHN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICAgIHF1ZXN0aW9ubmFpcmVzLmZvckVhY2ggKHEgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygncWUgZGF0YSBpcyA6ICcsIEpTT04ucGFyc2UocS5kYXRhKSk7XG4gICAgICAgIHRoaXMucWVSZXNwb25zZS5zZXQodGhpcy5xSWQsIEpTT04ucGFyc2UocS5kYXRhKSlcbiAgICAgICAgc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMucXVlc3Rpb25uYWlyZVNlcnZpY2Uuc2F2ZVF1ZXN0aW9ubmFpcmUocSkpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gc3Vic2NyaXB0aW9ucztcbiAgICB9XG4gIFxuICAgIGNsb3NlQWZ0ZXJTdWNjZXNzKCl7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnY2xvc2UgYWZ0ZXIgc3VjY2VzcyBjYWxsZWQnKTtcbiAgICAgIHRoaXMub25Db21wbGV0ZS5lbWl0KHRoaXMucWVSZXNwb25zZSk7XG4gICAgfVxuICBcbiAgfSIsIjxwLWRpYWxvZyBbdmlzaWJsZV09XCJpc1Zpc2libGVcIiBhcHBlbmRUbz1cImJvZHlcIiBbYnJlYWtwb2ludHNdPVwieycxMjAwcHgnOiAnNjYwcHgnLCAnOTkycHgnOiAnNjYwcHgnLCAnNzY4cHgnOiAnNjYwcHgnLCAnNTc2cHgnOiAnMTAwdncnfVwiXHJcbiAgICBbc3R5bGVdPVwie3dpZHRoOiAnNDV2dycsIGhlaWdodCA6ICdpbmhlcml0J31cIiBtb2RhbD1cInRydWVcIiBbc2hvd0hlYWRlcl09XCJoZWFkZXIgIT0gbnVsbCAmJiBoZWFkZXIgIT0gdW5kZWZpbmVkXCI+XHJcbiAgICBcclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIiAqbmdJZj1cImhlYWRlclwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmItaGVhZGluZ1wiPnt7aGVhZGVyfX08L3NwYW4+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgXHJcbiAgICA8ZGl2ICpuZ0lmPVwiIXNob3dSZXNwb25zZVwiPlxyXG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG1vZGVsIG9mIHFlUXVlcnlNb2RlbHM7IGxldCBpc0xhc3QgPSBsYXN0OyBpbmRleCBhcyBpXCI+XHJcbiAgICAgICAgICAgIDxhcHAtcXVlc3Rpb25uYWlyZSAjZmJzIHN0eWxlPVwiZGlzcGxheTogY29udGVudHM7XCIgKG1vZGVsQ2FuY2VsKT1cImNsb3NlKClcIiBcclxuICAgICAgICAgICAgW3F1ZXJ5TW9kZWxdPVwibW9kZWxcIiAob25Db21wbGV0ZSk9XCJjb21wbGV0ZSgkZXZlbnQpXCIgW2hpZGVIZWFkZXJdPVwidHJ1ZVwiIFthdXRvU2F2ZV09XCJhdXRvU2F2ZSA/IChtb2RlbC5hdXRvU2F2ZSA9PSB0cnVlID8gdHJ1ZSA6IGZhbHNlKSA6IChtb2RlbC5hdXRvU2F2ZSA9PSB0cnVlID8gdHJ1ZSA6IGZhbHNlKVwiIFtwYWdlVHlwZV09XCJudWxsXCJcclxuICAgICAgICAgICAgW2hpZGVGb290ZXJdPVwidHJ1ZVwiIFtkeW5hbWljUGFyYW1dPVwibW9kZWwuZHluYW1pY1BhcmFtXCIgW2Zvcm1EYXRhXT1cImZvcm1EYXRhID8gZm9ybURhdGEgOiBtb2RlbC5kYXRhXCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgW211bHRpTW9kZV09XCJ0cnVlXCIgW3F1ZXN0aW9uTnVtYmVyXT1cInNob3dRdWVzdGlvbk51bWJlciA/IChpKzEpIDogbnVsbFwiPjwvYXBwLXF1ZXN0aW9ubmFpcmU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hvd1Jlc3BvbnNlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlvbi10ZXh0LWNlbnRlciBpb24tcGFkZGluZy10b3BcIj5cclxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGVja21hcmstY2lyY2xlXCIgc3R5bGU9XCJmb250LXNpemU6IDgwcHg7IGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZ3JlZW4pO1wiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgIDxoMT57eydSZXNwb25zZSBzYXZlZCBzdWNjZXNzZnVsbHkuJyB8IHRyYW5zbGF0ZX19PC9oMT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8aW9uLXJvdyBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XHJcbiAgICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJjbG9zZSgpXCIgdHlwZT1cInJlc2V0XCI+e3snQ2xvc2UnIHwgdHJhbnNsYXRlfX08L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0Vycm9yXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlvbi10ZXh0LWNlbnRlciBpb24tcGFkZGluZy10b3BcIj5cclxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjbG9zZS1jaXJjbGUtb3V0bGluZVwiIHN0eWxlPVwiZm9udC1zaXplOiA4MHB4OyBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhbmdlcik7XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgPGgxPnt7ZXJyb3JUZXh0ID8gZXJyb3JUZXh0IDogJ0NvdWxkIG5vdCBzYXZlIHJlc3BvbnNlLiBQbGVhc2UgdHJ5IGFnYWluLid9fTwvaDE+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGlvbi1yb3cgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxyXG4gICAgICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgZmlsbD1cIm91dGxpbmVcIiAoY2xpY2spPVwiY2xvc2UoKVwiIHR5cGU9XCJyZXNldFwiPnt7J0Nsb3NlJyB8IHRyYW5zbGF0ZX19PC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgPC9pb24tcm93PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8cC1mb290ZXIgKm5nSWY9XCIhc2hvd1Jlc3BvbnNlXCI+XHJcbiAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJjbG9zZSgpXCIgdHlwZT1cInJlc2V0XCIgKm5nSWY9XCJzaG93Q2xvc2VcIj57eydDbG9zZScgfCB0cmFuc2xhdGV9fTwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiBmaWxsPVwic29saWRcIiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cInN1Ym1pdCgpXCI+e3snU3VibWl0JyB8IHRyYW5zbGF0ZX19PC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgPC9pb24tcm93PlxyXG4gICAgPC9wLWZvb3Rlcj5cclxuPC9wLWRpYWxvZz4iXX0=
@@ -1,3 +1,3 @@
1
1
  export class QuestionBase {
2
2
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbm5haXJlL3F1ZXN0aW9uLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFlBQVk7Q0FjeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50c01vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0VsZW1lbnRzTW9kZWxcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBRdWVzdGlvbkJhc2U8VD4ge1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgc2hvd1Byb2dyZXNzQmFyPzogc3RyaW5nO1xyXG4gIHByb2dyZXNzQmFyVHlwZT86IHN0cmluZztcclxuICBzdGVwQ291bnRlcj86bnVtYmVyO1xyXG4gIGlzRmlyc3RQYWdlU3VibWl0Pzpib29sZWFuO1xyXG4gIHBhZ2VzPzoge1xyXG4gICAgbmF2aWdhdGlvblRpdGxlOiBzdHJpbmc7XHJcbiAgICBuYXZpZ2F0aW9uRGVzY3JpcHRpb246IHN0cmluZztcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIHF1ZXN0aW9ubm5haXJlSWQ/Om51bWJlcjtcclxuICAgIGlzUGxhY2VIb2xkZXI6Ym9vbGVhbjtcclxuICAgIGVsZW1lbnRzOiBFbGVtZW50c01vZGVsW107XHJcbiAgfVtdO1xyXG59XHJcbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbm5haXJlL3F1ZXN0aW9uLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFlBQVk7Q0FjeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50c01vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0VsZW1lbnRzTW9kZWxcIjtcblxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uQmFzZTxUPiB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHNob3dQcm9ncmVzc0Jhcj86IHN0cmluZztcbiAgcHJvZ3Jlc3NCYXJUeXBlPzogc3RyaW5nO1xuICBzdGVwQ291bnRlcj86bnVtYmVyO1xuICBpc0ZpcnN0UGFnZVN1Ym1pdD86Ym9vbGVhbjtcbiAgcGFnZXM/OiB7XG4gICAgbmF2aWdhdGlvblRpdGxlOiBzdHJpbmc7XG4gICAgbmF2aWdhdGlvbkRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHF1ZXN0aW9ubm5haXJlSWQ/Om51bWJlcjtcbiAgICBpc1BsYWNlSG9sZGVyOmJvb2xlYW47XG4gICAgZWxlbWVudHM6IEVsZW1lbnRzTW9kZWxbXTtcbiAgfVtdO1xufVxuIl19
@@ -6,6 +6,7 @@ export class QuestionControlService {
6
6
  constructor(datepipe) {
7
7
  this.datepipe = datepipe;
8
8
  this.sharedData = new Map();
9
+ console.log("Init QuestionControlService");
9
10
  }
10
11
  toFormGroup(questions, pageIndex, params) {
11
12
  //console.log('params',params);
@@ -405,4 +406,4 @@ export class QuestionControlService {
405
406
  }], () => [{ type: i1.DatePipe }], null); })();
406
407
  export class Choices {
407
408
  }
408
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tY29udHJvbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXN0aW9ubmFpcmUvcXVlc3Rpb24tY29udHJvbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFJdkYsTUFBTSxPQUFPLHNCQUFzQjtJQUdqQyxZQUFtQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRHJDLGVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2dCLENBQUM7SUFDeEMsV0FBVyxDQUFDLFNBQWlDLEVBQUUsU0FBaUIsRUFBQyxNQUF5QjtRQUUxRiwrQkFBK0I7UUFFN0IsTUFBTSxLQUFLLEdBQWlELEVBQUUsQ0FBQztRQUMvRCxJQUFJLFNBQVMsR0FBWSxLQUFLLENBQUM7UUFFL0IsSUFBSSxLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUxQyxJQUFHLEtBQUssSUFBSSxLQUFLLENBQUMsYUFBYSxFQUFDO1lBQzlCLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQztRQUVELElBQUksVUFBYyxDQUFDO1FBQ25CLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMzQixVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDakQsU0FBUyxHQUFHLElBQUksQ0FBQztZQUNqQixnRUFBZ0U7U0FDakU7YUFBTTtZQUNMLFNBQVMsR0FBRyxLQUFLLENBQUM7U0FDbkI7UUFDRCxzQ0FBc0M7UUFFdEMsOEJBQThCO1FBRTlCLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQy9CLElBQUksVUFBVSxHQUFXLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDdEMsSUFBSSxVQUFVLEtBQUssU0FBUyxFQUFFO2dCQUM1QixJQUFJLFNBQVMsRUFBRTtvQkFDYixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUN4RTtxQkFBTTtvQkFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3BEO2FBQ0Y7WUFDRCxJQUFJLFVBQVUsS0FBSyxVQUFVLEVBQUU7Z0JBQzdCLElBQUksU0FBUyxFQUFFO29CQUNiLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQ3hFO3FCQUFNO29CQUNMLElBQUcsT0FBTyxDQUFDLFlBQVksRUFBQzt3QkFDdEIsTUFBTSxNQUFNLEdBQVEsT0FBTyxDQUFDLFlBQVksQ0FBQzt3QkFDekMsSUFBSSxVQUFVLEdBQVksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDN0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNuRCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQzdGLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQzt3QkFDOUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsRUFBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUM5RDt5QkFBSzt3QkFDSixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ3BEO2lCQUNGO2FBQ0Y7WUFDRCxJQUFJLFVBQVUsS0FBSyxNQUFNLElBQUksT0FBTyxDQUFDLFNBQVMsSUFBSSxNQUFNLEVBQUU7Z0JBRXhELElBQUksT0FBTyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsU0FBUyxLQUFLLFFBQVEsRUFBRTtvQkFDdkQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNyRDtxQkFDSSxJQUFJLE9BQU8sQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxLQUFLLEVBQUU7b0JBQ3pELEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztpQkFDL0Q7cUJBQ0k7b0JBRUgsSUFBSSxTQUFTLEVBQUU7d0JBQ2IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztxQkFDeEU7eUJBQ0ksSUFBRyxPQUFPLENBQUMsWUFBWSxFQUFDO3dCQUMzQixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO3FCQUVwRTt5QkFDSTt3QkFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztxQkFDeEU7aUJBQ0Y7YUFDRjtZQUNELElBQUksVUFBVSxLQUFLLE1BQU0sSUFBSSxPQUFPLENBQUMsU0FBUyxLQUFLLE1BQU0sRUFBRTtnQkFFekQsSUFBSSxTQUFTLEVBQUU7b0JBQ2YsMEVBQTBFO29CQUN4RSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ2xGO3FCQUFNO29CQUNMLElBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUM7d0JBQzFCLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFDM0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO3FCQUM3RDt5QkFDSSxJQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUM7d0JBQzNCLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO3dCQUM5RCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7cUJBQzdEO3lCQUNHO3dCQUNGLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDcEQ7aUJBQ0Y7YUFDRjtZQUNELElBQUksVUFBVSxLQUFLLFlBQVksRUFBRTtnQkFDL0IsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDeEU7cUJBQ0ksSUFBRyxPQUFPLENBQUMsWUFBWSxFQUFDO29CQUMzQixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUNwRTtxQkFDSSxJQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDO29CQUMvQixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDeEU7cUJBQ0k7b0JBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNwRDthQUNGO1lBQ0QsSUFBSSxVQUFVLEtBQUssVUFBVSxJQUFJLFVBQVUsS0FBSyxzQkFBc0IsRUFBRTtnQkFDdEUsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDeEU7cUJBQ0ksSUFBRyxPQUFPLENBQUMsWUFBWSxFQUFDO29CQUMzQixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUNwRTtxQkFDSSxJQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDO29CQUMvQixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDeEU7cUJBQ0k7b0JBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNwRDthQUNGO1lBQ0QsSUFBSSxVQUFVLEtBQUssY0FBYyxFQUFFO2dCQUNqQyxJQUFJLFNBQVMsRUFBRTtvQkFDYixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUN4RTtxQkFBTTtvQkFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3BEO2FBQ0Y7WUFFRCxJQUFJLFVBQVUsS0FBSyxnQkFBZ0IsRUFBRTtnQkFDbkMsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDeEU7cUJBQ0ksSUFBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBQztvQkFDL0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQ3hFO3FCQUFLO29CQUNKLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDcEQ7YUFDRjtZQUVELElBQUksVUFBVSxLQUFLLGVBQWUsRUFBRTtnQkFDbEMsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDeEU7cUJBQ0ksSUFBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBQztvQkFDL0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQ3hFO3FCQUFLO29CQUNKLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDcEQ7YUFDRjtZQUVELElBQUksVUFBVSxLQUFLLFFBQVEsRUFBRTtnQkFDM0IsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDeEU7cUJBQU07b0JBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7aUJBQ2hEO2FBQ0Y7WUFFRCxJQUFJLFVBQVUsS0FBSyxvQkFBb0IsRUFBRTtnQkFDdkMsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDeEU7cUJBQU07b0JBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNwRDthQUNGO1lBRUQsSUFBSSxVQUFVLEtBQUssUUFBUSxFQUFFO2dCQUMzQixJQUFJLFNBQVMsRUFBRTtvQkFDYixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUN4RTtxQkFBSyxJQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUM7b0JBQzVCLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7aUJBQ3BFO3FCQUFNO29CQUNMLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUN4RTthQUNGO1lBRUQsSUFBSSxVQUFVLEtBQUssUUFBUSxFQUFFO2dCQUMzQixJQUFJLFNBQVMsRUFBRTtvQkFDYixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUN4RTtxQkFBSyxJQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUM7b0JBQzVCLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7aUJBQ3BFO3FCQUFNO29CQUNMLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDcEQ7YUFDRjtZQUVELElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRTtnQkFDNUIsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDeEU7cUJBQUssSUFBRyxPQUFPLENBQUMsWUFBWSxFQUFDO29CQUM1QixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUNwRTtxQkFBTTtvQkFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3BEO2FBQ0Y7WUFFRCxJQUFJLFVBQVUsS0FBSyxVQUFVLEVBQUU7Z0JBQzdCLElBQUksU0FBUyxFQUFFO29CQUNiLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQ3hFO3FCQUFLLElBQUcsT0FBTyxDQUFDLFlBQVksRUFBQztvQkFDNUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDcEU7cUJBQU07b0JBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNwRDthQUNGO1lBRUQsSUFBSSxVQUFVLEtBQUsscUJBQXFCLEVBQUU7Z0JBQ3hDLElBQUksU0FBUyxFQUFFO29CQUNiLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQ3hFO3FCQUFLLElBQUcsT0FBTyxDQUFDLFlBQVksRUFBQztvQkFDNUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDcEU7cUJBQU07b0JBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNwRDthQUNGO1lBR0QsSUFBSSxVQUFVLEtBQUssT0FBTyxFQUFFO2dCQUMxQixPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtvQkFDdEMsSUFBSSxlQUFlLEdBQVcsWUFBWSxDQUFDLElBQUksQ0FBQztvQkFDaEQsSUFBSSxlQUFlLEtBQUssVUFBVSxFQUFFO3dCQUNsQyxJQUFJLFNBQVMsRUFBRTs0QkFDZCxzSEFBc0g7NEJBQ3JILEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7eUJBQ2xGOzZCQUFNOzRCQUNMLElBQUcsWUFBWSxDQUFDLFlBQVksRUFBQztnQ0FDM0IsTUFBTSxNQUFNLEdBQVEsWUFBWSxDQUFDLFlBQVksQ0FBQztnQ0FDOUMsSUFBSSxVQUFVLEdBQVksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztnQ0FDN0MsSUFBSSxhQUFhLEdBQVUsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQ0FDekMsYUFBYSxDQUFDLElBQUksR0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO2dDQUNuQyxhQUFhLENBQUMsS0FBSyxHQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7Z0NBQ3ZDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQzs2QkFDaEU7aUNBQUk7Z0NBQ0gsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDOzZCQUN6RDt5QkFDRjtxQkFDRjtvQkFDRCxJQUFJLGVBQWUsS0FBSyxNQUFNLElBQUksWUFBWSxDQUFDLFNBQVMsSUFBSSxNQUFNLEVBQUU7d0JBQ2xFLElBQUksU0FBUyxFQUFFOzRCQUNiLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7eUJBQ2xGOzZCQUNLLElBQUcsWUFBWSxDQUFDLFlBQVksRUFBQzs0QkFDakMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQzt5QkFDOUU7NkJBQ0k7NEJBQ0gsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7eUJBQ2xGO3FCQUNGO29CQUNELElBQUksZUFBZSxLQUFLLE1BQU0sSUFBSSxZQUFZLENBQUMsU0FBUyxLQUFLLE1BQU0sRUFBRTt3QkFFbkUsSUFBSSxTQUFTLEVBQUU7NEJBQ2Isa0ZBQWtGOzRCQUNsRixLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7eUJBQzVGOzZCQUNJLElBQUcsWUFBWSxDQUFDLFlBQVksRUFBQzs0QkFDaEMsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7NEJBQ25FLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQzt5QkFDbEU7NkJBRUk7NEJBQ0gsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUN6RDtxQkFDRjtvQkFDRCxJQUFJLGVBQWUsS0FBSyxZQUFZLEVBQUU7d0JBQ3BDLElBQUksU0FBUyxFQUFFOzRCQUNiLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7eUJBQ2xGOzZCQUNLLElBQUcsWUFBWSxDQUFDLFlBQVksRUFBQzs0QkFDakMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQzt5QkFDOUU7NkJBQ0ksSUFBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBQzs0QkFDcEMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7eUJBQ2xGOzZCQUNJOzRCQUNILEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQzt5QkFDekQ7cUJBQ0Y7b0JBRUQsSUFBSSxlQUFlLEtBQUssVUFBVSxJQUFJLGVBQWUsS0FBSyxzQkFBc0IsRUFBRTt3QkFDaEYsSUFBSSxTQUFTLEVBQUU7NEJBQ2IsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzt5QkFDbEY7NkJBQ0ssSUFBRyxZQUFZLENBQUMsWUFBWSxFQUFDOzRCQUNqQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO3lCQUM5RTs2QkFDSSxJQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFDOzRCQUNwQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzt5QkFDbEY7NkJBQ0k7NEJBQ0gsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUN6RDtxQkFDRjtvQkFDRCxJQUFJLGVBQWUsS0FBSyxRQUFRLEVBQUU7d0JBQ2hDLElBQUksU0FBUyxFQUFFOzRCQUNiLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7eUJBQ2xGOzZCQUFNOzRCQUNMLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQzt5QkFDekQ7cUJBQ0Y7b0JBQ0QsSUFBSSxlQUFlLEtBQUssY0FBYyxFQUFFO3dCQUN0QyxJQUFJLFNBQVMsRUFBRTs0QkFDYixLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO3lCQUNsRjs2QkFBTTs0QkFDTCxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQ3pEO3FCQUNGO29CQUVELElBQUksZUFBZSxLQUFLLG9CQUFvQixFQUFFO3dCQUM1QyxJQUFJLFNBQVMsRUFBRTs0QkFDYixLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO3lCQUNsRjs2QkFBTTs0QkFDTCxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQ3pEO3FCQUNGO29CQUVELElBQUksZUFBZSxLQUFLLFFBQVEsRUFBRTt3QkFDaEMsSUFBSSxTQUFTLEVBQUU7NEJBQ2IsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzt5QkFDbEY7NkJBQU07NEJBQ0wsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUN6RDtxQkFDRjtvQkFFRCxJQUFJLGVBQWUsS0FBSyxRQUFRLEVBQUU7d0JBQ2hDLElBQUksU0FBUyxFQUFFOzRCQUNiLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7eUJBQ2xGOzZCQUFLLElBQUcsWUFBWSxDQUFDLFlBQVksRUFBQzs0QkFDakMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQzt5QkFDOUU7NkJBQU07NEJBQ0wsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUN6RDtxQkFDRjtvQkFFRCxJQUFJLGVBQWUsS0FBSyxTQUFTLEVBQUU7d0JBQ2pDLElBQUksU0FBUyxFQUFFOzRCQUNiLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7eUJBQ2xGOzZCQUFLLElBQUcsWUFBWSxDQUFDLFlBQVksRUFBQzs0QkFDakMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQzt5QkFDOUU7NkJBQU07NEJBQ0wsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUN6RDtxQkFDRjtvQkFFRCxJQUFJLGVBQWUsS0FBSyxVQUFVLEVBQUU7d0JBQ2xDLElBQUksU0FBUyxFQUFFOzRCQUNiLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7eUJBQ2xGOzZCQUFLLElBQUcsWUFBWSxDQUFDLFlBQVksRUFBQzs0QkFDakMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQzt5QkFDOUU7NkJBQU07NEJBQ0wsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUN6RDtxQkFDRjtvQkFFRCxJQUFJLGVBQWUsS0FBSyxxQkFBcUIsRUFBRTt3QkFDN0MsSUFBSSxTQUFTLEVBQUU7NEJBQ2IsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzt5QkFDbEY7NkJBQUssSUFBRyxZQUFZLENBQUMsWUFBWSxFQUFDOzRCQUNqQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO3lCQUM5RTs2QkFBTTs0QkFDTCxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQ3pEO3FCQUNGO2dCQUVILENBQUMsQ0FBQyxDQUFBO2FBRUg7UUFFSCxDQUFDLENBQUMsQ0FBQztRQUNILDhCQUE4QjtRQUM5QixPQUFPLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUFlO1FBQ3JCLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO1FBQ2pFLElBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ2hELElBQUksVUFBVSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsSUFBSSxJQUFXLENBQUM7UUFDaEIsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFJRCxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUk7UUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFDRCxPQUFPLENBQUMsS0FBSztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQzt1RkE5WVUsc0JBQXNCO3VFQUF0QixzQkFBc0IsV0FBdEIsc0JBQXNCOztpRkFBdEIsc0JBQXNCO2NBRGxDLFVBQVU7O0FBa1pYLE1BQU0sT0FBTyxPQUFPO0NBR25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBRdWVzdGlvbkJhc2UgfSBmcm9tICcuL3F1ZXN0aW9uLWJhc2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25Db250cm9sU2VydmljZSB7XHJcblxyXG4gIHNoYXJlZERhdGEgPSBuZXcgTWFwKCk7XHJcbiAgY29uc3RydWN0b3IocHVibGljIGRhdGVwaXBlOiBEYXRlUGlwZSl7fVxyXG4gIHRvRm9ybUdyb3VwKHF1ZXN0aW9uczogUXVlc3Rpb25CYXNlPHN0cmluZz5bXSwgcGFnZUluZGV4OiBudW1iZXIscGFyYW1zOk1hcDxzdHJpbmcsc3RyaW5nPikge1xyXG4gICAgXHJcbiAgLy9jb25zb2xlLmxvZygncGFyYW1zJyxwYXJhbXMpO1xyXG4gICBcclxuICAgIGNvbnN0IGdyb3VwOiAge1trZXk6IHN0cmluZ106IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT47fSA9IHt9O1xyXG4gICAgbGV0IGRhdGFGb3VuZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGxldCBwYWdlcyA9IHF1ZXN0aW9uc1swXS5wYWdlc1twYWdlSW5kZXhdO1xyXG5cclxuICAgIGlmKHBhZ2VzICYmIHBhZ2VzLmlzUGxhY2VIb2xkZXIpe1xyXG4gICAgICByZXR1cm4gbmV3IFVudHlwZWRGb3JtR3JvdXAoZ3JvdXApO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBzdHJJbnRvT2JqOiBbXTtcclxuICAgIGlmICh0aGlzLmdldERhdGEocGFnZUluZGV4KSkge1xyXG4gICAgICBzdHJJbnRvT2JqID0gSlNPTi5wYXJzZSh0aGlzLmdldERhdGEocGFnZUluZGV4KSk7XHJcbiAgICAgIGRhdGFGb3VuZCA9IHRydWU7XHJcbiAgICAgIC8vY29uc29sZS5sb2coJ3N0ckludG9PYmogICAnLHN0ckludG9PYmpbJ2NsYWltYW50RW1wTmFtZTEwMiddKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRhdGFGb3VuZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy9jb25zb2xlLmxvZygnZGF0YUZvdW5kJywgZGF0YUZvdW5kKTtcclxuICAgIFxyXG4gICAgLy8vY29uc29sZS5sb2coJ3BhZ2VzJyxwYWdlcyk7XHJcblxyXG4gICAgcGFnZXMuZWxlbWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgbGV0IGNvbnRybFR5cGU6IHN0cmluZyA9IGVsZW1lbnQudHlwZTtcclxuICAgICAgaWYgKGNvbnRybFR5cGUgPT09ICdjb21tZW50Jykge1xyXG4gICAgICAgIGlmIChkYXRhRm91bmQpIHtcclxuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoY29udHJsVHlwZSA9PT0gJ2Ryb3Bkb3duJykge1xyXG4gICAgICAgIGlmIChkYXRhRm91bmQpIHtcclxuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmKGVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcclxuICAgICAgICAgICAgY29uc3QgY2hvaWNlOnN0cmluZz1lbGVtZW50LmRlZmF1bHRWYWx1ZTtcclxuICAgICAgICAgICAgdmFyIGpzb25PYmplY3Q6IENob2ljZXMgPSBKU09OLnBhcnNlKGNob2ljZSk7ICBcclxuICAgICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XHJcbiAgICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0/LnBhdGNoVmFsdWUoZWxlbWVudC5jaG9pY2VzLmZpbHRlcihjID0+IGMudmFsdWUgPT0ganNvbk9iamVjdC52YWx1ZSlbMF0pO1xyXG4gICAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdncm91cFtlbGVtZW50Lm5hbWVdJyxncm91cFtlbGVtZW50Lm5hbWVdLnZhbHVlKTtcclxuICAgICAgICAgIH0gZWxzZXtcclxuICAgICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChjb250cmxUeXBlID09PSAndGV4dCcgJiYgZWxlbWVudC5pbnB1dFR5cGUgIT0gJ2RhdGUnKSB7XHJcblxyXG4gICAgICAgIGlmIChlbGVtZW50LmN1c3RvbVRhZyAmJiBlbGVtZW50LmN1c3RvbVRhZyA9PT0gJ2R1ZWFtdCcpIHtcclxuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKFwiMTIxXCIpO1xyXG4gICAgICAgIH0gXHJcbiAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5jdXN0b21UYWcgJiYgZWxlbWVudC5jdXN0b21UYWcgPT09ICdlYW4nKSB7XHJcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChcIjgxLTAwNTg2LTAtMDFcIik7XHJcbiAgICAgICAgfSBcclxuICAgICAgICBlbHNlIHtcclxuXHJcbiAgICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XHJcbiAgICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XHJcbiAgICAgICAgICB9IFxyXG4gICAgICAgICAgZWxzZSBpZihlbGVtZW50LmRlZmF1bHRWYWx1ZSl7XHJcbiAgICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKGVsZW1lbnQuZGVmYXVsdFZhbHVlKTtcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocGFyYW1zLmdldChlbGVtZW50Lm5hbWUpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGNvbnRybFR5cGUgPT09ICd0ZXh0JyAmJiBlbGVtZW50LmlucHV0VHlwZSA9PT0gJ2RhdGUnKSB7XHJcblxyXG4gICAgICAgIGlmIChkYXRhRm91bmQpIHtcclxuICAgICAgICAvLyAgY29uc29sZS5sb2coJ0RhdGUgc3RySW50b09ialtlbGVtZW50Lm5hbWVdJywgc3RySW50b09ialtlbGVtZW50Lm5hbWVdKVxyXG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobmV3IERhdGUoc3RySW50b09ialtlbGVtZW50Lm5hbWVdKSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmKHBhcmFtcy5nZXQoZWxlbWVudC5uYW1lKSl7XHJcbiAgICAgICAgICAgIGxldCBmb3JtYXR0ZWREYXRlID0gdGhpcy5nZXREYXRlKHBhcmFtcy5nZXQoZWxlbWVudC5uYW1lKSk7XHJcbiAgICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKGZvcm1hdHRlZERhdGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSBpZihlbGVtZW50LmRlZmF1bHRWYWx1ZSl7XHJcbiAgICAgICAgICAgIGxldCBmb3JtYXR0ZWREYXRlID0gdGhpcy5nZXREYXRlKGVsZW1lbnQuZGVmYXVsdFZhbHVlLnRyaW0oKSk7XHJcbiAgICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKGZvcm1hdHRlZERhdGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChjb250cmxUeXBlID09PSAncmFkaW9ncm91cCcpIHtcclxuICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XHJcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW2VsZW1lbnQubmFtZV0pO1xyXG4gICAgICAgIH0gXHJcbiAgICAgICAgZWxzZSBpZihlbGVtZW50LmRlZmF1bHRWYWx1ZSl7XHJcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChlbGVtZW50LmRlZmF1bHRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYocGFyYW1zLmdldChlbGVtZW50Lm5hbWUpKXtcclxuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHBhcmFtcy5nZXQoZWxlbWVudC5uYW1lKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChjb250cmxUeXBlID09PSAnY2hlY2tib3gnIHx8IGNvbnRybFR5cGUgPT09ICdzaW5nbGVzZWxlY3RjaGVja2JveCcpIHtcclxuICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XHJcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW2VsZW1lbnQubmFtZV0pO1xyXG4gICAgICAgIH0gXHJcbiAgICAgICAgZWxzZSBpZihlbGVtZW50LmRlZmF1bHRWYWx1ZSl7XHJcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChlbGVtZW50LmRlZmF1bHRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYocGFyYW1zLmdldChlbGVtZW50Lm5hbWUpKXtcclxuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHBhcmFtcy5nZXQoZWxlbWVudC5uYW1lKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChjb250cmxUeXBlID09PSAnYXV0b2NvbXBsZXRlJykge1xyXG4gICAgICAgIGlmIChkYXRhRm91bmQpIHtcclxuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGNvbnRybFR5cGUgPT09ICdzaW1wbGVjaGVja2JveCcpIHtcclxuICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XHJcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW2VsZW1lbnQubmFtZV0pO1xyXG4gICAgICAgIH0gXHJcbiAgICAgICAgZWxzZSBpZihwYXJhbXMuZ2V0KGVsZW1lbnQubmFtZSkpe1xyXG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocGFyYW1zLmdldChlbGVtZW50Lm5hbWUpKTtcclxuICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChjb250cmxUeXBlID09PSAnbXVsdGljaGVja2JveCcpIHtcclxuICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XHJcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW2VsZW1lbnQubmFtZV0pO1xyXG4gICAgICAgIH0gXHJcbiAgICAgICAgZWxzZSBpZihwYXJhbXMuZ2V0KGVsZW1lbnQubmFtZSkpe1xyXG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocGFyYW1zLmdldChlbGVtZW50Lm5hbWUpKTtcclxuICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChjb250cmxUeXBlID09PSAnYnV0dG9uJykge1xyXG4gICAgICAgIGlmIChkYXRhRm91bmQpIHtcclxuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoY29udHJsVHlwZSA9PT0gJ2Rpc3BsYXl0ZXh0YXNsYWJlbCcpIHtcclxuICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XHJcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW2VsZW1lbnQubmFtZV0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChjb250cmxUeXBlID09PSAnaGlkZGVuJykge1xyXG4gICAgICAgIGlmIChkYXRhRm91bmQpIHtcclxuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XHJcbiAgICAgICAgfWVsc2UgaWYoZWxlbWVudC5kZWZhdWx0VmFsdWUpe1xyXG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZWxlbWVudC5kZWZhdWx0VmFsdWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChwYXJhbXMuZ2V0KGVsZW1lbnQubmFtZSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGNvbnRybFR5cGUgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xyXG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtlbGVtZW50Lm5hbWVdKTtcclxuICAgICAgICB9ZWxzZSBpZihlbGVtZW50LmRlZmF1bHRWYWx1ZSl7XHJcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChlbGVtZW50LmRlZmF1bHRWYWx1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGNvbnRybFR5cGUgPT09ICdkZWNpbWFsJykge1xyXG4gICAgICAgIGlmIChkYXRhRm91bmQpIHtcclxuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XHJcbiAgICAgICAgfWVsc2UgaWYoZWxlbWVudC5kZWZhdWx0VmFsdWUpe1xyXG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZWxlbWVudC5kZWZhdWx0VmFsdWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChjb250cmxUeXBlID09PSAnY3VycmVuY3knKSB7XHJcbiAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xyXG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtlbGVtZW50Lm5hbWVdKTtcclxuICAgICAgICB9ZWxzZSBpZihlbGVtZW50LmRlZmF1bHRWYWx1ZSl7XHJcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChlbGVtZW50LmRlZmF1bHRWYWx1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGNvbnRybFR5cGUgPT09ICdsYWJlbC13aXRoLWNoZWNrYm94Jykge1xyXG4gICAgICAgIGlmIChkYXRhRm91bmQpIHtcclxuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XHJcbiAgICAgICAgfWVsc2UgaWYoZWxlbWVudC5kZWZhdWx0VmFsdWUpe1xyXG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZWxlbWVudC5kZWZhdWx0VmFsdWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgIFxyXG4gICAgICBpZiAoY29udHJsVHlwZSA9PT0gJ3BhbmVsJykge1xyXG4gICAgICAgIGVsZW1lbnQuZWxlbWVudHMuZm9yRWFjaChwYW5lbEVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgbGV0IHBhbmVsQ29udHJsVHlwZTogc3RyaW5nID0gcGFuZWxFbGVtZW50LnR5cGU7XHJcbiAgICAgICAgICBpZiAocGFuZWxDb250cmxUeXBlID09PSAnZHJvcGRvd24nKSB7XHJcbiAgICAgICAgICAgIGlmIChkYXRhRm91bmQpIHtcclxuICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdwYW5lbEVsZW1lbnQubmFtZScscGFuZWxFbGVtZW50Lm5hbWUsJyAgc3RySW50b09ialtwYW5lbEVsZW1lbnQubmFtZV0nLHN0ckludG9PYmpbcGFuZWxFbGVtZW50Lm5hbWVdKTtcclxuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbcGFuZWxFbGVtZW50Lm5hbWVdKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBpZihwYW5lbEVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNob2ljZTpzdHJpbmc9cGFuZWxFbGVtZW50LmRlZmF1bHRWYWx1ZTtcclxuICAgICAgICAgICAgICAgIHZhciBqc29uT2JqZWN0OiBDaG9pY2VzID0gSlNPTi5wYXJzZShjaG9pY2UpOyAgXHJcbiAgICAgICAgICAgICAgICBsZXQgZGVmYXVsdENob2ljZTpDaG9pY2VzPSBuZXcgQ2hvaWNlcygpO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdENob2ljZS50ZXh0PWpzb25PYmplY3QudGV4dDtcclxuICAgICAgICAgICAgICAgIGRlZmF1bHRDaG9pY2UudmFsdWU9anNvbk9iamVjdC52YWx1ZTtcclxuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKGRlZmF1bHRDaG9pY2UpO1xyXG4gICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChwYW5lbENvbnRybFR5cGUgPT09ICd0ZXh0JyAmJiBwYW5lbEVsZW1lbnQuaW5wdXRUeXBlICE9ICdkYXRlJykge1xyXG4gICAgICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XHJcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW3BhbmVsRWxlbWVudC5uYW1lXSk7XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIGVsc2UgIGlmKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpe1xyXG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocGFuZWxFbGVtZW50LmRlZmF1bHRWYWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChwYXJhbXMuZ2V0KHBhbmVsRWxlbWVudC5uYW1lKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChwYW5lbENvbnRybFR5cGUgPT09ICd0ZXh0JyAmJiBwYW5lbEVsZW1lbnQuaW5wdXRUeXBlID09PSAnZGF0ZScpIHtcclxuICAgIFxyXG4gICAgICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XHJcbiAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZygnRGF0ZSBzdHJJbnRvT2JqW3BhbmVsRWxlbWVudC5uYW1lXScsIHN0ckludG9PYmpbcGFuZWxFbGVtZW50Lm5hbWVdKVxyXG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobmV3IERhdGUoc3RySW50b09ialtwYW5lbEVsZW1lbnQubmFtZV0pKTtcclxuICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgZWxzZSBpZihwYW5lbEVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcclxuICAgICAgICAgICAgICBsZXQgZm9ybWF0dGVkRGF0ZSA9IHRoaXMuZ2V0RGF0ZShwYW5lbEVsZW1lbnQuZGVmYXVsdFZhbHVlLnRyaW0oKSk7XHJcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChmb3JtYXR0ZWREYXRlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHBhbmVsQ29udHJsVHlwZSA9PT0gJ3JhZGlvZ3JvdXAnKSB7XHJcbiAgICAgICAgICAgIGlmIChkYXRhRm91bmQpIHtcclxuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbcGFuZWxFbGVtZW50Lm5hbWVdKTtcclxuICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgZWxzZSAgaWYocGFuZWxFbGVtZW50LmRlZmF1bHRWYWx1ZSl7XHJcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChwYW5lbEVsZW1lbnQuZGVmYXVsdFZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKHBhcmFtcy5nZXQocGFuZWxFbGVtZW50Lm5hbWUpKXtcclxuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHBhcmFtcy5nZXQocGFuZWxFbGVtZW50Lm5hbWUpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHBhbmVsQ29udHJsVHlwZSA9PT0gJ2NoZWNrYm94JyB8fCBwYW5lbENvbnRybFR5cGUgPT09ICdzaW5nbGVzZWxlY3RjaGVja2JveCcpIHtcclxuICAgICAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xyXG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtwYW5lbEVsZW1lbnQubmFtZV0pO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBlbHNlICBpZihwYW5lbEVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcclxuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYocGFyYW1zLmdldChwYW5lbEVsZW1lbnQubmFtZSkpe1xyXG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocGFyYW1zLmdldChwYW5lbEVsZW1lbnQubmFtZSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChwYW5lbENvbnRybFR5cGUgPT09ICdidXR0b24nKSB7XHJcbiAgICAgICAgICAgIGlmIChkYXRhRm91bmQpIHtcclxuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbcGFuZWxFbGVtZW50Lm5hbWVdKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAocGFuZWxDb250cmxUeXBlID09PSAnYXV0b2NvbXBsZXRlJykge1xyXG4gICAgICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XHJcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW3BhbmVsRWxlbWVudC5uYW1lXSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmIChwYW5lbENvbnRybFR5cGUgPT09ICdkaXNwbGF5dGV4dGFzbGFiZWwnKSB7XHJcbiAgICAgICAgICAgIGlmIChkYXRhRm91bmQpIHtcclxuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbcGFuZWxFbGVtZW50Lm5hbWVdKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHBhbmVsQ29udHJsVHlwZSA9PT0gJ2hpZGRlbicpIHtcclxuICAgICAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xyXG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtwYW5lbEVsZW1lbnQubmFtZV0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAocGFuZWxDb250cmxUeXBlID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XHJcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW3BhbmVsRWxlbWVudC5uYW1lXSk7XHJcbiAgICAgICAgICAgIH1lbHNlIGlmKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpe1xyXG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocGFuZWxFbGVtZW50LmRlZmF1bHRWYWx1ZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmIChwYW5lbENvbnRybFR5cGUgPT09ICdkZWNpbWFsJykge1xyXG4gICAgICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XHJcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW3BhbmVsRWxlbWVudC5uYW1lXSk7XHJcbiAgICAgICAgICAgIH1lbHNlIGlmKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpe1xyXG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocGFuZWxFbGVtZW50LmRlZmF1bHRWYWx1ZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmIChwYW5lbENvbnRybFR5cGUgPT09ICdjdXJyZW5jeScpIHtcclxuICAgICAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xyXG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtwYW5lbEVsZW1lbnQubmFtZV0pO1xyXG4gICAgICAgICAgICB9ZWxzZSBpZihwYW5lbEVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcclxuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAocGFuZWxDb250cmxUeXBlID09PSAnbGFiZWwtd2l0aC1jaGVja2JveCcpIHtcclxuICAgICAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xyXG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtwYW5lbEVsZW1lbnQubmFtZV0pO1xyXG4gICAgICAgICAgICB9ZWxzZSBpZihwYW5lbEVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcclxuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICB9KTtcclxuICAgIC8vIGNvbnNvbGUubG9nKCdncm91cCcsZ3JvdXApO1xyXG4gICAgcmV0dXJuIG5ldyBVbnR5cGVkRm9ybUdyb3VwKGdyb3VwKTtcclxuICB9XHJcblxyXG4gIGdldERhdGUoc3RyRGF0ZTogc3RyaW5nKSB7XHJcbiAgICBsZXQgZm9ybWF0ID0gc3RyRGF0ZS5pbmNsdWRlcygnLScpID8gJ01NLWRkLXl5eXknIDogJ01NL2RkL3l5eXknO1xyXG4gICAgbGV0IHNwbGl0ZXIgPSBzdHJEYXRlLmluY2x1ZGVzKCctJykgPyAnLScgOiAnLyc7XHJcbiAgICB2YXIgc3BsaXRBcnJheSA9IHN0ckRhdGUuc3BsaXQoc3BsaXRlcik7XHJcbiAgICBsZXQgZGF0ZSA6IERhdGU7XHJcbiAgICBkYXRlID0gbmV3IERhdGUoKTtcclxuICAgIGRhdGUuc2V0TW9udGgoTnVtYmVyKHNwbGl0QXJyYXlbMF0pIC0gMSk7XHJcbiAgICBkYXRlLnNldEZ1bGxZZWFyKE51bWJlcihzcGxpdEFycmF5WzJdKSk7XHJcbiAgICBkYXRlLnNldERhdGUoTnVtYmVyKHNwbGl0QXJyYXlbMV0pKTtcclxuICAgIHJldHVybiB0aGlzLmRhdGVwaXBlLnRyYW5zZm9ybShkYXRlLGZvcm1hdCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHNldERhdGEoaW5kZXgsIGRhdGEpIHtcclxuICAgIHRoaXMuc2hhcmVkRGF0YS5zZXQoaW5kZXgsIGRhdGEpO1xyXG4gIH1cclxuICBnZXREYXRhKGluZGV4KSB7XHJcbiAgICByZXR1cm4gdGhpcy5zaGFyZWREYXRhLmdldChpbmRleCk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxEYXRhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hhcmVkRGF0YTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDaG9pY2VzIHtcclxuICB2YWx1ZT86IHN0cmluZztcclxuICB0ZXh0Pzogc3RyaW5nO1xyXG59Il19
409
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tY29udHJvbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXN0aW9ubmFpcmUvcXVlc3Rpb24tY29udHJvbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFJdkYsTUFBTSxPQUFPLHNCQUFzQjtJQUdqQyxZQUFtQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRHJDLGVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRXJCLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsV0FBVyxDQUFDLFNBQWlDLEVBQUUsU0FBaUIsRUFBQyxNQUF5QjtRQUUxRiwrQkFBK0I7UUFFN0IsTUFBTSxLQUFLLEdBQWlELEVBQUUsQ0FBQztRQUMvRCxJQUFJLFNBQVMsR0FBWSxLQUFLLENBQUM7UUFFL0IsSUFBSSxLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUxQyxJQUFHLEtBQUssSUFBSSxLQUFLLENBQUMsYUFBYSxFQUFDO1lBQzlCLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQztRQUVELElBQUksVUFBYyxDQUFDO1FBQ25CLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMzQixVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDakQsU0FBUyxH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UUFDUixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQzt1RkFoWlUsc0JBQXNCO3VFQUF0QixzQkFBc0IsV0FBdEIsc0JBQXNCOztpRkFBdEIsc0JBQXNCO2NBRGxDLFVBQVU7O0FBb1pYLE1BQU0sT0FBTyxPQUFPO0NBR25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBRdWVzdGlvbkJhc2UgfSBmcm9tICcuL3F1ZXN0aW9uLWJhc2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25Db250cm9sU2VydmljZSB7XG5cbiAgc2hhcmVkRGF0YSA9IG5ldyBNYXAoKTtcbiAgY29uc3RydWN0b3IocHVibGljIGRhdGVwaXBlOiBEYXRlUGlwZSl7XG4gICAgY29uc29sZS5sb2coXCJJbml0IFF1ZXN0aW9uQ29udHJvbFNlcnZpY2VcIik7XG4gIH1cbiAgdG9Gb3JtR3JvdXAocXVlc3Rpb25zOiBRdWVzdGlvbkJhc2U8c3RyaW5nPltdLCBwYWdlSW5kZXg6IG51bWJlcixwYXJhbXM6TWFwPHN0cmluZyxzdHJpbmc+KSB7XG4gICAgXG4gIC8vY29uc29sZS5sb2coJ3BhcmFtcycscGFyYW1zKTtcbiAgIFxuICAgIGNvbnN0IGdyb3VwOiAge1trZXk6IHN0cmluZ106IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT47fSA9IHt9O1xuICAgIGxldCBkYXRhRm91bmQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGxldCBwYWdlcyA9IHF1ZXN0aW9uc1swXS5wYWdlc1twYWdlSW5kZXhdO1xuXG4gICAgaWYocGFnZXMgJiYgcGFnZXMuaXNQbGFjZUhvbGRlcil7XG4gICAgICByZXR1cm4gbmV3IFVudHlwZWRGb3JtR3JvdXAoZ3JvdXApO1xuICAgIH1cblxuICAgIGxldCBzdHJJbnRvT2JqOiBbXTtcbiAgICBpZiAodGhpcy5nZXREYXRhKHBhZ2VJbmRleCkpIHtcbiAgICAgIHN0ckludG9PYmogPSBKU09OLnBhcnNlKHRoaXMuZ2V0RGF0YShwYWdlSW5kZXgpKTtcbiAgICAgIGRhdGFGb3VuZCA9IHRydWU7XG4gICAgICAvL2NvbnNvbGUubG9nKCdzdHJJbnRvT2JqICAgJyxzdHJJbnRvT2JqWydjbGFpbWFudEVtcE5hbWUxMDInXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGFGb3VuZCA9IGZhbHNlO1xuICAgIH1cbiAgICAvL2NvbnNvbGUubG9nKCdkYXRhRm91bmQnLCBkYXRhRm91bmQpO1xuICAgIFxuICAgIC8vL2NvbnNvbGUubG9nKCdwYWdlcycscGFnZXMpO1xuXG4gICAgcGFnZXMuZWxlbWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgIGxldCBjb250cmxUeXBlOiBzdHJpbmcgPSBlbGVtZW50LnR5cGU7XG4gICAgICBpZiAoY29udHJsVHlwZSA9PT0gJ2NvbW1lbnQnKSB7XG4gICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW2VsZW1lbnQubmFtZV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY29udHJsVHlwZSA9PT0gJ2Ryb3Bkb3duJykge1xuICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtlbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZihlbGVtZW50LmRlZmF1bHRWYWx1ZSl7XG4gICAgICAgICAgICBjb25zdCBjaG9pY2U6c3RyaW5nPWVsZW1lbnQuZGVmYXVsdFZhbHVlO1xuICAgICAgICAgICAgdmFyIGpzb25PYmplY3Q6IENob2ljZXMgPSBKU09OLnBhcnNlKGNob2ljZSk7ICBcbiAgICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xuICAgICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXT8ucGF0Y2hWYWx1ZShlbGVtZW50LmNob2ljZXMuZmlsdGVyKGMgPT4gYy52YWx1ZSA9PSBqc29uT2JqZWN0LnZhbHVlKVswXSk7XG4gICAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnZ3JvdXBbZWxlbWVudC5uYW1lXScsZ3JvdXBbZWxlbWVudC5uYW1lXS52YWx1ZSk7XG4gICAgICAgICAgfSBlbHNle1xuICAgICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY29udHJsVHlwZSA9PT0gJ3RleHQnICYmIGVsZW1lbnQuaW5wdXRUeXBlICE9ICdkYXRlJykge1xuXG4gICAgICAgIGlmIChlbGVtZW50LmN1c3RvbVRhZyAmJiBlbGVtZW50LmN1c3RvbVRhZyA9PT0gJ2R1ZWFtdCcpIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChcIjEyMVwiKTtcbiAgICAgICAgfSBcbiAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5jdXN0b21UYWcgJiYgZWxlbWVudC5jdXN0b21UYWcgPT09ICdlYW4nKSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXCI4MS0wMDU4Ni0wLTAxXCIpO1xuICAgICAgICB9IFxuICAgICAgICBlbHNlIHtcblxuICAgICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XG4gICAgICAgICAgfSBcbiAgICAgICAgICBlbHNlIGlmKGVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcbiAgICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKGVsZW1lbnQuZGVmYXVsdFZhbHVlKTtcblxuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHBhcmFtcy5nZXQoZWxlbWVudC5uYW1lKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY29udHJsVHlwZSA9PT0gJ3RleHQnICYmIGVsZW1lbnQuaW5wdXRUeXBlID09PSAnZGF0ZScpIHtcblxuICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgIC8vICBjb25zb2xlLmxvZygnRGF0ZSBzdHJJbnRvT2JqW2VsZW1lbnQubmFtZV0nLCBzdHJJbnRvT2JqW2VsZW1lbnQubmFtZV0pXG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobmV3IERhdGUoc3RySW50b09ialtlbGVtZW50Lm5hbWVdKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYocGFyYW1zLmdldChlbGVtZW50Lm5hbWUpKXtcbiAgICAgICAgICAgIGxldCBmb3JtYXR0ZWREYXRlID0gdGhpcy5nZXREYXRlKHBhcmFtcy5nZXQoZWxlbWVudC5uYW1lKSk7XG4gICAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChmb3JtYXR0ZWREYXRlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSBpZihlbGVtZW50LmRlZmF1bHRWYWx1ZSl7XG4gICAgICAgICAgICBsZXQgZm9ybWF0dGVkRGF0ZSA9IHRoaXMuZ2V0RGF0ZShlbGVtZW50LmRlZmF1bHRWYWx1ZS50cmltKCkpO1xuICAgICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZm9ybWF0dGVkRGF0ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChjb250cmxUeXBlID09PSAncmFkaW9ncm91cCcpIHtcbiAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XG4gICAgICAgIH0gXG4gICAgICAgIGVsc2UgaWYoZWxlbWVudC5kZWZhdWx0VmFsdWUpe1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKGVsZW1lbnQuZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmKHBhcmFtcy5nZXQoZWxlbWVudC5uYW1lKSl7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocGFyYW1zLmdldChlbGVtZW50Lm5hbWUpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGNvbnRybFR5cGUgPT09ICdjaGVja2JveCcgfHwgY29udHJsVHlwZSA9PT0gJ3NpbmdsZXNlbGVjdGNoZWNrYm94Jykge1xuICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtlbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgfSBcbiAgICAgICAgZWxzZSBpZihlbGVtZW50LmRlZmF1bHRWYWx1ZSl7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZWxlbWVudC5kZWZhdWx0VmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYocGFyYW1zLmdldChlbGVtZW50Lm5hbWUpKXtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChwYXJhbXMuZ2V0KGVsZW1lbnQubmFtZSkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY29udHJsVHlwZSA9PT0gJ2F1dG9jb21wbGV0ZScpIHtcbiAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGNvbnRybFR5cGUgPT09ICdzaW1wbGVjaGVja2JveCcpIHtcbiAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XG4gICAgICAgIH0gXG4gICAgICAgIGVsc2UgaWYocGFyYW1zLmdldChlbGVtZW50Lm5hbWUpKXtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChwYXJhbXMuZ2V0KGVsZW1lbnQubmFtZSkpO1xuICAgICAgICB9ZWxzZSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGNvbnRybFR5cGUgPT09ICdtdWx0aWNoZWNrYm94Jykge1xuICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtlbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgfSBcbiAgICAgICAgZWxzZSBpZihwYXJhbXMuZ2V0KGVsZW1lbnQubmFtZSkpe1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHBhcmFtcy5nZXQoZWxlbWVudC5uYW1lKSk7XG4gICAgICAgIH1lbHNlIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoY29udHJsVHlwZSA9PT0gJ2J1dHRvbicpIHtcbiAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoY29udHJsVHlwZSA9PT0gJ2Rpc3BsYXl0ZXh0YXNsYWJlbCcpIHtcbiAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGNvbnRybFR5cGUgPT09ICdoaWRkZW4nKSB7XG4gICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW2VsZW1lbnQubmFtZV0pO1xuICAgICAgICB9ZWxzZSBpZihlbGVtZW50LmRlZmF1bHRWYWx1ZSl7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZWxlbWVudC5kZWZhdWx0VmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHBhcmFtcy5nZXQoZWxlbWVudC5uYW1lKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGNvbnRybFR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW2VsZW1lbnQubmFtZV0pO1xuICAgICAgICB9ZWxzZSBpZihlbGVtZW50LmRlZmF1bHRWYWx1ZSl7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZWxlbWVudC5kZWZhdWx0VmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChjb250cmxUeXBlID09PSAnZGVjaW1hbCcpIHtcbiAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XG4gICAgICAgIH1lbHNlIGlmKGVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChlbGVtZW50LmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGNvbnRybFR5cGUgPT09ICdjdXJyZW5jeScpIHtcbiAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XG4gICAgICAgIH1lbHNlIGlmKGVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChlbGVtZW50LmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGNvbnRybFR5cGUgPT09ICdsYWJlbC13aXRoLWNoZWNrYm94Jykge1xuICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtlbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgfWVsc2UgaWYoZWxlbWVudC5kZWZhdWx0VmFsdWUpe1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKGVsZW1lbnQuZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICBcbiAgICAgIGlmIChjb250cmxUeXBlID09PSAncGFuZWwnKSB7XG4gICAgICAgIGVsZW1lbnQuZWxlbWVudHMuZm9yRWFjaChwYW5lbEVsZW1lbnQgPT4ge1xuICAgICAgICAgIGxldCBwYW5lbENvbnRybFR5cGU6IHN0cmluZyA9IHBhbmVsRWxlbWVudC50eXBlO1xuICAgICAgICAgIGlmIChwYW5lbENvbnRybFR5cGUgPT09ICdkcm9wZG93bicpIHtcbiAgICAgICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygncGFuZWxFbGVtZW50Lm5hbWUnLHBhbmVsRWxlbWVudC5uYW1lLCcgIHN0ckludG9PYmpbcGFuZWxFbGVtZW50Lm5hbWVdJyxzdHJJbnRvT2JqW3BhbmVsRWxlbWVudC5uYW1lXSk7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtwYW5lbEVsZW1lbnQubmFtZV0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaWYocGFuZWxFbGVtZW50LmRlZmF1bHRWYWx1ZSl7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hvaWNlOnN0cmluZz1wYW5lbEVsZW1lbnQuZGVmYXVsdFZhbHVlO1xuICAgICAgICAgICAgICAgIHZhciBqc29uT2JqZWN0OiBDaG9pY2VzID0gSlNPTi5wYXJzZShjaG9pY2UpOyAgXG4gICAgICAgICAgICAgICAgbGV0IGRlZmF1bHRDaG9pY2U6Q2hvaWNlcz0gbmV3IENob2ljZXMoKTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0Q2hvaWNlLnRleHQ9anNvbk9iamVjdC50ZXh0O1xuICAgICAgICAgICAgICAgIGRlZmF1bHRDaG9pY2UudmFsdWU9anNvbk9iamVjdC52YWx1ZTtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChkZWZhdWx0Q2hvaWNlKTtcbiAgICAgICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocGFuZWxDb250cmxUeXBlID09PSAndGV4dCcgJiYgcGFuZWxFbGVtZW50LmlucHV0VHlwZSAhPSAnZGF0ZScpIHtcbiAgICAgICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW3BhbmVsRWxlbWVudC5uYW1lXSk7XG4gICAgICAgICAgICB9IFxuICAgICAgICAgICAgZWxzZSAgaWYocGFuZWxFbGVtZW50LmRlZmF1bHRWYWx1ZSl7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocGFuZWxFbGVtZW50LmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChwYXJhbXMuZ2V0KHBhbmVsRWxlbWVudC5uYW1lKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChwYW5lbENvbnRybFR5cGUgPT09ICd0ZXh0JyAmJiBwYW5lbEVsZW1lbnQuaW5wdXRUeXBlID09PSAnZGF0ZScpIHtcbiAgICBcbiAgICAgICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZygnRGF0ZSBzdHJJbnRvT2JqW3BhbmVsRWxlbWVudC5uYW1lXScsIHN0ckludG9PYmpbcGFuZWxFbGVtZW50Lm5hbWVdKVxuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG5ldyBEYXRlKHN0ckludG9PYmpbcGFuZWxFbGVtZW50Lm5hbWVdKSk7XG4gICAgICAgICAgICB9IFxuICAgICAgICAgICAgZWxzZSBpZihwYW5lbEVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcbiAgICAgICAgICAgICAgbGV0IGZvcm1hdHRlZERhdGUgPSB0aGlzLmdldERhdGUocGFuZWxFbGVtZW50LmRlZmF1bHRWYWx1ZS50cmltKCkpO1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKGZvcm1hdHRlZERhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHBhbmVsQ29udHJsVHlwZSA9PT0gJ3JhZGlvZ3JvdXAnKSB7XG4gICAgICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtwYW5lbEVsZW1lbnQubmFtZV0pO1xuICAgICAgICAgICAgfSBcbiAgICAgICAgICAgIGVsc2UgIGlmKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpe1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZihwYXJhbXMuZ2V0KHBhbmVsRWxlbWVudC5uYW1lKSl7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocGFyYW1zLmdldChwYW5lbEVsZW1lbnQubmFtZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHBhbmVsQ29udHJsVHlwZSA9PT0gJ2NoZWNrYm94JyB8fCBwYW5lbENvbnRybFR5cGUgPT09ICdzaW5nbGVzZWxlY3RjaGVja2JveCcpIHtcbiAgICAgICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW3BhbmVsRWxlbWVudC5uYW1lXSk7XG4gICAgICAgICAgICB9IFxuICAgICAgICAgICAgZWxzZSAgaWYocGFuZWxFbGVtZW50LmRlZmF1bHRWYWx1ZSl7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocGFuZWxFbGVtZW50LmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmKHBhcmFtcy5nZXQocGFuZWxFbGVtZW50Lm5hbWUpKXtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChwYXJhbXMuZ2V0KHBhbmVsRWxlbWVudC5uYW1lKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHBhbmVsQ29udHJsVHlwZSA9PT0gJ2J1dHRvbicpIHtcbiAgICAgICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW3BhbmVsRWxlbWVudC5uYW1lXSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocGFuZWxDb250cmxUeXBlID09PSAnYXV0b2NvbXBsZXRlJykge1xuICAgICAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbcGFuZWxFbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHBhbmVsQ29udHJsVHlwZSA9PT0gJ2Rpc3BsYXl0ZXh0YXNsYWJlbCcpIHtcbiAgICAgICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW3BhbmVsRWxlbWVudC5uYW1lXSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChwYW5lbENvbnRybFR5cGUgPT09ICdoaWRkZW4nKSB7XG4gICAgICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtwYW5lbEVsZW1lbnQubmFtZV0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocGFuZWxDb250cmxUeXBlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbcGFuZWxFbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpe1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocGFuZWxDb250cmxUeXBlID09PSAnZGVjaW1hbCcpIHtcbiAgICAgICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW3BhbmVsRWxlbWVudC5uYW1lXSk7XG4gICAgICAgICAgICB9ZWxzZSBpZihwYW5lbEVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChwYW5lbEVsZW1lbnQuZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHBhbmVsQ29udHJsVHlwZSA9PT0gJ2N1cnJlbmN5Jykge1xuICAgICAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbcGFuZWxFbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpe1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocGFuZWxDb250cmxUeXBlID09PSAnbGFiZWwtd2l0aC1jaGVja2JveCcpIHtcbiAgICAgICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW3BhbmVsRWxlbWVudC5uYW1lXSk7XG4gICAgICAgICAgICB9ZWxzZSBpZihwYW5lbEVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChwYW5lbEVsZW1lbnQuZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgIH0pXG5cbiAgICAgIH1cblxuICAgIH0pO1xuICAgIC8vIGNvbnNvbGUubG9nKCdncm91cCcsZ3JvdXApO1xuICAgIHJldHVybiBuZXcgVW50eXBlZEZvcm1Hcm91cChncm91cCk7XG4gIH1cblxuICBnZXREYXRlKHN0ckRhdGU6IHN0cmluZykge1xuICAgIGxldCBmb3JtYXQgPSBzdHJEYXRlLmluY2x1ZGVzKCctJykgPyAnTU0tZGQteXl5eScgOiAnTU0vZGQveXl5eSc7XG4gICAgbGV0IHNwbGl0ZXIgPSBzdHJEYXRlLmluY2x1ZGVzKCctJykgPyAnLScgOiAnLyc7XG4gICAgdmFyIHNwbGl0QXJyYXkgPSBzdHJEYXRlLnNwbGl0KHNwbGl0ZXIpO1xuICAgIGxldCBkYXRlIDogRGF0ZTtcbiAgICBkYXRlID0gbmV3IERhdGUoKTtcbiAgICBkYXRlLnNldE1vbnRoKE51bWJlcihzcGxpdEFycmF5WzBdKSAtIDEpO1xuICAgIGRhdGUuc2V0RnVsbFllYXIoTnVtYmVyKHNwbGl0QXJyYXlbMl0pKTtcbiAgICBkYXRlLnNldERhdGUoTnVtYmVyKHNwbGl0QXJyYXlbMV0pKTtcbiAgICByZXR1cm4gdGhpcy5kYXRlcGlwZS50cmFuc2Zvcm0oZGF0ZSxmb3JtYXQpO1xuICB9XG5cblxuXG4gIHNldERhdGEoaW5kZXgsIGRhdGEpIHtcbiAgICB0aGlzLnNoYXJlZERhdGEuc2V0KGluZGV4LCBkYXRhKTtcbiAgfVxuICBnZXREYXRhKGluZGV4KSB7XG4gICAgcmV0dXJuIHRoaXMuc2hhcmVkRGF0YS5nZXQoaW5kZXgpO1xuICB9XG5cbiAgZ2V0QWxsRGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5zaGFyZWREYXRhO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDaG9pY2VzIHtcbiAgdmFsdWU/OiBzdHJpbmc7XG4gIHRleHQ/OiBzdHJpbmc7XG59Il19