wrong-notebook 2026.10.22-2 → 2026.10.22-3

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 (587) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +8 -8
  3. package/.next/prerender-manifest.json +4 -4
  4. package/.next/server/app/_global-error/page/build-manifest.json +5 -5
  5. package/.next/server/app/_global-error/page.js +2 -2
  6. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  7. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/_global-error.html +1 -1
  9. package/.next/server/app/_global-error.rsc +8 -8
  10. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +7 -7
  11. package/.next/server/app/_global-error.segments/_full.segment.rsc +8 -8
  12. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/server/app/_not-found/page/build-manifest.json +5 -5
  14. package/.next/server/app/_not-found/page.js +2 -2
  15. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  16. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/.next/server/app/admin/page/build-manifest.json +5 -5
  18. package/.next/server/app/admin/page.js +2 -2
  19. package/.next/server/app/admin/page.js.nft.json +1 -1
  20. package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  21. package/.next/server/app/admin/user/[id]/page/build-manifest.json +5 -5
  22. package/.next/server/app/admin/user/[id]/page.js +2 -2
  23. package/.next/server/app/admin/user/[id]/page.js.nft.json +1 -1
  24. package/.next/server/app/admin/user/[id]/page_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/admin/dashboard/route.js +2 -2
  26. package/.next/server/app/api/admin/dashboard/route.js.nft.json +1 -1
  27. package/.next/server/app/api/admin/migrate-tags/route.js +2 -2
  28. package/.next/server/app/api/admin/migrate-tags/route.js.nft.json +1 -1
  29. package/.next/server/app/api/admin/system-reset/route.js +2 -2
  30. package/.next/server/app/api/admin/system-reset/route.js.nft.json +1 -1
  31. package/.next/server/app/api/admin/users/[id]/detail/route.js +2 -2
  32. package/.next/server/app/api/admin/users/[id]/detail/route.js.nft.json +1 -1
  33. package/.next/server/app/api/admin/users/[id]/route.js +2 -2
  34. package/.next/server/app/api/admin/users/[id]/route.js.nft.json +1 -1
  35. package/.next/server/app/api/admin/users/route.js +2 -2
  36. package/.next/server/app/api/admin/users/route.js.nft.json +1 -1
  37. package/.next/server/app/api/ai/models/route.js +2 -2
  38. package/.next/server/app/api/ai/models/route.js.nft.json +1 -1
  39. package/.next/server/app/api/ai/test/route.js +2 -2
  40. package/.next/server/app/api/ai/test/route.js.nft.json +1 -1
  41. package/.next/server/app/api/analytics/route.js +2 -2
  42. package/.next/server/app/api/analytics/route.js.nft.json +1 -1
  43. package/.next/server/app/api/analyze/route.js +2 -2
  44. package/.next/server/app/api/analyze/route.js.nft.json +1 -1
  45. package/.next/server/app/api/auth/[...nextauth]/route.js +2 -2
  46. package/.next/server/app/api/auth/[...nextauth]/route.js.nft.json +1 -1
  47. package/.next/server/app/api/error-items/[id]/delete/route.js +2 -2
  48. package/.next/server/app/api/error-items/[id]/delete/route.js.nft.json +1 -1
  49. package/.next/server/app/api/error-items/[id]/figure/route.js +2 -2
  50. package/.next/server/app/api/error-items/[id]/figure/route.js.nft.json +1 -1
  51. package/.next/server/app/api/error-items/[id]/fix-latex/route.js +2 -2
  52. package/.next/server/app/api/error-items/[id]/fix-latex/route.js.nft.json +1 -1
  53. package/.next/server/app/api/error-items/[id]/geogebra/route.js.nft.json +1 -1
  54. package/.next/server/app/api/error-items/[id]/image/route.js +2 -2
  55. package/.next/server/app/api/error-items/[id]/image/route.js.nft.json +1 -1
  56. package/.next/server/app/api/error-items/[id]/mastery/route.js +2 -2
  57. package/.next/server/app/api/error-items/[id]/mastery/route.js.nft.json +1 -1
  58. package/.next/server/app/api/error-items/[id]/notes/route.js +2 -2
  59. package/.next/server/app/api/error-items/[id]/notes/route.js.nft.json +1 -1
  60. package/.next/server/app/api/error-items/[id]/practice-records/route.js +2 -2
  61. package/.next/server/app/api/error-items/[id]/practice-records/route.js.nft.json +1 -1
  62. package/.next/server/app/api/error-items/[id]/reanswer/route.js +2 -2
  63. package/.next/server/app/api/error-items/[id]/reanswer/route.js.nft.json +1 -1
  64. package/.next/server/app/api/error-items/[id]/retag/route.js +2 -2
  65. package/.next/server/app/api/error-items/[id]/retag/route.js.nft.json +1 -1
  66. package/.next/server/app/api/error-items/[id]/route.js.nft.json +1 -1
  67. package/.next/server/app/api/error-items/[id]/svg-animation/route.js +2 -2
  68. package/.next/server/app/api/error-items/[id]/svg-animation/route.js.nft.json +1 -1
  69. package/.next/server/app/api/error-items/batch-delete/route.js +2 -2
  70. package/.next/server/app/api/error-items/batch-delete/route.js.nft.json +1 -1
  71. package/.next/server/app/api/error-items/clear/route.js +2 -2
  72. package/.next/server/app/api/error-items/clear/route.js.nft.json +1 -1
  73. package/.next/server/app/api/error-items/list/route.js +2 -2
  74. package/.next/server/app/api/error-items/list/route.js.nft.json +1 -1
  75. package/.next/server/app/api/error-items/route.js +2 -2
  76. package/.next/server/app/api/error-items/route.js.nft.json +1 -1
  77. package/.next/server/app/api/error-items/short/[shortId]/route.js +2 -2
  78. package/.next/server/app/api/error-items/short/[shortId]/route.js.nft.json +1 -1
  79. package/.next/server/app/api/error-items/similarity/route.js +2 -2
  80. package/.next/server/app/api/error-items/similarity/route.js.nft.json +1 -1
  81. package/.next/server/app/api/exams/[id]/questions/[questionId]/regenerate/route.js +2 -2
  82. package/.next/server/app/api/exams/[id]/questions/[questionId]/regenerate/route.js.nft.json +1 -1
  83. package/.next/server/app/api/exams/[id]/results/route.js +4 -4
  84. package/.next/server/app/api/exams/[id]/results/route.js.nft.json +1 -1
  85. package/.next/server/app/api/exams/[id]/retry/route.js +2 -2
  86. package/.next/server/app/api/exams/[id]/retry/route.js.nft.json +1 -1
  87. package/.next/server/app/api/exams/[id]/route.js.nft.json +1 -1
  88. package/.next/server/app/api/exams/route.js +2 -2
  89. package/.next/server/app/api/exams/route.js.nft.json +1 -1
  90. package/.next/server/app/api/export/route.js +2 -2
  91. package/.next/server/app/api/export/route.js.nft.json +1 -1
  92. package/.next/server/app/api/geogebra-analyze/route.js +2 -2
  93. package/.next/server/app/api/geogebra-analyze/route.js.nft.json +1 -1
  94. package/.next/server/app/api/health/route.js +2 -2
  95. package/.next/server/app/api/health/route.js.nft.json +1 -1
  96. package/.next/server/app/api/import/route.js +2 -2
  97. package/.next/server/app/api/import/route.js.nft.json +1 -1
  98. package/.next/server/app/api/logs/frontend/route.js +2 -2
  99. package/.next/server/app/api/logs/frontend/route.js.nft.json +1 -1
  100. package/.next/server/app/api/notebooks/[id]/retag/route.js +2 -2
  101. package/.next/server/app/api/notebooks/[id]/retag/route.js.nft.json +1 -1
  102. package/.next/server/app/api/notebooks/[id]/route.js +2 -2
  103. package/.next/server/app/api/notebooks/[id]/route.js.nft.json +1 -1
  104. package/.next/server/app/api/notebooks/route.js +2 -2
  105. package/.next/server/app/api/notebooks/route.js.nft.json +1 -1
  106. package/.next/server/app/api/openclaw/batch-upload/route.js +2 -2
  107. package/.next/server/app/api/openclaw/batch-upload/route.js.nft.json +1 -1
  108. package/.next/server/app/api/practice/generate/route.js +2 -2
  109. package/.next/server/app/api/practice/generate/route.js.nft.json +1 -1
  110. package/.next/server/app/api/practice/record/[id]/route.js +2 -2
  111. package/.next/server/app/api/practice/record/[id]/route.js.nft.json +1 -1
  112. package/.next/server/app/api/practice/record/route.js +2 -2
  113. package/.next/server/app/api/practice/record/route.js.nft.json +1 -1
  114. package/.next/server/app/api/reanswer/route.js +2 -2
  115. package/.next/server/app/api/reanswer/route.js.nft.json +1 -1
  116. package/.next/server/app/api/register/route.js.nft.json +1 -1
  117. package/.next/server/app/api/register/status/route.js +2 -2
  118. package/.next/server/app/api/register/status/route.js.nft.json +1 -1
  119. package/.next/server/app/api/settings/route.js +2 -2
  120. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  121. package/.next/server/app/api/stats/practice/clear/route.js +2 -2
  122. package/.next/server/app/api/stats/practice/clear/route.js.nft.json +1 -1
  123. package/.next/server/app/api/stats/practice/route.js +2 -2
  124. package/.next/server/app/api/stats/practice/route.js.nft.json +1 -1
  125. package/.next/server/app/api/tags/route.js +2 -2
  126. package/.next/server/app/api/tags/route.js.nft.json +1 -1
  127. package/.next/server/app/api/tags/stats/route.js +2 -2
  128. package/.next/server/app/api/tags/stats/route.js.nft.json +1 -1
  129. package/.next/server/app/api/tags/suggestions/route.js +2 -2
  130. package/.next/server/app/api/tags/suggestions/route.js.nft.json +1 -1
  131. package/.next/server/app/api/tasks/route.js +2 -2
  132. package/.next/server/app/api/tasks/route.js.nft.json +1 -1
  133. package/.next/server/app/api/user/route.js +2 -2
  134. package/.next/server/app/api/user/route.js.nft.json +1 -1
  135. package/.next/server/app/api/version/route.js +2 -2
  136. package/.next/server/app/api/version/route.js.nft.json +1 -1
  137. package/.next/server/app/error-items/[id]/page/build-manifest.json +5 -5
  138. package/.next/server/app/error-items/[id]/page.js +2 -2
  139. package/.next/server/app/error-items/[id]/page.js.nft.json +1 -1
  140. package/.next/server/app/error-items/[id]/page_client-reference-manifest.js +1 -1
  141. package/.next/server/app/exams/[id]/page/build-manifest.json +5 -5
  142. package/.next/server/app/exams/[id]/page.js +2 -2
  143. package/.next/server/app/exams/[id]/page.js.nft.json +1 -1
  144. package/.next/server/app/exams/[id]/page_client-reference-manifest.js +1 -1
  145. package/.next/server/app/exams/[id]/print/page/build-manifest.json +5 -5
  146. package/.next/server/app/exams/[id]/print/page.js +2 -2
  147. package/.next/server/app/exams/[id]/print/page.js.nft.json +1 -1
  148. package/.next/server/app/exams/[id]/print/page_client-reference-manifest.js +1 -1
  149. package/.next/server/app/exams/page/build-manifest.json +5 -5
  150. package/.next/server/app/exams/page.js +2 -2
  151. package/.next/server/app/exams/page.js.nft.json +1 -1
  152. package/.next/server/app/exams/page_client-reference-manifest.js +1 -1
  153. package/.next/server/app/favicon.ico/route.js +2 -2
  154. package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  155. package/.next/server/app/latex-test/page/build-manifest.json +5 -5
  156. package/.next/server/app/latex-test/page.js +2 -2
  157. package/.next/server/app/latex-test/page.js.nft.json +1 -1
  158. package/.next/server/app/latex-test/page_client-reference-manifest.js +1 -1
  159. package/.next/server/app/login/page/build-manifest.json +5 -5
  160. package/.next/server/app/login/page.js +2 -2
  161. package/.next/server/app/login/page.js.nft.json +1 -1
  162. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  163. package/.next/server/app/manifest.webmanifest/route.js +2 -2
  164. package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  165. package/.next/server/app/manifest.webmanifest.body +1 -1
  166. package/.next/server/app/notebooks/[id]/add/page/build-manifest.json +5 -5
  167. package/.next/server/app/notebooks/[id]/add/page.js +2 -2
  168. package/.next/server/app/notebooks/[id]/add/page.js.nft.json +1 -1
  169. package/.next/server/app/notebooks/[id]/add/page_client-reference-manifest.js +1 -1
  170. package/.next/server/app/notebooks/[id]/page/build-manifest.json +5 -5
  171. package/.next/server/app/notebooks/[id]/page.js +2 -2
  172. package/.next/server/app/notebooks/[id]/page.js.nft.json +1 -1
  173. package/.next/server/app/notebooks/[id]/page_client-reference-manifest.js +1 -1
  174. package/.next/server/app/notebooks/page/build-manifest.json +5 -5
  175. package/.next/server/app/notebooks/page.js +2 -2
  176. package/.next/server/app/notebooks/page.js.nft.json +1 -1
  177. package/.next/server/app/notebooks/page_client-reference-manifest.js +1 -1
  178. package/.next/server/app/page/build-manifest.json +5 -5
  179. package/.next/server/app/page.js +2 -2
  180. package/.next/server/app/page.js.nft.json +1 -1
  181. package/.next/server/app/page_client-reference-manifest.js +1 -1
  182. package/.next/server/app/practice/page/build-manifest.json +5 -5
  183. package/.next/server/app/practice/page.js +2 -2
  184. package/.next/server/app/practice/page.js.nft.json +1 -1
  185. package/.next/server/app/practice/page_client-reference-manifest.js +1 -1
  186. package/.next/server/app/print-preview/page/build-manifest.json +5 -5
  187. package/.next/server/app/print-preview/page.js +2 -2
  188. package/.next/server/app/print-preview/page.js.nft.json +1 -1
  189. package/.next/server/app/print-preview/page_client-reference-manifest.js +1 -1
  190. package/.next/server/app/register/page/build-manifest.json +5 -5
  191. package/.next/server/app/register/page.js.nft.json +1 -1
  192. package/.next/server/app/register/page_client-reference-manifest.js +1 -1
  193. package/.next/server/app/stats/page/build-manifest.json +5 -5
  194. package/.next/server/app/stats/page.js +2 -2
  195. package/.next/server/app/stats/page.js.nft.json +1 -1
  196. package/.next/server/app/stats/page_client-reference-manifest.js +1 -1
  197. package/.next/server/app/tags/page/build-manifest.json +5 -5
  198. package/.next/server/app/tags/page.js +2 -2
  199. package/.next/server/app/tags/page.js.nft.json +1 -1
  200. package/.next/server/app/tags/page_client-reference-manifest.js +1 -1
  201. package/.next/server/chunks/1jng_app_api_exams_[id]_questions_[questionId]_regenerate_route_actions_1ggead3.js +1 -1
  202. package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_practice-records_route_actions_0z2zuf1.js +1 -1
  203. package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_svg-animation_route_actions_17gckf3.js +1 -1
  204. package/.next/server/chunks/[externals]__04n7qbr._.js +1 -1
  205. package/.next/server/chunks/[externals]__0pot68n._.js +1 -1
  206. package/.next/server/chunks/[externals]__1735khz._.js +1 -1
  207. package/.next/server/chunks/[externals]_assert_1pwe1ri._.js +1 -1
  208. package/.next/server/chunks/[root-of-the-server]__00_hq9v._.js +6 -6
  209. package/.next/server/chunks/[root-of-the-server]__01bzczj._.js +1 -1
  210. package/.next/server/chunks/[root-of-the-server]__02j1w81._.js +1 -1
  211. package/.next/server/chunks/[root-of-the-server]__03nfvnm._.js +1 -1
  212. package/.next/server/chunks/[root-of-the-server]__04tyyvs._.js +1 -1
  213. package/.next/server/chunks/[root-of-the-server]__05s4wut._.js +1 -1
  214. package/.next/server/chunks/[root-of-the-server]__06_nln5._.js +1 -1
  215. package/.next/server/chunks/[root-of-the-server]__06h5afw._.js +1 -1
  216. package/.next/server/chunks/[root-of-the-server]__07jl92a._.js +1 -1
  217. package/.next/server/chunks/[root-of-the-server]__0_t7bbz._.js +1 -1
  218. package/.next/server/chunks/[root-of-the-server]__0akadps._.js +1 -1
  219. package/.next/server/chunks/[root-of-the-server]__0be5c5r._.js +1 -1
  220. package/.next/server/chunks/[root-of-the-server]__0bqawi0._.js +1 -1
  221. package/.next/server/chunks/[root-of-the-server]__0bsw5c9._.js +1 -1
  222. package/.next/server/chunks/[root-of-the-server]__0c59gc3._.js +1 -1
  223. package/.next/server/chunks/[root-of-the-server]__0cmxmwt._.js +1 -1
  224. package/.next/server/chunks/[root-of-the-server]__0d5dpu4._.js +1 -1
  225. package/.next/server/chunks/[root-of-the-server]__0d9ijed._.js +1 -1
  226. package/.next/server/chunks/[root-of-the-server]__0e22a4y._.js +10 -10
  227. package/.next/server/chunks/[root-of-the-server]__0fnyu4s._.js +1 -1
  228. package/.next/server/chunks/[root-of-the-server]__0gp88gz._.js +1 -1
  229. package/.next/server/chunks/[root-of-the-server]__0inxsnu._.js +1 -1
  230. package/.next/server/chunks/[root-of-the-server]__0j5231l._.js +1 -1
  231. package/.next/server/chunks/[root-of-the-server]__0jaawra._.js +1 -1
  232. package/.next/server/chunks/[root-of-the-server]__0k-nf6a._.js +1 -1
  233. package/.next/server/chunks/[root-of-the-server]__0k-p1pj._.js +1 -1
  234. package/.next/server/chunks/[root-of-the-server]__0lrdm1u._.js +1 -1
  235. package/.next/server/chunks/[root-of-the-server]__0lro5a7._.js +1 -1
  236. package/.next/server/chunks/[root-of-the-server]__0m8p-6f._.js +1 -1
  237. package/.next/server/chunks/[root-of-the-server]__0mfjf2y._.js +1 -1
  238. package/.next/server/chunks/[root-of-the-server]__0mqorxb._.js +1 -1
  239. package/.next/server/chunks/[root-of-the-server]__0no6umu._.js +1 -1
  240. package/.next/server/chunks/[root-of-the-server]__0nqbham._.js +1 -1
  241. package/.next/server/chunks/[root-of-the-server]__0o9gtvd._.js +1 -1
  242. package/.next/server/chunks/[root-of-the-server]__0obb4y-._.js +1 -1
  243. package/.next/server/chunks/[root-of-the-server]__0p3u6_q._.js +1 -1
  244. package/.next/server/chunks/[root-of-the-server]__0rk_yxy._.js +3 -3
  245. package/.next/server/chunks/[root-of-the-server]__0rmrkd_._.js +1 -1
  246. package/.next/server/chunks/[root-of-the-server]__0tdibjz._.js +1 -1
  247. package/.next/server/chunks/[root-of-the-server]__0u58zap._.js +1 -1
  248. package/.next/server/chunks/[root-of-the-server]__0vhjihq._.js +1 -1
  249. package/.next/server/chunks/[root-of-the-server]__0vz88er._.js +1 -1
  250. package/.next/server/chunks/[root-of-the-server]__0wf9znr._.js +1 -1
  251. package/.next/server/chunks/[root-of-the-server]__0yc8r2x._.js +1 -1
  252. package/.next/server/chunks/[root-of-the-server]__0zv7jom._.js +1 -1
  253. package/.next/server/chunks/[root-of-the-server]__11_-ncy._.js +1 -1
  254. package/.next/server/chunks/[root-of-the-server]__11_1z7m._.js +1 -1
  255. package/.next/server/chunks/[root-of-the-server]__11n87go._.js +1 -1
  256. package/.next/server/chunks/[root-of-the-server]__11p4ahb._.js +1 -1
  257. package/.next/server/chunks/[root-of-the-server]__122xu-0._.js +9 -9
  258. package/.next/server/chunks/[root-of-the-server]__131taws._.js +1 -1
  259. package/.next/server/chunks/[root-of-the-server]__13ebiit._.js +1 -1
  260. package/.next/server/chunks/[root-of-the-server]__1413v0e._.js +1 -1
  261. package/.next/server/chunks/[root-of-the-server]__14dnbrn._.js +1 -1
  262. package/.next/server/chunks/[root-of-the-server]__14jqm9_._.js +1 -1
  263. package/.next/server/chunks/[root-of-the-server]__152lbaw._.js +1 -1
  264. package/.next/server/chunks/[root-of-the-server]__15tkoe6._.js +1 -1
  265. package/.next/server/chunks/[root-of-the-server]__16begv4._.js +1 -1
  266. package/.next/server/chunks/[root-of-the-server]__17duis5._.js +1 -1
  267. package/.next/server/chunks/[root-of-the-server]__17q3k-v._.js +1 -1
  268. package/.next/server/chunks/[root-of-the-server]__184u6de._.js +1 -1
  269. package/.next/server/chunks/[root-of-the-server]__18atlj8._.js +1 -1
  270. package/.next/server/chunks/[root-of-the-server]__18c7l6u._.js +1 -1
  271. package/.next/server/chunks/[root-of-the-server]__18zrkky._.js +1 -1
  272. package/.next/server/chunks/[root-of-the-server]__19vj8qy._.js +1 -1
  273. package/.next/server/chunks/[root-of-the-server]__1_gkx5x._.js +1 -1
  274. package/.next/server/chunks/[root-of-the-server]__1aaux7e._.js +1 -1
  275. package/.next/server/chunks/[root-of-the-server]__1cceu4b._.js +1 -1
  276. package/.next/server/chunks/[root-of-the-server]__1cn6rlb._.js +1 -1
  277. package/.next/server/chunks/[root-of-the-server]__1csfdxc._.js +1 -1
  278. package/.next/server/chunks/[root-of-the-server]__1ezwxao._.js +1 -1
  279. package/.next/server/chunks/[root-of-the-server]__1g1wi9i._.js +1 -1
  280. package/.next/server/chunks/[root-of-the-server]__1gmc_uw._.js +1 -1
  281. package/.next/server/chunks/[root-of-the-server]__1h09r50._.js +1 -1
  282. package/.next/server/chunks/[root-of-the-server]__1hpwwxw._.js +1 -1
  283. package/.next/server/chunks/[root-of-the-server]__1j6mx-v._.js +1 -1
  284. package/.next/server/chunks/[root-of-the-server]__1jdi-1f._.js +1 -1
  285. package/.next/server/chunks/[root-of-the-server]__1jtd2ar._.js +2 -2
  286. package/.next/server/chunks/[root-of-the-server]__1ju8z29._.js +1 -1
  287. package/.next/server/chunks/[root-of-the-server]__1kpo44g._.js +1 -1
  288. package/.next/server/chunks/[root-of-the-server]__1kqv61m._.js +1 -1
  289. package/.next/server/chunks/[root-of-the-server]__1lct0vi._.js +1 -1
  290. package/.next/server/chunks/[root-of-the-server]__1loecue._.js +1 -1
  291. package/.next/server/chunks/[root-of-the-server]__1m4-ab6._.js +1 -1
  292. package/.next/server/chunks/[root-of-the-server]__1mkpya8._.js +1 -1
  293. package/.next/server/chunks/[root-of-the-server]__1nmtv65._.js +1 -1
  294. package/.next/server/chunks/[root-of-the-server]__1nwf3ua._.js +1 -1
  295. package/.next/server/chunks/[root-of-the-server]__1oup682._.js +1 -1
  296. package/.next/server/chunks/[root-of-the-server]__1p8hw44._.js +1 -1
  297. package/.next/server/chunks/[root-of-the-server]__1pplzr1._.js +1 -1
  298. package/.next/server/chunks/[root-of-the-server]__1rsn804._.js +1 -1
  299. package/.next/server/chunks/[root-of-the-server]__1sdtn83._.js +1 -1
  300. package/.next/server/chunks/[root-of-the-server]__1u-1vx4._.js +1 -1
  301. package/.next/server/chunks/[root-of-the-server]__1v6nwhq._.js +1 -1
  302. package/.next/server/chunks/[root-of-the-server]__1vw740y._.js +9 -9
  303. package/.next/server/chunks/[root-of-the-server]__20465pr._.js +1 -1
  304. package/.next/server/chunks/[root-of-the-server]__207mxv8._.js +1 -1
  305. package/.next/server/chunks/_0-eguqv._.js +1 -1
  306. package/.next/server/chunks/_008zx49._.js +1 -1
  307. package/.next/server/chunks/_011-ll5._.js +1 -1
  308. package/.next/server/chunks/_0389uce._.js +1 -1
  309. package/.next/server/chunks/_0431fxn._.js +1 -1
  310. package/.next/server/chunks/_0_o8yhv._.js +1 -1
  311. package/.next/server/chunks/_0c5hvv3._.js +4 -4
  312. package/.next/server/chunks/_0ekrwj-._.js +6 -6
  313. package/.next/server/chunks/_0frix22._.js +4 -4
  314. package/.next/server/chunks/_0gwg6ba._.js +1 -1
  315. package/.next/server/chunks/_0gxi3zr._.js +1 -1
  316. package/.next/server/chunks/_0lz3t4l._.js +12 -12
  317. package/.next/server/chunks/_0rdo0a4._.js +1 -1
  318. package/.next/server/chunks/_0uxp3uh._.js +1 -1
  319. package/.next/server/chunks/_0x3ltk0._.js +6 -6
  320. package/.next/server/chunks/_12w5k19._.js +1 -1
  321. package/.next/server/chunks/_13ffmxv._.js +1 -1
  322. package/.next/server/chunks/_14tz_k9._.js +1 -1
  323. package/.next/server/chunks/_167vv93._.js +1 -1
  324. package/.next/server/chunks/_16jdov0._.js +1 -1
  325. package/.next/server/chunks/_18amra5._.js +1 -1
  326. package/.next/server/chunks/_1_ns7o3._.js +1 -1
  327. package/.next/server/chunks/_1a1aqmi._.js +1 -1
  328. package/.next/server/chunks/_1a1udq0._.js +1 -1
  329. package/.next/server/chunks/_1b0269x._.js +1 -1
  330. package/.next/server/chunks/_1b7qjlv._.js +1 -1
  331. package/.next/server/chunks/_1be-y66._.js +1 -1
  332. package/.next/server/chunks/_1e1h1f1._.js +1 -1
  333. package/.next/server/chunks/_1ex6ovo._.js +1 -1
  334. package/.next/server/chunks/_1fgb9ve._.js +1 -1
  335. package/.next/server/chunks/_1flar98._.js +1 -1
  336. package/.next/server/chunks/_1m-yyz-._.js +1 -1
  337. package/.next/server/chunks/_1oj6gy_._.js +1 -1
  338. package/.next/server/chunks/_1pvqo-q._.js +1 -1
  339. package/.next/server/chunks/_1z_ujac._.js +1 -1
  340. package/.next/server/chunks/_211va-d._.js +1 -1
  341. package/.next/server/chunks/_next-internal_server_app_api_admin_dashboard_route_actions_1ispso-.js +1 -1
  342. package/.next/server/chunks/_next-internal_server_app_api_admin_users_[id]_detail_route_actions_0oe_wkt.js +1 -1
  343. package/.next/server/chunks/_next-internal_server_app_api_admin_users_route_actions_0q-rtz1.js +1 -1
  344. package/.next/server/chunks/_next-internal_server_app_api_ai_models_route_actions_0w7iwv-.js +1 -1
  345. package/.next/server/chunks/_next-internal_server_app_api_ai_test_route_actions_1p0n1q8.js +1 -1
  346. package/.next/server/chunks/_next-internal_server_app_api_analytics_route_actions_1e0ou17.js +1 -1
  347. package/.next/server/chunks/_next-internal_server_app_api_analyze_route_actions_0lx-23h.js +1 -1
  348. package/.next/server/chunks/_next-internal_server_app_api_auth_[___nextauth]_route_actions_08nexdk.js +1 -1
  349. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_figure_route_actions_0adlts0.js +1 -1
  350. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_fix-latex_route_actions_0hc7dhx.js +1 -1
  351. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_geogebra_route_actions_1-ks4uv.js +1 -1
  352. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_image_route_actions_1k9n5yl.js +1 -1
  353. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_mastery_route_actions_1l5uan6.js +1 -1
  354. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_reanswer_route_actions_1-sw0j2.js +1 -1
  355. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_retag_route_actions_0ckki4n.js +1 -1
  356. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_route_actions_1kbs4ux.js +1 -1
  357. package/.next/server/chunks/_next-internal_server_app_api_error-items_batch-delete_route_actions_0hiq_1k.js +1 -1
  358. package/.next/server/chunks/_next-internal_server_app_api_error-items_clear_route_actions_14t_6i-.js +1 -1
  359. package/.next/server/chunks/_next-internal_server_app_api_error-items_list_route_actions_032x4ue.js +1 -1
  360. package/.next/server/chunks/_next-internal_server_app_api_error-items_route_actions_1zdvz0p.js +1 -1
  361. package/.next/server/chunks/_next-internal_server_app_api_error-items_similarity_route_actions_1i26if9.js +1 -1
  362. package/.next/server/chunks/_next-internal_server_app_api_exams_[id]_retry_route_actions_1fdi39f.js +1 -1
  363. package/.next/server/chunks/_next-internal_server_app_api_exams_[id]_route_actions_1wuidrq.js +1 -1
  364. package/.next/server/chunks/_next-internal_server_app_api_exams_route_actions_1c_zhtj.js +1 -1
  365. package/.next/server/chunks/_next-internal_server_app_api_export_route_actions_0lpcnjc.js +1 -1
  366. package/.next/server/chunks/_next-internal_server_app_api_geogebra-analyze_route_actions_1xng0_c.js +1 -1
  367. package/.next/server/chunks/_next-internal_server_app_api_health_route_actions_1ryftkb.js +1 -1
  368. package/.next/server/chunks/_next-internal_server_app_api_import_route_actions_20ko04x.js +1 -1
  369. package/.next/server/chunks/_next-internal_server_app_api_logs_frontend_route_actions_0nxepty.js +1 -1
  370. package/.next/server/chunks/_next-internal_server_app_api_notebooks_[id]_retag_route_actions_00su_t8.js +1 -1
  371. package/.next/server/chunks/_next-internal_server_app_api_notebooks_[id]_route_actions_11j3vxg.js +1 -1
  372. package/.next/server/chunks/_next-internal_server_app_api_notebooks_route_actions_02cy45r.js +1 -1
  373. package/.next/server/chunks/_next-internal_server_app_api_openclaw_batch-upload_route_actions_1zz3oen.js +1 -1
  374. package/.next/server/chunks/_next-internal_server_app_api_practice_generate_route_actions_1krr9n_.js +1 -1
  375. package/.next/server/chunks/_next-internal_server_app_api_practice_record_[id]_route_actions_0zreiom.js +1 -1
  376. package/.next/server/chunks/_next-internal_server_app_api_practice_record_route_actions_0py9z__.js +1 -1
  377. package/.next/server/chunks/_next-internal_server_app_api_reanswer_route_actions_04xweh_.js +1 -1
  378. package/.next/server/chunks/_next-internal_server_app_api_register_route_actions_0vlzh_c.js +1 -1
  379. package/.next/server/chunks/_next-internal_server_app_api_register_status_route_actions_0b52_sj.js +1 -1
  380. package/.next/server/chunks/_next-internal_server_app_api_settings_route_actions_1bpm9ac.js +1 -1
  381. package/.next/server/chunks/_next-internal_server_app_api_stats_practice_clear_route_actions_1iz6iz0.js +1 -1
  382. package/.next/server/chunks/_next-internal_server_app_api_stats_practice_route_actions_1tfoxx-.js +1 -1
  383. package/.next/server/chunks/_next-internal_server_app_api_tags_route_actions_1nb9ma2.js +1 -1
  384. package/.next/server/chunks/_next-internal_server_app_api_tags_stats_route_actions_0fmeadc.js +1 -1
  385. package/.next/server/chunks/_next-internal_server_app_api_tags_suggestions_route_actions_1xpolyv.js +1 -1
  386. package/.next/server/chunks/_next-internal_server_app_api_tasks_route_actions_123tq1_.js +1 -1
  387. package/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_0g2jjls.js +1 -1
  388. package/.next/server/chunks/_next-internal_server_app_manifest_webmanifest_route_actions_08hcpz0.js +1 -1
  389. package/.next/server/chunks/node_modules_next_1zdbrne._.js +1 -1
  390. package/.next/server/chunks/node_modules_zod_v4_classic_external_1-pw2v2.js +3 -3
  391. package/.next/server/chunks/src_0tzpy5j._.js +1 -1
  392. package/.next/server/chunks/src_lib_ai_prompts_ts_0z36zms._.js +1 -1
  393. package/.next/server/chunks/src_lib_date-time_ts_14chb27._.js +1 -1
  394. package/.next/server/chunks/src_lib_question-deduplication_ts_1p1bik-._.js +1 -1
  395. package/.next/server/chunks/ssr/[externals]_fs_0pplqgc._.js +1 -1
  396. package/.next/server/chunks/ssr/[root-of-the-server]__00gewu3._.js +2 -2
  397. package/.next/server/chunks/ssr/[root-of-the-server]__05f8wbh._.js +1 -1
  398. package/.next/server/chunks/ssr/[root-of-the-server]__0a0nty7._.js +1 -1
  399. package/.next/server/chunks/ssr/[root-of-the-server]__0ax9dog._.js +1 -1
  400. package/.next/server/chunks/ssr/[root-of-the-server]__0b8kewv._.js +1 -1
  401. package/.next/server/chunks/ssr/[root-of-the-server]__0bvtza7._.js +2 -2
  402. package/.next/server/chunks/ssr/[root-of-the-server]__0g_-bym._.js +1 -1
  403. package/.next/server/chunks/ssr/[root-of-the-server]__0gwwr7e._.js +1 -1
  404. package/.next/server/chunks/ssr/[root-of-the-server]__0hzktoi._.js +1 -1
  405. package/.next/server/chunks/ssr/[root-of-the-server]__0icjezr._.js +1 -1
  406. package/.next/server/chunks/ssr/[root-of-the-server]__0koj8h0._.js +1 -1
  407. package/.next/server/chunks/ssr/[root-of-the-server]__0s87xha._.js +1 -1
  408. package/.next/server/chunks/ssr/[root-of-the-server]__0snpjfe._.js +1 -1
  409. package/.next/server/chunks/ssr/[root-of-the-server]__0y_e9do._.js +1 -1
  410. package/.next/server/chunks/ssr/[root-of-the-server]__0ybs_4c._.js +1 -1
  411. package/.next/server/chunks/ssr/[root-of-the-server]__14l7peq._.js +1 -1
  412. package/.next/server/chunks/ssr/[root-of-the-server]__1507q8a._.js +1 -1
  413. package/.next/server/chunks/ssr/[root-of-the-server]__15ppb9j._.js +1 -1
  414. package/.next/server/chunks/ssr/[root-of-the-server]__191jn5n._.js +1 -1
  415. package/.next/server/chunks/ssr/[root-of-the-server]__1f2jx51._.js +2 -2
  416. package/.next/server/chunks/ssr/[root-of-the-server]__1gth76-._.js +1 -1
  417. package/.next/server/chunks/ssr/[root-of-the-server]__1ko_dw5._.js +1 -1
  418. package/.next/server/chunks/ssr/[root-of-the-server]__1l84pks._.js +1 -1
  419. package/.next/server/chunks/ssr/[root-of-the-server]__1m7qw-2._.js +1 -1
  420. package/.next/server/chunks/ssr/[root-of-the-server]__1ma2oml._.js +1 -1
  421. package/.next/server/chunks/ssr/[root-of-the-server]__1o8jotz._.js +1 -1
  422. package/.next/server/chunks/ssr/[root-of-the-server]__1o__w27._.js +1 -1
  423. package/.next/server/chunks/ssr/[root-of-the-server]__1p7f0va._.js +1 -1
  424. package/.next/server/chunks/ssr/[root-of-the-server]__1sg9eoj._.js +1 -1
  425. package/.next/server/chunks/ssr/[root-of-the-server]__1u74hyi._.js +1 -1
  426. package/.next/server/chunks/ssr/[root-of-the-server]__1xsovpr._.js +1 -1
  427. package/.next/server/chunks/ssr/_054yhx9._.js +1 -1
  428. package/.next/server/chunks/ssr/_062gk85._.js +3 -0
  429. package/.next/server/chunks/ssr/_07ls0n_._.js +1 -1
  430. package/.next/server/chunks/ssr/_0i9hwpv._.js +1 -1
  431. package/.next/server/chunks/ssr/_0idg05p._.js +3 -0
  432. package/.next/server/chunks/ssr/_0iqp5hs._.js +1 -1
  433. package/.next/server/chunks/ssr/_0m1-rq-._.js +1 -1
  434. package/.next/server/chunks/ssr/_0mgbe2b._.js +1 -1
  435. package/.next/server/chunks/ssr/_0nv22wt._.js +1 -1
  436. package/.next/server/chunks/ssr/_0rz2_qb._.js +5 -5
  437. package/.next/server/chunks/ssr/_0sbbx9z._.js +2 -2
  438. package/.next/server/chunks/ssr/_0sf1gd9._.js +1 -1
  439. package/.next/server/chunks/ssr/_0uemk57._.js +1 -1
  440. package/.next/server/chunks/ssr/_0zj7dlu._.js +1 -1
  441. package/.next/server/chunks/ssr/_17igtpd._.js +1 -1
  442. package/.next/server/chunks/ssr/_1gu1rou._.js +1 -1
  443. package/.next/server/chunks/ssr/_1jniqsj._.js +1 -1
  444. package/.next/server/chunks/ssr/_1kgnhmo._.js +2 -2
  445. package/.next/server/chunks/ssr/_1lt1lhz._.js +2 -2
  446. package/.next/server/chunks/ssr/_1yeu09q._.js +1 -1
  447. package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js +1 -1
  448. package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js +1 -1
  449. package/.next/server/chunks/ssr/_next-internal_server_app_admin_page_actions_1mcickz.js +1 -1
  450. package/.next/server/chunks/ssr/_next-internal_server_app_admin_user_[id]_page_actions_0baj8gs.js +1 -1
  451. package/.next/server/chunks/ssr/_next-internal_server_app_error-items_[id]_page_actions_0qla9ak.js +1 -1
  452. package/.next/server/chunks/ssr/_next-internal_server_app_exams_[id]_print_page_actions_0pxdgxq.js +1 -1
  453. package/.next/server/chunks/ssr/_next-internal_server_app_exams_page_actions_0av69f-.js +1 -1
  454. package/.next/server/chunks/ssr/_next-internal_server_app_latex-test_page_actions_19v7ka0.js +1 -1
  455. package/.next/server/chunks/ssr/_next-internal_server_app_login_page_actions_04fnjo0.js +1 -1
  456. package/.next/server/chunks/ssr/_next-internal_server_app_notebooks_[id]_add_page_actions_0275ft2.js +1 -1
  457. package/.next/server/chunks/ssr/_next-internal_server_app_notebooks_[id]_page_actions_1qj0i-7.js +1 -1
  458. package/.next/server/chunks/ssr/_next-internal_server_app_notebooks_page_actions_06x1kdz.js +1 -1
  459. package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1j.js +1 -1
  460. package/.next/server/chunks/ssr/_next-internal_server_app_practice_page_actions_0cy-h5n.js +1 -1
  461. package/.next/server/chunks/ssr/_next-internal_server_app_print-preview_page_actions_1jhaaln.js +1 -1
  462. package/.next/server/chunks/ssr/_next-internal_server_app_register_page_actions_1op-s-x.js +1 -1
  463. package/.next/server/chunks/ssr/_next-internal_server_app_stats_page_actions_1olf1_a.js +1 -1
  464. package/.next/server/chunks/ssr/node_modules_0o2aki7._.js +1 -1
  465. package/.next/server/chunks/ssr/node_modules_1y5ym6h._.js +1 -1
  466. package/.next/server/chunks/ssr/node_modules_next_1lnqo1a._.js +3 -3
  467. package/.next/server/chunks/ssr/node_modules_next_dist_077yo5w._.js +1 -1
  468. package/.next/server/chunks/ssr/node_modules_next_dist_0nkkbfv._.js +2 -2
  469. package/.next/server/chunks/ssr/node_modules_next_dist_1_c-t1n._.js +4 -4
  470. package/.next/server/chunks/ssr/node_modules_next_dist_1v8aef8._.js +1 -1
  471. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0bew68i._.js +2 -2
  472. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js +1 -1
  473. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js +1 -1
  474. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892.js +1 -1
  475. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js +1 -1
  476. package/.next/server/chunks/ssr/src_1biegcg._.js +1 -1
  477. package/.next/server/chunks/ssr/src_1gayunq._.js +1 -1
  478. package/.next/server/chunks/ssr/src_1o363ao._.js +1 -1
  479. package/.next/server/chunks/ssr/src_app_admin_page_tsx_0ublbd0._.js +1 -1
  480. package/.next/server/chunks/ssr/src_app_error-items_[id]_page_tsx_04xwwdm._.js +1 -1
  481. package/.next/server/chunks/ssr/src_app_notebooks_[id]_page_tsx_08njm-5._.js +1 -1
  482. package/.next/server/chunks/ssr/src_app_notebooks_page_tsx_1p9src5._.js +1 -1
  483. package/.next/server/chunks/ssr/src_app_page_tsx_1chiuah._.js +1 -1
  484. package/.next/server/chunks/ssr/src_app_practice_page_tsx_10gnx53._.js +1 -1
  485. package/.next/server/chunks/ssr/src_app_tags_page_tsx_1h2vkk4._.js +1 -1
  486. package/.next/server/chunks/ssr/src_components_providers_tsx_09kw-mv._.js +2 -2
  487. package/.next/server/chunks/ssr/src_lib_date-time_ts_0oyqctn._.js +1 -1
  488. package/.next/server/edge/chunks/[root-of-the-server]__1osrt2u._.js +1 -1
  489. package/.next/server/edge/chunks/_1s0wgnu._.js +1 -1
  490. package/.next/server/edge/chunks/node_modules_0g4gi6f._.js +3 -3
  491. package/.next/server/edge/chunks/turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_1iafar9.js +1 -1
  492. package/.next/server/edge/chunks/turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_1x1n1fx.js +1 -1
  493. package/.next/server/instrumentation.js +2 -2
  494. package/.next/server/middleware-build-manifest.js +8 -8
  495. package/.next/server/middleware-manifest.json +7 -7
  496. package/.next/server/pages/500.html +1 -1
  497. package/.next/server/server-reference-manifest.js +1 -1
  498. package/.next/server/server-reference-manifest.json +1 -1
  499. package/.next/static/chunks/02d-8f2qj7j3j.js +1 -0
  500. package/.next/static/chunks/02t7qqptint2p.js +1 -0
  501. package/.next/static/chunks/090a6irxe0c6j.js +1 -0
  502. package/.next/static/chunks/0bhxyq7e2eqjc.js +5 -0
  503. package/.next/static/chunks/0if-vqkhyn-zc.js +1 -0
  504. package/.next/static/chunks/0jf31atbtr1mv.js +1 -0
  505. package/.next/static/chunks/0vgthy7v615hq.js +1 -0
  506. package/.next/static/chunks/1e5n4cprhwujv.js +1 -0
  507. package/.next/static/chunks/1edfvwc5_eck-.js +31 -0
  508. package/.next/static/chunks/1f0u19gh5_49z.js +1 -0
  509. package/.next/static/chunks/1fdj59ys-pend.js +1 -0
  510. package/.next/static/chunks/1kerqdluzq2l0.js +1 -0
  511. package/.next/static/chunks/1r4lwlvm7m53v.js +1 -0
  512. package/.next/static/chunks/1rz1bokv9edzr.js +1 -0
  513. package/.next/static/chunks/1s-d67d-yroyw.js +1 -0
  514. package/.next/static/chunks/1tw5_upsy-qj_.js +22 -0
  515. package/.next/static/chunks/1w1xvldfmcs67.js +6 -0
  516. package/.next/static/chunks/1zdof8ylzqm8w.js +1 -0
  517. package/.next/static/chunks/2-k1hjh6ff6y4.js +1 -0
  518. package/.next/static/chunks/21qpve5q3mjly.js +1 -0
  519. package/.next/static/chunks/21v32ctwcoxqt.js +1 -0
  520. package/.next/static/chunks/27-t289uq6_ju.js +3 -0
  521. package/.next/static/chunks/293-te2b34thz.js +1 -0
  522. package/.next/static/chunks/2dgleoh5fbs83.js +1 -0
  523. package/.next/static/chunks/2di_nd6djcxwu.js +1 -0
  524. package/.next/static/chunks/2mk03owifu2m1.js +33 -0
  525. package/.next/static/chunks/2qza4p5d9fz_2.js +1 -0
  526. package/.next/static/chunks/2s4c8fcrdnew4.js +1 -0
  527. package/.next/static/chunks/2zdqnkem9n6a9.js +1 -0
  528. package/.next/static/chunks/3-wm04s--suy5.js +1 -0
  529. package/.next/static/chunks/33t46atd3n2zd.js +1 -0
  530. package/.next/static/chunks/37yx4gh09tzwc.js +1 -0
  531. package/.next/static/chunks/3_ymrkgcp90nl.js +191 -0
  532. package/.next/static/chunks/3gwb465dhjxo9.js +1 -0
  533. package/.next/static/chunks/3h1inei-ffe-t.js +1 -0
  534. package/.next/static/chunks/{130ch9mnvb6mp.css → 3n-yabfsiog4i.css} +1 -1
  535. package/.next/static/chunks/3umldi5zknsyi.js +1 -0
  536. package/.next/static/chunks/turbopack-1yjxh4vceobdr.js +1 -0
  537. package/.next/static/{xZpf28Jr6w9NoYOlVaWKI → lggRjZo2bfOA34ETpQH59}/_clientMiddlewareManifest.js +2 -2
  538. package/LICENSE +22 -0
  539. package/package.json +3 -2
  540. package/prisma/seed.db +0 -0
  541. package/public/icons/apple-touch-icon.png +0 -0
  542. package/public/icons/icon-192.png +0 -0
  543. package/public/icons/icon-512.png +0 -0
  544. package/public/icons/icon-maskable-512.png +0 -0
  545. package/public/offline.html +61 -0
  546. package/public/sw.js +84 -0
  547. package/.next/server/chunks/ssr/_12c20v5._.js +0 -3
  548. package/.next/server/chunks/ssr/_1filpif._.js +0 -3
  549. package/.next/static/chunks/00pn0o7lymln6.js +0 -1
  550. package/.next/static/chunks/02521degnqmf0.js +0 -1
  551. package/.next/static/chunks/0_w084ms_lq25.js +0 -22
  552. package/.next/static/chunks/0dzfsm6h13fyr.js +0 -1
  553. package/.next/static/chunks/0ehjiuuxbbhq9.js +0 -1
  554. package/.next/static/chunks/0iq53qkw5hvrs.js +0 -1
  555. package/.next/static/chunks/0m81l71kojx8j.js +0 -1
  556. package/.next/static/chunks/0nckb2-62ooyq.js +0 -1
  557. package/.next/static/chunks/0snej-v5yglxr.js +0 -1
  558. package/.next/static/chunks/1-7k9gbbjkcml.js +0 -1
  559. package/.next/static/chunks/17wdtw8hml2n6.js +0 -191
  560. package/.next/static/chunks/1cd32rtomdngh.js +0 -1
  561. package/.next/static/chunks/1io3-cth_2-cd.js +0 -1
  562. package/.next/static/chunks/1oiuiyv1cv06v.js +0 -31
  563. package/.next/static/chunks/1t4-pobw0y5cf.js +0 -1
  564. package/.next/static/chunks/1xg811762s1p1.js +0 -1
  565. package/.next/static/chunks/1z_5sj1wqi06v.js +0 -1
  566. package/.next/static/chunks/2a0kgntckcbvf.js +0 -1
  567. package/.next/static/chunks/2dlme2fdlkms6.js +0 -1
  568. package/.next/static/chunks/2f37cahijtel1.js +0 -1
  569. package/.next/static/chunks/2h-exsnhkfnb8.js +0 -1
  570. package/.next/static/chunks/2pmzqbg-qabof.js +0 -1
  571. package/.next/static/chunks/2rmhba08h4qqo.js +0 -33
  572. package/.next/static/chunks/2s07soqug65hc.js +0 -1
  573. package/.next/static/chunks/2vm3br71ud51j.js +0 -1
  574. package/.next/static/chunks/2w2uo9jjxt-re.js +0 -1
  575. package/.next/static/chunks/2yl8a-gxngbuq.js +0 -1
  576. package/.next/static/chunks/32bl-oqw9oso0.js +0 -1
  577. package/.next/static/chunks/35cov9g4cgt-v.js +0 -1
  578. package/.next/static/chunks/3b-g5_r9nto3s.js +0 -6
  579. package/.next/static/chunks/3g1rm2suowncy.js +0 -3
  580. package/.next/static/chunks/3helovsg02qr4.js +0 -1
  581. package/.next/static/chunks/3jta6jrk-jubq.js +0 -1
  582. package/.next/static/chunks/3yhf6xyypekz6.js +0 -1
  583. package/.next/static/chunks/3z9gc_02gl8n9.js +0 -1
  584. package/.next/static/chunks/427wg73nuzpiz.js +0 -5
  585. package/.next/static/chunks/turbopack-1-0r7_puvz3eq.js +0 -1
  586. /package/.next/static/{xZpf28Jr6w9NoYOlVaWKI → lggRjZo2bfOA34ETpQH59}/_buildManifest.js +0 -0
  587. /package/.next/static/{xZpf28Jr6w9NoYOlVaWKI → lggRjZo2bfOA34ETpQH59}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[71253,e=>e.a(async(t,r)=>{try{var a=e.i(58821),n=e.i(98043),i=e.i(63856),o=e.i(76759),s=e.i(50377),l=e.i(83918),u=t([i]);[i]=u.then?(await u)():u;let p=(0,s.createLogger)("api:notebooks:retag");async function d(e,t){let r=await n.prisma.subject.findUnique({where:{id:e},select:{userId:!0}});return r?.userId===t}async function c(e,{params:t}){let{id:r}=await t;try{let e=await (0,i.getCurrentUser)();if(!e)return(0,o.unauthorized)("Authentication required");if(!await d(r,e.id))return(0,o.notFound)("Notebook not found");return a.NextResponse.json((0,l.getRetagJob)(e.id,r))}catch(e){return p.error({error:e},"Error fetching retag job"),(0,o.internalError)("Failed to fetch retag status")}}async function g(e,{params:t}){let{id:r}=await t;try{let e=await (0,i.getCurrentUser)();if(!e)return(0,o.unauthorized)("Authentication required");if(!await d(r,e.id))return(0,o.notFound)("Notebook not found");return a.NextResponse.json(await (0,l.startRetagJob)(e.id,r),{status:202})}catch(e){return p.error({error:e},"Error starting retag job"),(0,o.internalError)("Failed to start retag job")}}e.s(["GET",0,c,"POST",0,g]),r()}catch(e){r(e)}},!1),17805,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),i=e.i(61916),o=e.i(74677),s=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),g=e.i(66012),p=e.i(70101),h=e.i(74838),m=e.i(10372),f=e.i(93695),w=e.i(9580);e.i(52474);var R=e.i(220);let v=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/notebooks/[id]/retag/route",pathname:"/api/notebooks/[id]/retag",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/notebooks/[id]/retag/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(71253),...{}}),{workAsyncStorage:E,workUnitAsyncStorage:y,serverHooks:S}=v;async function T(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),v.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/notebooks/[id]/retag/route";E=E.replace(/\/index$/,"")||"/";let y=await v.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:S,deploymentId:T,params:b,nextConfig:A,parsedUrl:C,isDraftMode:x,prerenderManifest:N,routerServerContext:I,isOnDemandRevalidate:_,revalidateOnlyGenerated:O,resolvedPathname:P,clientReferenceManifest:k,serverActionsManifest:q}=y,D=(0,s.normalizeAppPath)(E),j=!!N.routes[P]&&(v.isDev||(0,w.isRouteCacheOwner)(P,v.cacheOwner,N.routes[P])),M=!!(N.dynamicRoutes[D]||j),U=async()=>((null==I?void 0:I.render404)?await I.render404(e,t,C,!1):t.end("This page could not be found"),null);if(M&&!x){let e=N.dynamicRoutes[D];if(e&&!1===e.fallback&&!j){if(A.adapterPath)return await U();throw new f.NoFallbackError}}let H=null;!M||v.isDev||x||(H="/index"===(H=P)?"/":H);let G=!0===v.isDev||!M,L=M&&!G;q&&k&&(0,o.setManifestsSingleton)({page:E,clientReferenceManifest:k,serverActionsManifest:q});let F=e.method||"GET",$=(0,i.getTracer)(),B=$.getActiveScopeSpan(),J=!!(null==I?void 0:I.isWrappedByNextServer),K=!!(0,n.getRequestMeta)(e,"minimalMode"),Y=(0,n.getRequestMeta)(e,"incrementalCache")||await v.getIncrementalCache(e,A,N,K);null==Y||Y.resetRequestCache(),globalThis.__incrementalCache=Y;let z={params:b,previewProps:N.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts,useCacheTimeout:A.experimental.useCacheTimeout},cacheComponents:!!A.cacheComponents,validationLevel:A.experimental.instantInsights.validationLevel,isDraftMode:x,supportsDynamicResponse:G,incrementalCache:Y,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:A.cacheLife,staticPageGenerationTimeout:A.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>v.onRequestError(e,t,a,n,I)},sharedContext:{buildId:S,deploymentId:T}},V=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),Z=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t)),W=async({previousCacheEntry:r})=>{try{if(!K&&_&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await v.handle(Z,z);e.fetchMetrics=z.renderOpts.fetchMetrics;let i=z.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let o=z.renderOpts.collectedTags;if(!M)return await (0,g.sendResponse)(V,X,n,i),null;{let e=await n.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(n.headers);o&&(t[m.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,a=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=m.INFINITE_CACHE?!1!==r&&r>0?A.expireTime:void 0:z.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await v.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:_})},!1,I),t}},Q=async(n,o)=>{try{var s,l;let n=await v.handleResponse({req:e,nextConfig:A,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:_,revalidateOnlyGenerated:O,responseGenerator:W,waitUntil:a.waitUntil,isMinimalMode:K});if(!M)return;if((null==n||null==(s=n.value)?void 0:s.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",_?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let i=(0,p.fromNodeOutgoingHttpHeaders)(n.value.headers);K&&M||i.delete(m.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||i.get("Cache-Control")||i.set("Cache-Control",(0,h.getCacheControlHeader)(n.cacheControl)),await (0,g.sendResponse)(V,X,new Response(n.value.body,{headers:i,status:n.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await v.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:_})},!1,I),M)throw t;await (0,g.sendResponse)(V,X,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:i.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route")||D,s=`${F} ${a}`;n.setAttributes({"next.route":a,"http.route":a,"next.span_name":s}),n.updateName(s),o&&o!==n&&(o.setAttribute("http.route",a),o.updateName(s))})()}};if(J&&B)await Q(B,void 0);else{let t=$.getActiveScopeSpan();await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${E}`,kind:i.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>Q(e,t)),void 0,!J)}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:y})},"routeModule",0,v,"serverHooks",0,S,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,y])},63856,e=>e.a(async(t,r)=>{try{var a=e.i(13618),n=e.i(79832),i=e.i(98043),o=t([n]);async function s(){let e=await (0,a.getServerSession)(n.authOptions);return e?.user?.email?i.prisma.user.findUnique({where:{email:e.user.email}}):null}[n]=o.then?(await o)():o,e.s(["getCurrentUser",0,s]),r()}catch(e){r(e)}},!1),39811,e=>{"use strict";var t=e.i(76025);e.s(["calculateGrade",0,function(e,r,a=new Date,n="en",i=t.DEFAULT_TIME_ZONE){let o=(0,t.getCalendarDate)(a,i),s=o.getFullYear(),l=o.getMonth()+1,u=s-r,d="2nd";l>=9?(u+=1,d="1st"):d=l<2?"1st":"2nd";let c="zh"===n,g=c?"1st"===d?"上期":"下期":"1st"===d?"1st Semester":"2nd Semester",p=(c?{primary:["一年级","二年级","三年级","四年级","五年级","六年级"],junior_high:["初一","初二","初三"],senior_high:["高一","高二","高三"],university:["大一","大二","大三","大四"]}:{primary:["Grade 1","Grade 2","Grade 3","Grade 4","Grade 5","Grade 6"],junior_high:["Junior High Grade 1","Junior High Grade 2","Junior High Grade 3"],senior_high:["Senior High Grade 1","Senior High Grade 2","Senior High Grade 3"],university:["Freshman","Sophomore","Junior","Senior"]})[e]||[],h=`${u}`;if(h=u>0&&u<=p.length?p[u-1]:u>p.length?c?"已毕业":"Graduated":c?"学前":"Pre-school",!c)return`${h}, ${g}`;{let e="1st"===d?"上":"下";return`${h}${e}`}}])},55920,e=>{"use strict";e.s(["getDefaultPaperLevel",0,function(e){return"number"!=typeof e||!Number.isInteger(e)||e<1||e>5?null:e<=3?"a":"b"}])},83918,e=>{"use strict";var t=e.i(98043),r=e.i(43911),a=e.i(59398),n=e.i(83508),i=e.i(39811),o=e.i(68426),s=e.i(50377),l=e.i(55920),u=e.i(98003),d=e.i(26828);let c=(0,s.createLogger)("retag");async function g(e,s){let l=await t.prisma.errorItem.findUnique({where:{id:e},select:{userId:!0,questionText:!0,answerText:!0,analysis:!0,wrongAnswerText:!0,mistakeAnalysis:!0,gradeSemester:!0,paperLevel:!0,subject:{select:{name:!0,stage:!0,subjectKey:!0}},tags:{select:{id:!0,name:!0,isSystem:!0}},user:{select:{educationStage:!0,enrollmentYear:!0}}}});if(!l||l.userId!==s)throw Error("ITEM_NOT_FOUND");if(!l.questionText?.trim())throw Error("NO_QUESTION_TEXT");let d=l.subject?(0,o.resolveNotebookScope)(l.subject):null,c=d?.subject||"math",g=d?.subject?await (0,a.getScopeTagsFromDB)(d.subject,d.stage):await (0,a.getMathTagsFromDB)((0,n.calculateGradeNumber)(l.user.educationStage,l.user.enrollmentYear,(0,u.getAppTimeZone)()));if(0===g.length)throw Error("NO_AVAILABLE_TAGS");let p=l.gradeSemester||(l.user.educationStage&&l.user.enrollmentYear?(0,i.calculateGrade)(l.user.educationStage,l.user.enrollmentYear,new Date,"zh",(0,u.getAppTimeZone)()):null),{tags:h,difficultyStars:m}=await (0,r.getAIService)().suggestKnowledgeTags({questionText:l.questionText,answerText:l.answerText,analysis:l.analysis,wrongAnswerText:l.wrongAnswerText,mistakeAnalysis:l.mistakeAnalysis,subject:o.SUBJECT_DISPLAY_NAMES[c],allowedTags:g,gradeSemester:p});if(0===h.length)throw Error("NO_TAGS_SELECTED");let f=await t.prisma.knowledgeTag.findMany({where:{isSystem:!0,subject:c,name:{in:h}},select:{id:!0,name:!0}}),w=new Map;for(let e of f)w.has(e.name)||w.set(e.name,e.id);let R=h.filter(e=>w.has(e));return{tagNames:[...R,...l.tags.filter(e=>!e.isSystem).map(e=>e.name).filter(e=>!R.includes(e))],difficultyStars:m,paperLevel:l.paperLevel,newTagIds:R.map(e=>w.get(e)),oldSystemTags:l.tags.filter(e=>e.isSystem).map(({id:e,name:t})=>({id:e,name:t}))}}async function p(e,t){let{tagNames:r,difficultyStars:a}=await g(e,t);return{errorItemId:e,tags:r,difficultyStars:a}}async function h(e,r){let{tagNames:a,newTagIds:n,oldSystemTags:i,difficultyStars:o,paperLevel:s}=await g(e,r),u=s?null:(0,l.getDefaultPaperLevel)(o);return await t.prisma.errorItem.update({where:{id:e},data:{knowledgePoints:JSON.stringify(a),...null!==o?{difficultyStars:o}:{},...u?{paperLevel:u}:{},tags:{disconnect:i.map(e=>({id:e.id})),connect:n.map(e=>({id:e}))}}}),c.info({errorItemId:e,before:i.map(e=>e.name),after:a,difficultyStars:o},"Error item retagged"),{errorItemId:e,tags:a,difficultyStars:o}}let m=new Map,f=(e,t)=>`${e}:${t}`;async function w(e,r){let a=f(e,r),n=m.get(a);if(n?.running)return n;let i=await t.prisma.errorItem.findMany({where:{userId:e,subjectId:r},select:{id:!0},orderBy:{createdAt:"asc"}}),o={subjectId:r,total:i.length,done:0,failed:0,running:i.length>0,startedAt:new Date().toISOString(),finishedAt:i.length>0?null:new Date().toISOString()};m.set(a,o);let s=await t.prisma.subject.findUnique({where:{id:r},select:{name:!0}}),l=(0,d.startBackgroundTask)({userId:e,kind:"retag_notebook",subject:s?.name??null,link:`/notebooks/${r}`,total:i.length}),u=i.map(e=>e.id),g=async()=>{for(;u.length>0;){let t=u.shift();try{await h(t,e)}catch(e){o.failed++,c.warn({errorItemId:t,error:e instanceof Error?e.message:String(e)},"Retag failed")}finally{o.done++,l.setProgress(o.done,o.total,o.failed)}}};return Promise.all(Array.from({length:Math.min(2,u.length)},g)).finally(()=>{o.running=!1,o.finishedAt=new Date().toISOString(),o.total>0&&o.failed===o.total?l.fail("ALL_FAILED"):l.succeed(),c.info({subjectId:r,total:o.total,failed:o.failed},"Retag job finished")}),o}e.s(["getRetagJob",0,function(e,t){return m.get(f(e,t))??null},"previewRetagErrorItem",0,p,"retagErrorItem",0,h,"startRetagJob",0,w])}];
1
+ module.exports=[371253,e=>e.a(async(t,r)=>{try{var a=e.i(89171),n=e.i(698043),i=e.i(63856),o=e.i(181912),s=e.i(50377),l=e.i(583918),u=t([i]);[i]=u.then?(await u)():u;let p=(0,s.createLogger)("api:notebooks:retag");async function d(e,t){let r=await n.prisma.subject.findUnique({where:{id:e},select:{userId:!0}});return r?.userId===t}async function c(e,{params:t}){let{id:r}=await t;try{let e=await (0,i.getCurrentUser)();if(!e)return(0,o.unauthorized)("Authentication required");if(!await d(r,e.id))return(0,o.notFound)("Notebook not found");return a.NextResponse.json((0,l.getRetagJob)(e.id,r))}catch(e){return p.error({error:e},"Error fetching retag job"),(0,o.internalError)("Failed to fetch retag status")}}async function g(e,{params:t}){let{id:r}=await t;try{let e=await (0,i.getCurrentUser)();if(!e)return(0,o.unauthorized)("Authentication required");if(!await d(r,e.id))return(0,o.notFound)("Notebook not found");return a.NextResponse.json(await (0,l.startRetagJob)(e.id,r),{status:202})}catch(e){return p.error({error:e},"Error starting retag job"),(0,o.internalError)("Failed to start retag job")}}e.s(["GET",0,c,"POST",0,g]),r()}catch(e){r(e)}},!1),717805,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),n=e.i(759756),i=e.i(561916),o=e.i(174677),s=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),g=e.i(666012),p=e.i(570101),h=e.i(626937),m=e.i(10372),f=e.i(193695),w=e.i(509580);e.i(52474);var R=e.i(600220);let v=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/notebooks/[id]/retag/route",pathname:"/api/notebooks/[id]/retag",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/notebooks/[id]/retag/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(371253),...{}}),{workAsyncStorage:E,workUnitAsyncStorage:y,serverHooks:S}=v;async function T(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),v.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/notebooks/[id]/retag/route";E=E.replace(/\/index$/,"")||"/";let y=await v.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:S,deploymentId:T,params:b,nextConfig:A,parsedUrl:C,isDraftMode:x,prerenderManifest:N,routerServerContext:I,isOnDemandRevalidate:_,revalidateOnlyGenerated:O,resolvedPathname:P,clientReferenceManifest:k,serverActionsManifest:q}=y,D=(0,s.normalizeAppPath)(E),j=!!N.routes[P]&&(v.isDev||(0,w.isRouteCacheOwner)(P,v.cacheOwner,N.routes[P])),M=!!(N.dynamicRoutes[D]||j),U=async()=>((null==I?void 0:I.render404)?await I.render404(e,t,C,!1):t.end("This page could not be found"),null);if(M&&!x){let e=N.dynamicRoutes[D];if(e&&!1===e.fallback&&!j){if(A.adapterPath)return await U();throw new f.NoFallbackError}}let H=null;!M||v.isDev||x||(H="/index"===(H=P)?"/":H);let G=!0===v.isDev||!M,L=M&&!G;q&&k&&(0,o.setManifestsSingleton)({page:E,clientReferenceManifest:k,serverActionsManifest:q});let F=e.method||"GET",$=(0,i.getTracer)(),B=$.getActiveScopeSpan(),J=!!(null==I?void 0:I.isWrappedByNextServer),K=!!(0,n.getRequestMeta)(e,"minimalMode"),Y=(0,n.getRequestMeta)(e,"incrementalCache")||await v.getIncrementalCache(e,A,N,K);null==Y||Y.resetRequestCache(),globalThis.__incrementalCache=Y;let z={params:b,previewProps:N.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts,useCacheTimeout:A.experimental.useCacheTimeout},cacheComponents:!!A.cacheComponents,validationLevel:A.experimental.instantInsights.validationLevel,isDraftMode:x,supportsDynamicResponse:G,incrementalCache:Y,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:A.cacheLife,staticPageGenerationTimeout:A.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>v.onRequestError(e,t,a,n,I)},sharedContext:{buildId:S,deploymentId:T}},V=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),Z=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t)),W=async({previousCacheEntry:r})=>{try{if(!K&&_&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await v.handle(Z,z);e.fetchMetrics=z.renderOpts.fetchMetrics;let i=z.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let o=z.renderOpts.collectedTags;if(!M)return await (0,g.sendResponse)(V,X,n,i),null;{let e=await n.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(n.headers);o&&(t[m.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,a=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=m.INFINITE_CACHE?!1!==r&&r>0?A.expireTime:void 0:z.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await v.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:_})},!1,I),t}},Q=async(n,o)=>{try{var s,l;let n=await v.handleResponse({req:e,nextConfig:A,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:_,revalidateOnlyGenerated:O,responseGenerator:W,waitUntil:a.waitUntil,isMinimalMode:K});if(!M)return;if((null==n||null==(s=n.value)?void 0:s.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",_?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let i=(0,p.fromNodeOutgoingHttpHeaders)(n.value.headers);K&&M||i.delete(m.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||i.get("Cache-Control")||i.set("Cache-Control",(0,h.getCacheControlHeader)(n.cacheControl)),await (0,g.sendResponse)(V,X,new Response(n.value.body,{headers:i,status:n.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await v.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:_})},!1,I),M)throw t;await (0,g.sendResponse)(V,X,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:i.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route")||D,s=`${F} ${a}`;n.setAttributes({"next.route":a,"http.route":a,"next.span_name":s}),n.updateName(s),o&&o!==n&&(o.setAttribute("http.route",a),o.updateName(s))})()}};if(J&&B)await Q(B,void 0);else{let t=$.getActiveScopeSpan();await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${E}`,kind:i.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>Q(e,t)),void 0,!J)}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:y})},"routeModule",0,v,"serverHooks",0,S,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,y])},63856,e=>e.a(async(t,r)=>{try{var a=e.i(757660),n=e.i(79832),i=e.i(698043),o=t([n]);async function s(){let e=await (0,a.getServerSession)(n.authOptions);return e?.user?.email?i.prisma.user.findUnique({where:{email:e.user.email}}):null}[n]=o.then?(await o)():o,e.s(["getCurrentUser",0,s]),r()}catch(e){r(e)}},!1),539811,e=>{"use strict";var t=e.i(376025);e.s(["calculateGrade",0,function(e,r,a=new Date,n="en",i=t.DEFAULT_TIME_ZONE){let o=(0,t.getCalendarDate)(a,i),s=o.getFullYear(),l=o.getMonth()+1,u=s-r,d="2nd";l>=9?(u+=1,d="1st"):d=l<2?"1st":"2nd";let c="zh"===n,g=c?"1st"===d?"上期":"下期":"1st"===d?"1st Semester":"2nd Semester",p=(c?{primary:["一年级","二年级","三年级","四年级","五年级","六年级"],junior_high:["初一","初二","初三"],senior_high:["高一","高二","高三"],university:["大一","大二","大三","大四"]}:{primary:["Grade 1","Grade 2","Grade 3","Grade 4","Grade 5","Grade 6"],junior_high:["Junior High Grade 1","Junior High Grade 2","Junior High Grade 3"],senior_high:["Senior High Grade 1","Senior High Grade 2","Senior High Grade 3"],university:["Freshman","Sophomore","Junior","Senior"]})[e]||[],h=`${u}`;if(h=u>0&&u<=p.length?p[u-1]:u>p.length?c?"已毕业":"Graduated":c?"学前":"Pre-school",!c)return`${h}, ${g}`;{let e="1st"===d?"上":"下";return`${h}${e}`}}])},655920,e=>{"use strict";e.s(["getDefaultPaperLevel",0,function(e){return"number"!=typeof e||!Number.isInteger(e)||e<1||e>5?null:e<=3?"a":"b"}])},583918,e=>{"use strict";var t=e.i(698043),r=e.i(843911),a=e.i(459398),n=e.i(183508),i=e.i(539811),o=e.i(668426),s=e.i(50377),l=e.i(655920),u=e.i(798003),d=e.i(926828);let c=(0,s.createLogger)("retag");async function g(e,s){let l=await t.prisma.errorItem.findUnique({where:{id:e},select:{userId:!0,questionText:!0,answerText:!0,analysis:!0,wrongAnswerText:!0,mistakeAnalysis:!0,gradeSemester:!0,paperLevel:!0,subject:{select:{name:!0,stage:!0,subjectKey:!0}},tags:{select:{id:!0,name:!0,isSystem:!0}},user:{select:{educationStage:!0,enrollmentYear:!0}}}});if(!l||l.userId!==s)throw Error("ITEM_NOT_FOUND");if(!l.questionText?.trim())throw Error("NO_QUESTION_TEXT");let d=l.subject?(0,o.resolveNotebookScope)(l.subject):null,c=d?.subject||"math",g=d?.subject?await (0,a.getScopeTagsFromDB)(d.subject,d.stage):await (0,a.getMathTagsFromDB)((0,n.calculateGradeNumber)(l.user.educationStage,l.user.enrollmentYear,(0,u.getAppTimeZone)()));if(0===g.length)throw Error("NO_AVAILABLE_TAGS");let p=l.gradeSemester||(l.user.educationStage&&l.user.enrollmentYear?(0,i.calculateGrade)(l.user.educationStage,l.user.enrollmentYear,new Date,"zh",(0,u.getAppTimeZone)()):null),{tags:h,difficultyStars:m}=await (0,r.getAIService)().suggestKnowledgeTags({questionText:l.questionText,answerText:l.answerText,analysis:l.analysis,wrongAnswerText:l.wrongAnswerText,mistakeAnalysis:l.mistakeAnalysis,subject:o.SUBJECT_DISPLAY_NAMES[c],allowedTags:g,gradeSemester:p});if(0===h.length)throw Error("NO_TAGS_SELECTED");let f=await t.prisma.knowledgeTag.findMany({where:{isSystem:!0,subject:c,name:{in:h}},select:{id:!0,name:!0}}),w=new Map;for(let e of f)w.has(e.name)||w.set(e.name,e.id);let R=h.filter(e=>w.has(e));return{tagNames:[...R,...l.tags.filter(e=>!e.isSystem).map(e=>e.name).filter(e=>!R.includes(e))],difficultyStars:m,paperLevel:l.paperLevel,newTagIds:R.map(e=>w.get(e)),oldSystemTags:l.tags.filter(e=>e.isSystem).map(({id:e,name:t})=>({id:e,name:t}))}}async function p(e,t){let{tagNames:r,difficultyStars:a}=await g(e,t);return{errorItemId:e,tags:r,difficultyStars:a}}async function h(e,r){let{tagNames:a,newTagIds:n,oldSystemTags:i,difficultyStars:o,paperLevel:s}=await g(e,r),u=s?null:(0,l.getDefaultPaperLevel)(o);return await t.prisma.errorItem.update({where:{id:e},data:{knowledgePoints:JSON.stringify(a),...null!==o?{difficultyStars:o}:{},...u?{paperLevel:u}:{},tags:{disconnect:i.map(e=>({id:e.id})),connect:n.map(e=>({id:e}))}}}),c.info({errorItemId:e,before:i.map(e=>e.name),after:a,difficultyStars:o},"Error item retagged"),{errorItemId:e,tags:a,difficultyStars:o}}let m=new Map,f=(e,t)=>`${e}:${t}`;async function w(e,r){let a=f(e,r),n=m.get(a);if(n?.running)return n;let i=await t.prisma.errorItem.findMany({where:{userId:e,subjectId:r},select:{id:!0},orderBy:{createdAt:"asc"}}),o={subjectId:r,total:i.length,done:0,failed:0,running:i.length>0,startedAt:new Date().toISOString(),finishedAt:i.length>0?null:new Date().toISOString()};m.set(a,o);let s=await t.prisma.subject.findUnique({where:{id:r},select:{name:!0}}),l=(0,d.startBackgroundTask)({userId:e,kind:"retag_notebook",subject:s?.name??null,link:`/notebooks/${r}`,total:i.length}),u=i.map(e=>e.id),g=async()=>{for(;u.length>0;){let t=u.shift();try{await h(t,e)}catch(e){o.failed++,c.warn({errorItemId:t,error:e instanceof Error?e.message:String(e)},"Retag failed")}finally{o.done++,l.setProgress(o.done,o.total,o.failed)}}};return Promise.all(Array.from({length:Math.min(2,u.length)},g)).finally(()=>{o.running=!1,o.finishedAt=new Date().toISOString(),o.total>0&&o.failed===o.total?l.fail("ALL_FAILED"):l.succeed(),c.info({subjectId:r,total:o.total,failed:o.failed},"Retag job finished")}),o}e.s(["getRetagJob",0,function(e,t){return m.get(f(e,t))??null},"previewRetagErrorItem",0,p,"retagErrorItem",0,h,"startRetagJob",0,w])}];
2
2
 
