@cuemath/leap 2.8.25-rj-5 → 2.8.26

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 (263) hide show
  1. package/dist/assets/lottie/lottie.js +61 -0
  2. package/dist/assets/lottie/lottie.js.map +1 -0
  3. package/dist/features/analytics-events/platform-events-student.js +5 -6
  4. package/dist/features/analytics-events/platform-events-student.js.map +1 -1
  5. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js +81 -79
  6. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js.map +1 -1
  7. package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js +16 -17
  8. package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js.map +1 -1
  9. package/dist/features/circle-games/game-launcher/game-launcher.js +61 -65
  10. package/dist/features/circle-games/game-launcher/game-launcher.js.map +1 -1
  11. package/dist/features/circle-games/games/web-view/web-view-types.js.map +1 -1
  12. package/dist/features/circle-games/leaderboard/comps/banner/banner.js +35 -53
  13. package/dist/features/circle-games/leaderboard/comps/banner/banner.js.map +1 -1
  14. package/dist/features/circle-games/leaderboard/leaderboard-styled.js +16 -20
  15. package/dist/features/circle-games/leaderboard/leaderboard-styled.js.map +1 -1
  16. package/dist/features/circle-games/leaderboard/leaderboard.js +77 -131
  17. package/dist/features/circle-games/leaderboard/leaderboard.js.map +1 -1
  18. package/dist/features/circle-games/sign-up/comp/circular-steps/circular-steps.js +40 -41
  19. package/dist/features/circle-games/sign-up/comp/circular-steps/circular-steps.js.map +1 -1
  20. package/dist/features/circle-games/sign-up/comp/spinner/spinner-styled.js +4 -8
  21. package/dist/features/circle-games/sign-up/comp/spinner/spinner-styled.js.map +1 -1
  22. package/dist/features/circle-games/sign-up/comp/spinner/spinner.js +6 -23
  23. package/dist/features/circle-games/sign-up/comp/spinner/spinner.js.map +1 -1
  24. package/dist/features/circle-games/sign-up/comp/splash-screen/splash-screen.js +40 -35
  25. package/dist/features/circle-games/sign-up/comp/splash-screen/splash-screen.js.map +1 -1
  26. package/dist/features/journey/journey-id/journey-id-student.js +1 -1
  27. package/dist/features/journey/journey-id/journey-id-student.js.map +1 -1
  28. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection.js +2 -2
  29. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/test-radio-card/test-card-lottie-animation.js +8 -23
  30. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/test-radio-card/test-card-lottie-animation.js.map +1 -1
  31. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/test-radio-card/test-radio-card.js +11 -11
  32. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/test-radio-card/test-radio-card.js.map +1 -1
  33. package/dist/features/milestone/milestone-tests/tests-creation/utils/index.js +37 -43
  34. package/dist/features/milestone/milestone-tests/tests-creation/utils/index.js.map +1 -1
  35. package/dist/features/post-game-stats/accuracy/accuracy.js +38 -34
  36. package/dist/features/post-game-stats/accuracy/accuracy.js.map +1 -1
  37. package/dist/features/post-game-stats/clock/clock.js +43 -39
  38. package/dist/features/post-game-stats/clock/clock.js.map +1 -1
  39. package/dist/features/post-game-stats/points/points.js +43 -44
  40. package/dist/features/post-game-stats/points/points.js.map +1 -1
  41. package/dist/features/post-game-stats/streak/streak.js +30 -28
  42. package/dist/features/post-game-stats/streak/streak.js.map +1 -1
  43. package/dist/features/trial-session/comps/av-panels/teacher-av-panel/teacher-av-panel.js +56 -54
  44. package/dist/features/trial-session/comps/av-panels/teacher-av-panel/teacher-av-panel.js.map +1 -1
  45. package/dist/features/trial-session/comps/parent-app/parent-app.js +25 -20
  46. package/dist/features/trial-session/comps/parent-app/parent-app.js.map +1 -1
  47. package/dist/features/trial-session/comps/school-goals/school-goals-view.js +4 -4
  48. package/dist/features/trial-session/comps/school-goals/school-goals-view.js.map +1 -1
  49. package/dist/features/trial-session/comps/session-insights/session-insights.js +40 -39
  50. package/dist/features/trial-session/comps/session-insights/session-insights.js.map +1 -1
  51. package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.js +38 -39
  52. package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.js.map +1 -1
  53. package/dist/features/trial-session/trial-session-types.js.map +1 -1
  54. package/dist/features/trial-session/trial-session-view.js +95 -81
  55. package/dist/features/trial-session/trial-session-view.js.map +1 -1
  56. package/dist/features/ui/loader/circular-loader/circular-loader.js +16 -20
  57. package/dist/features/ui/loader/circular-loader/circular-loader.js.map +1 -1
  58. package/dist/features/ui/lottie-animation/helper.js +13 -0
  59. package/dist/features/ui/lottie-animation/helper.js.map +1 -0
  60. package/dist/features/ui/lottie-animation/lottie-animation.js +37 -0
  61. package/dist/features/ui/lottie-animation/lottie-animation.js.map +1 -0
  62. package/dist/features/ui/nudge/nudge-styled.js +4 -8
  63. package/dist/features/ui/nudge/nudge-styled.js.map +1 -1
  64. package/dist/features/ui/nudge/nudge.js +13 -30
  65. package/dist/features/ui/nudge/nudge.js.map +1 -1
  66. package/dist/features/ui/perfect-hits/perfect-hits-helpers.js +22 -20
  67. package/dist/features/ui/perfect-hits/perfect-hits-helpers.js.map +1 -1
  68. package/dist/features/worksheet/constants/events.js +2 -1
  69. package/dist/features/worksheet/constants/events.js.map +1 -1
  70. package/dist/features/worksheet/worksheet/worksheet-permissions/error.js +25 -48
  71. package/dist/features/worksheet/worksheet/worksheet-permissions/error.js.map +1 -1
  72. package/dist/features/worksheet/worksheet/worksheet-question/header/validated-animation.js +12 -26
  73. package/dist/features/worksheet/worksheet/worksheet-question/header/validated-animation.js.map +1 -1
  74. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question-styled.js +4 -0
  75. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question-styled.js.map +1 -1
  76. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js +250 -219
  77. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js.map +1 -1
  78. package/dist/features/worksheet/worksheet/worksheet.js +33 -32
  79. package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
  80. package/dist/index.d.ts +62 -17
  81. package/dist/index.js +313 -313
  82. package/dist/static/accuracy-meter.99585cba.json +4218 -0
  83. package/dist/static/accuracy-needle.cd6e63ac.json +618 -0
  84. package/dist/static/beginner1x.489908a7.json +3508 -0
  85. package/dist/static/bronze-1.da4e4b5f.json +4176 -0
  86. package/dist/static/bronze-2.97f9c639.json +4433 -0
  87. package/dist/static/bronze-3.6a433ebd.json +4786 -0
  88. package/dist/static/circular-loader.a5a1a0a6.json +238 -0
  89. package/dist/static/clock-30min.eae818b8.json +1197 -0
  90. package/dist/static/clock-45min.df8adf51.json +1197 -0
  91. package/dist/static/clock-60min.2b48d875.json +1197 -0
  92. package/dist/static/clock-90min.3e557ed7.json +1407 -0
  93. package/dist/static/color-1.45101b9a.json +4545 -0
  94. package/dist/static/color-2.ccdc7d0a.json +4828 -0
  95. package/dist/static/color-3.5e8e1422.json +5273 -0
  96. package/dist/static/difficult.6846c064.json +2755 -0
  97. package/dist/static/easy-rescheduling-lottie.28026af9.json +9301 -0
  98. package/dist/static/easy.68242ddd.json +2658 -0
  99. package/dist/static/elite-circle.3df58972.json +6876 -0
  100. package/dist/static/error-lottie.b3507a4b.json +5255 -0
  101. package/dist/static/familiar1x.7c9c7f15.json +3046 -0
  102. package/dist/static/fifteen-min-clock.0af4e303.json +715 -0
  103. package/dist/static/five-min-clock.6be5cc41.json +721 -0
  104. package/dist/static/gold-1.ab2489fe.json +4176 -0
  105. package/dist/static/gold-2.34045826.json +4441 -0
  106. package/dist/static/gold-3.d704698b.json +4810 -0
  107. package/dist/static/levelup-rings.b1055283.json +549 -0
  108. package/dist/static/medium.94c3829b.json +2289 -0
  109. package/dist/static/nudge-tap.5cb30093.json +1057 -0
  110. package/dist/static/point1.b53831de.json +2942 -0
  111. package/dist/static/point10.7b5e536d.json +3179 -0
  112. package/dist/static/point100.1df16f82.json +3196 -0
  113. package/dist/static/point15.fea00c32.json +3179 -0
  114. package/dist/static/point20.c88d776d.json +3178 -0
  115. package/dist/static/point25.a18c346a.json +3178 -0
  116. package/dist/static/point30.c5224b0b.json +3202 -0
  117. package/dist/static/point35.fad343dd.json +3058 -0
  118. package/dist/static/point40.10a16f72.json +3082 -0
  119. package/dist/static/point45.2ad7561f.json +3082 -0
  120. package/dist/static/point5.da40ed1f.json +2948 -0
  121. package/dist/static/point50.5718cb3d.json +3046 -0
  122. package/dist/static/point60.17380d9f.json +3076 -0
  123. package/dist/static/proficient1x.fa6e7b80.json +3430 -0
  124. package/dist/static/silver-1.0396328a.json +4168 -0
  125. package/dist/static/silver-2.bf50615f.json +4433 -0
  126. package/dist/static/silver-3.13d66b84.json +4810 -0
  127. package/dist/static/sleepy-boi.031a1165.json +1008 -0
  128. package/dist/static/spinner-white.639e0d87.json +122 -0
  129. package/dist/static/splash-screen.bbf567ce.json +2411 -0
  130. package/dist/static/stay-connected-lottie.111439b3.json +3547 -0
  131. package/dist/static/teacher-validation.7577ecdc.json +245 -0
  132. package/dist/static/total-streak.d5ce7669.json +842 -0
  133. package/dist/static/total-time-spent.434005d3.json +200 -0
  134. package/dist/static/total-time.d979cbb9.json +24383 -0
  135. package/dist/static/tournament-ripple.e5c239a5.json +1047 -0
  136. package/dist/static/track-progress-lottie.422108cf.json +2972 -0
  137. package/package.json +1 -1
  138. package/dist/assets/lotties/circle/100pts.json.js +0 -7957
  139. package/dist/assets/lotties/circle/100pts.json.js.map +0 -1
  140. package/dist/assets/lotties/circle/10pts.json.js +0 -7753
  141. package/dist/assets/lotties/circle/10pts.json.js.map +0 -1
  142. package/dist/assets/lotties/circle/15pts.json.js +0 -7879
  143. package/dist/assets/lotties/circle/15pts.json.js.map +0 -1
  144. package/dist/assets/lotties/circle/1pts.json.js +0 -7257
  145. package/dist/assets/lotties/circle/1pts.json.js.map +0 -1
  146. package/dist/assets/lotties/circle/20pts.json.js +0 -7845
  147. package/dist/assets/lotties/circle/20pts.json.js.map +0 -1
  148. package/dist/assets/lotties/circle/25pts.json.js +0 -7971
  149. package/dist/assets/lotties/circle/25pts.json.js.map +0 -1
  150. package/dist/assets/lotties/circle/30pts.json.js +0 -7941
  151. package/dist/assets/lotties/circle/30pts.json.js.map +0 -1
  152. package/dist/assets/lotties/circle/35pts.json.js +0 -7881
  153. package/dist/assets/lotties/circle/35pts.json.js.map +0 -1
  154. package/dist/assets/lotties/circle/40pts.json.js +0 -7725
  155. package/dist/assets/lotties/circle/40pts.json.js.map +0 -1
  156. package/dist/assets/lotties/circle/45pts.json.js +0 -7851
  157. package/dist/assets/lotties/circle/45pts.json.js.map +0 -1
  158. package/dist/assets/lotties/circle/50pts.json.js +0 -7707
  159. package/dist/assets/lotties/circle/50pts.json.js.map +0 -1
  160. package/dist/assets/lotties/circle/5pts.json.js +0 -7420
  161. package/dist/assets/lotties/circle/5pts.json.js.map +0 -1
  162. package/dist/assets/lotties/circle/60pts.json.js +0 -7701
  163. package/dist/assets/lotties/circle/60pts.json.js.map +0 -1
  164. package/dist/assets/lotties/circle/accuracy-meter-lottie.json.js +0 -6811
  165. package/dist/assets/lotties/circle/accuracy-meter-lottie.json.js.map +0 -1
  166. package/dist/assets/lotties/circle/accuracy-needle-lottie.json.js +0 -1503
  167. package/dist/assets/lotties/circle/accuracy-needle-lottie.json.js.map +0 -1
  168. package/dist/assets/lotties/circle/circular-loader.json.js +0 -635
  169. package/dist/assets/lotties/circle/circular-loader.json.js.map +0 -1
  170. package/dist/assets/lotties/circle/elite-circle-lottie.json.js +0 -12079
  171. package/dist/assets/lotties/circle/elite-circle-lottie.json.js.map +0 -1
  172. package/dist/assets/lotties/circle/levelup-rings-lottie.json.js +0 -1412
  173. package/dist/assets/lotties/circle/levelup-rings-lottie.json.js.map +0 -1
  174. package/dist/assets/lotties/circle/sleepy-boi-lottie.json.js +0 -2632
  175. package/dist/assets/lotties/circle/sleepy-boi-lottie.json.js.map +0 -1
  176. package/dist/assets/lotties/circle/spinner-white.json.js +0 -316
  177. package/dist/assets/lotties/circle/spinner-white.json.js.map +0 -1
  178. package/dist/assets/lotties/circle/splash-screen.json.js +0 -5864
  179. package/dist/assets/lotties/circle/splash-screen.json.js.map +0 -1
  180. package/dist/assets/lotties/circle/total-streak-lottie.json.js +0 -2103
  181. package/dist/assets/lotties/circle/total-streak-lottie.json.js.map +0 -1
  182. package/dist/assets/lotties/circle/total-time-lottie.json.js +0 -33016
  183. package/dist/assets/lotties/circle/total-time-lottie.json.js.map +0 -1
  184. package/dist/assets/lotties/circle/total-time-spent-lottie.json.js +0 -260
  185. package/dist/assets/lotties/circle/total-time-spent-lottie.json.js.map +0 -1
  186. package/dist/assets/lotties/circle/tournament-ripple-lottie.json.js +0 -1563
  187. package/dist/assets/lotties/circle/tournament-ripple-lottie.json.js.map +0 -1
  188. package/dist/assets/lotties/common/nudge-tap.json.js +0 -3597
  189. package/dist/assets/lotties/common/nudge-tap.json.js.map +0 -1
  190. package/dist/assets/lotties/error-lottie.json.js +0 -12755
  191. package/dist/assets/lotties/error-lottie.json.js.map +0 -1
  192. package/dist/assets/lotties/perfect-hits/bronze-1.json.js +0 -10871
  193. package/dist/assets/lotties/perfect-hits/bronze-1.json.js.map +0 -1
  194. package/dist/assets/lotties/perfect-hits/bronze-2.json.js +0 -11389
  195. package/dist/assets/lotties/perfect-hits/bronze-2.json.js.map +0 -1
  196. package/dist/assets/lotties/perfect-hits/bronze-3.json.js +0 -12169
  197. package/dist/assets/lotties/perfect-hits/bronze-3.json.js.map +0 -1
  198. package/dist/assets/lotties/perfect-hits/color-1.json.js +0 -12348
  199. package/dist/assets/lotties/perfect-hits/color-1.json.js.map +0 -1
  200. package/dist/assets/lotties/perfect-hits/color-2.json.js +0 -12941
  201. package/dist/assets/lotties/perfect-hits/color-2.json.js.map +0 -1
  202. package/dist/assets/lotties/perfect-hits/color-3.json.js +0 -14034
  203. package/dist/assets/lotties/perfect-hits/color-3.json.js.map +0 -1
  204. package/dist/assets/lotties/perfect-hits/gold-1.json.js +0 -10871
  205. package/dist/assets/lotties/perfect-hits/gold-1.json.js.map +0 -1
  206. package/dist/assets/lotties/perfect-hits/gold-2.json.js +0 -11389
  207. package/dist/assets/lotties/perfect-hits/gold-2.json.js.map +0 -1
  208. package/dist/assets/lotties/perfect-hits/gold-3.json.js +0 -12169
  209. package/dist/assets/lotties/perfect-hits/gold-3.json.js.map +0 -1
  210. package/dist/assets/lotties/perfect-hits/silver-1.json.js +0 -10871
  211. package/dist/assets/lotties/perfect-hits/silver-1.json.js.map +0 -1
  212. package/dist/assets/lotties/perfect-hits/silver-2.json.js +0 -11389
  213. package/dist/assets/lotties/perfect-hits/silver-2.json.js.map +0 -1
  214. package/dist/assets/lotties/perfect-hits/silver-3.json.js +0 -12169
  215. package/dist/assets/lotties/perfect-hits/silver-3.json.js.map +0 -1
  216. package/dist/assets/lotties/teacher-validation.json.js +0 -649
  217. package/dist/assets/lotties/teacher-validation.json.js.map +0 -1
  218. package/dist/assets/lotties/tests-creation/clock_30_min.json.js +0 -2857
  219. package/dist/assets/lotties/tests-creation/clock_30_min.json.js.map +0 -1
  220. package/dist/assets/lotties/tests-creation/clock_45_min.json.js +0 -2857
  221. package/dist/assets/lotties/tests-creation/clock_45_min.json.js.map +0 -1
  222. package/dist/assets/lotties/tests-creation/clock_60_min.json.js +0 -2857
  223. package/dist/assets/lotties/tests-creation/clock_60_min.json.js.map +0 -1
  224. package/dist/assets/lotties/tests-creation/clock_90_min.json.js +0 -3345
  225. package/dist/assets/lotties/tests-creation/clock_90_min.json.js.map +0 -1
  226. package/dist/assets/lotties/tests-creation/difficult.json.js +0 -6713
  227. package/dist/assets/lotties/tests-creation/difficult.json.js.map +0 -1
  228. package/dist/assets/lotties/tests-creation/easy.json.js +0 -6525
  229. package/dist/assets/lotties/tests-creation/easy.json.js.map +0 -1
  230. package/dist/assets/lotties/tests-creation/medium.json.js +0 -5603
  231. package/dist/assets/lotties/tests-creation/medium.json.js.map +0 -1
  232. package/dist/assets/lotties/trial-v3/15min-clock.json.js +0 -2037
  233. package/dist/assets/lotties/trial-v3/15min-clock.json.js.map +0 -1
  234. package/dist/assets/lotties/trial-v3/5min-clock.json.js +0 -2062
  235. package/dist/assets/lotties/trial-v3/5min-clock.json.js.map +0 -1
  236. package/dist/assets/lotties/trial-v3/insight/beginner1x.json.js +0 -8517
  237. package/dist/assets/lotties/trial-v3/insight/beginner1x.json.js.map +0 -1
  238. package/dist/assets/lotties/trial-v3/insight/familiar1x.json.js +0 -7396
  239. package/dist/assets/lotties/trial-v3/insight/familiar1x.json.js.map +0 -1
  240. package/dist/assets/lotties/trial-v3/insight/proficient1x.json.js +0 -8559
  241. package/dist/assets/lotties/trial-v3/insight/proficient1x.json.js.map +0 -1
  242. package/dist/assets/lotties/trial-v3/parent-app/easy-rescheduling-lottie.json.js +0 -23284
  243. package/dist/assets/lotties/trial-v3/parent-app/easy-rescheduling-lottie.json.js.map +0 -1
  244. package/dist/assets/lotties/trial-v3/parent-app/stay-connected-lottie.json.js +0 -9090
  245. package/dist/assets/lotties/trial-v3/parent-app/stay-connected-lottie.json.js.map +0 -1
  246. package/dist/assets/lotties/trial-v3/parent-app/track-progress-lottie.json.js +0 -8675
  247. package/dist/assets/lotties/trial-v3/parent-app/track-progress-lottie.json.js.map +0 -1
  248. package/dist/features/circle-games/enum/circle-action-ids.js +0 -5
  249. package/dist/features/circle-games/enum/circle-action-ids.js.map +0 -1
  250. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/fetch-lottie.js +0 -13
  251. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/fetch-lottie.js.map +0 -1
  252. package/dist/features/circle-games/game-launcher/game-launcher-styled.js +0 -10
  253. package/dist/features/circle-games/game-launcher/game-launcher-styled.js.map +0 -1
  254. package/dist/features/circle-games/leaderboard/comps/info-bar/info-bar-styled.js +0 -12
  255. package/dist/features/circle-games/leaderboard/comps/info-bar/info-bar-styled.js.map +0 -1
  256. package/dist/features/circle-games/leaderboard/comps/info-bar/info-bar.js +0 -30
  257. package/dist/features/circle-games/leaderboard/comps/info-bar/info-bar.js.map +0 -1
  258. package/dist/features/post-game-stats/points/points-styled.js +0 -10
  259. package/dist/features/post-game-stats/points/points-styled.js.map +0 -1
  260. package/dist/features/trial-session/comps/render-lottie/index.js +0 -26
  261. package/dist/features/trial-session/comps/render-lottie/index.js.map +0 -1
  262. package/dist/features/ui/loader/circular-loader/circular-loader-styled.js +0 -17
  263. package/dist/features/ui/loader/circular-loader/circular-loader-styled.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"color-1.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}