@sunbird-cb/toc 0.0.32 → 0.0.34

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 (352) hide show
  1. package/esm2022/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.mjs +12 -3
  2. package/esm2022/lib/_collection/_common/content-toc/content-toc.component.mjs +6 -3
  3. package/esm2022/lib/_services/viewer-route-util.mjs +2 -2
  4. package/esm2022/lib/components/app-toc-cios-home/app-toc-cios-home.component.mjs +4 -3
  5. package/esm2022/lib/components/app-toc-home-v2/app-toc-home-v2.component.mjs +36 -30
  6. package/esm2022/lib/components/public-survey-form/public-survey-form.component.mjs +5 -3
  7. package/fesm2022/sunbird-cb-toc.mjs +59 -38
  8. package/fesm2022/sunbird-cb-toc.mjs.map +1 -1
  9. package/index.d.ts +0 -1
  10. package/lib/_collection/_common/ai-tutor/ai-tutor.component.d.ts +0 -1
  11. package/lib/_collection/_common/ai-tutor/socket.service.d.ts +0 -1
  12. package/lib/_collection/_common/attendance-card/attendance-card.component.d.ts +0 -1
  13. package/lib/_collection/_common/attendance-card/attendance-card.module.d.ts +0 -1
  14. package/lib/_collection/_common/attendance-helper/attendance-helper.component.d.ts +0 -1
  15. package/lib/_collection/_common/attendance-helper/attendance-helper.module.d.ts +0 -1
  16. package/lib/_collection/_common/avatar-photo/avatar-photo.component.d.ts +0 -1
  17. package/lib/_collection/_common/avatar-photo/avatar-photo.module.d.ts +0 -1
  18. package/lib/_collection/_common/card-competency/card-competency.component.d.ts +0 -1
  19. package/lib/_collection/_common/card-competency/card-competency.module.d.ts +0 -1
  20. package/lib/_collection/_common/card-content-v2/card-content-v2.model.d.ts +0 -1
  21. package/lib/_collection/_common/certificate-dialog/certificate-dialog.component.d.ts +0 -1
  22. package/lib/_collection/_common/certificate-dialog/certificate-dialog.module.d.ts +0 -1
  23. package/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.d.ts +0 -1
  24. package/lib/_collection/_common/confirm-dialog/confirm-dialog.component.d.ts +0 -1
  25. package/lib/_collection/_common/confirm-dialog/confirm-dialog.module.d.ts +0 -1
  26. package/lib/_collection/_common/connection-hover-card/connection-hover-card.component.d.ts +0 -1
  27. package/lib/_collection/_common/connection-hover-card/connection-hover.module.d.ts +0 -1
  28. package/lib/_collection/_common/connection-hover-card/connection-hover.servive.d.ts +0 -1
  29. package/lib/_collection/_common/connection-name/connection-name.component.d.ts +0 -1
  30. package/lib/_collection/_common/connection-name/connection-name.module.d.ts +0 -1
  31. package/lib/_collection/_common/connection-name/profile-v2.model.d.ts +0 -1
  32. package/lib/_collection/_common/content-progress/content-progress.component.d.ts +0 -1
  33. package/lib/_collection/_common/content-progress/content-progress.module.d.ts +0 -1
  34. package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.d.ts +0 -1
  35. package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.d.ts +0 -1
  36. package/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.d.ts +0 -1
  37. package/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.d.ts +2 -2
  38. package/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.d.ts +0 -1
  39. package/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.d.ts +0 -1
  40. package/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.d.ts +0 -1
  41. package/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.d.ts +0 -1
  42. package/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.d.ts +0 -1
  43. package/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.d.ts +0 -1
  44. package/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.d.ts +0 -1
  45. package/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.d.ts +0 -1
  46. package/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.d.ts +0 -1
  47. package/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.d.ts +0 -1
  48. package/lib/_collection/_common/content-toc/content-services/handle-claim.service.d.ts +0 -1
  49. package/lib/_collection/_common/content-toc/content-services/review-component-data.service.d.ts +0 -1
  50. package/lib/_collection/_common/content-toc/content-toc.component.d.ts +2 -2
  51. package/lib/_collection/_common/content-toc/content-toc.module.d.ts +0 -1
  52. package/lib/_collection/_common/content-toc/karma-points/karma-points.component.d.ts +0 -1
  53. package/lib/_collection/_common/content-toc/karma-points/karma-points.module.d.ts +0 -1
  54. package/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.d.ts +0 -1
  55. package/lib/_collection/_common/content-toc/pipes/truncate.pipe.d.ts +0 -1
  56. package/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.d.ts +0 -1
  57. package/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.d.ts +0 -1
  58. package/lib/_collection/_common/display-content-type/display-content-type.component.d.ts +0 -1
  59. package/lib/_collection/_common/display-content-type/display-content-type.module.d.ts +0 -1
  60. package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.d.ts +0 -1
  61. package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.d.ts +0 -1
  62. package/lib/_collection/_common/mark-as-complete/mark-as-complete.component.d.ts +0 -1
  63. package/lib/_collection/_common/mark-as-complete/mark-as-complete.model.d.ts +0 -1
  64. package/lib/_collection/_common/mark-as-complete/mark-as-complete.module.d.ts +0 -1
  65. package/lib/_collection/_common/pipe-content-route/pipe-content-route.module.d.ts +0 -1
  66. package/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.d.ts +0 -1
  67. package/lib/_collection/_common/player-brief/player-brief.component.d.ts +0 -1
  68. package/lib/_collection/_common/player-brief/player-brief.module.d.ts +0 -1
  69. package/lib/_collection/_common/rating-summary/rating-summary.component.d.ts +0 -1
  70. package/lib/_collection/_common/rating-summary/rating-summary.module.d.ts +0 -1
  71. package/lib/_collection/_common/skeleton-loader/skeleton-loader.component.d.ts +0 -1
  72. package/lib/_collection/_common/skeleton-loader/skeleton-loader.module.d.ts +0 -1
  73. package/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.d.ts +0 -1
  74. package/lib/_collection/_common/tips-for-learner/tips-for-learner.module.d.ts +0 -1
  75. package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.d.ts +0 -1
  76. package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.d.ts +0 -1
  77. package/lib/_collection/_common/user-autocomplete/user-autocomplete.component.d.ts +0 -1
  78. package/lib/_collection/_common/user-autocomplete/user-autocomplete.model.d.ts +0 -1
  79. package/lib/_collection/_common/user-autocomplete/user-autocomplete.module.d.ts +0 -1
  80. package/lib/_collection/_common/user-autocomplete/user-autocomplete.service.d.ts +0 -1
  81. package/lib/_collection/_common/user-content-rating/user-content-rating.component.d.ts +0 -1
  82. package/lib/_collection/_common/user-content-rating/user-content-rating.module.d.ts +0 -1
  83. package/lib/_collection/_common/user-image/user-image.component.d.ts +0 -1
  84. package/lib/_collection/_common/user-image/user-image.module.d.ts +0 -1
  85. package/lib/_collection/btn-page-back/btn-page-back.component.d.ts +0 -1
  86. package/lib/_collection/btn-page-back/btn-page-back.module.d.ts +0 -1
  87. package/lib/_collection/btn-page-back/btn-page-back.service.d.ts +0 -1
  88. package/lib/_collection/card-rating-comment/card-rating-comment.component.d.ts +0 -1
  89. package/lib/_collection/card-rating-comment/card-rating-comment.module.d.ts +0 -1
  90. package/lib/_collection/sliders-dynamic/sliders-dynamic.component.d.ts +0 -1
  91. package/lib/_collection/sliders-dynamic/sliders-dynamic.model.d.ts +0 -1
  92. package/lib/_collection/sliders-dynamic/sliders-dynamic.module.d.ts +0 -1
  93. package/lib/_collection-api.d.ts +0 -1
  94. package/lib/_constants/widget-content.constants.d.ts +0 -1
  95. package/lib/_directives/tooltip.directive.d.ts +0 -1
  96. package/lib/_models/common.model.d.ts +0 -1
  97. package/lib/_models/error.model.d.ts +0 -1
  98. package/lib/_pipes/highlight.pipe.d.ts +0 -1
  99. package/lib/_services/rating.service.d.ts +0 -1
  100. package/lib/_services/samuhik-charcha.service.d.ts +0 -1
  101. package/lib/_services/viewer-route-util.d.ts +0 -1
  102. package/lib/_services/widget-content.model.d.ts +0 -1
  103. package/lib/_services/widget-content.service.d.ts +0 -1
  104. package/lib/_shared/translate-loader.factory.d.ts +0 -1
  105. package/lib/app-toc-lib.module.d.ts +0 -1
  106. package/lib/collection.config.d.ts +0 -1
  107. package/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.d.ts +0 -1
  108. package/lib/components/app-toc-banner/app-toc-banner.component.d.ts +0 -1
  109. package/lib/components/app-toc-cios-home/app-toc-cios-home.component.d.ts +1 -1
  110. package/lib/components/app-toc-cios-home/consent-dialog.component.d.ts +0 -1
  111. package/lib/components/app-toc-cohorts/app-toc-cohorts.component.d.ts +0 -1
  112. package/lib/components/app-toc-content-card/app-toc-content-card.component.d.ts +0 -1
  113. package/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.d.ts +0 -1
  114. package/lib/components/app-toc-discussion/app-toc-discussion.component.d.ts +0 -1
  115. package/lib/components/app-toc-home/app-toc-home.component.d.ts +0 -1
  116. package/lib/components/app-toc-home-v2/app-toc-home-v2.component.d.ts +0 -1
  117. package/lib/components/app-toc-overview/app-toc-overview.component.d.ts +0 -1
  118. package/lib/components/app-toc-session-card/app-toc-session-card.component.d.ts +0 -1
  119. package/lib/components/app-toc-sessions/app-toc-sessions.component.d.ts +0 -1
  120. package/lib/components/app-toc-single-page/app-toc-single-page.component.d.ts +0 -1
  121. package/lib/components/completion-survey-form/completion-survey-form.component.d.ts +0 -1
  122. package/lib/components/create-batch-dialog/create-batch-dialog.component.d.ts +0 -1
  123. package/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.d.ts +0 -1
  124. package/lib/components/enroll-profile-form/enroll-profile-form.component.d.ts +0 -1
  125. package/lib/components/enroll-questionnaire/enroll-questionnaire.component.d.ts +0 -1
  126. package/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.d.ts +0 -1
  127. package/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.d.ts +0 -1
  128. package/lib/components/public-survey-form/public-survey-form.component.d.ts +1 -1
  129. package/lib/components/survey-form-question/survey-form-question.component.d.ts +0 -1
  130. package/lib/components/survey-form-section/survey-form-section.component.d.ts +0 -1
  131. package/lib/models/app-toc-analytics.model.d.ts +0 -1
  132. package/lib/models/app-toc.model.d.ts +0 -1
  133. package/lib/models/auto-complete.model.d.ts +0 -1
  134. package/lib/models/card-content.model.d.ts +0 -1
  135. package/lib/models/content-strip-with-tabs.model.d.ts +0 -1
  136. package/lib/models/discussion-forum.model.d.ts +0 -1
  137. package/lib/models/goal.model.d.ts +0 -1
  138. package/lib/models/meta-tag.model.d.ts +0 -1
  139. package/lib/models/playlist.model.d.ts +0 -1
  140. package/lib/models/profile-revamp.model.d.ts +0 -1
  141. package/lib/models/rating.model.d.ts +0 -1
  142. package/lib/models/user-profile.model.d.ts +0 -1
  143. package/lib/registration-toc-lib.config.d.ts +0 -1
  144. package/lib/resolvers/app-toc-cios-resolver.service.d.ts +0 -1
  145. package/lib/resolvers/app-toc-cios-user-enroll-resolver.service.d.ts +0 -1
  146. package/lib/resolvers/app-toc-content-read-resolver.service.d.ts +0 -1
  147. package/lib/resolvers/app-toc-ext-public-resolver.service.d.ts +0 -1
  148. package/lib/resolvers/app-toc-resolver.service.d.ts +0 -1
  149. package/lib/resolvers/config-resolver.service.d.ts +0 -1
  150. package/lib/resolvers/profile-resolver.service.d.ts +0 -1
  151. package/lib/resolvers/restricted-features-resolver.service.d.ts +0 -1
  152. package/lib/routes/app-toc-home/app-toc-home.component.d.ts +0 -1
  153. package/lib/routes/app-toc-home/app-toc-home.directive.d.ts +0 -1
  154. package/lib/routes/app-toc-home/app-toc-home.service.d.ts +0 -1
  155. package/lib/services/access-control.service.d.ts +0 -1
  156. package/lib/services/action.service.d.ts +0 -1
  157. package/lib/services/app-toc-v2.service.d.ts +0 -1
  158. package/lib/services/app-toc.service.d.ts +0 -1
  159. package/lib/services/certificate.service.d.ts +0 -1
  160. package/lib/services/discuss-utils.service.d.ts +0 -1
  161. package/lib/services/editor.service.d.ts +0 -1
  162. package/lib/services/load-check.service.d.ts +0 -1
  163. package/lib/services/loader.service.d.ts +0 -1
  164. package/lib/services/mobile-apps.service.d.ts +0 -1
  165. package/lib/services/netcore.service.d.ts +0 -1
  166. package/lib/services/nps-grid.service.d.ts +0 -1
  167. package/lib/services/otp.service.d.ts +0 -1
  168. package/lib/services/profile-v2.service.d.ts +0 -1
  169. package/lib/services/reset-ratings.service.d.ts +0 -1
  170. package/lib/services/resource-download-helper.service.d.ts +0 -1
  171. package/lib/services/root.service.d.ts +0 -1
  172. package/lib/services/timer.service.d.ts +0 -1
  173. package/lib/services/title-tag.service.d.ts +0 -1
  174. package/lib/services/user-profile.service.d.ts +0 -1
  175. package/lib/services/viewer-data.service.d.ts +0 -1
  176. package/lib/services/viewer-util.service.d.ts +0 -1
  177. package/lib/share-toc/share-toc/share-toc.component.d.ts +0 -1
  178. package/lib/share-toc/share-toc.module.d.ts +0 -1
  179. package/package.json +1 -1
  180. package/public-api.d.ts +0 -1
  181. package/sunbird-cb-toc-0.0.34.tgz +0 -0
  182. package/lib/_collection/_common/ai-tutor/ai-tutor.component.d.ts.map +0 -1
  183. package/lib/_collection/_common/ai-tutor/socket.service.d.ts.map +0 -1
  184. package/lib/_collection/_common/attendance-card/attendance-card.component.d.ts.map +0 -1
  185. package/lib/_collection/_common/attendance-card/attendance-card.module.d.ts.map +0 -1
  186. package/lib/_collection/_common/attendance-helper/attendance-helper.component.d.ts.map +0 -1
  187. package/lib/_collection/_common/attendance-helper/attendance-helper.module.d.ts.map +0 -1
  188. package/lib/_collection/_common/avatar-photo/avatar-photo.component.d.ts.map +0 -1
  189. package/lib/_collection/_common/avatar-photo/avatar-photo.module.d.ts.map +0 -1
  190. package/lib/_collection/_common/card-competency/card-competency.component.d.ts.map +0 -1
  191. package/lib/_collection/_common/card-competency/card-competency.module.d.ts.map +0 -1
  192. package/lib/_collection/_common/card-content-v2/card-content-v2.model.d.ts.map +0 -1
  193. package/lib/_collection/_common/certificate-dialog/certificate-dialog.component.d.ts.map +0 -1
  194. package/lib/_collection/_common/certificate-dialog/certificate-dialog.module.d.ts.map +0 -1
  195. package/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.d.ts.map +0 -1
  196. package/lib/_collection/_common/confirm-dialog/confirm-dialog.component.d.ts.map +0 -1
  197. package/lib/_collection/_common/confirm-dialog/confirm-dialog.module.d.ts.map +0 -1
  198. package/lib/_collection/_common/connection-hover-card/connection-hover-card.component.d.ts.map +0 -1
  199. package/lib/_collection/_common/connection-hover-card/connection-hover.module.d.ts.map +0 -1
  200. package/lib/_collection/_common/connection-hover-card/connection-hover.servive.d.ts.map +0 -1
  201. package/lib/_collection/_common/connection-name/connection-name.component.d.ts.map +0 -1
  202. package/lib/_collection/_common/connection-name/connection-name.module.d.ts.map +0 -1
  203. package/lib/_collection/_common/connection-name/profile-v2.model.d.ts.map +0 -1
  204. package/lib/_collection/_common/content-progress/content-progress.component.d.ts.map +0 -1
  205. package/lib/_collection/_common/content-progress/content-progress.module.d.ts.map +0 -1
  206. package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.d.ts.map +0 -1
  207. package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.d.ts.map +0 -1
  208. package/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.d.ts.map +0 -1
  209. package/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.d.ts.map +0 -1
  210. package/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.d.ts.map +0 -1
  211. package/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.d.ts.map +0 -1
  212. package/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.d.ts.map +0 -1
  213. package/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.d.ts.map +0 -1
  214. package/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.d.ts.map +0 -1
  215. package/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.d.ts.map +0 -1
  216. package/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.d.ts.map +0 -1
  217. package/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.d.ts.map +0 -1
  218. package/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.d.ts.map +0 -1
  219. package/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.d.ts.map +0 -1
  220. package/lib/_collection/_common/content-toc/content-services/handle-claim.service.d.ts.map +0 -1
  221. package/lib/_collection/_common/content-toc/content-services/review-component-data.service.d.ts.map +0 -1
  222. package/lib/_collection/_common/content-toc/content-toc.component.d.ts.map +0 -1
  223. package/lib/_collection/_common/content-toc/content-toc.module.d.ts.map +0 -1
  224. package/lib/_collection/_common/content-toc/karma-points/karma-points.component.d.ts.map +0 -1
  225. package/lib/_collection/_common/content-toc/karma-points/karma-points.module.d.ts.map +0 -1
  226. package/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.d.ts.map +0 -1
  227. package/lib/_collection/_common/content-toc/pipes/truncate.pipe.d.ts.map +0 -1
  228. package/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.d.ts.map +0 -1
  229. package/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.d.ts.map +0 -1
  230. package/lib/_collection/_common/display-content-type/display-content-type.component.d.ts.map +0 -1
  231. package/lib/_collection/_common/display-content-type/display-content-type.module.d.ts.map +0 -1
  232. package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.d.ts.map +0 -1
  233. package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.d.ts.map +0 -1
  234. package/lib/_collection/_common/mark-as-complete/mark-as-complete.component.d.ts.map +0 -1
  235. package/lib/_collection/_common/mark-as-complete/mark-as-complete.model.d.ts.map +0 -1
  236. package/lib/_collection/_common/mark-as-complete/mark-as-complete.module.d.ts.map +0 -1
  237. package/lib/_collection/_common/pipe-content-route/pipe-content-route.module.d.ts.map +0 -1
  238. package/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.d.ts.map +0 -1
  239. package/lib/_collection/_common/player-brief/player-brief.component.d.ts.map +0 -1
  240. package/lib/_collection/_common/player-brief/player-brief.module.d.ts.map +0 -1
  241. package/lib/_collection/_common/rating-summary/rating-summary.component.d.ts.map +0 -1
  242. package/lib/_collection/_common/rating-summary/rating-summary.module.d.ts.map +0 -1
  243. package/lib/_collection/_common/skeleton-loader/skeleton-loader.component.d.ts.map +0 -1
  244. package/lib/_collection/_common/skeleton-loader/skeleton-loader.module.d.ts.map +0 -1
  245. package/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.d.ts.map +0 -1
  246. package/lib/_collection/_common/tips-for-learner/tips-for-learner.module.d.ts.map +0 -1
  247. package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.d.ts.map +0 -1
  248. package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.d.ts.map +0 -1
  249. package/lib/_collection/_common/user-autocomplete/user-autocomplete.component.d.ts.map +0 -1
  250. package/lib/_collection/_common/user-autocomplete/user-autocomplete.model.d.ts.map +0 -1
  251. package/lib/_collection/_common/user-autocomplete/user-autocomplete.module.d.ts.map +0 -1
  252. package/lib/_collection/_common/user-autocomplete/user-autocomplete.service.d.ts.map +0 -1
  253. package/lib/_collection/_common/user-content-rating/user-content-rating.component.d.ts.map +0 -1
  254. package/lib/_collection/_common/user-content-rating/user-content-rating.module.d.ts.map +0 -1
  255. package/lib/_collection/_common/user-image/user-image.component.d.ts.map +0 -1
  256. package/lib/_collection/_common/user-image/user-image.module.d.ts.map +0 -1
  257. package/lib/_collection/btn-page-back/btn-page-back.component.d.ts.map +0 -1
  258. package/lib/_collection/btn-page-back/btn-page-back.module.d.ts.map +0 -1
  259. package/lib/_collection/btn-page-back/btn-page-back.service.d.ts.map +0 -1
  260. package/lib/_collection/card-rating-comment/card-rating-comment.component.d.ts.map +0 -1
  261. package/lib/_collection/card-rating-comment/card-rating-comment.module.d.ts.map +0 -1
  262. package/lib/_collection/sliders-dynamic/sliders-dynamic.component.d.ts.map +0 -1
  263. package/lib/_collection/sliders-dynamic/sliders-dynamic.model.d.ts.map +0 -1
  264. package/lib/_collection/sliders-dynamic/sliders-dynamic.module.d.ts.map +0 -1
  265. package/lib/_collection-api.d.ts.map +0 -1
  266. package/lib/_constants/widget-content.constants.d.ts.map +0 -1
  267. package/lib/_directives/tooltip.directive.d.ts.map +0 -1
  268. package/lib/_models/common.model.d.ts.map +0 -1
  269. package/lib/_models/error.model.d.ts.map +0 -1
  270. package/lib/_pipes/highlight.pipe.d.ts.map +0 -1
  271. package/lib/_services/rating.service.d.ts.map +0 -1
  272. package/lib/_services/samuhik-charcha.service.d.ts.map +0 -1
  273. package/lib/_services/viewer-route-util.d.ts.map +0 -1
  274. package/lib/_services/widget-content.model.d.ts.map +0 -1
  275. package/lib/_services/widget-content.service.d.ts.map +0 -1
  276. package/lib/_shared/translate-loader.factory.d.ts.map +0 -1
  277. package/lib/app-toc-lib.module.d.ts.map +0 -1
  278. package/lib/collection.config.d.ts.map +0 -1
  279. package/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.d.ts.map +0 -1
  280. package/lib/components/app-toc-banner/app-toc-banner.component.d.ts.map +0 -1
  281. package/lib/components/app-toc-cios-home/app-toc-cios-home.component.d.ts.map +0 -1
  282. package/lib/components/app-toc-cios-home/consent-dialog.component.d.ts.map +0 -1
  283. package/lib/components/app-toc-cohorts/app-toc-cohorts.component.d.ts.map +0 -1
  284. package/lib/components/app-toc-content-card/app-toc-content-card.component.d.ts.map +0 -1
  285. package/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.d.ts.map +0 -1
  286. package/lib/components/app-toc-discussion/app-toc-discussion.component.d.ts.map +0 -1
  287. package/lib/components/app-toc-home/app-toc-home.component.d.ts.map +0 -1
  288. package/lib/components/app-toc-home-v2/app-toc-home-v2.component.d.ts.map +0 -1
  289. package/lib/components/app-toc-overview/app-toc-overview.component.d.ts.map +0 -1
  290. package/lib/components/app-toc-session-card/app-toc-session-card.component.d.ts.map +0 -1
  291. package/lib/components/app-toc-sessions/app-toc-sessions.component.d.ts.map +0 -1
  292. package/lib/components/app-toc-single-page/app-toc-single-page.component.d.ts.map +0 -1
  293. package/lib/components/completion-survey-form/completion-survey-form.component.d.ts.map +0 -1
  294. package/lib/components/create-batch-dialog/create-batch-dialog.component.d.ts.map +0 -1
  295. package/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.d.ts.map +0 -1
  296. package/lib/components/enroll-profile-form/enroll-profile-form.component.d.ts.map +0 -1
  297. package/lib/components/enroll-questionnaire/enroll-questionnaire.component.d.ts.map +0 -1
  298. package/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.d.ts.map +0 -1
  299. package/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.d.ts.map +0 -1
  300. package/lib/components/public-survey-form/public-survey-form.component.d.ts.map +0 -1
  301. package/lib/components/survey-form-question/survey-form-question.component.d.ts.map +0 -1
  302. package/lib/components/survey-form-section/survey-form-section.component.d.ts.map +0 -1
  303. package/lib/models/app-toc-analytics.model.d.ts.map +0 -1
  304. package/lib/models/app-toc.model.d.ts.map +0 -1
  305. package/lib/models/auto-complete.model.d.ts.map +0 -1
  306. package/lib/models/card-content.model.d.ts.map +0 -1
  307. package/lib/models/content-strip-with-tabs.model.d.ts.map +0 -1
  308. package/lib/models/discussion-forum.model.d.ts.map +0 -1
  309. package/lib/models/goal.model.d.ts.map +0 -1
  310. package/lib/models/meta-tag.model.d.ts.map +0 -1
  311. package/lib/models/playlist.model.d.ts.map +0 -1
  312. package/lib/models/profile-revamp.model.d.ts.map +0 -1
  313. package/lib/models/rating.model.d.ts.map +0 -1
  314. package/lib/models/user-profile.model.d.ts.map +0 -1
  315. package/lib/registration-toc-lib.config.d.ts.map +0 -1
  316. package/lib/resolvers/app-toc-cios-resolver.service.d.ts.map +0 -1
  317. package/lib/resolvers/app-toc-cios-user-enroll-resolver.service.d.ts.map +0 -1
  318. package/lib/resolvers/app-toc-content-read-resolver.service.d.ts.map +0 -1
  319. package/lib/resolvers/app-toc-ext-public-resolver.service.d.ts.map +0 -1
  320. package/lib/resolvers/app-toc-resolver.service.d.ts.map +0 -1
  321. package/lib/resolvers/config-resolver.service.d.ts.map +0 -1
  322. package/lib/resolvers/profile-resolver.service.d.ts.map +0 -1
  323. package/lib/resolvers/restricted-features-resolver.service.d.ts.map +0 -1
  324. package/lib/routes/app-toc-home/app-toc-home.component.d.ts.map +0 -1
  325. package/lib/routes/app-toc-home/app-toc-home.directive.d.ts.map +0 -1
  326. package/lib/routes/app-toc-home/app-toc-home.service.d.ts.map +0 -1
  327. package/lib/services/access-control.service.d.ts.map +0 -1
  328. package/lib/services/action.service.d.ts.map +0 -1
  329. package/lib/services/app-toc-v2.service.d.ts.map +0 -1
  330. package/lib/services/app-toc.service.d.ts.map +0 -1
  331. package/lib/services/certificate.service.d.ts.map +0 -1
  332. package/lib/services/discuss-utils.service.d.ts.map +0 -1
  333. package/lib/services/editor.service.d.ts.map +0 -1
  334. package/lib/services/load-check.service.d.ts.map +0 -1
  335. package/lib/services/loader.service.d.ts.map +0 -1
  336. package/lib/services/mobile-apps.service.d.ts.map +0 -1
  337. package/lib/services/netcore.service.d.ts.map +0 -1
  338. package/lib/services/nps-grid.service.d.ts.map +0 -1
  339. package/lib/services/otp.service.d.ts.map +0 -1
  340. package/lib/services/profile-v2.service.d.ts.map +0 -1
  341. package/lib/services/reset-ratings.service.d.ts.map +0 -1
  342. package/lib/services/resource-download-helper.service.d.ts.map +0 -1
  343. package/lib/services/root.service.d.ts.map +0 -1
  344. package/lib/services/timer.service.d.ts.map +0 -1
  345. package/lib/services/title-tag.service.d.ts.map +0 -1
  346. package/lib/services/user-profile.service.d.ts.map +0 -1
  347. package/lib/services/viewer-data.service.d.ts.map +0 -1
  348. package/lib/services/viewer-util.service.d.ts.map +0 -1
  349. package/lib/share-toc/share-toc/share-toc.component.d.ts.map +0 -1
  350. package/lib/share-toc/share-toc.module.d.ts.map +0 -1
  351. package/public-api.d.ts.map +0 -1
  352. package/sunbird-cb-toc.d.ts.map +0 -1