3
3
  //# sourceMappingURL=_0gwg6ba._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[27254,e=>e.a(async(t,r)=>{try{var a=e.i(58821),n=e.i(13618),i=e.i(79832),s=e.i(98043),o=e.i(58078),d=e.i(76759),u=e.i(50377),l=t([i]);[i]=l.then?(await l)():l;let p=(0,u.createLogger)("api:admin:users:id:detail");async function c(e,{params:t}){let{id:r}=await t,u=await (0,n.getServerSession)(i.authOptions);if(!(0,o.requireAdmin)(u))return(0,d.forbidden)("Admin access required");try{let e=await s.prisma.user.findUnique({where:{id:r},select:{id:!0,name:!0,email:!0,role:!0,isActive:!0,createdAt:!0,educationStage:!0,enrollmentYear:!0}});if(!e)return(0,d.notFound)("User not found");let t=await s.prisma.subject.findMany({where:{userId:r},select:{id:!0,name:!0,_count:{select:{errorItems:!0}}},orderBy:{createdAt:"asc"}}),n=await s.prisma.errorItem.count({where:{userId:r}}),i=await s.prisma.practiceRecord.count({where:{userId:r}}),o=t.length,u=new Date(Date.now()-6048e5),l=await s.prisma.errorItem.count({where:{userId:r,createdAt:{gte:u}}}),c=await s.prisma.errorItem.groupBy({by:["masteryLevel"],where:{userId:r},_count:{id:!0}}),p={new:c.find(e=>0===e.masteryLevel)?._count.id||0,reviewing:c.find(e=>1===e.masteryLevel)?._count.id||0,mastered:c.find(e=>2===e.masteryLevel)?._count.id||0},h=await s.prisma.errorItem.groupBy({by:["subjectId"],where:{userId:r},_count:{id:!0}}),m=h.map(e=>e.subjectId).filter(Boolean),R=await s.prisma.subject.findMany({where:{id:{in:m}},select:{id:!0,name:!0}}),w=new Map(R.map(e=>[e.id,e.name])),v=h.filter(e=>e.subjectId).map(e=>({name:w.get(e.subjectId)||"未知",count:e._count.id})),f=await s.prisma.errorItem.findMany({where:{userId:r},select:{id:!0,questionText:!0,ocrText:!0,masteryLevel:!0,createdAt:!0,subject:{select:{name:!0}}},orderBy:{createdAt:"desc"},take:20});return a.NextResponse.json({user:e,notebooks:t.map(e=>({id:e.id,name:e.name,errorCount:e._count.errorItems})),errorCount:n,practiceCount:i,notebookCount:o,recent7DaysCount:l,masteryDistribution:p,subjectDistribution:v,recentErrorItems:f.map(e=>({id:e.id,questionText:e.questionText,ocrText:e.ocrText,masteryLevel:e.masteryLevel,createdAt:e.createdAt,subject:e.subject}))})}catch(e){return p.error({error:e,userId:r},"Error fetching user detail"),(0,d.internalError)("Failed to fetch user detail")}}e.s(["GET",0,c]),r()}catch(e){r(e)}},!1),19497,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),i=e.i(61916),s=e.i(74677),o=e.i(69741),d=e.i(16795),u=e.i(87718),l=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),m=e.i(74838),R=e.i(10372),w=e.i(93695),v=e.i(9580);e.i(52474);var f=e.i(220);let g=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/admin/users/[id]/detail/route",pathname:"/api/admin/users/[id]/detail",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/admin/users/[id]/detail/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(27254),...{}}),{workAsyncStorage:y,workUnitAsyncStorage:E,serverHooks:A}=g;async function C(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),g.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/admin/users/[id]/detail/route";y=y.replace(/\/index$/,"")||"/";let E=await g.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!E)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:A,deploymentId:C,params:x,nextConfig:b,parsedUrl:I,isDraftMode:T,prerenderManifest:_,routerServerContext:S,isOnDemandRevalidate:P,revalidateOnlyGenerated:q,resolvedPathname:N,clientReferenceManifest:O,serverActionsManifest:M}=E,H=(0,o.normalizeAppPath)(y),j=!!_.routes[N]&&(g.isDev||(0,v.isRouteCacheOwner)(N,g.cacheOwner,_.routes[N])),U=!!(_.dynamicRoutes[H]||j),D=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,I,!1):t.end("This page could not be found"),null);if(U&&!T){let e=_.dynamicRoutes[H];if(e&&!1===e.fallback&&!j){if(b.adapterPath)return await D();throw new w.NoFallbackError}}let k=null;!U||g.isDev||T||(k="/index"===(k=N)?"/":k);let L=!0===g.isDev||!U,B=U&&!L;M&&O&&(0,s.setManifestsSingleton)({page:y,clientReferenceManifest:O,serverActionsManifest:M});let F=e.method||"GET",K=(0,i.getTracer)(),$=K.getActiveScopeSpan(),G=!!(null==S?void 0:S.isWrappedByNextServer),V=!!(0,n.getRequestMeta)(e,"minimalMode"),X=(0,n.getRequestMeta)(e,"incrementalCache")||await g.getIncrementalCache(e,b,_,V);null==X||X.resetRequestCache(),globalThis.__incrementalCache=X;let W={params:x,previewProps:_.preview,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts,useCacheTimeout:b.experimental.useCacheTimeout},cacheComponents:!!b.cacheComponents,validationLevel:b.experimental.instantInsights.validationLevel,isDraftMode:T,supportsDynamicResponse:L,incrementalCache:X,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:b.cacheLife,staticPageGenerationTimeout:b.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>g.onRequestError(e,t,a,n,S)},sharedContext:{buildId:A,deploymentId:C}},z=new d.NodeNextRequest(e),Y=new d.NodeNextResponse(t),Z=u.NextRequestAdapter.fromNodeNextRequest(z,(0,u.signalFromNodeResponse)(t)),J=async({previousCacheEntry:r})=>{try{if(!V&&P&&q&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await g.handle(Z,W);e.fetchMetrics=W.renderOpts.fetchMetrics;let i=W.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let s=W.renderOpts.collectedTags;if(!U)return await (0,p.sendResponse)(z,Y,n,i),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);s&&(t[R.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,a=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=R.INFINITE_CACHE?!1!==r&&r>0?b.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await g.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:B,isOnDemandRevalidate:P})},!1,S),t}},Q=async(n,s)=>{try{var o,d;let n=await g.handleResponse({req:e,nextConfig:b,cacheKey:k,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:_,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:q,responseGenerator:J,waitUntil:a.waitUntil,isMinimalMode:V});if(!U)return;if((null==n||null==(o=n.value)?void 0:o.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(d=n.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});V||t.setHeader("x-nextjs-cache",P?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let i=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);V&&U||i.delete(R.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||i.get("Cache-Control")||i.set("Cache-Control",(0,m.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(z,Y,new Response(n.value.body,{headers:i,status:n.value.status||200}));return}catch(t){if(t instanceof w.NoFallbackError||await g.onRequestError(e,t,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:B,isOnDemandRevalidate:P})},!1,S),U)throw t;await (0,p.sendResponse)(z,Y,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:i.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let r=K.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==l.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route")||H,o=`${F} ${a}`;n.setAttributes({"next.route":a,"http.route":a,"next.span_name":o}),n.updateName(o),s&&s!==n&&(s.setAttribute("http.route",a),s.updateName(o))})()}};if(G&&$)await Q($,void 0);else{let t=K.getActiveScopeSpan();await K.withPropagatedContext(e.headers,()=>K.trace(l.BaseServerSpan.handleRequest,{spanName:`${F} ${y}`,kind:i.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>Q(e,t)),void 0,!G)}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:E})},"routeModule",0,g,"serverHooks",0,A,"workAsyncStorage",0,y,"workUnitAsyncStorage",0,E])}];
1
+ module.exports=[627254,e=>e.a(async(t,r)=>{try{var a=e.i(89171),n=e.i(757660),i=e.i(79832),s=e.i(698043),o=e.i(258078),d=e.i(181912),u=e.i(50377),l=t([i]);[i]=l.then?(await l)():l;let p=(0,u.createLogger)("api:admin:users:id:detail");async function c(e,{params:t}){let{id:r}=await t,u=await (0,n.getServerSession)(i.authOptions);if(!(0,o.requireAdmin)(u))return(0,d.forbidden)("Admin access required");try{let e=await s.prisma.user.findUnique({where:{id:r},select:{id:!0,name:!0,email:!0,role:!0,isActive:!0,createdAt:!0,educationStage:!0,enrollmentYear:!0}});if(!e)return(0,d.notFound)("User not found");let t=await s.prisma.subject.findMany({where:{userId:r},select:{id:!0,name:!0,_count:{select:{errorItems:!0}}},orderBy:{createdAt:"asc"}}),n=await s.prisma.errorItem.count({where:{userId:r}}),i=await s.prisma.practiceRecord.count({where:{userId:r}}),o=t.length,u=new Date(Date.now()-6048e5),l=await s.prisma.errorItem.count({where:{userId:r,createdAt:{gte:u}}}),c=await s.prisma.errorItem.groupBy({by:["masteryLevel"],where:{userId:r},_count:{id:!0}}),p={new:c.find(e=>0===e.masteryLevel)?._count.id||0,reviewing:c.find(e=>1===e.masteryLevel)?._count.id||0,mastered:c.find(e=>2===e.masteryLevel)?._count.id||0},h=await s.prisma.errorItem.groupBy({by:["subjectId"],where:{userId:r},_count:{id:!0}}),m=h.map(e=>e.subjectId).filter(Boolean),R=await s.prisma.subject.findMany({where:{id:{in:m}},select:{id:!0,name:!0}}),w=new Map(R.map(e=>[e.id,e.name])),v=h.filter(e=>e.subjectId).map(e=>({name:w.get(e.subjectId)||"未知",count:e._count.id})),f=await s.prisma.errorItem.findMany({where:{userId:r},select:{id:!0,questionText:!0,ocrText:!0,masteryLevel:!0,createdAt:!0,subject:{select:{name:!0}}},orderBy:{createdAt:"desc"},take:20});return a.NextResponse.json({user:e,notebooks:t.map(e=>({id:e.id,name:e.name,errorCount:e._count.errorItems})),errorCount:n,practiceCount:i,notebookCount:o,recent7DaysCount:l,masteryDistribution:p,subjectDistribution:v,recentErrorItems:f.map(e=>({id:e.id,questionText:e.questionText,ocrText:e.ocrText,masteryLevel:e.masteryLevel,createdAt:e.createdAt,subject:e.subject}))})}catch(e){return p.error({error:e,userId:r},"Error fetching user detail"),(0,d.internalError)("Failed to fetch user detail")}}e.s(["GET",0,c]),r()}catch(e){r(e)}},!1),319497,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),n=e.i(759756),i=e.i(561916),s=e.i(174677),o=e.i(869741),d=e.i(316795),u=e.i(487718),l=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),m=e.i(626937),R=e.i(10372),w=e.i(193695),v=e.i(509580);e.i(52474);var f=e.i(600220);let g=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/admin/users/[id]/detail/route",pathname:"/api/admin/users/[id]/detail",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/admin/users/[id]/detail/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(627254),...{}}),{workAsyncStorage:y,workUnitAsyncStorage:E,serverHooks:A}=g;async function C(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),g.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/admin/users/[id]/detail/route";y=y.replace(/\/index$/,"")||"/";let E=await g.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!E)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:A,deploymentId:C,params:x,nextConfig:b,parsedUrl:I,isDraftMode:T,prerenderManifest:_,routerServerContext:S,isOnDemandRevalidate:P,revalidateOnlyGenerated:q,resolvedPathname:N,clientReferenceManifest:O,serverActionsManifest:M}=E,H=(0,o.normalizeAppPath)(y),j=!!_.routes[N]&&(g.isDev||(0,v.isRouteCacheOwner)(N,g.cacheOwner,_.routes[N])),U=!!(_.dynamicRoutes[H]||j),D=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,I,!1):t.end("This page could not be found"),null);if(U&&!T){let e=_.dynamicRoutes[H];if(e&&!1===e.fallback&&!j){if(b.adapterPath)return await D();throw new w.NoFallbackError}}let k=null;!U||g.isDev||T||(k="/index"===(k=N)?"/":k);let L=!0===g.isDev||!U,B=U&&!L;M&&O&&(0,s.setManifestsSingleton)({page:y,clientReferenceManifest:O,serverActionsManifest:M});let F=e.method||"GET",K=(0,i.getTracer)(),$=K.getActiveScopeSpan(),G=!!(null==S?void 0:S.isWrappedByNextServer),V=!!(0,n.getRequestMeta)(e,"minimalMode"),X=(0,n.getRequestMeta)(e,"incrementalCache")||await g.getIncrementalCache(e,b,_,V);null==X||X.resetRequestCache(),globalThis.__incrementalCache=X;let W={params:x,previewProps:_.preview,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts,useCacheTimeout:b.experimental.useCacheTimeout},cacheComponents:!!b.cacheComponents,validationLevel:b.experimental.instantInsights.validationLevel,isDraftMode:T,supportsDynamicResponse:L,incrementalCache:X,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:b.cacheLife,staticPageGenerationTimeout:b.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>g.onRequestError(e,t,a,n,S)},sharedContext:{buildId:A,deploymentId:C}},z=new d.NodeNextRequest(e),Y=new d.NodeNextResponse(t),Z=u.NextRequestAdapter.fromNodeNextRequest(z,(0,u.signalFromNodeResponse)(t)),J=async({previousCacheEntry:r})=>{try{if(!V&&P&&q&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await g.handle(Z,W);e.fetchMetrics=W.renderOpts.fetchMetrics;let i=W.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let s=W.renderOpts.collectedTags;if(!U)return await (0,p.sendResponse)(z,Y,n,i),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);s&&(t[R.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,a=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=R.INFINITE_CACHE?!1!==r&&r>0?b.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await g.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:B,isOnDemandRevalidate:P})},!1,S),t}},Q=async(n,s)=>{try{var o,d;let n=await g.handleResponse({req:e,nextConfig:b,cacheKey:k,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:_,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:q,responseGenerator:J,waitUntil:a.waitUntil,isMinimalMode:V});if(!U)return;if((null==n||null==(o=n.value)?void 0:o.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(d=n.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});V||t.setHeader("x-nextjs-cache",P?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let i=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);V&&U||i.delete(R.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||i.get("Cache-Control")||i.set("Cache-Control",(0,m.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(z,Y,new Response(n.value.body,{headers:i,status:n.value.status||200}));return}catch(t){if(t instanceof w.NoFallbackError||await g.onRequestError(e,t,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:B,isOnDemandRevalidate:P})},!1,S),U)throw t;await (0,p.sendResponse)(z,Y,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:i.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let r=K.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==l.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route")||H,o=`${F} ${a}`;n.setAttributes({"next.route":a,"http.route":a,"next.span_name":o}),n.updateName(o),s&&s!==n&&(s.setAttribute("http.route",a),s.updateName(o))})()}};if(G&&$)await Q($,void 0);else{let t=K.getActiveScopeSpan();await K.withPropagatedContext(e.headers,()=>K.trace(l.BaseServerSpan.handleRequest,{spanName:`${F} ${y}`,kind:i.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>Q(e,t)),void 0,!G)}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:E})},"routeModule",0,g,"serverHooks",0,A,"workAsyncStorage",0,y,"workUnitAsyncStorage",0,E])}];
2
2
 
3
3
  //# sourceMappingURL=_0gxi3zr._.js.map
@@ -1,19 +1,19 @@
1
- module.exports=[70943,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={getOrigin:function(){return l},resolveArray:function(){return n},resolveAsArrayOrUndefined:function(){return a}};for(var o in i)Object.defineProperty(r,o,{enumerable:!0,get:i[o]});function n(e){return Array.isArray(e)?e:[e]}function a(e){if(null!=e)return n(e)}function l(e){let t;if("string"==typeof e)try{t=(e=new URL(e)).origin}catch{}return t}},73853,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={resolveManifest:function(){return s},resolveRobots:function(){return a},resolveRouteData:function(){return u},resolveSitemap:function(){return l}};for(var o in i)Object.defineProperty(r,o,{enumerable:!0,get:i[o]});let n=e.r(70943);function a(e){let t="";for(let r of Array.isArray(e.rules)?e.rules:[e.rules]){for(let e of(0,n.resolveArray)(r.userAgent||["*"]))t+=`User-Agent: ${e}
2
- `;if(r.allow)for(let e of(0,n.resolveArray)(r.allow))t+=`Allow: ${e}
3
- `;if(r.disallow)for(let e of(0,n.resolveArray)(r.disallow))t+=`Disallow: ${e}
1
+ module.exports=[470943,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={getOrigin:function(){return s},resolveArray:function(){return o},resolveAsArrayOrUndefined:function(){return a}};for(var n in i)Object.defineProperty(r,n,{enumerable:!0,get:i[n]});function o(e){return Array.isArray(e)?e:[e]}function a(e){if(null!=e)return o(e)}function s(e){let t;if("string"==typeof e)try{t=(e=new URL(e)).origin}catch{}return t}},973853,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={resolveManifest:function(){return l},resolveRobots:function(){return a},resolveRouteData:function(){return u},resolveSitemap:function(){return s}};for(var n in i)Object.defineProperty(r,n,{enumerable:!0,get:i[n]});let o=e.r(470943);function a(e){let t="";for(let r of Array.isArray(e.rules)?e.rules:[e.rules]){for(let e of(0,o.resolveArray)(r.userAgent||["*"]))t+=`User-Agent: ${e}
2
+ `;if(r.allow)for(let e of(0,o.resolveArray)(r.allow))t+=`Allow: ${e}
3
+ `;if(r.disallow)for(let e of(0,o.resolveArray)(r.disallow))t+=`Disallow: ${e}
4
4
  `;if(r.crawlDelay&&(t+=`Crawl-delay: ${r.crawlDelay}
5
5
  `),r.other)for(let e of Object.keys(r.other)){let i=r.other[e];if(null!=i)for(let r of Array.isArray(i)?i:[i])t+=`${e}: ${r}
6
6
  `}t+="\n"}return e.host&&(t+=`Host: ${e.host}
7
- `),e.sitemap&&(0,n.resolveArray)(e.sitemap).forEach(e=>{t+=`Sitemap: ${e}
8
- `}),t}function l(e){let t=e.some(e=>Object.keys(e.alternates??{}).length>0),r=e.some(e=>{var t;return!!(null==(t=e.images)?void 0:t.length)}),i=e.some(e=>{var t;return!!(null==(t=e.videos)?void 0:t.length)}),o="";for(let s of(o+='<?xml version="1.0" encoding="UTF-8"?>\n',o+='<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"',r&&(o+=' xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"'),i&&(o+=' xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"'),t?o+=' xmlns:xhtml="http://www.w3.org/1999/xhtml">\n':o+=">\n",e)){var n,a,l;o+="<url>\n",o+=`<loc>${s.url}</loc>
9
- `;let e=null==(n=s.alternates)?void 0:n.languages;if(e&&Object.keys(e).length)for(let t in e)o+=`<xhtml:link rel="alternate" hreflang="${t}" href="${e[t]}" />
10
- `;if(null==(a=s.images)?void 0:a.length)for(let e of s.images)o+=`<image:image>
7
+ `),e.sitemap&&(0,o.resolveArray)(e.sitemap).forEach(e=>{t+=`Sitemap: ${e}
8
+ `}),t}function s(e){let t=e.some(e=>Object.keys(e.alternates??{}).length>0),r=e.some(e=>{var t;return!!(null==(t=e.images)?void 0:t.length)}),i=e.some(e=>{var t;return!!(null==(t=e.videos)?void 0:t.length)}),n="";for(let l of(n+='<?xml version="1.0" encoding="UTF-8"?>\n',n+='<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"',r&&(n+=' xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"'),i&&(n+=' xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"'),t?n+=' xmlns:xhtml="http://www.w3.org/1999/xhtml">\n':n+=">\n",e)){var o,a,s;n+="<url>\n",n+=`<loc>${l.url}</loc>
9
+ `;let e=null==(o=l.alternates)?void 0:o.languages;if(e&&Object.keys(e).length)for(let t in e)n+=`<xhtml:link rel="alternate" hreflang="${t}" href="${e[t]}" />
10
+ `;if(null==(a=l.images)?void 0:a.length)for(let e of l.images)n+=`<image:image>
11
11
  <image:loc>${e}</image:loc>
12
12
  </image:image>
13
- `;if(null==(l=s.videos)?void 0:l.length)for(let e of s.videos)o+=["<video:video>",`<video:title>${e.title}</video:title>`,`<video:thumbnail_loc>${e.thumbnail_loc}</video:thumbnail_loc>`,`<video:description>${e.description}</video:description>`,e.content_loc&&`<video:content_loc>${e.content_loc}</video:content_loc>`,e.player_loc&&`<video:player_loc>${e.player_loc}</video:player_loc>`,e.duration&&`<video:duration>${e.duration}</video:duration>`,e.view_count&&`<video:view_count>${e.view_count}</video:view_count>`,e.tag&&`<video:tag>${e.tag}</video:tag>`,e.rating&&`<video:rating>${e.rating}</video:rating>`,e.expiration_date&&`<video:expiration_date>${e.expiration_date}</video:expiration_date>`,e.publication_date&&`<video:publication_date>${e.publication_date}</video:publication_date>`,e.family_friendly&&`<video:family_friendly>${e.family_friendly}</video:family_friendly>`,e.requires_subscription&&`<video:requires_subscription>${e.requires_subscription}</video:requires_subscription>`,e.live&&`<video:live>${e.live}</video:live>`,e.restriction&&`<video:restriction relationship="${e.restriction.relationship}">${e.restriction.content}</video:restriction>`,e.platform&&`<video:platform relationship="${e.platform.relationship}">${e.platform.content}</video:platform>`,e.uploader&&`<video:uploader${e.uploader.info&&` info="${e.uploader.info}"`}>${e.uploader.content}</video:uploader>`,`</video:video>
14
- `].filter(Boolean).join("\n");if(s.lastModified){let e=s.lastModified instanceof Date?s.lastModified.toISOString():s.lastModified;o+=`<lastmod>${e}</lastmod>
15
- `}s.changeFrequency&&(o+=`<changefreq>${s.changeFrequency}</changefreq>
16
- `),"number"==typeof s.priority&&(o+=`<priority>${s.priority}</priority>
17
- `),o+="</url>\n"}return o+"</urlset>\n"}function s(e){return JSON.stringify(e)}function u(e,t){return"robots"===t?a(e):"sitemap"===t?l(e):"manifest"===t?s(e):""}},89300,e=>{"use strict";var t=e.i(58821);function r(){return{name:"智能错题本",short_name:"错题本",description:"AI 驱动的智能错题管理系统,帮助学生高效整理、分析和复习错题",start_url:"/",display:"standalone",background_color:"#ffffff",theme_color:"#4f46e5",orientation:"portrait",icons:[{src:"/icons/icon.png",sizes:"any",type:"image/png"}]}}e.s(["default",0,r],7718);var i=e.i(73853);async function o(){let e=await r(),o=(0,i.resolveRouteData)(e,"manifest");return new t.NextResponse(o,{headers:{"Content-Type":"application/manifest+json","Cache-Control":"public, max-age=0, must-revalidate"}})}e.s(["GET",0,o],38813),e.i(38813),e.i(7718),e.s(["GET",0,o],89300)},22945,e=>{"use strict";var t=e.i(47909),r=e.i(74017),i=e.i(96250),o=e.i(59756),n=e.i(61916),a=e.i(74677),l=e.i(69741),s=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),v=e.i(74838),h=e.i(10372),m=e.i(93695),g=e.i(9580);e.i(52474);var y=e.i(220);let w=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/manifest.webmanifest/route",pathname:"/manifest.webmanifest",filename:"manifest--route-entry",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/manifest--route-entry.js",nextConfigOutput:"standalone",userland:()=>e.r(89300),...{}}),{workAsyncStorage:R,workUnitAsyncStorage:_,serverHooks:b}=w;async function A(e,t,i){i.requestMeta&&(0,o.setRequestMeta)(e,i.requestMeta),w.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let R="/manifest.webmanifest/route";R=R.replace(/\/index$/,"")||"/";let _=await w.prepare(e,t,{srcPage:R,multiZoneDraftMode:!1});if(!_)return t.statusCode=400,t.end("Bad Request"),null==i.waitUntil||i.waitUntil.call(i,Promise.resolve()),null;let{buildId:b,deploymentId:A,params:x,nextConfig:C,parsedUrl:E,isDraftMode:$,prerenderManifest:O,routerServerContext:T,isOnDemandRevalidate:S,revalidateOnlyGenerated:P,resolvedPathname:q,clientReferenceManifest:N,serverActionsManifest:M}=_,D=(0,l.normalizeAppPath)(R),H=!!O.routes[q]&&(w.isDev||(0,g.isRouteCacheOwner)(q,w.cacheOwner,O.routes[q])),I=!!(O.dynamicRoutes[D]||H),U=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,E,!1):t.end("This page could not be found"),null);if(I&&!$){let e=O.dynamicRoutes[D];if(e&&!1===e.fallback&&!H){if(C.adapterPath)return await U();throw new m.NoFallbackError}}let k=null;!I||w.isDev||$||(k="/index"===(k=q)?"/":k);let j=!0===w.isDev||!I,F=I&&!j;M&&N&&(0,a.setManifestsSingleton)({page:R,clientReferenceManifest:N,serverActionsManifest:M});let K=e.method||"GET",L=(0,n.getTracer)(),B=L.getActiveScopeSpan(),G=!!(null==T?void 0:T.isWrappedByNextServer),V=!!(0,o.getRequestMeta)(e,"minimalMode"),X=(0,o.getRequestMeta)(e,"incrementalCache")||await w.getIncrementalCache(e,C,O,V);null==X||X.resetRequestCache(),globalThis.__incrementalCache=X;let z={params:x,previewProps:O.preview,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:$,supportsDynamicResponse:j,incrementalCache:X,hmrRefreshHash:(0,o.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:i.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,i,o)=>w.onRequestError(e,t,i,o,T)},sharedContext:{buildId:b,deploymentId:A}},W=new s.NodeNextRequest(e),J=new s.NodeNextResponse(t),Z=u.NextRequestAdapter.fromNodeNextRequest(W,(0,u.signalFromNodeResponse)(t)),Q=async({previousCacheEntry:r})=>{try{if(!V&&S&&P&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await w.handle(Z,z);e.fetchMetrics=z.renderOpts.fetchMetrics;let n=z.renderOpts.pendingWaitUntil;n&&i.waitUntil&&(i.waitUntil(n),n=void 0);let a=z.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(W,J,o,n),null;{let e=await o.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(o.headers);a&&(t[h.NEXT_CACHE_TAGS_HEADER]=a),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,i=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=h.INFINITE_CACHE?!1!==r&&r>0?C.expireTime:void 0:z.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:i}}}}catch(t){throw(null==r?void 0:r.isStale)&&await w.onRequestError(e,t,{routerKind:"App Router",routePath:R,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:S})},!1,T),t}},Y=async(o,a)=>{try{var l,s;let o=await w.handleResponse({req:e,nextConfig:C,cacheKey:k,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:O,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:P,responseGenerator:Q,waitUntil:i.waitUntil,isMinimalMode:V});if(!I)return;if((null==o||null==(l=o.value)?void 0:l.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==o||null==(s=o.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});V||t.setHeader("x-nextjs-cache",S?"REVALIDATED":o.isMiss?"MISS":o.isStale?"STALE":"HIT"),$&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,f.fromNodeOutgoingHttpHeaders)(o.value.headers);V&&I||n.delete(h.NEXT_CACHE_TAGS_HEADER),!o.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,v.getCacheControlHeader)(o.cacheControl)),await (0,p.sendResponse)(W,J,new Response(o.value.body,{headers:n,status:o.value.status||200}));return}catch(t){if(t instanceof m.NoFallbackError||await w.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:S})},!1,T),I)throw t;await (0,p.sendResponse)(W,J,new Response(null,{status:500}));return}finally{(()=>{if(!o)return;let e=t.statusCode;o.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(o.setStatus({code:n.SpanStatusCode.ERROR}),o.setAttribute("error.type",e.toString()));let r=L.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=r.get("next.route")||D,l=`${K} ${i}`;o.setAttributes({"next.route":i,"http.route":i,"next.span_name":l}),o.updateName(l),a&&a!==o&&(a.setAttribute("http.route",i),a.updateName(l))})()}};if(G&&B)await Y(B,void 0);else{let t=L.getActiveScopeSpan();await L.withPropagatedContext(e.headers,()=>L.trace(d.BaseServerSpan.handleRequest,{spanName:`${K} ${R}`,kind:n.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},e=>Y(e,t)),void 0,!G)}}e.s(["handler",0,A,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:R,workUnitAsyncStorage:_})},"routeModule",0,w,"serverHooks",0,b,"workAsyncStorage",0,R,"workUnitAsyncStorage",0,_])}];
13
+ `;if(null==(s=l.videos)?void 0:s.length)for(let e of l.videos)n+=["<video:video>",`<video:title>${e.title}</video:title>`,`<video:thumbnail_loc>${e.thumbnail_loc}</video:thumbnail_loc>`,`<video:description>${e.description}</video:description>`,e.content_loc&&`<video:content_loc>${e.content_loc}</video:content_loc>`,e.player_loc&&`<video:player_loc>${e.player_loc}</video:player_loc>`,e.duration&&`<video:duration>${e.duration}</video:duration>`,e.view_count&&`<video:view_count>${e.view_count}</video:view_count>`,e.tag&&`<video:tag>${e.tag}</video:tag>`,e.rating&&`<video:rating>${e.rating}</video:rating>`,e.expiration_date&&`<video:expiration_date>${e.expiration_date}</video:expiration_date>`,e.publication_date&&`<video:publication_date>${e.publication_date}</video:publication_date>`,e.family_friendly&&`<video:family_friendly>${e.family_friendly}</video:family_friendly>`,e.requires_subscription&&`<video:requires_subscription>${e.requires_subscription}</video:requires_subscription>`,e.live&&`<video:live>${e.live}</video:live>`,e.restriction&&`<video:restriction relationship="${e.restriction.relationship}">${e.restriction.content}</video:restriction>`,e.platform&&`<video:platform relationship="${e.platform.relationship}">${e.platform.content}</video:platform>`,e.uploader&&`<video:uploader${e.uploader.info&&` info="${e.uploader.info}"`}>${e.uploader.content}</video:uploader>`,`</video:video>
14
+ `].filter(Boolean).join("\n");if(l.lastModified){let e=l.lastModified instanceof Date?l.lastModified.toISOString():l.lastModified;n+=`<lastmod>${e}</lastmod>
15
+ `}l.changeFrequency&&(n+=`<changefreq>${l.changeFrequency}</changefreq>
16
+ `),"number"==typeof l.priority&&(n+=`<priority>${l.priority}</priority>
17
+ `),n+="</url>\n"}return n+"</urlset>\n"}function l(e){return JSON.stringify(e)}function u(e,t){return"robots"===t?a(e):"sitemap"===t?s(e):"manifest"===t?l(e):""}},589300,e=>{"use strict";var t=e.i(89171);function r(){return{id:"/",name:"智能错题本",short_name:"错题本",description:"AI 驱动的智能错题管理系统,帮助学生高效整理、分析和复习错题",lang:"zh-CN",start_url:"/",scope:"/",display:"standalone",background_color:"#ffffff",theme_color:"#4f46e5",orientation:"any",categories:["education","productivity"],icons:[{src:"/icons/icon-192.png",sizes:"192x192",type:"image/png",purpose:"any"},{src:"/icons/icon-512.png",sizes:"512x512",type:"image/png",purpose:"any"},{src:"/icons/icon-maskable-512.png",sizes:"512x512",type:"image/png",purpose:"maskable"}]}}e.s(["default",0,r],407718);var i=e.i(973853);async function n(){let e=await r(),n=(0,i.resolveRouteData)(e,"manifest");return new t.NextResponse(n,{headers:{"Content-Type":"application/manifest+json","Cache-Control":"public, max-age=0, must-revalidate"}})}e.s(["GET",0,n],238813),e.i(238813),e.i(407718),e.s(["GET",0,n],589300)},422945,e=>{"use strict";var t=e.i(747909),r=e.i(174017),i=e.i(996250),n=e.i(759756),o=e.i(561916),a=e.i(174677),s=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),f=e.i(570101),v=e.i(626937),h=e.i(10372),m=e.i(193695),g=e.i(509580);e.i(52474);var y=e.i(600220);let w=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/manifest.webmanifest/route",pathname:"/manifest.webmanifest",filename:"manifest--route-entry",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/manifest--route-entry.js",nextConfigOutput:"standalone",userland:()=>e.r(589300),...{}}),{workAsyncStorage:R,workUnitAsyncStorage:_,serverHooks:b}=w;async function x(e,t,i){i.requestMeta&&(0,n.setRequestMeta)(e,i.requestMeta),w.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let R="/manifest.webmanifest/route";R=R.replace(/\/index$/,"")||"/";let _=await w.prepare(e,t,{srcPage:R,multiZoneDraftMode:!1});if(!_)return t.statusCode=400,t.end("Bad Request"),null==i.waitUntil||i.waitUntil.call(i,Promise.resolve()),null;let{buildId:b,deploymentId:x,params:A,nextConfig:C,parsedUrl:E,isDraftMode:$,prerenderManifest:O,routerServerContext:T,isOnDemandRevalidate:S,revalidateOnlyGenerated:P,resolvedPathname:q,clientReferenceManifest:N,serverActionsManifest:M}=_,k=(0,s.normalizeAppPath)(R),D=!!O.routes[q]&&(w.isDev||(0,g.isRouteCacheOwner)(q,w.cacheOwner,O.routes[q])),H=!!(O.dynamicRoutes[k]||D),I=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,E,!1):t.end("This page could not be found"),null);if(H&&!$){let e=O.dynamicRoutes[k];if(e&&!1===e.fallback&&!D){if(C.adapterPath)return await I();throw new m.NoFallbackError}}let U=null;!H||w.isDev||$||(U="/index"===(U=q)?"/":U);let j=!0===w.isDev||!H,F=H&&!j;M&&N&&(0,a.setManifestsSingleton)({page:R,clientReferenceManifest:N,serverActionsManifest:M});let K=e.method||"GET",L=(0,o.getTracer)(),B=L.getActiveScopeSpan(),G=!!(null==T?void 0:T.isWrappedByNextServer),z=!!(0,n.getRequestMeta)(e,"minimalMode"),V=(0,n.getRequestMeta)(e,"incrementalCache")||await w.getIncrementalCache(e,C,O,z);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let X={params:A,previewProps:O.preview,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:$,supportsDynamicResponse:j,incrementalCache:V,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:i.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,i,n)=>w.onRequestError(e,t,i,n,T)},sharedContext:{buildId:b,deploymentId:x}},W=new l.NodeNextRequest(e),J=new l.NodeNextResponse(t),Z=u.NextRequestAdapter.fromNodeNextRequest(W,(0,u.signalFromNodeResponse)(t)),Q=async({previousCacheEntry:r})=>{try{if(!z&&S&&P&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await w.handle(Z,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let o=X.renderOpts.pendingWaitUntil;o&&i.waitUntil&&(i.waitUntil(o),o=void 0);let a=X.renderOpts.collectedTags;if(!H)return await (0,p.sendResponse)(W,J,n,o),null;{let e=await n.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(n.headers);a&&(t[h.NEXT_CACHE_TAGS_HEADER]=a),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,i=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=h.INFINITE_CACHE?!1!==r&&r>0?C.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:i}}}}catch(t){throw(null==r?void 0:r.isStale)&&await w.onRequestError(e,t,{routerKind:"App Router",routePath:R,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:S})},!1,T),t}},Y=async(n,a)=>{try{var s,l;let n=await w.handleResponse({req:e,nextConfig:C,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:O,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:P,responseGenerator:Q,waitUntil:i.waitUntil,isMinimalMode:z});if(!H)return;if((null==n||null==(s=n.value)?void 0:s.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});z||t.setHeader("x-nextjs-cache",S?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),$&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,f.fromNodeOutgoingHttpHeaders)(n.value.headers);z&&H||o.delete(h.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,v.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(W,J,new Response(n.value.body,{headers:o,status:n.value.status||200}));return}catch(t){if(t instanceof m.NoFallbackError||await w.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:S})},!1,T),H)throw t;await (0,p.sendResponse)(W,J,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:o.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let r=L.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=r.get("next.route")||k,s=`${K} ${i}`;n.setAttributes({"next.route":i,"http.route":i,"next.span_name":s}),n.updateName(s),a&&a!==n&&(a.setAttribute("http.route",i),a.updateName(s))})()}};if(G&&B)await Y(B,void 0);else{let t=L.getActiveScopeSpan();await L.withPropagatedContext(e.headers,()=>L.trace(d.BaseServerSpan.handleRequest,{spanName:`${K} ${R}`,kind:o.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},e=>Y(e,t)),void 0,!G)}}e.s(["handler",0,x,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:R,workUnitAsyncStorage:_})},"routeModule",0,w,"serverHooks",0,b,"workAsyncStorage",0,R,"workUnitAsyncStorage",0,_])}];
18
18
 