@@ -38,7 +38,9 @@ export class PublicSurveyFormComponent {
38
38
  this.childFields = [];
39
39
  this.surveyFormIsValid = true;
40
40
  this.addLoader = 0;
41
+ this.forPreview = false;
41
42
  this.surveyId = data.surveyId;
43
+ this.forPreview = data.forPreview;
42
44
  if (localStorage.getItem('websiteLanguage')) {
43
45
  this.translate.setDefaultLang('en');
44
46
  const lang = localStorage.getItem('websiteLanguage');
@@ -244,13 +246,13 @@ export class PublicSurveyFormComponent {
244
246
  });
245
247
  }
246
248
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PublicSurveyFormComponent, deps: [{ token: i1.MatLegacySnackBar }, { token: i2.MatLegacyDialogRef }, { token: MAT_LEGACY_DIALOG_DATA }, { token: i3.FormBuilder }, { token: i4.AppTocService }, { token: i5.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
247
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PublicSurveyFormComponent, selector: "ws-app-public-survey-form", ngImport: i0, template: "<div class=\"preview-container\">\n <div class=\"form-header flex\">\n <div class=\"flex flex-1 justify-start items-center\">\n <div>{{'apptoc.AGKCaseStudySurveyForm' | translate}} </div>\n </div>\n <button mat-icon-button class=\"close-button\" [mat-dialog-close]=\"false\">\n <mat-icon class=\"close-icon\" color=\"warn\">close</mat-icon>\n </button>\n </div>\n <div class=\"form-content\">\n <ng-container *ngIf=\"surveyForm\">\n <form [formGroup]=\"surveyForm\">\n <ng-container *ngFor=\"let parentField of parentalFields\">\n <ng-container [ngSwitch]=\"parentField.fieldType\">\n <ng-container *ngSwitchCase=\"'heading'\">\n <ws-app-survey-form-section [childFields]=\"getChildFields(parentField.sectionId)\"\n [sectionField]=\"parentField\"\n [childQuestionsFormArray]=\"getChildQuestionsFormArray(parentField.sectionId)\"\n (questionValues)=\"updateQuestionValues($event)\"></ws-app-survey-form-section>\n </ng-container>\n <ng-container *ngSwitchCase=\"'separator'\">\n <hr class=\"opacity-50 elment-separator\">\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ws-app-survey-form-question [fieldDetails]=\"parentField\"\n [questionForm]=\"getQuestionControl(parentField.controlIndex)\"\n (questionValues)=\"updateQuestionValues($event)\"></ws-app-survey-form-question>\n </ng-container>\n </ng-container>\n </ng-container>\n <div class=\"flex justify-end m-4\">\n <!-- <button mat-button class=\"do-later-btn\" (click)=\"closeDialog()\">{{'apptoc.doItLater' | translate}}</button> -->\n <button mat-button class=\"submit-btn\" [disabled]=\"!surveyFormIsValid\" (click)=\"submitForm()\">{{'apptoc.submit'\n | translate}}</button>\n </div>\n </form>\n </ng-container>\n </div>\n</div>\n\n<ng-container *ngIf=\"addLoader > 0\">\n <div class=\"text-center my-2 loader flex justify-center items-center\">\n <mat-spinner class=\"inline-block\"></mat-spinner>\n </div>\n</ng-container>", styles: [".preview-container{max-height:700px}.preview-container .form-content{background:#f4f8ff}.preview-container .form-header{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:center;text-underline-position:from-font;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;padding:15px 24px;border-bottom:1px solid #c3c3c3}.preview-container .q-element{padding:16px;background:#fff;border-radius:8px}.preview-container .form-content{padding:15px 24px}.preview-container .elment-separator{margin:16px 0}.preview-container .feedback-text{color:#1b4ca1;font:400 16px/20px Lato}.do-later-btn{height:40px;color:#1b4ca1!important;background-color:#fff!important;border-radius:20px;border:1px solid #1b4ca1!important;margin-right:10px}.submit-btn{height:40px;color:#fff!important;background-color:#1b4ca1!important;border-radius:20px}.submit-btn:disabled{opacity:.6!important}.loader{position:absolute;top:0;left:0;z-index:1000;height:100vh;width:100vw;background-color:#80808045}.info-icon{color:#d13924;font-size:20px;height:20px;width:26px;margin-top:2px}.close-button{height:30px;width:30px;line-height:24px;background:#00000040!important;color:#fff!important;align-self:end;margin-right:-24px}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i6.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i6.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatLegacyProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i2.MatLegacyDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i10.SurveyFormQuestionComponent, selector: "ws-app-survey-form-question", inputs: ["questionForm", "fieldDetails"], outputs: ["questionValues"] }, { kind: "component", type: i11.SurveyFormSectionComponent, selector: "ws-app-survey-form-section", inputs: ["childQuestionsFormArray", "childFields", "sectionField"], outputs: ["questionValues"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
249
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PublicSurveyFormComponent, selector: "ws-app-public-survey-form", ngImport: i0, template: "<div class=\"preview-container\">\n <div class=\"form-header flex\">\n <div class=\"flex flex-1 justify-start items-center\">\n <div>{{'apptoc.AGKCaseStudySurveyForm' | translate}} </div>\n </div>\n <button mat-icon-button class=\"close-button\" [mat-dialog-close]=\"false\">\n <mat-icon class=\"close-icon\" color=\"warn\">close</mat-icon>\n </button>\n </div>\n <div class=\"form-content\">\n <ng-container *ngIf=\"surveyForm\">\n <form [formGroup]=\"surveyForm\">\n <ng-container *ngFor=\"let parentField of parentalFields\">\n <ng-container [ngSwitch]=\"parentField.fieldType\">\n <ng-container *ngSwitchCase=\"'heading'\">\n <ws-app-survey-form-section [childFields]=\"getChildFields(parentField.sectionId)\"\n [sectionField]=\"parentField\"\n [childQuestionsFormArray]=\"getChildQuestionsFormArray(parentField.sectionId)\"\n (questionValues)=\"updateQuestionValues($event)\"></ws-app-survey-form-section>\n </ng-container>\n <ng-container *ngSwitchCase=\"'separator'\">\n <hr class=\"opacity-50 elment-separator\">\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ws-app-survey-form-question [fieldDetails]=\"parentField\"\n [questionForm]=\"getQuestionControl(parentField.controlIndex)\"\n (questionValues)=\"updateQuestionValues($event)\"></ws-app-survey-form-question>\n </ng-container>\n </ng-container>\n </ng-container>\n <div class=\"flex justify-end m-4\">\n <!-- <button mat-button class=\"do-later-btn\" (click)=\"closeDialog()\">{{'apptoc.doItLater' | translate}}</button> -->\n <button mat-button class=\"submit-btn\" [disabled]=\"!surveyFormIsValid || forPreview\" (click)=\"submitForm()\">{{'apptoc.submit'\n | translate}}</button>\n </div>\n </form>\n </ng-container>\n </div>\n</div>\n\n<ng-container *ngIf=\"addLoader > 0\">\n <div class=\"text-center my-2 loader flex justify-center items-center\">\n <mat-spinner class=\"inline-block\"></mat-spinner>\n </div>\n</ng-container>", styles: [".preview-container{max-height:700px}.preview-container .form-content{background:#f4f8ff}.preview-container .form-header{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:center;text-underline-position:from-font;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;padding:15px 24px;border-bottom:1px solid #c3c3c3}.preview-container .q-element{padding:16px;background:#fff;border-radius:8px}.preview-container .form-content{padding:15px 24px}.preview-container .elment-separator{margin:16px 0}.preview-container .feedback-text{color:#1b4ca1;font:400 16px/20px Lato}.do-later-btn{height:40px;color:#1b4ca1!important;background-color:#fff!important;border-radius:20px;border:1px solid #1b4ca1!important;margin-right:10px}.submit-btn{height:40px;color:#fff!important;background-color:#1b4ca1!important;border-radius:20px}.submit-btn:disabled{opacity:.6!important}.loader{position:absolute;top:0;left:0;z-index:1000;height:100vh;width:100vw;background-color:#80808045}.info-icon{color:#d13924;font-size:20px;height:20px;width:26px;margin-top:2px}.close-button{height:30px;width:30px;line-height:24px;background:#00000040!important;color:#fff!important;align-self:end;margin-right:-24px}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i6.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i6.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatLegacyProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i2.MatLegacyDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i10.SurveyFormQuestionComponent, selector: "ws-app-survey-form-question", inputs: ["questionForm", "fieldDetails"], outputs: ["questionValues"] }, { kind: "component", type: i11.SurveyFormSectionComponent, selector: "ws-app-survey-form-section", inputs: ["childQuestionsFormArray", "childFields", "sectionField"], outputs: ["questionValues"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
248
250
  }
249
251
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PublicSurveyFormComponent, decorators: [{
250
252
  type: Component,
251
- args: [{ selector: 'ws-app-public-survey-form', template: "<div class=\"preview-container\">\n <div class=\"form-header flex\">\n <div class=\"flex flex-1 justify-start items-center\">\n <div>{{'apptoc.AGKCaseStudySurveyForm' | translate}} </div>\n </div>\n <button mat-icon-button class=\"close-button\" [mat-dialog-close]=\"false\">\n <mat-icon class=\"close-icon\" color=\"warn\">close</mat-icon>\n </button>\n </div>\n <div class=\"form-content\">\n <ng-container *ngIf=\"surveyForm\">\n <form [formGroup]=\"surveyForm\">\n <ng-container *ngFor=\"let parentField of parentalFields\">\n <ng-container [ngSwitch]=\"parentField.fieldType\">\n <ng-container *ngSwitchCase=\"'heading'\">\n <ws-app-survey-form-section [childFields]=\"getChildFields(parentField.sectionId)\"\n [sectionField]=\"parentField\"\n [childQuestionsFormArray]=\"getChildQuestionsFormArray(parentField.sectionId)\"\n (questionValues)=\"updateQuestionValues($event)\"></ws-app-survey-form-section>\n </ng-container>\n <ng-container *ngSwitchCase=\"'separator'\">\n <hr class=\"opacity-50 elment-separator\">\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ws-app-survey-form-question [fieldDetails]=\"parentField\"\n [questionForm]=\"getQuestionControl(parentField.controlIndex)\"\n (questionValues)=\"updateQuestionValues($event)\"></ws-app-survey-form-question>\n </ng-container>\n </ng-container>\n </ng-container>\n <div class=\"flex justify-end m-4\">\n <!-- <button mat-button class=\"do-later-btn\" (click)=\"closeDialog()\">{{'apptoc.doItLater' | translate}}</button> -->\n <button mat-button class=\"submit-btn\" [disabled]=\"!surveyFormIsValid\" (click)=\"submitForm()\">{{'apptoc.submit'\n | translate}}</button>\n </div>\n </form>\n </ng-container>\n </div>\n</div>\n\n<ng-container *ngIf=\"addLoader > 0\">\n <div class=\"text-center my-2 loader flex justify-center items-center\">\n <mat-spinner class=\"inline-block\"></mat-spinner>\n </div>\n</ng-container>", styles: [".preview-container{max-height:700px}.preview-container .form-content{background:#f4f8ff}.preview-container .form-header{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:center;text-underline-position:from-font;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;padding:15px 24px;border-bottom:1px solid #c3c3c3}.preview-container .q-element{padding:16px;background:#fff;border-radius:8px}.preview-container .form-content{padding:15px 24px}.preview-container .elment-separator{margin:16px 0}.preview-container .feedback-text{color:#1b4ca1;font:400 16px/20px Lato}.do-later-btn{height:40px;color:#1b4ca1!important;background-color:#fff!important;border-radius:20px;border:1px solid #1b4ca1!important;margin-right:10px}.submit-btn{height:40px;color:#fff!important;background-color:#1b4ca1!important;border-radius:20px}.submit-btn:disabled{opacity:.6!important}.loader{position:absolute;top:0;left:0;z-index:1000;height:100vh;width:100vw;background-color:#80808045}.info-icon{color:#d13924;font-size:20px;height:20px;width:26px;margin-top:2px}.close-button{height:30px;width:30px;line-height:24px;background:#00000040!important;color:#fff!important;align-self:end;margin-right:-24px}\n"] }]
253
+ args: [{ selector: 'ws-app-public-survey-form', template: "<div class=\"preview-container\">\n <div class=\"form-header flex\">\n <div class=\"flex flex-1 justify-start items-center\">\n <div>{{'apptoc.AGKCaseStudySurveyForm' | translate}} </div>\n </div>\n <button mat-icon-button class=\"close-button\" [mat-dialog-close]=\"false\">\n <mat-icon class=\"close-icon\" color=\"warn\">close</mat-icon>\n </button>\n </div>\n <div class=\"form-content\">\n <ng-container *ngIf=\"surveyForm\">\n <form [formGroup]=\"surveyForm\">\n <ng-container *ngFor=\"let parentField of parentalFields\">\n <ng-container [ngSwitch]=\"parentField.fieldType\">\n <ng-container *ngSwitchCase=\"'heading'\">\n <ws-app-survey-form-section [childFields]=\"getChildFields(parentField.sectionId)\"\n [sectionField]=\"parentField\"\n [childQuestionsFormArray]=\"getChildQuestionsFormArray(parentField.sectionId)\"\n (questionValues)=\"updateQuestionValues($event)\"></ws-app-survey-form-section>\n </ng-container>\n <ng-container *ngSwitchCase=\"'separator'\">\n <hr class=\"opacity-50 elment-separator\">\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ws-app-survey-form-question [fieldDetails]=\"parentField\"\n [questionForm]=\"getQuestionControl(parentField.controlIndex)\"\n (questionValues)=\"updateQuestionValues($event)\"></ws-app-survey-form-question>\n </ng-container>\n </ng-container>\n </ng-container>\n <div class=\"flex justify-end m-4\">\n <!-- <button mat-button class=\"do-later-btn\" (click)=\"closeDialog()\">{{'apptoc.doItLater' | translate}}</button> -->\n <button mat-button class=\"submit-btn\" [disabled]=\"!surveyFormIsValid || forPreview\" (click)=\"submitForm()\">{{'apptoc.submit'\n | translate}}</button>\n </div>\n </form>\n </ng-container>\n </div>\n</div>\n\n<ng-container *ngIf=\"addLoader > 0\">\n <div class=\"text-center my-2 loader flex justify-center items-center\">\n <mat-spinner class=\"inline-block\"></mat-spinner>\n </div>\n</ng-container>", styles: [".preview-container{max-height:700px}.preview-container .form-content{background:#f4f8ff}.preview-container .form-header{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:center;text-underline-position:from-font;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;padding:15px 24px;border-bottom:1px solid #c3c3c3}.preview-container .q-element{padding:16px;background:#fff;border-radius:8px}.preview-container .form-content{padding:15px 24px}.preview-container .elment-separator{margin:16px 0}.preview-container .feedback-text{color:#1b4ca1;font:400 16px/20px Lato}.do-later-btn{height:40px;color:#1b4ca1!important;background-color:#fff!important;border-radius:20px;border:1px solid #1b4ca1!important;margin-right:10px}.submit-btn{height:40px;color:#fff!important;background-color:#1b4ca1!important;border-radius:20px}.submit-btn:disabled{opacity:.6!important}.loader{position:absolute;top:0;left:0;z-index:1000;height:100vh;width:100vw;background-color:#80808045}.info-icon{color:#d13924;font-size:20px;height:20px;width:26px;margin-top:2px}.close-button{height:30px;width:30px;line-height:24px;background:#00000040!important;color:#fff!important;align-self:end;margin-right:-24px}\n"] }]
252
254
  }], ctorParameters: function () { return [{ type: i1.MatLegacySnackBar }, { type: i2.MatLegacyDialogRef }, { type: undefined, decorators: [{
253
255
  type: Inject,
254
256
  args: [MAT_LEGACY_DIALOG_DATA]
255
257
  }] }, { type: i3.FormBuilder }, { type: i4.AppTocService }, { type: i5.TranslateService }]; } });
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLXN1cnZleS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9jb21wb25lbnRzL3B1YmxpYy1zdXJ2ZXktZm9ybS9wdWJsaWMtc3VydmV5LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL2NvbXBvbmVudHMvcHVibGljLXN1cnZleS1mb3JtL3B1YmxpYy1zdXJ2ZXktZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtQkFBbUI7QUFDbkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUE7QUFFekQsT0FBTyxFQUFFLHNCQUFzQixFQUFzQixNQUFNLGlDQUFpQyxDQUFBO0FBQzVGLE9BQU8sRUFBcUMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDOUUsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUE7Ozs7Ozs7Ozs7Ozs7QUFJM0Isc0JBQXNCO0FBRXRCLE1BQU0sYUFBYSxHQUFHLHFIQUFxSCxDQUFBO0FBQzNJLE1BQU0sY0FBYyxHQUFHLG1CQUFtQixDQUFBO0FBTzFDLE1BQU0sT0FBTyx5QkFBeUI7SUFjcEMseUJBQXlCO0lBRXpCLHVCQUF1QjtJQUN2QixZQUNVLFFBQTJCLEVBQzVCLFNBQXdELEVBQ3hCLElBQVMsRUFDeEMsRUFBZSxFQUNmLFNBQXdCLEVBQ3hCLFNBQTJCO1FBTDNCLGFBQVEsR0FBUixRQUFRLENBQW1CO1FBQzVCLGNBQVMsR0FBVCxTQUFTLENBQStDO1FBQ3hCLFNBQUksR0FBSixJQUFJLENBQUs7UUFDeEMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGNBQVMsR0FBVCxTQUFTLENBQWU7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7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LFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO2dCQUMvQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFBO2FBQy9CO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBQ0QsOEJBQThCO0lBRXRCLFlBQVksQ0FBQyxVQUFrQixFQUFFLFdBQW1CLElBQUk7UUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUNsQyxRQUFRO1NBQ1QsQ0FBQyxDQUFBO0lBQ0osQ0FBQzsrR0ExUFUseUJBQXlCLHFGQW9CMUIsc0JBQXNCO21HQXBCckIseUJBQXlCLGlFQ25CdEMscXBFQTRDZTs7NEZEekJGLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSwyQkFBMkI7OzBCQXdCbEMsTUFBTTsyQkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gKGltcG9ydHMpXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hdExlZ2FjeVNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LXNuYWNrLWJhcidcbmltcG9ydCB7IE1BVF9MRUdBQ1lfRElBTE9HX0RBVEEsIE1hdExlZ2FjeURpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnXG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJ1xuaW1wb3J0IHsgQXBwVG9jU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FwcC10b2Muc2VydmljZSdcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbi8vI2VuZHJlZ2lvbiAoaW1wb3J0cylcblxuY29uc3QgRU1BSUxfUEFUVEVSTiA9IC9eW2EtekEtWjAtOV0rW2EtekEtWjAtOS5fLV0qW2EtekEtWjAtOV0rQFthLXpBLVowLTldKyhbLWEtekEtWjAtOV0qW2EtekEtWjAtOV0rKT8oXFwuW2EtekEtWjAtOS1dKykqXFwuW2EtekEtWl17Miw0fSQvXG5jb25zdCBNT0JJTEVfUEFUVEVSTiA9IC9eWzBdP1s2Nzg5XVxcZHs5fSQvXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dzLWFwcC1wdWJsaWMtc3VydmV5LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vcHVibGljLXN1cnZleS1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHVibGljLXN1cnZleS1mb3JtLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUHVibGljU3VydmV5Rm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLy8jcmVnaW9uIChwcm9wZXJ0aWVzKVxuICByYXRpbmcgPSAwXG4gIHN0YXJzID0gQXJyYXkoNSkuZmlsbCgwKVxuICBvdGhlckZpZWxkVHlwZTogYW55ID0gW11cbiAgc2VsZWN0ZWRPcHRpb24gPSBmYWxzZVxuICBmb3JtRGV0YWlsczogYW55XG4gIHN1cnZleUlkID0gJydcbiAgc3VydmV5Rm9ybSE6IEZvcm1Hcm91cFxuICBwYXJlbnRhbEZpZWxkczogYW55W10gPSBbXVxuICBjaGlsZEZpZWxkczogYW55W10gPSBbXVxuICBzdXJ2ZXlGb3JtSXNWYWxpZCA9IHRydWVcbiAgYWRkTG9hZGVyID0gMFxuICAvLyNlbmRyZWdpb24gKHByb3BlcnRpZXMpXG5cbiAgLy8jcmVnaW9uIChjb25zdHJ1Y3RvcilcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogTWF0TGVnYWN5U25hY2tCYXIsXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0TGVnYWN5RGlhbG9nUmVmPFB1YmxpY1N1cnZleUZvcm1Db21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0xFR0FDWV9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGFwcFRvY1N2YzogQXBwVG9jU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcblxuICApIHtcbiAgICB0aGlzLnN1cnZleUlkID0gZGF0YS5zdXJ2ZXlJZFxuICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnd2Vic2l0ZUxhbmd1YWdlJykpIHtcbiAgICAgIHRoaXMudHJhbnNsYXRlLnNldERlZmF1bHRMYW5nKCdlbicpXG4gICAgICBjb25zdCBsYW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3dlYnNpdGVMYW5ndWFnZScpIVxuICAgICAgdGhpcy50cmFuc2xhdGUudXNlKGxhbmcpXG4gICAgfVxuICB9XG4gIC8vI2VuZHJlZ2lvbiAoY29uc3RydWN0b3IpXG5cblxuICAvLyNyZWdpb24gKGluaXRpYWxpemF0aW9uKVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldFN1cnZleUZvcm1EYXRhKClcbiAgfVxuXG4gIGdldFN1cnZleUZvcm1EYXRhKCkge1xuICAgIHRoaXMuYWRkTG9hZGVyID0gdGhpcy5hZGRMb2FkZXIgKyAxXG4gICAgdGhpcy5hcHBUb2NTdmMuZ2V0Rm9ybUJ5SWRQdWJsaWModGhpcy5zdXJ2ZXlJZCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgdGhpcy5hZGRMb2FkZXIgPSB0aGlzLmFkZExvYWRlciAtIDFcbiAgICAgIHRoaXMuZm9ybURldGFpbHMgPSB7XG4gICAgICAgIHRpdGxlOiBfLmdldChyZXN1bHQsICdyZXN1bHQucmVzcG9uc2UudGl0bGUnLCAnJyksXG4gICAgICAgIGZpZWxkczogXy5nZXQocmVzdWx0LCAncmVzdWx0LnJlc3BvbnNlLmZpZWxkcycsIFtdKSxcbiAgICAgICAgY29udGV4dFR5cGU6IF8uZ2V0KHJlc3VsdCwgJ3Jlc3VsdC5yZXNwb25zZS5jb250ZXh0VHlwZScsICdmb3JtJyksXG4gICAgICB9XG4gICAgICB0aGlzLmJ1aWxkRm9ybSgpXG4gICAgfSwgKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIHRoaXMuYWRkTG9hZGVyID0gdGhpcy5hZGRMb2FkZXIgLSAxXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGJ1aWxkRm9ybSgpIHtcbiAgICBpZiAodGhpcy5mb3JtRGV0YWlscykge1xuICAgICAgdGhpcy5zdXJ2ZXlGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgIGZpZWxkczogdGhpcy5mYi5hcnJheShbXSlcbiAgICAgIH0pXG4gICAgICBjb25zdCBxdWVzdGlvbnNBcnJheSA9IHRoaXMucXVlc3Rpb25zQXJyYXlcbiAgICAgIGlmICh0aGlzLmZvcm1EZXRhaWxzLmZpZWxkcykge1xuICAgICAgICB0aGlzLmZvcm1EZXRhaWxzLmZpZWxkcy5mb3JFYWNoKChmaWVsZDogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKGZpZWxkLmZpZWxkVHlwZSAhPT0gJ3NlcGFyYXRvcicgJiYgZmllbGQuZmllbGRUeXBlICE9PSAnaGVhZGluZycpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRvcnNBcnJheTogYW55ID0gW11cbiAgICAgICAgICAgIGlmIChmaWVsZC5pc1JlcXVpcmVkKSB7XG4gICAgICAgICAgICAgIHZhbGlkYXRvcnNBcnJheS5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN3aXRjaCAoZmllbGQuZmllbGRUeXBlKSB7XG4gICAgICAgICAgICAgIGNhc2UgJ3Bob25lIG51bWJlcic6XG4gICAgICAgICAgICAgICAgdmFsaWRhdG9yc0FycmF5LnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKE1PQklMRV9QQVRURVJOKSlcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzQXJyYXkucHVzaChWYWxpZGF0b3JzLm1pbkxlbmd0aCgxMCkpXG4gICAgICAgICAgICAgICAgdmFsaWRhdG9yc0FycmF5LnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTApKVxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgIGNhc2UgJ2VtYWlsJzpcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzQXJyYXkucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4oRU1BSUxfUEFUVEVSTikpXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgY2FzZSAnbnVtZXJpYyc6XG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgcXVlc3Rpb25Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICBxdWVzdGlvbjogW2ZpZWxkLm5hbWVdLFxuICAgICAgICAgICAgICBwYXJlbnRJZDogW2ZpZWxkLnBhcmVudElkXSxcbiAgICAgICAgICAgICAgcXVlc3Rpb25JbmRleDogW3F1ZXN0aW9uc0FycmF5Lmxlbmd0aF0sXG4gICAgICAgICAgICAgIGZpZWxkVHlwZTogW2ZpZWxkLmZpZWxkVHlwZV0sXG4gICAgICAgICAgICAgIGFuc3dlcjogWycnLCB2YWxpZGF0b3JzQXJyYXldLFxuICAgICAgICAgICAgICBpc05BOiBbZmFsc2VdLFxuICAgICAgICAgICAgICBxdWVzdGlvbklkOiBbZmllbGQuaWRdXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgZmllbGRbJ2NvbnRyb2xJbmRleCddID0gcXVlc3Rpb25zQXJyYXkubGVuZ3RoXG4gICAgICAgICAgICBmaWVsZFsndmFsaWRhdG9yc0FycmF5J10gPSB2YWxpZGF0b3JzQXJyYXlcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2gocXVlc3Rpb25Hcm91cClcbiAgICAgICAgICAgIGlmICh2YWxpZGF0b3JzQXJyYXkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHRoaXMuc3VydmV5Rm9ybUlzVmFsaWQgPSBmYWxzZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChmaWVsZC5wYXJlbnRJZCkge1xuICAgICAgICAgICAgdGhpcy5jaGlsZEZpZWxkcy5wdXNoKGZpZWxkKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudGFsRmllbGRzLnB1c2goZmllbGQpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBxdWVzdGlvbnNBcnJheSgpOiBGb3JtQXJyYXkge1xuICAgIGlmICh0aGlzLnN1cnZleUZvcm0gJiYgdGhpcy5zdXJ2ZXlGb3JtLmNvbnRyb2xzLmZpZWxkcykge1xuICAgICAgcmV0dXJuIHRoaXMuc3VydmV5Rm9ybS5jb250cm9scy5maWVsZHMgYXMgRm9ybUFycmF5XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZiLmFycmF5KFtdKVxuICB9XG4gIC8vI2VuZHJlZ2lvbiAoaW5pdGlhbGl6YXRpb24pXG5cbiAgLy8jcmVnaW9uIChVSSBJbnRlcmFjdGlvbnMpXG4gIGdldENoaWxkUXVlc3Rpb25zRm9ybUFycmF5KHNlY3Rpb25JZDogc3RyaW5nKTogRm9ybUFycmF5IHtcbiAgICBpZiAodGhpcy5zdXJ2ZXlGb3JtICYmIHRoaXMuc3VydmV5Rm9ybS5jb250cm9scy5maWVsZHMpIHtcbiAgICAgIGNvbnN0IHF1ZXN0aW9uc0FycmF5ID0gdGhpcy5xdWVzdGlvbnNBcnJheVxuICAgICAgY29uc3QgY2hpbGRRdWVzdGlvbnNBcnJheSA9IHF1ZXN0aW9uc0FycmF5LmNvbnRyb2xzLmZpbHRlcigocXVlc3Rpb246IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gcXVlc3Rpb24udmFsdWUgJiYgcXVlc3Rpb24udmFsdWUucGFyZW50SWQgPT09IHNlY3Rpb25JZFxuICAgICAgfSlcblxuICAgICAgaWYgKGNoaWxkUXVlc3Rpb25zQXJyYXkubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mYi5hcnJheShjaGlsZFF1ZXN0aW9uc0FycmF5KVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5mYi5hcnJheShbXSkgYXMgRm9ybUFycmF5XG4gIH1cblxuICBnZXRDaGlsZEZpZWxkcyhzZWN0aW9uSWQ6IHN0cmluZykge1xuICAgIGxldCBzZWN0aW9uQ2hpbGRzOiBhbnkgPSBbXVxuICAgIGlmICh0aGlzLmNoaWxkRmllbGRzKSB7XG4gICAgICBzZWN0aW9uQ2hpbGRzID0gdGhpcy5jaGlsZEZpZWxkcy5maWx0ZXIoKGZpZWxkOiBhbnkpID0+IGZpZWxkLnBhcmVudElkID09PSBzZWN0aW9uSWQpXG4gICAgfVxuICAgIHJldHVybiBzZWN0aW9uQ2hpbGRzXG4gIH1cblxuICBnZXRRdWVzdGlvbkNvbnRyb2woaW5kZXg6IG51bWJlcikge1xuICAgIGlmICh0aGlzLnF1ZXN0aW9uc0FycmF5LmNvbnRyb2xzW2luZGV4XSkge1xuICAgICAgcmV0dXJuIHRoaXMucXVlc3Rpb25zQXJyYXkuY29udHJvbHNbaW5kZXhdXG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZiLmdyb3VwKHt9KVxuICB9XG5cbiAgZ2V0RW1haWxGcm9tc3VydmV5KCkge1xuICAgIGNvbnN0IGFuc3dlck9iaiA9IHRoaXMuZGF0YU9iamVjdC5maW5kKChhOiBhbnkpID0+IGEucXVlc3Rpb24gJiYgYS5xdWVzdGlvbi50b0xvd2VyQ2FzZSgpID09PSAnZW1haWwnKVxuICAgIHJldHVybiBhbnN3ZXJPYmogPyBhbnN3ZXJPYmouYW5zd2VyIDogJydcbiAgfVxuXG4gIHN1Ym1pdEZvcm0oKSB7XG4gICAgY29uc29sZS5sb2coJ2RhdGFPYmplY3QnLCB0aGlzLmRhdGFPYmplY3QpXG4gICAgdGhpcy5zdXJ2ZXlGb3JtLm1hcmtBbGxBc1RvdWNoZWQoKVxuICAgIHRoaXMuc3VydmV5Rm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KClcbiAgICBpZiAodGhpcy5zdXJ2ZXlGb3JtSXNWYWxpZCkge1xuICAgICAgY29uc3QgZm9ybUJvZHk6IGFueSA9IHtcbiAgICAgICAgZm9ybUlkOiB0aGlzLnN1cnZleUlkLFxuICAgICAgICB2ZXJzaW9uOiA0LFxuICAgICAgICBzdGF0dXM6ICdTVUJNSVRURUQnLFxuICAgICAgICByZXNwb25zZXM6IHRoaXMuZGF0YU9iamVjdCxcbiAgICAgICAgY29udGV4dElkOiBfLmdldCh0aGlzLmRhdGEsICdjb3Vyc2VJZCcpLFxuICAgICAgICBjb250ZXh0VHlwZTogXy5nZXQodGhpcy5mb3JtRGV0YWlscywgJ2NvbnRleHRUeXBlJywgJycpLFxuICAgICAgICBjb250ZXh0TmFtZTogXy5nZXQodGhpcy5kYXRhLCAnY291cnNlTmFtZScsICcnKSxcbiAgICAgICAgZW1haWxJZDogdGhpcy5nZXRFbWFpbEZyb21zdXJ2ZXkoKSxcbiAgICAgICAgY29udGV4dE9yZ0lkOiBfLmdldCh0aGlzLmRhdGEsICdjb250ZXh0T3JnSWQnKSxcbiAgICAgIH1cblxuICAgICAgLy8gUmVtb3ZlIGV4aXN0aW5nIHN1cnZleSBkYXRhIGZyb20gbG9jYWwgc3RvcmFnZSBpZiBwcmVzZW50XG4gICAgICBjb25zdCBzdG9yYWdlS2V5ID0gYHN1cnZleV8ke3RoaXMuc3VydmV5SWR9XyR7Xy5nZXQodGhpcy5kYXRhLCAnY291cnNlSWQnKX1gXG4gICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oc3RvcmFnZUtleSkpIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oc3RvcmFnZUtleSlcbiAgICAgIH1cblxuICAgICAgLy8gU3RvcmUgZnJlc2ggZGF0YU9iamVjdCBpbiBsb2NhbCBzdG9yYWdlXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShzdG9yYWdlS2V5LCBKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGFPYmplY3QpKVxuXG4gICAgICB0aGlzLmFkZExvYWRlciA9IHRoaXMuYWRkTG9hZGVyICsgMVxuICAgICAgdGhpcy5hcHBUb2NTdmMuc3VibWl0Rm9ybVB1YmxpYyhmb3JtQm9keSkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgICB0aGlzLmFkZExvYWRlciA9IHRoaXMuYWRkTG9hZGVyIC0gMVxuICAgICAgICAgIGlmIChfLmdldChyZXMsICdwYXJhbXMuc3RhdHVzJykgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgdGhpcy5vcGVuU25hY2tiYXIoJ0Zvcm0gaXMgc3VibWl0dGVkIHN1Y2Nlc3NmdWxseScpXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0cnVlKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5TbmFja2JhcihfLmdldChyZXMsICdlcnJvck1lc3NhZ2UnLCAnU29tZXRoaW5nIHdlbnQgd3JvbmcgcGxlYXNlIHRyeSBhZ2FpbicpKVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLmFkZExvYWRlciA9IHRoaXMuYWRkTG9hZGVyIC0gMVxuICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy5vcGVuU25hY2tiYXIoJ1NvbWV0aGluZyB3ZW50IHdyb25nIHBsZWFzZSB0cnkgYWdhaW4nKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICAvLyNyZWdpb24gKGRhdGEgcHJvY2Vzc2luZylcbiAgZ2V0IGRhdGFPYmplY3QoKTogYW55IHtcbiAgICBjb25zdCBkYXRhT2JqZWN0OiBhbnkgPSBbXVxuICAgIGNvbnN0IGZpZWxkcyA9IF8uZ2V0KHRoaXMuc3VydmV5Rm9ybSwgJ3ZhbHVlLmZpZWxkcycsIFtdKVxuICAgIGlmIChmaWVsZHMpIHtcbiAgICAgIGZpZWxkcy5mb3JFYWNoKChmaWVsZDogYW55KSA9PiB7XG4gICAgICAgIGxldCB2YWx1ZSA9IGZpZWxkLmlzTkEgPyAnTi9BJyA6IGZpZWxkLmFuc3dlclxuICAgICAgICBpZiAoIWZpZWxkLmlzTkEgJiYgZmllbGQuZmllbGRUeXBlID09PSAnZGF0ZScgJiYgdmFsdWUpIHtcbiAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRZZWFyID0gdmFsdWUuZ2V0RnVsbFllYXIoKVxuICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZE1vbnRoID0gU3RyaW5nKHZhbHVlLmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCAnMCcpXG4gICAgICAgICAgY29uc3QgZm9ybWF0dGVkRGF5ID0gU3RyaW5nKHZhbHVlLmdldERhdGUoKSkucGFkU3RhcnQoMiwgJzAnKVxuICAgICAgICAgIHZhbHVlID0gYCR7Zm9ybWF0dGVkWWVhcn0tJHtmb3JtYXR0ZWRNb250aH0tJHtmb3JtYXR0ZWREYXl9YFxuICAgICAgICB9XG4gICAgICAgIGRhdGFPYmplY3QucHVzaCh7XG4gICAgICAgICAgcXVlc3Rpb25JZDogZmllbGQucXVlc3Rpb25JZCxcbiAgICAgICAgICBxdWVzdGlvbjogZmllbGQucXVlc3Rpb24sXG4gICAgICAgICAgYW5zd2VyOiB2YWx1ZSxcbiAgICAgICAgICBhbnN3ZXJUeXBlOiBmaWVsZC5maWVsZFR5cGVcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgfVxuICAgIHJldHVybiBkYXRhT2JqZWN0XG4gIH1cblxuICBjbG9zZURpYWxvZygpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShmYWxzZSlcbiAgfVxuICAvLyNlbmRyZWdpb24gKGRhdGEgcHJvY2Vzc2luZylcblxuICB1cGRhdGVRdWVzdGlvblZhbHVlcyhldmVudDogYW55KSB7XG4gICAgdGhpcy5xdWVzdGlvbnNBcnJheS52YWx1ZVtldmVudC5xdWVzdGlvbkluZGV4XSA9IGV2ZW50XG4gICAgdGhpcy51cGRhdGVTdXJ2ZXlGb3JtVmFsaWRpdHkoKVxuICB9XG5cbiAgdXBkYXRlU3VydmV5Rm9ybVZhbGlkaXR5KCkgeyAvLyBzb21lIHRpbWVzIHJlYWN0aXZlIGZvcm1zIG5vdCBhYmFsZSB0byBkZXRlY3QgdmFsdWUgY2hhbmdlcyBhbmQgdmFsaWRpdHkgaW4gZHluYW1pYyBmb3JtQXJyYXlcbiAgICB0aGlzLnN1cnZleUZvcm1Jc1ZhbGlkID0gdHJ1ZVxuICAgIHRoaXMucXVlc3Rpb25zQXJyYXkuY29udHJvbHMuZm9yRWFjaCgoZm9ybTogYW55KSA9PiB7XG4gICAgICBpZiAoIWZvcm0uY29udHJvbHMuYW5zd2VyLnZhbGlkKSB7XG4gICAgICAgIHRoaXMuc3VydmV5Rm9ybUlzVmFsaWQgPSBmYWxzZVxuICAgICAgfVxuICAgIH0pXG4gIH1cbiAgLy8jZW5kcmVnaW9uIChVSSBJbnRlcmFjdGlvbnMpXG5cbiAgcHJpdmF0ZSBvcGVuU25hY2tiYXIocHJpbWFyeU1zZzogc3RyaW5nLCBkdXJhdGlvbjogbnVtYmVyID0gNTAwMCkge1xuICAgIHRoaXMuc25hY2tCYXIub3BlbihwcmltYXJ5TXNnLCAnWCcsIHtcbiAgICAgIGR1cmF0aW9uLFxuICAgIH0pXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwcmV2aWV3LWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1oZWFkZXIgZmxleFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtMSBqdXN0aWZ5LXN0YXJ0IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgPGRpdj57eydhcHB0b2MuQUdLQ2FzZVN0dWR5U3VydmV5Rm9ybScgfCB0cmFuc2xhdGV9fSA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cImNsb3NlLWJ1dHRvblwiIFttYXQtZGlhbG9nLWNsb3NlXT1cImZhbHNlXCI+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJjbG9zZS1pY29uXCIgY29sb3I9XCJ3YXJuXCI+Y2xvc2U8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZvcm0tY29udGVudFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdXJ2ZXlGb3JtXCI+XG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInN1cnZleUZvcm1cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcGFyZW50RmllbGQgb2YgcGFyZW50YWxGaWVsZHNcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJwYXJlbnRGaWVsZC5maWVsZFR5cGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidoZWFkaW5nJ1wiPlxuICAgICAgICAgICAgICA8d3MtYXBwLXN1cnZleS1mb3JtLXNlY3Rpb24gW2NoaWxkRmllbGRzXT1cImdldENoaWxkRmllbGRzKHBhcmVudEZpZWxkLnNlY3Rpb25JZClcIlxuICAgICAgICAgICAgICAgIFtzZWN0aW9uRmllbGRdPVwicGFyZW50RmllbGRcIlxuICAgICAgICAgICAgICAgIFtjaGlsZFF1ZXN0aW9uc0Zvcm1BcnJheV09XCJnZXRDaGlsZFF1ZXN0aW9uc0Zvcm1BcnJheShwYXJlbnRGaWVsZC5zZWN0aW9uSWQpXCJcbiAgICAgICAgICAgICAgICAocXVlc3Rpb25WYWx1ZXMpPVwidXBkYXRlUXVlc3Rpb25WYWx1ZXMoJGV2ZW50KVwiPjwvd3MtYXBwLXN1cnZleS1mb3JtLXNlY3Rpb24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzZXBhcmF0b3InXCI+XG4gICAgICAgICAgICAgIDxociBjbGFzcz1cIm9wYWNpdHktNTAgZWxtZW50LXNlcGFyYXRvclwiPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgICAgIDx3cy1hcHAtc3VydmV5LWZvcm0tcXVlc3Rpb24gW2ZpZWxkRGV0YWlsc109XCJwYXJlbnRGaWVsZFwiXG4gICAgICAgICAgICAgICAgW3F1ZXN0aW9uRm9ybV09XCJnZXRRdWVzdGlvbkNvbnRyb2wocGFyZW50RmllbGQuY29udHJvbEluZGV4KVwiXG4gICAgICAgICAgICAgICAgKHF1ZXN0aW9uVmFsdWVzKT1cInVwZGF0ZVF1ZXN0aW9uVmFsdWVzKCRldmVudClcIj48L3dzLWFwcC1zdXJ2ZXktZm9ybS1xdWVzdGlvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1lbmQgbS00XCI+XG4gICAgICAgICAgPCEtLSA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJkby1sYXRlci1idG5cIiAoY2xpY2spPVwiY2xvc2VEaWFsb2coKVwiPnt7J2FwcHRvYy5kb0l0TGF0ZXInIHwgdHJhbnNsYXRlfX08L2J1dHRvbj4gLS0+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNsYXNzPVwic3VibWl0LWJ0blwiIFtkaXNhYmxlZF09XCIhc3VydmV5Rm9ybUlzVmFsaWRcIiAoY2xpY2spPVwic3VibWl0Rm9ybSgpXCI+e3snYXBwdG9jLnN1Ym1pdCdcbiAgICAgICAgICAgIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Zvcm0+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJhZGRMb2FkZXIgPiAwXCI+XG4gIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBteS0yIGxvYWRlciBmbGV4IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlclwiPlxuICAgIDxtYXQtc3Bpbm5lciBjbGFzcz1cImlubGluZS1ibG9ja1wiPjwvbWF0LXNwaW5uZXI+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19
258
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLXN1cnZleS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9jb21wb25lbnRzL3B1YmxpYy1zdXJ2ZXktZm9ybS9wdWJsaWMtc3VydmV5LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL2NvbXBvbmVudHMvcHVibGljLXN1cnZleS1mb3JtL3B1YmxpYy1zdXJ2ZXktZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtQkFBbUI7QUFDbkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUE7QUFFekQsT0FBTyxFQUFFLHNCQUFzQixFQUFzQixNQUFNLGlDQUFpQyxDQUFBO0FBQzVGLE9BQU8sRUFBcUMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDOUUsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUE7Ozs7Ozs7Ozs7Ozs7QUFJM0Isc0JBQXNCO0FBRXRCLE1BQU0sYUFBYSxHQUFHLHFIQUFxSCxDQUFBO0FBQzNJLE1BQU0sY0FBYyxHQUFHLG1CQUFtQixDQUFBO0FBTzFDLE1BQU0sT0FBTyx5QkFBeUI7SUFlcEMseUJBQXlCO0lBRXpCLHVCQUF1QjtJQUN2QixZQUNVLFFBQTJCLEVBQzVCLFNBQXdELEVBQ3hCLElBQVMsRUFDeEMsRUFBZSxFQUNmLFNBQXdCLEVBQ3hCLFNBQTJCO1FBTDNCLGFBQVEsR0FBUixRQUFRLENBQW1CO1FBQzVCLGNBQVMsR0FBVCxTQUFTLENBQStDO1FBQ3hCLFNBQUksR0FBSixJQUFJLENBQUs7UUFDeEMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGNBQVMsR0FBVCxTQUFTLENBQWU7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7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RCx3QkFBd0I7UUFDdEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQTtRQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO2dCQUMvQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFBO2FBQy9CO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBQ0QsOEJBQThCO0lBRXRCLFlBQVksQ0FBQyxVQUFrQixFQUFFLFdBQW1CLElBQUk7UUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUNsQyxRQUFRO1NBQ1QsQ0FBQyxDQUFBO0lBQ0osQ0FBQzsrR0E1UFUseUJBQXlCLHFGQXFCMUIsc0JBQXNCO21HQXJCckIseUJBQXlCLGlFQ25CdEMsbXFFQTRDZTs7NEZEekJGLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSwyQkFBMkI7OzBCQXlCbEMsTUFBTTsyQkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gKGltcG9ydHMpXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hdExlZ2FjeVNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LXNuYWNrLWJhcidcbmltcG9ydCB7IE1BVF9MRUdBQ1lfRElBTE9HX0RBVEEsIE1hdExlZ2FjeURpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnXG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJ1xuaW1wb3J0IHsgQXBwVG9jU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FwcC10b2Muc2VydmljZSdcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbi8vI2VuZHJlZ2lvbiAoaW1wb3J0cylcblxuY29uc3QgRU1BSUxfUEFUVEVSTiA9IC9eW2EtekEtWjAtOV0rW2EtekEtWjAtOS5fLV0qW2EtekEtWjAtOV0rQFthLXpBLVowLTldKyhbLWEtekEtWjAtOV0qW2EtekEtWjAtOV0rKT8oXFwuW2EtekEtWjAtOS1dKykqXFwuW2EtekEtWl17Miw0fSQvXG5jb25zdCBNT0JJTEVfUEFUVEVSTiA9IC9eWzBdP1s2Nzg5XVxcZHs5fSQvXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dzLWFwcC1wdWJsaWMtc3VydmV5LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vcHVibGljLXN1cnZleS1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHVibGljLXN1cnZleS1mb3JtLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUHVibGljU3VydmV5Rm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLy8jcmVnaW9uIChwcm9wZXJ0aWVzKVxuICByYXRpbmcgPSAwXG4gIHN0YXJzID0gQXJyYXkoNSkuZmlsbCgwKVxuICBvdGhlckZpZWxkVHlwZTogYW55ID0gW11cbiAgc2VsZWN0ZWRPcHRpb24gPSBmYWxzZVxuICBmb3JtRGV0YWlsczogYW55XG4gIHN1cnZleUlkID0gJydcbiAgc3VydmV5Rm9ybSE6IEZvcm1Hcm91cFxuICBwYXJlbnRhbEZpZWxkczogYW55W10gPSBbXVxuICBjaGlsZEZpZWxkczogYW55W10gPSBbXVxuICBzdXJ2ZXlGb3JtSXNWYWxpZCA9IHRydWVcbiAgYWRkTG9hZGVyID0gMFxuICBmb3JQcmV2aWV3ID0gZmFsc2VcbiAgLy8jZW5kcmVnaW9uIChwcm9wZXJ0aWVzKVxuXG4gIC8vI3JlZ2lvbiAoY29uc3RydWN0b3IpXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc25hY2tCYXI6IE1hdExlZ2FjeVNuYWNrQmFyLFxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdExlZ2FjeURpYWxvZ1JlZjxQdWJsaWNTdXJ2ZXlGb3JtQ29tcG9uZW50PixcbiAgICBASW5qZWN0KE1BVF9MRUdBQ1lfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBhbnksXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBhcHBUb2NTdmM6IEFwcFRvY1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG5cbiAgKSB7XG4gICAgdGhpcy5zdXJ2ZXlJZCA9IGRhdGEuc3VydmV5SWRcbiAgICB0aGlzLmZvclByZXZpZXcgPSBkYXRhLmZvclByZXZpZXdcbiAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3dlYnNpdGVMYW5ndWFnZScpKSB7XG4gICAgICB0aGlzLnRyYW5zbGF0ZS5zZXREZWZhdWx0TGFuZygnZW4nKVxuICAgICAgY29uc3QgbGFuZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3ZWJzaXRlTGFuZ3VhZ2UnKSFcbiAgICAgIHRoaXMudHJhbnNsYXRlLnVzZShsYW5nKVxuICAgIH1cbiAgfVxuICAvLyNlbmRyZWdpb24gKGNvbnN0cnVjdG9yKVxuXG5cbiAgLy8jcmVnaW9uIChpbml0aWFsaXphdGlvbilcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRTdXJ2ZXlGb3JtRGF0YSgpXG4gIH1cblxuICBnZXRTdXJ2ZXlGb3JtRGF0YSgpIHtcbiAgICB0aGlzLmFkZExvYWRlciA9IHRoaXMuYWRkTG9hZGVyICsgMVxuICAgIHRoaXMuYXBwVG9jU3ZjLmdldEZvcm1CeUlkUHVibGljKHRoaXMuc3VydmV5SWQpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgIHRoaXMuYWRkTG9hZGVyID0gdGhpcy5hZGRMb2FkZXIgLSAxXG4gICAgICB0aGlzLmZvcm1EZXRhaWxzID0ge1xuICAgICAgICB0aXRsZTogXy5nZXQocmVzdWx0LCAncmVzdWx0LnJlc3BvbnNlLnRpdGxlJywgJycpLFxuICAgICAgICBmaWVsZHM6IF8uZ2V0KHJlc3VsdCwgJ3Jlc3VsdC5yZXNwb25zZS5maWVsZHMnLCBbXSksXG4gICAgICAgIGNvbnRleHRUeXBlOiBfLmdldChyZXN1bHQsICdyZXN1bHQucmVzcG9uc2UuY29udGV4dFR5cGUnLCAnZm9ybScpLFxuICAgICAgfVxuICAgICAgdGhpcy5idWlsZEZvcm0oKVxuICAgIH0sIChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICB0aGlzLmFkZExvYWRlciA9IHRoaXMuYWRkTG9hZGVyIC0gMVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBidWlsZEZvcm0oKSB7XG4gICAgaWYgKHRoaXMuZm9ybURldGFpbHMpIHtcbiAgICAgIHRoaXMuc3VydmV5Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICBmaWVsZHM6IHRoaXMuZmIuYXJyYXkoW10pXG4gICAgICB9KVxuICAgICAgY29uc3QgcXVlc3Rpb25zQXJyYXkgPSB0aGlzLnF1ZXN0aW9uc0FycmF5XG4gICAgICBpZiAodGhpcy5mb3JtRGV0YWlscy5maWVsZHMpIHtcbiAgICAgICAgdGhpcy5mb3JtRGV0YWlscy5maWVsZHMuZm9yRWFjaCgoZmllbGQ6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChmaWVsZC5maWVsZFR5cGUgIT09ICdzZXBhcmF0b3InICYmIGZpZWxkLmZpZWxkVHlwZSAhPT0gJ2hlYWRpbmcnKSB7XG4gICAgICAgICAgICBjb25zdCB2YWxpZGF0b3JzQXJyYXk6IGFueSA9IFtdXG4gICAgICAgICAgICBpZiAoZmllbGQuaXNSZXF1aXJlZCkge1xuICAgICAgICAgICAgICB2YWxpZGF0b3JzQXJyYXkucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzd2l0Y2ggKGZpZWxkLmZpZWxkVHlwZSkge1xuICAgICAgICAgICAgICBjYXNlICdwaG9uZSBudW1iZXInOlxuICAgICAgICAgICAgICAgIHZhbGlkYXRvcnNBcnJheS5wdXNoKFZhbGlkYXRvcnMucGF0dGVybihNT0JJTEVfUEFUVEVSTikpXG4gICAgICAgICAgICAgICAgdmFsaWRhdG9yc0FycmF5LnB1c2goVmFsaWRhdG9ycy5taW5MZW5ndGgoMTApKVxuICAgICAgICAgICAgICAgIHZhbGlkYXRvcnNBcnJheS5wdXNoKFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEwKSlcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICBjYXNlICdlbWFpbCc6XG4gICAgICAgICAgICAgICAgdmFsaWRhdG9yc0FycmF5LnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKEVNQUlMX1BBVFRFUk4pKVxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgIGNhc2UgJ251bWVyaWMnOlxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHF1ZXN0aW9uR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgcXVlc3Rpb246IFtmaWVsZC5uYW1lXSxcbiAgICAgICAgICAgICAgcGFyZW50SWQ6IFtmaWVsZC5wYXJlbnRJZF0sXG4gICAgICAgICAgICAgIHF1ZXN0aW9uSW5kZXg6IFtxdWVzdGlvbnNBcnJheS5sZW5ndGhdLFxuICAgICAgICAgICAgICBmaWVsZFR5cGU6IFtmaWVsZC5maWVsZFR5cGVdLFxuICAgICAgICAgICAgICBhbnN3ZXI6IFsnJywgdmFsaWRhdG9yc0FycmF5XSxcbiAgICAgICAgICAgICAgaXNOQTogW2ZhbHNlXSxcbiAgICAgICAgICAgICAgcXVlc3Rpb25JZDogW2ZpZWxkLmlkXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGZpZWxkWydjb250cm9sSW5kZXgnXSA9IHF1ZXN0aW9uc0FycmF5Lmxlbmd0aFxuICAgICAgICAgICAgZmllbGRbJ3ZhbGlkYXRvcnNBcnJheSddID0gdmFsaWRhdG9yc0FycmF5XG4gICAgICAgICAgICBxdWVzdGlvbnNBcnJheS5wdXNoKHF1ZXN0aW9uR3JvdXApXG4gICAgICAgICAgICBpZiAodmFsaWRhdG9yc0FycmF5Lmxlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLnN1cnZleUZvcm1Jc1ZhbGlkID0gZmFsc2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZmllbGQucGFyZW50SWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2hpbGRGaWVsZHMucHVzaChmaWVsZClcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wYXJlbnRhbEZpZWxkcy5wdXNoKGZpZWxkKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgcXVlc3Rpb25zQXJyYXkoKTogRm9ybUFycmF5IHtcbiAgICBpZiAodGhpcy5zdXJ2ZXlGb3JtICYmIHRoaXMuc3VydmV5Rm9ybS5jb250cm9scy5maWVsZHMpIHtcbiAgICAgIHJldHVybiB0aGlzLnN1cnZleUZvcm0uY29udHJvbHMuZmllbGRzIGFzIEZvcm1BcnJheVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5mYi5hcnJheShbXSlcbiAgfVxuICAvLyNlbmRyZWdpb24gKGluaXRpYWxpemF0aW9uKVxuXG4gIC8vI3JlZ2lvbiAoVUkgSW50ZXJhY3Rpb25zKVxuICBnZXRDaGlsZFF1ZXN0aW9uc0Zvcm1BcnJheShzZWN0aW9uSWQ6IHN0cmluZyk6IEZvcm1BcnJheSB7XG4gICAgaWYgKHRoaXMuc3VydmV5Rm9ybSAmJiB0aGlzLnN1cnZleUZvcm0uY29udHJvbHMuZmllbGRzKSB7XG4gICAgICBjb25zdCBxdWVzdGlvbnNBcnJheSA9IHRoaXMucXVlc3Rpb25zQXJyYXlcbiAgICAgIGNvbnN0IGNoaWxkUXVlc3Rpb25zQXJyYXkgPSBxdWVzdGlvbnNBcnJheS5jb250cm9scy5maWx0ZXIoKHF1ZXN0aW9uOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHF1ZXN0aW9uLnZhbHVlICYmIHF1ZXN0aW9uLnZhbHVlLnBhcmVudElkID09PSBzZWN0aW9uSWRcbiAgICAgIH0pXG5cbiAgICAgIGlmIChjaGlsZFF1ZXN0aW9uc0FycmF5Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmIuYXJyYXkoY2hpbGRRdWVzdGlvbnNBcnJheSlcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZmIuYXJyYXkoW10pIGFzIEZvcm1BcnJheVxuICB9XG5cbiAgZ2V0Q2hpbGRGaWVsZHMoc2VjdGlvbklkOiBzdHJpbmcpIHtcbiAgICBsZXQgc2VjdGlvbkNoaWxkczogYW55ID0gW11cbiAgICBpZiAodGhpcy5jaGlsZEZpZWxkcykge1xuICAgICAgc2VjdGlvbkNoaWxkcyA9IHRoaXMuY2hpbGRGaWVsZHMuZmlsdGVyKChmaWVsZDogYW55KSA9PiBmaWVsZC5wYXJlbnRJZCA9PT0gc2VjdGlvbklkKVxuICAgIH1cbiAgICByZXR1cm4gc2VjdGlvbkNoaWxkc1xuICB9XG5cbiAgZ2V0UXVlc3Rpb25Db250cm9sKGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5xdWVzdGlvbnNBcnJheS5jb250cm9sc1tpbmRleF0pIHtcbiAgICAgIHJldHVybiB0aGlzLnF1ZXN0aW9uc0FycmF5LmNvbnRyb2xzW2luZGV4XVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5mYi5ncm91cCh7fSlcbiAgfVxuXG4gIGdldEVtYWlsRnJvbXN1cnZleSgpIHtcbiAgICBjb25zdCBhbnN3ZXJPYmogPSB0aGlzLmRhdGFPYmplY3QuZmluZCgoYTogYW55KSA9PiBhLnF1ZXN0aW9uICYmIGEucXVlc3Rpb24udG9Mb3dlckNhc2UoKSA9PT0gJ2VtYWlsJylcbiAgICByZXR1cm4gYW5zd2VyT2JqID8gYW5zd2VyT2JqLmFuc3dlciA6ICcnXG4gIH1cblxuICBzdWJtaXRGb3JtKCkge1xuICAgIGNvbnNvbGUubG9nKCdkYXRhT2JqZWN0JywgdGhpcy5kYXRhT2JqZWN0KVxuICAgIHRoaXMuc3VydmV5Rm9ybS5tYXJrQWxsQXNUb3VjaGVkKClcbiAgICB0aGlzLnN1cnZleUZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpXG4gICAgaWYgKHRoaXMuc3VydmV5Rm9ybUlzVmFsaWQpIHtcbiAgICAgIGNvbnN0IGZvcm1Cb2R5OiBhbnkgPSB7XG4gICAgICAgIGZvcm1JZDogdGhpcy5zdXJ2ZXlJZCxcbiAgICAgICAgdmVyc2lvbjogNCxcbiAgICAgICAgc3RhdHVzOiAnU1VCTUlUVEVEJyxcbiAgICAgICAgcmVzcG9uc2VzOiB0aGlzLmRhdGFPYmplY3QsXG4gICAgICAgIGNvbnRleHRJZDogXy5nZXQodGhpcy5kYXRhLCAnY291cnNlSWQnKSxcbiAgICAgICAgY29udGV4dFR5cGU6IF8uZ2V0KHRoaXMuZm9ybURldGFpbHMsICdjb250ZXh0VHlwZScsICcnKSxcbiAgICAgICAgY29udGV4dE5hbWU6IF8uZ2V0KHRoaXMuZGF0YSwgJ2NvdXJzZU5hbWUnLCAnJyksXG4gICAgICAgIGVtYWlsSWQ6IHRoaXMuZ2V0RW1haWxGcm9tc3VydmV5KCksXG4gICAgICAgIGNvbnRleHRPcmdJZDogXy5nZXQodGhpcy5kYXRhLCAnY29udGV4dE9yZ0lkJyksXG4gICAgICB9XG5cbiAgICAgIC8vIFJlbW92ZSBleGlzdGluZyBzdXJ2ZXkgZGF0YSBmcm9tIGxvY2FsIHN0b3JhZ2UgaWYgcHJlc2VudFxuICAgICAgY29uc3Qgc3RvcmFnZUtleSA9IGBzdXJ2ZXlfJHt0aGlzLnN1cnZleUlkfV8ke18uZ2V0KHRoaXMuZGF0YSwgJ2NvdXJzZUlkJyl9YFxuICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHN0b3JhZ2VLZXkpKSB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHN0b3JhZ2VLZXkpXG4gICAgICB9XG5cbiAgICAgIC8vIFN0b3JlIGZyZXNoIGRhdGFPYmplY3QgaW4gbG9jYWwgc3RvcmFnZVxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oc3RvcmFnZUtleSwgSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhT2JqZWN0KSlcblxuICAgICAgdGhpcy5hZGRMb2FkZXIgPSB0aGlzLmFkZExvYWRlciArIDFcbiAgICAgIHRoaXMuYXBwVG9jU3ZjLnN1Ym1pdEZvcm1QdWJsaWMoZm9ybUJvZHkpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy5hZGRMb2FkZXIgPSB0aGlzLmFkZExvYWRlciAtIDFcbiAgICAgICAgICBpZiAoXy5nZXQocmVzLCAncGFyYW1zLnN0YXR1cycpID09PSAnc3VjY2VzcycpIHtcbiAgICAgICAgICAgIHRoaXMub3BlblNuYWNrYmFyKCdGb3JtIGlzIHN1Ym1pdHRlZCBzdWNjZXNzZnVsbHknKVxuICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodHJ1ZSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vcGVuU25hY2tiYXIoXy5nZXQocmVzLCAnZXJyb3JNZXNzYWdlJywgJ1NvbWV0aGluZyB3ZW50IHdyb25nIHBsZWFzZSB0cnkgYWdhaW4nKSlcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5hZGRMb2FkZXIgPSB0aGlzLmFkZExvYWRlciAtIDFcbiAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMub3BlblNuYWNrYmFyKCdTb21ldGhpbmcgd2VudCB3cm9uZyBwbGVhc2UgdHJ5IGFnYWluJylcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgLy8jcmVnaW9uIChkYXRhIHByb2Nlc3NpbmcpXG4gIGdldCBkYXRhT2JqZWN0KCk6IGFueSB7XG4gICAgY29uc3QgZGF0YU9iamVjdDogYW55ID0gW11cbiAgICBjb25zdCBmaWVsZHMgPSBfLmdldCh0aGlzLnN1cnZleUZvcm0sICd2YWx1ZS5maWVsZHMnLCBbXSlcbiAgICBpZiAoZmllbGRzKSB7XG4gICAgICBmaWVsZHMuZm9yRWFjaCgoZmllbGQ6IGFueSkgPT4ge1xuICAgICAgICBsZXQgdmFsdWUgPSBmaWVsZC5pc05BID8gJ04vQScgOiBmaWVsZC5hbnN3ZXJcbiAgICAgICAgaWYgKCFmaWVsZC5pc05BICYmIGZpZWxkLmZpZWxkVHlwZSA9PT0gJ2RhdGUnICYmIHZhbHVlKSB7XG4gICAgICAgICAgY29uc3QgZm9ybWF0dGVkWWVhciA9IHZhbHVlLmdldEZ1bGxZZWFyKClcbiAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRNb250aCA9IFN0cmluZyh2YWx1ZS5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKVxuICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZERheSA9IFN0cmluZyh2YWx1ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJylcbiAgICAgICAgICB2YWx1ZSA9IGAke2Zvcm1hdHRlZFllYXJ9LSR7Zm9ybWF0dGVkTW9udGh9LSR7Zm9ybWF0dGVkRGF5fWBcbiAgICAgICAgfVxuICAgICAgICBkYXRhT2JqZWN0LnB1c2goe1xuICAgICAgICAgIHF1ZXN0aW9uSWQ6IGZpZWxkLnF1ZXN0aW9uSWQsXG4gICAgICAgICAgcXVlc3Rpb246IGZpZWxkLnF1ZXN0aW9uLFxuICAgICAgICAgIGFuc3dlcjogdmFsdWUsXG4gICAgICAgICAgYW5zd2VyVHlwZTogZmllbGQuZmllbGRUeXBlXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH1cbiAgICByZXR1cm4gZGF0YU9iamVjdFxuICB9XG5cbiAgY2xvc2VEaWFsb2coKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoZmFsc2UpXG4gIH1cbiAgLy8jZW5kcmVnaW9uIChkYXRhIHByb2Nlc3NpbmcpXG5cbiAgdXBkYXRlUXVlc3Rpb25WYWx1ZXMoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucXVlc3Rpb25zQXJyYXkudmFsdWVbZXZlbnQucXVlc3Rpb25JbmRleF0gPSBldmVudFxuICAgIHRoaXMudXBkYXRlU3VydmV5Rm9ybVZhbGlkaXR5KClcbiAgfVxuXG4gIHVwZGF0ZVN1cnZleUZvcm1WYWxpZGl0eSgpIHsgLy8gc29tZSB0aW1lcyByZWFjdGl2ZSBmb3JtcyBub3QgYWJhbGUgdG8gZGV0ZWN0IHZhbHVlIGNoYW5nZXMgYW5kIHZhbGlkaXR5IGluIGR5bmFtaWMgZm9ybUFycmF5XG4gICAgdGhpcy5zdXJ2ZXlGb3JtSXNWYWxpZCA9IHRydWVcbiAgICB0aGlzLnF1ZXN0aW9uc0FycmF5LmNvbnRyb2xzLmZvckVhY2goKGZvcm06IGFueSkgPT4ge1xuICAgICAgaWYgKCFmb3JtLmNvbnRyb2xzLmFuc3dlci52YWxpZCkge1xuICAgICAgICB0aGlzLnN1cnZleUZvcm1Jc1ZhbGlkID0gZmFsc2VcbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIC8vI2VuZHJlZ2lvbiAoVUkgSW50ZXJhY3Rpb25zKVxuXG4gIHByaXZhdGUgb3BlblNuYWNrYmFyKHByaW1hcnlNc2c6IHN0cmluZywgZHVyYXRpb246IG51bWJlciA9IDUwMDApIHtcbiAgICB0aGlzLnNuYWNrQmFyLm9wZW4ocHJpbWFyeU1zZywgJ1gnLCB7XG4gICAgICBkdXJhdGlvbixcbiAgICB9KVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicHJldmlldy1jb250YWluZXJcIj5cbiAgPGRpdiBjbGFzcz1cImZvcm0taGVhZGVyIGZsZXhcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTEganVzdGlmeS1zdGFydCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxkaXY+e3snYXBwdG9jLkFHS0Nhc2VTdHVkeVN1cnZleUZvcm0nIHwgdHJhbnNsYXRlfX0gPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY2xhc3M9XCJjbG9zZS1idXR0b25cIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJmYWxzZVwiPlxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY2xvc2UtaWNvblwiIGNvbG9yPVwid2FyblwiPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRlbnRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3VydmV5Rm9ybVwiPlxuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJzdXJ2ZXlGb3JtXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHBhcmVudEZpZWxkIG9mIHBhcmVudGFsRmllbGRzXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwicGFyZW50RmllbGQuZmllbGRUeXBlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaGVhZGluZydcIj5cbiAgICAgICAgICAgICAgPHdzLWFwcC1zdXJ2ZXktZm9ybS1zZWN0aW9uIFtjaGlsZEZpZWxkc109XCJnZXRDaGlsZEZpZWxkcyhwYXJlbnRGaWVsZC5zZWN0aW9uSWQpXCJcbiAgICAgICAgICAgICAgICBbc2VjdGlvbkZpZWxkXT1cInBhcmVudEZpZWxkXCJcbiAgICAgICAgICAgICAgICBbY2hpbGRRdWVzdGlvbnNGb3JtQXJyYXldPVwiZ2V0Q2hpbGRRdWVzdGlvbnNGb3JtQXJyYXkocGFyZW50RmllbGQuc2VjdGlvbklkKVwiXG4gICAgICAgICAgICAgICAgKHF1ZXN0aW9uVmFsdWVzKT1cInVwZGF0ZVF1ZXN0aW9uVmFsdWVzKCRldmVudClcIj48L3dzLWFwcC1zdXJ2ZXktZm9ybS1zZWN0aW9uPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc2VwYXJhdG9yJ1wiPlxuICAgICAgICAgICAgICA8aHIgY2xhc3M9XCJvcGFjaXR5LTUwIGVsbWVudC1zZXBhcmF0b3JcIj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgICA8d3MtYXBwLXN1cnZleS1mb3JtLXF1ZXN0aW9uIFtmaWVsZERldGFpbHNdPVwicGFyZW50RmllbGRcIlxuICAgICAgICAgICAgICAgIFtxdWVzdGlvbkZvcm1dPVwiZ2V0UXVlc3Rpb25Db250cm9sKHBhcmVudEZpZWxkLmNvbnRyb2xJbmRleClcIlxuICAgICAgICAgICAgICAgIChxdWVzdGlvblZhbHVlcyk9XCJ1cGRhdGVRdWVzdGlvblZhbHVlcygkZXZlbnQpXCI+PC93cy1hcHAtc3VydmV5LWZvcm0tcXVlc3Rpb24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktZW5kIG0tNFwiPlxuICAgICAgICAgIDwhLS0gPGJ1dHRvbiBtYXQtYnV0dG9uIGNsYXNzPVwiZG8tbGF0ZXItYnRuXCIgKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIj57eydhcHB0b2MuZG9JdExhdGVyJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+IC0tPlxuICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cInN1Ym1pdC1idG5cIiBbZGlzYWJsZWRdPVwiIXN1cnZleUZvcm1Jc1ZhbGlkIHx8IGZvclByZXZpZXdcIiAoY2xpY2spPVwic3VibWl0Rm9ybSgpXCI+e3snYXBwdG9jLnN1Ym1pdCdcbiAgICAgICAgICAgIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Zvcm0+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJhZGRMb2FkZXIgPiAwXCI+XG4gIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBteS0yIGxvYWRlciBmbGV4IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlclwiPlxuICAgIDxtYXQtc3Bpbm5lciBjbGFzcz1cImlubGluZS1ibG9ja1wiPjwvbWF0LXNwaW5uZXI+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19