19
19
  //# sourceMappingURL=_0lz3t4l._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[34828,e=>e.a(async(t,r)=>{try{var a=e.i(58821),i=e.i(69719),n=e.i(98043),s=e.i(63856),o=e.i(76759),u=e.i(50377),l=e.i(74866),d=t([s]);[s]=d.then?(await d)():d;let p=(0,u.createLogger)("api:exams:retry"),m=i.z.object({language:i.z.enum(["zh","en"]).optional()});async function c(e,{params:t}){let{id:r}=await t;try{let t=await (0,s.getCurrentUser)();if(!t)return(0,o.unauthorized)("Authentication required");let i=await n.prisma.examPaper.findUnique({where:{id:r},select:{userId:!0}});if(!i||i.userId!==t.id)return(0,o.notFound)("Exam paper not found");let u=m.safeParse(await e.json().catch(()=>({})));return await n.prisma.examPaper.update({where:{id:r},data:{status:"generating"}}),(0,l.generateExamPaper)(r,u.success&&u.data.language||"zh"),a.NextResponse.json({success:!0})}catch(e){return p.error({error:e},"Error retrying exam paper"),(0,o.internalError)("Failed to retry exam paper")}}e.s(["POST",0,c]),r()}catch(e){r(e)}},!1),15947,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),i=e.i(59756),n=e.i(61916),s=e.i(74677),o=e.i(69741),u=e.i(16795),l=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),m=e.i(70101),h=e.i(74838),g=e.i(10372),f=e.i(93695),w=e.i(9580);e.i(52474);var x=e.i(220);let E=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/exams/[id]/retry/route",pathname:"/api/exams/[id]/retry",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/exams/[id]/retry/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(34828),...{}}),{workAsyncStorage:y,workUnitAsyncStorage:R,serverHooks:v}=E;async function S(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),E.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/exams/[id]/retry/route";y=y.replace(/\/index$/,"")||"/";let R=await E.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,deploymentId:S,params:T,nextConfig:I,parsedUrl:A,isDraftMode:C,prerenderManifest:_,routerServerContext:P,isOnDemandRevalidate:q,revalidateOnlyGenerated:N,resolvedPathname:b,clientReferenceManifest:M,serverActionsManifest:O}=R,U=(0,o.normalizeAppPath)(y),k=!!_.routes[b]&&(E.isDev||(0,w.isRouteCacheOwner)(b,E.cacheOwner,_.routes[b])),D=!!(_.dynamicRoutes[U]||k),j=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,A,!1):t.end("This page could not be found"),null);if(D&&!C){let e=_.dynamicRoutes[U];if(e&&!1===e.fallback&&!k){if(I.adapterPath)return await j();throw new f.NoFallbackError}}let L=null;!D||E.isDev||C||(L="/index"===(L=b)?"/":L);let H=!0===E.isDev||!D,Q=D&&!H;O&&M&&(0,s.setManifestsSingleton)({page:y,clientReferenceManifest:M,serverActionsManifest:O});let F=e.method||"GET",X=(0,n.getTracer)(),K=X.getActiveScopeSpan(),$=!!(null==P?void 0:P.isWrappedByNextServer),B=!!(0,i.getRequestMeta)(e,"minimalMode"),z=(0,i.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,I,_,B);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let G={params:T,previewProps:_.preview,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts,useCacheTimeout:I.experimental.useCacheTimeout},cacheComponents:!!I.cacheComponents,validationLevel:I.experimental.instantInsights.validationLevel,isDraftMode:C,supportsDynamicResponse:H,incrementalCache:z,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:I.cacheLife,staticPageGenerationTimeout:I.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,i)=>E.onRequestError(e,t,a,i,P)},sharedContext:{buildId:v,deploymentId:S}},V=new u.NodeNextRequest(e),W=new u.NodeNextResponse(t),J=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(t)),Y=async({previousCacheEntry:r})=>{try{if(!B&&q&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await E.handle(J,G);e.fetchMetrics=G.renderOpts.fetchMetrics;let n=G.renderOpts.pendingWaitUntil;n&&a.waitUntil&&(a.waitUntil(n),n=void 0);let s=G.renderOpts.collectedTags;if(!D)return await (0,p.sendResponse)(V,W,i,n),null;{let e=await i.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(i.headers);s&&(t[g.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,a=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=g.INFINITE_CACHE?!1!==r&&r>0?I.expireTime:void 0:G.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:Q,isOnDemandRevalidate:q})},!1,P),t}},Z=async(i,s)=>{try{var o,u;let i=await E.handleResponse({req:e,nextConfig:I,cacheKey:L,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:_,isRoutePPREnabled:!1,isOnDemandRevalidate:q,revalidateOnlyGenerated:N,responseGenerator:Y,waitUntil:a.waitUntil,isMinimalMode:B});if(!D)return;if((null==i||null==(o=i.value)?void 0:o.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==i||null==(u=i.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",q?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,m.fromNodeOutgoingHttpHeaders)(i.value.headers);B&&D||n.delete(g.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,h.getCacheControlHeader)(i.cacheControl)),await (0,p.sendResponse)(V,W,new Response(i.value.body,{headers:n,status:i.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:Q,isOnDemandRevalidate:q})},!1,P),D)throw t;await (0,p.sendResponse)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let e=t.statusCode;i.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(i.setStatus({code:n.SpanStatusCode.ERROR}),i.setAttribute("error.type",e.toString()));let r=X.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route")||U,o=`${F} ${a}`;i.setAttributes({"next.route":a,"http.route":a,"next.span_name":o}),i.updateName(o),s&&s!==i&&(s.setAttribute("http.route",a),s.updateName(o))})()}};if($&&K)await Z(K,void 0);else{let t=X.getActiveScopeSpan();await X.withPropagatedContext(e.headers,()=>X.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${y}`,kind:n.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>Z(e,t)),void 0,!$)}}e.s(["handler",0,S,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:R})},"routeModule",0,E,"serverHooks",0,v,"workAsyncStorage",0,y,"workUnitAsyncStorage",0,R])},63856,e=>e.a(async(t,r)=>{try{var a=e.i(13618),i=e.i(79832),n=e.i(98043),s=t([i]);async function o(){let e=await (0,a.getServerSession)(i.authOptions);return e?.user?.email?n.prisma.user.findUnique({where:{email:e.user.email}}):null}[i]=s.then?(await s)():s,e.s(["getCurrentUser",0,o]),r()}catch(e){r(e)}},!1),74866,e=>{"use strict";var t=e.i(98043),r=e.i(43911),a=e.i(50377),i=e.i(26828),n=e.i(68426);let s=(0,a.createLogger)("exam"),o="least_practiced";function u(e,t,r=Math.random){let a=[...e];for(let e=a.length-1;e>0;e--){let t=Math.floor(r()*(e+1));[a[e],a[t]]=[a[t],a[e]]}return a.slice(0,t)}async function l(e,r){let a,i=(await t.prisma.errorItem.findMany({where:(a={userId:e,subjectId:{in:r.subjectIds},shortId:{not:null}},"unmastered"===r.scope?a.masteryLevel=0:"mastered"===r.scope&&(a.masteryLevel={gt:0}),r.tagNames&&r.tagNames.length>0&&(a.tags={some:{name:{in:r.tagNames}}}),a),select:{id:!0,shortId:!0,_count:{select:{practiceRecords:!0}}}})).map(({_count:e,...t})=>({...t,practiceCount:e.practiceRecords}));return(r.pickRule??o)==="random"?u(i,r.count):function(e,t,r=Math.random){return u(e,e.length,r).sort((e,t)=>e.practiceCount-t.practiceCount).slice(0,t)}(i,r.count)}function d(e){if(e.some(e=>"pending"===e))return"generating";let t=e.filter(e=>"ready"===e).length;return t===e.length?"ready":0===t?"failed":"partial"}function c(e){if(e.tags.length>0)return e.tags.map(e=>e.name);try{let t=JSON.parse(e.knowledgePoints||"[]");return Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}catch{return[]}}async function p(e,a,i){let n=await t.prisma.examQuestion.findUnique({where:{id:e},select:{errorItem:{select:{questionText:!0,knowledgePoints:!0,gradeSemester:!0,figureSvg:!0,tags:{select:{name:!0}}}}}});if(!n?.errorItem)return void await t.prisma.examQuestion.update({where:{id:e},data:{status:"failed",error:"SOURCE_DELETED"}});try{let s=await (0,r.getAIService)().generateSimilarQuestion(n.errorItem.questionText||"",c(n.errorItem),i,a,n.errorItem.gradeSemester,n.errorItem.figureSvg);await t.prisma.examQuestion.update({where:{id:e},data:{status:"ready",questionText:s.questionText,answerText:s.answerText,analysis:s.analysis,figureSvg:s.figureSvg??null,error:null}})}catch(a){let r=a instanceof Error?a.message:String(a);s.warn({questionId:e,error:r},"Exam question generation failed"),await t.prisma.examQuestion.update({where:{id:e},data:{status:"failed",error:r.slice(0,200)}})}}let m=new Set;async function h(e,r="zh"){if(m.has(e))return;m.add(e);let a=null;try{let n=await t.prisma.examPaper.findUnique({where:{id:e},select:{userId:!0,title:!0,difficulty:!0,questions:{where:{status:{not:"ready"}},select:{id:!0}}}});if(!n)return;let s=n.questions.map(e=>e.id),o=s.length,u=0;o>0&&(a=(0,i.startBackgroundTask)({userId:n.userId,kind:"exam",subject:n.title,link:`/exams/${e}`,total:o})),s.length>0&&(await t.prisma.examQuestion.updateMany({where:{id:{in:s}},data:{status:"pending",error:null}}),await t.prisma.examPaper.update({where:{id:e},data:{status:"generating"}}));let l=async()=>{for(;s.length>0;)await p(s.shift(),n.difficulty,r),a?.setProgress(++u,o)};await Promise.all(Array.from({length:Math.min(3,s.length)},l));let c=await t.prisma.examQuestion.findMany({where:{paperId:e},select:{status:!0}}),m=d(c.map(e=>e.status));await t.prisma.examPaper.update({where:{id:e},data:{status:m}}),a?.setProgress(u,o,c.filter(e=>"failed"===e.status).length),"failed"===m?a?.fail("ALL_FAILED"):a?.succeed()}catch(t){s.error({paperId:e,error:t},"Exam paper generation failed"),a?.fail(t)}finally{m.delete(e)}}let g={status:!0,questionText:!0,answerText:!0,analysis:!0,figureSvg:!0,error:!0};async function f(e,a,o,u,l="zh"){let d=await t.prisma.examQuestion.findUnique({where:{id:a},select:{paperId:!0,status:!0,questionText:!0,paper:{select:{userId:!0,title:!0,difficulty:!0}},errorItem:{select:{questionText:!0,knowledgePoints:!0,gradeSemester:!0,figureSvg:!0,tags:{select:{name:!0}},subject:{select:{name:!0,stage:!0,subjectKey:!0}}}},_count:{select:{practiceRecords:!0}}}});if(!d||d.paperId!==e||d.paper.userId!==o)throw Error("EXAM_QUESTION_NOT_FOUND");if("pending"===d.status)throw Error("QUESTION_GENERATING");let p={userId:o,subject:d.paper.title,link:`/exams/${e}`};if("question"===u){if(d._count.practiceRecords>0)throw Error("HAS_RESULTS");let n=d.errorItem;if(!n)throw Error("SOURCE_DELETED");let s=await (0,i.trackBackgroundTask)({...p,kind:"exam"},()=>(0,r.getAIService)().generateSimilarQuestion(n.questionText||"",c(n),l,d.paper.difficulty,n.gradeSemester,n.figureSvg)),{count:o}=await t.prisma.examQuestion.updateMany({where:{id:a,practiceRecords:{none:{}}},data:{status:"ready",questionText:s.questionText,answerText:s.answerText,analysis:s.analysis,figureSvg:s.figureSvg??null,error:null}});if(0===o)throw Error("HAS_RESULTS");await w(e)}else{let e=d.questionText;if("ready"!==d.status||!e?.trim())throw Error("NO_QUESTION_TEXT");let s=d.errorItem?.subject?(0,n.resolveNotebookScope)(d.errorItem.subject):null,o=s?.subject?n.SUBJECT_DISPLAY_NAMES[s.subject]:null,u=await (0,i.trackBackgroundTask)({...p,kind:"reanswer"},()=>(0,r.getAIService)().reanswerQuestion(e,l,o,void 0,d.errorItem?.gradeSemester));if(!u.answerText.trim()&&!u.analysis.trim())throw Error("EMPTY_ANSWER");let c={answerText:u.answerText,analysis:u.analysis};await t.prisma.$transaction([t.prisma.examQuestion.update({where:{id:a},data:c}),t.prisma.practiceRecord.updateMany({where:{examQuestionId:a},data:c})])}let m=await t.prisma.examQuestion.findUnique({where:{id:a},select:g});return s.info({paperId:e,questionId:a,mode:u},"Exam question regenerated"),m}async function w(e){let r=await t.prisma.examQuestion.findMany({where:{paperId:e},select:{status:!0}});await t.prisma.examPaper.update({where:{id:e},data:{status:d(r.map(e=>e.status))}})}async function x(e,r,a,i){let n=await t.prisma.examPaper.findUnique({where:{id:e},select:{userId:!0,difficulty:!0,questions:{select:{id:!0,errorItemId:!0,questionText:!0,answerText:!0,analysis:!0,figureSvg:!0,errorItem:{select:{subject:{select:{name:!0}}}}}}}});if(!n||n.userId!==r)throw Error("EXAM_NOT_FOUND");let s=new Map(n.questions.map(e=>[e.id,e])),o=new Set;return await t.prisma.$transaction(async t=>{for(let{questionId:e,result:u}of i){let i=s.get(e);i?.errorItemId&&null!==u&&(await t.practiceRecord.create({data:{userId:r,errorItemId:i.errorItemId,examQuestionId:i.id,source:"exam",result:u,isCorrect:"correct"===u,createdAt:a,difficulty:n.difficulty,subject:i.errorItem?.subject?.name??null,questionText:i.questionText,answerText:i.answerText,analysis:i.analysis,figureSvg:i.figureSvg}}),o.add(i.errorItemId))}o.size>0&&await t.examPaper.update({where:{id:e},data:{resultsRecordedAt:new Date}})}),[...o]}e.s(["DEFAULT_EXAM_PICK_RULE",0,o,"EXAM_DIFFICULTIES",0,["easy","medium","hard","harder"],"EXAM_PICK_RULES",0,["least_practiced","random"],"EXAM_REGENERATE_MODES",0,["question","answer"],"EXAM_SCOPES",0,["unmastered","mastered","all"],"MAX_EXAM_QUESTIONS",0,50,"generateExamPaper",0,h,"isPaperGenerating",0,function(e){return m.has(e)},"recordExamResults",0,x,"regenerateExamQuestion",0,f,"selectSourceItems",0,l])}];
1
+ module.exports=[334828,e=>e.a(async(t,r)=>{try{var a=e.i(89171),i=e.i(469719),n=e.i(698043),s=e.i(63856),o=e.i(181912),u=e.i(50377),l=e.i(874866),d=t([s]);[s]=d.then?(await d)():d;let p=(0,u.createLogger)("api:exams:retry"),m=i.z.object({language:i.z.enum(["zh","en"]).optional()});async function c(e,{params:t}){let{id:r}=await t;try{let t=await (0,s.getCurrentUser)();if(!t)return(0,o.unauthorized)("Authentication required");let i=await n.prisma.examPaper.findUnique({where:{id:r},select:{userId:!0}});if(!i||i.userId!==t.id)return(0,o.notFound)("Exam paper not found");let u=m.safeParse(await e.json().catch(()=>({})));return await n.prisma.examPaper.update({where:{id:r},data:{status:"generating"}}),(0,l.generateExamPaper)(r,u.success&&u.data.language||"zh"),a.NextResponse.json({success:!0})}catch(e){return p.error({error:e},"Error retrying exam paper"),(0,o.internalError)("Failed to retry exam paper")}}e.s(["POST",0,c]),r()}catch(e){r(e)}},!1),815947,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),i=e.i(759756),n=e.i(561916),s=e.i(174677),o=e.i(869741),u=e.i(316795),l=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),m=e.i(570101),h=e.i(626937),g=e.i(10372),f=e.i(193695),w=e.i(509580);e.i(52474);var x=e.i(600220);let E=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/exams/[id]/retry/route",pathname:"/api/exams/[id]/retry",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/exams/[id]/retry/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(334828),...{}}),{workAsyncStorage:y,workUnitAsyncStorage:R,serverHooks:v}=E;async function S(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),E.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/exams/[id]/retry/route";y=y.replace(/\/index$/,"")||"/";let R=await E.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,deploymentId:S,params:T,nextConfig:I,parsedUrl:A,isDraftMode:C,prerenderManifest:_,routerServerContext:P,isOnDemandRevalidate:q,revalidateOnlyGenerated:N,resolvedPathname:b,clientReferenceManifest:M,serverActionsManifest:O}=R,U=(0,o.normalizeAppPath)(y),k=!!_.routes[b]&&(E.isDev||(0,w.isRouteCacheOwner)(b,E.cacheOwner,_.routes[b])),D=!!(_.dynamicRoutes[U]||k),j=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,A,!1):t.end("This page could not be found"),null);if(D&&!C){let e=_.dynamicRoutes[U];if(e&&!1===e.fallback&&!k){if(I.adapterPath)return await j();throw new f.NoFallbackError}}let L=null;!D||E.isDev||C||(L="/index"===(L=b)?"/":L);let H=!0===E.isDev||!D,Q=D&&!H;O&&M&&(0,s.setManifestsSingleton)({page:y,clientReferenceManifest:M,serverActionsManifest:O});let F=e.method||"GET",X=(0,n.getTracer)(),K=X.getActiveScopeSpan(),$=!!(null==P?void 0:P.isWrappedByNextServer),B=!!(0,i.getRequestMeta)(e,"minimalMode"),z=(0,i.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,I,_,B);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let G={params:T,previewProps:_.preview,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts,useCacheTimeout:I.experimental.useCacheTimeout},cacheComponents:!!I.cacheComponents,validationLevel:I.experimental.instantInsights.validationLevel,isDraftMode:C,supportsDynamicResponse:H,incrementalCache:z,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:I.cacheLife,staticPageGenerationTimeout:I.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,i)=>E.onRequestError(e,t,a,i,P)},sharedContext:{buildId:v,deploymentId:S}},V=new u.NodeNextRequest(e),W=new u.NodeNextResponse(t),J=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(t)),Y=async({previousCacheEntry:r})=>{try{if(!B&&q&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await E.handle(J,G);e.fetchMetrics=G.renderOpts.fetchMetrics;let n=G.renderOpts.pendingWaitUntil;n&&a.waitUntil&&(a.waitUntil(n),n=void 0);let s=G.renderOpts.collectedTags;if(!D)return await (0,p.sendResponse)(V,W,i,n),null;{let e=await i.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(i.headers);s&&(t[g.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,a=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=g.INFINITE_CACHE?!1!==r&&r>0?I.expireTime:void 0:G.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:Q,isOnDemandRevalidate:q})},!1,P),t}},Z=async(i,s)=>{try{var o,u;let i=await E.handleResponse({req:e,nextConfig:I,cacheKey:L,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:_,isRoutePPREnabled:!1,isOnDemandRevalidate:q,revalidateOnlyGenerated:N,responseGenerator:Y,waitUntil:a.waitUntil,isMinimalMode:B});if(!D)return;if((null==i||null==(o=i.value)?void 0:o.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==i||null==(u=i.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",q?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,m.fromNodeOutgoingHttpHeaders)(i.value.headers);B&&D||n.delete(g.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,h.getCacheControlHeader)(i.cacheControl)),await (0,p.sendResponse)(V,W,new Response(i.value.body,{headers:n,status:i.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:Q,isOnDemandRevalidate:q})},!1,P),D)throw t;await (0,p.sendResponse)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let e=t.statusCode;i.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(i.setStatus({code:n.SpanStatusCode.ERROR}),i.setAttribute("error.type",e.toString()));let r=X.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route")||U,o=`${F} ${a}`;i.setAttributes({"next.route":a,"http.route":a,"next.span_name":o}),i.updateName(o),s&&s!==i&&(s.setAttribute("http.route",a),s.updateName(o))})()}};if($&&K)await Z(K,void 0);else{let t=X.getActiveScopeSpan();await X.withPropagatedContext(e.headers,()=>X.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${y}`,kind:n.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>Z(e,t)),void 0,!$)}}e.s(["handler",0,S,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:R})},"routeModule",0,E,"serverHooks",0,v,"workAsyncStorage",0,y,"workUnitAsyncStorage",0,R])},63856,e=>e.a(async(t,r)=>{try{var a=e.i(757660),i=e.i(79832),n=e.i(698043),s=t([i]);async function o(){let e=await (0,a.getServerSession)(i.authOptions);return e?.user?.email?n.prisma.user.findUnique({where:{email:e.user.email}}):null}[i]=s.then?(await s)():s,e.s(["getCurrentUser",0,o]),r()}catch(e){r(e)}},!1),874866,e=>{"use strict";var t=e.i(698043),r=e.i(843911),a=e.i(50377),i=e.i(926828),n=e.i(668426);let s=(0,a.createLogger)("exam"),o="least_practiced";function u(e,t,r=Math.random){let a=[...e];for(let e=a.length-1;e>0;e--){let t=Math.floor(r()*(e+1));[a[e],a[t]]=[a[t],a[e]]}return a.slice(0,t)}async function l(e,r){let a,i=(await t.prisma.errorItem.findMany({where:(a={userId:e,subjectId:{in:r.subjectIds},shortId:{not:null}},"unmastered"===r.scope?a.masteryLevel=0:"mastered"===r.scope&&(a.masteryLevel={gt:0}),r.tagNames&&r.tagNames.length>0&&(a.tags={some:{name:{in:r.tagNames}}}),a),select:{id:!0,shortId:!0,_count:{select:{practiceRecords:!0}}}})).map(({_count:e,...t})=>({...t,practiceCount:e.practiceRecords}));return(r.pickRule??o)==="random"?u(i,r.count):function(e,t,r=Math.random){return u(e,e.length,r).sort((e,t)=>e.practiceCount-t.practiceCount).slice(0,t)}(i,r.count)}function d(e){if(e.some(e=>"pending"===e))return"generating";let t=e.filter(e=>"ready"===e).length;return t===e.length?"ready":0===t?"failed":"partial"}function c(e){if(e.tags.length>0)return e.tags.map(e=>e.name);try{let t=JSON.parse(e.knowledgePoints||"[]");return Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}catch{return[]}}async function p(e,a,i){let n=await t.prisma.examQuestion.findUnique({where:{id:e},select:{errorItem:{select:{questionText:!0,knowledgePoints:!0,gradeSemester:!0,figureSvg:!0,tags:{select:{name:!0}}}}}});if(!n?.errorItem)return void await t.prisma.examQuestion.update({where:{id:e},data:{status:"failed",error:"SOURCE_DELETED"}});try{let s=await (0,r.getAIService)().generateSimilarQuestion(n.errorItem.questionText||"",c(n.errorItem),i,a,n.errorItem.gradeSemester,n.errorItem.figureSvg);await t.prisma.examQuestion.update({where:{id:e},data:{status:"ready",questionText:s.questionText,answerText:s.answerText,analysis:s.analysis,figureSvg:s.figureSvg??null,error:null}})}catch(a){let r=a instanceof Error?a.message:String(a);s.warn({questionId:e,error:r},"Exam question generation failed"),await t.prisma.examQuestion.update({where:{id:e},data:{status:"failed",error:r.slice(0,200)}})}}let m=new Set;async function h(e,r="zh"){if(m.has(e))return;m.add(e);let a=null;try{let n=await t.prisma.examPaper.findUnique({where:{id:e},select:{userId:!0,title:!0,difficulty:!0,questions:{where:{status:{not:"ready"}},select:{id:!0}}}});if(!n)return;let s=n.questions.map(e=>e.id),o=s.length,u=0;o>0&&(a=(0,i.startBackgroundTask)({userId:n.userId,kind:"exam",subject:n.title,link:`/exams/${e}`,total:o})),s.length>0&&(await t.prisma.examQuestion.updateMany({where:{id:{in:s}},data:{status:"pending",error:null}}),await t.prisma.examPaper.update({where:{id:e},data:{status:"generating"}}));let l=async()=>{for(;s.length>0;)await p(s.shift(),n.difficulty,r),a?.setProgress(++u,o)};await Promise.all(Array.from({length:Math.min(3,s.length)},l));let c=await t.prisma.examQuestion.findMany({where:{paperId:e},select:{status:!0}}),m=d(c.map(e=>e.status));await t.prisma.examPaper.update({where:{id:e},data:{status:m}}),a?.setProgress(u,o,c.filter(e=>"failed"===e.status).length),"failed"===m?a?.fail("ALL_FAILED"):a?.succeed()}catch(t){s.error({paperId:e,error:t},"Exam paper generation failed"),a?.fail(t)}finally{m.delete(e)}}let g={status:!0,questionText:!0,answerText:!0,analysis:!0,figureSvg:!0,error:!0};async function f(e,a,o,u,l="zh"){let d=await t.prisma.examQuestion.findUnique({where:{id:a},select:{paperId:!0,status:!0,questionText:!0,paper:{select:{userId:!0,title:!0,difficulty:!0}},errorItem:{select:{questionText:!0,knowledgePoints:!0,gradeSemester:!0,figureSvg:!0,tags:{select:{name:!0}},subject:{select:{name:!0,stage:!0,subjectKey:!0}}}},_count:{select:{practiceRecords:!0}}}});if(!d||d.paperId!==e||d.paper.userId!==o)throw Error("EXAM_QUESTION_NOT_FOUND");if("pending"===d.status)throw Error("QUESTION_GENERATING");let p={userId:o,subject:d.paper.title,link:`/exams/${e}`};if("question"===u){if(d._count.practiceRecords>0)throw Error("HAS_RESULTS");let n=d.errorItem;if(!n)throw Error("SOURCE_DELETED");let s=await (0,i.trackBackgroundTask)({...p,kind:"exam"},()=>(0,r.getAIService)().generateSimilarQuestion(n.questionText||"",c(n),l,d.paper.difficulty,n.gradeSemester,n.figureSvg)),{count:o}=await t.prisma.examQuestion.updateMany({where:{id:a,practiceRecords:{none:{}}},data:{status:"ready",questionText:s.questionText,answerText:s.answerText,analysis:s.analysis,figureSvg:s.figureSvg??null,error:null}});if(0===o)throw Error("HAS_RESULTS");await w(e)}else{let e=d.questionText;if("ready"!==d.status||!e?.trim())throw Error("NO_QUESTION_TEXT");let s=d.errorItem?.subject?(0,n.resolveNotebookScope)(d.errorItem.subject):null,o=s?.subject?n.SUBJECT_DISPLAY_NAMES[s.subject]:null,u=await (0,i.trackBackgroundTask)({...p,kind:"reanswer"},()=>(0,r.getAIService)().reanswerQuestion(e,l,o,void 0,d.errorItem?.gradeSemester));if(!u.answerText.trim()&&!u.analysis.trim())throw Error("EMPTY_ANSWER");let c={answerText:u.answerText,analysis:u.analysis};await t.prisma.$transaction([t.prisma.examQuestion.update({where:{id:a},data:c}),t.prisma.practiceRecord.updateMany({where:{examQuestionId:a},data:c})])}let m=await t.prisma.examQuestion.findUnique({where:{id:a},select:g});return s.info({paperId:e,questionId:a,mode:u},"Exam question regenerated"),m}async function w(e){let r=await t.prisma.examQuestion.findMany({where:{paperId:e},select:{status:!0}});await t.prisma.examPaper.update({where:{id:e},data:{status:d(r.map(e=>e.status))}})}async function x(e,r,a,i){let n=await t.prisma.examPaper.findUnique({where:{id:e},select:{userId:!0,difficulty:!0,questions:{select:{id:!0,errorItemId:!0,questionText:!0,answerText:!0,analysis:!0,figureSvg:!0,errorItem:{select:{subject:{select:{name:!0}}}}}}}});if(!n||n.userId!==r)throw Error("EXAM_NOT_FOUND");let s=new Map(n.questions.map(e=>[e.id,e])),o=new Set;return await t.prisma.$transaction(async t=>{for(let{questionId:e,result:u}of i){let i=s.get(e);i?.errorItemId&&null!==u&&(await t.practiceRecord.create({data:{userId:r,errorItemId:i.errorItemId,examQuestionId:i.id,source:"exam",result:u,isCorrect:"correct"===u,createdAt:a,difficulty:n.difficulty,subject:i.errorItem?.subject?.name??null,questionText:i.questionText,answerText:i.answerText,analysis:i.analysis,figureSvg:i.figureSvg}}),o.add(i.errorItemId))}o.size>0&&await t.examPaper.update({where:{id:e},data:{resultsRecordedAt:new Date}})}),[...o]}e.s(["DEFAULT_EXAM_PICK_RULE",0,o,"EXAM_DIFFICULTIES",0,["easy","medium","hard","harder"],"EXAM_PICK_RULES",0,["least_practiced","random"],"EXAM_REGENERATE_MODES",0,["question","answer"],"EXAM_SCOPES",0,["unmastered","mastered","all"],"MAX_EXAM_QUESTIONS",0,50,"generateExamPaper",0,h,"isPaperGenerating",0,function(e){return m.has(e)},"recordExamResults",0,x,"regenerateExamQuestion",0,f,"selectSourceItems",0,l])}];
2
2
 
3
3
  //# sourceMappingURL=_0rdo0a4._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[72039,A=>{"use strict";var w=A.i(58821);let D=Buffer.from("AAABAAQAEBAAAAEAIAAoBQAARgAAACAgAAABACAAKBQAAG4FAAAwMAAAAQAgACgtAACWGQAAAAAAAAEAIACNHgAAvkYAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAABdAAAAugAAALoAAABdAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAKAAAADyAAAA/wAAAP8AAAD/AAAA/wAAAPIAAACgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAOAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOAAAAA4AAAAAAAAAAAAAAAAAAAAHwAAAOIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA4gAAAB8AAAAAAAAAAAAAAKEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAChAAAAAAAAACMAAAD0AAAA/wAAAP9PT0//rq6u/6urq/+rq6v/q6ur/6urq/+tra3/Z2dn/wAAAP8AAAD/AAAA9AAAACMAAABZAAAA/wAAAP8AAAD/Hx8f/+3t7f///////////////////////f39/zU1Nf8AAAD/AAAA/wAAAP8AAABZAAAAuwAAAP8AAAD/AAAA/wAAAP9ra2v//////////////////////46Ojv8AAAD/AAAA/wAAAP8AAAD/AAAAuwAAALsAAAD/AAAA/wAAAP8AAAD/CQkJ/83Nzf///////////+Tk5P8YGBj/AAAA/wAAAP8AAAD/AAAA/wAAALsAAABZAAAA/wAAAP8AAAD/AAAA/wAAAP9KSkr//f39//////9ra2v/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABZAAAAIwAAAPQAAAD/AAAA/wAAAP8AAAD/AQEB/7a2tv/V1dX/CQkJ/wAAAP8AAAD/AAAA/wAAAP8AAAD0AAAAIwAAAAAAAAChAAAA/wAAAP8AAAD/AAAA/wAAAP8xMTH/RERE/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAoQAAAAAAAAAAAAAAHwAAAOIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA4gAAAB8AAAAAAAAAAAAAAAAAAAA4AAAA4AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA4AAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAACgAAAA8gAAAP8AAAD/AAAA/wAAAP8AAADyAAAAoAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAABdAAAAugAAALoAAABdAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAsAAAAVQAAAIEAAADoAAAA6AAAAIEAAABVAAAALAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACoAAACFAAAA0gAAAPkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD5AAAA0gAAAIUAAAAqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAACWAAAA8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPMAAACWAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRAAAA4QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADhAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPAAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAATwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAOQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADjAAAAGwAAAAAAAAAAAAAAAAAAAAAAAACXAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACXAAAAAAAAAAAAAAAAAAAAKAAAAPUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPQAAAAnAAAAAAAAAAAAAACGAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ODg4/4uLi/+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+JiYn/X19f/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIYAAAAAAAAABwAAANQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8eHh7/7u7u//////////////////////////////////////////////////////////////////////9TU1P/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA1AAAAAcAAAArAAAA+gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9oaGj/////////////////////////////////////////////////////////////////rq6u/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD6AAAAKwAAAFQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wgICP/Ly8v///////////////////////////////////////////////////////T09P8sLCz/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABUAAAAggAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0dHR//9/f3/////////////////////////////////////////////////jY2N/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIEAAADpAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/62trf///////////////////////////////////////////+Tk5P8XFxf/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA6QAAAOkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Kysr//Pz8///////////////////////////////////////ampq/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADpAAAAgQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/i4uL/////////////////////////////////8zMzP8ICAj/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIIAAABUAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8WFhb/4+Pj///////////////////////9/f3/SUlJ/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAVAAAACsAAAD6AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9oaGj//////////////////////6+vr/8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPoAAAArAAAABwAAANQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wgICP/Ly8v////////////09PT/LCws/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA1AAAAAcAAAAAAAAAhgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0dHR//9/f3//////42Njf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACGAAAAAAAAAAAAAAAnAAAA9AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/7Gxsf/s7Oz/FxcX/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA9QAAACgAAAAAAAAAAAAAAAAAAACXAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/MzMz/19fX/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACXAAAAAAAAAAAAAAAAAAAAAAAAABoAAADjAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5AAAABsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAABPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIAAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAHIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFEAAADhAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOEAAABRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAACWAAAA8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPMAAACWAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqAAAAhQAAANIAAAD5AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+QAAANIAAACFAAAAKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACwAAABVAAAAgQAAAOgAAADoAAAAgQAAAFUAAAAsAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAC0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAKAAAAEwAAABqAAAAswAAAPgAAAD3AAAAswAAAGoAAABLAAAAKAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAVgAAAKAAAADYAAAA+AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+AAAANgAAACgAAAAVQAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAIsAAADhAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOEAAACLAAAAJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAACLAAAA7wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7wAAAIsAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAANwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADcAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACKAAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAIoAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAK0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACtAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAuAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAuAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACuAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAK4AAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIoAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAATwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA3wAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAADxAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPEAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACLAAAAAAAAAAAAAAAAAAAAEQAAAOQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8kJCT/aGho/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/1BQUP8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADkAAAAEQAAAAAAAAAAAAAAVQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8cHBz/6+vr/////////////////////////////////////////////////////////////////////////////////////////////////////////////////3Nzc/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAVQAAAAAAAAAAAAAAoQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ZWVl////////////////////////////////////////////////////////////////////////////////////////////////////////////zMzM/wgICP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAoQAAAAAAAAAJAAAA2gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH/8nJyf/////////////////////////////////////////////////////////////////////////////////////////////////9/f3/SEhI/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA2gAAAAkAAAAoAAAA+QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0VFRf/8/Pz///////////////////////////////////////////////////////////////////////////////////////////+urq7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+AAAACgAAABLAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP+qqqr///////////////////////////////////////////////////////////////////////////////////////T09P8sLCz/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAEwAAABqAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8pKSn/8vLy/////////////////////////////////////////////////////////////////////////////////4yMjP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAGoAAAC0AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/iIiI////////////////////////////////////////////////////////////////////////////4+Pj/xYWFv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAALMAAAD4AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/FBQU/+Hh4f//////////////////////////////////////////////////////////////////////aWlp/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPgAAAD4AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2VlZf/////////////////////////////////////////////////////////////////Ly8v/CAgI/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPgAAACzAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB//Jycn///////////////////////////////////////////////////////39/f9ISEj/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAALQAAABqAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9FRUX//Pz8/////////////////////////////////////////////////66u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AAAAAAAAAAAAAAAAAAAAAAAVAAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA3wAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATwAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIoAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACuAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAK4AAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAuAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAuAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAK0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACtAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACKAAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAIoAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAANwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADcAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAACLAAAA7wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7wAAAIsAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAIsAAADhAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOEAAACLAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAVQAAAKAAAADYAAAA+AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+AAAANgAAACgAAAAVgAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAKAAAAEsAAABqAAAAswAAAPcAAAD4AAAAswAAAGoAAABMAAAAKAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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","base64");A.s(["GET",0,function(){return new w.NextResponse(D,{headers:{"Content-Type":"image/x-icon","Cache-Control":"public, max-age=0, must-revalidate"}})},"dynamic",0,"force-static"])},27413,A=>{"use strict";var w=A.i(47909),D=A.i(74017),P=A.i(96250),e=A.i(59756),t=A.i(61916),r=A.i(74677),a=A.i(69741),i=A.i(16795),o=A.i(87718),n=A.i(95169),g=A.i(47587),B=A.i(66012),s=A.i(70101),l=A.i(74838),u=A.i(10372),C=A.i(93695),c=A.i(9580);A.i(52474);var I=A.i(220);let Q=new w.AppRouteRouteModule({definition:{kind:D.RouteKind.APP_ROUTE,page:"/favicon.ico/route",pathname:"/favicon.ico",filename:"favicon.ico--route-entry",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/favicon.ico--route-entry.js",nextConfigOutput:"standalone",userland:()=>A.r(72039),...{}}),{workAsyncStorage:E,workUnitAsyncStorage:d,serverHooks:M}=Q;async function G(A,w,P){P.requestMeta&&(0,e.setRequestMeta)(A,P.requestMeta),Q.isDev&&(0,e.addRequestMeta)(A,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/favicon.ico/route";E=E.replace(/\/index$/,"")||"/";let d=await Q.prepare(A,w,{srcPage:E,multiZoneDraftMode:!1});if(!d)return w.statusCode=400,w.end("Bad Request"),null==P.waitUntil||P.waitUntil.call(P,Promise.resolve()),null;let{buildId:M,deploymentId:G,params:f,nextConfig:v,parsedUrl:R,isDraftMode:p,prerenderManifest:h,routerServerContext:H,isOnDemandRevalidate:y,revalidateOnlyGenerated:O,resolvedPathname:T,clientReferenceManifest:Y,serverActionsManifest:S}=d,j=(0,a.normalizeAppPath)(E),V=!!h.routes[T]&&(Q.isDev||(0,c.isRouteCacheOwner)(T,Q.cacheOwner,h.routes[T])),L=!!(h.dynamicRoutes[j]||V),J=async()=>((null==H?void 0:H.render404)?await H.render404(A,w,R,!1):w.end("This page could not be found"),null);if(L&&!p){let A=h.dynamicRoutes[j];if(A&&!1===A.fallback&&!V){if(v.adapterPath)return await J();throw new C.NoFallbackError}}let N=null;!L||Q.isDev||p||(N="/index"===(N=T)?"/":N);let b=!0===Q.isDev||!L,X=L&&!b;S&&Y&&(0,r.setManifestsSingleton)({page:E,clientReferenceManifest:Y,serverActionsManifest:S});let x=A.method||"GET",F=(0,t.getTracer)(),K=F.getActiveScopeSpan(),k=!!(null==H?void 0:H.isWrappedByNextServer),U=!!(0,e.getRequestMeta)(A,"minimalMode"),m=(0,e.getRequestMeta)(A,"incrementalCache")||await Q.getIncrementalCache(A,v,h,U);null==m||m.resetRequestCache(),globalThis.__incrementalCache=m;let q={params:f,previewProps:h.preview,renderOpts:{experimental:{authInterrupts:!!v.experimental.authInterrupts,useCacheTimeout:v.experimental.useCacheTimeout},cacheComponents:!!v.cacheComponents,validationLevel:v.experimental.instantInsights.validationLevel,isDraftMode:p,supportsDynamicResponse:b,incrementalCache:m,hmrRefreshHash:(0,e.getRequestMeta)(A,"hmrRefreshHash"),cacheLifeProfiles:v.cacheLife,staticPageGenerationTimeout:v.staticPageGenerationTimeout,waitUntil:P.waitUntil,onClose:A=>{w.on("close",A)},onAfterTaskError:void 0,onInstrumentationRequestError:(w,D,P,e)=>Q.onRequestError(A,w,P,e,H)},sharedContext:{buildId:M,deploymentId:G}},z=new i.NodeNextRequest(A),W=new i.NodeNextResponse(w),Z=o.NextRequestAdapter.fromNodeNextRequest(z,(0,o.signalFromNodeResponse)(w)),_=async({previousCacheEntry:D})=>{try{if(!U&&y&&O&&!D)return w.statusCode=404,w.setHeader("x-nextjs-cache","REVALIDATED"),w.end("This page could not be found"),null;let e=await Q.handle(Z,q);A.fetchMetrics=q.renderOpts.fetchMetrics;let t=q.renderOpts.pendingWaitUntil;t&&P.waitUntil&&(P.waitUntil(t),t=void 0);let r=q.renderOpts.collectedTags;if(!L)return await (0,B.sendResponse)(z,W,e,t),null;{let A=await e.blob(),w=(0,s.toNodeOutgoingHttpHeaders)(e.headers);r&&(w[u.NEXT_CACHE_TAGS_HEADER]=r),!w["content-type"]&&A.type&&(w["content-type"]=A.type);let D=void 0!==q.renderOpts.collectedRevalidate&&!(q.renderOpts.collectedRevalidate>=u.INFINITE_CACHE)&&q.renderOpts.collectedRevalidate,P=void 0===q.renderOpts.collectedExpire||q.renderOpts.collectedExpire>=u.INFINITE_CACHE?!1!==D&&D>0?v.expireTime:void 0:q.renderOpts.collectedExpire;return{value:{kind:I.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await A.arrayBuffer()),headers:w},cacheControl:{revalidate:D,expire:P}}}}catch(w){throw(null==D?void 0:D.isStale)&&await Q.onRequestError(A,w,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,g.getRevalidateReason)({isStaticGeneration:X,isOnDemandRevalidate:y})},!1,H),w}},$=async(e,r)=>{try{var a,i;let e=await Q.handleResponse({req:A,nextConfig:v,cacheKey:N,routeKind:D.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:h,isRoutePPREnabled:!1,isOnDemandRevalidate:y,revalidateOnlyGenerated:O,responseGenerator:_,waitUntil:P.waitUntil,isMinimalMode:U});if(!L)return;if((null==e||null==(a=e.value)?void 0:a.kind)!==I.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==e||null==(i=e.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});U||w.setHeader("x-nextjs-cache",y?"REVALIDATED":e.isMiss?"MISS":e.isStale?"STALE":"HIT"),p&&w.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let t=(0,s.fromNodeOutgoingHttpHeaders)(e.value.headers);U&&L||t.delete(u.NEXT_CACHE_TAGS_HEADER),!e.cacheControl||w.getHeader("Cache-Control")||t.get("Cache-Control")||t.set("Cache-Control",(0,l.getCacheControlHeader)(e.cacheControl)),await (0,B.sendResponse)(z,W,new Response(e.value.body,{headers:t,status:e.value.status||200}));return}catch(w){if(w instanceof C.NoFallbackError||await Q.onRequestError(A,w,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,g.getRevalidateReason)({isStaticGeneration:X,isOnDemandRevalidate:y})},!1,H),L)throw w;await (0,B.sendResponse)(z,W,new Response(null,{status:500}));return}finally{(()=>{if(!e)return;let A=w.statusCode;e.setAttributes({"http.status_code":A,"next.rsc":!1}),A&&A>=500&&(e.setStatus({code:t.SpanStatusCode.ERROR}),e.setAttribute("error.type",A.toString()));let D=F.getRootSpanAttributes();if(!D)return;if(D.get("next.span_type")!==n.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${D.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let P=D.get("next.route")||j,a=`${x} ${P}`;e.setAttributes({"next.route":P,"http.route":P,"next.span_name":a}),e.updateName(a),r&&r!==e&&(r.setAttribute("http.route",P),r.updateName(a))})()}};if(k&&K)await $(K,void 0);else{let w=F.getActiveScopeSpan();await F.withPropagatedContext(A.headers,()=>F.trace(n.BaseServerSpan.handleRequest,{spanName:`${x} ${E}`,kind:t.SpanKind.SERVER,attributes:{"http.method":x,"http.target":A.url}},A=>$(A,w)),void 0,!k)}}A.s(["handler",0,G,"patchFetch",0,function(){return(0,P.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:d})},"routeModule",0,Q,"serverHooks",0,M,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,d])}];
1
+ module.exports=[172039,A=>{"use strict";var w=A.i(89171);let D=Buffer.from("AAABAAQAEBAAAAEAIAAoBQAARgAAACAgAAABACAAKBQAAG4FAAAwMAAAAQAgACgtAACWGQAAAAAAAAEAIACNHgAAvkYAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAABdAAAAugAAALoAAABdAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAKAAAADyAAAA/wAAAP8AAAD/AAAA/wAAAPIAAACgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAOAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOAAAAA4AAAAAAAAAAAAAAAAAAAAHwAAAOIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA4gAAAB8AAAAAAAAAAAAAAKEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAChAAAAAAAAACMAAAD0AAAA/wAAAP9PT0//rq6u/6urq/+rq6v/q6ur/6urq/+tra3/Z2dn/wAAAP8AAAD/AAAA9AAAACMAAABZAAAA/wAAAP8AAAD/Hx8f/+3t7f///////////////////////f39/zU1Nf8AAAD/AAAA/wAAAP8AAABZAAAAuwAAAP8AAAD/AAAA/wAAAP9ra2v//////////////////////46Ojv8AAAD/AAAA/wAAAP8AAAD/AAAAuwAAALsAAAD/AAAA/wAAAP8AAAD/CQkJ/83Nzf///////////+Tk5P8YGBj/AAAA/wAAAP8AAAD/AAAA/wAAALsAAABZAAAA/wAAAP8AAAD/AAAA/wAAAP9KSkr//f39//////9ra2v/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABZAAAAIwAAAPQAAAD/AAAA/wAAAP8AAAD/AQEB/7a2tv/V1dX/CQkJ/wAAAP8AAAD/AAAA/wAAAP8AAAD0AAAAIwAAAAAAAAChAAAA/wAAAP8AAAD/AAAA/wAAAP8xMTH/RERE/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAoQAAAAAAAAAAAAAAHwAAAOIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA4gAAAB8AAAAAAAAAAAAAAAAAAAA4AAAA4AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA4AAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAACgAAAA8gAAAP8AAAD/AAAA/wAAAP8AAADyAAAAoAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAABdAAAAugAAALoAAABdAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAsAAAAVQAAAIEAAADoAAAA6AAAAIEAAABVAAAALAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACoAAACFAAAA0gAAAPkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD5AAAA0gAAAIUAAAAqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAACWAAAA8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPMAAACWAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRAAAA4QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADhAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPAAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAATwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAOQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADjAAAAGwAAAAAAAAAAAAAAAAAAAAAAAACXAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACXAAAAAAAAAAAAAAAAAAAAKAAAAPUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPQAAAAnAAAAAAAAAAAAAACGAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ODg4/4uLi/+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+JiYn/X19f/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIYAAAAAAAAABwAAANQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8eHh7/7u7u//////////////////////////////////////////////////////////////////////9TU1P/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA1AAAAAcAAAArAAAA+gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9oaGj/////////////////////////////////////////////////////////////////rq6u/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD6AAAAKwAAAFQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wgICP/Ly8v///////////////////////////////////////////////////////T09P8sLCz/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABUAAAAggAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0dHR//9/f3/////////////////////////////////////////////////jY2N/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIEAAADpAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/62trf///////////////////////////////////////////+Tk5P8XFxf/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA6QAAAOkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Kysr//Pz8///////////////////////////////////////ampq/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADpAAAAgQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/i4uL/////////////////////////////////8zMzP8ICAj/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIIAAABUAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8WFhb/4+Pj///////////////////////9/f3/SUlJ/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAVAAAACsAAAD6AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9oaGj//////////////////////6+vr/8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPoAAAArAAAABwAAANQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wgICP/Ly8v////////////09PT/LCws/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA1AAAAAcAAAAAAAAAhgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0dHR//9/f3//////42Njf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACGAAAAAAAAAAAAAAAnAAAA9AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/7Gxsf/s7Oz/FxcX/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA9QAAACgAAAAAAAAAAAAAAAAAAACXAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/MzMz/19fX/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACXAAAAAAAAAAAAAAAAAAAAAAAAABoAAADjAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5AAAABsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAABPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIAAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAHIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFEAAADhAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOEAAABRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAACWAAAA8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPMAAACWAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqAAAAhQAAANIAAAD5AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+QAAANIAAACFAAAAKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACwAAABVAAAAgQAAAOgAAADoAAAAgQAAAFUAAAAsAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAC0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAKAAAAEwAAABqAAAAswAAAPgAAAD3AAAAswAAAGoAAABLAAAAKAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAVgAAAKAAAADYAAAA+AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+AAAANgAAACgAAAAVQAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAIsAAADhAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOEAAACLAAAAJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAACLAAAA7wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7wAAAIsAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAANwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADcAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACKAAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAIoAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAK0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACtAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAuAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAuAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACuAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAK4AAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIoAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAATwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA3wAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAADxAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPEAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACLAAAAAAAAAAAAAAAAAAAAEQAAAOQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8kJCT/aGho/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/1BQUP8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADkAAAAEQAAAAAAAAAAAAAAVQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8cHBz/6+vr/////////////////////////////////////////////////////////////////////////////////////////////////////////////////3Nzc/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAVQAAAAAAAAAAAAAAoQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ZWVl////////////////////////////////////////////////////////////////////////////////////////////////////////////zMzM/wgICP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAoQAAAAAAAAAJAAAA2gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH/8nJyf/////////////////////////////////////////////////////////////////////////////////////////////////9/f3/SEhI/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA2gAAAAkAAAAoAAAA+QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0VFRf/8/Pz///////////////////////////////////////////////////////////////////////////////////////////+urq7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+AAAACgAAABLAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP+qqqr///////////////////////////////////////////////////////////////////////////////////////T09P8sLCz/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAEwAAABqAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8pKSn/8vLy/////////////////////////////////////////////////////////////////////////////////4yMjP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAGoAAAC0AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/iIiI////////////////////////////////////////////////////////////////////////////4+Pj/xYWFv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAALMAAAD4AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/FBQU/+Hh4f//////////////////////////////////////////////////////////////////////aWlp/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPgAAAD4AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2VlZf/////////////////////////////////////////////////////////////////Ly8v/CAgI/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPgAAACzAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB//Jycn///////////////////////////////////////////////////////39/f9ISEj/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAALQAAABqAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9FRUX//Pz8/////////////////////////////////////////////////66u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AAAAAAAAAAAAAAAAAAAAAAAVAAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA3wAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATwAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIoAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACuAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAK4AAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAuAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAuAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAK0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACtAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACKAAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAIoAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAANwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADcAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAACLAAAA7wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7wAAAIsAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAIsAAADhAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOEAAACLAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAVQAAAKAAAADYAAAA+AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+AAAANgAAACgAAAAVgAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAKAAAAEsAAABqAAAAswAAAPcAAAD4AAAAswAAAGoAAABMAAAAKAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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","base64");A.s(["GET",0,function(){return new w.NextResponse(D,{headers:{"Content-Type":"image/x-icon","Cache-Control":"public, max-age=0, must-revalidate"}})},"dynamic",0,"force-static"])},927413,A=>{"use strict";var w=A.i(747909),D=A.i(174017),P=A.i(996250),e=A.i(759756),t=A.i(561916),r=A.i(174677),a=A.i(869741),i=A.i(316795),o=A.i(487718),n=A.i(995169),g=A.i(47587),B=A.i(666012),s=A.i(570101),l=A.i(626937),u=A.i(10372),C=A.i(193695),c=A.i(509580);A.i(52474);var I=A.i(600220);let Q=new w.AppRouteRouteModule({definition:{kind:D.RouteKind.APP_ROUTE,page:"/favicon.ico/route",pathname:"/favicon.ico",filename:"favicon.ico--route-entry",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/favicon.ico--route-entry.js",nextConfigOutput:"standalone",userland:()=>A.r(172039),...{}}),{workAsyncStorage:E,workUnitAsyncStorage:d,serverHooks:M}=Q;async function G(A,w,P){P.requestMeta&&(0,e.setRequestMeta)(A,P.requestMeta),Q.isDev&&(0,e.addRequestMeta)(A,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/favicon.ico/route";E=E.replace(/\/index$/,"")||"/";let d=await Q.prepare(A,w,{srcPage:E,multiZoneDraftMode:!1});if(!d)return w.statusCode=400,w.end("Bad Request"),null==P.waitUntil||P.waitUntil.call(P,Promise.resolve()),null;let{buildId:M,deploymentId:G,params:f,nextConfig:v,parsedUrl:R,isDraftMode:p,prerenderManifest:h,routerServerContext:H,isOnDemandRevalidate:y,revalidateOnlyGenerated:O,resolvedPathname:T,clientReferenceManifest:Y,serverActionsManifest:S}=d,j=(0,a.normalizeAppPath)(E),V=!!h.routes[T]&&(Q.isDev||(0,c.isRouteCacheOwner)(T,Q.cacheOwner,h.routes[T])),L=!!(h.dynamicRoutes[j]||V),J=async()=>((null==H?void 0:H.render404)?await H.render404(A,w,R,!1):w.end("This page could not be found"),null);if(L&&!p){let A=h.dynamicRoutes[j];if(A&&!1===A.fallback&&!V){if(v.adapterPath)return await J();throw new C.NoFallbackError}}let N=null;!L||Q.isDev||p||(N="/index"===(N=T)?"/":N);let b=!0===Q.isDev||!L,X=L&&!b;S&&Y&&(0,r.setManifestsSingleton)({page:E,clientReferenceManifest:Y,serverActionsManifest:S});let x=A.method||"GET",F=(0,t.getTracer)(),K=F.getActiveScopeSpan(),k=!!(null==H?void 0:H.isWrappedByNextServer),U=!!(0,e.getRequestMeta)(A,"minimalMode"),m=(0,e.getRequestMeta)(A,"incrementalCache")||await Q.getIncrementalCache(A,v,h,U);null==m||m.resetRequestCache(),globalThis.__incrementalCache=m;let q={params:f,previewProps:h.preview,renderOpts:{experimental:{authInterrupts:!!v.experimental.authInterrupts,useCacheTimeout:v.experimental.useCacheTimeout},cacheComponents:!!v.cacheComponents,validationLevel:v.experimental.instantInsights.validationLevel,isDraftMode:p,supportsDynamicResponse:b,incrementalCache:m,hmrRefreshHash:(0,e.getRequestMeta)(A,"hmrRefreshHash"),cacheLifeProfiles:v.cacheLife,staticPageGenerationTimeout:v.staticPageGenerationTimeout,waitUntil:P.waitUntil,onClose:A=>{w.on("close",A)},onAfterTaskError:void 0,onInstrumentationRequestError:(w,D,P,e)=>Q.onRequestError(A,w,P,e,H)},sharedContext:{buildId:M,deploymentId:G}},z=new i.NodeNextRequest(A),W=new i.NodeNextResponse(w),Z=o.NextRequestAdapter.fromNodeNextRequest(z,(0,o.signalFromNodeResponse)(w)),_=async({previousCacheEntry:D})=>{try{if(!U&&y&&O&&!D)return w.statusCode=404,w.setHeader("x-nextjs-cache","REVALIDATED"),w.end("This page could not be found"),null;let e=await Q.handle(Z,q);A.fetchMetrics=q.renderOpts.fetchMetrics;let t=q.renderOpts.pendingWaitUntil;t&&P.waitUntil&&(P.waitUntil(t),t=void 0);let r=q.renderOpts.collectedTags;if(!L)return await (0,B.sendResponse)(z,W,e,t),null;{let A=await e.blob(),w=(0,s.toNodeOutgoingHttpHeaders)(e.headers);r&&(w[u.NEXT_CACHE_TAGS_HEADER]=r),!w["content-type"]&&A.type&&(w["content-type"]=A.type);let D=void 0!==q.renderOpts.collectedRevalidate&&!(q.renderOpts.collectedRevalidate>=u.INFINITE_CACHE)&&q.renderOpts.collectedRevalidate,P=void 0===q.renderOpts.collectedExpire||q.renderOpts.collectedExpire>=u.INFINITE_CACHE?!1!==D&&D>0?v.expireTime:void 0:q.renderOpts.collectedExpire;return{value:{kind:I.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await A.arrayBuffer()),headers:w},cacheControl:{revalidate:D,expire:P}}}}catch(w){throw(null==D?void 0:D.isStale)&&await Q.onRequestError(A,w,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,g.getRevalidateReason)({isStaticGeneration:X,isOnDemandRevalidate:y})},!1,H),w}},$=async(e,r)=>{try{var a,i;let e=await Q.handleResponse({req:A,nextConfig:v,cacheKey:N,routeKind:D.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:h,isRoutePPREnabled:!1,isOnDemandRevalidate:y,revalidateOnlyGenerated:O,responseGenerator:_,waitUntil:P.waitUntil,isMinimalMode:U});if(!L)return;if((null==e||null==(a=e.value)?void 0:a.kind)!==I.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==e||null==(i=e.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});U||w.setHeader("x-nextjs-cache",y?"REVALIDATED":e.isMiss?"MISS":e.isStale?"STALE":"HIT"),p&&w.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let t=(0,s.fromNodeOutgoingHttpHeaders)(e.value.headers);U&&L||t.delete(u.NEXT_CACHE_TAGS_HEADER),!e.cacheControl||w.getHeader("Cache-Control")||t.get("Cache-Control")||t.set("Cache-Control",(0,l.getCacheControlHeader)(e.cacheControl)),await (0,B.sendResponse)(z,W,new Response(e.value.body,{headers:t,status:e.value.status||200}));return}catch(w){if(w instanceof C.NoFallbackError||await Q.onRequestError(A,w,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,g.getRevalidateReason)({isStaticGeneration:X,isOnDemandRevalidate:y})},!1,H),L)throw w;await (0,B.sendResponse)(z,W,new Response(null,{status:500}));return}finally{(()=>{if(!e)return;let A=w.statusCode;e.setAttributes({"http.status_code":A,"next.rsc":!1}),A&&A>=500&&(e.setStatus({code:t.SpanStatusCode.ERROR}),e.setAttribute("error.type",A.toString()));let D=F.getRootSpanAttributes();if(!D)return;if(D.get("next.span_type")!==n.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${D.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let P=D.get("next.route")||j,a=`${x} ${P}`;e.setAttributes({"next.route":P,"http.route":P,"next.span_name":a}),e.updateName(a),r&&r!==e&&(r.setAttribute("http.route",P),r.updateName(a))})()}};if(k&&K)await $(K,void 0);else{let w=F.getActiveScopeSpan();await F.withPropagatedContext(A.headers,()=>F.trace(n.BaseServerSpan.handleRequest,{spanName:`${x} ${E}`,kind:t.SpanKind.SERVER,attributes:{"http.method":x,"http.target":A.url}},A=>$(A,w)),void 0,!k)}}A.s(["handler",0,G,"patchFetch",0,function(){return(0,P.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:d})},"routeModule",0,Q,"serverHooks",0,M,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,d])}];
2
2
 
3
3
  //# sourceMappingURL=_0uxp3uh._.js.map